[
  {
    "path": ".gitattributes",
    "content": "* text eol=lf\n\n*.png binary\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "open_collective: core-js\npatreon: zloirock\ncustom: https://boosty.to/zloirock\n"
  },
  {
    "path": ".github/workflows/build-and-deploy-pages.yml",
    "content": "name: Build and Deploy pages to GitHub Pages\non: [push, workflow_dispatch]\n\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\njobs:\n  list-branches:\n    runs-on: ubuntu-latest\n    outputs:\n      branches: ${{ steps.set-branches.outputs.branches }}\n    steps:\n      - name: Checkout repo\n        uses: actions/checkout@v6\n        with:\n          fetch-depth: 0\n      - name: Get branch list and set output\n        id: set-branches\n        run: |\n          BRANCHES=$(\n            git branch -r |\n            grep -Ev 'HEAD|v1|v2' |\n            sed 's/^[ *]*//' |\n            sed 's/^origin\\///' |\n            jq -R . |\n            jq -cs\n          )\n          echo \"branches=$BRANCHES\" >> \"$GITHUB_OUTPUT\"\n\n  build-compat-pages:\n    needs: list-branches\n    runs-on: ubuntu-latest\n    strategy:\n      matrix:\n        branch: ${{ fromJson(needs.list-branches.outputs.branches) }}\n    name: Build for ${{ matrix.branch }}\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          ref: ${{ matrix.branch }}\n      - name: Build cache key\n        id: cache-key\n        run: |\n          HASH=$(git rev-parse --short HEAD)\n          echo \"CACHE_KEY=${{ matrix.branch }}-$HASH\" >> \"$GITHUB_ENV\"\n      - name: Restore cached artifacts\n        id: artifacts-restore\n        uses: actions/cache/restore@v5\n        with:\n          path: ${{ matrix.branch }}\n          key: ${{ env.CACHE_KEY }}\n      - uses: actions/setup-node@v6\n        if: steps.artifacts-restore.outputs.cache-hit != 'true'\n        with:\n          node-version: 25\n          cache: npm\n      - name: Build\n        if: steps.artifacts-restore.outputs.cache-hit != 'true'\n        run: |\n          npm run prepare-monorepo\n          npm run build-compat\n          npm run bundle\n      - name: Prepare build artifacts\n        if: steps.artifacts-restore.outputs.cache-hit != 'true'\n        run: |\n          mkdir -p ${{ matrix.branch }}/compat\n          cp tests/compat/index.html tests/compat/compat-data.js tests/compat/tests.js tests/compat/browsers-runner.js ${{ matrix.branch }}/compat\n          mkdir -p ${{ matrix.branch }}/bundles\n          cp tests/bundles/* ${{ matrix.branch }}/bundles\n          mkdir -p ${{ matrix.branch }}/unit-browser\n          cp tests/unit-browser/* ${{ matrix.branch }}/unit-browser\n      - name: Save cached artifacts\n        if: steps.artifacts-restore.outputs.cache-hit != 'true'\n        uses: actions/cache/save@v5\n        with:\n          path: ${{ matrix.branch }}\n          key: ${{ env.CACHE_KEY }}\n      - name: Upload artifacts for branch ${{ matrix.branch }}\n        uses: actions/upload-artifact@v6\n        with:\n          name: ${{ matrix.branch }}\n          path: ${{ matrix.branch }}\n\n  combine-pages-and-deploy:\n    needs: build-compat-pages\n    runs-on: ubuntu-latest\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.page_url }}\n    steps:\n      - uses: actions/checkout@v6\n      - name: Download artifacts\n        uses: actions/download-artifact@v7\n        with:\n          path: pages\n      - name: Setup Pages\n        uses: actions/configure-pages@v5\n      - name: Upload GitHub Pages artifact\n        uses: actions/upload-pages-artifact@v4\n        with:\n          path: pages\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v4\n"
  },
  {
    "path": ".github/workflows/build-bundles.yml",
    "content": "name: Build bundles\n\non: push\n\njobs:\n  build-and-upload:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Extract branch name\n        shell: bash\n        run: echo \"branch=${GITHUB_REF#refs/heads/}\" >> $GITHUB_OUTPUT\n        id: extract_branch\n\n      - name: Checkout repo\n        uses: actions/checkout@v6\n\n      - name: Use Node.js\n        uses: actions/setup-node@v6\n        with:\n          node-version: 25\n          cache: npm\n\n      - name: Install dependencies\n        run: npm run prepare-monorepo\n\n      - name: Build bundle\n        run: npm run bundle-package minified-name core-js-bundle\n\n      - name: Copy files to server over SSH\n        uses: appleboy/scp-action@v1\n        with:\n          host: ${{ secrets.REMOTE_HOST }}\n          username: ci\n          key: ${{ secrets.CI_SSH_KEY }}\n          source: \"packages/core-js-bundle/core-js-bundle.js\"\n          target: \"/var/www/core-js/bundles/${{ steps.extract_branch.outputs.branch }}/\"\n          strip_components: 2\n\n      - name: Build esmodules bundle\n        run: npm run bundle-package esmodules minified-name core-js-bundle-esmodules\n\n      - name: Copy files to server over SSH\n        uses: appleboy/scp-action@v1\n        with:\n          host: ${{ secrets.REMOTE_HOST }}\n          username: ci\n          key: ${{ secrets.CI_SSH_KEY }}\n          source: \"packages/core-js-bundle/core-js-bundle-esmodules.js\"\n          target: \"/var/www/core-js/bundles/${{ steps.extract_branch.outputs.branch }}/\"\n          strip_components: 2\n"
  },
  {
    "path": ".github/workflows/build-website-for-branch.yml",
    "content": "name: Build website for branch\n\non:\n  push:\n    branches-ignore:\n      - master\n  workflow_dispatch:\n\njobs:\n  run-on-server:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Extract branch name\n        shell: bash\n        run: echo \"branch=${GITHUB_REF#refs/heads/}\" >> $GITHUB_OUTPUT\n        id: extract_branch\n\n      - name: Checkout code\n        uses: actions/checkout@v6\n        with:\n          ref: ${{ steps.extract_branch.outputs.branch }}\n\n      - name: Copy runner file to remote server\n        uses: garygrossgarten/github-action-scp@0.9.0\n        with:\n          local: website/scripts/runner.mjs\n          remote: /var/www/core-js/runner.mjs\n          host: ${{ secrets.REMOTE_HOST }}\n          username: ci\n          privateKey: ${{ secrets.CI_SSH_KEY }}\n\n      - name: Copy runner wrapper file to remote server\n        uses: garygrossgarten/github-action-scp@0.9.0\n        with:\n          local: website/scripts/runner.sh\n          remote: /var/www/core-js/runner.sh\n          host: ${{ secrets.REMOTE_HOST }}\n          username: ci\n          privateKey: ${{ secrets.CI_SSH_KEY }}\n\n      - name: Copy runner helpers file to remote server\n        uses: garygrossgarten/github-action-scp@0.9.0\n        with:\n          local: website/scripts/helpers.mjs\n          remote: /var/www/core-js/helpers.mjs\n          host: ${{ secrets.REMOTE_HOST }}\n          username: ci\n          privateKey: ${{ secrets.CI_SSH_KEY }}\n\n      - name: Setup SSH\n        uses: webfactory/ssh-agent@v0.9.1\n        with:\n          ssh-private-key: ${{ secrets.CI_SSH_KEY }}\n\n      - name: Make runner.sh executable on remote\n        run: |\n          ssh -o StrictHostKeyChecking=no ci@${{ secrets.REMOTE_HOST }} \"chmod +x /var/www/core-js/runner.sh\"\n\n      - name: Run node runner.mjs on remote server\n        run: |\n          ssh -o StrictHostKeyChecking=no ci@${{ secrets.REMOTE_HOST }} \"cd /var/www/core-js/ && ./runner.sh ${{ steps.extract_branch.outputs.branch }}\"\n"
  },
  {
    "path": ".github/workflows/build-website.yml",
    "content": "name: Build website\n\non:\n  push:\n    branches:\n      - master\n  workflow_dispatch:\n\njobs:\n  run-on-server:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Extract branch name\n        shell: bash\n        run: echo \"branch=${GITHUB_REF#refs/heads/}\" >> $GITHUB_OUTPUT\n        id: extract_branch\n\n      - name: Checkout code\n        uses: actions/checkout@v6\n        with:\n          ref: ${{ steps.extract_branch.outputs.branch }}\n\n      - name: Copy runner file to remote server\n        uses: garygrossgarten/github-action-scp@0.9.0\n        with:\n          local: website/scripts/runner.mjs\n          remote: /var/www/core-js/runner.mjs\n          host: ${{ secrets.REMOTE_HOST }}\n          username: ci\n          privateKey: ${{ secrets.CI_SSH_KEY }}\n\n      - name: Copy runner wrapper file to remote server\n        uses: garygrossgarten/github-action-scp@0.9.0\n        with:\n          local: website/scripts/runner.sh\n          remote: /var/www/core-js/runner.sh\n          host: ${{ secrets.REMOTE_HOST }}\n          username: ci\n          privateKey: ${{ secrets.CI_SSH_KEY }}\n\n      - name: Copy runner helpers file to remote server\n        uses: garygrossgarten/github-action-scp@0.9.0\n        with:\n          local: website/scripts/helpers.mjs\n          remote: /var/www/core-js/helpers.mjs\n          host: ${{ secrets.REMOTE_HOST }}\n          username: ci\n          privateKey: ${{ secrets.CI_SSH_KEY }}\n\n      - name: Setup SSH\n        uses: webfactory/ssh-agent@v0.9.1\n        with:\n          ssh-private-key: ${{ secrets.CI_SSH_KEY }}\n\n      - name: Make runner.sh executable on remote\n        run: |\n          ssh -o StrictHostKeyChecking=no ci@${{ secrets.REMOTE_HOST }} \"chmod +x /var/www/core-js/runner.sh\"\n\n      - name: Run node runner.mjs on remote server\n        run: |\n          ssh -o StrictHostKeyChecking=no ci@${{ secrets.REMOTE_HOST }} \"cd /var/www/core-js/ && ./runner.sh\"\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: ci\n\non: [push, pull_request]\n\npermissions:\n  contents: read # to fetch code (actions/checkout)\n\njobs:\n  lint:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n      - uses: actions/setup-node@v6\n        with:\n          node-version: 25\n          cache: npm\n      - uses: actions/setup-python@v6\n        with:\n          python-version: 3.14\n      - run: npm run prepare-monorepo\n      - run: pip install codespell\n      - run: npx run-s lint-raw codespell\n\n  karma:\n    runs-on: windows-2022\n    steps:\n      - uses: actions/checkout@v6\n      - uses: actions/setup-node@v6\n        with:\n          node-version: 25\n          cache: npm\n      - run: npm run prepare-monorepo\n      - run: npx run-s bundle test-unit-karma\n\n  bun:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n      - uses: actions/setup-node@v6\n        with:\n          node-version: 25\n          cache: npm\n      - uses: oven-sh/setup-bun@v2\n        with:\n          bun-version: latest\n      - run: npm run prepare-monorepo\n      - run: npx run-s bundle test-unit-bun\n\n  promises-and-observables:\n    strategy:\n      matrix:\n        node:\n          - ^20.19\n          - ^22.12\n          - 23\n          - 24\n          - 25\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n      - uses: actions/setup-node@v6\n        with:\n          node-version: ${{ matrix.node }}\n          cache: npm\n      - run: npm run prepare-monorepo\n      - run: npx run-s test-promises test-observables\n\n  tests:\n    strategy:\n      matrix:\n        os:\n          - ubuntu-latest\n          - windows-latest\n          - macos-latest\n        node:\n          - ^20.19\n          - ^22.12\n          - 23\n          - 24\n          - 25\n    runs-on: ${{ matrix.os }}\n    steps:\n      - uses: actions/checkout@v6\n      - uses: actions/setup-node@v6\n        with:\n          node-version: ${{ matrix.node }}\n          cache: npm\n      - run: npm run prepare-monorepo\n      - run: npx run-s bundle test-unit-node test-entries test-compat-data test-compat-tools test-builder\n"
  },
  {
    "path": ".gitignore",
    "content": "npm-shrinkwrap.json\nyarn.lock\nnode_modules/\n*.tmp\n*.log\n*.bak\n*.swp\n.DS_Store\n.idea\n\n/bundles/\n/docs/web/blog/\n/docs/web/changelog.md\n/docs/web/contributing.md\n/docs/web/security.md\n/packages/core-js/features/\n/packages/core-js/es/index.js\n/packages/core-js/full/index.js\n/packages/core-js/stable/index.js\n/packages/core-js/LICENSE\n/packages/core-js-builder/LICENSE\n/packages/core-js-bundle/LICENSE\n/packages/core-js-bundle/index.js\n/packages/core-js-bundle/minified.js\n/packages/core-js-bundle/minified.js.map\n/packages/core-js-bundle/postinstall.js\n/packages/core-js-compat/LICENSE\n/packages/core-js-compat/data.json\n/packages/core-js-compat/entries.json\n/packages/core-js-compat/external.json\n/packages/core-js-compat/modules.json\n/packages/core-js-compat/modules-by-versions.json\n/packages/core-js-pure/actual/\n/packages/core-js-pure/es/\n/packages/core-js-pure/features/\n/packages/core-js-pure/full/\n/packages/core-js-pure/internals/\n/packages/core-js-pure/modules/\n/packages/core-js-pure/proposals/\n/packages/core-js-pure/stable/\n/packages/core-js-pure/stage/\n/packages/core-js-pure/web/\n/packages/core-js-pure/LICENSE\n/packages/core-js-pure/index.js\n/packages/core-js-pure/configurator.js\n/packages/core-js-pure/postinstall.js\n/tests/**/bundles/\n/tests/compat/*.jar\n/tests/compat/compat-data.js\n/tests/unit-global/index.js\n/tests/unit-pure/index.js\n/website/templates/\n/website/dist/\n/website/src/public/\n"
  },
  {
    "path": ".npmrc",
    "content": "audit=false\nfund=false\nlockfile-version=3\nloglevel=error\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Changelog\n### Unreleased\n- Slight performance improvement for engines with native `Array#fill` on `ArrayBuffer` constructor and `%TypedArray%#fill`\n- Compat data improvements:\n  - Updated Electron 42 compat data mapping\n\n### [3.49.0 - 2026.03.16](https://github.com/zloirock/core-js/releases/tag/v3.49.0)\n- Changes [v3.48.0...v3.49.0](https://github.com/zloirock/core-js/compare/v3.48.0...v3.49.0) (373 commits)\n- [`Iterator.range`](https://github.com/tc39/proposal-iterator.range) updated following the actual spec version\n  - Throw a `RangeError` on `NaN` `start` / `end` / `step`\n  - Allow `null` as `optionOrStep`\n- Improved accuracy of `Math.{ asinh, atanh }` polyfills with big and small values\n- Improved accuracy of `Number.prototype.toExponential` polyfills with big and small values\n- Improved performance of `atob`, `btoa`, `Uint8Array.fromHex`, `Uint8Array.prototype.setFromHex`, and `Uint8Array.prototype.toHex`, [#1503](https://github.com/zloirock/core-js/issues/1503), [#1464](https://github.com/zloirock/core-js/issues/1464), [#1510](https://github.com/zloirock/core-js/issues/1510), thanks [**@johnzhou721**](https://github.com/johnzhou721)\n- Minor performance optimization polyfills of methods from [`Map` upsert proposal](https://github.com/tc39/proposal-upsert)\n- Polyfills of methods from [`Map` upsert proposal](https://github.com/tc39/proposal-upsert) from the pure version made generic to make it work with polyfilled and native collections\n- Wrap `Symbol.for` in `Symbol.prototype.description` polyfill for correct handling of empty string descriptions\n- Fixed [a modern Safari bug](https://bugs.webkit.org/show_bug.cgi?id=309342) in `Array.prototype.includes` with sparse arrays and `fromIndex`\n- Fixed one more case (`Iterator.prototype.take`) of a V8 ~ Chromium < 126 [bug](https://issues.chromium.org/issues/336839115)\n- Forced replacement of `Iterator.{ concat, zip, zipKeyed }` in the pure version for ensuring proper wrapped `Iterator` instances as the result\n- Fixed proxying `.return()` on exhausted iterator from some methods of iterator helpers polyfill to the underlying iterator\n- Fixed double `.return()` calling in case of throwing error in this method in the internal `iterate` helper that affected some polyfills\n- Fixed closing iterator on `IteratorValue` errors in the internal `iterate` helper that affected some polyfills\n- Fixed iterator closing in `Array.from` polyfill on failure to create array property\n- Fixed order of arguments validation in `Array.fromAsync` polyfill\n- Fixed a lack of counter validation on `MAX_SAFE_INTEGER` in `Array.fromAsync` polyfill\n- Fixed order of arguments validation in `Array.prototype.flat` polyfill\n- Fixed handling strings as iterables in `Iterator.{ zip, zipKeyed }` polyfills\n- Fixed some cases of iterators closing in `Iterator.{ zip, zipKeyed }` polyfills\n- Fixed validation of iterators `.next()` results an objects in `Iterator.{ zip, zipKeyed }` polyfills\n- Fixed a lack of early error in `Iterator.concat` polyfill on primitive as an iterator\n- Fixed buffer mutation exposure in `Iterator.prototype.windows` polyfill\n- Fixed iterator closing in `Set.prototype.{ isDisjointFrom, isSupersetOf }` polyfill\n- Fixed (updated following the final spec) one more case `Set.prototype.difference` polyfill with updating `this`\n- Fixed `DataView.prototype.setFloat16` polyfill in (0, 1) range\n- Fixed order of arguments validation in `String.prototype.{ padStart, padEnd }` polyfills\n- Fixed order of arguments validation in `String.prototype.{ startsWith, endsWith }` polyfills\n- Fixed some cases of `Infinity` handling in `String.prototype.substr` polyfill\n- Fixed `String.prototype.repeat` polyfill with a counter exceeding 2 ** 32\n- Fixed some cases of chars case in `escape` polyfill\n- Fixed named backreferences in `RegExp` NCG polyfill\n- Fixed some cases of `RegExp` NCG polyfill in combination with other types of groups\n- Fixed some cases of `RegExp` NCG polyfill in combination with `dotAll`\n- Fixed `String.prototype.replace` with `sticky` polyfill, [#810](https://github.com/zloirock/core-js/issues/810), [#1514](https://github.com/zloirock/core-js/issues/1514)\n- Fixed `RegExp` `sticky` polyfill with alternation\n- Fixed handling of some line terminators in case of `multiline` + `sticky` mode in `RegExp` polyfill\n- Fixed `.input` slicing on result object with `RegExp` `sticky` mode polyfill\n- Fixed handling of empty groups with `global` and `unicode` modes in polyfills\n- Fixed `URLSearchParam.prototype.delete` polyfill with duplicate key-value pairs\n- Fixed possible removal of unnecessary entries in `URLSearchParam.prototype.delete` polyfill with second argument\n- Fixed an error in some cases of non-special URLs without a path in the `URL` polyfill\n- Fixed some percent encode cases / character sets in the `URL` polyfill\n- Fixed parsing of non-IPv4 hosts ends in a number in the `URL` polyfill\n- Fixed some cases of `''` and `null` host handling in the `URL` polyfill\n- Fixed host parsing with `hostname = host:port` in the `URL` polyfill\n- Fixed host inheritance in some cases of file scheme in the `URL` polyfill\n- Fixed block of protocol change for file with empty host in the `URL` polyfill\n- Fixed invalid code points handling in UTF-8 decode in the `URLSearchParams` polyfill\n- Fixed some cases of serialization in `URL` polyfill (`/.` prefix for non-special URLs with `null` host and path starting with empty segment)\n- Fixed `URL` polyfill `.origin` getter with `blob` scheme\n- Fixed a lack of error in `URLSearchParams.prototype.set` polyfill on calling only with 1 argument\n- Fixed handling invalid UTF-8 continuation bytes in `URLSearchParams` polyfill\n- Fixed incomplete sequences with out-of-range continuation bytes handling in `URLSearchParams` polyfill\n- Fixed allowing unexpected symbols in scheme in the `URL` polyfill\n- Fixed repeated `ToPropertyKey` calling in `Reflect.{ get, set, deleteProperty }` polyfills\n- Fixed `Reflect.set` polyfill with some descriptors cases\n- Fixed `Reflect.set` polyfill with some non-extensible receiver cases\n- Fixed the order of `Reflect.construct` polyfill arguments validation (observable only in the error message)\n- Fixed a lack of error in `Reflect.defineProperty` polyfill with malformed descriptor\n- Fixed a lack of error in `JSON.parse` polyfill on unterminated object and array literals\n- Fixed a lack of error in `JSON.parse` polyfill on numbers with `.`, but without a fraction part\n- Fixed a lack of error on `\\u{}` in `String.dedent` polyfill\n- Fixed some cases of hex escaping in the end of string in `String.dedent` polyfill\n- Fixed `%AsyncFromSyncIteratorPrototype%` to make it a little stricter\n- Fixed counter in some cases of some `AsyncIterator` methods\n- Fixed order of async iterators closing\n- Fixed iterator closing in `AsyncIterator.prototype.flatMap` polyfill\n- Fixed iterator closing in `AsyncIterator.prototype.map` polyfill on error in underlying iterator `.next()`\n- Fixed iterator closing in `AsyncIterator.prototype.take` polyfill with `return: null`\n- Fixed validation `.return()` result as object in `AsyncIterator.prototype.take` polyfill\n- Fixed a lack of error in `structuredClone` polyfill on attempt to transfer multiple objects, some of which are non-transferable\n- Fixed resizable `ArrayBuffer` transferring where `newByteLength` exceeds the original `maxByteLength`\n- Fixed possible loss of symbol enumerability in `Object.defineProperty` in `Symbol` polyfill\n- Fixed return value of `Object.defineProperty` in `Symbol` polyfill in Android ~ 2\n- Fixed order of `%TypedArray%.from` arguments validation\n- Fixed a lack of error on passing an `ArrayBuffer` and a negative length to the `%TypedArray%` and `DataView` constructors polyfills\n- Fixed some cases of `@@toStringTag` on `%TypedArray%` polyfill\n- Fixed some cases of `ToUint8Clamp` conversion\n- Fixed `NaN` handling in `Date.prototype.setYear` polyfill\n- Fixed false positive on a `WeakMap` validation in the pure version\n- Fixed some minor `{ Map, Set }.prototype.forEach` moments in the pure version\n- Fixed possible error in `Array.isTemplateObject` polyfill on frozen array\n- Fixed semantics of `Observable.from` with multiple subscriptions of the obsolete ECMAScript `Observable` proposal polyfill\n- Fixed handling of ending zeroes in the fraction part in `Number.fromString` polyfill\n- Fixed `esmodules: intersect` option of `core-js-compat`\n- Fixed a lack of `reactnative` alias in `core-js-compat` types\n- Fixed a minor logical bug in the debugging output of `core-js-builder`\n- Fixed ignorance of the obsolete `blacklist` option of `core-js-builder` - it should be removed only in the next major release\n- In case of bugs in `String.prototype.{ match, matchAll, replace, split }` in modern engines, add `s`, `d` and `v` flag support to polyfills of those methods\n- Just in case, added an extra input string validation to the  polyfill of obsolete `Number.fromString` proposals\n- Simplified `iOS` detection\n- Many minor stylistic fixes and optimizations\n- Compat data improvements:\n  - [`Math.sumPrecise`](https://github.com/tc39/proposal-math-sum) marked as [shipped in V8 ~ Chrome 147](https://issues.chromium.org/issues/374310075#comment16)\n  - [`Iterator.concat`](https://github.com/tc39/proposal-iterator-sequencing) marked as [shipped in V8 ~ Chrome 146](https://issues.chromium.org/issues/434977727#comment7)\n  - [`Iterator.concat`](https://github.com/tc39/proposal-iterator-sequencing) marked as shipped in Safari 26.4\n  - Because of [a bug](https://bugs.webkit.org/show_bug.cgi?id=309342), `Array.prototype.includes` marked as not supported in modern Safari\n  - Fixed compat data for `parseInt` and `parseFloat`\n  - Added Deno [2.6.7](https://github.com/denoland/deno/releases/tag/v2.6.7), [2.7.0](https://github.com/denoland/deno/releases/tag/v2.7.0) and [2.7.2](https://github.com/denoland/deno/releases/tag/v2.7.2) compat data mapping\n  - Added Electron 42 compat data mapping\n  - Added Opera for Android [95](https://forums.opera.com/topic/87912/opera-for-android-95) and [96](https://forums.opera.com/topic/88254/opera-for-android-96) compat data mapping\n  - Added [Oculus Quest Browser 42](https://developers.meta.com/horizon/downloads/package/browser/42.0/) compat data mapping\n\n### [3.48.0 - 2026.01.21](https://github.com/zloirock/core-js/releases/tag/v3.48.0)\n- Changes [v3.47.0...v3.48.0](https://github.com/zloirock/core-js/compare/v3.47.0...v3.48.0) (126 commits)\n- [`Map` upsert proposal](https://github.com/tc39/proposal-upsert):\n  - Built-ins:\n    - `Map.prototype.getOrInsert`\n    - `Map.prototype.getOrInsertComputed`\n    - `WeakMap.prototype.getOrInsert`\n    - `WeakMap.prototype.getOrInsertComputed`\n  - Moved to stable ES, [January 2026 TC39 meeting](https://github.com/tc39/proposals/commit/131e53d6c9e658c6439831a167ed3f7897daf160)\n  - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries\n- Use `CreateDataProperty` / `CreateDataPropertyOrThrow` in some missed cases, [#1497](https://github.com/zloirock/core-js/issues/1497)\n- Minor fix / optimization in the `RegExp` constructor (NCG and `dotAll`) polyfill\n- Added some more workarounds for a Safari < 13 bug with silent ignore of non-writable array `.length`\n- Added detection of a Webkit [bug](https://bugs.webkit.org/show_bug.cgi?id=297532): `Iterator.prototype.flatMap` throws on iterator without `return` method\n- Added detection of a V8 ~ Chromium < 144 [bug](https://issues.chromium.org/issues/454630441): `Uint8Array.prototype.setFromHex` throws an error on length-tracking views over ResizableArrayBuffer\n- Compat data improvements:\n  - [`Map` upsert proposal](https://github.com/tc39/proposal-upsert) features marked as [shipped in V8 ~ Chrome 145](https://issues.chromium.org/issues/434977728#comment4)\n  - [Joint iteration proposal](https://github.com/tc39/proposal-joint-iteration) features marked as [shipped in FF148](https://bugzilla.mozilla.org/show_bug.cgi?id=2003333#c8)\n  - [`Iterator.concat`](https://github.com/tc39/proposal-iterator-sequencing) marked as shipped in Bun 1.3.7\n  - Added [Rhino 1.9.0](https://github.com/mozilla/rhino/releases/tag/Rhino1_9_0_Release) compat data\n  - Added [Deno 2.6](https://github.com/denoland/deno/releases/tag/v2.6.0) compat data mapping\n  - Added Opera Android [93](https://forums.opera.com/topic/87267/opera-for-android-93) and [94](https://forums.opera.com/topic/87678/opera-for-android-94) compat data mapping\n  - Added Electron 41 compat data mapping\n  - `Iterator.prototype.flatMap` marked as supported from Safari 26.2 and Bun 1.2.21 because of a [bug](https://bugs.webkit.org/show_bug.cgi?id=297532): throws on iterator without `return` method\n  - `Uint8Array.prototype.setFromHex` marked as supported from V8 ~ Chromium 144 because of a [bug](https://issues.chromium.org/issues/454630441): throws an error on length-tracking views over ResizableArrayBuffer\n\n### [3.47.0 - 2025.11.18](https://github.com/zloirock/core-js/releases/tag/v3.47.0)\n- Changes [v3.46.0...v3.47.0](https://github.com/zloirock/core-js/compare/v3.46.0...v3.47.0) (117 commits)\n- [`JSON.parse` source text access proposal](https://github.com/tc39/proposal-json-parse-with-source):\n  - Built-ins:\n    - `JSON.isRawJSON`\n    - `JSON.parse`\n    - `JSON.rawJSON`\n    - `JSON.stringify`\n  - Moved to stable ES, [November 2025 TC39 meeting](https://x.com/robpalmer2/status/1990603365236289653)\n  - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries\n  - Reworked `JSON.stringify` internals\n- [`Iterator` sequencing proposal](https://github.com/tc39/proposal-iterator-sequencing):\n  - Built-ins:\n    - `Iterator.concat`\n  - Moved to stable ES, [November 2025 TC39 meeting](https://github.com/tc39/proposals/commit/33be3cb6d6743c7cc8628c547423f49078c0b655)\n  - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries\n- [Joint iteration proposal](https://github.com/tc39/proposal-joint-iteration):\n  - Built-ins:\n    - `Iterator.zip`\n    - `Iterator.zipKeyed`\n  - Moved to stage 3, [November 2025 TC39 meeting](https://github.com/tc39/proposals/commit/6c0126b8f44323254c93045ee7ec216e49b83ddd)\n  - Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection\n- Fixed increasing `.size` in `URLSearchParams.prototype.append` polyfill in IE8-\n- Compat data improvements:\n  - [`Iterator.concat`](https://github.com/tc39/proposal-iterator-sequencing) marked as [shipped in FF147](https://bugzilla.mozilla.org/show_bug.cgi?id=1986672#c4)\n  - [`Map` upsert proposal](https://github.com/tc39/proposal-upsert) features marked as shipped in Safari 26.2\n  - `Math.sumPrecise` marked as shipped in Safari 26.2\n  - `Uint8Array.{ fromBase64, prototype.setFromBase64 }` marked as fixed in Safari 26.2\n  - Missed [Explicit Resource Management](https://github.com/tc39/proposal-explicit-resource-management) features [added in Bun 1.3.0](https://bun.com/blog/bun-v1.3#disposablestack-and-asyncdisposablestack)\n  - Added Oculus Quest Browser 41 compat data mapping\n  - Added Electron 40 compat data mapping\n\n### [3.46.0 - 2025.10.09](https://github.com/zloirock/core-js/releases/tag/v3.46.0)\n- Changes [v3.45.1...v3.46.0](https://github.com/zloirock/core-js/compare/v3.45.1...v3.46.0) (116 commits)\n- [`Map` upsert stage 3 proposal](https://github.com/tc39/proposal-upsert):\n  - Fixed [a FF `WeakMap.prototype.getOrInsertComputed` bug with callback calling before validation a key](https://bugzilla.mozilla.org/show_bug.cgi?id=1988369)\n- [`Iterator` chunking proposal](https://github.com/tc39/proposal-iterator-chunking):\n  - Built-ins:\n    - `Iterator.prototype.chunks`\n    - `Iterator.prototype.windows`\n  - Moved to stage 2.7, [September 2025 TC39 meeting](https://github.com/tc39/proposals/commit/08e583103c6c244c05a26d9fee518ef8145ba2f6)\n  - `Iterator.prototype.sliding` method replaced with an extra parameter of `Iterator.prototype.windows` method, [tc39/proposal-iterator-chunking/#24](https://github.com/tc39/proposal-iterator-chunking/pull/24), [tc39/proposal-iterator-chunking/#26](https://github.com/tc39/proposal-iterator-chunking/pull/26)\n- Fixed [`Iterator.zip` and `Iterator.zipKeyed`](https://github.com/tc39/proposal-joint-iteration) behavior with `mode: 'longest'` option, [#1469](https://github.com/zloirock/core-js/issues/1469), thanks [**@lionel-rowe**](https://github.com/lionel-rowe)\n- Fixed work of `Object.groupBy` and [`Iterator.zipKeyed`](https://github.com/tc39/proposal-joint-iteration) together with `Symbol` polyfill - some cases of symbol keys on result `null`-prototype object were able to leak out to `for-in`\n- Compat data improvements:\n  - [`Map` upsert proposal](https://github.com/tc39/proposal-upsert) features marked as shipped from FF144\n  - Added [Node 25.0](https://github.com/nodejs/node/pull/59896) compat data mapping\n  - Added [Deno 2.5](https://github.com/denoland/deno/releases/tag/v2.5.0) compat data mapping\n  - Updated Electron 39 compat data mapping\n  - Updated Opera 121+ compat data mapping\n  - Added [Opera Android 92](https://forums.opera.com/topic/86530/opera-for-android-92) compat data mapping\n  - Added Oculus Quest Browser 40 compat data mapping\n\n### [3.45.1 - 2025.08.20](https://github.com/zloirock/core-js/releases/tag/v3.45.1)\n- Changes [v3.45.0...v3.45.1](https://github.com/zloirock/core-js/compare/v3.45.0...v3.45.1) (30 commits)\n- Fixed a conflict of native methods from [`Map` upsert proposal](https://github.com/tc39/proposal-upsert) with polyfilled methods in the pure version\n- Added `bugs` fields to `package.json` of all packages\n- Compat data improvements:\n  - [`Map` upsert proposal](https://github.com/tc39/proposal-upsert) features marked as shipped from Bun 1.2.20\n  - Added Samsung Internet 29 compat data mapping\n  - Added Electron 39 compat data mapping\n\n### [3.45.0 - 2025.08.04](https://github.com/zloirock/core-js/releases/tag/v3.45.0)\n- Changes [v3.44.0...v3.45.0](https://github.com/zloirock/core-js/compare/v3.44.0...v3.45.0) (70 commits)\n- [`Uint8Array` to / from base64 and hex proposal](https://github.com/tc39/proposal-arraybuffer-base64):\n  - Built-ins:\n    - `Uint8Array.fromBase64`\n    - `Uint8Array.fromHex`\n    - `Uint8Array.prototype.setFromBase64`\n    - `Uint8Array.prototype.setFromHex`\n    - `Uint8Array.prototype.toBase64`\n    - `Uint8Array.prototype.toHex`\n  - Moved to stable ES, [July 2025 TC39 meeting](https://github.com/tc39/proposals/commit/d41fe182cdb90da3076ab711aae3944ed86bcf18)\n  - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries\n  - Added detection of a Webkit bug: `Uint8Array` fromBase64 / setFromBase64 does not throw an error on incorrect length of base64 string\n- [`Math.sumPrecise` proposal](https://github.com/tc39/proposal-math-sum):\n  - Built-ins:\n    - `Math.sumPrecise`\n  - Moved to stable ES, [July 2025 TC39 meeting](https://github.com/tc39/proposals/commit/2616413ace9074bfd444adee9501fae4c8d66fcb)\n  - Added `es.` namespace module, `/es/` and `/stable/` namespaces entries\n- [`Iterator` sequencing proposal](https://github.com/tc39/proposal-iterator-sequencing):\n  - Built-ins:\n    - `Iterator.concat`\n  - Moved to stage 3, [July 2025 TC39 meeting](https://github.com/tc39/proposals/commit/3eebab0f8594673dd08bc709d68c011016074c2e)\n  - Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection\n- [`Map` upsert proposal](https://github.com/tc39/proposal-upsert):\n  - Built-ins:\n    - `Map.prototype.getOrInsert`\n    - `Map.prototype.getOrInsertComputed`\n    - `WeakMap.prototype.getOrInsert`\n    - `WeakMap.prototype.getOrInsertComputed`\n  - Moved to stage 3, [July 2025 TC39 meeting](https://github.com/tc39/proposals/commit/a9c0dfa4e00ffb69aa4df91d8c0c26b064d67108)\n  - Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection\n- Added missing dependencies to some entries of static `Iterator` methods\n- Fixed [Joint Iteration proposal](https://github.com/tc39/proposal-joint-iteration) in `/stage/` entries\n- Compat data improvements:\n  - [`Uint8Array` to / from base64 and hex proposal](https://github.com/tc39/proposal-arraybuffer-base64) features marked as [supported from V8 ~ Chromium 140](https://issues.chromium.org/issues/42204568#comment37)\n  - [`Uint8Array.{ fromBase64, prototype.setFromBase64 }`](https://github.com/tc39/proposal-arraybuffer-base64) marked as unsupported in Safari and supported only from Bun 1.2.20 because of a bug: it does not throw an error on incorrect length of base64 string\n  - `%TypedArray%.prototype.with` marked as fixed in Safari 26.0\n  - Updated Electron 38 compat data mapping\n  - Added [Opera Android 91](https://forums.opera.com/topic/86005/opera-for-android-91) compat data mapping\n\n### [3.44.0 - 2025.07.07](https://github.com/zloirock/core-js/releases/tag/v3.44.0)\n- Changes [v3.43.0...v3.44.0](https://github.com/zloirock/core-js/compare/v3.43.0...v3.44.0) (87 commits)\n- [`Uint8Array` to / from base64 and hex stage 3 proposal](https://github.com/tc39/proposal-arraybuffer-base64):\n  - Fixed [several V8 bugs](https://github.com/zloirock/core-js/issues/1439) in `Uint8Array.fromHex` and `Uint8Array.prototype.{ setFromBase64, toBase64, toHex }`, thanks [**@brc-dd**](https://github.com/brc-dd)\n- [Joint iteration stage 2.7 proposal](https://github.com/tc39/proposal-joint-iteration):\n  - Uses `Get` in `Iterator.zipKeyed`, following [tc39/proposal-joint-iteration#43](https://github.com/tc39/proposal-joint-iteration/pull/43)\n- [`Iterator` sequencing stage 2.7 proposal](https://github.com/tc39/proposal-iterator-sequencing):\n  - `Iterator.concat` no longer reuses `IteratorResult` object of concatenated iterators, following [tc39/proposal-iterator-sequencing#26](https://github.com/tc39/proposal-iterator-sequencing/pull/26)\n- [`Iterator` chunking stage 2 proposal](https://github.com/tc39/proposal-iterator-chunking):\n  - Added built-ins:\n    - `Iterator.prototype.sliding`\n- [`Number.prototype.clamp` stage 2 proposal](https://github.com/tc39/proposal-math-clamp):\n  - `clamp` no longer throws an error on `NaN` as `min` or `max`, following [tc39/proposal-math-clamp#d2387791c265edf66fbe2455eab919016717ce6f](https://github.com/tc39/proposal-math-clamp/commit/d2387791c265edf66fbe2455eab919016717ce6f) \n- Fixed some cases of `Set.prototype.{ symmetricDifference, union }` detection\n- Added missing dependencies to some entries of static `Iterator` methods\n- Added missing `/full/{ instance, number/virtual }/clamp` entries\n- Some minor stylistic changes\n- Compat data improvements:\n  - Added Electron 38 and 39 compat data mapping\n  - Added Oculus Quest Browser 38 and 39 compat data mapping\n  - `Iterator` helpers marked as fixed and updated following the latest spec changes in Safari 26.0\n  - `Set.prototype.{ difference, symmetricDifference, union }` marked as fixed in Safari 26.0\n  - `SuppressedError` marked [as fixed](https://bugzilla.mozilla.org/show_bug.cgi?id=1971000) in FF141\n  - `Error.isError` marked [as fixed](https://github.com/nodejs/node/pull/58691) in Node 24.3\n  - `setImmediate` and `clearImmediate` marked as available [from Deno 2.4](https://github.com/denoland/deno/pull/29877)\n  - `Math.sumPrecise` marked as [shipped in Bun 1.2.18](https://github.com/oven-sh/bun/pull/20569)\n  - `%TypedArray%.prototype.with` marked as fixed in Bun 1.2.18\n\n### [3.43.0 - 2025.06.09](https://github.com/zloirock/core-js/releases/tag/v3.43.0)\n- Changes [v3.42.0...v3.43.0](https://github.com/zloirock/core-js/compare/v3.42.0...v3.43.0) (139 commits)\n- [Explicit Resource Management proposals](https://github.com/tc39/proposal-explicit-resource-management):\n  - Built-ins:\n    - `Symbol.dispose`\n    - `Symbol.asyncDispose`\n    - `SuppressedError`\n    - `DisposableStack`\n      - `DisposableStack.prototype.dispose`\n      - `DisposableStack.prototype.use`\n      - `DisposableStack.prototype.adopt`\n      - `DisposableStack.prototype.defer`\n      - `DisposableStack.prototype.move`\n      - `DisposableStack.prototype[@@dispose]`\n    - `AsyncDisposableStack`\n      - `AsyncDisposableStack.prototype.disposeAsync`\n      - `AsyncDisposableStack.prototype.use`\n      - `AsyncDisposableStack.prototype.adopt`\n      - `AsyncDisposableStack.prototype.defer`\n      - `AsyncDisposableStack.prototype.move`\n      - `AsyncDisposableStack.prototype[@@asyncDispose]`\n    - `Iterator.prototype[@@dispose]`\n    - `AsyncIterator.prototype[@@asyncDispose]`\n  - Moved to stable ES, [May 2025 TC39 meeting](https://x.com/robpalmer2/status/1927744934343213085)\n  - Added `es.` namespace module, `/es/` and `/stable/` namespaces entries\n- [`Array.fromAsync` proposal](https://github.com/tc39/proposal-array-from-async):\n  - Built-ins:\n    - `Array.fromAsync`\n  - Moved to stable ES, [May 2025 TC39 meeting](https://github.com/tc39/proposal-array-from-async/issues/14#issuecomment-2916645435)\n  - Added `es.` namespace module, `/es/` and `/stable/` namespaces entries\n- [`Error.isError` proposal](https://github.com/tc39/proposal-is-error):\n  - Built-ins:\n    - `Error.isError`\n  - Moved to stable ES, [May 2025 TC39 meeting](https://github.com/tc39/proposals/commit/a5d4bb99d79f328533d0c36b0cd20597fa12c7a8)\n  - Added `es.` namespace module, `/es/` and `/stable/` namespaces entries\n- Added [Joint iteration stage 2.7 proposal](https://github.com/tc39/proposal-joint-iteration):\n  - Added built-ins:\n    - `Iterator.zip`\n    - `Iterator.zipKeyed`\n- Added [`Iterator` chunking stage 2 proposal](https://github.com/tc39/proposal-iterator-chunking):\n  - Added built-ins:\n    - `Iterator.prototype.chunks`\n    - `Iterator.prototype.windows`\n- [`Number.prototype.clamp` proposal](https://github.com/tc39/proposal-math-clamp):\n  - Built-ins:\n    - `Number.prototype.clamp`\n  - Moved to stage 2, [May 2025 TC39 meeting](https://github.com/tc39/proposal-math-clamp/commit/a005f28a6a03e175b9671de1c8c70dd5b7b08c2d)\n  - `Math.clamp` was replaced with `Number.prototype.clamp`\n  - Removed a `RangeError` if `min <= max` or `+0` min and `-0` max, [tc39/proposal-math-clamp/#22](https://github.com/tc39/proposal-math-clamp/issues/22)\n- Always check regular expression flags by `flags` getter [PR](https://github.com/tc39/ecma262/pull/2791). Native methods are not fixed, only own implementation updated for:\n  - `RegExp.prototype[@@match]`\n  - `RegExp.prototype[@@replace]`\n- Improved handling of `RegExp` flags in polyfills of some methods in engines without proper support of `RegExp.prototype.flags` and without polyfill of this getter\n- Added feature detection for [a WebKit bug](https://bugs.webkit.org/show_bug.cgi?id=288595) that occurs when `this` is updated while `Set.prototype.difference` is being executed\n- Added feature detection for [a WebKit bug](https://bugs.webkit.org/show_bug.cgi?id=289430) that occurs when iterator record of a set-like object isn't called before cloning `this` in the following methods:\n  - `Set.prototype.symmetricDifference`\n  - `Set.prototype.union`\n- Added feature detection for [a bug](https://issues.chromium.org/issues/336839115) in V8 ~ Chromium < 126. Following methods should throw an error on invalid iterator:\n  - `Iterator.prototype.drop`\n  - `Iterator.prototype.filter`\n  - `Iterator.prototype.flatMap`\n  - `Iterator.prototype.map`\n- Added feature detection for [a WebKit bug](https://bugs.webkit.org/show_bug.cgi?id=288714): incorrect exception thrown by `Iterator.from` when underlying iterator's `return` method is `null`\n- Added feature detection for a FF bug: incorrect exception thrown by `Array.prototype.with` when index coercion fails\n- Added feature detection for a WebKit bug: `TypedArray.prototype.with` should truncate negative fractional index to zero, but instead throws an error\n- Worked around a bug of many different tools ([example](https://github.com/zloirock/core-js/pull/1368#issuecomment-2908034690)) with incorrect transforming and breaking JS syntax on getting a method from a number literal\n- Fixed deoptimization of the `Promise` polyfill in the pure version\n- Added some missed dependencies to `/iterator/flat-map` entries\n- Some other minor fixes and improvements\n- Compat data improvements:\n  - Added [Deno 2.3](https://github.com/denoland/deno/releases/tag/v2.3.0) and [Deno 2.3.2](https://github.com/denoland/deno/releases/tag/v2.3.2) compat data mapping\n  - Updated Electron 37 compat data mapping\n  - Added Opera Android 90 compat data mapping\n  - [`Error.isError`](https://github.com/tc39/proposal-is-error) marked not supported in Node because of [a bug](https://github.com/nodejs/node/issues/56497)\n  - `Set.prototype.difference` marked as not supported in Safari and supported only from Bun 1.2.5 because of [a bug](https://bugs.webkit.org/show_bug.cgi?id=288595)\n  - `Set.prototype.{ symmetricDifference, union }` marked as not supported in Safari and supported only from Bun 1.2.5 because of [a bug](https://bugs.webkit.org/show_bug.cgi?id=289430)\n  - `Iterator.from` marked as not supported in Safari and supported only from Bun 1.2.5 because of [a bug](https://bugs.webkit.org/show_bug.cgi?id=288714)\n  - Iterators closing on early errors in `Iterator` helpers marked as implemented from FF141\n  - `Array.prototype.with` marked as supported only from FF140 because it throws an incorrect exception when index coercion fails\n  - `TypedArray.prototype.with` marked as unsupported in Bun and Safari because it should truncate negative fractional index to zero, but instead throws an error\n  - `DisposableStack` and `AsyncDisposableStack` marked as [shipped in FF141](https://bugzilla.mozilla.org/show_bug.cgi?id=1967744) (`SuppressedError` has [a bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1971000))\n  - `AsyncDisposableStack` bugs marked as fixed in Deno 2.3.2\n  - `SuppressedError` bugs ([extra arguments support](https://github.com/oven-sh/bun/issues/9283) and [arity](https://github.com/oven-sh/bun/issues/9282)) marked as fixed in Bun 1.2.15\n\n### [3.42.0 - 2025.04.30](https://github.com/zloirock/core-js/releases/tag/v3.42.0)\n- Changes [v3.41.0...v3.42.0](https://github.com/zloirock/core-js/compare/v3.41.0...v3.42.0) (142 commits)\n- [`Map` upsert proposal](https://github.com/tc39/proposal-upsert):\n  - Moved to stage 2.7, [April 2025 TC39 meeting](https://x.com/robpalmer2/status/1911882240109261148)\n  - Validation order of `WeakMap.prototype.getOrInsertComputed` updated following [tc39/proposal-upsert#79](https://github.com/tc39/proposal-upsert/pull/79)\n  - Built-ins:\n    - `Map.prototype.getOrInsert`\n    - `Map.prototype.getOrInsertComputed`\n    - `WeakMap.prototype.getOrInsert`\n    - `WeakMap.prototype.getOrInsertComputed`\n- Don't call well-known `Symbol` methods for `RegExp` on primitive values following [tc39/ecma262#3009](https://github.com/tc39/ecma262/pull/3009):\n  - For avoid performance regression, temporarily, only in own `core-js` implementations\n  - Built-ins:\n    - `String.prototype.matchAll`\n    - `String.prototype.match`\n    - `String.prototype.replaceAll`\n    - `String.prototype.replace`\n    - `String.prototype.search`\n    - `String.prototype.split`\n- Added workaround for the [`Uint8Array.prototype.setFromBase64`](https://github.com/tc39/proposal-arraybuffer-base64) [bug](https://bugs.webkit.org/show_bug.cgi?id=290829) in some of Linux builds of WebKit\n- Implemented early-error iterator closing following [tc39/ecma262#3467](https://github.com/tc39/ecma262/pull/3467), including fix of [a WebKit bug](https://bugs.webkit.org/show_bug.cgi?id=291195), in the following methods:\n  - `Iterator.prototype.drop`\n  - `Iterator.prototype.every`\n  - `Iterator.prototype.filter`\n  - `Iterator.prototype.find`\n  - `Iterator.prototype.flatMap`\n  - `Iterator.prototype.forEach`\n  - `Iterator.prototype.map`\n  - `Iterator.prototype.reduce`\n  - `Iterator.prototype.some`\n  - `Iterator.prototype.take`\n- Fixed missing forced replacement of [`AsyncIterator` helpers](https://github.com/tc39/proposal-async-iterator-helpers)\n- Added closing of sync iterator when async wrapper yields a rejection following [tc39/ecma262#2600](https://github.com/tc39/ecma262/pull/2600). Affected methods:\n  - [`Array.fromAsync`](https://github.com/tc39/proposal-array-from-async) (due to the lack of async feature detection capability - temporarily, only in own `core-js` implementation)\n  - [`AsyncIterator.from`](https://github.com/tc39/proposal-async-iterator-helpers)\n  - [`Iterator.prototype.toAsync`](https://github.com/tc39/proposal-async-iterator-helpers)\n- Added detection for throwing on `undefined` initial parameter in `Iterator.prototype.reduce` (see [WebKit bug](https://bugs.webkit.org/show_bug.cgi?id=291651))\n- `core-js-compat` and `core-js-builder` API:\n  - Added `'intersect'` support for `targets.esmodules` (Babel 7 behavior)\n  - Fixed handling of `targets.esmodules: true` (Babel 7 behavior)\n- Compat data improvements:\n  - [Explicit Resource Management](https://github.com/tc39/proposal-explicit-resource-management) features disabled (again) in V8 ~ Chromium 135 and re-added in 136\n  - [`RegExp.escape`](https://github.com/tc39/proposal-regex-escaping) marked as [shipped from V8 ~ Chromium 136](https://issues.chromium.org/issues/353856236#comment17)\n  - [`Error.isError`](https://github.com/tc39/proposal-is-error) marked as [shipped from FF138](https://bugzilla.mozilla.org/show_bug.cgi?id=1952249)\n  - [Explicit Resource Management](https://github.com/tc39/proposal-explicit-resource-management) features re-enabled in [Deno 2.2.10](https://github.com/denoland/deno/releases/tag/v2.2.10)\n  - [`Iterator` helpers proposal](https://github.com/tc39/proposal-iterator-helpers) features marked as supported from Deno 1.38.1 since it seems they were disabled in 1.38.0\n  - `Iterator.prototype.{ drop, reduce, take }` methods marked as fixed in Bun 1.2.11\n  - Added [NodeJS 24.0](https://github.com/nodejs/node/pull/57609) compat data mapping\n  - Updated Electron 36 and added Electron 37 compat data mapping\n  - Added Opera Android [88](https://forums.opera.com/topic/83800/opera-for-android-88) and [89](https://forums.opera.com/topic/84437/opera-for-android-89) compat data mapping\n  - Added Oculus Quest Browser 37 compat data mapping\n\n### [3.41.0 - 2025.03.01](https://github.com/zloirock/core-js/releases/tag/v3.41.0)\n- Changes [v3.40.0...v3.41.0](https://github.com/zloirock/core-js/compare/v3.40.0...v3.41.0) (85 commits)\n- [`RegExp.escape` proposal](https://github.com/tc39/proposal-regex-escaping):\n  - Built-ins:\n    - `RegExp.escape`\n  - Moved to stable ES, [February 2025 TC39 meeting](https://github.com/tc39/proposals/commit/b81fa9bccf4b51f33de0cbe797976a84d05d4b76)\n  - Added `es.` namespace module, `/es/` and `/stable/` namespaces entries\n- [`Float16` proposal](https://github.com/tc39/proposal-float16array):\n  - Built-ins:\n    - `Math.f16round`\n    - `DataView.prototype.getFloat16`\n    - `DataView.prototype.setFloat16`\n  - Moved to stable ES, [February 2025 TC39 meeting](https://github.com/tc39/proposals/commit/b81fa9bccf4b51f33de0cbe797976a84d05d4b76)\n  - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries\n- [`Math.clamp` stage 1 proposal](https://github.com/CanadaHonk/proposal-math-clamp):\n  - Built-ins:\n    - `Math.clamp`\n  - Extracted from [old `Math` extensions proposal](https://github.com/rwaldron/proposal-math-extensions), [February 2025 TC39 meeting](https://github.com/tc39/proposals/commit/0c24594aab19a50b86d0db7248cac5eb0ae35621)\n  - Added arguments validation\n  - Added new entries\n- Added a workaround of a V8 `AsyncDisposableStack` bug, [tc39/proposal-explicit-resource-management/256](https://github.com/tc39/proposal-explicit-resource-management/issues/256)\n- Compat data improvements:\n  - [`DisposableStack`, `SuppressedError` and `Iterator.prototype[@@dispose]`](https://github.com/tc39/proposal-explicit-resource-management) marked as [shipped from V8 ~ Chromium 134](https://issues.chromium.org/issues/42203506#comment24)\n  - [`Error.isError`](https://github.com/tc39/proposal-is-error) added and marked as [shipped from V8 ~ Chromium 134](https://issues.chromium.org/issues/382104870#comment4)\n  - [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://github.com/tc39/proposal-float16array) marked as [shipped from V8 ~ Chromium 135](https://issues.chromium.org/issues/42203953#comment36)\n  - [`Iterator` helpers proposal](https://github.com/tc39/proposal-iterator-helpers) features marked as [shipped from Safari 18.4](https://developer.apple.com/documentation/safari-release-notes/safari-18_4-release-notes#New-Features)\n  - [`JSON.parse` source text access proposal](https://github.com/tc39/proposal-json-parse-with-source) features marked as [shipped from Safari 18.4](https://developer.apple.com/documentation/safari-release-notes/safari-18_4-release-notes#New-Features)\n  - [`Math.sumPrecise`](https://github.com/tc39/proposal-math-sum) marked as shipped from FF137\n  - Added [Deno 2.2](https://github.com/denoland/deno/releases/tag/v2.2.0) compat data and compat data mapping\n    - Explicit Resource Management features are available in V8 ~ Chromium 134, but not in Deno 2.2 based on it\n  - Updated Electron 35 and added Electron 36 compat data mapping\n  - Updated [Opera Android 87](https://forums.opera.com/topic/75836/opera-for-android-87) compat data mapping\n  - Added Samsung Internet 28 compat data mapping\n  - Added Oculus Quest Browser 36 compat data mapping\n\n### [3.40.0 - 2025.01.08](https://github.com/zloirock/core-js/releases/tag/v3.40.0)\n- Changes [v3.39.0...v3.40.0](https://github.com/zloirock/core-js/compare/v3.39.0...v3.40.0) (130 commits)\n- Added [`Error.isError` stage 3 proposal](https://github.com/tc39/proposal-is-error):\n  - Added built-ins:\n    - `Error.isError`\n  - We have no bulletproof way to polyfill this method / check if the object is an error, so it's an enough naive implementation that is marked as `.sham`\n- [Explicit Resource Management stage 3 proposal](https://github.com/tc39/proposal-explicit-resource-management):\n  - Updated the way async disposing of only sync disposable resources, [tc39/proposal-explicit-resource-management/218](https://github.com/tc39/proposal-explicit-resource-management/pull/218)\n- [`Iterator` sequencing stage 2.7 proposal](https://github.com/tc39/proposal-iterator-sequencing):\n  - Reuse `IteratorResult` objects when possible, [tc39/proposal-iterator-sequencing/17](https://github.com/tc39/proposal-iterator-sequencing/issues/17), [tc39/proposal-iterator-sequencing/18](https://github.com/tc39/proposal-iterator-sequencing/pull/18), December 2024 TC39 meeting\n- Added a fix of [V8 < 12.8](https://issues.chromium.org/issues/351332634) / [NodeJS < 22.10](https://github.com/nodejs/node/pull/54883) bug with handling infinite length of set-like objects in `Set` methods\n- Optimized `DataView.prototype.{ getFloat16, setFloat16 }` performance, [#1379](https://github.com/zloirock/core-js/pull/1379), thanks [**@LeviPesin**](https://github.com/LeviPesin)\n- Dropped unneeded feature detection of non-standard `%TypedArray%.prototype.toSpliced`\n- Dropped possible re-usage of some non-standard / early stage features (like `Math.scale`) available on global\n- Some other minor improvements\n- Compat data improvements:\n  - [`RegExp.escape`](https://github.com/tc39/proposal-regex-escaping) marked as shipped from Safari 18.2\n  - [`Promise.try`](https://github.com/tc39/proposal-promise-try) marked as shipped from Safari 18.2\n  - [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://github.com/tc39/proposal-float16array) marked as shipped from Safari 18.2\n  - [`Uint8Array` to / from base64 and hex proposal](https://github.com/tc39/proposal-arraybuffer-base64) methods marked as shipped from Safari 18.2\n  - [`JSON.parse` source text access proposal](https://github.com/tc39/proposal-json-parse-with-source) features marked as [shipped from FF135](https://bugzilla.mozilla.org/show_bug.cgi?id=1934622)\n  - [`RegExp.escape`](https://github.com/tc39/proposal-regex-escaping) marked as shipped [from FF134](https://bugzilla.mozilla.org/show_bug.cgi?id=1918235)\n  - [`Promise.try`](https://github.com/tc39/proposal-promise-try) marked as shipped from FF134\n  - [`Symbol.dispose`, `Symbol.asyncDispose` and `Iterator.prototype[@@dispose]`](https://github.com/tc39/proposal-explicit-resource-management) marked as shipped from FF135\n  - [`JSON.parse` source text access proposal](https://github.com/tc39/proposal-json-parse-with-source) features marked as shipped from Bun 1.1.43\n  - Fixed NodeJS version where `URL.parse` was added - 22.1 instead of 22.0\n  - Added [Deno 2.1](https://github.com/denoland/deno/releases/tag/v2.1.0) compat data mapping\n  - Added [Rhino 1.8.0](https://github.com/mozilla/rhino/releases/tag/Rhino1_8_0_Release) compat data with significant number of modern features\n  - Added Electron 35 compat data mapping\n  - Updated Opera 115+ compat data mapping\n  - Added Opera Android [86](https://forums.opera.com/topic/75006/opera-for-android-86) and 87 compat data mapping\n\n### [3.39.0 - 2024.10.31](https://github.com/zloirock/core-js/releases/tag/v3.39.0)\n- Changes [v3.38.1...v3.39.0](https://github.com/zloirock/core-js/compare/v3.38.1...v3.39.0)\n- [`Iterator` helpers proposal](https://github.com/tc39/proposal-iterator-helpers):\n  - Built-ins:\n    - `Iterator`\n      - `Iterator.from`\n      - `Iterator.prototype.drop`\n      - `Iterator.prototype.every`\n      - `Iterator.prototype.filter`\n      - `Iterator.prototype.find`\n      - `Iterator.prototype.flatMap`\n      - `Iterator.prototype.forEach`\n      - `Iterator.prototype.map`\n      - `Iterator.prototype.reduce`\n      - `Iterator.prototype.some`\n      - `Iterator.prototype.take`\n      - `Iterator.prototype.toArray`\n      - `Iterator.prototype[@@toStringTag]`\n  - Moved to stable ES, [October 2024 TC39 meeting](https://github.com/tc39/proposal-iterator-helpers/issues/284#event-14549961807)\n  - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries\n- [`Promise.try`](https://github.com/tc39/proposal-promise-try):\n  - Built-ins:\n    - `Promise.try`\n  - Moved to stable ES, [October 2024 TC39 meeting](https://github.com/tc39/proposal-promise-try/commit/53d3351687274952b3b88f3ad024d9d68a9c1c93)\n  - Added `es.` namespace module, `/es/` and `/stable/` namespaces entries\n  - Fixed `/actual|full/promise/try` entries for the callback arguments support\n- [`Math.sumPrecise` proposal](https://github.com/tc39/proposal-math-sum):\n  - Built-ins:\n    - `Math.sumPrecise`\n  - Moved to stage 3, [October 2024 TC39 meeting](https://github.com/tc39/proposal-math-sum/issues/19)\n  - Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection\n- Added [`Iterator` sequencing stage 2.7 proposal](https://github.com/tc39/proposal-iterator-sequencing):\n  - Added built-ins:\n    - `Iterator.concat`\n- [`Map` upsert stage 2 proposal](https://github.com/tc39/proposal-upsert):\n  - [Updated to the new API following the October 2024 TC39 meeting](https://github.com/tc39/proposal-upsert/pull/58)\n  - Added built-ins:\n    - `Map.prototype.getOrInsert`\n    - `Map.prototype.getOrInsertComputed`\n    - `WeakMap.prototype.getOrInsert`\n    - `WeakMap.prototype.getOrInsertComputed`\n- [Extractors proposal](https://github.com/tc39/proposal-extractors) moved to stage 2, [October 2024 TC39 meeting](https://github.com/tc39/proposals/commit/11bc489049fc5ce59b21e98a670a84f153a29a80)\n- Usage of `@@species` pattern removed from `%TypedArray%` and `ArrayBuffer` methods, [tc39/ecma262/3450](https://github.com/tc39/ecma262/pull/3450):\n  - Built-ins:\n    - `%TypedArray%.prototype.filter`\n    - `%TypedArray%.prototype.filterReject`\n    - `%TypedArray%.prototype.map`\n    - `%TypedArray%.prototype.slice`\n    - `%TypedArray%.prototype.subarray`\n    - `ArrayBuffer.prototype.slice`\n- Some other minor improvements\n- Compat data improvements:\n  - [`Uint8Array` to / from base64 and hex proposal](https://github.com/tc39/proposal-arraybuffer-base64) methods marked as [shipped from FF133](https://bugzilla.mozilla.org/show_bug.cgi?id=1917885#c9)\n  - Added [NodeJS 23.0](https://nodejs.org/en/blog/release/v23.0.0) compat data mapping\n  - `self` descriptor [is fixed](https://github.com/denoland/deno/issues/24683) in Deno 1.46.0\n  - Added Deno [1.46](https://github.com/denoland/deno/releases/tag/v1.46.0) and [2.0](https://github.com/denoland/deno/releases/tag/v2.0.0) compat data mapping\n  - [`Iterator` helpers proposal](https://github.com/tc39/proposal-iterator-helpers) methods marked as [shipped from Bun 1.1.31](https://github.com/oven-sh/bun/pull/14455)\n  - Added Electron 34 and updated Electron 33 compat data mapping\n  - Added [Opera Android 85](https://forums.opera.com/topic/74256/opera-for-android-85) compat data mapping\n  - Added Oculus Quest Browser 35 compat data mapping\n\n### [3.38.1 - 2024.08.20](https://github.com/zloirock/core-js/releases/tag/v3.38.1)\n- Changes [v3.38.0...v3.38.1](https://github.com/zloirock/core-js/compare/v3.38.0...v3.38.1)\n- Fixed some cases of `URLSearchParams` percent decoding, [#1357](https://github.com/zloirock/core-js/issues/1357), [#1361](https://github.com/zloirock/core-js/pull/1361), thanks [**@slowcheetah**](https://github.com/slowcheetah)\n- Some stylistic changes and minor optimizations\n- Compat data improvements:\n  - [`Iterator` helpers proposal](https://github.com/tc39/proposal-iterator-helpers) methods marked as [shipped from FF131](https://bugzilla.mozilla.org/show_bug.cgi?id=1896390)\n  - [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://github.com/tc39/proposal-float16array) marked as shipped from Bun 1.1.23\n  - [`RegExp.escape`](https://github.com/tc39/proposal-regex-escaping) marked as shipped from Bun 1.1.22\n  - [`Promise.try`](https://github.com/tc39/proposal-promise-try) marked as shipped from Bun 1.1.22\n  - [`Uint8Array` to / from base64 and hex proposal](https://github.com/tc39/proposal-arraybuffer-base64) methods marked as shipped from Bun 1.1.22\n  - Added [Hermes 0.13](https://github.com/facebook/hermes/releases/tag/v0.13.0) compat data, similar to React Native 0.75 Hermes\n  - Added [Opera Android 84](https://forums.opera.com/topic/73545/opera-for-android-84) compat data mapping\n\n### [3.38.0 - 2024.08.05](https://github.com/zloirock/core-js/releases/tag/v3.38.0)\n- Changes [v3.37.1...v3.38.0](https://github.com/zloirock/core-js/compare/v3.37.1...v3.38.0)\n- [`RegExp.escape` proposal](https://github.com/tc39/proposal-regex-escaping):\n  - Built-ins:\n    - `RegExp.escape`\n  - Moved to stage 3, [June 2024](https://github.com/tc39/proposals/commit/4b8ee265248abfa2c88ed71b3c541ddd5a2eaffe) and [July 2024](https://github.com/tc39/proposals/commit/bdb2eea6c5e41a52f2d6047d7de1a31b5d188c4f) TC39 meetings\n  - Updated the way of escaping, [regex-escaping/77](https://github.com/tc39/proposal-regex-escaping/pull/77)\n  - Throw an error on non-strings, [regex-escaping/58](https://github.com/tc39/proposal-regex-escaping/pull/58)\n  - Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection\n- [`Promise.try` proposal](https://github.com/tc39/proposal-promise-try):\n  - Built-ins:\n    - `Promise.try`\n  - Moved to stage 3, [June 2024 TC39 meeting](https://github.com/tc39/proposals/commit/de20984cd7f7bc616682c557cb839abc100422cb)\n  - Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection\n- [`Uint8Array` to / from base64 and hex stage 3 proposal](https://github.com/tc39/proposal-arraybuffer-base64):\n  - Built-ins:\n    - `Uint8Array.fromBase64`\n    - `Uint8Array.fromHex`\n    - `Uint8Array.prototype.setFromBase64`\n    - `Uint8Array.prototype.setFromHex`\n    - `Uint8Array.prototype.toBase64`\n    - `Uint8Array.prototype.toHex`\n  - Added `Uint8Array.prototype.{ setFromBase64, setFromHex }` methods\n  - Added `Uint8Array.fromBase64` and `Uint8Array.prototype.setFromBase64` `lastChunkHandling` option, [proposal-arraybuffer-base64/33](https://github.com/tc39/proposal-arraybuffer-base64/pull/33)\n  - Added `Uint8Array.prototype.toBase64` `omitPadding` option, [proposal-arraybuffer-base64/60](https://github.com/tc39/proposal-arraybuffer-base64/pull/60)\n  - Added throwing a `TypeError` on arrays backed by detached buffers\n  - Unconditional forced replacement changed to feature detection\n- Fixed `RegExp` named capture groups polyfill in combination with non-capturing groups, [#1352](https://github.com/zloirock/core-js/pull/1352), thanks [**@Ulop**](https://github.com/Ulop)\n- Improved some cases of environment detection\n- Uses [`process.getBuiltinModule`](https://nodejs.org/docs/latest/api/process.html#processgetbuiltinmoduleid) for getting built-in NodeJS modules where it's available\n- Uses `https` instead of `http` in `URL` constructor feature detection to avoid extra notifications from some overly vigilant security scanners, [#1345](https://github.com/zloirock/core-js/issues/1345)\n- Some minor optimizations\n- Updated `browserslist` in `core-js-compat` dependencies that fixes an upstream issue with incorrect interpretation of some `browserslist` queries, [#1344](https://github.com/zloirock/core-js/issues/1344), [browserslist/829](https://github.com/browserslist/browserslist/issues/829), [browserslist/836](https://github.com/browserslist/browserslist/pull/836)\n- Compat data improvements:\n  - Added [Safari 18.0](https://webkit.org/blog/15443/news-from-wwdc24-webkit-in-safari-18-beta/) compat data:\n    - Fixed [`Object.groupBy` and `Map.groupBy`](https://github.com/tc39/proposal-array-grouping) to [work for non-objects](https://bugs.webkit.org/show_bug.cgi?id=271524)\n    - Fixed [throwing a `RangeError` if `Set` methods are called on an object with negative size property](https://bugs.webkit.org/show_bug.cgi?id=267494)\n    - Fixed [`Set.prototype.symmetricDifference` to call `this.has` in each iteration](https://bugs.webkit.org/show_bug.cgi?id=272679)\n    - Fixed [`Array.fromAsync`](https://github.com/tc39/proposal-array-from-async) to [not call the `Array` constructor twice](https://bugs.webkit.org/show_bug.cgi?id=271703)\n    - Added [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse)\n  - [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://github.com/tc39/proposal-float16array) marked as [shipped from FF129](https://bugzilla.mozilla.org/show_bug.cgi?id=1903329)\n  - [`Symbol.asyncDispose`](https://github.com/tc39/proposal-explicit-resource-management) added and marked as supported from V8 ~ Chromium 127\n  - [`Promise.try`](https://github.com/tc39/proposal-promise-try) added and marked as supported [from V8 ~ Chromium 128](https://chromestatus.com/feature/6315704705089536)\n  - Added Deno [1.44](https://github.com/denoland/deno/releases/tag/v1.44.0) and [1.45](https://github.com/denoland/deno/releases/tag/v1.45.0) compat data mapping\n  - `self` descriptor [is broken in Deno 1.45.3](https://github.com/denoland/deno/issues/24683) (again)\n  - Added Electron 32 and 33 compat data mapping\n  - Added [Opera Android 83](https://forums.opera.com/topic/72570/opera-for-android-83) compat data mapping\n  - Added Samsung Internet 27 compat data mapping\n  - Added Oculus Quest Browser 34 compat data mapping\n\n### [3.37.1 - 2024.05.14](https://github.com/zloirock/core-js/releases/tag/v3.37.1)\n- Changes [v3.37.0...v3.37.1](https://github.com/zloirock/core-js/compare/v3.37.0...v3.37.1)\n- Fixed [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) feature detection for some specific cases\n- Compat data improvements:\n  - [`Set` methods proposal](https://github.com/tc39/proposal-set-methods) added and marked as [supported from FF 127](https://bugzilla.mozilla.org/show_bug.cgi?id=1868423)\n  - [`Symbol.dispose`](https://github.com/tc39/proposal-explicit-resource-management) added and marked as supported from V8 ~ Chromium 125\n  - [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://github.com/tc39/proposal-float16array) added and marked as [supported from Deno 1.43](https://github.com/denoland/deno/pull/23490)\n  - [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as [supported from Chromium 126](https://chromestatus.com/feature/6301071388704768)\n  - [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as [supported from NodeJS 22.0](https://github.com/nodejs/node/pull/52280)\n  - [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as [supported from Deno 1.43](https://github.com/denoland/deno/pull/23318)\n  - Added [Rhino 1.7.15](https://github.com/mozilla/rhino/releases/tag/Rhino1_7_15_Release) compat data, many features marked as supported\n  - Added [NodeJS 22.0](https://nodejs.org/en/blog/release/v22.0.0) compat data mapping\n  - Added [Deno 1.43](https://github.com/denoland/deno/releases/tag/v1.43.0) compat data mapping\n  - Added Electron 31 compat data mapping\n  - Updated [Opera Android 82](https://forums.opera.com/topic/71513/opera-for-android-82) compat data mapping\n  - Added Samsung Internet 26 compat data mapping\n  - Added Oculus Quest Browser 33 compat data mapping\n\n### [3.37.0 - 2024.04.17](https://github.com/zloirock/core-js/releases/tag/v3.37.0)\n- Changes [v3.36.1...v3.37.0](https://github.com/zloirock/core-js/compare/v3.36.1...v3.37.0)\n- [New `Set` methods proposal](https://github.com/tc39/proposal-set-methods):\n  - Built-ins:\n    - `Set.prototype.intersection`\n    - `Set.prototype.union`\n    - `Set.prototype.difference`\n    - `Set.prototype.symmetricDifference`\n    - `Set.prototype.isSubsetOf`\n    - `Set.prototype.isSupersetOf`\n    - `Set.prototype.isDisjointFrom`\n  - Moved to stable ES, [April 2024 TC39 meeting](https://github.com/tc39/proposals/commit/bda5a6bccbaca183e193f9e680889ea5b5462ce4)\n  - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries\n- [Explicit Resource Management stage 3 proposal](https://github.com/tc39/proposal-explicit-resource-management):\n  - Some minor updates like [explicit-resource-management/217](https://github.com/tc39/proposal-explicit-resource-management/pull/217)\n- Added [`Math.sumPrecise` stage 2.7 proposal](https://github.com/tc39/proposal-math-sum/):\n  - Built-ins:\n    - `Math.sumPrecise`\n- [`Promise.try` proposal](https://github.com/tc39/proposal-promise-try):\n  - Built-ins:\n    - `Promise.try`\n  - Added optional arguments support, [promise-try/16](https://github.com/tc39/proposal-promise-try/pull/16)\n  - Moved to stage 2.7, [April 2024 TC39 meeting](https://github.com/tc39/proposals/commit/301fc9c7eef2344d2b443f32a9c24ecd5fbdbec0)\n- [`RegExp.escape` stage 2 proposal](https://github.com/tc39/proposal-regex-escaping):\n  - Moved to hex-escape semantics, [regex-escaping/67](https://github.com/tc39/proposal-regex-escaping/pull/67)\n    - It's not the final change of the way of escaping, waiting for [regex-escaping/77](https://github.com/tc39/proposal-regex-escaping/pull/77) soon\n- [Pattern matching stage 1 proposal](https://github.com/tc39/proposal-pattern-matching):\n  - Built-ins:\n    - `Symbol.customMatcher`\n  - Once again, [the used well-known symbol was renamed](https://github.com/tc39/proposal-pattern-matching/pull/295)\n  - Added new entries for that\n- Added [Extractors stage 1 proposal](https://github.com/tc39/proposal-extractors):\n  - Built-ins:\n    - `Symbol.customMatcher`\n  - Since the `Symbol.customMatcher` well-known symbol from the pattern matching proposal is also used in the exactors proposal, added an entry also for this proposal\n- Added [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse), [url/825](https://github.com/whatwg/url/pull/825)\n- Engines bugs fixes:\n  - Added a fix of [Safari `{ Object, Map }.groupBy` bug that does not support iterable primitives](https://bugs.webkit.org/show_bug.cgi?id=271524)\n  - Added a fix of [Safari bug with double call of constructor in `Array.fromAsync`](https://bugs.webkit.org/show_bug.cgi?id=271703)\n- Compat data improvements:\n  - [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as supported [from FF 126](https://bugzilla.mozilla.org/show_bug.cgi?id=1887611)\n  - [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as supported [from Bun 1.1.4](https://github.com/oven-sh/bun/pull/10129)\n  - [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) fixed and marked as supported [from Bun 1.1.0](https://github.com/oven-sh/bun/pull/9710)\n  - [New `Set` methods](https://github.com/tc39/proposal-set-methods) fixed in JavaScriptCore and marked as supported from Bun 1.1.1\n  - Added Opera Android 82 compat data mapping\n\n### [3.36.1 - 2024.03.19](https://github.com/zloirock/core-js/releases/tag/v3.36.1)\n- Changes [v3.36.0...v3.36.1](https://github.com/zloirock/core-js/compare/v3.36.0...v3.36.1)\n- Fixed some validation cases in `Object.setPrototypeOf`, [#1329](https://github.com/zloirock/core-js/issues/1329), thanks [**@minseok-choe**](https://github.com/minseok-choe)\n- Fixed the order of validations in `Array.from`, [#1331](https://github.com/zloirock/core-js/pull/1331), thanks [**@minseok-choe**](https://github.com/minseok-choe)\n- Added a fix of [Bun `queueMicrotask` arity](https://github.com/oven-sh/bun/issues/9249)\n- Added a fix of [Bun `URL.canParse` arity](https://github.com/oven-sh/bun/issues/9250)\n- Added a fix of Bun `SuppressedError` [extra arguments support](https://github.com/oven-sh/bun/issues/9283) and [arity](https://github.com/oven-sh/bun/issues/9282)\n- Compat data improvements:\n  - [`value` argument of `URLSearchParams.prototype.{ has, delete }`](https://url.spec.whatwg.org/#dom-urlsearchparams-delete) marked as supported [from Bun 1.0.31](https://github.com/oven-sh/bun/issues/9263)\n  - Added React Native 0.74 Hermes compat data, `Array.prototype.{ toSpliced, toReversed, with }` and `atob` marked as supported\n  - Added Deno 1.41.3 compat data mapping\n  - Added Opera Android 81 compat data mapping\n  - Added Samsung Internet 25 compat data mapping\n  - Added Oculus Quest Browser 32 compat data mapping\n  - Updated Electron 30 compat data mapping\n\n### [3.36.0 - 2024.02.14](https://github.com/zloirock/core-js/releases/tag/v3.36.0)\n- [`ArrayBuffer.prototype.transfer` and friends proposal](https://github.com/tc39/proposal-arraybuffer-transfer):\n  - Built-ins:\n    - `ArrayBuffer.prototype.detached`\n    - `ArrayBuffer.prototype.transfer`\n    - `ArrayBuffer.prototype.transferToFixedLength`\n  - Moved to stable ES, [Febrary 2024 TC39 meeting](https://github.com/tc39/proposals/commit/c84d3dde9a7d8ee4410ffa28624fc4c39247faca)\n  - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries\n- [`Uint8Array` to / from base64 and hex proposal](https://github.com/tc39/proposal-arraybuffer-base64):\n  - Methods:\n    - `Uint8Array.fromBase64`\n    - `Uint8Array.fromHex`\n    - `Uint8Array.prototype.toBase64`\n    - `Uint8Array.prototype.toHex`\n  - Moved to stage 3, [Febrary 2024 TC39 meeting](https://github.com/tc39/proposals/commit/278ab28b8f849f2110d770e7b034b7ef59f14daf)\n  - Added `/actual/` namespace entries\n  - Skipped adding new methods of writing to existing arrays to clarification some moments\n- [`Promise.try` proposal](https://github.com/tc39/proposal-promise-try) has been resurrected and moved to stage 2, [Febrary 2024 TC39 meeting](https://github.com/tc39/proposal-promise-try/issues/15)\n- Added an entry point for [the new TC39 proposals stage](https://tc39.es/process-document/) - `core-js/stage/2.7` - still empty\n- Fixed regression in `Set.prototype.intersection` feature detection\n- Fixed a missed check in `Array.prototype.{ indexOf, lastIndexOf, includes }`, [#1325](https://github.com/zloirock/core-js/issues/1325), thanks [**@minseok-choe**](https://github.com/minseok-choe)\n- Fixed a missed check in `Array.prototype.{ reduce, reduceRight }`, [#1327](https://github.com/zloirock/core-js/issues/1327), thanks [**@minseok-choe**](https://github.com/minseok-choe)\n- Fixed `Array.from` and some other methods with proxy targets, [#1322](https://github.com/zloirock/core-js/issues/1322), thanks [**@minseok-choe**](https://github.com/minseok-choe)\n- Fixed dependencies loading for modules from `ArrayBuffer.prototype.transfer` and friends proposal in some specific cases in IE10-\n- Dropped context workaround from collection static methods entries since with current methods semantic it's no longer required\n- Added instance methods polyfills to entries of collections static methods that produce collection instances\n- Added missed `Date.prototype.toJSON` to `JSON.stringify` entries dependencies\n- Added debugging info in some missed cases\n- Compat data improvements:\n  - [`{ Map, Object }.groupBy`](https://github.com/tc39/proposal-array-grouping), [`Promise.withResolvers`](https://github.com/tc39/proposal-promise-with-resolvers), [`ArrayBuffer.prototype.transfer` and friends](https://github.com/tc39/proposal-arraybuffer-transfer) marked as supported from [Safari 17.4](https://developer.apple.com/documentation/safari-release-notes/safari-17_4-release-notes#JavaScript)\n  - [New `Set` methods](https://github.com/tc39/proposal-set-methods) [fixed](https://bugs.chromium.org/p/v8/issues/detail?id=14559#c4) and marked as supported from V8 ~ Chrome 123\n  - Added [Deno 1.40](https://deno.com/blog/v1.40) compat data mapping\n  - `Symbol.metadata` marked as supported from [Deno 1.40.4](https://github.com/denoland/deno/releases/tag/v1.40.4)\n  - Updated Electron 30 compat data mapping\n\n### [3.35.1 - 2024.01.21](https://github.com/zloirock/core-js/releases/tag/v3.35.1)\n- Fixed internal `ToLength` operation with bigints, [#1318](https://github.com/zloirock/core-js/issues/1318)\n- Removed significant redundant code from `String.prototype.split` polyfill\n- Fixed setting names of methods with symbol keys in some old engines\n- Minor fix of prototype methods export logic in the pure version\n- Compat data improvements:\n  - [`Iterator` helpers proposal](https://github.com/tc39/proposal-iterator-helpers) methods marked as supported from V8 ~ Chrome 122\n  - Note that V8 ~ Chrome 122 add [`Set` methods](https://github.com/tc39/proposal-set-methods), but they have [a bug](https://bugs.chromium.org/p/v8/issues/detail?id=14559) [similar to Safari](https://bugs.webkit.org/show_bug.cgi?id=267494)\n  - `self` marked as fixed from Bun 1.0.22\n  - [`SuppressedError` and `Symbol.{ dispose, asyncDispose }`](https://github.com/tc39/proposal-explicit-resource-management) marked as [supported from Bun 1.0.23](https://bun.sh/blog/bun-v1.0.23#resource-management-is-now-supported)\n  - Added Oculus Quest Browser 31 compat data mapping\n  - Updated Electron 29 and added Electron 30 compat data mapping\n\n### [3.35.0 - 2023.12.29](https://github.com/zloirock/core-js/releases/tag/v3.35.0)\n- [`{ Map, Set, WeakMap, WeakSet }.{ from, of }`](https://github.com/tc39/proposal-setmap-offrom) became non-generic, following [this](https://github.com/tc39/proposal-setmap-offrom/issues/16#issuecomment-1843346541) and some other notes. Now they can be invoked without `this`, but no longer return subclass instances\n- Fixed handling some cases of non-enumerable symbol keys from `Symbol` polyfill\n- Removed unneeded NodeJS domains-related logic from `queueMicrotask` polyfill\n- Fixed subclassing of wrapped `ArrayBuffer`\n- Refactoring, many different minor optimizations\n- Compat data improvements:\n  - [`Array.fromAsync`](https://github.com/tc39/proposal-array-from-async) marked as [supported from V8 ~ Chrome 121](https://bugs.chromium.org/p/v8/issues/detail?id=13321#c13)\n  - It seems that the ancient [`Array.prototype.push` bug](https://bugs.chromium.org/p/v8/issues/detail?id=12681) is fixed in V8 ~ Chrome 122 (Hallelujah!)\n  - [`ArrayBuffer.prototype.transfer` and friends proposal](https://github.com/tc39/proposal-arraybuffer-transfer) features marked as [supported from FF 122](https://bugzilla.mozilla.org/show_bug.cgi?id=1865103#c8) and Bun 1.0.19\n  - [`Object.groupBy` and `Map.groupBy`](https://github.com/tc39/proposal-array-grouping) marked as supported from Bun 1.0.19\n  - Since [`Iterator` helpers proposal](https://github.com/tc39/proposal-iterator-helpers) methods are still not disabled in Deno, the web compatibility issue why it was disabled in Chromium makes no sense for Deno and fixed in the spec, they marked as supported from Deno 1.37\n  - Added Opera Android 80 and updated [Opera Android 79](https://forums.opera.com/topic/68490/opera-for-android-79) compat data mapping\n  - Added Samsung Internet 24 compat data mapping\n\n### [3.34.0 - 2023.12.06](https://github.com/zloirock/core-js/releases/tag/v3.34.0)\n- [`Array` grouping proposal](https://github.com/tc39/proposal-array-grouping):\n  - Methods:\n    - `Object.groupBy`\n    - `Map.groupBy`\n  - Moved to stable ES, [November 2023 TC39 meeting](https://github.com/tc39/proposal-array-grouping/issues/60)\n  - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries\n- [`Promise.withResolvers` proposal](https://github.com/tc39/proposal-promise-with-resolvers):\n  - Method:\n    - `Promise.withResolvers`\n  - Moved to stable ES, [November 2023 TC39 meeting](https://twitter.com/robpalmer2/status/1729216597623976407)\n  - Added `es.` namespace module, `/es/` and `/stable/` namespaces entries\n- Fixed a web incompatibility issue of [`Iterator` helpers proposal](https://github.com/tc39/proposal-iterator-helpers), [proposal-iterator-helpers/287](https://github.com/tc39/proposal-iterator-helpers/pull/287) and some following changes, November 2023 TC39 meeting\n- Added [`Uint8Array` to / from base64 and hex stage 2 proposal](https://github.com/tc39/proposal-arraybuffer-base64):\n  - Methods:\n    - `Uint8Array.fromBase64`\n    - `Uint8Array.fromHex`\n    - `Uint8Array.prototype.toBase64`\n    - `Uint8Array.prototype.toHex`\n- Relaxed some specific cases of [`Number.fromString`](https://github.com/tc39/proposal-number-fromstring) validation before clarification of [proposal-number-fromstring/24](https://github.com/tc39/proposal-number-fromstring/issues/24)\n- Fixed `@@toStringTag` property descriptors on DOM collections, [#1312](https://github.com/zloirock/core-js/issues/1312)\n- Fixed the order of arguments validation in `Array` iteration methods, [#1313](https://github.com/zloirock/core-js/issues/1313)\n- Some minor `atob` / `btoa` improvements\n- Compat data improvements:\n  - [`Promise.withResolvers`](https://github.com/tc39/proposal-promise-with-resolvers) marked as shipped from FF121\n\n### [3.33.3 - 2023.11.20](https://github.com/zloirock/core-js/releases/tag/v3.33.3)\n- Fixed an issue getting the global object on Duktape, [#1303](https://github.com/zloirock/core-js/issues/1303)\n- Avoid sharing internal `[[DedentMap]]` from [`String.dedent` proposal](https://github.com/tc39/proposal-string-dedent) between `core-js` instances before stabilization of the proposal\n- Some internal untangling\n- Compat data improvements:\n  - Added [Deno 1.38](https://deno.com/blog/v1.38) compat data mapping\n  - [`Array.fromAsync`](https://github.com/tc39/proposal-array-from-async) marked as [supported from Deno 1.38](https://github.com/denoland/deno/pull/21048)\n  - [`Symbol.{ dispose, asyncDispose }`](https://github.com/tc39/proposal-explicit-resource-management) marked as [supported from Deno 1.38](https://github.com/denoland/deno/pull/20845)\n  - Added Opera Android 79 compat data mapping\n  - Added Oculus Quest Browser 30 compat data mapping\n  - Updated Electron 28 and 29 compat data mapping\n\n### [3.33.2 - 2023.10.31](https://github.com/zloirock/core-js/releases/tag/v3.33.2)\n- Simplified `structuredClone` polyfill, avoided second tree pass in cases of transferring\n- Added support of [`SuppressedError`](https://github.com/tc39/proposal-explicit-resource-management#the-suppressederror-error) to `structuredClone` polyfill\n- Removed unspecified unnecessary `ArrayBuffer` and `DataView` dependencies of `structuredClone` lack of which could cause errors in some entries in IE10-\n- Fixed handling of fractional number part in [`Number.fromString`](https://github.com/tc39/proposal-number-fromstring)\n- Compat data improvements:\n  - [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) marked as [supported from Chromium 120](https://bugs.chromium.org/p/chromium/issues/detail?id=1425839)\n  - Updated Opera Android 78 compat data mapping\n  - Added Electron 29 compat data mapping\n\n### [3.33.1 - 2023.10.20](https://github.com/zloirock/core-js/releases/tag/v3.33.1)\n- Added one more workaround of possible error with `Symbol` polyfill on global object, [#1289](https://github.com/zloirock/core-js/issues/1289#issuecomment-1768411444)\n- Directly specified `type: commonjs` in `package.json` of all packages to avoid potential breakage in future Node versions, see [this issue](https://github.com/nodejs/TSC/issues/1445)\n- Prevented potential issue with lack of some dependencies after automatic optimization polyfills of some methods in the pure version\n- Some minor internal fixes and optimizations\n- Compat data improvements:\n  - [`String.prototype.{ isWellFormed, toWellFormed }`](https://github.com/tc39/proposal-is-usv-string) marked as [supported from FF119](https://bugzilla.mozilla.org/show_bug.cgi?id=1850755)\n  - Added React Native 0.73 Hermes compat data, mainly fixes of [some issues](https://github.com/facebook/hermes/issues/770)\n  - Added [NodeJS 21.0 compat data mapping](https://nodejs.org/ru/blog/release/v21.0.0)\n\n### [3.33.0 - 2023.10.02](https://github.com/zloirock/core-js/releases/tag/v3.33.0)\n- Re-introduced [`RegExp` escaping stage 2 proposal](https://github.com/tc39/proposal-regex-escaping), September 2023 TC39 meeting:\n  - Added `RegExp.escape` method with the new set of symbols for escaping\n  - Some years ago, it was presented in `core-js`, but it was removed after rejecting the old version of this proposal\n- Added [`ArrayBuffer.prototype.{ transfer, transferToFixedLength }`](https://github.com/tc39/proposal-arraybuffer-transfer) and support transferring of `ArrayBuffer`s via [`structuredClone`](https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone) to engines with `MessageChannel`\n- Optimized [`Math.f16round`](https://github.com/tc39/proposal-float16array) polyfill\n- Fixed [some conversion cases](https://github.com/petamoriken/float16/issues/1046) of [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://github.com/tc39/proposal-float16array)\n- Fully forced polyfilling of [the TC39 `Observable` proposal](https://github.com/tc39/proposal-observable) because of incompatibility with [the new WHATWG `Observable` proposal](https://github.com/WICG/observable)\n- Added an extra workaround of errors with exotic environment objects in `Symbol` polyfill, [#1289](https://github.com/zloirock/core-js/issues/1289)\n- Some minor fixes and stylistic changes\n- Compat data improvements:\n  - V8 unshipped [`Iterator` helpers](https://github.com/tc39/proposal-iterator-helpers) because of [some Web compatibility issues](https://github.com/tc39/proposal-iterator-helpers/issues/286)\n  - [`Promise.withResolvers`](https://github.com/tc39/proposal-promise-with-resolvers) marked as [supported from V8 ~ Chrome 119](https://chromestatus.com/feature/5810984110784512)\n  - [`Array` grouping proposal](https://github.com/tc39/proposal-array-grouping) features marked as [supported from FF119](https://bugzilla.mozilla.org/show_bug.cgi?id=1792650#c9)\n  - [`value` argument of `URLSearchParams.prototype.{ has, delete }`](https://url.spec.whatwg.org/#dom-urlsearchparams-delete) marked as properly supported from V8 ~ Chrome 118\n  - [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) and [`URLSearchParams.prototype.size`](https://url.spec.whatwg.org/#dom-urlsearchparams-size) marked as [supported from Bun 1.0.2](https://github.com/oven-sh/bun/releases/tag/bun-v1.0.2)\n  - Added Deno 1.37 compat data mapping\n  - Added Electron 28 compat data mapping\n  - Added Opera Android 78 compat data mapping\n\n### [3.32.2 - 2023.09.07](https://github.com/zloirock/core-js/releases/tag/v3.32.2)\n- Fixed `structuredClone` feature detection `core-js@3.32.1` bug, [#1288](https://github.com/zloirock/core-js/issues/1288)\n- Added a workaround of old WebKit + `eval` bug, [#1287](https://github.com/zloirock/core-js/pull/1287)\n- Compat data improvements:\n  - Added Samsung Internet 23 compat data mapping\n  - Added Quest Browser 29 compat data mapping\n\n### [3.32.1 - 2023.08.19](https://github.com/zloirock/core-js/releases/tag/v3.32.1)\n- Fixed some cases of IEEE754 rounding, [#1279](https://github.com/zloirock/core-js/issues/1279), thanks [**@petamoriken**](https://github.com/petamoriken)\n- Prevented injection `process` polyfill to `core-js` via some bundlers or `esm.sh`, [#1277](https://github.com/zloirock/core-js/issues/1277)\n- Some minor fixes and stylistic changes\n- Compat data improvements:\n  - [`Promise.withResolvers`](https://github.com/tc39/proposal-promise-with-resolvers) marked as supported [from Bun 0.7.1](https://bun.sh/blog/bun-v0.7.1#bun-ismainthread-and-promise-withresolvers)\n  - Added Opera Android 77 compat data mapping\n  - Updated Electron 27 compat data mapping\n\n### [3.32.0 - 2023.07.28](https://github.com/zloirock/core-js/releases/tag/v3.32.0)\n- [`Array` grouping proposal](https://github.com/tc39/proposal-array-grouping), July 2023 TC39 meeting updates:\n  - [Moved back to stage 3](https://github.com/tc39/proposal-array-grouping/issues/54)\n  - Added `/actual/` namespaces entries, unconditional forced replacement changed to feature detection\n- [`Promise.withResolvers` proposal](https://github.com/tc39/proposal-promise-with-resolvers), July 2023 TC39 meeting updates:\n  - [Moved to stage 3](https://github.com/tc39/proposal-promise-with-resolvers/pull/18)\n  - Added `/actual/` namespaces entries, unconditional forced replacement changed to feature detection\n- [`Set` methods stage 3 proposal](https://github.com/tc39/proposal-set-methods), July 2023 TC39 meeting updates:\n  - Throw on negative `Set` sizes, [proposal-set-methods/88](https://github.com/tc39/proposal-set-methods/pull/88)\n  - Removed `IsCallable` check in `GetKeysIterator`, [proposal-set-methods/101](https://github.com/tc39/proposal-set-methods/pull/101)\n- [Iterator Helpers stage 3 proposal](https://github.com/tc39/proposal-iterator-helpers):\n  - Avoid creating observable `String` wrapper objects, July 2023 TC39 meeting update, [proposal-iterator-helpers/281](https://github.com/tc39/proposal-iterator-helpers/pull/281)\n  - `Iterator` is not constructible from the active function object (works as an abstract class)\n- Async explicit resource management:\n  - Moved back into [the initial proposal](https://github.com/tc39/proposal-explicit-resource-management) -> moved to stage 3, [proposal-explicit-resource-management/154](https://github.com/tc39/proposal-explicit-resource-management/pull/154)\n  - Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection\n  - Ignore return value of `[@@dispose]()` method when hint is `async-dispose`, [proposal-explicit-resource-management/180](https://github.com/tc39/proposal-explicit-resource-management/pull/180)\n  - Added ticks for empty resources, [proposal-explicit-resource-management/163](https://github.com/tc39/proposal-explicit-resource-management/pull/163)\n- Added some methods from [`Float16Array` stage 3 proposal](https://github.com/tc39/proposal-float16array):\n  - There are some reason why I don't want to add `Float16Array` right now, however, make sense to add some methods from this proposal.\n  - Methods:\n    - `Math.f16round`\n    - `DataView.prototype.getFloat16`\n    - `DataView.prototype.setFloat16`\n- Added [`DataView` get / set `Uint8Clamped` methods stage 1 proposal](https://github.com/tc39/proposal-dataview-get-set-uint8clamped):\n  - Methods:\n    - `DataView.prototype.getUint8Clamped`\n    - `DataView.prototype.setUint8Clamped`\n- Used strict mode in some missed cases, [#1269](https://github.com/zloirock/core-js/issues/1269)\n- Fixed [a Chromium 117 bug](https://bugs.chromium.org/p/v8/issues/detail?id=14222) in `value` argument of `URLSearchParams.prototype.{ has, delete }`\n- Fixed early WebKit ~ Safari 17.0 beta `Set` methods implementation by the actual spec\n- Fixed incorrect `Symbol.{ dispose, asyncDispose }` descriptors from [NodeJS 20.4](https://github.com/nodejs/node/issues/48699) / transpilers helpers / userland code\n- Fixed forced polyfilling of some iterator helpers that should return wrapped iterator in the pure version\n- Fixed and exposed [`AsyncIteratorPrototype` `core-js/configurator` option](https://github.com/zloirock/core-js#asynciterator-helpers), [#1268](https://github.com/zloirock/core-js/issues/1268)\n- Compat data improvements:\n  - Sync [`Iterator` helpers proposal](https://github.com/tc39/proposal-iterator-helpers) features marked as [supported](https://chromestatus.com/feature/5102502917177344) from V8 ~ Chrome 117\n  - [`Array` grouping proposal](https://github.com/tc39/proposal-array-grouping) features marked as [supported](https://chromestatus.com/feature/5714791975878656) from V8 ~ Chrome 117\n  - Mark `Symbol.{ dispose, asyncDispose }` as supported from NodeJS 20.5.0 (as mentioned above, NodeJS 20.4.0 add it, but [with incorrect descriptors](https://github.com/nodejs/node/issues/48699))\n  - Added Electron 27 compat data mapping\n\n### [3.31.1 - 2023.07.06](https://github.com/zloirock/core-js/releases/tag/v3.31.1)\n- Fixed a `structuredClone` bug with cloning views of transferred buffers, [#1265](https://github.com/zloirock/core-js/issues/1265)\n- Fixed the order of arguments validation in `DataView` methods\n- Allowed cloning of [`Float16Array`](https://github.com/tc39/proposal-float16array) in `structuredClone`\n- Compat data improvements:\n  - [`Set` methods proposal](https://github.com/tc39/proposal-set-methods) marked as [supported from Safari 17.0](https://developer.apple.com/documentation/safari-release-notes/safari-17-release-notes#JavaScript)\n  - New `URL` features: [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse), [`URLSearchParams.prototype.size`](https://url.spec.whatwg.org/#dom-urlsearchparams-size) and [`value` argument of `URLSearchParams.prototype.{ has, delete }`](https://url.spec.whatwg.org/#dom-urlsearchparams-delete) marked as [supported from Safari 17.0](https://developer.apple.com/documentation/safari-release-notes/safari-17-release-notes#Web-API)\n  - `value` argument of `URLSearchParams.prototype.{ has, delete }` marked as supported from [Deno 1.35](https://github.com/denoland/deno/pull/19654)\n  - `AggregateError` and well-formed `JSON.stringify` marked as [supported React Native 0.72 Hermes](https://reactnative.dev/blog/2023/06/21/0.72-metro-package-exports-symlinks#more-ecmascript-support-in-hermes)\n  - Added Deno 1.35 compat data mapping\n  - Added Quest Browser 28 compat data mapping\n  - Added missing NodeJS 12.16-12.22 compat data mapping\n  - Updated Opera Android 76 compat data mapping\n\n### [3.31.0 - 2023.06.12](https://github.com/zloirock/core-js/releases/tag/v3.31.0)\n- [Well-formed unicode strings proposal](https://github.com/tc39/proposal-is-usv-string):\n  - Methods:\n    - `String.prototype.isWellFormed` method\n    - `String.prototype.toWellFormed` method\n  - Moved to stable ES, [May 2023 TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2023-05/may-15.md#well-formed-unicode-strings-for-stage-4)\n  - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries\n- [`Array` grouping proposal](https://github.com/tc39/proposal-array-grouping), [May 2023 TC39 meeting updates](https://github.com/tc39/notes/blob/main/meetings/2023-05/may-16.md#arrayprototypegroup-rename-for-web-compatibility):\n  - Because of the [web compat issue](https://github.com/tc39/proposal-array-grouping/issues/44), [moved from prototype to static methods](https://github.com/tc39/proposal-array-grouping/pull/47). Added:\n    - `Object.groupBy` method\n    - `Map.groupBy` method (with the actual semantic - with a minor difference it was present [in the collections methods stage 1 proposal](https://github.com/tc39/proposal-collection-methods))\n  - Demoted to stage 2\n- [Decorator Metadata proposal](https://github.com/tc39/proposal-decorator-metadata), [May 2023 TC39 meeting updates](https://github.com/tc39/notes/blob/main/meetings/2023-05/may-16.md#decorator-metadata-for-stage-3):\n  - Moved to stage 3\n  - Added `Function.prototype[Symbol.metadata]` (`=== null`)\n  - Added `/actual/` entries\n- [Iterator Helpers stage 3 proposal](https://github.com/tc39/proposal-iterator-helpers):\n  - Changed `Symbol.iterator` fallback from callable check to `undefined` / `null` check, [May 2023 TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2023-05/may-16.md#iterator-helpers-should-symboliterator-fallback-be-a-callable-check-or-an-undefinednull-check), [proposal-iterator-helpers/272](https://github.com/tc39/proposal-iterator-helpers/pull/272)\n  - Removed `IsCallable` check on `NextMethod`, deferring errors to `Call` site, [May 2023 TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2023-05/may-16.md#iterator-helpers-should-malformed-iterators-fail-early-or-fail-only-when-iterated), [proposal-iterator-helpers/274](https://github.com/tc39/proposal-iterator-helpers/pull/274)\n- Added [`Promise.withResolvers` stage 2 proposal](https://github.com/tc39/proposal-promise-with-resolvers):\n  - `Promise.withResolvers` method\n- [`Symbol` predicates stage 2 proposal](https://github.com/tc39/proposal-symbol-predicates):\n  - The methods renamed to end with `Symbol`, [May 2023 TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2023-05/may-15.md#symbol-predicates):\n    - `Symbol.isRegistered` -> `Symbol.isRegisteredSymbol` method\n    - `Symbol.isWellKnown` -> `Symbol.isWellKnownSymbol` method\n- Added `value` argument of `URLSearchParams.prototype.{ has, delete }`, [url/735](https://github.com/whatwg/url/pull/735)\n- Fixed some cases of increasing buffer size in `ArrayBuffer.prototype.{ transfer, transferToFixedLength }` polyfills\n- Fixed awaiting async `AsyncDisposableStack.prototype.adopt` callback, [#1258](https://github.com/zloirock/core-js/issues/1258)\n- Fixed `URLSearchParams#size` in ES3 engines (IE8-)\n- Added a workaround in `Object.{ entries, values }` for some IE versions bug with invisible integer keys on `null`-prototype objects\n- Added TypeScript definitions to `core-js-compat`, [#1235](https://github.com/zloirock/core-js/issues/1235), thanks [**@susnux**](https://github.com/susnux)\n- Compat data improvements:\n  - [`Set.prototype.difference`](https://github.com/tc39/proposal-set-methods) that was missed in Bun because of [a bug](https://github.com/oven-sh/bun/issues/2309) added in 0.6.0\n  - `Array.prototype.{ group, groupToMap }` marked as no longer supported in WebKit runtimes because of the mentioned above web compat issue. For example, it's disabled from Bun 0.6.2\n  - Methods from the [change `Array` by copy proposal](https://github.com/tc39/proposal-change-array-by-copy) marked as supported from FF115\n  - [`Array.fromAsync`](https://github.com/tc39/proposal-array-from-async) marked as supported from FF115\n  - [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) marked as supported from FF115\n  - `value` argument of `URLSearchParams.prototype.{ has, delete }` marked as supported from [NodeJS 20.2.0](https://github.com/nodejs/node/pull/47885) and FF115\n  - Added Deno 1.34 compat data mapping\n  - Added Electron 26 compat data mapping\n  - Added Samsung Internet 22 compat data mapping\n  - Added Opera Android 75 and 76 compat data mapping\n  - Added Quest Browser 27 compat data mapping\n\n### [3.30.2 - 2023.05.07](https://github.com/zloirock/core-js/releases/tag/v3.30.2)\n- Added a fix for a NodeJS 20.0.0 [bug](https://github.com/nodejs/node/issues/47612) with cloning `File` via `structuredClone`\n- Added protection from Terser unsafe `String` optimization, [#1242](https://github.com/zloirock/core-js/issues/1242)\n- Added a workaround for getting proper global object in Figma plugins, [#1231](https://github.com/zloirock/core-js/issues/1231)\n- Compat data improvements:\n  - Added NodeJS 20.0 compat data mapping\n  - Added Deno 1.33 compat data mapping\n  - [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) marked as supported (fixed) from [NodeJS 20.1.0](https://github.com/nodejs/node/pull/47513) and [Deno 1.33.2](https://github.com/denoland/deno/pull/18896)\n\n### [3.30.1 - 2023.04.14](https://github.com/zloirock/core-js/releases/tag/v3.30.1)\n- Added a fix for a NodeJS 19.9.0 `URL.canParse` [bug](https://github.com/nodejs/node/issues/47505)\n- Compat data improvements:\n  - [`JSON.parse` source text access proposal](https://github.com/tc39/proposal-json-parse-with-source) features marked as [supported](https://chromestatus.com/feature/5121582673428480) from V8 ~ Chrome 114\n  - [`ArrayBuffer.prototype.transfer` and friends proposal](https://github.com/tc39/proposal-arraybuffer-transfer) features marked as [supported](https://chromestatus.com/feature/5073244152922112) from V8 ~ Chrome 114\n  - [`URLSearchParams.prototype.size`](https://github.com/whatwg/url/pull/734) marked as supported from V8 ~ Chrome 113\n\n### [3.30.0 - 2023.04.04](https://github.com/zloirock/core-js/releases/tag/v3.30.0)\n- Added [`URL.canParse` method](https://url.spec.whatwg.org/#dom-url-canparse), [url/763](https://github.com/whatwg/url/pull/763)\n- [`Set` methods proposal](https://github.com/tc39/proposal-set-methods):\n  - Removed sort from `Set.prototype.intersection`, [March 2023 TC39 meeting](https://github.com/babel/proposals/issues/87#issuecomment-1478610425), [proposal-set-methods/94](https://github.com/tc39/proposal-set-methods/pull/94)\n- Iterator Helpers proposals ([sync](https://github.com/tc39/proposal-iterator-helpers), [async](https://github.com/tc39/proposal-async-iterator-helpers)):\n  - Validate arguments before opening iterator, [March 2023 TC39 meeting](https://github.com/babel/proposals/issues/87#issuecomment-1478412430), [proposal-iterator-helpers/265](https://github.com/tc39/proposal-iterator-helpers/pull/265)\n- Explicit Resource Management proposals ([sync](https://github.com/tc39/proposal-explicit-resource-management), [async](https://github.com/tc39/proposal-async-explicit-resource-management)):\n  - `(Async)DisposableStack.prototype.move` marks the original stack as disposed, [#1226](https://github.com/zloirock/core-js/issues/1226)\n  - Some simplifications like [proposal-explicit-resource-management/150](https://github.com/tc39/proposal-explicit-resource-management/pull/150)\n- [`Iterator.range` proposal](https://github.com/tc39/proposal-Number.range):\n  - Moved to Stage 2, [March 2023 TC39 meeting](https://github.com/babel/proposals/issues/87#issuecomment-1480266760)\n- [Decorator Metadata proposal](https://github.com/tc39/proposal-decorator-metadata):\n  - Returned to usage `Symbol.metadata`, [March 2023 TC39 meeting](https://github.com/babel/proposals/issues/87#issuecomment-1478790137), [proposal-decorator-metadata/12](https://github.com/tc39/proposal-decorator-metadata/pull/12)\n- Compat data improvements:\n  - [`URLSearchParams.prototype.size`](https://github.com/whatwg/url/pull/734) marked as supported from FF112, NodeJS 19.8 and Deno 1.32\n  - Added Safari 16.4 compat data\n  - Added Deno 1.32 compat data mapping\n  - Added Electron 25 and updated 24 compat data mapping\n  - Added Samsung Internet 21 compat data mapping\n  - Added Quest Browser 26 compat data mapping\n  - Updated Opera Android 74 compat data\n\n### [3.29.1 - 2023.03.13](https://github.com/zloirock/core-js/releases/tag/v3.29.1)\n- Fixed dependencies of some entries\n- Fixed `ToString` conversion / built-ins nature of some accessors\n- [`String.prototype.{ isWellFormed, toWellFormed }`](https://github.com/tc39/proposal-is-usv-string) marked as supported from V8 ~ Chrome 111\n- Added Opera Android 74 compat data mapping\n\n### [3.29.0 - 2023.02.27](https://github.com/zloirock/core-js/releases/tag/v3.29.0)\n- Added `URLSearchParams.prototype.size` getter, [url/734](https://github.com/whatwg/url/pull/734)\n- Allowed cloning resizable `ArrayBuffer`s in the `structuredClone` polyfill\n- Fixed wrong export in `/(stable|actual|full)/instance/unshift` entries, [#1207](https://github.com/zloirock/core-js/issues/1207)\n- Compat data improvements:\n  - [`Set` methods proposal](https://github.com/tc39/proposal-set-methods) marked as supported from Bun 0.5.7\n  - `String.prototype.toWellFormed` marked as fixed from Bun 0.5.7\n  - Added Deno 1.31 compat data mapping\n\n### [3.28.0 - 2023.02.14](https://github.com/zloirock/core-js/releases/tag/v3.28.0)\n- [Change `Array` by copy proposal](https://github.com/tc39/proposal-change-array-by-copy):\n  - Methods:\n    - `Array.prototype.toReversed`\n    - `Array.prototype.toSorted`\n    - `Array.prototype.toSpliced`\n    - `Array.prototype.with`\n    - `%TypedArray%.prototype.toReversed`\n    - `%TypedArray%.prototype.toSorted`\n    - `%TypedArray%.prototype.with`\n  - Moved to stable ES, [January 2023 TC39 meeting](https://github.com/babel/proposals/issues/86#issuecomment-1409261397)\n  - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries\n- Added [`JSON.parse` source text access Stage 3 proposal](https://github.com/tc39/proposal-json-parse-with-source)\n  - Methods:\n    - `JSON.parse` patched for support `source` in `reviver` function arguments\n    - `JSON.rawJSON`\n    - `JSON.isRawJSON`\n    - `JSON.stringify` patched for support `JSON.rawJSON`\n- Added [`ArrayBuffer.prototype.transfer` and friends Stage 3 proposal](https://github.com/tc39/proposal-arraybuffer-transfer):\n  - Built-ins:\n    - `ArrayBuffer.prototype.detached`\n    - `ArrayBuffer.prototype.transfer` (only in runtimes with native `structuredClone` with `ArrayBuffer` transfer support)\n    - `ArrayBuffer.prototype.transferToFixedLength` (only in runtimes with native `structuredClone` with `ArrayBuffer` transfer support)\n  - In backwards, in runtimes with native `ArrayBuffer.prototype.transfer`, but without proper `structuredClone`, added `ArrayBuffer` transfer support to `structuredClone` polyfill\n- [Iterator Helpers](https://github.com/tc39/proposal-iterator-helpers) proposal:\n  - Split into 2 ([sync](https://github.com/tc39/proposal-iterator-helpers) and [async](https://github.com/tc39/proposal-async-iterator-helpers)) proposals, async version moved back to Stage 2, [January 2023 TC39 meeting](https://github.com/babel/proposals/issues/86#issuecomment-1410926068)\n  - Allowed interleaved mapping in `AsyncIterator` helpers, [proposal-iterator-helpers/262](https://github.com/tc39/proposal-iterator-helpers/pull/262)\n- [Explicit Resource Management](https://github.com/tc39/proposal-explicit-resource-management) Stage 3 and [Async Explicit Resource Management](https://github.com/tc39/proposal-async-explicit-resource-management/) Stage 2 proposals:\n  - `InstallErrorCause` removed from `SuppressedError`, [January 2023 TC39 meeting](https://github.com/babel/proposals/issues/86#issuecomment-1410889704), [proposal-explicit-resource-management/145](https://github.com/tc39/proposal-explicit-resource-management/pull/146)\n  - Simplified internal behaviour of `{ AsyncDisposableStack, DisposableStack }.prototype.use`, [proposal-explicit-resource-management/143](https://github.com/tc39/proposal-explicit-resource-management/pull/143)\n- Added [`Symbol` predicates Stage 2 proposal](https://github.com/tc39/proposal-symbol-predicates)\n  - Methods:\n    - `Symbol.isRegistered`\n    - `Symbol.isWellKnown`\n- `Number.range` Stage 1 proposal and method [renamed to `Iterator.range`](https://github.com/tc39/proposal-Number.range)\n- `Function.prototype.unThis` Stage 0 proposal and method [renamed to `Function.prototype.demethodize`](https://github.com/js-choi/proposal-function-demethodize)\n- Fixed [Safari `String.prototype.toWellFormed` `ToString` conversion bug](https://bugs.webkit.org/show_bug.cgi?id=251757)\n- Improved some cases handling of array-replacer in `JSON.stringify` symbols handling fix\n- Fixed many other old `JSON.{ parse, stringify }` bugs (numbers instead of strings as keys in replacer, handling negative zeroes, spaces, some more handling symbols cases, etc.)\n- Fixed configurability and `ToString` conversion of some accessors\n- Added throwing proper errors on an incorrect context in some `ArrayBuffer` and `DataView` methods\n- Some minor `DataView` and `%TypedArray%` polyfills optimizations\n- Added proper error on the excess number of trailing `=` in the `atob` polyfill\n- Fixed theoretically possible ReDoS vulnerabilities in `String.prototype.{ trim, trimEnd, trimRight }`, `parse(Int|Float)`, `Number`, `atob`, and `URL` polyfills in some ancient engines\n- Compat data improvements:\n  - `RegExp.prototype.flags` marked as fixed from V8 ~ Chrome 111\n  - Added Opera Android 73 compat data mapping\n- Added TypeScript definitions to `core-js-builder`\n\n### [3.27.2 - 2023.01.19](https://github.com/zloirock/core-js/releases/tag/v3.27.2)\n- [`Set` methods proposal](https://github.com/tc39/proposal-set-methods) updates:\n  - Closing of iterators of `Set`-like objects on early exit, [proposal-set-methods/85](https://github.com/tc39/proposal-set-methods/pull/85)\n  - Some other minor internal changes\n- Added one more workaround of a `webpack` dev server bug on IE global methods, [#1161](https://github.com/zloirock/core-js/issues/1161)\n- Fixed possible `String.{ raw, cooked }` error with empty template array\n- Used non-standard V8 `Error.captureStackTrace` instead of stack parsing in new error classes / wrappers where it's possible\n- Added detection correctness of iteration to `Promise.{ allSettled, any }` feature detection, Hermes issue\n- Compat data improvements:\n  - [Change `Array` by copy proposal](https://github.com/tc39/proposal-change-array-by-copy) marked as supported from V8 ~ Chrome 110\n  - Added Samsung Internet 20 compat data mapping\n  - Added Quest Browser 25 compat data mapping\n  - Added React Native 0.71 Hermes compat data\n  - Added Electron 23 and 24 compat data mapping\n  - `self` marked as fixed in Deno 1.29.3, [deno/17362](https://github.com/denoland/deno/pull/17362)\n- Minor tweaks of minification settings for `core-js-bundle`\n- Refactoring, some minor fixes, improvements, optimizations\n\n### [3.27.1 - 2022.12.30](https://github.com/zloirock/core-js/releases/tag/v3.27.1)\n- Fixed a Chakra-based MS Edge (18-) bug that unfreeze (O_o) frozen arrays used as `WeakMap` keys\n- Fixing of the previous bug also fixes some cases of `String.dedent` in MS Edge\n- Fixed dependencies of some entries\n\n### [3.27.0 - 2022.12.26](https://github.com/zloirock/core-js/releases/tag/v3.27.0)\n- [Iterator Helpers](https://github.com/tc39/proposal-iterator-helpers) proposal:\n  - Built-ins:\n    - `Iterator`\n      - `Iterator.from`\n      - `Iterator.prototype.drop`\n      - `Iterator.prototype.every`\n      - `Iterator.prototype.filter`\n      - `Iterator.prototype.find`\n      - `Iterator.prototype.flatMap`\n      - `Iterator.prototype.forEach`\n      - `Iterator.prototype.map`\n      - `Iterator.prototype.reduce`\n      - `Iterator.prototype.some`\n      - `Iterator.prototype.take`\n      - `Iterator.prototype.toArray`\n      - `Iterator.prototype.toAsync`\n      - `Iterator.prototype[@@toStringTag]`\n    - `AsyncIterator`\n      - `AsyncIterator.from`\n      - `AsyncIterator.prototype.drop`\n      - `AsyncIterator.prototype.every`\n      - `AsyncIterator.prototype.filter`\n      - `AsyncIterator.prototype.find`\n      - `AsyncIterator.prototype.flatMap`\n      - `AsyncIterator.prototype.forEach`\n      - `AsyncIterator.prototype.map`\n      - `AsyncIterator.prototype.reduce`\n      - `AsyncIterator.prototype.some`\n      - `AsyncIterator.prototype.take`\n      - `AsyncIterator.prototype.toArray`\n      - `AsyncIterator.prototype[@@toStringTag]`\n  - Moved to Stage 3, [November 2022 TC39 meeting](https://github.com/babel/proposals/issues/85#issuecomment-1333474304)\n  - Added `/actual/` entries, unconditional forced replacement disabled for features that survived to Stage 3\n  - `.from` accept strings, `.flatMap` throws on strings returned from the callback, [proposal-iterator-helpers/244](https://github.com/tc39/proposal-iterator-helpers/pull/244), [proposal-iterator-helpers/250](https://github.com/tc39/proposal-iterator-helpers/pull/250)\n  - `.from` and `.flatMap` throws on non-object *iterators*, [proposal-iterator-helpers/253](https://github.com/tc39/proposal-iterator-helpers/pull/253)\n- [`Set` methods proposal](https://github.com/tc39/proposal-set-methods):\n  - Built-ins:\n    - `Set.prototype.intersection`\n    - `Set.prototype.union`\n    - `Set.prototype.difference`\n    - `Set.prototype.symmetricDifference`\n    - `Set.prototype.isSubsetOf`\n    - `Set.prototype.isSupersetOf`\n    - `Set.prototype.isDisjointFrom`\n  - Moved to Stage 3, [November 2022 TC39 meeting](https://github.com/babel/proposals/issues/85#issuecomment-1332175557)\n  - Reimplemented with [new semantics](https://tc39.es/proposal-set-methods/):\n    - Optimized performance (iteration over lowest set)\n    - Accepted only `Set`-like objects as an argument, not all iterables\n    - Accepted only `Set`s as `this`, no `@@species` support, and other minor changes\n  - Added `/actual/` entries, unconditional forced replacement changed to feature detection\n  - For avoiding breaking changes:\n    - New versions of methods are implemented as new modules and available in new entries or entries where old versions of methods were not available before (like `/actual/` namespace)\n    - In entries where they were available before (like `/full/` namespace), those methods are available with fallbacks to old semantics (in addition to `Set`-like, they accept iterable objects). This behavior will be removed from the next major release\n- [Well-Formed Unicode Strings](https://github.com/tc39/proposal-is-usv-string) proposal:\n  - Methods:\n    - `String.prototype.isWellFormed`\n    - `String.prototype.toWellFormed`\n  - Moved to Stage 3, [November 2022 TC39 meeting](https://github.com/babel/proposals/issues/85#issuecomment-1332180862)\n  - Added `/actual/` entries, disabled unconditional forced replacement\n- [Explicit resource management](https://github.com/tc39/proposal-explicit-resource-management) Stage 3 and [Async explicit resource management](https://github.com/tc39/proposal-async-explicit-resource-management) Stage 2 proposals:\n  - Renamed from \"`using` statement\" and [split into 2 (sync and async) proposals](https://github.com/tc39/proposal-explicit-resource-management/pull/131)\n  - In addition to already present well-known symbols, added new built-ins:\n    - `Symbol.dispose`\n    - `Symbol.asyncDispose`\n    - `SuppressedError`\n    - `DisposableStack`\n      - `DisposableStack.prototype.dispose`\n      - `DisposableStack.prototype.use`\n      - `DisposableStack.prototype.adopt`\n      - `DisposableStack.prototype.defer`\n      - `DisposableStack.prototype.move`\n      - `DisposableStack.prototype[@@dispose]`\n    - `AsyncDisposableStack`\n      - `AsyncDisposableStack.prototype.disposeAsync`\n      - `AsyncDisposableStack.prototype.use`\n      - `AsyncDisposableStack.prototype.adopt`\n      - `AsyncDisposableStack.prototype.defer`\n      - `AsyncDisposableStack.prototype.move`\n      - `AsyncDisposableStack.prototype[@@asyncDispose]`\n    - `Iterator.prototype[@@dispose]`\n    - `AsyncIterator.prototype[@@asyncDispose]`\n  - Sync version of this proposal moved to Stage 3, [November 2022 TC39 meeting](https://github.com/babel/proposals/issues/85#issuecomment-1333747094)\n  - Added `/actual/` namespace entries for Stage 3 proposal\n- Added [`String.dedent` stage 2 proposal](https://github.com/tc39/proposal-string-dedent)\n  - Method `String.dedent`\n  - Throws an error on non-frozen raw templates for avoiding possible breaking changes in the future, [proposal-string-dedent/75](https://github.com/tc39/proposal-string-dedent/issues/75)\n- [Compat data targets](/packages/core-js-compat#targets-option) improvements:\n  - [React Native from 0.70 shipped with Hermes as the default engine.](https://reactnative.dev/blog/2022/07/08/hermes-as-the-default) However, bundled Hermes versions differ from standalone Hermes releases. So added **`react-native`** target for React Native with bundled Hermes.\n  - [According to the documentation](https://developer.oculus.com/documentation/web/browser-intro/), Oculus Browser was renamed to Meta Quest Browser, so `oculus` target was renamed to **`quest`**.\n  - `opera_mobile` target name is confusing since it contains data for the Chromium-based Android version, but iOS Opera is Safari-based. So `opera_mobile` target was renamed to **`opera-android`**.\n  - `android` target name is also confusing for someone - that means Android WebView, some think thinks that it's Chrome for Android, but they have some differences. For avoiding confusion, added **`chrome-android`** target.\n  - For consistency with two previous cases, added **`firefox-android`** target.\n  - For avoiding breaking changes, the `oculus` and `opera_mobile` fields are available in the compat data till the next major release.\n- Compat data improvements:\n  - [`Array.fromAsync`](https://github.com/tc39/proposal-array-from-async) marked as supported from Bun 0.3.0\n  - [`String.prototype.{ isWellFormed, toWellFormed }`](https://github.com/tc39/proposal-is-usv-string) marked as supported from Bun 0.4.0\n  - [Change `Array` by copy proposal](https://github.com/tc39/proposal-change-array-by-copy) marked as supported from Deno 1.27, [deno/16429](https://github.com/denoland/deno/pull/16429)\n  - Added Deno 1.28 / 1.29 compat data mapping\n  - Added NodeJS 19.2 compat data mapping\n  - Added Samsung Internet 19.0 compat data mapping\n  - Added Quest Browser 24.0 compat data mapping\n  - Fixed the first version in the Chromium-based Edge compat data mapping\n- `{ Map, WeakMap }.prototype.emplace` became stricter [by the spec draft](https://tc39.es/proposal-upsert/)\n- Smoothed behavior of some conflicting proposals\n- Removed some generic behavior (like `@@species` pattern) of some `.prototype` methods from the [new collections methods proposal](https://github.com/tc39/proposal-collection-methods) and the [`Array` deduplication proposal](https://github.com/tc39/proposal-array-unique) that *most likely* will not be implemented since it contradicts the current TC39 policy\n- Added pure version of the `Number` constructor, [#1154](https://github.com/zloirock/core-js/issues/1154), [#1155](https://github.com/zloirock/core-js/issues/1155), thanks [@trosos](https://github.com/trosos)\n- Added `set(Timeout|Interval|Immediate)` extra arguments fix for Bun 0.3.0- (similarly to IE9-), [bun/1633](https://github.com/oven-sh/bun/issues/1633)\n- Fixed handling of sparse arrays in `structuredClone`, [#1156](https://github.com/zloirock/core-js/issues/1156)\n- Fixed a theoretically possible future conflict of polyfills definitions in the pure version\n- Some refactoring and optimization\n\n### [3.26.1 - 2022.11.14](https://github.com/zloirock/core-js/releases/tag/v3.26.1)\n- Disabled forced replacing of `Array.fromAsync` since it's on Stage 3\n- Avoiding a check of the target in the internal `function-uncurry-this` helper where it's not required - minor optimization and preventing problems in some broken environments, a workaround of [#1141](https://github.com/zloirock/core-js/issues/1141)\n- V8 will not ship `Array.prototype.{ group, groupToMap }` in V8 ~ Chromium 108, [proposal-array-grouping/44](https://github.com/tc39/proposal-array-grouping/issues/44#issuecomment-1306311107)\n\n### [3.26.0 - 2022.10.24](https://github.com/zloirock/core-js/releases/tag/v3.26.0)\n- [`Array.fromAsync` proposal](https://github.com/tc39/proposal-array-from-async):\n  - Moved to Stage 3, [September TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2022-09/sep-14.md#arrayfromasync-for-stage-3)\n  - Avoid observable side effects of `%Array.prototype.values%` usage in array-like branch, [proposal-array-from-async/30](https://github.com/tc39/proposal-array-from-async/pull/30)\n- Added [well-formed unicode strings stage 2 proposal](https://github.com/tc39/proposal-is-usv-string):\n  - `String.prototype.isWellFormed`\n  - `String.prototype.toWellFormed`\n- Recent updates of the [iterator helpers proposal](https://github.com/tc39/proposal-iterator-helpers):\n  - Added a counter parameter to helpers, [proposal-iterator-helpers/211](https://github.com/tc39/proposal-iterator-helpers/pull/211)\n  - Don't await non-objects returned from functions passed to `AsyncIterator` helpers, [proposal-iterator-helpers/239](https://github.com/tc39/proposal-iterator-helpers/pull/239)\n  - `{ Iterator, AsyncIterator }.prototype.flatMap` supports returning both - iterables and iterators, [proposal-iterator-helpers/233](https://github.com/tc39/proposal-iterator-helpers/pull/233)\n  - Early exit on broken `.next` in missed cases of `{ Iterator, AsyncIterator }.from`, [proposal-iterator-helpers/232](https://github.com/tc39/proposal-iterator-helpers/pull/232)\n- Added `self` polyfill as a part of [The Minimum Common Web Platform API](https://common-min-api.proposal.wintercg.org/), [specification](https://html.spec.whatwg.org/multipage/window-object.html#dom-self), [#1118](https://github.com/zloirock/core-js/issues/1118)\n- Added `inverse` option to `core-js-compat`, [#1119](https://github.com/zloirock/core-js/issues/1119)\n- Added `format` option to `core-js-builder`, [#1120](https://github.com/zloirock/core-js/issues/1120)\n- Added NodeJS 19.0 compat data\n- Added Deno 1.26 and 1.27 compat data\n- Added Opera Android 72 compat data mapping\n- Updated Electron 22 compat data mapping\n\n### [3.25.5 - 2022.10.04](https://github.com/zloirock/core-js/releases/tag/v3.25.5)\n- Fixed regression with an error on reuse of some built-in methods from another realm, [#1133](https://github.com/zloirock/core-js/issues/1133)\n\n### [3.25.4 - 2022.10.03](https://github.com/zloirock/core-js/releases/tag/v3.25.4)\n- Added a workaround of a Nashorn bug with `Function.prototype.{ call, apply, bind }` on string methods, [#1128](https://github.com/zloirock/core-js/issues/1128)\n- Updated lists of `[Serializable]` and `[Transferable]` objects in the `structuredClone` polyfill. Mainly, for better error messages if polyfilling of cloning such types is impossible\n- `Array.prototype.{ group, groupToMap }` marked as [supported from V8 ~ Chromium 108](https://chromestatus.com/feature/5714791975878656)\n- Added Electron 22 compat data mapping\n\n### [3.25.3 - 2022.09.26](https://github.com/zloirock/core-js/releases/tag/v3.25.3)\n- Forced polyfilling of `Array.prototype.groupToMap` in the pure version for returning wrapped `Map` instances\n- Fixed existence of `Array.prototype.{ findLast, findLastIndex }` in `/stage/4` entry\n- Added Opera Android 71 compat data mapping\n- Some stylistic changes\n\n### [3.25.2 - 2022.09.19](https://github.com/zloirock/core-js/releases/tag/v3.25.2)\n- Considering `document.all` as a callable in some missed cases\n- Added Safari 16.0 compat data\n- Added iOS Safari 16.0 compat data mapping\n- Fixed some ancient iOS Safari versions compat data mapping\n\n### [3.25.1 - 2022.09.08](https://github.com/zloirock/core-js/releases/tag/v3.25.1)\n- Added some fixes and workarounds of FF30- typed arrays bug that does not properly convert objects to numbers\n- Added `sideEffects` field to `core-js-pure` `package.json` for better tree shaking, [#1117](https://github.com/zloirock/core-js/issues/1117)\n- Dropped `semver` dependency from `core-js-compat`\n  - `semver` package (ironically) added [a breaking change and dropped NodeJS 8 support in the minor `7.1` version](https://github.com/npm/node-semver/commit/d61f828e64260a0a097f26210f5500), after that `semver` in `core-js-compat` was pinned to `7.0` since for avoiding breaking changes it should support NodeJS 8. However, since `core-js-compat` is usually used with other packages that use `semver` dependency, it causes multiple duplication of `semver` in dependencies. So I decided to remove `semver` dependency and replace it with a couple of simple helpers.\n- Added Bun 0.1.6-0.1.11 compat data\n- Added Deno 1.25 compat data mapping\n- Updated Electron 21 compat data mapping\n- Some stylistic changes, minor fixes, and improvements\n\n### [3.25.0 - 2022.08.25](https://github.com/zloirock/core-js/releases/tag/v3.25.0)\n- Added [`Object.prototype.__proto__`](https://tc39.es/ecma262/#sec-object.prototype.__proto__) polyfill\n  - It's optional, legacy, and in some cases (mainly because of developers' mistakes) can cause problems, but [some libraries depend on it](https://github.com/denoland/deno/issues/13321), and most code can't work without the proper libraries' ecosystem\n  - Only for modern engines where this feature is missed (like Deno), it's not installed in IE10- since here we have no proper way setting of the prototype\n  - Without fixes of early implementations where it's not an accessor since those fixes are impossible\n  - Only for the global version\n- Considering `document.all` as an object in some missed cases, see [ECMAScript Annex B 3.6](https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot)\n- Avoiding unnecessary promise creation and validation result in `%WrapForValid(Async)IteratorPrototype%.return`, [proposal-iterator-helpers/215](https://github.com/tc39/proposal-iterator-helpers/pull/215)\n- Fixed omitting the result of proxing `.return` in `%IteratorHelperPrototype%.return`, [#1116](https://github.com/zloirock/core-js/issues/1116)\n- Fixed the order creation of properties of iteration result object of some iterators (`value` should be created before `done`)\n- Fixed some cases of Safari < 13 bug - silent on non-writable array `.length` setting\n- Fixed `ArrayBuffer.length` in V8 ~ Chrome 27-\n- Relaxed condition of re-usage native `WeakMap` for internal states with multiple `core-js` copies\n- Availability cloning of `FileList` in the `structuredClone` polyfill extended to some more old engines versions\n- Some stylistic changes and minor fixes\n- Throwing a `TypeError` in `core-js-compat` / `core-js-builder` in case of passing invalid module names / filters for avoiding unexpected result, related to [#1115](https://github.com/zloirock/core-js/issues/1115)\n- Added missed NodeJS 13.2 to `esmodules` `core-js-compat` / `core-js-builder` target\n- Added Electron 21 compat data mapping\n- Added Oculus Browser 23.0 compat data mapping\n\n### [3.24.1 - 2022.07.30](https://github.com/zloirock/core-js/releases/tag/v3.24.1)\n- NodeJS is ignored in `IS_BROWSER` detection to avoid a false positive with `jsdom`, [#1110](https://github.com/zloirock/core-js/issues/1110)\n- Fixed detection of `@@species` support in `Promise` in some old engines\n- `{ Array, %TypedArray% }.prototype.{ findLast, findLastIndex }` marked as shipped [in FF104](https://bugzilla.mozilla.org/show_bug.cgi?id=1775026)\n- Added iOS Safari 15.6 compat data mapping\n- Fixed Opera 15 compat data mapping\n\n### [3.24.0 - 2022.07.25](https://github.com/zloirock/core-js/releases/tag/v3.24.0)\n- Recent updates of the [iterator helpers proposal](https://github.com/tc39/proposal-iterator-helpers), [#1101](https://github.com/zloirock/core-js/issues/1101):\n  - `.asIndexedPairs` renamed to `.indexed`, [proposal-iterator-helpers/183](https://github.com/tc39/proposal-iterator-helpers/pull/183):\n    - `Iterator.prototype.asIndexedPairs` -> `Iterator.prototype.indexed`\n    - `AsyncIterator.prototype.asIndexedPairs` -> `AsyncIterator.prototype.indexed`\n  - Avoid exposing spec fiction `%AsyncFromSyncIteratorPrototype%` in `AsyncIterator.from` and `Iterator.prototype.toAsync`, [proposal-iterator-helpers/182](https://github.com/tc39/proposal-iterator-helpers/pull/182), [proposal-iterator-helpers/202](https://github.com/tc39/proposal-iterator-helpers/pull/202)\n  - Avoid unnecessary promise creation in `%WrapForValidAsyncIteratorPrototype%.next`, [proposal-iterator-helpers/197](https://github.com/tc39/proposal-iterator-helpers/pull/197)\n  - Do not validate value in `%WrapForValid(Async)IteratorPrototype%.next`, [proposal-iterator-helpers/197](https://github.com/tc39/proposal-iterator-helpers/pull/197) and [proposal-iterator-helpers/205](https://github.com/tc39/proposal-iterator-helpers/pull/205)\n  - Do not forward the parameter of `.next` / `.return` to an underlying iterator by the extended iterator protocol, a part of [proposal-iterator-helpers/194](https://github.com/tc39/proposal-iterator-helpers/pull/194)\n  - `.throw` methods removed from all wrappers / helpers prototypes, a part of [proposal-iterator-helpers/194](https://github.com/tc39/proposal-iterator-helpers/pull/194)\n  - Close inner iterators of `{ Iterator, AsyncIterator }.prototype.flatMap` proxy iterators on `.return`, [proposal-iterator-helpers/195](https://github.com/tc39/proposal-iterator-helpers/pull/195)\n  - Throw `RangeError` on `NaN` in `{ Iterator, AsyncIterator }.prototype.{ drop, take }`, [proposal-iterator-helpers/181](https://github.com/tc39/proposal-iterator-helpers/pull/181)\n  - Many other updates and fixes of this proposal\n- `%TypedArray%.prototype.toSpliced` method removed from the [change array by copy proposal](https://github.com/tc39/proposal-change-array-by-copy) and marked as obsolete in `core-js`, [proposal-change-array-by-copy/88](https://github.com/tc39/proposal-change-array-by-copy/issues/88)\n- Polyfill `Promise` with `unhandledrejection` event support (browser style) in Deno < [1.24](https://github.com/denoland/deno/releases/tag/v1.24.0)\n- Available new targets in `core-js-compat` / `core-js-builder` and added compat data for them:\n  - Bun (`bun`), compat data for 0.1.1-0.1.5, [#1103](https://github.com/zloirock/core-js/issues/1103)\n  - Hermes (`hermes`), compat data for 0.1-0.11, [#1099](https://github.com/zloirock/core-js/issues/1099)\n  - Oculus Browser (`oculus`), compat data mapping for 3.0-22.0, [#1098](https://github.com/zloirock/core-js/issues/1098)\n- Added Samsung Internet 18.0 compat data mapping\n\n### [3.23.5 - 2022.07.18](https://github.com/zloirock/core-js/releases/tag/v3.23.5)\n- Fixed a typo in the `structuredClone` feature detection, [#1106](https://github.com/zloirock/core-js/issues/1106)\n- Added Opera Android 70 compat data mapping\n\n### [3.23.4 - 2022.07.10](https://github.com/zloirock/core-js/releases/tag/v3.23.4)\n- Added a workaround of the Bun ~ 0.1.1 [bug](https://github.com/Jarred-Sumner/bun/issues/399) that define some globals with incorrect property descriptors and that causes a crash of `core-js`\n- Added a fix of the FF103+ `structuredClone` bugs ([1774866](https://bugzilla.mozilla.org/show_bug.cgi?id=1774866) (fixed in FF104) and [1777321](https://bugzilla.mozilla.org/show_bug.cgi?id=1777321) (still not fixed)) that now can clone errors, but `.stack` of the clone is an empty string\n- Fixed `{ Map, WeakMap }.prototype.emplace` logic, [#1102](https://github.com/zloirock/core-js/issues/1102)\n- Fixed order of errors throwing on iterator helpers\n\n### [3.23.3 - 2022.06.26](https://github.com/zloirock/core-js/releases/tag/v3.23.3)\n- Changed the order of operations in `%TypedArray%.prototype.toSpliced` following [proposal-change-array-by-copy/89](https://github.com/tc39/proposal-change-array-by-copy/issues/89)\n- Fixed regression of some IE8- issues\n\n### [3.23.2 - 2022.06.21](https://github.com/zloirock/core-js/releases/tag/v3.23.2)\n- Avoided creation of extra properties for the handling of `%TypedArray%` constructors in new methods, [#1092 (comment)](https://github.com/zloirock/core-js/issues/1092#issuecomment-1158760512)\n- Added Deno 1.23 compat data mapping\n\n### [3.23.1 - 2022.06.14](https://github.com/zloirock/core-js/releases/tag/v3.23.1)\n- Fixed possible error on multiple `core-js` copies, [#1091](https://github.com/zloirock/core-js/issues/1091)\n- Added `v` flag to `RegExp.prototype.flags` implementation in case if current V8 bugs will not be fixed before this flag implementation\n\n### [3.23.0 - 2022.06.14](https://github.com/zloirock/core-js/releases/tag/v3.23.0)\n- [`Array` find from last](https://github.com/tc39/proposal-array-find-from-last) moved to the stable ES, according to June 2022 TC39 meeting:\n  - `Array.prototype.findLast`\n  - `Array.prototype.findLastIndex`\n  - `%TypedArray%.prototype.findLast`\n  - `%TypedArray%.prototype.findLastIndex`\n- Methods from [the `Array` grouping proposal](https://github.com/tc39/proposal-array-grouping) [renamed](https://github.com/tc39/proposal-array-grouping/pull/39), according to June 2022 TC39 meeting:\n  - `Array.prototype.groupBy` -> `Array.prototype.group`\n  - `Array.prototype.groupByToMap` -> `Array.prototype.groupToMap`\n- Changed the order of operations in `%TypedArray%.prototype.with` following [proposal-change-array-by-copy/86](https://github.com/tc39/proposal-change-array-by-copy/issues/86), according to June 2022 TC39 meeting\n- [Decorator Metadata proposal](https://github.com/tc39/proposal-decorator-metadata) extracted from [Decorators proposal](https://github.com/tc39/proposal-decorators) as a separate stage 2 proposal, according to March 2022 TC39 meeting, `Symbol.metadataKey` replaces `Symbol.metadata`\n- Added `Array.prototype.push` polyfill with some fixes for modern engines\n- Added `Array.prototype.unshift` polyfill with some fixes for modern engines\n- Fixed a bug in the order of getting flags in `RegExp.prototype.flags` in the actual version of V8\n- Fixed property descriptors of some `Math` and `Number` constants\n- Added a workaround of V8 `ArrayBufferDetaching` protector cell invalidation and performance degradation on `structuredClone` feature detection, one more case of [#679](https://github.com/zloirock/core-js/issues/679)\n- Added detection of NodeJS [bug](https://github.com/nodejs/node/issues/41038) in `structuredClone` that can not clone `DOMException` (just in case for future versions that will fix other issues)\n- Compat data:\n  - Added NodeJS 18.3 compat data mapping\n  - Added and fixed Deno 1.22 and 1.21 compat data mapping\n  - Added Opera Android 69 compat data mapping\n  - Updated Electron 20.0 compat data mapping\n\n### [3.22.8 - 2022.06.02](https://github.com/zloirock/core-js/releases/tag/v3.22.8)\n- Fixed possible multiple call of `ToBigInt` / `ToNumber` conversion of the argument passed to `%TypedArray%.prototype.fill` in V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18\n- Fixed some cases of `DeletePropertyOrThrow` in IE9-\n- Fixed the kind of error (`TypeError` instead of `Error`) on incorrect `exec` result in `RegExp.prototype.test` polyfill\n- Fixed dependencies of `{ actual, full, features }/typed-array/at` entries\n- Added Electron 20.0 compat data mapping\n- Added iOS Safari 15.5 compat data mapping\n- Refactoring\n\n### [3.22.7 - 2022.05.24](https://github.com/zloirock/core-js/releases/tag/v3.22.7)\n- Added a workaround for V8 ~ Chrome 53 bug with non-writable prototype of some methods, [#1083](https://github.com/zloirock/core-js/issues/1083)\n\n### [3.22.6 - 2022.05.23](https://github.com/zloirock/core-js/releases/tag/v3.22.6)\n- Fixed possible double call of `ToNumber` conversion on arguments of `Math.{ fround, trunc }` polyfills\n- `Array.prototype.includes` marked as [fixed](https://bugzilla.mozilla.org/show_bug.cgi?id=1767541) in FF102\n\n### [3.22.5 - 2022.05.10](https://github.com/zloirock/core-js/releases/tag/v3.22.5)\n- Ensured that polyfilled constructors `.prototype` is non-writable\n- Ensured that polyfilled methods `.prototype` is not defined\n- Added detection and fix of a V8 ~ Chrome <103 [bug](https://bugs.chromium.org/p/v8/issues/detail?id=12542) of `struturedClone` that returns `null` if cloned object contains multiple references to one error\n\n### [3.22.4 - 2022.05.03](https://github.com/zloirock/core-js/releases/tag/v3.22.4)\n- Ensured proper `.length` of polyfilled functions even in compressed code (excepting some ancient engines)\n- Ensured proper `.name` of polyfilled accessors (excepting some ancient engines)\n- Ensured proper source / `ToString` conversion of polyfilled accessors\n- Actualized Rhino compat data\n- Refactoring\n\n### [3.22.3 - 2022.04.28](https://github.com/zloirock/core-js/releases/tag/v3.22.3)\n- Added a fix for FF99+ `Array.prototype.includes` broken on sparse arrays\n\n### [3.22.2 - 2022.04.21](https://github.com/zloirock/core-js/releases/tag/v3.22.2)\n- Fixed `URLSearchParams` in IE8- that was broken in the previous release\n- Fixed `__lookupGetter__` entries\n\n### [3.22.1 - 2022.04.20](https://github.com/zloirock/core-js/releases/tag/v3.22.1)\n- Improved some cases of `RegExp` flags handling\n- Prevented experimental warning in NodeJS ~ 18.0 on detection `fetch` API\n- Added NodeJS 18.0 compat data\n\n### [3.22.0 - 2022.04.15](https://github.com/zloirock/core-js/releases/tag/v3.22.0)\n- [Change `Array` by copy proposal](https://github.com/tc39/proposal-change-array-by-copy):\n  - Moved to Stage 3, [March TC39 meeting](https://github.com/babel/proposals/issues/81#issuecomment-1083449843)\n  - Disabled forced replacement and added `/actual/` entry points for methods from this proposal\n  - `Array.prototype.toSpliced` throws a `TypeError` instead of `RangeError` if the result length is more than `MAX_SAFE_INTEGER`, [proposal-change-array-by-copy/70](https://github.com/tc39/proposal-change-array-by-copy/pull/70)\n- Added some more `atob` / `btoa` fixes:\n  - NodeJS <17.9 `atob` does not ignore spaces, [node/42530](https://github.com/nodejs/node/issues/42530)\n  - Actual NodeJS `atob` does not validate encoding, [node/42646](https://github.com/nodejs/node/issues/42646)\n  - FF26- implementation does not properly convert argument to string\n  - IE / Edge <16 implementation have wrong arity\n- Added `/full/` namespace as the replacement for `/features/` since it's more descriptive in context of the rest namespaces (`/es/` ⊆ `/stable/` ⊆ `/actual/` ⊆ `/full/`)\n- Avoided propagation of removed parts of proposals to upper stages. For example, `%TypedArray%.prototype.groupBy` was removed from the `Array` grouping proposal a long time ago. We can't completely remove this method since it's a breaking change. But this proposal has been promoted to stage 3 - so the proposal should be promoted without this method, this method should not be available in `/actual/` entries - but it should be available in early-stage entries to avoid breakage.\n- Significant internal refactoring and splitting of modules (but without exposing to public API since it will be a breaking change - it will be exposed in the next major version)\n- Bug fixes:\n  - Fixed work of non-standard V8 `Error` features with wrapped `Error` constructors, [#1061](https://github.com/zloirock/core-js/issues/1061)\n  - `null` and `undefined` allowed as the second argument of `structuredClone`, [#1056](https://github.com/zloirock/core-js/issues/1056)\n- Tooling:\n  - Stabilized proposals are filtered out from the `core-js-compat` -> `core-js-builder` -> `core-js-bundle` output. That mean that if the output contains, for example, `es.object.has-own`, the legacy reference to it, `esnext.object.has-own`, no longer added.\n  - Aligned modules filters of [`core-js-builder`](https://github.com/zloirock/core-js/tree/master/packages/core-js-builder) and [`core-js-compat`](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat), now it's `modules` and `exclude` options\n  - Added support of entry points, modules, regexes, and arrays of them to those filters\n  - Missed `targets` option of `core-js-compat` means that the `targets` filter just will not be applied, so the result will contain modules required for all possible engines\n- Compat data:\n  - `.stack` property on `DOMException` marked as supported from Deno [1.15](https://github.com/denoland/deno/releases/tag/v1.15.0)\n  - Added Deno 1.21 compat data mapping\n  - Added Electron 19.0 and updated 18.0 compat data mapping\n  - Added Samsung Internet 17.0 compat data mapping\n  - Added Opera Android 68 compat data mapping\n\n### [3.21.1 - 2022.02.17](https://github.com/zloirock/core-js/releases/tag/v3.21.1)\n- Added a [bug](https://bugs.webkit.org/show_bug.cgi?id=236541)fix for the WebKit `Array.prototype.{ groupBy, groupByToMap }` implementation\n- `core-js-compat` targets parser transforms engine names to lower case\n- `atob` / `btoa` marked as [fixed](https://github.com/nodejs/node/pull/41478) in NodeJS 17.5\n- Added Electron 18.0 compat data mapping\n- Added Deno 1.20 compat data mapping\n\n### [3.21.0 - 2022.02.02](https://github.com/zloirock/core-js/releases/tag/v3.21.0)\n- Added [Base64 utility methods](https://developer.mozilla.org/en-US/docs/Glossary/Base64):\n  - `atob`\n  - `btoa`\n- Added the proper validation of arguments to some methods from web standards\n- Forced replacement of all features from early-stage proposals for avoiding possible web compatibility issues in the future\n- Added Rhino 1.7.14 compat data\n- Added Deno 1.19 compat data mapping\n- Added Opera Android 66 and 67 compat data mapping\n- Added iOS Safari 15.3 and 15.4 compat data mapping\n\n### [3.20.3 - 2022.01.15](https://github.com/zloirock/core-js/releases/tag/v3.20.3)\n- Detects and replaces broken third-party `Function#bind` polyfills, uses only native `Function#bind` in the internals\n- `structuredClone` should throw an error if no arguments passed\n- Changed the structure of notes in `__core-js_shared__`\n\n### [3.20.2 - 2022.01.02](https://github.com/zloirock/core-js/releases/tag/v3.20.2)\n- Added a fix of [a V8 ~ Chrome 36- `Object.{ defineProperty, defineProperties }` bug](https://bugs.chromium.org/p/v8/issues/detail?id=3334), [Babel issue](https://github.com/babel/babel/issues/14056)\n- Added fixes of some different `%TypedArray%.prototype.set` bugs, affects modern engines (like Chrome < 95 or Safari < 14.1)\n\n### [3.20.1 - 2021.12.23](https://github.com/zloirock/core-js/releases/tag/v3.20.1)\n- Fixed the order of calling reactions of already fulfilled / rejected promises in `Promise.prototype.then`, [#1026](https://github.com/zloirock/core-js/issues/1026)\n- Fixed possible memory leak in specific promise chains\n- Fixed some missed dependencies of entries\n- Added Deno 1.18 compat data mapping\n\n### [3.20.0 - 2021.12.16](https://github.com/zloirock/core-js/releases/tag/v3.20.0)\n- Added `structuredClone` method [from the HTML spec](https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone), [see MDN](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone)\n  - Includes all cases of cloning and transferring of required ECMAScript and platform types that can be polyfilled, for the details see [the caveats](https://github.com/zloirock/core-js#caveats-when-using-structuredclone-polyfill)\n  - Uses native structured cloning algorithm implementations where it's possible\n  - Includes the new semantic of errors cloning from [`html/5749`](https://github.com/whatwg/html/pull/5749)\n- Added `DOMException` polyfill, [the Web IDL spec](https://webidl.spec.whatwg.org/#idl-DOMException), [see MDN](https://developer.mozilla.org/en-US/docs/Web/API/DOMException)\n  - Includes `DOMException` and its attributes polyfills with fixes of many different engines bugs\n  - Includes `DOMException#stack` property polyfill in engines that should have it\n  - Reuses native `DOMException` implementations where it's possible (for example, in old NodeJS where it's not exposed as global)\n- Added [support of `cause` on all Error types](https://github.com/tc39/proposal-error-cause)\n- Added `Error.prototype.toString` method polyfill with fixes of many different bugs of JS engines\n- Added `Number.prototype.toExponential` method polyfill with fixes of many different bugs of JS engines\n- [`Array` grouping proposal](https://github.com/tc39/proposal-array-grouping):\n  - Moved to stage 3\n  - Added `Array.prototype.groupByToMap` method\n  - Removed `@@species` support\n- Added [change `Array` by copy stage 2 proposal](https://github.com/tc39/proposal-change-array-by-copy):\n  - `Array.prototype.toReversed`\n  - `Array.prototype.toSorted`\n  - `Array.prototype.toSpliced`\n  - `Array.prototype.with`\n  - `%TypedArray%.prototype.toReversed`\n  - `%TypedArray%.prototype.toSorted`\n  - `%TypedArray%.prototype.toSpliced`\n  - `%TypedArray%.prototype.with`\n- Added `Iterator.prototype.toAsync` method from [the iterator helpers stage 2 proposal](https://github.com/tc39/proposal-iterator-helpers)\n- [`Array.fromAsync` proposal](https://github.com/tc39/proposal-array-from-async) moved to stage 2\n- Added [`String.cooked` stage 1 proposal](https://github.com/tc39/proposal-string-cooked)\n- Added [`Function.prototype.unThis` stage 0 proposal](https://github.com/js-choi/proposal-function-un-this)\n- Added [`Function.{ isCallable, isConstructor }` stage 0 proposal](https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md):\n  - `Function.isCallable`\n  - `Function.isConstructor`\n- Added a workaround of most cases breakage modern `String#at` after loading obsolete `String#at` proposal module, [#1019](https://github.com/zloirock/core-js/issues/1019)\n- Fixed `Array.prototype.{ values, @@iterator }.name` in V8 ~ Chrome 45-\n- Fixed validation of typed arrays in typed arrays iteration methods in V8 ~ Chrome 50-\n- Extension of the API, [#1012](https://github.com/zloirock/core-js/issues/1012)\n  - Added a new `core-js/actual/**` namespace\n  - Added entry points for each finished post-ES6 proposal\n\n### [3.19.3 - 2021.12.06](https://github.com/zloirock/core-js/releases/tag/v3.19.3)\n- Fixed internal slots check in methods of some built-in types, [#1017](https://github.com/zloirock/core-js/issues/1017)\n- Fixed `URLSearchParams` iterator `.next` that should be enumerable [by the spec](https://webidl.spec.whatwg.org/#es-iterator-prototype-object)\n- Refactored `Subscription`\n- Added NodeJS 17.2 compat data mapping\n\n### [3.19.2 - 2021.11.29](https://github.com/zloirock/core-js/releases/tag/v3.19.2)\n- Added a workaround for a UC Browser specific version bug with unobservable `RegExp#sticky` flag, [#1008](https://github.com/zloirock/core-js/issues/1008), [#1015](https://github.com/zloirock/core-js/issues/1015)\n- Added handling of comments and specific spaces to `Function#name` polyfill, [#1010](https://github.com/zloirock/core-js/issues/1010), thanks [@ildar-shaimordanov](https://github.com/ildar-shaimordanov)\n- Prevented some theoretical cases of breaking / observing the internal state by patching `Array.prototype[@@species]`\n- Refactored `URL` and `URLSearchParams`\n- Added iOS Safari 15.2 compat data mapping\n- Added Electron 17.0 compat data mapping\n- Updated Deno compat data mapping\n\n### [3.19.1 - 2021.11.03](https://github.com/zloirock/core-js/releases/tag/v3.19.1)\n- Added a workaround for FF26- bug where `ArrayBuffer`s are non-extensible, but `Object.isExtensible` does not report it:\n  - Fixed in `Object.{ isExtensible, isSealed, isFrozen }` and `Reflect.isExtensible`\n  - Fixed handling of `ArrayBuffer`s as collections keys\n- Fixed `Object#toString` on `AggregateError` in IE10-\n- Fixed possible lack of dependencies of `WeakMap` in IE8-\n- `.findLast` methods family marked as supported [from Chrome 97](https://chromestatus.com/features#milestone%3D97)\n- Fixed inheritance of Electron compat data `web.` modules\n- Fixed Safari 15.1 compat data (some features were not added)\n- Added iOS Safari 15.1 compat data mapping\n\n### [3.19.0 - 2021.10.25](https://github.com/zloirock/core-js/releases/tag/v3.19.0)\n- Most built-ins are encapsulated in `core-js` for preventing possible cases of breaking / observing the internal state by patching / deleting of them\n  - Avoid `.call` / `.apply` prototype methods that could be patched\n  - Avoid `instanceof` operator - implicit `.prototype` / `@@hasInstance` access that could be patched\n  - Avoid `RegExp#test`, `String#match` and some over methods - implicit `.exec` and `RegExp` well-known symbols access that could be patched\n- Clearing of `Error` stack from extra entries experimentally added to `AggregateError`, [#996](https://github.com/zloirock/core-js/pull/996), in case lack of problems it will be extended to other cases\n- In engines with native `Symbol` support, new well-known symbols created with usage `Symbol.for` for ensuring the same keys in different realms, [#998](https://github.com/zloirock/core-js/issues/998)\n- Added a workaround of [a BrowserFS NodeJS `process` polyfill bug](https://github.com/jvilk/bfs-process/issues/5) that incorrectly reports V8 version that's used in some cases of `core-js` feature detection\n- Fixed normalization of `message` `AggregateError` argument\n- Fixed order of arguments conversion in `Math.scale`, [a spec draft bug](https://github.com/rwaldron/proposal-math-extensions/issues/24)\n- Fixed `core-js-builder` work in NodeJS 17, added a workaround of [`webpack` + NodeJS 17 issue](https://github.com/webpack/webpack/issues/14532)\n- Added NodeJS 17.0 compat data mapping\n- Added Opera Android 65 compat data mapping\n- Updated Electron 16.0 compat data mapping\n- Many other minor fixes and improvements\n\n### [3.18.3 - 2021.10.13](https://github.com/zloirock/core-js/releases/tag/v3.18.3)\n- Fixed the prototype chain of `AggregateError` constructor that should contain `Error` constructor\n- Fixed incorrect `AggregateError.prototype` properties descriptors\n- Fixed `InstallErrorCause` internal operation\n- Added NodeJS 16.11 compat data mapping\n- Added Deno 1.16 compat data mapping\n- `Object.hasOwn` marked as supported from Safari 15.1\n\n### [3.18.2 - 2021.10.06](https://github.com/zloirock/core-js/releases/tag/v3.18.2)\n- Early `{ Array, %TypedArray% }.fromAsync` errors moved to the promise, per the latest changes of the spec draft\n- Internal `ToInteger(OrInfinity)` operation returns `+0` for `-0` argument, ES2020+ update\n- Fixed theoretical problems with handling bigint in `Number` constructor wrapper\n- Fixed `String.raw` with extra arguments\n- Fixed some missed dependencies in entry points\n- Some other minor fixes and improvements\n- Refactoring\n\n### [3.18.1 - 2021.09.27](https://github.com/zloirock/core-js/releases/tag/v3.18.1)\n- Fixed `String.prototype.substr` feature detection and compat data\n- Removed mistakenly added `.forEach` from prototypes of some DOM collections where it shouldn't be, [#988](https://github.com/zloirock/core-js/issues/988), [#987](https://github.com/zloirock/core-js/issues/987), thanks [@moorejs](https://github.com/moorejs)\n- Added `cause` to `AggregateError` constructor implementation (still without adding to the feature detection)\n- Families of `.at` and `.findLast` methods marked as supported in Safari TP\n- Added Electron 16.0 compat data mapping\n\n### [3.18.0 - 2021.09.20](https://github.com/zloirock/core-js/releases/tag/v3.18.0)\n- Added [`Array.fromAsync` stage 1 proposal](https://github.com/tc39/proposal-array-from-async):\n  - `Array.fromAsync`\n  - `%TypedArray%.fromAsync`\n- `.name` and `.toString()` on polyfilled functions improved in many different cases\n- Improved internal `IsConstructor` and `IsCallable` checks\n- Fixed some internal cases of `GetMethod` operation\n- Fixed a bug of MS Edge 18- `parseInt` / `parseFloat` with boxed symbols\n- Fixed `es.array.{ index-of, last-index-of }` compat data\n- Added Deno 1.15 compat data mapping\n- Some other minor fixes and optimizations\n\n### [3.17.3 - 2021.09.09](https://github.com/zloirock/core-js/releases/tag/v3.17.3)\n- Fixed some possible problems related to possible extension of `%IteratorPrototype%` and `%AsyncIteratorPrototype%` in the future\n- Fixed `DOMTokenList.prototype.{ forEach, @@iterator, keys, values, entries }` in old WebKit versions where `element.classList` is not an instance of global `DOMTokenList`\n- Added NodeJS 16.9 compat data mapping\n- Added Samsung Internet 16.0 compat data mapping\n\n### [3.17.2 - 2021.09.03](https://github.com/zloirock/core-js/releases/tag/v3.17.2)\n- Fixed missed cases of ES3 reserved words usage, related to [#980](https://github.com/zloirock/core-js/issues/980)\n- Fixed dependencies in one missed entry point\n- Some other minor fixes and optimizations\n\n### [3.17.1 - 2021.09.02](https://github.com/zloirock/core-js/releases/tag/v3.17.1)\n- Fixed missed `modules-by-versions` data\n\n### [3.17.0 - 2021.09.02](https://github.com/zloirock/core-js/releases/tag/v3.17.0)\n- [Accessible `Object.prototype.hasOwnProperty` (`Object.hasOwn`) proposal](https://github.com/tc39/proposal-accessible-object-hasownproperty) moved to the stable ES, [per August 2021 TC39 meeting](https://github.com/babel/proposals/issues/76#issuecomment-909288348)\n- [Relative indexing method (`.at`) proposal](https://github.com/tc39/proposal-relative-indexing-method) moved to the stable ES, [per August 2021 TC39 meeting](https://github.com/babel/proposals/issues/76#issuecomment-909285053)\n- Exposed by default the stable version of `String.prototype.at`. It was not exposed because of the conflict with the alternative obsolete proposal (that will be completely removed in the next major version). For the backward compatibility, in the case of loading this proposal, it will be overwritten.\n- Some more iteration closing fixes\n- Fixed an ES3 reserved words usage, [#980](https://github.com/zloirock/core-js/issues/980)\n\n### [3.16.4 - 2021.08.29](https://github.com/zloirock/core-js/releases/tag/v3.16.4)\n- `AsyncFromSyncIterator` made stricter, related mainly to `AsyncIterator.from` and `AsyncIterator.prototype.flatMap`\n- Handling of optional `.next` arguments in `(Async)Iterator` methods is aligned with the current spec draft (mainly - ignoring the first passed to `.next` argument in built-in generators)\n- Behavior of `.next`, `.return`, `.throw` methods on `AsyncIterator` helpers proxy iterators aligned with the current spec draft (built-in async generators) (mainly - some early errors moved to returned promises)\n- Fixed some cases of safe iteration closing\n- Fixed dependencies of some entry points\n\n### [3.16.3 - 2021.08.25](https://github.com/zloirock/core-js/releases/tag/v3.16.3)\n- Fixed `CreateAsyncFromSyncIterator` semantic in `AsyncIterator.from`, related to [#765](https://github.com/zloirock/core-js/issues/765)\n- Added a workaround of a specific case of broken `Object.prototype`, [#973](https://github.com/zloirock/core-js/issues/973)\n\n### [3.16.2 - 2021.08.17](https://github.com/zloirock/core-js/releases/tag/v3.16.2)\n- Added a workaround of a Closure Compiler unsafe optimization, [#972](https://github.com/zloirock/core-js/issues/972)\n- One more fix crashing of `Object.create(null)` on WSH, [#970](https://github.com/zloirock/core-js/issues/970)\n- Added Deno 1.14 compat data mapping\n\n### [3.16.1 - 2021.08.09](https://github.com/zloirock/core-js/releases/tag/v3.16.1)\n- Fixed microtask implementation on iOS Pebble, [#967](https://github.com/zloirock/core-js/issues/967)\n- Fixed some entry points\n- Improved old Safari compat data\n\n### [3.16.0 - 2021.07.30](https://github.com/zloirock/core-js/releases/tag/v3.16.0)\n- [`Array` find from last proposal](https://github.com/tc39/proposal-array-find-from-last) moved to the stage 3, [July 2021 TC39 meeting](https://github.com/tc39/proposal-array-find-from-last/pull/47)\n- [`Array` filtering stage 1 proposal](https://github.com/tc39/proposal-array-filtering):\n  - `Array.prototype.filterReject` replaces `Array.prototype.filterOut`\n  - `%TypedArray%.prototype.filterReject` replaces `%TypedArray%.prototype.filterOut`\n- Added [`Array` grouping stage 1 proposal](https://github.com/tc39/proposal-array-grouping):\n  - `Array.prototype.groupBy`\n  - `%TypedArray%.prototype.groupBy`\n- Work with symbols made stricter: some missed before cases of methods that should throw an error on symbols now works as they should\n- Handling `@@toPrimitive` in some cases of `ToPrimitive` internal logic made stricter\n- Fixed work of `Request` with polyfilled `URLSearchParams`, [#965](https://github.com/zloirock/core-js/issues/965)\n- Fixed possible exposing of collections elements metadata in some cases, [#427](https://github.com/zloirock/core-js/issues/427)\n- Fixed crashing of `Object.create(null)` on WSH, [#966](https://github.com/zloirock/core-js/issues/966)\n- Fixed some cases of typed arrays subclassing logic\n- Fixed a minor bug related to string conversion in `RegExp#exec`\n- Fixed `Date.prototype.getYear` feature detection\n- Fixed content of some entry points\n- Some minor optimizations and refactoring\n- Deno:\n  - Added Deno support (sure, after bundling since Deno does not support CommonJS)\n  - Allowed `deno` target in `core-js-compat` / `core-js-builder`\n  - A bundle for Deno published on [deno.land/x/corejs](https://deno.land/x/corejs)\n- Added / updated compat data / mapping:\n  - Deno 1.0-1.13\n  - NodeJS up to 16.6\n  - iOS Safari up to 15.0\n  - Samsung Internet up to 15.0\n  - Opera Android up to 64\n  - `Object.hasOwn` marked as supported from [V8 9.3](https://chromestatus.com/feature/5662263404920832) and [FF92](https://bugzilla.mozilla.org/show_bug.cgi?id=1721149)\n  - `Date.prototype.getYear` marked as not supported in IE8-\n- Added `summary` option to `core-js-builder`, see more info in the [`README`](https://github.com/zloirock/core-js/blob/master/packages/core-js-builder/README.md), [#910](https://github.com/zloirock/core-js/issues/910)\n\n### [3.15.2 - 2021.06.29](https://github.com/zloirock/core-js/releases/tag/v3.15.2)\n- Worked around breakage related to `zone.js` loaded before `core-js`, [#953](https://github.com/zloirock/core-js/issues/953)\n- Added NodeJS 16.4 -> Chrome 91 compat data mapping\n\n### [3.15.1 - 2021.06.23](https://github.com/zloirock/core-js/releases/tag/v3.15.1)\n- Fixed cloning of regex through `RegExp` constructor, [#948](https://github.com/zloirock/core-js/issues/948)\n\n### [3.15.0 - 2021.06.21](https://github.com/zloirock/core-js/releases/tag/v3.15.0)\n- Added `RegExp` named capture groups polyfill, [#521](https://github.com/zloirock/core-js/issues/521), [#944](https://github.com/zloirock/core-js/issues/944)\n- Added `RegExp` `dotAll` flag polyfill, [#792](https://github.com/zloirock/core-js/issues/792), [#944](https://github.com/zloirock/core-js/issues/944)\n- Added missed polyfills of [Annex B](https://tc39.es/ecma262/#sec-additional-built-in-properties) features (required mainly for some non-browser engines), [#336](https://github.com/zloirock/core-js/issues/336), [#945](https://github.com/zloirock/core-js/issues/945):\n  - `escape`\n  - `unescape`\n  - `String.prototype.substr`\n  - `Date.prototype.getYear`\n  - `Date.prototype.setYear`\n  - `Date.prototype.toGMTString`\n- Fixed detection of forbidden host code points in `URL` polyfill\n- Allowed `rhino` target in `core-js-compat` / `core-js-builder`, added compat data for `rhino` 1.7.13, [#942](https://github.com/zloirock/core-js/issues/942), thanks [@gausie](https://github.com/gausie)\n- `.at` marked as supported from FF90\n\n### [3.14.0 - 2021.06.05](https://github.com/zloirock/core-js/releases/tag/v3.14.0)\n- Added polyfill of stable sort in `{ Array, %TypedArray% }.prototype.sort`, [#769](https://github.com/zloirock/core-js/issues/769), [#941](https://github.com/zloirock/core-js/issues/941)\n- Fixed `Safari` 14.0- `%TypedArray%.prototype.sort` validation of arguments bug\n- `.at` marked as supported from V8 9.2\n\n### [3.13.1 - 2021.05.29](https://github.com/zloirock/core-js/releases/tag/v3.13.1)\n- Overwrites `get-own-property-symbols` third-party `Symbol` polyfill if it's used since it causes a stack overflow, [#774](https://github.com/zloirock/core-js/issues/774)\n- Added a workaround of possible browser crash on `Object.prototype` accessors methods in WebKit ~ Android 4.0, [#232](https://github.com/zloirock/core-js/issues/232)\n\n### [3.13.0 - 2021.05.26](https://github.com/zloirock/core-js/releases/tag/v3.13.0)\n- Accessible `Object#hasOwnProperty` (`Object.hasOwn`) proposal moved to the stage 3, [May 2021 TC39 meeting](https://github.com/babel/proposals/issues/74#issuecomment-848121673)\n\n### [3.12.1 - 2021.05.09](https://github.com/zloirock/core-js/releases/tag/v3.12.1)\n- Fixed some cases of `Function#toString` with multiple `core-js` instances\n- Fixed some possible `String#split` polyfill problems in V8 5.1\n\n### [3.12.0 - 2021.05.06](https://github.com/zloirock/core-js/releases/tag/v3.12.0)\n- Added well-known symbol `Symbol.metadata` for [decorators stage 2 proposal](https://github.com/tc39/proposal-decorators)\n- Added well-known symbol `Symbol.matcher` for [pattern matching stage 1 proposal](https://github.com/tc39/proposal-pattern-matching)\n- Fixed regression of V8 ~ Node 0.12 `String(Symbol())` bug, [#933](https://github.com/zloirock/core-js/issues/933)\n\n### [3.11.3 - 2021.05.05](https://github.com/zloirock/core-js/releases/tag/v3.11.3)\n- Native promise-based APIs `Promise#{ catch, finally }` returns polyfilled `Promise` instances when it's required\n\n### [3.11.2 - 2021.05.03](https://github.com/zloirock/core-js/releases/tag/v3.11.2)\n- Added a workaround of WebKit ~ iOS 10.3 Safari `Promise` bug, [#932](https://github.com/zloirock/core-js/issues/932)\n- `Promise#then` of incorrect native `Promise` implementations with correct subclassing no longer wrapped\n- Changed the order of `Promise` feature detection, removed unhandled rejection tracking check in non-browser non-node platforms\n\n### [3.11.1 - 2021.04.28](https://github.com/zloirock/core-js/releases/tag/v3.11.1)\n- Made `instanceof Promise` and `.constructor === Promise` work with polyfilled `Promise` for all native promise-based APIs\n- Added a workaround for some buggy V8 versions \\~4.5 related to fixing of `%TypedArray%` static methods, [#564](https://github.com/zloirock/core-js/issues/564)\n\n### [3.11.0 - 2021.04.22](https://github.com/zloirock/core-js/releases/tag/v3.11.0)\n- Added [accessible `Object#hasOwnProperty` stage 2 proposal](https://github.com/tc39/proposal-accessible-object-hasownproperty)\n  - `Object.hasOwn` method\n- Fixed a possible `RegExp` constructor problem with multiple global `core-js` instances\n\n### [3.10.2 - 2021.04.19](https://github.com/zloirock/core-js/releases/tag/v3.10.2)\n- `URL` and `URLSearchParams` marked as supported from Safari 14.0\n- Polyfilled built-in constructors protected from calling on instances\n\n### [3.10.1 - 2021.04.08](https://github.com/zloirock/core-js/releases/tag/v3.10.1)\n- Prevented possible `RegExp#split` problems in old engines, [#751](https://github.com/zloirock/core-js/issues/751), [#919](https://github.com/zloirock/core-js/issues/919)\n- Detection of Safari 10 string padding bug extended to some Safari-based browsers\n\n### [3.10.0 - 2021.03.31](https://github.com/zloirock/core-js/releases/tag/v3.10.0)\n- [`Array` find from last proposal](https://github.com/tc39/proposal-array-find-from-last) moved to the stage 2, [March TC39 meeting](https://github.com/babel/proposals/issues/71#issuecomment-795916535)\n- Prevented possible `RegExp#exec` problems in some old engines, [#920](https://github.com/zloirock/core-js/issues/920)\n- Updated compat data mapping:\n  - NodeJS up to 16.0\n  - Electron up to 13.0\n  - Samsung Internet up to 14.0\n  - Opera Android up to 62\n  - The rest automatically\n\n### [3.9.1 - 2021.03.01](https://github.com/zloirock/core-js/releases/tag/v3.9.1)\n- Added a workaround for Chrome 38-40 bug which does not allow to inherit symbols (incl. well-known) from DOM collections prototypes to instances, [#37](https://github.com/zloirock/core-js/issues/37)\n- Used `NumericRangeIterator` as toStringTag instead of `RangeIterator` in `{ Number, BigInt }.range` iterator, per [this PR](https://github.com/tc39/proposal-Number.range/pull/46)\n- TypedArray constructors marked as supported from Safari 14.0\n- Updated compat data mapping for iOS Safari and Opera for Android\n\n### [3.9.0 - 2021.02.19](https://github.com/zloirock/core-js/releases/tag/v3.9.0)\n- Added [`Array` find from last stage 1 proposal](https://github.com/tc39/proposal-array-find-from-last)\n  - `Array#findLast`\n  - `Array#findLastIndex`\n  - `%TypedArray%#findLast`\n  - `%TypedArray%#findLastIndex`\n- Added `%TypedArray%#uniqueBy` method for [array deduplication stage 1 proposal](https://github.com/tc39/proposal-array-unique)\n  - `%TypedArray%#uniqueBy`\n- Dropped `ToLength` detection from array methods feature detection which could cause hanging FF11-21 and some versions of old WebKit, [#764](https://github.com/zloirock/core-js/issues/764)\n- Minified bundle from `core-js-bundle` uses `terser` instead of `uglify-js`\n\n### [3.8.3 - 2021.01.19](https://github.com/zloirock/core-js/releases/tag/v3.8.3)\n- Fixed some more issues related to FF44- legacy `Iterator`, [#906](https://github.com/zloirock/core-js/issues/906)\n\n### [3.8.2 - 2021.01.03](https://github.com/zloirock/core-js/releases/tag/v3.8.2)\n- Fixed handling of special replacements patterns in `String#replaceAll`, [#900](https://github.com/zloirock/core-js/issues/900)\n- Fixed iterators dependencies of `Promise.any` and `Promise.allSettled` entries\n- Fixed microtask implementation on WebOS, [#898](https://github.com/zloirock/core-js/issues/898), [#901](https://github.com/zloirock/core-js/issues/901)\n\n### [3.8.1 - 2020.12.06](https://github.com/zloirock/core-js/releases/tag/v3.8.1)\n- Fixed work of new `%TypedArray%` methods on `BigInt` arrays\n- Added ESNext methods to ES3 workaround for `Number` constructor wrapper\n\n### [3.8.0 - 2020.11.26](https://github.com/zloirock/core-js/releases/tag/v3.8.0)\n- Added [relative indexing method stage 3 proposal](https://github.com/tc39/proposal-relative-indexing-method)\n  - `Array#at`\n  - `%TypedArray%#at`\n- Added [`Number.range` stage 1 proposal](https://github.com/tc39/proposal-Number.range)\n  - `Number.range`\n  - `BigInt.range`\n- Added [array filtering stage 1 proposal](https://github.com/tc39/proposal-array-filtering)\n  - `Array#filterOut`\n  - `%TypedArray%#filterOut`\n- Added [array deduplication stage 1 proposal](https://github.com/tc39/proposal-array-unique)\n  - `Array#uniqueBy`\n- Added code points / code units explicit feature detection in `String#at` for preventing breakage code which use obsolete `String#at` proposal polyfill\n- Added the missed `(es|stable)/instance/replace-all` entries\n- Updated compat data mapping for Opera - from Opera 69, the difference with Chrome versions increased to 14\n- Compat data mapping for modern Android WebView to Chrome moved from targets parser directly to compat data\n- Deprecate `core-js-builder` `blacklist` option in favor of `exclude`\n\n### [2.6.12 [LEGACY] - 2020.11.26](https://github.com/zloirock/core-js/releases/tag/v2.6.12)\n- Added code points / code units explicit feature detection in `String#at` for preventing breakage code which use obsolete `String#at` proposal polyfill\n- Added `OPEN_SOURCE_CONTRIBUTOR` detection in `postinstall`\n- Added Drone CI detection in `postinstall`\n\n### [3.7.0 - 2020.11.06](https://github.com/zloirock/core-js/releases/tag/v3.7.0)\n- `String#replaceAll` moved to the stable ES, [per June TC39 meeting](https://github.com/tc39/notes/blob/master/meetings/2020-06/june-2.md#stringprototypereplaceall-for-stage-4)\n- `Promise.any` and `AggregateError` moved to the stable ES, [per July TC39 meeting](https://github.com/tc39/notes/blob/master/meetings/2020-07/july-21.md#promiseany--aggregateerror-for-stage-4)\n- Added `Reflect[@@toStringTag]`, [per July TC39 meeting](https://github.com/tc39/ecma262/pull/2057)\n- Forced replacement of `Array#{ reduce, reduceRight }` in Chrome 80-82 because of [a bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1049982), [#766](https://github.com/zloirock/core-js/issues/766)\n- Following the changes in [the `upsert` proposal](https://github.com/tc39/proposal-upsert), `{ Map, WeakMap }#emplace` replace `{ Map, WeakMap }#upsert`, these obsolete methods will be removed in the next major release\n- [By the current spec](https://tc39.es/ecma262/#sec-aggregate-error-constructor), `AggregateError#errors` is own data property\n- Added correct iteration closing in the iteration helpers according to the current version of [the proposal](https://tc39.es/proposal-iterator-helpers)\n- `process.nextTick` have a less priority than `Promise` in the microtask implementation, [#855](https://github.com/zloirock/core-js/issues/855)\n- Fixed microtask implementation in engines with `MutationObserver`, but without `document`, [#865](https://github.com/zloirock/core-js/issues/865), [#866](https://github.com/zloirock/core-js/issues/866)\n- Fixed `core-js-builder` with an empty (after the targets engines or another filtration) modules list, [#822](https://github.com/zloirock/core-js/issues/822)\n- Fixed possible twice call of `window.onunhandledrejection`, [#760](https://github.com/zloirock/core-js/issues/760)\n- Fixed some possible problems related multiple global copies of `core-js`, [#880](https://github.com/zloirock/core-js/issues/880)\n- Added a workaround for 3rd party `Reflect.set` polyfill bug, [#847](https://github.com/zloirock/core-js/issues/847)\n- Updated compat data:\n  - Chrome up to 86\n  - FF up to 82\n  - Safari up to 14\n- Updated compat data mapping:\n  - iOS up to 14\n  - NodeJS up to 15.0\n  - Electron up to 11.0\n  - Samsung Internet up to 13.0\n  - Opera Android up to 60\n  - The rest automatically\n- Updated all required dependencies\n\n### [3.6.5 - 2020.04.09](https://github.com/zloirock/core-js/releases/tag/v3.6.5)\n- Updated Browserslist [#755](https://github.com/zloirock/core-js/issues/755)\n- Fixed `setImmediate` in Safari [#770](https://github.com/zloirock/core-js/issues/770), thanks [@dtinth](https://github.com/dtinth)\n- Fixed some regexp, thanks [@scottarc](https://github.com/scottarc)\n- Added OPEN_SOURCE_CONTRIBUTOR detection in `postinstall`, thanks [@scottarc](https://github.com/scottarc)\n- Added Drone CI in `postinstall` CI detection [#781](https://github.com/zloirock/core-js/issues/781)\n\n### [3.6.4 - 2020.01.14](https://github.com/zloirock/core-js/releases/tag/v3.6.4)\n- Prevented a possible almost infinite loop in non-standard implementations of some backward iteration array methods\n\n### [3.6.3 - 2020.01.11](https://github.com/zloirock/core-js/releases/tag/v3.6.3)\n- Fixed replacement of substitutes of undefined capture groups in `.replace` in Safari 13.0-, [#471](https://github.com/zloirock/core-js/issues/471), [#745](https://github.com/zloirock/core-js/issues/745), thanks [@mattclough1](https://github.com/mattclough1)\n- Improved compat data for old engines\n\n### [3.6.2 - 2020.01.07](https://github.com/zloirock/core-js/releases/tag/v3.6.2)\n- Fixed early implementations of `Array#{ every, forEach, includes, indexOf, lastIndexOf, reduce, reduceRight, slice, some, splice }` for the usage of `ToLength`\n- Added `RegExp#exec` dependency to methods which depends on the correctness of logic of this method (`3.6.0-3.6.1` issue), [#741](https://github.com/zloirock/core-js/issues/741)\n- Refactored some internals\n\n### [3.6.1 - 2019.12.25](https://github.com/zloirock/core-js/releases/tag/v3.6.1)\n- Fixed a bug related `Symbol` with multiple copies of `core-js` (for `3.4.2-3.6.0`), [#736](https://github.com/zloirock/core-js/issues/736)\n- Refactored some tools\n\n### [3.6.0 - 2019.12.19](https://github.com/zloirock/core-js/releases/tag/v3.6.0)\n- Added support of sticky (`y`) `RegExp` flag, [#372](https://github.com/zloirock/core-js/issues/372), [#732](https://github.com/zloirock/core-js/issues/732), [#492](https://github.com/zloirock/core-js/issues/492), thanks [@cvle](https://github.com/cvle) and [@nicolo-ribaudo](https://github.com/nicolo-ribaudo)\n- Added `RegExp#test` delegation to `RegExp#exec`, [#732](https://github.com/zloirock/core-js/issues/732), thanks [@cvle](https://github.com/cvle)\n- Fixed some cases of `Object.create(null)` in IE8-, [#727](https://github.com/zloirock/core-js/issues/727), [#728](https://github.com/zloirock/core-js/issues/728), thanks [@aleen42](https://github.com/aleen42)\n- Allowed object of minimum environment versions as `core-js-compat` and `core-js-builder` `targets` argument\n- Allowed corresponding to Babel `targets.esmodules`, `targets.browsers`, `targets.node` options in `core-js-compat` and `core-js-builder`\n- Engines in compat data and results of targets parsing sorted alphabetically\n- Fixed `features/instance/match-all` entry compat data\n- Fixed `Array.prototype[@@unscopables]` descriptor (was writable)\n- Added Samsung Internet 11 compat data mapping\n\n### [3.5.0 - 2019.12.12](https://github.com/zloirock/core-js/releases/tag/v3.5.0)\n- Added [object iteratoration stage 1 proposal](https://github.com/tc39/proposal-object-iteration):\n  - `Object.iterateKeys`\n  - `Object.iterateValues`\n  - `Object.iterateEntries`\n\n### [3.4.8 - 2019.12.09](https://github.com/zloirock/core-js/releases/tag/v3.4.8)\n- Added one more workaround for broken in previous versions `inspectSource` helper, [#719](https://github.com/zloirock/core-js/issues/719)\n- Added Opera Mobile compat data\n- Updated Samsung Internet, iOS, old Node and Android compat data mapping\n- `es.string.match-all` marked as completely supported in FF73\n- Generate `core-js-compat/modules` since often we need just the list of `core-js` modules\n\n### [2.6.11 [LEGACY] - 2019.12.09](https://github.com/zloirock/core-js/releases/tag/v2.6.11)\n- Returned usage of `node -e` in the `postinstall` scripts for better cross-platform compatibility, [#582](https://github.com/zloirock/core-js/issues/582)\n- Improved CI detection in the `postinstall` script, [#707](https://github.com/zloirock/core-js/issues/707)\n\n### [3.4.7 - 2019.12.03](https://github.com/zloirock/core-js/releases/tag/v3.4.7)\n- Fixed an NPM publishing issue\n\n### [3.4.6 - 2019.12.03](https://github.com/zloirock/core-js/releases/tag/v3.4.6)\n- Improved iOS compat data - added missed mapping iOS 12.2 -> Safari 12.1, added bug fixes from patch releases\n- Added Safari 13.1 compat data\n- Added missed in `core-js-compat` helpers `ie_mob` normalization\n- Normalize the result of `getModulesListForTargetVersion` `core-js-compat` helper\n- Improved CI detection in the `postinstall` script, [#707](https://github.com/zloirock/core-js/issues/707)\n\n### [3.4.5 - 2019.11.28](https://github.com/zloirock/core-js/releases/tag/v3.4.5)\n- Detect incorrect order of operations in `Object.assign`, MS Edge bug\n- Detect usage of `ToLength` in `Array#{ filter, map }`, FF48-49 and MS Edge 14- issues\n- Detect incorrect MS Edge 17-18 `Reflect.set` which allows setting the property to object with non-writable property on the prototype\n- Fixed `inspectSource` helper with multiple `core-js` copies and some related features like some edge cases of `Promise` feature detection\n\n### [3.4.4 - 2019.11.27](https://github.com/zloirock/core-js/releases/tag/v3.4.4)\n- Added feature detection for Safari [non-generic `Promise#finally` bug](https://bugs.webkit.org/show_bug.cgi?id=200829) **(critical for `core-js-pure`)**\n- Fixed missed `esnext.string.code-points` in `core-js/features/string` entry point\n- Updated `Iterator` proposal feature detection for the case of non-standard `Iterator` in FF44-\n\n### [3.4.3 - 2019.11.26](https://github.com/zloirock/core-js/releases/tag/v3.4.3)\n- Fixed missed `es.json.stringify` and some modules from iteration helpers proposal in some entry points **(includes the root entry point)**\n- Added a workaround of `String#{ endsWith, startsWith }` MDN polyfills bugs, [#702](https://github.com/zloirock/core-js/issues/702)\n- Fixed `.size` property descriptor of `Map` / `Set` in the pure version\n- Refactoring, some internal improvements\n\n### [3.4.2 - 2019.11.22](https://github.com/zloirock/core-js/releases/tag/v3.4.2)\n- Don't use polyfilled symbols as internal uids, a workaround for some incorrect use cases\n- `String#replaceAll` is available only in nightly FF builds\n- Improved `Promise` feature detection for the case of V8 6.6 with multiple `core-js` copies\n- Some internals optimizations\n- Added Node 13.2 -> V8 7.9 compat data mapping\n- Returned usage of `node -e` in `postinstall` scripts\n\n### [3.4.1 - 2019.11.12](https://github.com/zloirock/core-js/releases/tag/v3.4.1)\n- Throw when `(Async)Iterator#flatMap` mapper returns a non-iterable, per [tc39/proposal-iterator-helpers/55](https://github.com/tc39/proposal-iterator-helpers/issues/55) and [tc39/proposal-iterator-helpers/59](https://github.com/tc39/proposal-iterator-helpers/pull/59)\n- Removed own `AggregateError#toString`, per [tc39/proposal-promise-any/49](https://github.com/tc39/proposal-promise-any/pull/49)\n- Global `core-js` `Promise` polyfill passes feature detection in the pure versions\n- Fixed indexes in `String#replaceAll` callbacks\n- `String#replaceAll` marked as supported by FF72\n\n### [3.4.0 - 2019.11.07](https://github.com/zloirock/core-js/releases/tag/v3.4.0)\n- Added [well-formed `JSON.stringify`](https://github.com/tc39/proposal-well-formed-stringify), ES2019 feature, thanks [@ExE-Boss](https://github.com/ExE-Boss) and [@WebReflection](https://github.com/WebReflection) for the idea\n- Fixed `Math.signbit`, [#687](https://github.com/zloirock/core-js/issues/687), thanks [@chicoxyzzy](https://github.com/chicoxyzzy)\n\n### [3.3.6 - 2019.11.01](https://github.com/zloirock/core-js/releases/tag/v3.3.6)\n- Don't detect Chakra-based Edge as Chrome in the `userAgent` parsing\n- Fixed inheritance in typed array constructors wrappers, [#683](https://github.com/zloirock/core-js/issues/683)\n- Added one more workaround for correct work of early `fetch` implementations with polyfilled `URLSearchParams`, [#680](https://github.com/zloirock/core-js/issues/680)\n\n### [3.3.5 - 2019.10.29](https://github.com/zloirock/core-js/releases/tag/v3.3.5)\n- Added a workaround of V8 deoptimization which causes serious performance degradation (~4x in my tests) of `Array#concat`, [#679](https://github.com/zloirock/core-js/issues/679)\n- Added a workaround of V8 deoptimization which causes slightly performance degradation of `Promise`, [#679](https://github.com/zloirock/core-js/issues/679)\n- Added `(Async)Iterator.prototype.constructor -> (Async)Iterator` per [this issue](https://github.com/tc39/proposal-iterator-helpers/issues/60)\n- Added compat data for Chromium-based Edge\n\n### [3.3.4 - 2019.10.25](https://github.com/zloirock/core-js/releases/tag/v3.3.4)\n- Added a workaround of V8 deoptimization which causes serious performance degradation (~20x in my tests) of some `RegExp`-related methods like `String#split`, [#306](https://github.com/zloirock/core-js/issues/306)\n- Added a workaround of V8 deoptimization which causes serious performance degradation (up to 100x in my tests) of `Array#splice` and slightly `Array#{ filter, map }`, [#677](https://github.com/zloirock/core-js/issues/677)\n- Fixed work of `fetch` with polyfilled `URLSearchParams`, [#674](https://github.com/zloirock/core-js/issues/674)\n- Fixed an edge case of `String#replaceAll` with an empty search value\n- Added compat data for Chrome 80\n- `package-lock.json` no longer generated in libraries\n\n### [3.3.3 - 2019.10.22](https://github.com/zloirock/core-js/releases/tag/v3.3.3)\n- `gopher` removed from `URL` special cases per [this issue](https://github.com/whatwg/url/issues/342) and [this PR](https://github.com/whatwg/url/pull/453)\n- Added compat data for iOS 13 and Node 13.0\n\n### [3.3.2 - 2019.10.14](https://github.com/zloirock/core-js/releases/tag/v3.3.2)\n- Fixed compatibility of `core-js-compat` with Node 6 and Yarn, [#669](https://github.com/zloirock/core-js/issues/669)\n\n### [3.3.1 - 2019.10.13](https://github.com/zloirock/core-js/releases/tag/v3.3.1)\n- Fixed an NPM publishing issue\n\n### [3.3.0 - 2019.10.13](https://github.com/zloirock/core-js/releases/tag/v3.3.0)\n- **`String#{ matchAll, replaceAll }` throws an error on non-global regex argument per [the decision from TC39 meetings](https://github.com/tc39/ecma262/pull/1716) (+ [this PR](https://github.com/tc39/proposal-string-replaceall/pull/24)). It's a breaking change, but since it's a breaking change in the ES spec, it's added at the minor release**\n- `globalThis` moved to stable ES, [per October TC39 meeting](https://github.com/babel/proposals/issues/60#issuecomment-537217903)\n- `Promise.any` moved to stage 3, some minor internal changes, [per October TC39 meeting](https://github.com/babel/proposals/issues/60#issuecomment-538084885)\n- `String#replaceAll` moved to stage 3, [per October TC39 meeting](https://github.com/babel/proposals/issues/60#issuecomment-537530013)\n- Added [iterator helpers stage 2 proposal](https://github.com/tc39/proposal-iterator-helpers):\n  - `Iterator`\n    - `Iterator.from`\n    - `Iterator#asIndexedPairs`\n    - `Iterator#drop`\n    - `Iterator#every`\n    - `Iterator#filter`\n    - `Iterator#find`\n    - `Iterator#flatMap`\n    - `Iterator#forEach`\n    - `Iterator#map`\n    - `Iterator#reduce`\n    - `Iterator#some`\n    - `Iterator#take`\n    - `Iterator#toArray`\n    - `Iterator#@@toStringTag`\n  - `AsyncIterator`\n    - `AsyncIterator.from`\n    - `AsyncIterator#asIndexedPairs`\n    - `AsyncIterator#drop`\n    - `AsyncIterator#every`\n    - `AsyncIterator#filter`\n    - `AsyncIterator#find`\n    - `AsyncIterator#flatMap`\n    - `AsyncIterator#forEach`\n    - `AsyncIterator#map`\n    - `AsyncIterator#reduce`\n    - `AsyncIterator#some`\n    - `AsyncIterator#take`\n    - `AsyncIterator#toArray`\n    - `AsyncIterator#@@toStringTag`\n- Updated `Map#upsert` (`Map#updateOrInsert` before) [proposal](https://github.com/thumbsupep/proposal-upsert)\n  - Moved to stage 2, [per October TC39 meeting](https://github.com/babel/proposals/issues/60#issuecomment-537606117)\n  - `Map#updateOrInsert` renamed to `Map#upsert`\n  - Added `WeakMap#upsert`\n  - You can don't pass one of the callbacks\n- Added a workaround for iOS Safari MessageChannel + bfcache bug, [#624](https://github.com/zloirock/core-js/issues/624)\n- Added a workaround for Chrome 33 / Android 4.4.4 `Promise` bug, [#640](https://github.com/zloirock/core-js/issues/640)\n- Replaced broken `URL` constructor in Safari and `URLSearchParams` in Chrome 66-, [#656](https://github.com/zloirock/core-js/issues/656)\n- Added compat data for Node up to 12.11, FF 69, Samsung up to 10.2 and Phantom 1.9\n- `Math.hypot` marked as not supported in Chrome 77 since [a bug in this method](https://bugs.chromium.org/p/v8/issues/detail?id=9546) was not fixed before the stable Chrome 77 release\n- Fixed unnecessary exposing on `Symbol.matchAll` in `esnext.string.match-all`, [#626](https://github.com/zloirock/core-js/issues/626)\n- Fixed missed cases [access the `.next` method once, at the beginning, of the iteration protocol](https://github.com/tc39/ecma262/issues/976)\n- Show similar `postinstall` messages only once per `npm i`, [#597](https://github.com/zloirock/core-js/issues/597), thanks [@remy](https://github.com/remy)\n\n### [2.6.10 [LEGACY] - 2019.10.13](https://github.com/zloirock/core-js/releases/tag/v2.6.10)\n- Show similar `postinstall` messages only once per `npm i`, [#597](https://github.com/zloirock/core-js/issues/597)\n\n### [3.2.1 - 2019.08.12](https://github.com/zloirock/core-js/releases/tag/v3.2.1)\n- Added a workaround for possible recursion in microtasks caused by conflicts with other `Promise` polyfills, [#615](https://github.com/zloirock/core-js/issues/615)\n\n### [3.2.0 - 2019.08.09](https://github.com/zloirock/core-js/releases/tag/v3.2.0)\n- `Promise.allSettled` moved to stable ES, per July TC39 meeting\n- `Promise.any` moved to stage 2, `.errors` property of `AggregateError` instances made non-enumerable, per July TC39 meeting\n- `using` statement proposal moved to stage 2, added `Symbol.asyncDispose`, per July TC39 meeting\n- Added `Array.isTemplateObject` [stage 2 proposal](https://github.com/tc39/proposal-array-is-template-object), per June TC39 meeting\n- Added `Map#updateOrInsert` [stage 1 proposal](https://docs.google.com/presentation/d/1_xtrGSoN1-l2Q74eCXPHBbbrBHsVyqArWN0ebnW-pVQ/), per July TC39 meeting\n- Added a fix for [`Math.hypot` V8 7.7 bug](https://bugs.chromium.org/p/v8/issues/detail?id=9546), since it's still not stable without adding results to `core-js-compat`\n- Added a workaround for APIs where not possible to replace broken native `Promise`, [#579](https://github.com/zloirock/core-js/issues/579) - added `.finally` and patched `.then` to / on native `Promise` prototype\n- Fixed crashing of Opera Presto, [#595](https://github.com/zloirock/core-js/issues/595)\n- Fixed incorrect early breaking of `{ Map, Set, WeakMap, WeakSet }.deleteAll`\n- Fixed some missed dependencies in entry points\n- Added compat data for Node 12.5, FF 67, Safari 13\n- Added support of `DISABLE_OPENCOLLECTIVE` env variable to `postinstall` script\n- Removed `core-js-pure` dependency from `core-js-compat`, [#590](https://github.com/zloirock/core-js/issues/590)\n- Fixed generation of `core-js-compat` on Windows, [#606](https://github.com/zloirock/core-js/issues/606)\n\n### [3.1.4 - 2019.06.15](https://github.com/zloirock/core-js/releases/tag/v3.1.4)\n- Refactoring. Many minor internal improvements and fixes like:\n  - Improved `Symbol.keyFor` complexity to `O(1)`\n  - Fixed the order of arguments validation in `String.prototype.{ endsWith, includes, startsWith }`\n  - Internal implementation of `RegExp#flags` helper now respect `dotAll` flag (mainly related to the `pure` version)\n  - Performance optimizations related old V8\n  - Etc.\n\n### [3.1.3 - 2019.05.27](https://github.com/zloirock/core-js/releases/tag/v3.1.3)\n- Fixed `core-js/features/reflect/delete-metadata` entry point\n- Some fixes and improvements of the `postinstall` script like support `npm` color config ([#556](https://github.com/zloirock/core-js/issues/556)) or adding support of `ADBLOCK` env variable\n- Refactoring and some minor fixes\n\n### [2.6.9 [LEGACY] - 2019.05.27](https://github.com/zloirock/core-js/releases/tag/v2.6.9)\n- Some fixes and improvements of the `postinstall` script like support `npm` color config ([#556](https://github.com/zloirock/core-js/issues/556)) or adding support of `ADBLOCK` env variable\n\n### [3.1.2 - 2019.05.22](https://github.com/zloirock/core-js/releases/tag/v3.1.2)\n- Added a workaround of a strange `npx` bug on `postinstall`, [#551](https://github.com/zloirock/core-js/issues/551)\n\n### [2.6.8 [LEGACY] - 2019.05.22](https://github.com/zloirock/core-js/releases/tag/v2.6.8)\n- Added a workaround of a strange `npx` bug on `postinstall`, [#551](https://github.com/zloirock/core-js/issues/551)\n\n### [3.1.1 - 2019.05.21](https://github.com/zloirock/core-js/releases/tag/v3.1.1)\n- Added one more workaround of alternative not completely correct `Symbol` polyfills, [#550](https://github.com/zloirock/core-js/issues/550), [#554](https://github.com/zloirock/core-js/issues/554)\n- Reverted `esnext.string.match-all` in some entry points for fix autogeneration of `core-js-compat/entries` and backward `@babel/preset-env` compatibility\n\n### [2.6.7 [LEGACY] - 2019.05.21](https://github.com/zloirock/core-js/releases/tag/v2.6.7)\n- Added one more workaround of alternative not completely correct `Symbol` polyfills, [#550](https://github.com/zloirock/core-js/issues/550), [#554](https://github.com/zloirock/core-js/issues/554)\n\n### [3.1.0 - 2019.05.20](https://github.com/zloirock/core-js/releases/tag/v3.1.0)\n- `String#matchAll` moved to stable ES, exposed `Symbol.matchAll`, [#516](https://github.com/zloirock/core-js/issues/516)\n- `Promise.allSettled` moved to stage 3, [#515](https://github.com/zloirock/core-js/issues/515)\n- `String#replaceAll` moved to stage 2, behavior updated by the spec draft, [#524](https://github.com/zloirock/core-js/issues/524)\n- `Promise.any` moved to stage 1, [#517](https://github.com/zloirock/core-js/issues/517)\n- Removed `es.regexp.flags` dependency from `es.regexp.to-string`, [#536](https://github.com/zloirock/core-js/issues/536), [#537](https://github.com/zloirock/core-js/issues/537)\n- Fixed IE8- non-enumerable properties support in `Object.{ assign, entries, values }`, [#541](https://github.com/zloirock/core-js/issues/541)\n- Fixed support of primitives in `Object.getOwnPropertySymbols` in Chrome 38 / 39, [#539](https://github.com/zloirock/core-js/issues/539)\n- `window.postMessage`-based task implementation uses location origin over `'*'`, [#542](https://github.com/zloirock/core-js/issues/542)\n- Lookup `PromiseConstructor.resolve` only once in `Promise` combinators, [tc39/ecma262#1506](https://github.com/tc39/ecma262/pull/1506)\n- Temporarily removed `core-js` dependency from `core-js-compat` since it's required for missed at this moment feature\n- Show a message on `postinstall`\n- Added compat data for Chrome 76, FF 67, Node 12\n\n### [2.6.6 [LEGACY] - 2019.05.20](https://github.com/zloirock/core-js/releases/tag/v2.6.6)\n- Fixed IE8- non-enumerable properties support in `Object.{ assign, entries, values }`, [#541](https://github.com/zloirock/core-js/issues/541)\n- Fixed support of primitives in `Object.getOwnPropertySymbols` in Chrome 38 / 39, [#539](https://github.com/zloirock/core-js/issues/539)\n- Show a message on `postinstall`\n\n### [3.0.1 - 2019.04.06](https://github.com/zloirock/core-js/releases/tag/v3.0.1)\n- Fixed some cases of work with malformed URI sequences in `URLSearchParams`, [#525](https://github.com/zloirock/core-js/issues/525)\n- Added a workaround for a rollup issue, [#513](https://github.com/zloirock/core-js/issues/513)\n\n### [3.0.0 - 2019.03.19](https://github.com/zloirock/core-js/releases/tag/v3.0.0)\n- Features\n  - Add new features:\n    - `Object.fromEntries` ([ECMAScript 2019](https://github.com/tc39/proposal-object-from-entries))\n    - `Symbol#description` ([ECMAScript 2019](https://tc39.es/ecma262/#sec-symbol.prototype.description))\n    - New `Set` methods ([stage 2 proposal](https://github.com/tc39/proposal-set-methods))\n      - `Set#difference`\n      - `Set#intersection`\n      - `Set#isDisjointFrom`\n      - `Set#isSubsetOf`\n      - `Set#isSupersetOf`\n      - `Set#symmetricDifference`\n      - `Set#union`\n    - `Promise.allSettled` ([stage 2 proposal](https://github.com/tc39/proposal-promise-allSettled))\n    - Getting last item from `Array` ([stage 1 proposal](https://github.com/keithamus/proposal-array-last))\n      - `Array#lastItem`\n      - `Array#lastIndex`\n    - `String#replaceAll` ([stage 1 proposal](https://github.com/tc39/proposal-string-replace-all))\n    - `String#codePoints` ([stage 1 proposal](https://github.com/tc39/proposal-string-prototype-codepoints))\n    - New collections methods ([stage 1 proposal](https://github.com/tc39/collection-methods))\n      - `Map.groupBy`\n      - `Map.keyBy`\n      - `Map#deleteAll`\n      - `Map#every`\n      - `Map#filter`\n      - `Map#find`\n      - `Map#findKey`\n      - `Map#includes`\n      - `Map#keyOf`\n      - `Map#mapKeys`\n      - `Map#mapValues`\n      - `Map#merge`\n      - `Map#reduce`\n      - `Map#some`\n      - `Map#update`\n      - `Set#addAll`\n      - `Set#deleteAll`\n      - `Set#every`\n      - `Set#filter`\n      - `Set#find`\n      - `Set#join`\n      - `Set#map`\n      - `Set#reduce`\n      - `Set#some`\n      - `WeakMap#deleteAll`\n      - `WeakSet#addAll`\n      - `WeakSet#deleteAll`\n    - `compositeKey` and `compositeSymbol` methods ([stage 1 proposal](https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey))\n    - `Number.fromString` ([stage 1 proposal](https://github.com/tc39/proposal-number-fromstring))\n    - `Math.seededPRNG` ([stage 1 proposal](https://github.com/tc39/proposal-seeded-random))\n    - `Symbol.patternMatch` ([for stage 1 pattern matching proposal](https://github.com/tc39/proposal-pattern-matching))\n    - `Symbol.dispose` ([for stage 1 `using` statement proposal](https://github.com/tc39/proposal-using-statement))\n    - `Promise.any` (with `AggregateError`) ([stage 0 proposal](https://github.com/tc39/proposal-promise-any))\n    - `URL` and `URLSearchParam` [from `URL` standard](https://url.spec.whatwg.org/), also [stage 0 proposal to ECMAScript](https://github.com/jasnell/proposal-url)\n      - `URL`\n        - `URL#href`\n        - `URL#origin`\n        - `URL#protocol`\n        - `URL#username`\n        - `URL#password`\n        - `URL#host`\n        - `URL#hostname`\n        - `URL#port`\n        - `URL#pathname`\n        - `URL#search`\n        - `URL#searchParams`\n        - `URL#hash`\n        - `URL#toString`\n        - `URL#toJSON`\n      - `URLSearchParams`\n        - `URLSearchParams#append`\n        - `URLSearchParams#delete`\n        - `URLSearchParams#get`\n        - `URLSearchParams#getAll`\n        - `URLSearchParams#has`\n        - `URLSearchParams#set`\n        - `URLSearchParams#sort`\n        - `URLSearchParams#toString`\n        - `URLSearchParams#keys`\n        - `URLSearchParams#values`\n        - `URLSearchParams#entries`\n        - `URLSearchParams#@@iterator`\n    - `.forEach` method on iterable DOM collections ([#329](https://github.com/zloirock/core-js/issues/329))\n  - Improve existing features:\n    - Add triggering unhandled `Promise` rejection events (instead of only global handlers), [#205](https://github.com/zloirock/core-js/issues/205).\n    - Wrap `fetch` for correct with polyfilled `Promise` and preventing problems like [#178](https://github.com/zloirock/core-js/issues/178), [#332](https://github.com/zloirock/core-js/issues/332), [#371](https://github.com/zloirock/core-js/issues/371).\n    - Add support of `@@isConcatSpreadable` to `Array#concat`.\n    - Add support of `@@species` to `Array#{concat, filter, map, slice, splice}`.\n    - Add direct `.exec` calling to `RegExp#{@@replace, @@split, @@match, @@search}`. Also, added fixes for `RegExp#exec` method. [#411](https://github.com/zloirock/core-js/issues/411), [#434](https://github.com/zloirock/core-js/issues/434), [#453](https://github.com/zloirock/core-js/issues/453), thanks [**@nicolo-ribaudo**](https://github.com/nicolo-ribaudo).\n    - Correct iterators prototypes chain, related [#261](https://github.com/zloirock/core-js/issues/261).\n    - Correct Typed Arrays prototypes chain, related [#378](https://github.com/zloirock/core-js/issues/378).\n    - Make the internal state of polyfilled features completely unobservable, [#146](https://github.com/zloirock/core-js/issues/146).\n    - Add validation of receiver's internal class to missed non-generic methods.\n    - Fix descriptors of global properties.\n    - In the version without global pollution, if `Object#toString` does not support `@@toStringTag`, add to wrapped prototypes own `toString` method with `@@toStringTag` logic, see [#199](https://github.com/zloirock/core-js/issues/199).\n  - Update standard features and proposals:\n    - `asap` (old stage 0 proposal) replaced by `queueMicrotask` ([a part of HTML spec](https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask))\n    - Update [`Observable`](https://github.com/tc39/proposal-observable) (#257, #276, etc.)\n    - Update `Array#flatten` -> `Array#flat` and `Array#flatMap`\n    - Update `global` [stage 3 proposal](https://github.com/tc39/proposal-global) - rename `global` to `globalThis`\n    - Update `String#matchAll` ([proposal-string-matchall#17](https://github.com/tc39/proposal-string-matchall/pull/17), [proposal-string-matchall#38](https://github.com/tc39/proposal-string-matchall/pull/38), [proposal-string-matchall#41](https://github.com/tc39/proposal-string-matchall/pull/41), etc.) and move to the stage 3\n    - Update `.name` properties of `String#{trimStart, trimEnd , trimLeft, trimRight}`, move to the stage 3\n    - Remove mongolian vowel separator (U+180E) from the list of whitespaces for methods like `String#trim` (ES6 -> ES7)\n  - Mark ES2016, ES2017, ES2018, ES2019 features as stable:\n    - `Array#{ flat, flatMap }`\n    - `{ Array, %TypedArray% }#includes`\n    - `Object.{ values, entries}`\n    - `Object.getOwnPropertyDescriptors`\n    - `String#{ padStart, padEnd }`\n    - `String#{ trimStart, trimEnd, trimLeft, trimRight }`\n    - `Promise#finally`\n    - `Symbol.asyncIterator`\n    - `Object#__(define|lookup)[GS]etter__`\n  - Remove obsolete features:\n    - `Error.isError` (withdrawn)\n    - `System.global` and `global` (replaced by `globalThis`)\n    - `Map#toJSON` and `Set#toJSON` (rejected)\n    - `RegExp.escape` (rejected)\n    - `Reflect.enumerate` (removed from the spec)\n    - Unnecessary iteration methods from `CSSRuleList`, `MediaList`, `StyleSheetList`\n  - **No more non-standard features**, finally removed:\n    - `Dict`\n    - `Object.{classof, isObject, define, make}`\n    - `Function#part`\n    - `Number#@@iterator`\n    - `String#{escapeHTML, unescapeHTML}`\n    - `delay`\n  - Add `.sham` flag to features which can't be properly polyfilled and / or not recommended for usage:\n    - `Symbol` constructor - we can't add new primitives. `Object.prototype` accessors too expensive.\n    - `Object.{create, defineProperty, defineProperties, getOwnPropertyDescriptor, getOwnPropertyDescriptors}`, `Reflect.{defineProperty, getOwnPropertyDescriptor}` can't be properly polyfilled without descriptors support.\n    - `Object.{freeze, seal, preventExtensions}`, `Reflect.preventExtensions` can't be properly polyfilled in ES3 environment.\n    - `Object.getPrototypeOf` can be deceived in ES3 environment.\n    - `Reflect.construct` can't be polyfilled for a correct work with `newTarget` argument on built-ins.\n    - Typed Array constructors polyfill is quite correct but too expensive.\n    - `URL` constructor in engines without descriptors support.\n- Bug and compatibility fixes:\n  - Fix deoptimisation of iterators in V8, [#377](https://github.com/zloirock/core-js/issues/377).\n  - Fix import of property before constructor which should contain this property, [#262](https://github.com/zloirock/core-js/issues/262).\n  - Fix some cases of IE11 `WeakMap` frozen keys fallback, [#384](https://github.com/zloirock/core-js/issues/384).\n  - Fix non-enumerable integer keys issue because of Nashorn ~ JDK8 bug, [#389](https://github.com/zloirock/core-js/issues/389).\n  - Fix [Safari 12.0 `Array#reverse` bug](https://bugs.webkit.org/show_bug.cgi?id=188794).\n  - One more fix for microtasks in iOS related [#339](https://github.com/zloirock/core-js/issues/339).\n  - Added a fallback for [Rhino bug](https://github.com/mozilla/rhino/issues/346), [#440](https://github.com/zloirock/core-js/issues/440).\n  - Many other internal fixes and improvements.\n- Repository:\n  - Change `core-js` repository structure to monorepo with packages in `/packages/` directory.\n  - Clean-up it, remove all possible duplicates, generated files, etc.\n- Packages:\n  - **Extract a version without global namespace pollution to a separate `core-js-pure` package (replacement for `core-js/library`).**\n  - **Leave only one pair of bundles (global, with all polyfills) and move it to `core-js-bundle` package.**\n  - Remove bundling logic from `core-js` package, leave it only in `core-js-builder` package.\n  - Clean-up packages.\n  - Because of all approaches, **reduce size of packages from ~2mb for `core-js@2` to**:\n    - **~500kb for `core-js` package**\n    - **~440kb for `core-js-pure` package**\n  - Finally remove `bower.json`\n- CommonJS API, namespaces:\n  - Add availability [configuration of aggressiveness](https://github.com/zloirock/core-js/blob/master/README.md#configurable-level-of-aggressiveness).\n  - Move `core-js/library` to separate `core-js-pure` package.\n  - Because of removing all non-standard features, we no longer need `core-js/shim` entry point, replace it just with `core-js`.\n  - Move all features from ES5, ES2015, ES2016, ES2017, ES2018 and ES2019 to one namespace for stable ES - it's available as `core-js/es`, all those features in `modules` folder has `es.` prefix.\n  - Change prefix for ES proposals from `es7.` to `esnext.`, they no longer available in `core-js/es7`, use `core-js/stage/*` instead of that.\n  - Rename `core-js(/library)/fn` to `core-js(-pure)/features` for improve readability.\n  - Allow more granular inclusion of features from `/es/` path (for example, `core-js/es/array/from`).\n  - Add `/stable/` entry points as an equal of `/features/` for stable features, without proposals.\n  - Add `/proposals/` entry points for allow include all features from one proposal (for example, `core-js/proposals/reflect-metadata`).\n  - Add `/es|stable|features/instance/` entry points for getting polyfill of the related method for passed instance (could be used in cases like `babel-runtime`).\n  - Split typed arrays polyfills. Now you can, for example, load only required method (for example, `core-js/es/typed-array/from`).\n  - Extract well-known symbols definition from `es.symbol` module for loading only required features, for example, in MS Edge.\n  - Rename `web.dom` namespace to `web.dom-collections`.\n  - Rename `es6.regexp.{match, replace, search, split}` -> `es.string.{match, replace, search, split}` - mainly it's fixes / adding support of well-known symbols to string methods, only in second place adding related methods to regexp prototype.\n  - Relax `/modules/` directory by moving internal modules to `/internals/` directory.\n  - Remove deprecated array entry points: `core-js(/library)/fn/array/{pop, push, reverse, shift, unshift}`.\n  - `core` object no longer available in the global version, entry points which previously returned it now returns `globalThis` object. Also, don't set global `core` property.\n  - Add some missing entry points.\n- Tools, tests, code quality:\n  - Added `core-js-compat` package with:\n    - Data about the necessity of `core-js` modules and API for getting a list of required `core-js` modules by `browserslist` query, [#466](https://github.com/zloirock/core-js/issues/466).\n    - Data which modules load by each entry point (mainly useful for tools like `@babel/preset-env`).\n    - Data which modules added in minor versions (mainly useful for tools like `@babel/preset-env`).\n  - `core-js-builder` package:\n    - Added `targets` option with `browserslist` query.\n    - Removed an option for generation bundle of a version without global namespace pollution - now it's an odd use case.\n    - Removed UMD wrapper from a generated code of bundles - we don't need it for a global polyfill.\n  - **Getting rid of LiveScript**, usage another language in JS standard library looks strange and impedes usage of tools like ESLint:\n    - Tests are rewritten to JS.\n    - Scripts are rewritten to JS.\n  - Babel with minimalistic config (which should work anywhere) used on tests.\n  - ESLint used on tests and tools.\n  - Source code refactored for improving readability.\n\n### [2.6.5 - 2019.02.15](https://github.com/zloirock/core-js/releases/tag/v2.6.5)\n- Fixed buggy `String#padStart` and `String#padEnd` mobile Safari implementations, [#414](https://github.com/zloirock/core-js/issues/414).\n\n### [2.6.4 - 2019.02.07](https://github.com/zloirock/core-js/releases/tag/v2.6.4)\n- Added a workaround against crushing an old IE11.0.9600.16384 build, [#485](https://github.com/zloirock/core-js/issues/485).\n\n### [2.6.3 - 2019.01.22](https://github.com/zloirock/core-js/releases/tag/v2.6.3)\n- Added a workaround for `babel-minify` bug, [#479](https://github.com/zloirock/core-js/issues/479)\n\n### [2.6.2 - 2019.01.10](https://github.com/zloirock/core-js/releases/tag/v2.6.2)\n- Fixed handling of `$` in `String#replace`, [#471](https://github.com/zloirock/core-js/issues/471)\n\n### [2.6.1 - 2018.12.18](https://github.com/zloirock/core-js/releases/tag/v2.6.1)\n- Fixed an issue with minified version, [#463](https://github.com/zloirock/core-js/issues/463), [#465](https://github.com/zloirock/core-js/issues/465)\n\n### [2.6.0 - 2018.12.05](https://github.com/zloirock/core-js/releases/tag/v2.6.0)\n- Add direct `.exec` calling to `RegExp#{@@replace, @@split, @@match, @@search}`. Also, added fixes for `RegExp#exec` method. [#428](https://github.com/zloirock/core-js/issues/428), [#435](https://github.com/zloirock/core-js/issues/435), [#458](https://github.com/zloirock/core-js/issues/458), thanks [**@nicolo-ribaudo**](https://github.com/nicolo-ribaudo).\n\n### [2.5.7 - 2018.05.26](https://github.com/zloirock/core-js/releases/tag/v2.5.7)\n- Get rid of reserved variable name `final`, related [#400](https://github.com/zloirock/core-js/issues/400)\n\n### [2.5.6 - 2018.05.07](https://github.com/zloirock/core-js/releases/tag/v2.5.6)\n- Forced replace native `Promise` in V8 6.6 (Node 10 and Chrome 66) because of [a bug with resolving custom thenables](https://bugs.chromium.org/p/chromium/issues/detail?id=830565)\n- Added a workaround for usage buggy native LG WebOS 2 `Promise` in microtask implementation, [#396](https://github.com/zloirock/core-js/issues/396)\n- Added modern version internal debugging information about used versions\n\n### [2.5.5 - 2018.04.08](https://github.com/zloirock/core-js/releases/tag/v2.5.5)\n- Fix some edge cases of `Reflect.set`, [#392](https://github.com/zloirock/core-js/issues/392) and [#393](https://github.com/zloirock/core-js/issues/393)\n\n### [2.5.4 - 2018.03.27](https://github.com/zloirock/core-js/releases/tag/v2.5.4)\n- Fixed one case of deoptimization built-in iterators in V8, related [#377](https://github.com/zloirock/core-js/issues/377)\n- Fixed some cases of iterators feature detection, [#368](https://github.com/zloirock/core-js/issues/368)\n- Fixed manually entered NodeJS domains issue in `Promise`, [#367](https://github.com/zloirock/core-js/issues/367)\n- Fixed `Number.{parseInt, parseFloat}` entry points\n- Fixed `__(define|lookup)[GS]etter__` export in the `library` version\n\n### [2.5.3 - 2017.12.12](https://github.com/zloirock/core-js/releases/tag/v2.5.3)\n- Fixed calling `onunhandledrejectionhandler` multiple times for one `Promise` chain, [#318](https://github.com/zloirock/core-js/issues/318)\n- Forced replacement of `String#{padStart, padEnd}` in Safari 10 because of [a bug](https://bugs.webkit.org/show_bug.cgi?id=161944), [#280](https://github.com/zloirock/core-js/issues/280)\n- Fixed `Array#@@iterator` in a very rare version of `WebKit`, [#236](https://github.com/zloirock/core-js/issues/236) and [#237](https://github.com/zloirock/core-js/issues/237)\n- One more [#345](https://github.com/zloirock/core-js/issues/345)-related fix\n\n### [2.5.2 - 2017.12.09](https://github.com/zloirock/core-js/releases/tag/v2.5.2)\n- `MutationObserver` no longer used for microtask implementation in iOS Safari because of bug with scrolling, [#339](https://github.com/zloirock/core-js/issues/339)\n- Fixed `JSON.stringify(undefined, replacer)` case in the wrapper from the `Symbol` polyfill, [#345](https://github.com/zloirock/core-js/issues/345)\n- `Array()` calls changed to `new Array()` for V8 optimisation\n\n### [2.5.1 - 2017.09.01](https://github.com/zloirock/core-js/releases/tag/v2.5.1)\n- Updated `Promise#finally` per [tc39/proposal-promise-finally#37](https://github.com/tc39/proposal-promise-finally/issues/37)\n- Optimized usage of some internal helpers for reducing size of `shim` version\n- Fixed some entry points for virtual methods\n\n### [2.5.0 - 2017.08.05](https://github.com/zloirock/core-js/releases/tag/v2.5.0)\n- Added `Promise#finally` [stage 3 proposal](https://github.com/tc39/proposal-promise-finally), [#225](https://github.com/zloirock/core-js/issues/225)\n- Added `Promise.try` [stage 1 proposal](https://github.com/tc39/proposal-promise-try)\n- Added `Array#flatten` and `Array#flatMap` [stage 1 proposal](https://tc39.github.io/proposal-flatMap)\n- Added `.of` and `.from` methods on collection constructors [stage 1 proposal](https://github.com/tc39/proposal-setmap-offrom):\n  - `Map.of`\n  - `Set.of`\n  - `WeakSet.of`\n  - `WeakMap.of`\n  - `Map.from`\n  - `Set.from`\n  - `WeakSet.from`\n  - `WeakMap.from`\n- Added `Math` extensions [stage 1 proposal](https://github.com/rwaldron/proposal-math-extensions), [#226](https://github.com/zloirock/core-js/issues/226):\n  - `Math.clamp`\n  - `Math.DEG_PER_RAD`\n  - `Math.degrees`\n  - `Math.fscale`\n  - `Math.RAD_PER_DEG`\n  - `Math.radians`\n  - `Math.scale`\n- Added `Math.signbit` [stage 1 proposal](https://github.com/tc39/proposal-Math.signbit)\n- Updated `global` [stage 3 proposal](https://github.com/tc39/proposal-global) - added `global` global object, `System.global` deprecated\n- Updated `Object.getOwnPropertyDescriptors` to the [final version](https://tc39.es/ecma262/2017/#sec-object.getownpropertydescriptors) - it should not create properties if descriptors are `undefined`\n- Updated the list of iterable DOM collections, [#249](https://github.com/zloirock/core-js/issues/249), added:\n  - `CSSStyleDeclaration#@@iterator`\n  - `CSSValueList#@@iterator`\n  - `ClientRectList#@@iterator`\n  - `DOMRectList#@@iterator`\n  - `DOMStringList#@@iterator`\n  - `DataTransferItemList#@@iterator`\n  - `FileList#@@iterator`\n  - `HTMLAllCollection#@@iterator`\n  - `HTMLCollection#@@iterator`\n  - `HTMLFormElement#@@iterator`\n  - `HTMLSelectElement#@@iterator`\n  - `MimeTypeArray#@@iterator`\n  - `NamedNodeMap#@@iterator`\n  - `PaintRequestList#@@iterator`\n  - `Plugin#@@iterator`\n  - `PluginArray#@@iterator`\n  - `SVGLengthList#@@iterator`\n  - `SVGNumberList#@@iterator`\n  - `SVGPathSegList#@@iterator`\n  - `SVGPointList#@@iterator`\n  - `SVGStringList#@@iterator`\n  - `SVGTransformList#@@iterator`\n  - `SourceBufferList#@@iterator`\n  - `TextTrackCueList#@@iterator`\n  - `TextTrackList#@@iterator`\n  - `TouchList#@@iterator`\n- Updated stages of proposals:\n  - [`Object.getOwnPropertyDescriptors`](https://github.com/tc39/proposal-object-getownpropertydescriptors) to [stage 4 (ES2017)](https://tc39.es/ecma262/2017/#sec-object.getownpropertydescriptors)\n  - [String padding](https://github.com/tc39/proposal-string-pad-start-end) to [stage 4 (ES2017)](https://tc39.es/ecma262/2017/#sec-string.prototype.padend)\n  - [`global`](https://github.com/tc39/proposal-global) to [stage 3](https://github.com/tc39/notes/blob/main/meetings/2016-09/sept-28.md#revisit-systemglobal--global)\n  - [String trimming](https://github.com/tc39/proposal-string-left-right-trim) to [stage 2](https://github.com/tc39/notes/blob/main/meetings/2016-07/jul-27.md#10iic-trimstarttrimend)\n- Updated typed arrays to the modern (ES2016+) arguments validation,\n[#293](https://github.com/zloirock/core-js/pull/293)\n- Fixed `%TypedArray%.from` Safari bug, [#285](https://github.com/zloirock/core-js/issues/285)\n- Fixed compatibility with old version of Prototype.js, [#278](https://github.com/zloirock/core-js/issues/278), [#289](https://github.com/zloirock/core-js/issues/289)\n- `Function#name` no longer cache the result for correct behaviour with inherited constructors, [#296](https://github.com/zloirock/core-js/issues/296)\n- Added errors on incorrect context of collection methods, [#272](https://github.com/zloirock/core-js/issues/272)\n- Fixed conversion typed array constructors to string, fix [#300](https://github.com/zloirock/core-js/issues/300)\n- Fixed `Set#size` with debugger ReactNative for Android, [#297](https://github.com/zloirock/core-js/issues/297)\n- Fixed an issue with Electron-based debugger, [#230](https://github.com/zloirock/core-js/issues/230)\n- Fixed compatibility with incomplete third-party `WeakMap` polyfills, [#252](https://github.com/zloirock/core-js/pull/252)\n- Added a fallback for `Date#toJSON` in engines without native `Date#toISOString`, [#220](https://github.com/zloirock/core-js/issues/220)\n- Added support for Sphere Dispatch API, [#286](https://github.com/zloirock/core-js/pull/286)\n- Seriously changed the coding style and the [ESLint config](https://github.com/zloirock/core-js/blob/master/.eslintrc.js)\n- Updated many dev dependencies (`webpack`, `uglify`, etc)\n- Some other minor fixes and optimizations\n\n### [2.4.1 - 2016.07.18](https://github.com/zloirock/core-js/releases/tag/v2.4.1)\n- Fixed `script` tag for some parsers, [#204](https://github.com/zloirock/core-js/issues/204), [#216](https://github.com/zloirock/core-js/issues/216)\n- Removed some unused variables, [#217](https://github.com/zloirock/core-js/issues/217), [#218](https://github.com/zloirock/core-js/issues/218)\n- Fixed MS Edge `Reflect.construct` and `Reflect.apply` - they should not allow primitive as `argumentsList` argument\n\n### [1.2.7 [LEGACY] - 2016.07.18](https://github.com/zloirock/core-js/releases/tag/v1.2.7)\n- Some fixes for issues like [#159](https://github.com/zloirock/core-js/issues/159), [#186](https://github.com/zloirock/core-js/issues/186), [#194](https://github.com/zloirock/core-js/issues/194), [#207](https://github.com/zloirock/core-js/issues/207)\n\n### [2.4.0 - 2016.05.08](https://github.com/zloirock/core-js/releases/tag/v2.4.0)\n- Added `Observable`, [stage 1 proposal](https://github.com/zenparsing/es-observable)\n- Fixed behavior `Object.{getOwnPropertySymbols, getOwnPropertyDescriptor}` and `Object#propertyIsEnumerable` on `Object.prototype`\n- `Reflect.construct` and `Reflect.apply` should throw an error if `argumentsList` argument is not an object, [#194](https://github.com/zloirock/core-js/issues/194)\n\n### [2.3.0 - 2016.04.24](https://github.com/zloirock/core-js/releases/tag/v2.3.0)\n- Added `asap` for enqueuing microtasks, [stage 0 proposal](https://github.com/tc39/notes/blob/main/meetings/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask)\n- Added well-known symbol `Symbol.asyncIterator` for [stage 2 async iteration proposal](https://github.com/tc39/proposal-async-iteration)\n- Added well-known symbol `Symbol.observable` for [stage 1 observables proposal](https://github.com/zenparsing/es-observable)\n- `String#{padStart, padEnd}` returns original string if filler is empty string, [TC39 meeting notes](https://github.com/tc39/notes/blob/main/meetings/2016-03/march-29.md#stringprototypepadstartpadend)\n- `Object.values` and `Object.entries` moved to stage 4 from 3, [TC39 meeting notes](https://github.com/tc39/notes/blob/main/meetings/2016-03/march-29.md#objectvalues--objectentries)\n- `System.global` moved to stage 2 from 1, [TC39 meeting notes](https://github.com/tc39/notes/blob/main/meetings/2016-03/march-29.md#systemglobal)\n- `Map#toJSON` and `Set#toJSON` rejected and will be removed from the next major release, [TC39 meeting notes](https://github.com/tc39/notes/blob/main/meetings/2016-03/march-31.md#mapprototypetojsonsetprototypetojson)\n- `Error.isError` withdrawn and will be removed from the next major release, [TC39 meeting notes](https://github.com/tc39/notes/blob/main/meetings/2016-03/march-29.md#erroriserror)\n- Added fallback for `Function#name` on non-extensible functions and functions with broken `toString` conversion, [#193](https://github.com/zloirock/core-js/issues/193)\n\n### [2.2.2 - 2016.04.06](https://github.com/zloirock/core-js/releases/tag/v2.2.2)\n- Added conversion `-0` to `+0` to `Array#{indexOf, lastIndexOf}`, [ES2016 fix](https://github.com/tc39/ecma262/pull/316)\n- Added fixes for some `Math` methods in Tor Browser\n- `Array.{from, of}` no longer calls prototype setters\n- Added workaround over Chrome DevTools strange behavior, [#186](https://github.com/zloirock/core-js/issues/186)\n\n### [2.2.1 - 2016.03.19](https://github.com/zloirock/core-js/releases/tag/v2.2.1)\n- Fixed `Object.getOwnPropertyNames(window)` `2.1+` versions bug, [#181](https://github.com/zloirock/core-js/issues/181)\n\n### [2.2.0 - 2016.03.15](https://github.com/zloirock/core-js/releases/tag/v2.2.0)\n- Added `String#matchAll`, [proposal](https://github.com/tc39/String.prototype.matchAll)\n- Added `Object#__(define|lookup)[GS]etter__`, [annex B ES2017](https://github.com/tc39/ecma262/pull/381)\n- Added `@@toPrimitive` methods to `Date` and `Symbol`\n- Fixed `%TypedArray%#slice` in Edge ~ 13 (throws with `@@species` and wrapped / inherited constructor)\n- Some other minor fixes\n\n### [2.1.5 - 2016.03.12](https://github.com/zloirock/core-js/releases/tag/v2.1.5)\n- Improved support NodeJS domains in `Promise#then`, [#180](https://github.com/zloirock/core-js/issues/180)\n- Added fallback for `Date#toJSON` bug in Qt Script, [#173](https://github.com/zloirock/core-js/issues/173#issuecomment-193972502)\n\n### [2.1.4 - 2016.03.08](https://github.com/zloirock/core-js/releases/tag/v2.1.4)\n- Added fallback for `Symbol` polyfill in Qt Script, [#173](https://github.com/zloirock/core-js/issues/173)\n- Added one more fallback for IE11 `Script Access Denied` error with iframes, [#165](https://github.com/zloirock/core-js/issues/165)\n\n### [2.1.3 - 2016.02.29](https://github.com/zloirock/core-js/releases/tag/v2.1.3)\n- Added fallback for [`es6-promise` package bug](https://github.com/stefanpenner/es6-promise/issues/169), [#176](https://github.com/zloirock/core-js/issues/176)\n\n### [2.1.2 - 2016.02.29](https://github.com/zloirock/core-js/releases/tag/v2.1.2)\n- Some minor `Promise` fixes:\n  - Browsers `rejectionhandled` event better HTML spec complaint\n  - Errors in unhandled rejection handlers should not cause any problems\n  - Fixed typo in feature detection\n\n### [2.1.1 - 2016.02.22](https://github.com/zloirock/core-js/releases/tag/v2.1.1)\n- Some `Promise` improvements:\n  - Feature detection:\n    - **Added detection unhandled rejection tracking support - now it's available everywhere**, [#140](https://github.com/zloirock/core-js/issues/140)\n    - Added detection `@@species` pattern support for completely correct subclassing\n    - Removed usage `Object.setPrototypeOf` from feature detection and noisy console message about it in FF\n  - `Promise.all` fixed for some very specific cases\n\n### [2.1.0 - 2016.02.09](https://github.com/zloirock/core-js/releases/tag/v2.1.0)\n- **API**:\n  - ES5 polyfills are split and logic, used in other polyfills, moved to internal modules\n    - **All entry point works in ES3 environment like IE8- without `core-js/(library/)es5`**\n    - **Added all missed single entry points for ES5 polyfills**\n    - Separated ES5 polyfills moved to the ES6 namespace. Why?\n      - Mainly, for prevent duplication features in different namespaces - logic of most required ES5 polyfills changed in ES6+:\n        - Already added changes for: `Object` statics - should accept primitives, new whitespaces lists in `String#trim`, `parse(Int|float)`, `RegExp#toString` logic, `String#split`, etc\n        - Should be changed in the future: `@@species` and `ToLength` logic in `Array` methods, `Date` parsing, `Function#bind`, etc\n        - Should not be changed only several features like `Array.isArray` and `Date.now`\n      - Some ES5 polyfills required for modern engines\n    - All old entry points should work fine, but in the next major release API can be changed\n  - `Object.getOwnPropertyDescriptors` moved to the stage 3, [January TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2016-01/2016-01-28.md#objectgetownpropertydescriptors-to-stage-3-jordan-harband-low-priority-but-super-quick)\n  - Added `umd` option for [custom build process](https://github.com/zloirock/core-js#custom-build-from-external-scripts), [#169](https://github.com/zloirock/core-js/issues/169)\n  - Returned entry points for `Array` statics, removed in `2.0`, for compatibility with `babel` `6` and for future fixes\n- **Deprecated**:\n  - `Reflect.enumerate` deprecated and will be removed from the next major release, [January TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2016-01/2016-01-28.md#5xix-revisit-proxy-enumerate---revisit-decision-to-exhaust-iterator)\n- **New Features**:\n  - Added [`Reflect` metadata API](https://rbuckton.github.io/reflect-metadata/) as a pre-strawman feature, [#152](https://github.com/zloirock/core-js/issues/152):\n    - `Reflect.defineMetadata`\n    - `Reflect.deleteMetadata`\n    - `Reflect.getMetadata`\n    - `Reflect.getMetadataKeys`\n    - `Reflect.getOwnMetadata`\n    - `Reflect.getOwnMetadataKeys`\n    - `Reflect.hasMetadata`\n    - `Reflect.hasOwnMetadata`\n    - `Reflect.metadata`\n  - Implementation / fixes `Date#toJSON`\n  - Fixes for `parseInt` and `Number.parseInt`\n  - Fixes for `parseFloat` and `Number.parseFloat`\n  - Fixes for `RegExp#toString`\n  - Fixes for `Array#sort`\n  - Fixes for `Number#toFixed`\n  - Fixes for `Number#toPrecision`\n  - Additional fixes for `String#split` (`RegExp#@@split`)\n- **Improvements**:\n  - Correct subclassing wrapped collections, `Number` and `RegExp` constructors with native class syntax\n  - Correct support `SharedArrayBuffer` and buffers from other realms in typed arrays wrappers\n  - Additional validations for `Object.{defineProperty, getOwnPropertyDescriptor}` and `Reflect.defineProperty`\n- **Bug Fixes**:\n  - Fixed some cases `Array#lastIndexOf` with negative second argument\n\n### [2.0.3 - 2016.01.11](https://github.com/zloirock/core-js/releases/tag/v2.0.3)\n- Added fallback for V8 ~ Chrome 49 `Promise` subclassing bug causes unhandled rejection on feature detection, [#159](https://github.com/zloirock/core-js/issues/159)\n- Added fix for very specific environments with global `window === null`\n\n### [2.0.2 - 2016.01.04](https://github.com/zloirock/core-js/releases/tag/v2.0.2)\n- Temporarily removed `length` validation from `Uint8Array` constructor wrapper. Reason - [bug in `ws` module](https://github.com/websockets/ws/pull/645) (-> `socket.io`) which passes to `Buffer` constructor -> `Uint8Array` float and uses [the `V8` bug](https://code.google.com/p/v8/issues/detail?id=4552) for conversion to int (by the spec should be thrown an error). [It creates problems for many people.](https://github.com/karma-runner/karma/issues/1768) I hope, it will be returned after fixing this bug in `V8`.\n\n### [2.0.1 - 2015.12.31](https://github.com/zloirock/core-js/releases/tag/v2.0.1)\n- Forced usage `Promise.resolve` polyfill in the `library` version for correct work with wrapper\n- `Object.assign` should be defined in the strict mode -> throw an error on extension non-extensible objects, [#154](https://github.com/zloirock/core-js/issues/154)\n\n### [2.0.0 - 2015.12.24](https://github.com/zloirock/core-js/releases/tag/v2.0.0)\n- Added implementations and fixes [Typed Arrays](https://github.com/zloirock/core-js#ecmascript-6-typed-arrays)-related features\n  - `ArrayBuffer`, `ArrayBuffer.isView`, `ArrayBuffer#slice`\n  - `DataView` with all getter / setter methods\n  - `Int8Array`, `Uint8Array`, `Uint8ClampedArray`, `Int16Array`, `Uint16Array`, `Int32Array`, `Uint32Array`, `Float32Array` and `Float64Array` constructors\n  - `%TypedArray%.{for, of}`, `%TypedArray%#{copyWithin, every, fill, filter, find, findIndex, forEach, indexOf, includes, join, lastIndexOf, map, reduce, reduceRight, reverse, set, slice, some, sort, subarray, values, keys, entries, @@iterator, ...}`\n- Added [`System.global`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://github.com/tc39/proposal-global), [November TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2015-11/nov-19.md#systemglobal-jhd)\n- Added [`Error.isError`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://github.com/ljharb/proposal-is-error), [November TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2015-11/nov-19.md#jhd-erroriserror)\n- Added [`Math.{iaddh, isubh, imulh, umulh}`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://gist.github.com/BrendanEich/4294d5c212a6d2254703)\n- `RegExp.escape` moved from the `es7` to the non-standard `core` namespace, [July TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2015-07/july-28.md#62-regexpescape) - too slow, but it's condition of stability, [#116](https://github.com/zloirock/core-js/issues/116)\n- [`Promise`](https://github.com/zloirock/core-js#ecmascript-6-promise)\n  - Some performance optimisations\n  - Added basic support [`rejectionHandled` event / `onrejectionhandled` handler](https://github.com/zloirock/core-js#unhandled-rejection-tracking) to the polyfill\n  - Removed usage `@@species` from `Promise.{all, race}`, [November TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2015-11/nov-18.md#conclusionresolution-2)\n- Some improvements [collections polyfills](https://github.com/zloirock/core-js#ecmascript-6-collections)\n  - `O(1)` and preventing possible leaks with frozen keys, [#134](https://github.com/zloirock/core-js/issues/134)\n  - Correct observable state object keys\n- Renamed `String#{padLeft, padRight}` -> [`String#{padStart, padEnd}`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://github.com/tc39/proposal-string-pad-start-end), [November TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2015-11/nov-17.md#conclusionresolution-2) (they want to rename it on each meeting?O_o), [#132](https://github.com/zloirock/core-js/issues/132)\n- Added [`String#{trimStart, trimEnd}` as aliases for `String#{trimLeft, trimRight}`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://github.com/sebmarkbage/ecmascript-string-left-right-trim), [November TC39 meeting](https://github.com/tc39/notes/blob/main/meetings/2015-11/nov-17.md#conclusionresolution-2)\n- Added [annex B HTML methods](https://github.com/zloirock/core-js#ecmascript-6-string) - ugly, but also [the part of the spec](https://262.ecma-international.org/6.0/#sec-string.prototype.anchor)\n- Added little fix for [`Date#toString`](https://github.com/zloirock/core-js#ecmascript-6-date) - `new Date(NaN).toString()` [should be `'Invalid Date'`](https://262.ecma-international.org/6.0/#sec-todatestring)\n- Added [`{keys, values, entries, @@iterator}` methods to DOM collections](https://github.com/zloirock/core-js#iterable-dom-collections) which should have [iterable interface](https://heycam.github.io/webidl/#idl-iterable) or should be [inherited from `Array`](https://heycam.github.io/webidl/#LegacyArrayClass) - `NodeList`, `DOMTokenList`, `MediaList`, `StyleSheetList`, `CSSRuleList`.\n- Removed Mozilla `Array` generics - [deprecated and will be removed from FF](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Array_generic_methods), [looks like strawman is dead](https://web.archive.org/web/20160805230354/http://wiki.ecmascript.org/doku.php?id=strawman:array_statics), available [alternative shim](https://github.com/plusdude/array-generics)\n- Removed `core.log` module\n- CommonJS API\n  - Added entry points for [virtual methods](https://github.com/zloirock/core-js#commonjs-and-prototype-methods-without-global-namespace-pollution)\n  - Added entry points for [stages proposals](https://github.com/zloirock/core-js#ecmascript-7-proposals)\n  - Some other minor changes\n- [Custom build from external scripts](https://github.com/zloirock/core-js#custom-build-from-external-scripts) moved to the separate package for preventing problems with dependencies\n- Changed `$` prefix for internal modules file names because Team Foundation Server does not support it, [#129](https://github.com/zloirock/core-js/issues/129)\n- Additional fix for `SameValueZero` in V8 ~ Chromium 39-42 collections\n- Additional fix for FF27 `Array` iterator\n- Removed usage shortcuts for `arguments` object - old WebKit bug, [#150](https://github.com/zloirock/core-js/issues/150)\n- `{Map, Set}#forEach` non-generic, [#144](https://github.com/zloirock/core-js/issues/144)\n- Many other improvements\n\n### [1.2.6 - 2015.11.09](https://github.com/zloirock/core-js/releases/tag/v1.2.6)\n- Reject with `TypeError` on attempt resolve promise itself\n- Correct behavior with broken `Promise` subclass constructors / methods\n- Added `Promise`-based fallback for microtask\n- Fixed V8 and FF `Array#{values, @@iterator}.name`\n- Fixed IE7- `[1, 2].join(undefined) -> '1,2'`\n- Some other fixes / improvements / optimizations\n\n### [1.2.5 - 2015.11.02](https://github.com/zloirock/core-js/releases/tag/v1.2.5)\n- Some more `Number` constructor fixes:\n  - Fixed V8 ~ Node 0.8 bug: `Number('+0x1')` should be `NaN`\n  - Fixed `Number(' 0b1\\n')` case, should be `1`\n  - Fixed `Number()` case, should be `0`\n\n### [1.2.4 - 2015.11.01](https://github.com/zloirock/core-js/releases/tag/v1.2.4)\n- Fixed `Number('0b12') -> NaN` case in the shim\n- Fixed V8 ~ Chromium 40- bug - `Weak(Map|Set)#{delete, get, has}` should not throw errors [#124](https://github.com/zloirock/core-js/issues/124)\n- Some other fixes and optimizations\n\n### [1.2.3 - 2015.10.23](https://github.com/zloirock/core-js/releases/tag/v1.2.3)\n- Fixed some problems related old V8 bug `Object('a').propertyIsEnumerable(0) // => false`, for example, `Object.assign({}, 'qwe')` from the last release\n- Fixed `.name` property and `Function#toString` conversion some polyfilled methods\n- Fixed `Math.imul` arity in Safari 8-\n\n### [1.2.2 - 2015.10.18](https://github.com/zloirock/core-js/releases/tag/v1.2.2)\n- Improved optimisations for V8\n- Fixed build process from external packages, [#120](https://github.com/zloirock/core-js/pull/120)\n- One more `Object.{assign, values, entries}` fix for [**very** specific case](https://github.com/ljharb/proposal-object-values-entries/issues/5)\n\n### [1.2.1 - 2015.10.02](https://github.com/zloirock/core-js/releases/tag/v1.2.1)\n- Replaced fix `JSON.stringify` + `Symbol` behavior from `.toJSON` method to wrapping `JSON.stringify` - little more correct, [compat-table/642](https://github.com/kangax/compat-table/pull/642)\n- Fixed typo which broke tasks scheduler in WebWorkers in old FF, [#114](https://github.com/zloirock/core-js/pull/114)\n\n### [1.2.0 - 2015.09.27](https://github.com/zloirock/core-js/releases/tag/v1.2.0)\n- Added browser [`Promise` rejection hook](#unhandled-rejection-tracking), [#106](https://github.com/zloirock/core-js/issues/106)\n- Added correct [`IsRegExp`](https://262.ecma-international.org/6.0/#sec-isregexp) logic to [`String#{includes, startsWith, endsWith}`](https://github.com/zloirock/core-js/#ecmascript-6-string) and [`RegExp` constructor](https://github.com/zloirock/core-js/#ecmascript-6-regexp), `@@match` case, [example](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/match#Disabling_the_isRegExp_check)\n- Updated [`String#leftPad`](https://github.com/zloirock/core-js/#ecmascript-7-proposals) [with proposal](https://github.com/ljharb/proposal-string-pad-left-right/issues/6): string filler truncated from the right side\n- Replaced V8 [`Object.assign`](https://github.com/zloirock/core-js/#ecmascript-6-object) - its properties order not only incorrect, it is non-deterministic and it causes some problems\n- Fixed behavior with deleted in getters properties for `Object.{`[`assign`](https://github.com/zloirock/core-js/#ecmascript-6-object)`, `[`entries, values`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)`}`, [example](http://goo.gl/iQE01c)\n- Fixed [`Math.sinh`](https://github.com/zloirock/core-js/#ecmascript-6-math) with very small numbers in V8 near Chromium 38\n- Some other fixes and optimizations\n\n### [1.1.4 - 2015.09.05](https://github.com/zloirock/core-js/releases/tag/v1.1.4)\n- Fixed support symbols in FF34-35 [`Object.assign`](https://github.com/zloirock/core-js/#ecmascript-6-object)\n- Fixed [collections iterators](https://github.com/zloirock/core-js/#ecmascript-6-iterators) in FF25-26\n- Fixed non-generic WebKit [`Array.of`](https://github.com/zloirock/core-js/#ecmascript-6-array)\n- Some other fixes and optimizations\n\n### [1.1.3 - 2015.08.29](https://github.com/zloirock/core-js/releases/tag/v1.1.3)\n- Fixed support Node.js domains in [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise), [#103](https://github.com/zloirock/core-js/issues/103)\n\n### [1.1.2 - 2015.08.28](https://github.com/zloirock/core-js/releases/tag/v1.1.2)\n- Added `toJSON` method to [`Symbol`](https://github.com/zloirock/core-js/#ecmascript-6-symbol) polyfill and to MS Edge implementation for expected `JSON.stringify` result w/o patching this method\n- Replaced [`Reflect.construct`](https://github.com/zloirock/core-js/#ecmascript-6-reflect) implementations w/o correct support third argument\n- Fixed `global` detection with changed `document.domain` in \\~IE8, [#100](https://github.com/zloirock/core-js/issues/100)\n\n### [1.1.1 - 2015.08.20](https://github.com/zloirock/core-js/releases/tag/v1.1.1)\n- Added more correct microtask implementation for [`Promise`](#ecmascript-6-promise)\n\n### [1.1.0 - 2015.08.17](https://github.com/zloirock/core-js/releases/tag/v1.1.0)\n- Updated [string padding](https://github.com/zloirock/core-js/#ecmascript-7-proposals) to [actual proposal](https://github.com/ljharb/proposal-string-pad-left-right) - renamed, minor internal changes:\n  - `String#lpad` -> `String#padLeft`\n  - `String#rpad` -> `String#padRight`\n- Added [string trim functions](#ecmascript-7-proposals) - [proposal](https://github.com/sebmarkbage/ecmascript-string-left-right-trim), defacto standard - required only for IE11- and fixed for some old engines:\n  - `String#trimLeft`\n  - `String#trimRight`\n- [`String#trim`](https://github.com/zloirock/core-js/#ecmascript-6-string) fixed for some engines by es6 spec and moved from `es5` to single `es6` module\n- Split [`es6.object.statics-accept-primitives`](https://github.com/zloirock/core-js/#ecmascript-6-object)\n- Caps for `freeze`-family `Object` methods moved from `es5` to `es6` namespace and joined with [es6 wrappers](https://github.com/zloirock/core-js/#ecmascript-6-object)\n- `es5` [namespace](https://github.com/zloirock/core-js/#commonjs) also includes modules, moved to `es6` namespace - you can use it as before\n- Increased `MessageChannel` priority in `$.task`, [#95](https://github.com/zloirock/core-js/issues/95)\n- Does not get `global.Symbol` on each getting iterator, if you wanna use alternative `Symbol` shim - add it before `core-js`\n- [`Reflect.construct`](https://github.com/zloirock/core-js/#ecmascript-6-reflect) optimized and fixed for some cases\n- Simplified [`Reflect.enumerate`](https://github.com/zloirock/core-js/#ecmascript-6-reflect), see [this question](https://esdiscuss.org/topic/question-about-enumerate-and-property-decision-timing)\n- Some corrections in [`Math.acosh`](https://github.com/zloirock/core-js/#ecmascript-6-math)\n- Fixed [`Math.imul`](https://github.com/zloirock/core-js/#ecmascript-6-math) for old WebKit\n- Some fixes in string / RegExp [well-known symbols](https://github.com/zloirock/core-js/#ecmascript-6-regexp) logic\n- Some other fixes and optimizations\n\n### [1.0.1 - 2015.07.31](https://github.com/zloirock/core-js/releases/tag/v1.0.1)\n- Some fixes for final MS Edge, replaced broken native `Reflect.defineProperty`\n- Some minor fixes and optimizations\n- Changed compression `client/*.min.js` options for safe `Function#name` and `Function#length`, should be fixed [#92](https://github.com/zloirock/core-js/issues/92)\n\n### [1.0.0 - 2015.07.22](https://github.com/zloirock/core-js/releases/tag/v1.0.0)\n- Added logic for [well-known symbols](https://github.com/zloirock/core-js/#ecmascript-6-regexp):\n  - `Symbol.match`\n  - `Symbol.replace`\n  - `Symbol.split`\n  - `Symbol.search`\n- Actualized and optimized work with iterables:\n  - Optimized  [`Map`, `Set`, `WeakMap`, `WeakSet` constructors](https://github.com/zloirock/core-js/#ecmascript-6-collections), [`Promise.all`, `Promise.race`](https://github.com/zloirock/core-js/#ecmascript-6-promise) for default `Array Iterator`\n  - Optimized  [`Array.from`](https://github.com/zloirock/core-js/#ecmascript-6-array) for default `Array Iterator`\n  - Added [`core.getIteratorMethod`](https://github.com/zloirock/core-js/#ecmascript-6-iterators) helper\n- Uses enumerable properties in shimmed instances - collections, iterators, etc for optimize performance\n- Added support native constructors to [`Reflect.construct`](https://github.com/zloirock/core-js/#ecmascript-6-reflect) with 2 arguments\n- Added support native constructors to [`Function#bind`](https://github.com/zloirock/core-js/#ecmascript-5) shim with `new`\n- Removed obsolete `.clear` methods native [`Weak`-collections](https://github.com/zloirock/core-js/#ecmascript-6-collections)\n- Maximum modularity, reduced minimal custom build size, separated into submodules:\n  - [`es6.reflect`](https://github.com/zloirock/core-js/#ecmascript-6-reflect)\n  - [`es6.regexp`](https://github.com/zloirock/core-js/#ecmascript-6-regexp)\n  - [`es6.math`](https://github.com/zloirock/core-js/#ecmascript-6-math)\n  - [`es6.number`](https://github.com/zloirock/core-js/#ecmascript-6-number)\n  - [`es7.object.to-array`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)\n  - [`core.object`](https://github.com/zloirock/core-js/#object)\n  - [`core.string`](https://github.com/zloirock/core-js/#escaping-strings)\n  - [`core.iter-helpers`](https://github.com/zloirock/core-js/#ecmascript-6-iterators)\n  - Internal modules (`$`, `$.iter`, etc)\n- Many other optimizations\n- Final cleaning non-standard features\n  - Moved `$for` to [separate library](https://github.com/zloirock/forof). This work for syntax - `for-of` loop and comprehensions\n  - Moved `Date#{format, formatUTC}` to [separate library](https://github.com/zloirock/dtf). Standard way for this - `ECMA-402`\n  - Removed `Math` methods from `Number.prototype`. Slight sugar for simple `Math` methods calling\n  - Removed `{Array#, Array, Dict}.turn`\n  - Removed `core.global`\n- Uses `ToNumber` instead of `ToLength` in [`Number Iterator`](https://github.com/zloirock/core-js/#number-iterator), `Array.from(2.5)` will be `[0, 1, 2]` instead of `[0, 1]`\n- Fixed [#85](https://github.com/zloirock/core-js/issues/85) - invalid `Promise` unhandled rejection message in nested `setTimeout`\n- Fixed [#86](https://github.com/zloirock/core-js/issues/86) - support FF extensions\n- Fixed [#89](https://github.com/zloirock/core-js/issues/89) - behavior `Number` constructor in strange case\n\n### [0.9.18 - 2015.06.17](https://github.com/zloirock/core-js/releases/tag/v0.9.18)\n- Removed `/` from [`RegExp.escape`](https://github.com/zloirock/core-js/#ecmascript-7-proposals) escaped characters\n\n### [0.9.17 - 2015.06.14](https://github.com/zloirock/core-js/releases/tag/v0.9.17)\n- Updated [`RegExp.escape`](https://github.com/zloirock/core-js/#ecmascript-7-proposals) to the [latest proposal](https://github.com/benjamingr/RexExp.escape)\n- Fixed conflict with webpack dev server + IE buggy behavior\n\n### [0.9.16 - 2015.06.11](https://github.com/zloirock/core-js/releases/tag/v0.9.16)\n- More correct order resolving thenable in [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) polyfill\n- Uses polyfill instead of [buggy V8 `Promise`](https://github.com/zloirock/core-js/issues/78)\n\n### [0.9.15 - 2015.06.09](https://github.com/zloirock/core-js/releases/tag/v0.9.15)\n- [Collections](https://github.com/zloirock/core-js/#ecmascript-6-collections) from `library` version return wrapped native instances\n- Fixed collections prototype methods in `library` version\n- Optimized [`Math.hypot`](https://github.com/zloirock/core-js/#ecmascript-6-math)\n\n### [0.9.14 - 2015.06.04](https://github.com/zloirock/core-js/releases/tag/v0.9.14)\n- Updated [`Promise.resolve` behavior](https://esdiscuss.org/topic/fixing-promise-resolve)\n- Added fallback for IE11 buggy `Object.getOwnPropertyNames` + iframe\n- Some other fixes\n\n### [0.9.13 - 2015.05.25](https://github.com/zloirock/core-js/releases/tag/v0.9.13)\n- Added fallback for [`Symbol` polyfill](https://github.com/zloirock/core-js/#ecmascript-6-symbol) for old Android\n- Some other fixes\n\n### [0.9.12 - 2015.05.24](https://github.com/zloirock/core-js/releases/tag/v0.9.12)\n- Different instances `core-js` should use / recognize the same symbols\n- Some fixes\n\n### [0.9.11 - 2015.05.18](https://github.com/zloirock/core-js/releases/tag/v0.9.11)\n- Simplified [custom build](https://github.com/zloirock/core-js/#custom-build)\n  - Added custom build js api\n  - Added `grunt-cli` to `devDependencies` for `npm run grunt`\n- Some fixes\n\n### [0.9.10 - 2015.05.16](https://github.com/zloirock/core-js/releases/tag/v0.9.10)\n- Wrapped `Function#toString` for correct work wrapped methods / constructors with methods similar to the [`lodash` `isNative`](https://github.com/lodash/lodash/issues/1197)\n- Added proto versions of methods to export object in `default` version for consistency with `library` version\n\n### [0.9.9 - 2015.05.14](https://github.com/zloirock/core-js/releases/tag/v0.9.9)\n- Wrapped `Object#propertyIsEnumerable` for [`Symbol` polyfill](https://github.com/zloirock/core-js/#ecmascript-6-symbol)\n- [Added proto versions of methods to `library` for ES7 bind syntax](https://github.com/zloirock/core-js/issues/65)\n- Some other fixes\n\n### [0.9.8 - 2015.05.12](https://github.com/zloirock/core-js/releases/tag/v0.9.8)\n- Fixed [`Math.hypot`](https://github.com/zloirock/core-js/#ecmascript-6-math) with negative arguments\n- Added `Object#toString.toString` as fallback for [`lodash` `isNative`](https://github.com/lodash/lodash/issues/1197)\n\n### [0.9.7 - 2015.05.07](https://github.com/zloirock/core-js/releases/tag/v0.9.7)\n- Added [support DOM collections](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice#Streamlining_cross-browser_behavior) to IE8- `Array#slice`\n\n### [0.9.6 - 2015.05.01](https://github.com/zloirock/core-js/releases/tag/v0.9.6)\n- Added [`String#lpad`, `String#rpad`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)\n\n### [0.9.5 - 2015.04.30](https://github.com/zloirock/core-js/releases/tag/v0.9.5)\n- Added cap for `Function#@@hasInstance`\n- Some fixes and optimizations\n\n### [0.9.4 - 2015.04.27](https://github.com/zloirock/core-js/releases/tag/v0.9.4)\n- Fixed `RegExp` constructor\n\n### [0.9.3 - 2015.04.26](https://github.com/zloirock/core-js/releases/tag/v0.9.3)\n- Some fixes and optimizations\n\n### [0.9.2 - 2015.04.25](https://github.com/zloirock/core-js/releases/tag/v0.9.2)\n- More correct [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) unhandled rejection tracking and resolving / rejection priority\n\n### [0.9.1 - 2015.04.25](https://github.com/zloirock/core-js/releases/tag/v0.9.1)\n- Fixed `__proto__`-based [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) subclassing in some environments\n\n### [0.9.0 - 2015.04.24](https://github.com/zloirock/core-js/releases/tag/v0.9.0)\n- Added correct [symbols](https://github.com/zloirock/core-js/#ecmascript-6-symbol) descriptors\n  - Fixed behavior `Object.{assign, create, defineProperty, defineProperties, getOwnPropertyDescriptor, getOwnPropertyDescriptors}` with symbols\n  - Added [single entry points](https://github.com/zloirock/core-js/#commonjs) for `Object.{create, defineProperty, defineProperties}`\n- Added [`Map#toJSON`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)\n- Removed non-standard methods `Object#[_]` and `Function#only` - they solves syntax problems, but now in compilers available arrows and ~~in near future will be available~~ [available](https://babeljs.io/blog/2015/05/14/function-bind/) [bind syntax](https://github.com/zenparsing/es-function-bind)\n- Removed non-standard undocumented methods `Symbol.{pure, set}`\n- Some fixes and internal changes\n\n### [0.8.4 - 2015.04.18](https://github.com/zloirock/core-js/releases/tag/v0.8.4)\n- Uses `webpack` instead of `browserify` for browser builds - more compression-friendly result\n\n### [0.8.3 - 2015.04.14](https://github.com/zloirock/core-js/releases/tag/v0.8.3)\n- Fixed `Array` statics with single entry points\n\n### [0.8.2 - 2015.04.13](https://github.com/zloirock/core-js/releases/tag/v0.8.2)\n- [`Math.fround`](https://github.com/zloirock/core-js/#ecmascript-6-math) now also works in IE9-\n- Added [`Set#toJSON`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)\n- Some optimizations and fixes\n\n### [0.8.1 - 2015.04.03](https://github.com/zloirock/core-js/releases/tag/v0.8.1)\n- Fixed `Symbol.keyFor`\n\n### [0.8.0 - 2015.04.02](https://github.com/zloirock/core-js/releases/tag/v0.8.0)\n- Changed [CommonJS API](https://github.com/zloirock/core-js/#commonjs)\n- Split and renamed some modules\n- Added support ES3 environment (ES5 polyfill) to **all** default versions - size increases slightly (+ ~4kb w/o gzip), many issues disappear, if you don't need it - [simply include only required namespaces / features / modules](https://github.com/zloirock/core-js/#commonjs)\n- Removed [abstract references](https://github.com/zenparsing/es-abstract-refs) support - proposal has been superseded =\\\n- [`$for.isIterable` -> `core.isIterable`, `$for.getIterator` -> `core.getIterator`](https://github.com/zloirock/core-js/#ecmascript-6-iterators), temporary available in old namespace\n- Fixed iterators support in v8 `Promise.all` and `Promise.race`\n- Many other fixes\n\n### [0.7.2 - 2015.03.09](https://github.com/zloirock/core-js/releases/tag/v0.7.2)\n- Some fixes\n\n### [0.7.1 - 2015.03.07](https://github.com/zloirock/core-js/releases/tag/v0.7.1)\n- Some fixes\n\n### [0.7.0 - 2015.03.06](https://github.com/zloirock/core-js/releases/tag/v0.7.0)\n- Rewritten and split into [CommonJS modules](https://github.com/zloirock/core-js/#commonjs)\n\n### [0.6.1 - 2015.02.24](https://github.com/zloirock/core-js/releases/tag/v0.6.1)\n- Fixed support [`Object.defineProperty`](https://github.com/zloirock/core-js/#ecmascript-5) with accessors on DOM elements on IE8\n\n### [0.6.0 - 2015.02.23](https://github.com/zloirock/core-js/releases/tag/v0.6.0)\n- Added support safe closing iteration - calling `iterator.return` on abort iteration, if it exists\n- Added basic support [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) unhandled rejection tracking in shim\n- Added [`Object.getOwnPropertyDescriptors`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)\n- Removed `console` cap - creates too many problems\n- Restructuring [namespaces](https://github.com/zloirock/core-js/#custom-build)\n- Some fixes\n\n### [0.5.4 - 2015.02.15](https://github.com/zloirock/core-js/releases/tag/v0.5.4)\n- Some fixes\n\n### [0.5.3 - 2015.02.14](https://github.com/zloirock/core-js/releases/tag/v0.5.3)\n- Added [support binary and octal literals](https://github.com/zloirock/core-js/#ecmascript-6-number) to `Number` constructor\n- Added [`Date#toISOString`](https://github.com/zloirock/core-js/#ecmascript-5)\n\n### [0.5.2 - 2015.02.10](https://github.com/zloirock/core-js/releases/tag/v0.5.2)\n- Some fixes\n\n### [0.5.1 - 2015.02.09](https://github.com/zloirock/core-js/releases/tag/v0.5.1)\n- Some fixes\n\n### [0.5.0 - 2015.02.08](https://github.com/zloirock/core-js/releases/tag/v0.5.0)\n- Systematization of modules\n- Split [`es6` module](https://github.com/zloirock/core-js/#ecmascript-6)\n- Split `console` module: `web.console` - only cap for missing methods, `core.log` - bound methods & additional features\n- Added [`delay` method](https://github.com/zloirock/core-js/#delay)\n- Some fixes\n\n### [0.4.10 - 2015.01.28](https://github.com/zloirock/core-js/releases/tag/v0.4.10)\n- [`Object.getOwnPropertySymbols`](https://github.com/zloirock/core-js/#ecmascript-6-symbol) polyfill returns array of wrapped keys\n\n### [0.4.9 - 2015.01.27](https://github.com/zloirock/core-js/releases/tag/v0.4.9)\n- FF20-24 fix\n\n### [0.4.8 - 2015.01.25](https://github.com/zloirock/core-js/releases/tag/v0.4.8)\n- Some [collections](https://github.com/zloirock/core-js/#ecmascript-6-collections) fixes\n\n### [0.4.7 - 2015.01.25](https://github.com/zloirock/core-js/releases/tag/v0.4.7)\n- Added support frozen objects as [collections](https://github.com/zloirock/core-js/#ecmascript-6-collections) keys\n\n### [0.4.6 - 2015.01.21](https://github.com/zloirock/core-js/releases/tag/v0.4.6)\n- Added [`Object.getOwnPropertySymbols`](https://github.com/zloirock/core-js/#ecmascript-6-symbol)\n- Added [`NodeList.prototype[@@iterator]`](https://github.com/zloirock/core-js/#ecmascript-6-iterators)\n- Added basic `@@species` logic - getter in native constructors\n- Removed `Function#by`\n- Some fixes\n\n### [0.4.5 - 2015.01.16](https://github.com/zloirock/core-js/releases/tag/v0.4.5)\n- Some fixes\n\n### [0.4.4 - 2015.01.11](https://github.com/zloirock/core-js/releases/tag/v0.4.4)\n- Enabled CSP support\n\n### [0.4.3 - 2015.01.10](https://github.com/zloirock/core-js/releases/tag/v0.4.3)\n- Added `Function` instances `name` property for IE9+\n\n### [0.4.2 - 2015.01.10](https://github.com/zloirock/core-js/releases/tag/v0.4.2)\n- `Object` static methods accept primitives\n- `RegExp` constructor can alter flags (IE9+)\n- Added `Array.prototype[Symbol.unscopables]`\n\n### [0.4.1 - 2015.01.05](https://github.com/zloirock/core-js/releases/tag/v0.4.1)\n- Some fixes\n\n### [0.4.0 - 2015.01.03](https://github.com/zloirock/core-js/releases/tag/v0.4.0)\n- Added [`es6.reflect`](https://github.com/zloirock/core-js/#ecmascript-6-reflect) module:\n  - Added `Reflect.apply`\n  - Added `Reflect.construct`\n  - Added `Reflect.defineProperty`\n  - Added `Reflect.deleteProperty`\n  - Added `Reflect.enumerate`\n  - Added `Reflect.get`\n  - Added `Reflect.getOwnPropertyDescriptor`\n  - Added `Reflect.getPrototypeOf`\n  - Added `Reflect.has`\n  - Added `Reflect.isExtensible`\n  - Added `Reflect.preventExtensions`\n  - Added `Reflect.set`\n  - Added `Reflect.setPrototypeOf`\n- `core-js` methods now can use external `Symbol.iterator` polyfill\n- Some fixes\n\n### [0.3.3 - 2014.12.28](https://github.com/zloirock/core-js/releases/tag/v0.3.3)\n- [Console cap](https://github.com/zloirock/core-js/#console) excluded from node.js default builds\n\n### [0.3.2 - 2014.12.25](https://github.com/zloirock/core-js/releases/tag/v0.3.2)\n- Added cap for [ES5](https://github.com/zloirock/core-js/#ecmascript-5) freeze-family methods\n- Fixed `console` bug\n\n### [0.3.1 - 2014.12.23](https://github.com/zloirock/core-js/releases/tag/v0.3.1)\n- Some fixes\n\n### [0.3.0 - 2014.12.23](https://github.com/zloirock/core-js/releases/tag/v0.3.0)\n- Optimize [`Map` & `Set`](https://github.com/zloirock/core-js/#ecmascript-6-collections):\n  - Use entries chain on hash table\n  - Fast & correct iteration\n  - Iterators moved to [`es6`](https://github.com/zloirock/core-js/#ecmascript-6) and [`es6.collections`](https://github.com/zloirock/core-js/#ecmascript-6-collections) modules\n\n### [0.2.5 - 2014.12.20](https://github.com/zloirock/core-js/releases/tag/v0.2.5)\n- `console` no longer shortcut for `console.log` (compatibility problems)\n- Some fixes\n\n### [0.2.4 - 2014.12.17](https://github.com/zloirock/core-js/releases/tag/v0.2.4)\n- Better compliance of ES6\n- Added [`Math.fround`](https://github.com/zloirock/core-js/#ecmascript-6-math) (IE10+)\n- Some fixes\n\n### [0.2.3 - 2014.12.15](https://github.com/zloirock/core-js/releases/tag/v0.2.3)\n- [Symbols](https://github.com/zloirock/core-js/#ecmascript-6-symbol):\n  - Added option to disable addition setter to `Object.prototype` for Symbol polyfill:\n    - Added `Symbol.useSimple`\n    - Added `Symbol.useSetter`\n  - Added cap for well-known Symbols:\n    - Added `Symbol.hasInstance`\n    - Added `Symbol.isConcatSpreadable`\n    - Added `Symbol.match`\n    - Added `Symbol.replace`\n    - Added `Symbol.search`\n    - Added `Symbol.species`\n    - Added `Symbol.split`\n    - Added `Symbol.toPrimitive`\n    - Added `Symbol.unscopables`\n\n### [0.2.2 - 2014.12.13](https://github.com/zloirock/core-js/releases/tag/v0.2.2)\n- Added [`RegExp#flags`](https://github.com/zloirock/core-js/#ecmascript-6-regexp) ([December 2014 Draft Rev 29](https://web.archive.org/web/20170119181824/http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts))\n- Added [`String.raw`](https://github.com/zloirock/core-js/#ecmascript-6-string)\n\n### [0.2.1 - 2014.12.12](https://github.com/zloirock/core-js/releases/tag/v0.2.1)\n- Repair converting -0 to +0 in [native collections](https://github.com/zloirock/core-js/#ecmascript-6-collections)\n\n### [0.2.0 - 2014.12.06](https://github.com/zloirock/core-js/releases/tag/v0.2.0)\n- Added [`es7.proposals`](https://github.com/zloirock/core-js/#ecmascript-7-proposals) and [`es7.abstract-refs`](https://github.com/zenparsing/es-abstract-refs) modules\n- Added [`String#at`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)\n- Added real [`String Iterator`](https://github.com/zloirock/core-js/#ecmascript-6-iterators), older versions used Array Iterator\n- Added abstract references support:\n  - Added `Symbol.referenceGet`\n  - Added `Symbol.referenceSet`\n  - Added `Symbol.referenceDelete`\n  - Added `Function#@@referenceGet`\n  - Added `Map#@@referenceGet`\n  - Added `Map#@@referenceSet`\n  - Added `Map#@@referenceDelete`\n  - Added `WeakMap#@@referenceGet`\n  - Added `WeakMap#@@referenceSet`\n  - Added `WeakMap#@@referenceDelete`\n  - Added `Dict.{...methods}[@@referenceGet]`\n- Removed deprecated `.contains` methods\n- Some fixes\n\n### [0.1.5 - 2014.12.01](https://github.com/zloirock/core-js/releases/tag/v0.1.5)\n- Added [`Array#copyWithin`](https://github.com/zloirock/core-js/#ecmascript-6-array)\n- Added [`String#codePointAt`](https://github.com/zloirock/core-js/#ecmascript-6-string)\n- Added [`String.fromCodePoint`](https://github.com/zloirock/core-js/#ecmascript-6-string)\n\n### [0.1.4 - 2014.11.27](https://github.com/zloirock/core-js/releases/tag/v0.1.4)\n- Added [`Dict.mapPairs`](https://github.com/zloirock/core-js/#dict)\n\n### [0.1.3 - 2014.11.20](https://github.com/zloirock/core-js/releases/tag/v0.1.3)\n- [TC39 November meeting](https://github.com/tc39/notes/blob/main/meetings/2014-11):\n  - [`.contains` -> `.includes`](https://github.com/tc39/notes/blob/main/meetings/2014-11/nov-18.md#51--44-arrayprototypecontains-and-stringprototypecontains)\n    - `String#contains` -> [`String#includes`](https://github.com/zloirock/core-js/#ecmascript-6-string)\n    - `Array#contains` -> [`Array#includes`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)\n    - `Dict.contains` -> [`Dict.includes`](https://github.com/zloirock/core-js/#dict)\n  - [Removed `WeakMap#clear`](https://github.com/tc39/notes/blob/main/meetings/2014-11/nov-19.md#412-should-weakmapweakset-have-a-clear-method-markm)\n  - [Removed `WeakSet#clear`](https://github.com/tc39/notes/blob/main/meetings/2014-11/nov-19.md#412-should-weakmapweakset-have-a-clear-method-markm)\n\n### [0.1.2 - 2014.11.19](https://github.com/zloirock/core-js/releases/tag/v0.1.2)\n- `Map` & `Set` bug fix\n\n### [0.1.1 - 2014.11.18](https://github.com/zloirock/core-js/releases/tag/v0.1.1)\n- Public release\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing\n\nContributions are always welcome. Feel free to ask [**@zloirock**](https://github.com/zloirock) if you have some questions.\n\n## I want to help with code, but I don't know how\n\nThere is always some [\"help wanted\" issues](https://github.com/zloirock/core-js/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22help+wanted%22). You can look at them first. Sure, other help is also required - you could ask [**@zloirock**](https://github.com/zloirock) about it or open issues if you have some ideas.\n\n## How to add a new polyfill\n\n- The polyfill implementation should be added to the [`packages/core-js/modules`](./packages/core-js/modules) directory.\n- The polyfill should properly work in ES3 and all possible engines. If in some engines it cannot be implemented (for example, it strictly requires more modern ES or unavailable platform features), it should not break any other `core-js` features or application in any way.\n- Avoid possible observing / breakage polyfills via patching built-ins at runtime: cache all global built-ins in the polyfills code and don't call prototype methods from instances.\n- Shared helpers should be added to the [`packages/core-js/internals`](./packages/core-js/internals) directory. Reuse already existing helpers.\n- Avoid direct import from `/modules/` path in `/internals|modules/` since it will break optimizations via Babel / `swc`. Specify such dependencies in `/es|stable|actual/full/` entries and use something like [`internals/get-built-in`](./packages/core-js/internals/get-built-in.js) helpers.\n- For export the polyfill, in all common cases use [`internals/export`](./packages/core-js/modules/export.js) helper. Use something else only if this helper is not applicable - for example, if you want to polyfill accessors.\n- If the code of the pure version implementation should significantly differ from the global version (*that's not a frequent situation, in most cases [`internals/is-pure`](./packages/core-js/modules/is-pure.js) constant is enough*), you can add it to [`packages/core-js-pure/override`](./packages/core-js-pure/override) directory. The rest parts of `core-js-pure` will be copied from `core-js` package.\n- Add the feature detection of the polyfill to [`tests/compat/tests.js`](./tests/compat/tests.js), add the compatibility data to [`packages/core-js-compat/src/data.mjs`](./packages/core-js-compat/src/data.mjs), how to do it [see below](#how-to-update-core-js-compat-data), and the name of the polyfill module to [`packages/core-js-compat/src/modules-by-versions.mjs`](./packages/core-js-compat/src/modules-by-versions.mjs) (this data is also used for getting the default list of polyfills at bundling and generation indexes).\n- Add it to entry points where it's required: directories [`packages/core-js/es`](./packages/core-js/es), [`packages/core-js/stable`](./packages/core-js/stable), [`packages/core-js/actual`](./packages/core-js/actual), [`packages/core-js/full`](./packages/core-js/full), [`packages/core-js/proposals`](./packages/core-js/proposals), [`packages/core-js/stage`](./packages/core-js/stage) and [`packages/core-js/web`](./packages/core-js/web).\n- Add unit tests to [`tests/unit-global`](./tests/unit-global) and [`tests/unit-pure`](./tests/unit-pure).\n- Add tests of entry points to [`tests/entries/unit.mjs`](./tests/entries/unit.mjs).\n- Make sure that you are following [our coding style](#style-and-standards) and [all tests](#testing) are passed.\n- Document it in [site documentation](./docs/web/docs/) and [CHANGELOG.md](./CHANGELOG.md).\n\n[A simple example of adding a new polyfill.](https://github.com/zloirock/core-js/pull/1294/files)\n\n## How to update `core-js-compat` data\n\nFor updating `core-js-compat` data:\n\n- If you want to add a new data for a browser, run in this browser `tests/compat/index.html` (tests and results for the actual release are available at [`http://zloirock.github.io/core-js/master/compat`](http://zloirock.github.io/core-js/master/compat)) and you will see what `core-js` modules are required for this browser.\n\n![compat-table](https://user-images.githubusercontent.com/2213682/217452234-ccdcfc5a-c7d3-40d1-ab3f-86902315b8c3.png)\n\n- If you want to add new data for NodeJS, run `npm run compat-node` with the installed required NodeJS version and you will see the results in the console. Use `npm run compat-node json` if you want to get the result as JSON.\n- If you want to add new data for Deno, run `npm run compat-deno` with the installed required Deno version and you will see the results in the console. Use `npm run compat-deno json` if you want to get the result as JSON.\n- If you want to add new data for Bun, run `npm run compat-bun` with the installed required Bun version and you will see the results in the console.\n- If you want to add new data for Rhino, run `npm run compat-rhino YOUR_PATH_TO_RHINO` and you will see the results in the console.\n- If you want to add new data for Hermes (incl. shipped with React Native), run `npm run compat-hermes YOUR_PATH_TO_HERMES` and you will see the results in the console.\n- After getting this data, add it to [`packages/core-js-compat/src/data.mjs`](./packages/core-js-compat/src/data.mjs).\n- If you want to add new mapping (for example, to add a new iOS Safari version based on Safari or NodeJS based on Chrome), add it to [`packages/core-js-compat/src/mapping.mjs`](./packages/core-js-compat/src/mapping.mjs).\n\nengine            | how to run tests | base data inherits from    | mandatory check  | mapping for a new version\n---               | ---              | ---                        | ---              | ---\n`android`         | browser runner   | `chrome`, `chrome-android` |                  |\n`bun`             | bun runner       | `safari` (only ES)         | required         |\n`chrome`          | browser runner   |                            | required         |\n`chrome-android`  | browser runner   | `chrome`                   |                  |\n`deno`            | deno runner      | `chrome` (only ES)         | non-ES features  | required\n`edge`            | browser runner   | `ie`, `chrome`             | required (<= 18) |\n`electron`        | browser runner   | `chrome`                   |                  | required\n`firefox`         | browser runner   |                            | required         |\n`firefox-android` | browser runner   | `firefox`                  |                  |\n`hermes`          | hermes runner    |                            | required         |\n`ie`              | browser runner   |                            | required         |\n`ios`             | browser runner   | `safari`                   |                  | if inconsistent (!= `safari`)\n`node`            | node runner      | `chrome` (only ES)         | non-ES features  | required\n`opera`           | browser runner   | `chrome`                   |                  | if inconsistent (!= `chrome` - 16)\n`opera-android`   | browser runner   | `opera`, `chrome-android`  |                  | required\n`phantom`         | browser runner   | `safari`                   |                  |\n`quest`           | browser runner   | `chrome-android`           |                  | required\n`react-native`    | hermes runner    | `hermes`                   | required         |\n`rhino`           | rhino runner     |                            | required         |\n`safari`          | browser runner   |                            | required         |\n`samsung`         | browser runner   | `chrome-android`           |                  | required\n\nIf you have no access to all required browsers / versions of browsers, use [Sauce Labs](https://saucelabs.com/), [BrowserStack](https://www.browserstack.com/) or [Cloud Browser](https://ieonchrome.com/).\n\n## Style and standards\n\nThe coding style should follow our [`eslint.config.js`](./tests/eslint/eslint.config.js). You can test it by calling [`npm run lint`](#testing). Different places have different syntax and standard library limitations:\n- Polyfill implementations should use only ES3 syntax and standard library, they should not use other polyfills from the global scope.\n- Unit tests should use the modern syntax with our [minimalistic Babel config](./babel.config.js). Unit tests for the pure version should not use any modern standard library features.\n- Tools, scripts and tests, performed in NodeJS, should use only the syntax and the standard library available in NodeJS 8.\n\nFile names should be in the kebab-case. Name of polyfill modules should follow the naming convention `namespace.subnamespace-where-required.feature-name`, for example, `esnext.set.intersection`. The top-level namespace should be `es` for stable ECMAScript features, `esnext` for ECMAScript proposals and `web` for other web standards.\n\n## Testing\n\nBefore testing, you should prepare monorepo and install dependencies:\n```sh\nnpm run prepare-monorepo\n```\nYou can run the most tests by\n```sh\nnpm t\n```\nYou can run parts of the test case separately:\n- Linting:\n  ```sh\n  npm run lint\n  ```\n- Unit test case in Karma (modern Chromium, Firefox, WebKit (Playwright), ancient WebKit (PhantomJS), IE11 (if available)):\n  ```sh\n  npx run-s prepare bundle test-unit-karma\n  ```\n- Unit test case in NodeJS:\n  ```sh\n  npx run-s prepare bundle test-unit-node\n  ```\n- Unit test case in Bun:\n  ```sh\n  npx run-s prepare bundle test-unit-bun\n  ```\n- [Test262](https://github.com/tc39/test262) test case (it's not included to the default tests):\n  ```sh\n  npx run-s prepare bundle-package test262\n  ```\n- [Promises/A+](https://github.com/promises-aplus/promises-tests) and [ES6 `Promise`](https://github.com/promises-es6/promises-es6) test cases:\n  ```sh\n  npx run-s prepare test-promises\n  ```\n- [ECMAScript `Observable` test case](https://github.com/tc39/proposal-observable):\n  ```sh\n  npx run-s prepare test-observables\n  ```\n- CommonJS entry points tests:\n  ```sh\n  npx run-s prepare test-entries\n  ```\n- `core-js-compat` tools tests:\n  ```sh\n  npx run-s prepare test-compat-tools\n  ```\n- `core-js-builder` tests:\n  ```sh\n  npx run-s prepare test-builder\n  ```\n- If you want to run tests in a certain browser, at first, you should build packages and test bundles:\n  ```sh\n  npx run-s prepare bundle\n  ```\n- For running the global version of the unit test case, use this file:\n  ```sh\n  tests/unit-browser/global.html\n  ```\n- For running the pure version of the unit test case, use this file:\n  ```sh\n  tests/unit-browser/pure.html\n  ```\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright (c) 2013–2025 Denis Pushkarev (zloirock.ru)\nCopyright (c) 2025–2026 CoreJS Company (core-js.io)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "![logo](https://user-images.githubusercontent.com/2213682/146607186-8e13ddef-26a4-4ebf-befd-5aac9d77c090.png)\n\n<div align=\"center\">\n\n[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js.svg)](https://www.npmjs.com/package/core-js) [![core-js downloads](https://img.shields.io/npm/dm/core-js.svg?label=npm%20i%20core-js)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18) [![core-js-pure downloads](https://img.shields.io/npm/dm/core-js-pure.svg?label=npm%20i%20core-js-pure)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18)\n\n</div>\n\n**Welcome to our new website, [core-js.io](https://core-js.io), where our documentation is moving!**\n---\n\n**I highly recommend reading this: [So, what's next?](https://core-js.io/blog/2023-02-14-so-whats-next)**\n---\n\n> Modular standard library for JavaScript. Includes polyfills for [ECMAScript up to 2025](#ecmascript): [promises](#ecmascript-promise), [symbols](#ecmascript-symbol), [collections](#ecmascript-collections), iterators, [typed arrays](#ecmascript-typed-arrays), many other features, [ECMAScript proposals](#ecmascript-proposals), [some cross-platform WHATWG / W3C features and proposals](#web-standards) like [`URL`](#url-and-urlsearchparams). You can load only required features or use it without global namespace pollution.\n\n## [core-js@3, babel and a look into the future](https://core-js.io/blog/2019-03-19-core-js-3-babel-and-a-look-into-the-future)\n\n## Raising funds\n\n`core-js` isn't backed by a company, so the future of this project depends on you. Become a sponsor or a backer if you are interested in `core-js`: [**Open Collective**](https://opencollective.com/core-js), [**Patreon**](https://patreon.com/zloirock), [**Boosty**](https://boosty.to/zloirock), **Bitcoin ( bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz )**, [**Alipay**](https://user-images.githubusercontent.com/2213682/219464783-c17ad329-17ce-4795-82a7-f609493345ed.png).\n\n---\n\n<a href=\"https://opencollective.com/core-js/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/0/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/1/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/2/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/3/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/4/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/5/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/6/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/7/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/8/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/9/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/10/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/10/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/11/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/11/avatar.svg\"></a>\n\n---\n\n<a href=\"https://opencollective.com/core-js#backers\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/backers.svg?width=890\"></a>\n\n---\n\n[*Example of usage*](https://tinyurl.com/28zqjbun):\n```js\nimport 'core-js/actual';\n\nPromise.try(() => 42).then(it => console.log(it)); // => 42\n\nArray.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\n[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n*You can load only required features*:\n```js\nimport 'core-js/actual/promise';\nimport 'core-js/actual/set';\nimport 'core-js/actual/iterator';\nimport 'core-js/actual/array/from';\nimport 'core-js/actual/array/flat-map';\nimport 'core-js/actual/structured-clone';\n\nPromise.try(() => 42).then(it => console.log(it)); // => 42\n\nArray.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\n[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n*Or use it without global namespace pollution*:\n```js\nimport Promise from 'core-js-pure/actual/promise';\nimport Set from 'core-js-pure/actual/set';\nimport Iterator from 'core-js-pure/actual/iterator';\nimport from from 'core-js-pure/actual/array/from';\nimport flatMap from 'core-js-pure/actual/array/flat-map';\nimport structuredClone from 'core-js-pure/actual/structured-clone';\n\nPromise.try(() => 42).then(it => console.log(it)); // => 42\n\nfrom(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\nflatMap([1, 2], it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n### Index\n- [Usage](#usage)\n  - [Installation](#installation)\n  - [`postinstall` message](#postinstall-message)\n  - [CommonJS API](#commonjs-api)\n  - [Babel](#babel)\n    - [`@babel/polyfill`](#babelpolyfill)\n    - [`@babel/preset-env`](#babelpreset-env)\n    - [`@babel/runtime`](#babelruntime)\n  - [swc](#swc)\n  - [Configurable level of aggressiveness](#configurable-level-of-aggressiveness)\n  - [Custom build](#custom-build)\n- [Supported engines and compatibility data](#supported-engines-and-compatibility-data)\n- [Features](#features)\n  - [ECMAScript](#ecmascript)\n    - [ECMAScript: Object](#ecmascript-object)\n    - [ECMAScript: Function](#ecmascript-function)\n    - [ECMAScript: Error](#ecmascript-error)\n    - [ECMAScript: Array](#ecmascript-array)\n    - [ECMAScript: Iterator](#ecmascript-iterator)\n    - [ECMAScript: String and RegExp](#ecmascript-string-and-regexp)\n    - [ECMAScript: Number](#ecmascript-number)\n    - [ECMAScript: Math](#ecmascript-math)\n    - [ECMAScript: Date](#ecmascript-date)\n    - [ECMAScript: Promise](#ecmascript-promise)\n    - [ECMAScript: Symbol](#ecmascript-symbol)\n    - [ECMAScript: Collections](#ecmascript-collections)\n    - [ECMAScript: Explicit Resource Management](#ecmascript-explicit-resource-management)\n    - [ECMAScript: Typed Arrays](#ecmascript-typed-arrays)\n    - [ECMAScript: Reflect](#ecmascript-reflect)\n    - [ECMAScript: JSON](#ecmascript-json)\n    - [ECMAScript: globalThis](#ecmascript-globalthis)\n  - [ECMAScript proposals](#ecmascript-proposals)\n    - [Finished proposals](#finished-proposals)\n      - [`globalThis`](#globalthis)\n      - [Relative indexing method](#relative-indexing-method)\n      - [`Array.prototype.includes`](#arrayprototypeincludes)\n      - [`Array.prototype.flat` / `Array.prototype.flatMap`](#arrayprototypeflat--arrayprototypeflatmap)\n      - [`Array` find from last](#array-find-from-last)\n      - [Change `Array` by copy](#change-array-by-copy)\n      - [`Array` grouping](#array-grouping)\n      - [`Array.fromAsync`](#arrayfromasync)\n      - [`ArrayBuffer.prototype.transfer` and friends](#arraybufferprototypetransfer-and-friends)\n      - [`Uint8Array` to / from base64 and hex](#uint8array-to--from-base64-and-hex)\n      - [`Error.isError`](#erroriserror)\n      - [Explicit Resource Management](#explicit-resource-management)\n      - [`Float16` methods](#float16-methods)\n      - [`Iterator` helpers](#iterator-helpers)\n      - [`Iterator` sequencing](#iterator-sequencing)\n      - [`Object.values` / `Object.entries`](#objectvalues--objectentries)\n      - [`Object.fromEntries`](#objectfromentries)\n      - [`Object.getOwnPropertyDescriptors`](#objectgetownpropertydescriptors)\n      - [Accessible `Object.prototype.hasOwnProperty`](#accessible-objectprototypehasownproperty)\n      - [`String` padding](#string-padding)\n      - [`String.prototype.matchAll`](#stringmatchall)\n      - [`String.prototype.replaceAll`](#stringreplaceall)\n      - [`String.prototype.trimStart` / `String.prototype.trimEnd`](#stringprototypetrimstart-stringprototypetrimend)\n      - [`RegExp` `s` (`dotAll`) flag](#regexp-s-dotall-flag)\n      - [`RegExp` named capture groups](#regexp-named-capture-groups)\n      - [`RegExp` escaping](#regexp-escaping)\n      - [`Promise.allSettled`](#promiseallsettled)\n      - [`Promise.any`](#promiseany)\n      - [`Promise.prototype.finally`](#promiseprototypefinally)\n      - [`Promise.try`](#promisetry)\n      - [`Promise.withResolvers`](#promisewithresolvers)\n      - [`Symbol.asyncIterator` for asynchronous iteration](#symbolasynciterator-for-asynchronous-iteration)\n      - [`Symbol.prototype.description`](#symbolprototypedescription)\n      - [`JSON.parse` source text access](#jsonparse-source-text-access)\n      - [Well-formed `JSON.stringify`](#well-formed-jsonstringify)\n      - [Well-formed unicode strings](#well-formed-unicode-strings)\n      - [New `Set` methods](#new-set-methods)\n      - [`Map` upsert](#map-upsert)\n      - [`Math.sumPrecise`](#mathsumprecise)\n    - [Stage 3 proposals](#stage-3-proposals)\n      - [Joint iteration](#joint-iteration)\n      - [`Symbol.metadata` for decorators metadata proposal](#symbolmetadata-for-decorators-metadata-proposal)\n    - [Stage 2.7 proposals](#stage-27-proposals)\n      - [`Iterator` chunking](#iterator-chunking)\n    - [Stage 2 proposals](#stage-2-proposals)\n      - [`AsyncIterator` helpers](#asynciterator-helpers)\n      - [`Iterator.range`](#iteratorrange)\n      - [`Array.isTemplateObject`](#arrayistemplateobject)\n      - [`Number.prototype.clamp`](#numberprototypeclamp)\n      - [`String.dedent`](#stringdedent)\n      - [`Symbol` predicates](#symbol-predicates)\n      - [`Symbol.customMatcher` for extractors](#symbolcustommatcher-for-extractors)\n    - [Stage 1 proposals](#stage-1-proposals)\n      - [`Observable`](#observable)\n      - [New collections methods](#new-collections-methods)\n      - [`.of` and `.from` methods on collection constructors](#of-and-from-methods-on-collection-constructors)\n      - [`compositeKey` and `compositeSymbol`](#compositekey-and-compositesymbol)\n      - [`Array` filtering](#array-filtering)\n      - [`Array` deduplication](#array-deduplication)\n      - [`DataView` get / set `Uint8Clamped` methods](#dataview-get-set-iint8clamped-methods)\n      - [`Number.fromString`](#numberfromstring)\n      - [`String.cooked`](#stringcooked)\n      - [`String.prototype.codePoints`](#stringprototypecodepoints)\n      - [`Symbol.customMatcher` for pattern matching](#symbolcustommatcher-for-pattern-matching)\n    - [Stage 0 proposals](#stage-0-proposals)\n      - [`Function.prototype.demethodize`](#functionprototypedemethodize)\n      - [`Function.{ isCallable, isConstructor }`](#function-iscallable-isconstructor-)\n    - [Pre-stage 0 proposals](#pre-stage-0-proposals)\n      - [`Reflect` metadata](#reflect-metadata)\n  - [Web standards](#web-standards)\n    - [`self`](#self)\n    - [`structuredClone`](#structuredclone)\n    - [Base64 utility methods](#base64-utility-methods)\n    - [`setTimeout` and `setInterval`](#settimeout-and-setinterval)\n    - [`setImmediate`](#setimmediate)\n    - [`queueMicrotask`](#queuemicrotask)\n    - [`URL` and `URLSearchParams`](#url-and-urlsearchparams)\n    - [`DOMException`](#domexception)\n    - [iterable DOM collections](#iterable-dom-collections)\n  - [Iteration helpers](#iteration-helpers)\n- [Missing polyfills](#missing-polyfills)\n- [Contributing](./CONTRIBUTING.md)\n- [Security policy](https://github.com/zloirock/core-js/blob/master/SECURITY.md)\n- [Changelog](./CHANGELOG.md)\n\n## Usage[⬆](#index)\n### Installation:[⬆](#index)\n```sh\n// global version\nnpm install --save core-js@3.49.0\n// version without global namespace pollution\nnpm install --save core-js-pure@3.49.0\n// bundled global version\nnpm install --save core-js-bundle@3.49.0\n```\n\n### `postinstall` message[⬆](#index)\nThe `core-js` project needs your help, so the package shows a message about it after installation. If it causes problems for you, you can disable it:\n```sh\nADBLOCK=true npm install\n// or\nDISABLE_OPENCOLLECTIVE=true npm install\n// or\nnpm install --loglevel silent\n```\n\n### CommonJS API[⬆](#index)\nYou can import only-required-for-you polyfills, like in the examples at the top of `README.md`. Available CommonJS entry points for all polyfilled methods / constructors and namespaces. Just some examples:\n\n```ts\n// polyfill all `core-js` features, including early-stage proposals:\nimport \"core-js\";\n// or:\nimport \"core-js/full\";\n// polyfill all actual features - stable ES, web standards and stage 3 ES proposals:\nimport \"core-js/actual\";\n// polyfill only stable features - ES and web standards:\nimport \"core-js/stable\";\n// polyfill only stable ES features:\nimport \"core-js/es\";\n\n// if you want to polyfill `Set`:\n// all `Set`-related features, with early-stage ES proposals:\nimport \"core-js/full/set\";\n// stable required for `Set` ES features, features from web standards and stage 3 ES proposals:\nimport \"core-js/actual/set\";\n// stable required for `Set` ES features and features from web standards\n// (DOM collections iterator in this case):\nimport \"core-js/stable/set\";\n// only stable ES features required for `Set`:\nimport \"core-js/es/set\";\n// the same without global namespace pollution:\nimport Set from \"core-js-pure/full/set\";\nimport Set from \"core-js-pure/actual/set\";\nimport Set from \"core-js-pure/stable/set\";\nimport Set from \"core-js-pure/es/set\";\n\n// if you want to polyfill just the required methods:\nimport \"core-js/full/set/intersection\";\nimport \"core-js/actual/array/find-last\";\nimport \"core-js/stable/queue-microtask\";\nimport \"core-js/es/array/from\";\n\n// polyfill iterator helpers proposal:\nimport \"core-js/proposals/iterator-helpers\";\n// polyfill all stage 2+ proposals:\nimport \"core-js/stage/2\";\n```\n\n> [!TIP]\n> The usage of the `/actual/` namespace is recommended since it includes all actual JavaScript features and does not include unstable early-stage proposals that are available mainly for experiments.\n\n> [!WARNING]\n> - The `modules` path is an internal API, does not inject all required dependencies and can be changed in minor or patch releases. Use it only for a custom build and/or if you know what are you doing.\n> - If you use `core-js` with the extension of native objects, recommended to load all `core-js` modules at the top of the entry point of your application, otherwise, you can have conflicts.\n>   - For example, Google Maps use their own `Symbol.iterator`, conflicting with `Array.from`, `URLSearchParams` and / or something else from `core-js`, see [related issues](https://github.com/zloirock/core-js/search?q=Google+Maps&type=Issues).\n>   - Such conflicts are also resolvable by discovering and manually adding each conflicting entry from `core-js`.\n> - `core-js` is extremely modular and uses a lot of very tiny modules, because of that for usage in browsers bundle up `core-js` instead of a usage loader for each file, otherwise, you will have hundreds of requests.\n\n#### CommonJS and prototype methods without global namespace pollution[⬆](#index)\nIn the `pure` version, we can't pollute prototypes of native constructors. Because of that, prototype methods transformed into static methods like in examples above. But with transpilers, we can use one more trick - [bind operator and virtual methods](https://github.com/tc39/proposal-bind-operator). Special for that, available `/virtual/` entry points. Example:\n```ts\nimport fill from 'core-js-pure/actual/array/virtual/fill';\nimport findIndex from 'core-js-pure/actual/array/virtual/find-index';\n\nArray(10)::fill(0).map((a, b) => b * b)::findIndex(it => it && !(it % 8)); // => 4\n```\n\n> [!WARNING]\n> The bind operator is an early-stage ECMAScript proposal and usage of this syntax can be dangerous.\n\n### Babel[⬆](#index)\n\n`core-js` is integrated with `babel` and is the base for polyfilling-related `babel` features:\n\n#### `@babel/polyfill`[⬆](#index)\n\n[`@babel/polyfill`](https://babeljs.io/docs/usage/polyfill) [**IS** just the import of stable `core-js` features and `regenerator-runtime`](https://github.com/babel/babel/blob/c8bb4500326700e7dc68ce8c4b90b6482c48d82f/packages/babel-polyfill/src/index.js) for generators and async functions, so loading `@babel/polyfill` means loading the global version of `core-js` without ES proposals.\n\nNow it's deprecated in favor of separate inclusion of required parts of `core-js` and `regenerator-runtime` and, for backward compatibility, `@babel/polyfill` is still based on `core-js@2`.\n\nAs a full equal of `@babel/polyfill`, you can use the following:\n```js\nimport 'core-js/stable';\nimport 'regenerator-runtime/runtime';\n```\n\n#### `@babel/preset-env`[⬆](#index)\n\n[`@babel/preset-env`](https://github.com/babel/babel/tree/master/packages/babel-preset-env) has `useBuiltIns` option, which optimizes the use of the global version of `core-js`. With `useBuiltIns` option, you should also set `corejs` option to the used version of `core-js`, like `corejs: '3.49'`.\n\n> [!IMPORTANT]\n> It is recommended to specify the used minor `core-js` version, like `corejs: '3.49'`, instead of `corejs: 3`, since with `corejs: 3` will not be injected modules which were added in minor `core-js` releases.\n\n---\n\n- `useBuiltIns: 'entry'` replaces imports of `core-js` to import only required for a target environment modules. So, for example,\n```js\nimport 'core-js/stable';\n```\nwith `chrome 71` target will be replaced just to:\n```js\nimport 'core-js/modules/es.array.unscopables.flat';\nimport 'core-js/modules/es.array.unscopables.flat-map';\nimport 'core-js/modules/es.object.from-entries';\nimport 'core-js/modules/web.immediate';\n```\nIt works for all entry points of global version of `core-js` and their combinations, for example for\n```js\nimport 'core-js/es';\nimport 'core-js/proposals/set-methods';\nimport 'core-js/full/set/map';\n```\nwith `chrome 71` target you will have as the result:\n```js\nimport 'core-js/modules/es.array.unscopables.flat';\nimport 'core-js/modules/es.array.unscopables.flat-map';\nimport 'core-js/modules/es.object.from-entries';\nimport 'core-js/modules/esnext.set.difference';\nimport 'core-js/modules/esnext.set.intersection';\nimport 'core-js/modules/esnext.set.is-disjoint-from';\nimport 'core-js/modules/esnext.set.is-subset-of';\nimport 'core-js/modules/esnext.set.is-superset-of';\nimport 'core-js/modules/esnext.set.map';\nimport 'core-js/modules/esnext.set.symmetric-difference';\nimport 'core-js/modules/esnext.set.union';\n```\n\n- `useBuiltIns: 'usage'` adds to the top of each file import of polyfills for features used in this file and not supported by target environments, so for:\n```js\n// first file:\nlet set = new Set([1, 2, 3]);\n```\n```js\n// second file:\nlet array = Array.of(1, 2, 3);\n```\nif the target contains an old environment like `IE 11` we will have something like:\n```js\n// first file:\nimport 'core-js/modules/es.array.iterator';\nimport 'core-js/modules/es.object.to-string';\nimport 'core-js/modules/es.set';\n\nvar set = new Set([1, 2, 3]);\n```\n```js\n// second file:\nimport 'core-js/modules/es.array.of';\n\nvar array = Array.of(1, 2, 3);\n```\n\nBy default, `@babel/preset-env` with `useBuiltIns: 'usage'` option only polyfills stable features, but you can enable polyfilling of proposals by the `proposals` option, as `corejs: { version: '3.49', proposals: true }`.\n\n> [!IMPORTANT]\n> In the case of `useBuiltIns: 'usage'`, you should not add `core-js` imports by yourself, they will be added automatically.\n\n#### `@babel/runtime`[⬆](#index)\n\n[`@babel/runtime`](https://babeljs.io/docs/plugins/transform-runtime/) with `corejs: 3` option simplifies work with the `core-js-pure`. It automatically replaces the usage of modern features from the JS standard library to imports from the version of `core-js` without global namespace pollution, so instead of:\n```js\nimport from from 'core-js-pure/stable/array/from';\nimport flat from 'core-js-pure/stable/array/flat';\nimport Set from 'core-js-pure/stable/set';\nimport Promise from 'core-js-pure/stable/promise';\n\nfrom(new Set([1, 2, 3, 2, 1]));\nflat([1, [2, 3], [4, [5]]], 2);\nPromise.resolve(32).then(x => console.log(x));\n```\nyou can write just:\n```js\nArray.from(new Set([1, 2, 3, 2, 1]));\n[1, [2, 3], [4, [5]]].flat(2);\nPromise.resolve(32).then(x => console.log(x));\n```\n\nBy default, `@babel/runtime` only polyfills stable features, but like in `@babel/preset-env`, you can enable polyfilling of proposals by `proposals` option, as `corejs: { version: 3, proposals: true }`.\n\n> [!WARNING]\n> If you use `@babel/preset-env` and `@babel/runtime` together, use `corejs` option only in one place since it's duplicate functionality and will cause conflicts.\n\n### swc[⬆](#index)\n\nFast JavaScript transpiler `swc` [contains integration with `core-js`](https://swc.rs/docs/configuration/supported-browsers), that optimizes work with the global version of `core-js`. [Like `@babel/preset-env`](#babelpreset-env), it has 2 modes: `usage` and `entry`, but `usage` mode still works not so well as in `babel`. Example of configuration in `.swcrc`:\n```json\n{\n  \"env\": {\n    \"targets\": \"> 0.25%, not dead\",\n    \"mode\": \"entry\",\n    \"coreJs\": \"3.49\"\n  }\n}\n```\n\n### Configurable level of aggressiveness[⬆](#index)\n\nBy default, `core-js` sets polyfills only when they are required. That means that `core-js` checks if a feature is available and works correctly or not and if it has no problems, `core-js` uses native implementation.\n\nBut sometimes `core-js` feature detection could be too strict for your case. For example, `Promise` constructor requires the support of unhandled rejection tracking and `@@species`.\n\nSometimes we could have an inverse problem - a knowingly broken environment with problems not covered by `core-js` feature detection.\n\nFor those cases, we could redefine this behavior for certain polyfills:\n\n```js\nconst configurator = require('core-js/configurator');\n\nconfigurator({\n  useNative: ['Promise'],                                 // polyfills will be used only if natives are completely unavailable\n  usePolyfill: ['Array.from', 'String.prototype.padEnd'], // polyfills will be used anyway\n  useFeatureDetection: ['Map', 'Set'],                    // default behavior\n});\n\nrequire('core-js/actual');\n```\n\nIt does not work with some features. Also, if you change the default behavior, even `core-js` internals may not work correctly.\n\n### Custom build[⬆](#index)\n\nFor some cases could be useful to exclude some `core-js` features or generate a polyfill for target engines. You could use [`core-js-builder`](/packages/core-js-builder) package for that.\n\n## Supported engines and compatibility data[⬆](#index)\n\n`core-js` tries to support all possible JS engines and environments with ES3 support. Some features have a higher lower bar - for example, *some* accessors can properly work only from ES5, promises require a way to set a microtask or a task, etc.\n\nHowever, I have no possibility to test `core-js` absolutely everywhere - for example, testing in IE7- and some other ancient was stopped. The list of definitely supported engines you can see in the compatibility table by the link below. [Write](https://github.com/zloirock/core-js/issues) if you have issues or questions with the support of any engine.\n\n`core-js` project provides (as [`core-js-compat`](/packages/core-js-compat) package) all required data about the necessity of `core-js` modules, entry points, and tools for work with it - it's useful for integration with tools like `babel` or `swc`. If you wanna help, you could take a look at the related section of [`CONTRIBUTING.md`](/CONTRIBUTING.md#how-to-update-core-js-compat-data). The visualization of compatibility data and the browser tests runner is available [here](http://zloirock.github.io/core-js/master/compat/), the example:\n\n![compat-table](https://user-images.githubusercontent.com/2213682/217452234-ccdcfc5a-c7d3-40d1-ab3f-86902315b8c3.png)\n\n## Features:[⬆](#index)\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)\n```\n\n### ECMAScript[⬆](#index)\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es\n```\n#### ECMAScript: Object[⬆](#index)\nModules [`es.object.assign`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.assign.js), [`es.object.create`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.create.js), [`es.object.define-getter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-getter.js), [`es.object.define-property`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-property.js), [`es.object.define-properties`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-properties.js), [`es.object.define-setter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-setter.js), [`es.object.entries`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.entries.js), [`es.object.freeze`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.freeze.js), [`es.object.from-entries`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.from-entries.js), [`es.object.get-own-property-descriptor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-descriptor.js), [`es.object.get-own-property-descriptors`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-descriptors.js), [`es.object.get-own-property-names`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-names.js), [`es.object.get-prototype-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-prototype-of.js), [`es.object.group-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.group-by.js), [`es.object.has-own`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.has-own.js), [`es.object.is`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is.js), [`es.object.is-extensible`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is-extensible.js), [`es.object.is-frozen`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is-frozen.js), [`es.object.is-sealed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is-sealed.js), [`es.object.keys`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.keys.js), [`es.object.lookup-setter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.lookup-setter.js), [`es.object.lookup-getter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.lookup-getter.js), [`es.object.prevent-extensions`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.prevent-extensions.js), [`es.object.proto`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.proto.js), [`es.object.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.to-string.js), [`es.object.seal`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.seal.js), [`es.object.set-prototype-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.set-prototype-of.js), [`es.object.values`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.values.js).\n\n```ts\nclass Object {\n  toString(): string; // ES2015+ fix: @@toStringTag support\n  __defineGetter__(property: PropertyKey, getter: Function): void;\n  __defineSetter__(property: PropertyKey, setter: Function): void;\n  __lookupGetter__(property: PropertyKey): Function | void;\n  __lookupSetter__(property: PropertyKey): Function | void;\n  __proto__: Object | null; // required a way setting of prototype - will not in IE10-, it's for modern engines like Deno\n  static assign(target: Object, ...sources: Array<Object>): Object;\n  static create(prototype: Object | null, properties?: { [property: PropertyKey]: PropertyDescriptor }): Object;\n  static defineProperties(object: Object, properties: { [property: PropertyKey]: PropertyDescriptor })): Object;\n  static defineProperty(object: Object, property: PropertyKey, attributes: PropertyDescriptor): Object;\n  static entries(object: Object): Array<[string, mixed]>;\n  static freeze(object: any): any;\n  static fromEntries(iterable: Iterable<[key, value]>): Object;\n  static getOwnPropertyDescriptor(object: any, property: PropertyKey): PropertyDescriptor | void;\n  static getOwnPropertyDescriptors(object: any): { [property: PropertyKey]: PropertyDescriptor };\n  static getOwnPropertyNames(object: any): Array<string>;\n  static getPrototypeOf(object: any): Object | null;\n  static groupBy(items: Iterable, callbackfn: (value: any, index: number) => key): { [key]: Array<mixed> };\n  static hasOwn(object: object, key: PropertyKey): boolean;\n  static is(value1: any, value2: any): boolean;\n  static isExtensible(object: any): boolean;\n  static isFrozen(object: any): boolean;\n  static isSealed(object: any): boolean;\n  static keys(object: any): Array<string>;\n  static preventExtensions(object: any): any;\n  static seal(object: any): any;\n  static setPrototypeOf(target: any, prototype: Object | null): any; // required __proto__ - IE11+\n  static values(object: any): Array<mixed>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/object\ncore-js(-pure)/es|stable|actual|full/object/assign\ncore-js(-pure)/es|stable|actual|full/object/is\ncore-js(-pure)/es|stable|actual|full/object/set-prototype-of\ncore-js(-pure)/es|stable|actual|full/object/get-prototype-of\ncore-js(-pure)/es|stable|actual|full/object/create\ncore-js(-pure)/es|stable|actual|full/object/define-property\ncore-js(-pure)/es|stable|actual|full/object/define-properties\ncore-js(-pure)/es|stable|actual|full/object/get-own-property-descriptor\ncore-js(-pure)/es|stable|actual|full/object/get-own-property-descriptors\ncore-js(-pure)/es|stable|actual|full/object/group-by\ncore-js(-pure)/es|stable|actual|full/object/has-own\ncore-js(-pure)/es|stable|actual|full/object/keys\ncore-js(-pure)/es|stable|actual|full/object/values\ncore-js(-pure)/es|stable|actual|full/object/entries\ncore-js(-pure)/es|stable|actual|full/object/get-own-property-names\ncore-js(-pure)/es|stable|actual|full/object/freeze\ncore-js(-pure)/es|stable|actual|full/object/from-entries\ncore-js(-pure)/es|stable|actual|full/object/seal\ncore-js(-pure)/es|stable|actual|full/object/prevent-extensions\ncore-js/es|stable|actual|full/object/proto\ncore-js(-pure)/es|stable|actual|full/object/is-frozen\ncore-js(-pure)/es|stable|actual|full/object/is-sealed\ncore-js(-pure)/es|stable|actual|full/object/is-extensible\ncore-js/es|stable|actual|full/object/to-string\ncore-js(-pure)/es|stable|actual|full/object/define-getter\ncore-js(-pure)/es|stable|actual|full/object/define-setter\ncore-js(-pure)/es|stable|actual|full/object/lookup-getter\ncore-js(-pure)/es|stable|actual|full/object/lookup-setter\n```\n*Examples*:\n```js\nlet foo = { q: 1, w: 2 };\nlet bar = { e: 3, r: 4 };\nlet baz = { t: 5, y: 6 };\nObject.assign(foo, bar, baz); // => foo = { q: 1, w: 2, e: 3, r: 4, t: 5, y: 6 }\n\nObject.is(NaN, NaN); // => true\nObject.is(0, -0);    // => false\nObject.is(42, 42);   // => true\nObject.is(42, '42'); // => false\n\nfunction Parent() { /* empty */ }\nfunction Child() { /* empty */ }\nObject.setPrototypeOf(Child.prototype, Parent.prototype);\nnew Child() instanceof Child;  // => true\nnew Child() instanceof Parent; // => true\n\n({\n  [Symbol.toStringTag]: 'Foo',\n}).toString(); // => '[object Foo]'\n\nObject.keys('qwe'); // => ['0', '1', '2']\nObject.getPrototypeOf('qwe') === String.prototype; // => true\n\nObject.values({ a: 1, b: 2, c: 3 });  // => [1, 2, 3]\nObject.entries({ a: 1, b: 2, c: 3 }); // => [['a', 1], ['b', 2], ['c', 3]]\n\nfor (let [key, value] of Object.entries({ a: 1, b: 2, c: 3 })) {\n  console.log(key);   // => 'a', 'b', 'c'\n  console.log(value); // => 1, 2, 3\n}\n\n// Shallow object cloning with prototype and descriptors:\nlet copy = Object.create(Object.getPrototypeOf(object), Object.getOwnPropertyDescriptors(object));\n// Mixin:\nObject.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n\nconst map = new Map([['a', 1], ['b', 2]]);\nObject.fromEntries(map); // => { a: 1, b: 2 }\n\nclass Unit {\n  constructor(id) {\n    this.id = id;\n  }\n  toString() {\n    return `unit${ this.id }`;\n  }\n}\n\nconst units = new Set([new Unit(101), new Unit(102)]);\n\nObject.fromEntries(units.entries()); // => { unit101: Unit { id: 101 }, unit102: Unit { id: 102 } }\n\nObject.hasOwn({ foo: 42 }, 'foo'); // => true\nObject.hasOwn({ foo: 42 }, 'bar'); // => false\nObject.hasOwn({}, 'toString');     // => false\n\nObject.groupBy([1, 2, 3, 4, 5], it => it % 2); // => { 1: [1, 3, 5], 0: [2, 4] }\n```\n\n#### ECMAScript: Function[⬆](#index)\nModules [`es.function.name`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.function.name.js), [`es.function.has-instance`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.function.has-instance.js). Just ES5: [`es.function.bind`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.function.bind.js).\n```ts\nclass Function {\n  name: string;\n  bind(thisArg: any, ...args: Array<mixed>): Function;\n  @@hasInstance(value: any): boolean;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/es|stable|actual|full/function\ncore-js/es|stable|actual|full/function/name\ncore-js/es|stable|actual|full/function/has-instance\ncore-js(-pure)/es|stable|actual|full/function/bind\ncore-js(-pure)/es|stable|actual|full/function/virtual/bind\n```\n[*Example*](https://tinyurl.com/22na9nbm):\n```js\n(function foo() { /* empty */ }).name; // => 'foo'\n\nconsole.log.bind(console, 42)(43); // => 42 43\n```\n\n#### ECMAScript: Error[⬆](#index)\nModules [`es.aggregate-error`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.aggregate-error.js), [`es.aggregate-error.cause`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.aggregate-error.cause.js), [`es.error.cause`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.error.cause.js), [`es.error.is-error`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.error.is-error.js), [`es.suppressed-error.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.suppressed-error.constructor.js), [`es.error.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.error.to-string.js).\n```ts\nclass Error {\n  static isError(value: any): boolean;\n  constructor(message: string, { cause: any }): %Error%;\n  toString(): string; // different fixes\n}\n\nclass [\n  EvalError,\n  RangeError,\n  ReferenceError,\n  SyntaxError,\n  TypeError,\n  URIError,\n  WebAssembly.CompileError,\n  WebAssembly.LinkError,\n  WebAssembly.RuntimeError,\n] extends Error {\n  constructor(message: string, { cause: any }): %Error%;\n}\n\nclass AggregateError extends Error {\n  constructor(errors: Iterable, message?: string, { cause: any }?): AggregateError;\n  errors: Array<any>;\n  message: string;\n  cause: any;\n}\n\nclass SuppressedError extends Error {\n  constructor(error: any, suppressed: any, message?: string): SuppressedError;\n  error: any;\n  suppressed: any;\n  message: string;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/es|stable|actual|full/error\ncore-js/es|stable|actual|full/error/constructor\ncore-js(-pure)/es|stable|actual|full/error/is-error\ncore-js/es|stable|actual|full/error/to-string\ncore-js(-pure)/es|stable|actual|full/aggregate-error\ncore-js(-pure)/es|stable|actual|full/suppressed-error\n```\n[*Example*](https://is.gd/1SufcH):\n```js\nconst error1 = new TypeError('Error 1');\nconst error2 = new TypeError('Error 2');\nconst aggregate = new AggregateError([error1, error2], 'Collected errors');\naggregate.errors[0] === error1; // => true\naggregate.errors[1] === error2; // => true\n\nconst cause = new TypeError('Something wrong');\nconst error = new TypeError('Here explained what`s wrong', { cause });\nerror.cause === cause; // => true\n\nError.prototype.toString.call({ message: 1, name: 2 }) === '2: 1'; // => true\n```\n\n[*Example*](https://tinyurl.com/23nauwoz):\n```js\nError.isError(new Error('error')); // => true\nError.isError(new TypeError('error')); // => true\nError.isError(new DOMException('error')); // => true\n\nError.isError(null); // => false\nError.isError({}); // => false\nError.isError(Object.create(Error.prototype)); // => false\n```\n\n> [!WARNING]\n> We have no bulletproof way to polyfill this `Error.isError` / check if the object is an error, so it's an enough naive implementation.\n\n#### ECMAScript: Array[⬆](#index)\nModules [`es.array.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.from.js), [`es.array.from-async`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.from-async.js), [`es.array.is-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.is-array.js), [`es.array.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.of.js), [`es.array.copy-within`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.copy-within.js), [`es.array.fill`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.fill.js), [`es.array.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find.js), [`es.array.find-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find-index.js), [`es.array.find-last`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find-last.js), [`es.array.find-last-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find-last-index.js), [`es.array.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.iterator.js), [`es.array.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.includes.js), [`es.array.push`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.push.js), [`es.array.slice`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.slice.js), [`es.array.join`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.join.js), [`es.array.unshift`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.unshift.js), [`es.array.index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.index-of.js), [`es.array.last-index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.last-index-of.js), [`es.array.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.every.js), [`es.array.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.some.js), [`es.array.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.for-each.js), [`es.array.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.map.js), [`es.array.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.filter.js), [`es.array.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.reduce.js), [`es.array.reduce-right`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.reduce-right.js), [`es.array.reverse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.reverse.js), [`es.array.sort`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.sort.js), [`es.array.flat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.flat.js), [`es.array.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.flat-map.js), [`es.array.unscopables.flat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.unscopables.flat.js), [`es.array.unscopables.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.unscopables.flat-map.js), [`es.array.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.at.js), [`es.array.to-reversed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.to-reversed.js), [`es.array.to-sorted`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.to-sorted.js), [`es.array.to-spliced`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.to-spliced.js), [`es.array.with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.with.js).\n```ts\nclass Array {\n  at(index: int): any;\n  concat(...args: Array<mixed>): Array<mixed>; // with adding support of @@isConcatSpreadable and @@species\n  copyWithin(target: number, start: number, end?: number): this;\n  entries(): Iterator<[index, value]>;\n  every(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): boolean;\n  fill(value: any, start?: number, end?: number): this;\n  filter(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): Array<mixed>; // with adding support of @@species\n  find(callbackfn: (value: any, index: number, target: any) => boolean), thisArg?: any): any;\n  findIndex(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): uint;\n  findLast(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): any;\n  findLastIndex(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): uint;\n  flat(depthArg?: number = 1): Array<mixed>;\n  flatMap(mapFn: (value: any, index: number, target: any) => any, thisArg: any): Array<mixed>;\n  forEach(callbackfn: (value: any, index: number, target: any) => void, thisArg?: any): void;\n  includes(searchElement: any, from?: number): boolean;\n  indexOf(searchElement: any, from?: number): number;\n  join(separator: string = ','): string;\n  keys(): Iterator<index>;\n  lastIndexOf(searchElement: any, from?: number): number;\n  map(mapFn: (value: any, index: number, target: any) => any, thisArg?: any): Array<mixed>; // with adding support of @@species\n  push(...args: Array<mixed>): uint;\n  reduce(callbackfn: (memo: any, value: any, index: number, target: any) => any, initialValue?: any): any;\n  reduceRight(callbackfn: (memo: any, value: any, index: number, target: any) => any, initialValue?: any): any;\n  reverse(): this; // Safari 12.0 bug fix\n  slice(start?: number, end?: number): Array<mixed>; // with adding support of @@species\n  splice(start?: number, deleteCount?: number, ...items: Array<mixed>): Array<mixed>; // with adding support of @@species\n  some(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): boolean;\n  sort(comparefn?: (a: any, b: any) => number): this; // with modern behavior like stable sort\n  toReversed(): Array<mixed>;\n  toSpliced(start?: number, deleteCount?: number, ...items: Array<mixed>): Array<mixed>;\n  toSorted(comparefn?: (a: any, b: any) => number): Array<mixed>;\n  unshift(...args: Array<mixed>): uint;\n  values(): Iterator<value>;\n  with(index: includes, value: any): Array<mixed>;\n  @@iterator(): Iterator<value>;\n  @@unscopables: { [newMethodNames: string]: true };\n  static from(items: Iterable | ArrayLike, mapFn?: (value: any, index: number) => any, thisArg?: any): Array<mixed>;\n  static fromAsync(asyncItems: AsyncIterable | Iterable | ArrayLike, mapfn?: (value: any, index: number) => any, thisArg?: any): Array;\n  static isArray(value: any): boolean;\n  static of(...args: Array<mixed>): Array<mixed>;\n}\n\nclass Arguments {\n  @@iterator(): Iterator<value>; // available only in core-js methods\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/array\ncore-js(-pure)/es|stable|actual|full/array/from\ncore-js(-pure)/es|stable|actual|full/array/from-async\ncore-js(-pure)/es|stable|actual|full/array/of\ncore-js(-pure)/es|stable|actual|full/array/is-array\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/at\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/concat\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/copy-within\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/entries\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/every\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/fill\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/filter\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/find\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/find-index\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/find-last\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/find-last-index\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/flat\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/flat-map\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/for-each\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/includes\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/index-of\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/iterator\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/join\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/keys\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/last-index-of\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/map\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/push\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/reduce\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/reduce-right\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/reverse\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/slice\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/some\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/sort\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/splice\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/to-reversed\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/to-sorted\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/to-spliced\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/unshift\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/values\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/with\n```\n[*Examples*](https://tinyurl.com/2oaa8x2x):\n```js\nArray.from(new Set([1, 2, 3, 2, 1]));        // => [1, 2, 3]\nArray.from({ 0: 1, 1: 2, 2: 3, length: 3 }); // => [1, 2, 3]\nArray.from('123', Number);                   // => [1, 2, 3]\nArray.from('123', it => it ** 2);            // => [1, 4, 9]\n\nArray.of(1);       // => [1]\nArray.of(1, 2, 3); // => [1, 2, 3]\n\nlet array = ['a', 'b', 'c'];\n\nfor (let value of array) console.log(value);          // => 'a', 'b', 'c'\nfor (let value of array.values()) console.log(value); // => 'a', 'b', 'c'\nfor (let key of array.keys()) console.log(key);       // => 0, 1, 2\nfor (let [key, value] of array.entries()) {\n  console.log(key);                                   // => 0, 1, 2\n  console.log(value);                                 // => 'a', 'b', 'c'\n}\n\nfunction isOdd(value) {\n  return value % 2;\n}\n[4, 8, 15, 16, 23, 42].find(isOdd);      // => 15\n[4, 8, 15, 16, 23, 42].findIndex(isOdd); // => 2\n[1, 2, 3, 4].findLast(isOdd);            // => 3\n[1, 2, 3, 4].findLastIndex(isOdd);       // => 2\n\nArray(5).fill(42); // => [42, 42, 42, 42, 42]\n\n[1, 2, 3, 4, 5].copyWithin(0, 3); // => [4, 5, 3, 4, 5]\n\n[1, 2, 3].includes(2);        // => true\n[1, 2, 3].includes(4);        // => false\n[1, 2, 3].includes(2, 2);     // => false\n\n[NaN].indexOf(NaN);           // => -1\n[NaN].includes(NaN);          // => true\nArray(1).indexOf(undefined);  // => -1\nArray(1).includes(undefined); // => true\n\n[1, [2, 3], [4, 5]].flat();    // => [1, 2, 3, 4, 5]\n[1, [2, [3, [4]]], 5].flat();  // => [1, 2, [3, [4]], 5]\n[1, [2, [3, [4]]], 5].flat(3); // => [1, 2, 3, 4, 5]\n\n[{ a: 1, b: 2 }, { a: 3, b: 4 }, { a: 5, b: 6 }].flatMap(it => [it.a, it.b]); // => [1, 2, 3, 4, 5, 6]\n\n[1, 2, 3].at(1);  // => 2\n[1, 2, 3].at(-1); // => 3\n\nconst sequence = [1, 2, 3];\nsequence.toReversed(); // => [3, 2, 1]\nsequence; // => [1, 2, 3]\n\nconst initialArray = [1, 2, 3, 4];\ninitialArray.toSpliced(1, 2, 5, 6, 7); // => [1, 5, 6, 7, 4]\ninitialArray; // => [1, 2, 3, 4]\n\nconst outOfOrder = [3, 1, 2];\noutOfOrder.toSorted(); // => [1, 2, 3]\noutOfOrder; // => [3, 1, 2]\n\nconst correctionNeeded = [1, 1, 3];\ncorrectionNeeded.with(1, 2); // => [1, 2, 3]\ncorrectionNeeded; // => [1, 1, 3]\n```\n\n[*`Array.fromAsync` example*](https://tinyurl.com/2bt9bhwn):\n```js\nawait Array.fromAsync((async function * () { yield * [1, 2, 3]; })(), i => i ** 2); // => [1, 4, 9]\n```\n\n#### ECMAScript: Iterator[⬆](#index)\nModules [`es.iterator.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.constructor.js), [`es.iterator.concat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.concat.js), [`es.iterator.dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.dispose.js), [`es.iterator.drop`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.drop.js), [`es.iterator.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.every.js), [`es.iterator.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.filter.js), [`es.iterator.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.find.js), [`es.iterator.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.flat-map.js), [`es.iterator.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.for-each.js), [`es.iterator.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.from.js), [`es.iterator.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.map.js), [`es.iterator.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.reduce.js), [`es.iterator.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.some.js), [`es.iterator.take`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.take.js), [`es.iterator.to-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.to-array.js)\n```ts\nclass Iterator {\n  static concat(...items: Array<IterableObject>): Iterator<any>;\n  static from(iterable: Iterable<any> | Iterator<any>): Iterator<any>;\n  drop(limit: uint): Iterator<any>;\n  every(callbackfn: (value: any, counter: uint) => boolean): boolean;\n  filter(callbackfn: (value: any, counter: uint) => boolean): Iterator<any>;\n  find(callbackfn: (value: any, counter: uint) => boolean)): any;\n  flatMap(callbackfn: (value: any, counter: uint) => Iterable<any> | Iterator<any>): Iterator<any>;\n  forEach(callbackfn: (value: any, counter: uint) => void): void;\n  map(callbackfn: (value: any, counter: uint) => any): Iterator<any>;\n  reduce(callbackfn: (memo: any, value: any, counter: uint) => any, initialValue: any): any;\n  some(callbackfn: (value: any, counter: uint) => boolean): boolean;\n  take(limit: uint): Iterator<any>;\n  toArray(): Array<any>;\n  @@dispose(): undefined;\n  @@toStringTag: 'Iterator'\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/iterator\ncore-js(-pure)/es|stable|actual|full/iterator/concat\ncore-js(-pure)/es|stable|actual|full/iterator/dispose\ncore-js(-pure)/es|stable|actual|full/iterator/drop\ncore-js(-pure)/es|stable|actual|full/iterator/every\ncore-js(-pure)/es|stable|actual|full/iterator/filter\ncore-js(-pure)/es|stable|actual|full/iterator/find\ncore-js(-pure)/es|stable|actual|full/iterator/flat-map\ncore-js(-pure)/es|stable|actual|full/iterator/for-each\ncore-js(-pure)/es|stable|actual|full/iterator/from\ncore-js(-pure)/es|stable|actual|full/iterator/map\ncore-js(-pure)/es|stable|actual|full/iterator/reduce\ncore-js(-pure)/es|stable|actual|full/iterator/some\ncore-js(-pure)/es|stable|actual|full/iterator/take\ncore-js(-pure)/es|stable|actual|full/iterator/to-array\n```\n[Examples](https://tinyurl.com/24af2z7v):\n```js\n[1, 2, 3, 4, 5, 6, 7].values()\n  .drop(1)\n  .take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nIterator.from({\n  next: () => ({ done: Math.random() > 0.9, value: Math.random() * 10 | 0 }),\n}).toArray(); // => [7, 6, 3, 0, 2, 8]\n\nIterator.concat([0, 1].values(), [2, 3], function * () {\n  yield 4;\n  yield 5;\n}()).toArray(); // => [0, 1, 2, 3, 4, 5]\n```\n\n> [!WARNING]\n> - For preventing prototype pollution, in the `pure` version, new `%IteratorPrototype%` methods are not added to the real `%IteratorPrototype%`, they are available only on wrappers - instead of `[].values().map(fn)` use `Iterator.from([]).map(fn)`.\n\n#### ECMAScript: String and RegExp[⬆](#index)\nThe main part of `String` features: modules [`es.string.from-code-point`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.from-code-point.js), [`es.string.raw`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.raw.js), [`es.string.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.iterator.js), [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js), [`es.string.code-point-at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.code-point-at.js), [`es.string.ends-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.ends-with.js), [`es.string.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.includes.js), [`es.string.repeat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.repeat.js), [`es.string.pad-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-start.js), [`es.string.pad-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-end.js), [`es.string.starts-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.starts-with.js), [`es.string.trim`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim.js), [`es.string.trim-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-start.js), [`es.string.trim-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-end.js), [`es.string.match-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match-all.js), [`es.string.replace-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace-all.js), [`es.string.at-alternative`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.at-alternative.js), [`es.string.is-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.is-well-formed.js), [`es.string.to-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.to-well-formed.js).\n\nAdding support of well-known [symbols](#ecmascript-symbol) `@@match`, `@@replace`, `@@search` and `@@split` and direct `.exec` calls to related `String` methods, modules [`es.string.match`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match.js), [`es.string.replace`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace.js), [`es.string.search`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.search.js) and [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js).\n\nAnnex B methods. Modules [`es.string.anchor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.anchor.js), [`es.string.big`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.big.js), [`es.string.blink`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.blink.js), [`es.string.bold`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.bold.js), [`es.string.fixed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.fixed.js), [`es.string.fontcolor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.fontcolor.js), [`es.string.fontsize`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.fontsize.js), [`es.string.italics`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.italics.js), [`es.string.link`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.link.js), [`es.string.small`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.small.js), [`es.string.strike`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.strike.js), [`es.string.sub`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.sub.js), [`es.string.sup`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.sup.js), [`es.string.substr`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.substr.js), [`es.escape`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.escape.js) and [`es.unescape`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.unescape.js).\n\n`RegExp` features: modules [`es.regexp.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.regexp.constructor.js), [`es.regexp.escape`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.regexp.escape.js), [`es.regexp.dot-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.regexp.dot-all.js), [`es.regexp.flags`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.regexp.flags.js), [`es.regexp.sticky`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.regexp.sticky.js) and [`es.regexp.test`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.regexp.test.js).\n```ts\nclass String {\n  static fromCodePoint(...codePoints: Array<number>): string;\n  static raw({ raw: Array<string> }, ...substitutions: Array<string>): string;\n  at(index: int): string;\n  includes(searchString: string, position?: number): boolean;\n  startsWith(searchString: string, position?: number): boolean;\n  endsWith(searchString: string, position?: number): boolean;\n  repeat(count: number): string;\n  padStart(length: number, fillStr?: string = ' '): string;\n  padEnd(length: number, fillStr?: string = ' '): string;\n  codePointAt(pos: number): number | void;\n  match(template: any): any; // ES2015+ fix for support @@match\n  matchAll(regexp: RegExp): Iterator;\n  replace(template: any, replacer: any): any; // ES2015+ fix for support @@replace\n  replaceAll(searchValue: string | RegExp, replaceString: string | (searchValue, index, this) => string): string;\n  search(template: any): any; // ES2015+ fix for support @@search\n  split(template: any, limit?: int): Array<string>;; // ES2015+ fix for support @@split, some fixes for old engines\n  trim(): string;\n  trimLeft(): string;\n  trimRight(): string;\n  trimStart(): string;\n  trimEnd(): string;\n  isWellFormed(): boolean;\n  toWellFormed(): string;\n  anchor(name: string): string;\n  big(): string;\n  blink(): string;\n  bold(): string;\n  fixed(): string;\n  fontcolor(color: string): string;\n  fontsize(size: any): string;\n  italics(): string;\n  link(url: string): string;\n  small(): string;\n  strike(): string;\n  sub(): string;\n  substr(start: int, length?: int): string;\n  sup(): string;\n  @@iterator(): Iterator<characters>;\n}\n\nclass RegExp {\n  // support of sticky (`y`) flag, dotAll (`s`) flag, named capture groups, can alter flags\n  constructor(pattern: RegExp | string, flags?: string): RegExp;\n  static escape(value: string): string\n  exec(): Array<string | undefined> | null; // IE8 fixes\n  test(string: string): boolean; // delegation to `.exec`\n  toString(): string; // ES2015+ fix - generic\n  @@match(string: string): Array | null;\n  @@matchAll(string: string): Iterator;\n  @@replace(string: string, replaceValue: Function | string): string;\n  @@search(string: string): number;\n  @@split(string: string, limit: number): Array<string>;\n  readonly attribute dotAll: boolean; // IE9+\n  readonly attribute flags: string;   // IE9+\n  readonly attribute sticky: boolean; // IE9+\n}\n\nfunction escape(string: string): string;\nfunction unescape(string: string): string;\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/string\ncore-js(-pure)/es|stable|actual|full/string/from-code-point\ncore-js(-pure)/es|stable|actual|full/string/raw\ncore-js/es|stable|actual|full/string/match\ncore-js/es|stable|actual|full/string/replace\ncore-js/es|stable|actual|full/string/search\ncore-js/es|stable|actual|full/string/split\ncore-js(-pure)/es|stable|actual/string(/virtual)/at\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/code-point-at\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/ends-with\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/includes\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/starts-with\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/match-all\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/pad-start\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/pad-end\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/repeat\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/replace-all\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/trim\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/trim-start\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/trim-end\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/trim-left\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/trim-right\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/is-well-formed\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/to-well-formed\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/anchor\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/big\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/blink\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/bold\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/fixed\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/fontcolor\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/fontsize\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/italics\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/link\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/small\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/strike\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/sub\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/substr\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/sup\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/iterator\ncore-js/es|stable|actual|full/regexp\ncore-js/es|stable|actual|full/regexp/constructor\ncore-js(-pure)/es|stable|actual|full/regexp/escape\ncore-js/es|stable|actual|full/regexp/dot-all\ncore-js(-pure)/es|stable|actual|full/regexp/flags\ncore-js/es|stable|actual|full/regexp/sticky\ncore-js/es|stable|actual|full/regexp/test\ncore-js/es|stable|actual|full/regexp/to-string\ncore-js/es|stable|actual|full/escape\ncore-js/es|stable|actual|full/unescape\n```\n[*Examples*](https://tinyurl.com/22uafm3p):\n```js\nfor (let value of 'a𠮷b') {\n  console.log(value); // => 'a', '𠮷', 'b'\n}\n\n'foobarbaz'.includes('bar');      // => true\n'foobarbaz'.includes('bar', 4);   // => false\n'foobarbaz'.startsWith('foo');    // => true\n'foobarbaz'.startsWith('bar', 3); // => true\n'foobarbaz'.endsWith('baz');      // => true\n'foobarbaz'.endsWith('bar', 6);   // => true\n\n'string'.repeat(3); // => 'stringstringstring'\n\n'hello'.padStart(10);         // => '     hello'\n'hello'.padStart(10, '1234'); // => '12341hello'\n'hello'.padEnd(10);           // => 'hello     '\n'hello'.padEnd(10, '1234');   // => 'hello12341'\n\n'𠮷'.codePointAt(0); // => 134071\nString.fromCodePoint(97, 134071, 98); // => 'a𠮷b'\n\nlet name = 'Bob';\nString.raw`Hi\\n${ name }!`;           // => 'Hi\\\\nBob!' (ES2015 template string syntax)\nString.raw({ raw: 'test' }, 0, 1, 2); // => 't0e1s2t'\n\n'foo'.bold();                      // => '<b>foo</b>'\n'bar'.anchor('a\"b');               // => '<a name=\"a&quot;b\">bar</a>'\n'baz'.link('https://example.com'); // => '<a href=\"https://example.com\">baz</a>'\n\nRegExp('.', 's').test('\\n'); // => true\nRegExp('.', 's').dotAll;     // => true\n\nRegExp('foo:(?<foo>\\\\w+),bar:(?<bar>\\\\w+)').exec('foo:abc,bar:def').groups; // => { foo: 'abc', bar: 'def' }\n\n'foo:abc,bar:def'.replace(RegExp('foo:(?<foo>\\\\w+),bar:(?<bar>\\\\w+)'), '$<bar>,$<foo>'); // => 'def,abc'\n\n// eslint-disable-next-line regexp/no-useless-flag -- example\nRegExp(/./g, 'm'); // => /./m\n\n/foo/.flags;   // => ''\n/foo/gi.flags; // => 'gi'\n\nRegExp('foo', 'y').sticky; // => true\n\nconst text = 'First line\\nSecond line';\nconst regex = RegExp('(?<index>\\\\S+) line\\\\n?', 'y');\n\nregex.exec(text).groups.index; // => 'First'\nregex.exec(text).groups.index; // => 'Second'\nregex.exec(text);    // => null\n\n'foo'.match({ [Symbol.match]: () => 1 });     // => 1\n'foo'.replace({ [Symbol.replace]: () => 2 }); // => 2\n'foo'.search({ [Symbol.search]: () => 3 });   // => 3\n'foo'.split({ [Symbol.split]: () => 4 });     // => 4\n\nRegExp.prototype.toString.call({ source: 'foo', flags: 'bar' }); // => '/foo/bar'\n\n'   hello   '.trimLeft();  // => 'hello   '\n'   hello   '.trimRight(); // => '   hello'\n'   hello   '.trimStart(); // => 'hello   '\n'   hello   '.trimEnd();   // => '   hello'\n\nfor (let { groups: { number, letter } } of '1111a2b3cccc'.matchAll(RegExp('(?<number>\\\\d)(?<letter>\\\\D)', 'g'))) {\n  console.log(number, letter); // => 1 a, 2 b, 3 c\n}\n\n'Test abc test test abc test.'.replaceAll('abc', 'foo'); // -> 'Test foo test test foo test.'\n\n'abc'.at(1);  // => 'b'\n'abc'.at(-1); // => 'c'\n\n'a💩b'.isWellFormed();      // => true\n'a\\uD83Db'.isWellFormed();  // => false\n\n'a💩b'.toWellFormed();      // => 'a💩b'\n'a\\uD83Db'.toWellFormed();  // => 'a�b'\n```\n\n[*Example*](https://tinyurl.com/ykac4qgy):\n```js\nconsole.log(RegExp.escape('10$')); // => '\\\\x310\\\\$'\nconsole.log(RegExp.escape('abcdefg_123456')); // => '\\\\x61bcdefg_123456'\nconsole.log(RegExp.escape('Привет')); // => 'Привет'\nconsole.log(RegExp.escape('(){}[]|,.?*+-^$=<>\\\\/#&!%:;@~\\'\"`'));\n// => '\\\\(\\\\)\\\\{\\\\}\\\\[\\\\]\\\\|\\\\x2c\\\\.\\\\?\\\\*\\\\+\\\\x2d\\\\^\\\\$\\\\x3d\\\\x3c\\\\x3e\\\\\\\\\\\\/\\\\x23\\\\x26\\\\x21\\\\x25\\\\x3a\\\\x3b\\\\x40\\\\x7e\\\\x27\\\\x22\\\\x60'\nconsole.log(RegExp.escape('\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF'));\n// => '\\\\\\t\\\\\\n\\\\\\v\\\\\\f\\\\\\r\\\\x20\\\\xa0\\\\u1680\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029\\\\ufeff'\nconsole.log(RegExp.escape('💩')); // => '💩'\nconsole.log(RegExp.escape('\\uD83D')); // => '\\\\ud83d'\n```\n\n#### ECMAScript: Number[⬆](#index)\nModule [`es.number.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.constructor.js). `Number` constructor support binary and octal literals, [*example*](https://tinyurl.com/2659klkj):\n```js\nNumber('0b1010101'); // => 85\nNumber('0o7654321'); // => 2054353\n```\nModules [`es.number.epsilon`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.epsilon.js), [`es.number.is-finite`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.is-finite.js), [`es.number.is-integer`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.is-integer.js), [`es.number.is-nan`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.is-nan.js), [`es.number.is-safe-integer`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.is-safe-integer.js), [`es.number.max-safe-integer`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.max-safe-integer.js), [`es.number.min-safe-integer`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.min-safe-integer.js), [`es.number.parse-float`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.parse-float.js), [`es.number.parse-int`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.parse-int.js), [`es.number.to-exponential`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.to-exponential.js), [`es.number.to-fixed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.to-fixed.js), [`es.number.to-precision`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.to-precision.js), [`es.parse-int`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.parse-int.js), [`es.parse-float`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.parse-float.js).\n```ts\nclass Number {\n  constructor(value: any): number;\n  toExponential(digits: number): string;\n  toFixed(digits: number): string;\n  toPrecision(precision: number): string;\n  static isFinite(number: any): boolean;\n  static isNaN(number: any): boolean;\n  static isInteger(number: any): boolean;\n  static isSafeInteger(number: any): boolean;\n  static parseFloat(string: string): number;\n  static parseInt(string: string, radix?: number = 10): number;\n  static EPSILON: number;\n  static MAX_SAFE_INTEGER: number;\n  static MIN_SAFE_INTEGER: number;\n}\n\nfunction parseFloat(string: string): number;\nfunction parseInt(string: string, radix?: number = 10): number;\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/number\ncore-js(-pure)/es|stable|actual|full/number/constructor\ncore-js(-pure)/es|stable|actual|full/number/is-finite\ncore-js(-pure)/es|stable|actual|full/number/is-nan\ncore-js(-pure)/es|stable|actual|full/number/is-integer\ncore-js(-pure)/es|stable|actual|full/number/is-safe-integer\ncore-js(-pure)/es|stable|actual|full/number/parse-float\ncore-js(-pure)/es|stable|actual|full/number/parse-int\ncore-js(-pure)/es|stable|actual|full/number/epsilon\ncore-js(-pure)/es|stable|actual|full/number/max-safe-integer\ncore-js(-pure)/es|stable|actual|full/number/min-safe-integer\ncore-js(-pure)/es|stable|actual|full/number(/virtual)/to-exponential\ncore-js(-pure)/es|stable|actual|full/number(/virtual)/to-fixed\ncore-js(-pure)/es|stable|actual|full/number(/virtual)/to-precision\ncore-js(-pure)/es|stable|actual|full/parse-float\ncore-js(-pure)/es|stable|actual|full/parse-int\n```\n#### ECMAScript: Math[⬆](#index)\nModules [`es.math.acosh`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.acosh.js), [`es.math.asinh`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.asinh.js), [`es.math.atanh`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.atanh.js), [`es.math.cbrt`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.cbrt.js), [`es.math.clz32`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.clz32.js), [`es.math.cosh`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.cosh.js), [`es.math.expm1`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.expm1.js), [`es.math.fround`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.fround.js), [`es.math.f16round`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.f16round.js), [`es.math.hypot`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.hypot.js), [`es.math.imul`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.imul.js), [`es.math.log10`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.log10.js), [`es.math.log1p`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.log1p.js), [`es.math.log2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.log2.js), [`es.math.sign`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.sign.js), [`es.math.sinh`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.sinh.js), [`esnext.math.sum-precise`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.math.sum-precise.js), [`es.math.tanh`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.tanh.js), [`es.math.trunc`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.trunc.js).\n```ts\nnamespace Math {\n  acosh(number: number): number;\n  asinh(number: number): number;\n  atanh(number: number): number;\n  cbrt(number: number): number;\n  clz32(number: number): number;\n  cosh(number: number): number;\n  expm1(number: number): number;\n  fround(number: number): number;\n  f16round(number: any): number;\n  hypot(...args: Array<number>): number;\n  imul(number1: number, number2: number): number;\n  log1p(number: number): number;\n  log10(number: number): number;\n  log2(number: number): number;\n  sign(number: number): 1 | -1 | 0 | -0 | NaN;\n  sinh(number: number): number;\n  sumPrecise(items: Iterable<number>): Number;\n  tanh(number: number): number;\n  trunc(number: number): number;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/math\ncore-js(-pure)/es|stable|actual|full/math/acosh\ncore-js(-pure)/es|stable|actual|full/math/asinh\ncore-js(-pure)/es|stable|actual|full/math/atanh\ncore-js(-pure)/es|stable|actual|full/math/cbrt\ncore-js(-pure)/es|stable|actual|full/math/clz32\ncore-js(-pure)/es|stable|actual|full/math/cosh\ncore-js(-pure)/es|stable|actual|full/math/expm1\ncore-js(-pure)/es|stable|actual|full/math/fround\ncore-js(-pure)/es|stable|actual|full/math/f16round\ncore-js(-pure)/es|stable|actual|full/math/hypot\ncore-js(-pure)/es|stable|actual|full/math/imul\ncore-js(-pure)/es|stable|actual|full/math/log1p\ncore-js(-pure)/es|stable|actual|full/math/log10\ncore-js(-pure)/es|stable|actual|full/math/log2\ncore-js(-pure)/es|stable|actual|full/math/sign\ncore-js(-pure)/es|stable|actual|full/math/sinh\ncore-js(-pure)/es|stable|actual|full/math/sum-precise\ncore-js(-pure)/es|stable|actual|full/math/tanh\ncore-js(-pure)/es|stable|actual|full/math/trunc\n```\n[*Examples*](https://tinyurl.com/2bd3nako):\n```js\n1e20 + 0.1 + -1e20; // => 0\nMath.sumPrecise([1e20, 0.1, -1e20]); // => 0.1\n```\n\n#### ECMAScript: Date[⬆](#index)\nModules [`es.date.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-string.js), ES5 features with fixes: [`es.date.now`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.now.js), [`es.date.to-iso-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-iso-string.js), [`es.date.to-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-json.js) and [`es.date.to-primitive`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-primitive.js).\n\nAnnex B methods. Modules [`es.date.get-year`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.get-year.js), [`es.date.set-year`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.set-year.js) and [`es.date.to-gmt-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-gmt-string.js).\n```ts\nclass Date {\n  getYear(): int;\n  setYear(year: int): number;\n  toGMTString(): string;\n  toISOString(): string;\n  toJSON(): string;\n  toString(): string;\n  @@toPrimitive(hint: 'default' | 'number' | 'string'): string | number;\n  static now(): number;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/es|stable|actual|full/date\ncore-js/es|stable|actual|full/date/to-string\ncore-js(-pure)/es|stable|actual|full/date/now\ncore-js(-pure)/es|stable|actual|full/date/get-year\ncore-js(-pure)/es|stable|actual|full/date/set-year\ncore-js(-pure)/es|stable|actual|full/date/to-gmt-string\ncore-js(-pure)/es|stable|actual|full/date/to-iso-string\ncore-js(-pure)/es|stable|actual|full/date/to-json\ncore-js(-pure)/es|stable|actual|full/date/to-primitive\n```\n[*Example*](https://tinyurl.com/2cngq74c):\n```js\nnew Date(NaN).toString(); // => 'Invalid Date'\n```\n\n#### ECMAScript: Promise[⬆](#index)\nModules [`es.promise`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.js), [`es.promise.all-settled`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.all-settled.js), [`es.promise.any`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.any.js), [`es.promise.finally`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.finally.js), [`es.promise.try`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.try.js) and [`es.promise.with-resolvers`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.with-resolvers.js).\n```ts\nclass Promise {\n  constructor(executor: (resolve: Function, reject: Function) => void): Promise;\n  then(onFulfilled: Function, onRejected: Function): Promise;\n  catch(onRejected: Function): Promise;\n  finally(onFinally: Function): Promise;\n  static all(iterable: Iterable): Promise;\n  static allSettled(iterable: Iterable): Promise;\n  static any(promises: Iterable): Promise;\n  static race(iterable: Iterable): Promise;\n  static reject(r: any): Promise;\n  static resolve(x: any): Promise;\n  static try(callbackfn: Function, ...args?: Array<mixed>): Promise;\n  static withResolvers(): { promise: Promise, resolve: function, reject: function };\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/promise\ncore-js(-pure)/es|stable|actual|full/promise/all-settled\ncore-js(-pure)/es|stable|actual|full/promise/any\ncore-js(-pure)/es|stable|actual|full/promise/finally\ncore-js(-pure)/es|stable|actual|full/promise/try\ncore-js(-pure)/es|stable|actual|full/promise/with-resolvers\n```\nBasic [*example*](https://tinyurl.com/23bhbhbu):\n```js\n/* eslint-disable promise/prefer-await-to-callbacks -- example */\nfunction sleepRandom(time) {\n  return new Promise((resolve, reject) => {\n    setTimeout(resolve, time * 1e3, 0 | Math.random() * 1e3);\n  });\n}\n\nconsole.log('Run');                    // => Run\nsleepRandom(5).then(result => {\n  console.log(result);                 // => 869, after 5 sec.\n  return sleepRandom(10);\n}).then(result => {\n  console.log(result);                 // => 202, after 10 sec.\n}).then(() => {\n  console.log('immediately after');    // => immediately after\n  throw new Error('Irror!');\n}).then(() => {\n  console.log('will not be displayed');\n}).catch(error => console.log(error)); // => => Error: Irror!\n```\n`Promise.resolve` and `Promise.reject` [*example*](https://tinyurl.com/28nq4agd):\n```js\n/* eslint-disable promise/prefer-await-to-callbacks -- example */\nPromise.resolve(42).then(x => console.log(x));         // => 42\nPromise.reject(42).catch(error => console.log(error)); // => 42\n\nPromise.resolve($.getJSON('/data.json')); // => ES promise\n```\n`Promise#finally` [*example*](https://tinyurl.com/2ywzmz72):\n```js\nPromise.resolve(42).finally(() => console.log('You will see it anyway'));\n\nPromise.reject(42).finally(() => console.log('You will see it anyway'));\n```\n`Promise.all` [*example*](https://tinyurl.com/23nc596a):\n```js\nPromise.all([\n  'foo',\n  sleepRandom(5),\n  sleepRandom(15),\n  sleepRandom(10),            // after 15 sec:\n]).then(x => console.log(x)); // => ['foo', 956, 85, 382]\n```\n`Promise.race` [*example*](https://tinyurl.com/2degj8ux):\n```js\n/* eslint-disable promise/prefer-await-to-callbacks -- example */\nfunction timeLimit(promise, time) {\n  return Promise.race([promise, new Promise((resolve, reject) => {\n    setTimeout(reject, time * 1e3, new Error(`Await > ${ time } sec`));\n  })]);\n}\n\ntimeLimit(sleepRandom(5), 10).then(x => console.log(x));           // => 853, after 5 sec.\ntimeLimit(sleepRandom(15), 10).catch(error => console.log(error)); // Error: Await > 10 sec\n```\n`Promise.allSettled` [*example*](https://tinyurl.com/2akj7c2u):\n```js\nPromise.allSettled([\n  Promise.resolve(1),\n  Promise.reject(2),\n  Promise.resolve(3),\n]).then(console.log); // => [{ value: 1, status: 'fulfilled' }, { reason: 2, status: 'rejected' }, { value: 3, status: 'fulfilled' }]\n```\n`Promise.any` [*example*](https://tinyurl.com/23u59v6g):\n```js\nPromise.any([\n  Promise.resolve(1),\n  Promise.reject(2),\n  Promise.resolve(3),\n]).then(console.log); // => 1\n\nPromise.any([\n  Promise.reject(1),\n  Promise.reject(2),\n  Promise.reject(3),\n]).catch(({ errors }) => console.log(errors)); // => [1, 2, 3]\n```\n`Promise.try` [*examples*](https://tinyurl.com/2p48ojau):\n```js\n/* eslint-disable promise/prefer-await-to-callbacks -- example */\nPromise.try(() => 42).then(it => console.log(`Promise, resolved as ${ it }`));\n\nPromise.try(() => { throw new Error('42'); }).catch(error => console.log(`Promise, rejected as ${ error }`));\n\nPromise.try(async () => 42).then(it => console.log(`Promise, resolved as ${ it }`));\n\nPromise.try(async () => { throw new Error('42'); }).catch(error => console.log(`Promise, rejected as ${ error }`));\n\nPromise.try(it => it, 42).then(it => console.log(`Promise, resolved as ${ it }`));\n```\n`Promise.withResolvers` [*examples*](https://tinyurl.com/2gx4t3xu):\n```js\nconst d = Promise.withResolvers();\nd.resolve(42);\nd.promise.then(console.log); // => 42\n```\n[Example](https://tinyurl.com/bde6am73) with async functions:\n```js\nlet delay = time => new Promise(resolve => setTimeout(resolve, time));\n\nasync function sleepRandom(time) {\n  await delay(time * 1e3);\n  return 0 | Math.random() * 1e3;\n}\n\nasync function sleepError(time, msg) {\n  await delay(time * 1e3);\n  throw new Error(msg);\n}\n\n(async () => {\n  try {\n    console.log('Run');                // => Run\n    console.log(await sleepRandom(5)); // => 936, after 5 sec.\n    let [a, b, c] = await Promise.all([\n      sleepRandom(5),\n      sleepRandom(15),\n      sleepRandom(10),\n    ]);\n    console.log(a, b, c);              // => 210 445 71, after 15 sec.\n    await sleepError(5, 'Error!');\n    console.log('Will not be displayed');\n  } catch (error) {\n    console.log(error);                // => Error: 'Error!', after 5 sec.\n  }\n})();\n```\n\n##### Unhandled rejection tracking[⬆](#index)\n\nIn Node.js, like in native implementation, available events [`unhandledRejection`](https://nodejs.org/api/process.html#process_event_unhandledrejection) and [`rejectionHandled`](https://nodejs.org/api/process.html#process_event_rejectionhandled):\n```js\nprocess.on('unhandledRejection', (reason, promise) => console.log('unhandled', reason, promise));\nprocess.on('rejectionHandled', promise => console.log('handled', promise));\n\nlet promise = Promise.reject(42);\n// unhandled 42 [object Promise]\n\n// eslint-disable-next-line promise/prefer-await-to-then -- example\nsetTimeout(() => promise.catch(() => { /* empty */ }), 1e3);\n// handled [object Promise]\n```\nIn a browser on rejection, by default, you will see notify in the console, or you can add a custom handler and a handler on handling unhandled, [*example*](https://tinyurl.com/5n6nj2e8):\n```js\nglobalThis.addEventListener('unhandledrejection', e => console.log('unhandled', e.reason, e.promise));\nglobalThis.addEventListener('rejectionhandled', e => console.log('handled', e.reason, e.promise));\n// or\nglobalThis.onunhandledrejection = e => console.log('unhandled', e.reason, e.promise);\nglobalThis.onrejectionhandled = e => console.log('handled', e.reason, e.promise);\n\nlet promise = Promise.reject(42);\n// => unhandled 42 [object Promise]\n\n// eslint-disable-next-line promise/prefer-await-to-then -- example\nsetTimeout(() => promise.catch(() => { /* empty */ }), 1e3);\n// => handled 42 [object Promise]\n```\n\n#### ECMAScript: Symbol[⬆](#index)\nModules [`es.symbol`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.js), [`es.symbol.async-dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.async-dispose.js), [`es.symbol.async-iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.async-iterator.js), [`es.symbol.description`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.description.js), [`es.symbol.dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.dispose.js), [`es.symbol.has-instance`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.has-instance.js), [`es.symbol.is-concat-spreadable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.is-concat-spreadable.js), [`es.symbol.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.iterator.js), [`es.symbol.match`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.match.js), [`es.symbol.replace`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.replace.js), [`es.symbol.search`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.search.js), [`es.symbol.species`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.species.js), [`es.symbol.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.split.js), [`es.symbol.to-primitive`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.to-primitive.js), [`es.symbol.to-string-tag`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.to-string-tag.js), [`es.symbol.unscopables`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.unscopables.js), [`es.math.to-string-tag`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.to-string-tag.js).\n```ts\nclass Symbol {\n  constructor(description?): symbol;\n  readonly attribute description: string | void;\n  static asyncDispose: @@asyncDispose;\n  static asyncIterator: @@asyncIterator;\n  static dispose: @@dispose;\n  static hasInstance: @@hasInstance;\n  static isConcatSpreadable: @@isConcatSpreadable;\n  static iterator: @@iterator;\n  static match: @@match;\n  static replace: @@replace;\n  static search: @@search;\n  static species: @@species;\n  static split: @@split;\n  static toPrimitive: @@toPrimitive;\n  static toStringTag: @@toStringTag;\n  static unscopables: @@unscopables;\n  static for(key: string): symbol;\n  static keyFor(sym: symbol): string;\n  static useSimple(): void;\n  static useSetter(): void;\n}\n\nclass Object {\n  static getOwnPropertySymbols(object: any): Array<symbol>;\n}\n```\nAlso wrapped some methods for correct work with `Symbol` polyfill.\n```ts\nclass Object {\n  static create(prototype: Object | null, properties?: { [property: PropertyKey]: PropertyDescriptor }): Object;\n  static defineProperties(object: Object, properties: { [property: PropertyKey]: PropertyDescriptor })): Object;\n  static defineProperty(object: Object, property: PropertyKey, attributes: PropertyDescriptor): Object;\n  static getOwnPropertyDescriptor(object: any, property: PropertyKey): PropertyDescriptor | void;\n  static getOwnPropertyNames(object: any): Array<string>;\n  propertyIsEnumerable(key: PropertyKey): boolean;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/symbol\ncore-js(-pure)/es|stable|actual|full/symbol/async-dispose\ncore-js(-pure)/es|stable|actual|full/symbol/async-iterator\ncore-js/es|stable|actual|full/symbol/description\ncore-js(-pure)/es|stable|actual|full/symbol/dispose\ncore-js(-pure)/es|stable|actual|full/symbol/has-instance\ncore-js(-pure)/es|stable|actual|full/symbol/is-concat-spreadable\ncore-js(-pure)/es|stable|actual|full/symbol/iterator\ncore-js(-pure)/es|stable|actual|full/symbol/match\ncore-js(-pure)/es|stable|actual|full/symbol/replace\ncore-js(-pure)/es|stable|actual|full/symbol/search\ncore-js(-pure)/es|stable|actual|full/symbol/species\ncore-js(-pure)/es|stable|actual|full/symbol/split\ncore-js(-pure)/es|stable|actual|full/symbol/to-primitive\ncore-js(-pure)/es|stable|actual|full/symbol/to-string-tag\ncore-js(-pure)/es|stable|actual|full/symbol/unscopables\ncore-js(-pure)/es|stable|actual|full/symbol/for\ncore-js(-pure)/es|stable|actual|full/symbol/key-for\ncore-js(-pure)/es|stable|actual|full/object/get-own-property-symbols\ncore-js(-pure)/es|stable|actual|full/math/to-string-tag\n```\n[*Basic example*](https://tinyurl.com/2b2zfvrs):\n```js\nlet Person = (() => {\n  let NAME = Symbol('name');\n  return class {\n    constructor(name) {\n      this[NAME] = name;\n    }\n    getName() {\n      return this[NAME];\n    }\n  };\n})();\n\nlet person = new Person('Vasya');\nconsole.log(person.getName());            // => 'Vasya'\nconsole.log(person.name);                 // => undefined\nconsole.log(person[Symbol('name')]);      // => undefined, symbols are uniq\nfor (let key in person) console.log(key); // => nothing, symbols are not enumerable\n```\n`Symbol.for` & `Symbol.keyFor` [*example*](https://tinyurl.com/29u2q3jb):\n```js\nlet symbol = Symbol.for('key');\nsymbol === Symbol.for('key'); // true\nSymbol.keyFor(symbol);        // 'key'\n```\n[*Example*](https://tinyurl.com/2297e9bg) with methods for getting own object keys:\n```js\nlet object = { a: 1 };\nObject.defineProperty(object, 'b', { value: 2 });\nobject[Symbol('c')] = 3;\nObject.keys(object);                  // => ['a']\nObject.getOwnPropertyNames(object);   // => ['a', 'b']\nObject.getOwnPropertySymbols(object); // => [Symbol(c)]\nReflect.ownKeys(object);              // => ['a', 'b', Symbol(c)]\n```\n\n[*Symbol#description getter*](https://tinyurl.com/25s4664f):\n```js\nSymbol('foo').description; // => 'foo'\n// eslint-disable-next-line symbol-description -- example\nSymbol().description;      // => undefined\n```\n##### Caveats when using `Symbol` polyfill:[⬆](#index)\n\n- We can't add a new primitive type, `Symbol` returns an object.\n- `Symbol.for` and `Symbol.keyFor` can't be polyfilled cross-realm.\n- By default, to hide the keys, `Symbol` polyfill defines a setter in `Object.prototype`. For this reason, an uncontrolled creation of symbols can cause a memory leak and the `in` operator is not working correctly with `Symbol` polyfill: `Symbol() in {} // => true`.\n\nYou can disable defining setters in `Object.prototype`. [Example](https://tinyurl.com/2blse6aa):\n```js\nSymbol.useSimple();\nlet object1 = { [Symbol('symbol1')]: true };\nfor (let key in object1) console.log(key); // => 'Symbol(symbol1)_t.qamkg9f3q', w/o native Symbol\n\nSymbol.useSetter();\nlet object2 = { [Symbol('symbol2')]: true };\nfor (let key in object2) console.log(key); // nothing\n```\n- Currently, `core-js` does not add setters to `Object.prototype` for well-known symbols for correct work something like `Symbol.iterator in foo`. It can cause problems with their enumerability.\n- Some problems are possible with environment exotic objects (for example, IE `localStorage`).\n\n#### ECMAScript: Collections[⬆](#index)\n`core-js` uses native collections in most cases, just fixes methods / constructor, if it's required, and in the old environment uses fast polyfill (O(1) lookup).\n#### Map[⬆](#index)\nModules [`es.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.js), [`es.map.group-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.group-by.js), [`es.map.get-or-insert`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.get-or-insert.js) and [`es.map.get-or-insert-computed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.get-or-insert-computed.js).\n```ts\nclass Map {\n  constructor(iterable?: Iterable<[key, value]>): Map;\n  clear(): void;\n  delete(key: any): boolean;\n  forEach(callbackfn: (value: any, key: any, target: any) => void, thisArg: any): void;\n  get(key: any): any;\n  getOrInsert(key: any, value: any): any;\n  getOrInsertComputed(key: any, (key: any) => value: any): any;\n  has(key: any): boolean;\n  set(key: any, val: any): this;\n  values(): Iterator<value>;\n  keys(): Iterator<key>;\n  entries(): Iterator<[key, value]>;\n  @@iterator(): Iterator<[key, value]>;\n  readonly attribute size: number;\n  static groupBy(items: Iterable, callbackfn: (value: any, index: number) => key): Map<key, Array<mixed>>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/map\ncore-js(-pure)/es|stable|actual|full/map/group-by\ncore-js(-pure)/es|stable|actual|full/map/get-or-insert\ncore-js(-pure)/es|stable|actual|full/map/get-or-insert-computed\n```\n[*Examples*](https://tinyurl.com/298ekxmq):\n```js\nlet array = [1];\n\nlet map = new Map([['a', 1], [42, 2]]);\nmap.set(array, 3).set(true, 4);\n\nconsole.log(map.size);        // => 4\nconsole.log(map.has(array));  // => true\nconsole.log(map.has([1]));    // => false\nconsole.log(map.get(array));  // => 3\nmap.forEach((val, key) => {\n  console.log(val);           // => 1, 2, 3, 4\n  console.log(key);           // => 'a', 42, [1], true\n});\nmap.delete(array);\nconsole.log(map.size);        // => 3\nconsole.log(map.get(array));  // => undefined\nconsole.log(Array.from(map)); // => [['a', 1], [42, 2], [true, 4]]\n\nmap = new Map([['a', 1], ['b', 2], ['c', 3]]);\n\nfor (let [key, value] of map) {\n  console.log(key);                                 // => 'a', 'b', 'c'\n  console.log(value);                               // => 1, 2, 3\n}\nfor (let value of map.values()) console.log(value); // => 1, 2, 3\nfor (let key of map.keys()) console.log(key);       // => 'a', 'b', 'c'\nfor (let [key, value] of map.entries()) {\n  console.log(key);                                 // => 'a', 'b', 'c'\n  console.log(value);                               // => 1, 2, 3\n}\n\nmap = Map.groupBy([1, 2, 3, 4, 5], it => it % 2);\nmap.get(1); // => [1, 3, 5]\nmap.get(0); // => [2, 4]\n\nmap = new Map([['a', 1]]);\n\nmap.getOrInsert('a', 2); // => 1\n\nmap.getOrInsert('b', 3); // => 3\n\nmap.getOrInsertComputed('a', key => key); // => 1\n\nmap.getOrInsertComputed('c', key => key); // => 'c'\n\nconsole.log(map); // => Map { 'a': 1, 'b': 3, 'c': 'c' }\n```\n\n#### Set[⬆](#index)\nModules [`es.set`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.js), [`es.set.difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.v2.js), [`es.set.intersection.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.v2.js), [`es.set.is-disjoint-from.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.v2.js), [`es.set.is-subset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.v2.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js)\n```ts\nclass Set {\n  constructor(iterable?: Iterable<value>): Set;\n  add(key: any): this;\n  clear(): void;\n  delete(key: any): boolean;\n  forEach((value: any, key: any, target: any) => void, thisArg: any): void;\n  has(key: any): boolean;\n  values(): Iterator<value>;\n  keys(): Iterator<value>;\n  entries(): Iterator<[value, value]>;\n  difference(other: SetLike<mixed>): Set;\n  intersection(other: SetLike<mixed>): Set;\n  isDisjointFrom(other: SetLike<mixed>): boolean;\n  isSubsetOf(other: SetLike<mixed>): boolean;\n  isSupersetOf(other: SetLike<mixed>): boolean;\n  symmetricDifference(other: SetLike<mixed>): Set;\n  union(other: SetLike<mixed>): Set;\n  @@iterator(): Iterator<value>;\n  readonly attribute size: number;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/set\ncore-js(-pure)/es|stable|actual|full/set/difference\ncore-js(-pure)/es|stable|actual|full/set/intersection\ncore-js(-pure)/es|stable|actual|full/set/is-disjoint-from\ncore-js(-pure)/es|stable|actual|full/set/is-subset-of\ncore-js(-pure)/es|stable|actual|full/set/is-superset-of\ncore-js(-pure)/es|stable|actual|full/set/symmetric-difference\ncore-js(-pure)/es|stable|actual|full/set/union\n```\n[*Examples*](https://tinyurl.com/2dy5t9ey):\n```js\nlet set = new Set(['a', 'b', 'a', 'c']);\nset.add('d').add('b').add('e');\nconsole.log(set.size);        // => 5\nconsole.log(set.has('b'));    // => true\nset.forEach(it => {\n  console.log(it);            // => 'a', 'b', 'c', 'd', 'e'\n});\nset.delete('b');\nconsole.log(set.size);        // => 4\nconsole.log(set.has('b'));    // => false\nconsole.log(Array.from(set)); // => ['a', 'c', 'd', 'e']\n\nset = new Set([1, 2, 3, 2, 1]);\n\nfor (let value of set) console.log(value);          // => 1, 2, 3\nfor (let value of set.values()) console.log(value); // => 1, 2, 3\nfor (let key of set.keys()) console.log(key);       // => 1, 2, 3\nfor (let [key, value] of set.entries()) {\n  console.log(key);                                 // => 1, 2, 3\n  console.log(value);                               // => 1, 2, 3\n}\n\nnew Set([1, 2, 3]).union(new Set([3, 4, 5]));               // => Set {1, 2, 3, 4, 5}\nnew Set([1, 2, 3]).intersection(new Set([3, 4, 5]));        // => Set {3}\nnew Set([1, 2, 3]).difference(new Set([3, 4, 5]));          // => Set {1, 2}\nnew Set([1, 2, 3]).symmetricDifference(new Set([3, 4, 5])); // => Set {1, 2, 4, 5}\nnew Set([1, 2, 3]).isDisjointFrom(new Set([4, 5, 6]));      // => true\nnew Set([1, 2, 3]).isSubsetOf(new Set([5, 4, 3, 2, 1]));    // => true\nnew Set([5, 4, 3, 2, 1]).isSupersetOf(new Set([1, 2, 3]));  // => true\n```\n#### WeakMap[⬆](#index)\nModule [`es.weak-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-map.js), [`es.weak-map.get-or-insert`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-map.get-or-insert.js) and [`es.weak-map.get-or-insert-computed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-map.get-or-insert-computed.js).\n```ts\nclass WeakMap {\n  constructor(iterable?: Iterable<[key, value]>): WeakMap;\n  delete(key: object | symbol): boolean;\n  get(key: object | symbol): any;\n  getOrInsert(key: object | symbol, value: any): any;\n  getOrInsertComputed(key: object | symbol, (key: any) => value: any): any;\n  has(key: object | symbol): boolean;\n  set(key: object | symbol, val: any): this;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/weak-map\ncore-js(-pure)/es|stable|actual|full/weak-map/get-or-insert\ncore-js(-pure)/es|stable|actual|full/weak-map/get-or-insert-computed\n```\n[*Examples*](https://tinyurl.com/2yws9shh):\n```js\nlet a = [1];\nlet b = [2];\nlet c = [3];\n\nlet weakmap = new WeakMap([[a, 1], [b, 2]]);\nweakmap.set(c, 3).set(b, 4);\nconsole.log(weakmap.has(a));   // => true\nconsole.log(weakmap.has([1])); // => false\nconsole.log(weakmap.get(a));   // => 1\nweakmap.delete(a);\nconsole.log(weakmap.get(a));   // => undefined\n\n// Private properties store:\nlet Person = (() => {\n  let names = new WeakMap();\n  return class {\n    constructor(name) {\n      names.set(this, name);\n    }\n    getName() {\n      return names.get(this);\n    }\n  };\n})();\n\nlet person = new Person('Vasya');\nconsole.log(person.getName());            // => 'Vasya'\nfor (let key in person) console.log(key); // => only 'getName'\n```\n#### WeakSet[⬆](#index)\nModule [`es.weak-set`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-set.js).\n```ts\nclass WeakSet {\n  constructor(iterable?: Iterable<value>): WeakSet;\n  add(key: object | symbol): this;\n  delete(key: object | symbol): boolean;\n  has(key: object | symbol): boolean;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/weak-set\n```\n[*Examples*](https://tinyurl.com/2ceoza3j):\n```js\nlet a = [1];\nlet b = [2];\nlet c = [3];\n\nlet weakset = new WeakSet([a, b, a]);\nweakset.add(c).add(b).add(c);\nconsole.log(weakset.has(b));   // => true\nconsole.log(weakset.has([2])); // => false\nweakset.delete(b);\nconsole.log(weakset.has(b));   // => false\n```\n\n> [!WARNING]\n> - Weak-collections polyfill stores values as hidden properties of keys. It works correctly and does not leak in most cases. However, it is desirable to store a collection longer than its keys.\n> - Native symbols as `WeakMap` keys can't be properly polyfilled without memory leaks.\n\n#### ECMAScript: Explicit Resource Management[⬆](#index)\n> [!NOTE]\n> This is only built-ins for this Explicit Resource Management, `using` syntax support requires [transpiler support](https://babeljs.io/docs/babel-plugin-syntax-explicit-resource-management).\n\nModules [`es.disposable-stack.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.disposable-stack.constructor.js), [`es.iterator.dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.dispose.js), [`es.async-disposable-stack.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.async-disposable-stack.constructor.js), [`es.async-iterator.async-dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.async-dispose.js).\n```ts\nclass Symbol {\n  static asyncDispose: @@asyncDispose;\n  static dispose: @@dispose;\n}\n\nclass DisposableStack {\n  constructor(): DisposableStack;\n  dispose(): undefined;\n  use(value: Disposable): value;\n  adopt(value: object, onDispose: Function): value;\n  defer(onDispose: Function): undefined;\n  move(): DisposableStack;\n  @@dispose(): undefined;\n  @@toStringTag: 'DisposableStack';\n}\n\nclass AsyncDisposableStack {\n  constructor(): AsyncDisposableStack;\n  disposeAsync(): Promise<undefined>;\n  use(value: AsyncDisposable | Disposable): value;\n  adopt(value: object, onDispose: Function): value;\n  defer(onDispose: Function): undefined;\n  move(): AsyncDisposableStack;\n  @@asyncDispose(): Promise<undefined>;\n  @@toStringTag: 'AsyncDisposableStack';\n}\n\nclass SuppressedError extends Error {\n  constructor(error: any, suppressed: any, message?: string): SuppressedError;\n  error: any;\n  suppressed: any;\n  message: string;\n  cause: any;\n}\n\nclass Iterator {\n  @@dispose(): undefined;\n}\n\nclass AsyncIterator {\n  @@asyncDispose(): Promise<undefined>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/disposable-stack\ncore-js(-pure)/es|stable|actual|full/async-disposable-stack\ncore-js(-pure)/es|stable|actual|full/iterator/dispose\ncore-js(-pure)/es|stable|actual|full/async-iterator/async-dispose\n```\n\n#### ECMAScript: Typed Arrays[⬆](#index)\nImplementations and fixes for `ArrayBuffer`, `DataView`, Typed Arrays constructors, static and prototype methods. Typed arrays work only in environments with support descriptors (IE9+), `ArrayBuffer` and `DataView` should work anywhere.\n\nModules [`es.array-buffer.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array-buffer.constructor.js), [`es.array-buffer.is-view`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array-buffer.is-view.js), [`esnext.array-buffer.detached`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array-buffer.detached.js), [`es.array-buffer.slice`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array-buffer.slice.js), [`esnext.array-buffer.transfer`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array-buffer.transfer.js), [`esnext.array-buffer.transfer-to-fixed-length`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js) [`es.data-view`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.data-view.js), [`es.data-view.get-float16`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.data-view.get-float16.js), [`es.data-view.set-float16`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.data-view.set-float16.js), [`es.typed-array.int8-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.int8-array.js), [`es.typed-array.uint8-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint8-array.js), [`es.typed-array.uint8-clamped-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint8-clamped-array.js), [`es.typed-array.int16-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.int16-array.js), [`es.typed-array.uint16-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint16-array.js), [`es.typed-array.int32-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.int32-array.js), [`es.typed-array.uint32-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint32-array.js), [`es.typed-array.float32-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.float32-array.js), [`es.typed-array.float64-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.float64-array.js), [`es.typed-array.copy-within`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.copy-within.js), [`es.typed-array.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.every.js), [`es.typed-array.fill`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.fill.js), [`es.typed-array.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.filter.js), [`es.typed-array.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find.js), [`es.typed-array.find-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find-index.js), [`es.typed-array.find-last`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find-last.js), [`es.typed-array.find-last-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find-last-index.js), [`es.typed-array.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.for-each.js), [`es.typed-array.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.from.js), [`es.typed-array.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.includes.js), [`es.typed-array.index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.index-of.js), [`es.typed-array.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.iterator.js), [`es.typed-array.last-index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.last-index-of.js), [`es.typed-array.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.map.js), [`es.typed-array.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.of.js), [`es.typed-array.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.reduce.js), [`es.typed-array.reduce-right`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.reduce-right.js), [`es.typed-array.reverse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.reverse.js), [`es.typed-array.set`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.set.js), [`es.typed-array.slice`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.slice.js), [`es.typed-array.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.some.js), [`es.typed-array.sort`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.sort.js), [`es.typed-array.subarray`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.subarray.js), [`es.typed-array.to-locale-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-locale-string.js), [`es.typed-array.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-string.js), [`es.typed-array.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.at.js), [`es.typed-array.to-reversed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-reversed.js), [`es.typed-array.to-sorted`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-sorted.js), [`es.typed-array.with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.with.js), [`es.uint8-array.from-base64`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.from-base64.js), [`es.uint8-array.from-hex`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.from-hex.js), [`es.uint8-array.set-from-hex`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.set-from-hex.js), [`es.uint8-array.to-base64`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.to-base64.js), [`es.uint8-array.to-hex`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.to-hex.js).\n```ts\nclass ArrayBuffer {\n  constructor(length: any): ArrayBuffer;\n  readonly attribute byteLength: number;\n  readonly attribute detached: boolean;\n  slice(start: any, end: any): ArrayBuffer;\n  transfer(newLength?: number): ArrayBuffer;\n  transferToFixedLength(newLength?: number): ArrayBuffer;\n  static isView(arg: any): boolean;\n}\n\nclass DataView {\n  constructor(buffer: ArrayBuffer, byteOffset?: number, byteLength?: number): DataView;\n  getInt8(offset: any): int8;\n  getUint8(offset: any): uint8\n  getInt16(offset: any, littleEndian?: boolean = false): int16;\n  getUint16(offset: any, littleEndian?: boolean = false): uint16;\n  getInt32(offset: any, littleEndian?: boolean = false): int32;\n  getUint32(offset: any, littleEndian?: boolean = false): uint32;\n  getFloat16(offset: any, littleEndian?: boolean = false): float16\n  getFloat32(offset: any, littleEndian?: boolean = false): float32;\n  getFloat64(offset: any, littleEndian?: boolean = false): float64;\n  setInt8(offset: any, value: any): void;\n  setUint8(offset: any, value: any): void;\n  setInt16(offset: any, value: any, littleEndian?: boolean = false): void;\n  setUint16(offset: any, value: any, littleEndian?: boolean = false): void;\n  setInt32(offset: any, value: any, littleEndian?: boolean = false): void;\n  setUint32(offset: any, value: any, littleEndian?: boolean = false): void;\n  setFloat16(offset: any, value: any, littleEndian?: boolean = false): void;\n  setFloat32(offset: any, value: any, littleEndian?: boolean = false): void;\n  setFloat64(offset: any, value: any, littleEndian?: boolean = false): void;\n  readonly attribute buffer: ArrayBuffer;\n  readonly attribute byteLength: number;\n  readonly attribute byteOffset: number;\n}\n\nclass [\n  Int8Array,\n  Uint8Array,\n  Uint8ClampedArray,\n  Int16Array,\n  Uint16Array,\n  Int32Array,\n  Uint32Array,\n  Float32Array,\n  Float64Array,\n] extends %TypedArray% {\n  constructor(length: number): %TypedArray%;\n  constructor(object: %TypedArray% | Iterable | ArrayLike): %TypedArray%;\n  constructor(buffer: ArrayBuffer, byteOffset?: number, length?: number): %TypedArray%\n}\n\nclass %TypedArray% {\n  at(index: int): number;\n  copyWithin(target: number, start: number, end?: number): this;\n  entries(): Iterator<[index, value]>;\n  every(callbackfn: (value: number, index: number, target: %TypedArray%) => boolean, thisArg?: any): boolean;\n  fill(value: number, start?: number, end?: number): this;\n  filter(callbackfn: (value: number, index: number, target: %TypedArray%) => boolean, thisArg?: any): %TypedArray%;\n  find(callbackfn: (value: number, index: number, target: %TypedArray%) => boolean), thisArg?: any): any;\n  findIndex(callbackfn: (value: number, index: number, target: %TypedArray%) => boolean, thisArg?: any): uint;\n  findLast(callbackfn: (value: any, index: number, target: %TypedArray%) => boolean, thisArg?: any): any;\n  findLastIndex(callbackfn: (value: any, index: number, target: %TypedArray%) => boolean, thisArg?: any): uint;\n  forEach(callbackfn: (value: number, index: number, target: %TypedArray%) => void, thisArg?: any): void;\n  includes(searchElement: any, from?: number): boolean;\n  indexOf(searchElement: any, from?: number): number;\n  join(separator: string = ','): string;\n  keys(): Iterator<index>;\n  lastIndexOf(searchElement: any, from?: number): number;\n  map(mapFn: (value: number, index: number, target: %TypedArray%) => number, thisArg?: any): %TypedArray%;\n  reduce(callbackfn: (memo: any, value: number, index: number, target: %TypedArray%) => any, initialValue?: any): any;\n  reduceRight(callbackfn: (memo: any, value: number, index: number, target: %TypedArray%) => any, initialValue?: any): any;\n  reverse(): this;\n  set(array: ArrayLike, offset?: number): void;\n  slice(start?: number, end?: number): %TypedArray%;\n  some(callbackfn: (value: number, index: number, target: %TypedArray%) => boolean, thisArg?: any): boolean;\n  sort(comparefn?: (a: number, b: number) => number): this; // with modern behavior like stable sort\n  subarray(begin?: number, end?: number): %TypedArray%;\n  toReversed(): %TypedArray%;\n  toSorted(comparefn?: (a: any, b: any) => number): %TypedArray%;\n  toString(): string;\n  toLocaleString(): string;\n  values(): Iterator<value>;\n  with(index: includes, value: any): %TypedArray%;\n  @@iterator(): Iterator<value>;\n  readonly attribute buffer: ArrayBuffer;\n  readonly attribute byteLength: number;\n  readonly attribute byteOffset: number;\n  readonly attribute length: number;\n  BYTES_PER_ELEMENT: number;\n  static from(items: Iterable | ArrayLike, mapFn?: (value: any, index: number) => any, thisArg?: any): %TypedArray%;\n  static of(...args: Array<mixed>): %TypedArray%;\n  static BYTES_PER_ELEMENT: number;\n}\n\nclass Uint8Array {\n  static fromBase64(string: string, options?: { alphabet?: 'base64' | 'base64url', lastChunkHandling?: 'loose' | 'strict' | 'stop-before-partial' }): Uint8Array;\n  static fromHex(string: string): Uint8Array;\n  setFromBase64(string: string, options?: { alphabet?: 'base64' | 'base64url', lastChunkHandling?: 'loose' | 'strict' | 'stop-before-partial' }): { read: uint, written: uint };\n  setFromHex(string: string): { read: uint, written: uint };\n  toBase64(options?: { alphabet?: 'base64' | 'base64url', omitPadding?: boolean }): string;\n  toHex(): string;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/es|stable|actual|full/array-buffer\ncore-js/es|stable|actual|full/array-buffer/constructor\ncore-js/es|stable|actual|full/array-buffer/is-view\ncore-js/es|stable|actual|full/array-buffer/detached\ncore-js/es|stable|actual|full/array-buffer/slice\ncore-js/es|stable|actual|full/array-buffer/transfer\ncore-js/es|stable|actual|full/array-buffer/transfer-to-fixed-length\ncore-js/es|stable|actual|full/data-view\ncore-js/es|stable|actual|full/dataview/get-float16\ncore-js/es|stable|actual|full/dataview/set-float16\ncore-js/es|stable|actual|full/typed-array\ncore-js/es|stable|actual|full/typed-array/int8-array\ncore-js/es|stable|actual|full/typed-array/uint8-array\ncore-js/es|stable|actual|full/typed-array/uint8-clamped-array\ncore-js/es|stable|actual|full/typed-array/int16-array\ncore-js/es|stable|actual|full/typed-array/uint16-array\ncore-js/es|stable|actual|full/typed-array/int32-array\ncore-js/es|stable|actual|full/typed-array/uint32-array\ncore-js/es|stable|actual|full/typed-array/float32-array\ncore-js/es|stable|actual|full/typed-array/float64-array\ncore-js/es|stable|actual|full/typed-array/at\ncore-js/es|stable|actual|full/typed-array/copy-within\ncore-js/es|stable|actual|full/typed-array/entries\ncore-js/es|stable|actual|full/typed-array/every\ncore-js/es|stable|actual|full/typed-array/fill\ncore-js/es|stable|actual|full/typed-array/filter\ncore-js/es|stable|actual|full/typed-array/find\ncore-js/es|stable|actual|full/typed-array/find-index\ncore-js/es|stable|actual|full/typed-array/find-last\ncore-js/es|stable|actual|full/typed-array/find-last-index\ncore-js/es|stable|actual|full/typed-array/for-each\ncore-js/es|stable|actual|full/typed-array/from\ncore-js/es|stable|actual|full/typed-array/from-base64\ncore-js/es|stable|actual|full/typed-array/from-hex\ncore-js/es|stable|actual|full/typed-array/includes\ncore-js/es|stable|actual|full/typed-array/index-of\ncore-js/es|stable|actual|full/typed-array/iterator\ncore-js/es|stable|actual|full/typed-array/join\ncore-js/es|stable|actual|full/typed-array/keys\ncore-js/es|stable|actual|full/typed-array/last-index-of\ncore-js/es|stable|actual|full/typed-array/map\ncore-js/es|stable|actual|full/typed-array/of\ncore-js/es|stable|actual|full/typed-array/reduce\ncore-js/es|stable|actual|full/typed-array/reduce-right\ncore-js/es|stable|actual|full/typed-array/reverse\ncore-js/es|stable|actual|full/typed-array/set\ncore-js/es|stable|actual|full/typed-array/set-from-base64\ncore-js/es|stable|actual|full/typed-array/set-from-hex\ncore-js/es|stable|actual|full/typed-array/slice\ncore-js/es|stable|actual|full/typed-array/some\ncore-js/es|stable|actual|full/typed-array/sort\ncore-js/es|stable|actual|full/typed-array/subarray\ncore-js/es|stable|actual|full/typed-array/to-base64\ncore-js/es|stable|actual|full/typed-array/to-hex\ncore-js/es|stable|actual|full/typed-array/to-locale-string\ncore-js/es|stable|actual|full/typed-array/to-reversed\ncore-js/es|stable|actual|full/typed-array/to-sorted\ncore-js/es|stable|actual|full/typed-array/to-string\ncore-js/es|stable|actual|full/typed-array/values\ncore-js/es|stable|actual|full/typed-array/with\n```\n[*Examples*](https://tinyurl.com/23cdt8rk):\n```js\nnew Int32Array(4);                          // => [0, 0, 0, 0]\nnew Uint8ClampedArray([1, 2, 3, 666]);      // => [1, 2, 3, 255]\nnew Float32Array(new Set([1, 2, 3, 2, 1])); // => [1, 2, 3]\n\nlet buffer = new ArrayBuffer(8);\nlet view = new DataView(buffer);\nview.setFloat64(0, 123.456, true);\nnew Uint8Array(buffer.slice(4)); // => [47, 221, 94, 64]\n\nInt8Array.of(1, 1.5, 5.7, 745);      // => [1, 1, 5, -23]\nUint8Array.from([1, 1.5, 5.7, 745]); // => [1, 1, 5, 233]\n\nlet typed = new Uint8Array([1, 2, 3]);\n\nlet a = typed.slice(1);    // => [2, 3]\ntyped.buffer === a.buffer; // => false\nlet b = typed.subarray(1); // => [2, 3]\ntyped.buffer === b.buffer; // => true\n\ntyped.filter(it => it % 2); // => [1, 3]\ntyped.map(it => it * 1.5);  // => [1, 3, 4]\n\nfor (let value of typed) console.log(value);          // => 1, 2, 3\nfor (let value of typed.values()) console.log(value); // => 1, 2, 3\nfor (let key of typed.keys()) console.log(key);       // => 0, 1, 2\nfor (let [key, value] of typed.entries()) {\n  console.log(key);                                   // => 0, 1, 2\n  console.log(value);                                 // => 1, 2, 3\n}\n\nnew Int32Array([1, 2, 3]).at(1);  // => 2\nnew Int32Array([1, 2, 3]).at(-1); // => 3\n\nbuffer = Int8Array.of(1, 2, 3, 4, 5, 6, 7, 8).buffer;\nconsole.log(buffer.byteLength); // => 8\nconsole.log(buffer.detached); // => false\nconst newBuffer = buffer.transfer(4);\nconsole.log(buffer.byteLength); // => 0\nconsole.log(buffer.detached); // => true\nconsole.log(newBuffer.byteLength); // => 4\nconsole.log(newBuffer.detached); // => false\nconsole.log([...new Int8Array(newBuffer)]); // => [1, 2, 3, 4]\n```\n\n*Base64 / Hex examples*:\n```js\nlet arr = new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]);\nconsole.log(arr.toBase64()); // => 'SGVsbG8gV29ybGQ='\nconsole.log(arr.toBase64({ omitPadding: true })); // => 'SGVsbG8gV29ybGQ'\nconsole.log(arr.toHex()); // => '48656c6c6f20576f726c64'\nconsole.log(Uint8Array.fromBase64('SGVsbG8gV29ybGQ=')); // => Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100])\nconsole.log(Uint8Array.fromHex('48656c6c6f20576f726c64')); // => Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100])\n```\n\n> [!WARNING]\n> - Polyfills of Typed Arrays constructors work completely how they should work by the spec. Still, because of the internal usage of getters / setters on each instance, they are slow and consume significant memory. However, polyfills of Typed Arrays constructors are required mainly for old IE, all modern engines have native Typed Arrays constructors and require only fixes of constructors and polyfills of methods.\n> - `ArrayBuffer.prototype.{ transfer, transferToFixedLength }` polyfilled only in runtime with native `structuredClone` with `ArrayBuffer` transfer or `MessageChannel` support.\n\n#### ECMAScript: Reflect[⬆](#index)\nModules [`es.reflect.apply`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.apply.js), [`es.reflect.construct`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.construct.js), [`es.reflect.define-property`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.define-property.js), [`es.reflect.delete-property`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.delete-property.js), [`es.reflect.get`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.get.js), [`es.reflect.get-own-property-descriptor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.get-own-property-descriptor.js), [`es.reflect.get-prototype-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.get-prototype-of.js), [`es.reflect.has`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.has.js), [`es.reflect.is-extensible`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.is-extensible.js), [`es.reflect.own-keys`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.own-keys.js), [`es.reflect.prevent-extensions`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.prevent-extensions.js), [`es.reflect.set`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.set.js), [`es.reflect.set-prototype-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.set-prototype-of.js).\n```ts\nnamespace Reflect {\n  apply(target: Function, thisArgument: any, argumentsList: Array<mixed>): any;\n  construct(target: Function, argumentsList: Array<mixed>, newTarget?: Function): Object;\n  defineProperty(target: Object, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;\n  deleteProperty(target: Object, propertyKey: PropertyKey): boolean;\n  get(target: Object, propertyKey: PropertyKey, receiver?: any): any;\n  getOwnPropertyDescriptor(target: Object, propertyKey: PropertyKey): PropertyDescriptor | void;\n  getPrototypeOf(target: Object): Object | null;\n  has(target: Object, propertyKey: PropertyKey): boolean;\n  isExtensible(target: Object): boolean;\n  ownKeys(target: Object): Array<string | symbol>;\n  preventExtensions(target: Object): boolean;\n  set(target: Object, propertyKey: PropertyKey, V: any, receiver?: any): boolean;\n  setPrototypeOf(target: Object, proto: Object | null): boolean; // required __proto__ - IE11+\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/reflect\ncore-js(-pure)/es|stable|actual|full/reflect/apply\ncore-js(-pure)/es|stable|actual|full/reflect/construct\ncore-js(-pure)/es|stable|actual|full/reflect/define-property\ncore-js(-pure)/es|stable|actual|full/reflect/delete-property\ncore-js(-pure)/es|stable|actual|full/reflect/get\ncore-js(-pure)/es|stable|actual|full/reflect/get-own-property-descriptor\ncore-js(-pure)/es|stable|actual|full/reflect/get-prototype-of\ncore-js(-pure)/es|stable|actual|full/reflect/has\ncore-js(-pure)/es|stable|actual|full/reflect/is-extensible\ncore-js(-pure)/es|stable|actual|full/reflect/own-keys\ncore-js(-pure)/es|stable|actual|full/reflect/prevent-extensions\ncore-js(-pure)/es|stable|actual|full/reflect/set\ncore-js(-pure)/es|stable|actual|full/reflect/set-prototype-of\n```\n[*Examples*](https://tinyurl.com/27leplqz):\n```js\nlet object = { a: 1 };\nObject.defineProperty(object, 'b', { value: 2 });\nobject[Symbol('c')] = 3;\nReflect.ownKeys(object); // => ['a', 'b', Symbol(c)]\n\nfunction C(a, b) {\n  this.c = a + b;\n}\n\nlet instance = Reflect.construct(C, [20, 22]);\ninstance.c; // => 42\n```\n\n#### ECMAScript: JSON[⬆](#index)\nSince `JSON` object is missed only in very old engines like IE7-, `core-js` does not provide a full `JSON.{ parse, stringify }` polyfill, however, fix already existing implementations by the current standard.\n\nModules [`es.json.is-raw-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.is-raw-json.js), [`es.json.parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.parse.js), [`es.json.raw-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.raw-json.js), [`es.json.stringify`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.stringify.js) and [`es.json.to-string-tag`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.to-string-tag.js) .\n```ts\nnamespace JSON {\n  isRawJSON(O: any): boolean;\n  parse(text: string, reviver?: (this: any, key: string, value: any, context: { source?: string }) => any): any;\n  rawJSON(text: any): RawJSON;\n  stringify(value: any, replacer?: Array<string | number> | (this: any, key: string, value: any) => any, space?: string | number): string | void;\n  @@toStringTag: 'JSON';\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/json/is-raw-json\ncore-js(-pure)/es|stable|actual|full/json/parse\ncore-js(-pure)/es|stable|actual|full/json/raw-json\ncore-js(-pure)/es|stable|actual|full/json/stringify\ncore-js(-pure)/es|stable|actual|full/json/stringify\ncore-js(-pure)/es|stable|actual|full/json/to-string-tag\n```\n[*Examples*](https://tinyurl.com/34ctm7cn):\n```js\nJSON.stringify({ '𠮷': ['\\uDF06\\uD834'] }); // => '{\"𠮷\":[\"\\\\udf06\\\\ud834\"]}'\n\nfunction digitsToBigInt(key, val, { source }) {\n  return /^\\d+$/.test(source) ? BigInt(source) : val;\n}\n\nfunction bigIntToRawJSON(key, val) {\n  return typeof val === 'bigint' ? JSON.rawJSON(String(val)) : val;\n}\n\nconst tooBigForNumber = BigInt(Number.MAX_SAFE_INTEGER) + 2n;\nJSON.parse(String(tooBigForNumber), digitsToBigInt) === tooBigForNumber; // true\n\nconst wayTooBig = BigInt(`1${ '0'.repeat(1000) }`);\nJSON.parse(String(wayTooBig), digitsToBigInt) === wayTooBig; // true\n\nconst embedded = JSON.stringify({ tooBigForNumber }, bigIntToRawJSON);\nembedded === '{\"tooBigForNumber\":9007199254740993}'; // true\n```\n\n#### ECMAScript: globalThis[⬆](#index)\nModule [`es.global-this`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.global-this.js).\n```ts\nlet globalThis: GlobalThisValue;\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/es|stable|actual|full/global-this\n```\n[*Examples*](https://tinyurl.com/25ajyfuk):\n```js\nglobalThis.Array === Array; // => true\n```\n\n### ECMAScript proposals[⬆](#index)\n[The TC39 process.](https://tc39.github.io/process-document/)\n\n`core-js/stage/3` entry point contains only stage 3 proposals, `core-js/stage/2.7` - stage 2.7 and stage 3, etc.\n\n#### Finished proposals[⬆](#index)\n\nFinished (stage 4) proposals already marked in `core-js` as stable ECMAScript, they are available in `core-js/stable` and `core-js/es` namespace, you can find them in related sections of the README. However, even for finished proposals, `core-js` provides a way to include only features for a specific proposal like `core-js/proposals/proposal-name`.\n\n##### [`globalThis`](https://github.com/tc39/proposal-global)[⬆](#index)\n```ts\nlet globalThis: GlobalThisValue;\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/global-this\n```\n##### [Relative indexing method](https://github.com/tc39/proposal-relative-indexing-method)[⬆](#index)\n```ts\nclass Array {\n  at(index: int): any;\n}\n\nclass String {\n  at(index: int): string;\n}\n\nclass %TypedArray% {\n  at(index: int): number;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/relative-indexing-method\n```\n##### [`Array.prototype.includes`](https://github.com/tc39/proposal-Array.prototype.includes)[⬆](#index)\n```ts\nclass Array {\n  includes(searchElement: any, from?: number): boolean;\n}\n\nclass %TypedArray% {\n  includes(searchElement: any, from?: number): boolean;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/array-includes\n```\n##### [`Array.prototype.flat` / `Array.prototype.flatMap`](https://github.com/tc39/proposal-flatMap)[⬆](#index)\n```ts\nclass Array {\n  flat(depthArg?: number = 1): Array<mixed>;\n  flatMap(mapFn: (value: any, index: number, target: any) => any, thisArg: any): Array<mixed>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/array-flat-map\n```\n##### [Array find from last](https://github.com/tc39/proposal-array-find-from-last)[⬆](#index)\n```ts\nclass Array {\n  findLast(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): any;\n  findLastIndex(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): uint;\n}\n\nclass %TypedArray% {\n  findLast(callbackfn: (value: any, index: number, target: %TypedArray%) => boolean, thisArg?: any): any;\n  findLastIndex(callbackfn: (value: any, index: number, target: %TypedArray%) => boolean, thisArg?: any): uint;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/array-find-from-last\n```\n##### [Change `Array` by copy](https://github.com/tc39/proposal-change-array-by-copy)[⬆](#index)\n```ts\nclass Array {\n  toReversed(): Array<mixed>;\n  toSpliced(start?: number, deleteCount?: number, ...items: Array<mixed>): Array<mixed>;\n  toSorted(comparefn?: (a: any, b: any) => number): Array<mixed>;\n  with(index: includes, value: any): Array<mixed>;\n}\n\nclass %TypedArray% {\n  toReversed(): %TypedArray%;\n  toSorted(comparefn?: (a: any, b: any) => number): %TypedArray%;\n  with(index: includes, value: any): %TypedArray%;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/change-array-by-copy-stage-4\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/to-reversed\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/to-sorted\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/to-spliced\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/with\ncore-js/es|stable|actual|full/typed-array/to-reversed\ncore-js/es|stable|actual|full/typed-array/to-sorted\ncore-js/es|stable|actual|full/typed-array/with\n```\n##### [`Array` grouping](https://github.com/tc39/proposal-array-grouping)[⬆](#index)\n```ts\nclass Object {\n  static groupBy(items: Iterable, callbackfn: (value: any, index: number) => key): { [key]: Array<mixed> };\n}\n\nclass Map {\n  static groupBy(items: Iterable, callbackfn: (value: any, index: number) => key): Map<key, Array<mixed>>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/array-grouping-v2\n```\n\n##### [`Array.fromAsync`](https://github.com/tc39/proposal-array-from-async)[⬆](#index)\n```ts\nclass Array {\n  static fromAsync(asyncItems: AsyncIterable | Iterable | ArrayLike, mapfn?: (value: any, index: number) => any, thisArg?: any): Array;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/array-from-async-stage-2\n```\n\n##### [`ArrayBuffer.prototype.transfer` and friends](https://github.com/tc39/proposal-arraybuffer-transfer)[⬆](#index)\n```ts\nclass ArrayBuffer {\n  readonly attribute detached: boolean;\n  transfer(newLength?: number): ArrayBuffer;\n  transferToFixedLength(newLength?: number): ArrayBuffer;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/array-buffer-transfer\n```\n\n##### [`Uint8Array` to / from base64 and hex](https://github.com/tc39/proposal-arraybuffer-base64)[⬆](#index)\n```ts\nclass Uint8Array {\n  static fromBase64(string: string, options?: { alphabet?: 'base64' | 'base64url', lastChunkHandling?: 'loose' | 'strict' | 'stop-before-partial' }): Uint8Array;\n  static fromHex(string: string): Uint8Array;\n  setFromBase64(string: string, options?: { alphabet?: 'base64' | 'base64url', lastChunkHandling?: 'loose' | 'strict' | 'stop-before-partial' }): { read: uint, written: uint };\n  setFromHex(string: string): { read: uint, written: uint };\n  toBase64(options?: { alphabet?: 'base64' | 'base64url', omitPadding?: boolean }): string;\n  toHex(): string;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/array-buffer-base64\n```\n\n##### [`Error.isError`](https://github.com/tc39/proposal-is-error)[⬆](#index)\n```ts\nclass Error {\n  static isError(value: any): boolean;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/is-error\n```\n\n> [!WARNING]\n> We have no bulletproof way to polyfill this `Error.isError` / check if the object is an error, so it's an enough naive implementation.\n\n\n##### [Explicit Resource Management](https://github.com/tc39/proposal-explicit-resource-management)[⬆](#index)\n> [!NOTE]\n> This is only built-ins for this Explicit Resource Management, `using` syntax support requires [transpiler support](https://babeljs.io/docs/babel-plugin-syntax-explicit-resource-management).\n```ts\nclass Symbol {\n  static asyncDispose: @@asyncDispose;\n  static dispose: @@dispose;\n}\n\nclass DisposableStack {\n  constructor(): DisposableStack;\n  dispose(): undefined;\n  use(value: Disposable): value;\n  adopt(value: object, onDispose: Function): value;\n  defer(onDispose: Function): undefined;\n  move(): DisposableStack;\n  @@dispose(): undefined;\n  @@toStringTag: 'DisposableStack';\n}\n\nclass AsyncDisposableStack {\n  constructor(): AsyncDisposableStack;\n  disposeAsync(): Promise<undefined>;\n  use(value: AsyncDisposable | Disposable): value;\n  adopt(value: object, onDispose: Function): value;\n  defer(onDispose: Function): undefined;\n  move(): AsyncDisposableStack;\n  @@asyncDispose(): Promise<undefined>;\n  @@toStringTag: 'AsyncDisposableStack';\n}\n\nclass SuppressedError extends Error {\n  constructor(error: any, suppressed: any, message?: string): SuppressedError;\n  error: any;\n  suppressed: any;\n  message: string;\n  cause: any;\n}\n\nclass Iterator {\n  @@dispose(): undefined;\n}\n\nclass AsyncIterator {\n  @@asyncDispose(): Promise<undefined>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/explicit-resource-management\n```\n\n##### [`Float16` methods](https://github.com/tc39/proposal-float16array)[⬆](#index)\n```ts\nclass DataView {\n  getFloat16(offset: any, littleEndian?: boolean = false): float16\n  setFloat16(offset: any, value: any, littleEndian?: boolean = false): void;\n}\n\nnamespace Math {\n  fround(number: any): number;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/float16\n```\n\n##### [`Iterator` helpers](https://github.com/tc39/proposal-iterator-helpers)[⬆](#index)\n```ts\nclass Iterator {\n  static from(iterable: Iterable<any> | Iterator<any>): Iterator<any>;\n  drop(limit: uint): Iterator<any>;\n  every(callbackfn: (value: any, counter: uint) => boolean): boolean;\n  filter(callbackfn: (value: any, counter: uint) => boolean): Iterator<any>;\n  find(callbackfn: (value: any, counter: uint) => boolean)): any;\n  flatMap(callbackfn: (value: any, counter: uint) => Iterable<any> | Iterator<any>): Iterator<any>;\n  forEach(callbackfn: (value: any, counter: uint) => void): void;\n  map(callbackfn: (value: any, counter: uint) => any): Iterator<any>;\n  reduce(callbackfn: (memo: any, value: any, counter: uint) => any, initialValue: any): any;\n  some(callbackfn: (value: any, counter: uint) => boolean): boolean;\n  take(limit: uint): Iterator<any>;\n  toArray(): Array<any>;\n  @@toStringTag: 'Iterator'\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/iterator-helpers-stage-3-2\n```\n\n##### [`Iterator` sequencing](https://github.com/tc39/proposal-iterator-sequencing)[⬆](#index)\n```ts\nclass Iterator {\n  static concat(...items: Array<IterableObject>): Iterator<any>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/iterator-sequencing\n```\n\n##### [`Object.values` / `Object.entries`](https://github.com/tc39/proposal-object-values-entries)[⬆](#index)\n```ts\nclass Object {\n  static entries(object: Object): Array<[string, mixed]>;\n  static values(object: any): Array<mixed>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/object-values-entries\n```\n##### [`Object.fromEntries`](https://github.com/tc39/proposal-object-from-entries)[⬆](#index)\n```ts\nclass Object {\n  static fromEntries(iterable: Iterable<[key, value]>): Object;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/object-from-entries\n```\n##### [`Object.getOwnPropertyDescriptors`](https://github.com/tc39/proposal-object-getownpropertydescriptors)[⬆](#index)\n```ts\nclass Object {\n  static getOwnPropertyDescriptors(object: any): { [property: PropertyKey]: PropertyDescriptor };\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/object-getownpropertydescriptors\n```\n##### [Accessible `Object.prototype.hasOwnProperty`](https://github.com/tc39/proposal-accessible-object-hasownproperty)[⬆](#index)\n```ts\nclass Object {\n  static hasOwn(object: object, key: PropertyKey): boolean;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/accessible-object-hasownproperty\n```\n##### [`String` padding](https://github.com/tc39/proposal-string-pad-start-end)[⬆](#index)\n```ts\nclass String {\n  padStart(length: number, fillStr?: string = ' '): string;\n  padEnd(length: number, fillStr?: string = ' '): string;\n}\n\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/string-padding\n```\n##### [`String#matchAll`](https://github.com/tc39/proposal-string-matchall)[⬆](#index).\n```ts\nclass String {\n  matchAll(regexp: RegExp): Iterator;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/string-match-all\n```\n##### [`String#replaceAll`](https://github.com/tc39/proposal-string-replace-all)[⬆](#index)\n```ts\nclass String {\n  replaceAll(searchValue: string | RegExp, replaceString: string | (searchValue, index, this) => string): string;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/string-replace-all-stage-4\n```\n##### [`String.prototype.trimStart` / `String.prototype.trimEnd`](https://github.com/tc39/proposal-string-left-right-trim)[⬆](#index)\n```ts\nclass String {\n  trimLeft(): string;\n  trimRight(): string;\n  trimStart(): string;\n  trimEnd(): string;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/string-left-right-trim\n```\n##### [`RegExp` `s` (`dotAll`) flag](https://github.com/tc39/proposal-regexp-dotall-flag)[⬆](#index)\n```ts\n// patched for support `RegExp` dotAll (`s`) flag:\nclass RegExp {\n  constructor(pattern: RegExp | string, flags?: string): RegExp;\n  exec(): Array<string | undefined> | null;\n  readonly attribute dotAll: boolean;\n  readonly attribute flags: string;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/regexp-dotall-flag\n```\n##### [`RegExp` named capture groups](https://github.com/tc39/proposal-regexp-named-groups)[⬆](#index)\n```ts\n// patched for support `RegExp` named capture groups:\nclass RegExp {\n  constructor(pattern: RegExp | string, flags?: string): RegExp;\n  exec(): Array<string | undefined> | null;\n  @@replace(string: string, replaceValue: Function | string): string;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/regexp-named-groups\n```\n\n##### [`RegExp` escaping](https://github.com/tc39/proposal-regex-escaping)[⬆](#index)\n```ts\nclass RegExp {\n  static escape(value: string): string\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/regexp-escaping\n```\n\n##### [`Promise.allSettled`](https://github.com/tc39/proposal-promise-allSettled)[⬆](#index)\n```ts\nclass Promise {\n  static allSettled(iterable: Iterable): Promise;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/promise-all-settled\n```\n##### [`Promise.any`](https://github.com/tc39/proposal-promise-any)[⬆](#index)\n```ts\nclass AggregateError {\n  constructor(errors: Iterable, message: string): AggregateError;\n  errors: Array<any>;\n  message: string;\n}\n\nclass Promise {\n  static any(promises: Iterable): Promise<any>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/promise-any\n```\n##### [`Promise.prototype.finally`](https://github.com/tc39/proposal-promise-finally)[⬆](#index)\n```ts\nclass Promise {\n  finally(onFinally: Function): Promise;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/promise-finally\n```\n\n##### [`Promise.try`](https://github.com/tc39/proposal-promise-try)\n```ts\nclass Promise {\n  static try(callbackfn: Function, ...args?: Array<mixed>): Promise;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/promise-try\n```\n\n##### [`Promise.withResolvers`](https://github.com/tc39/proposal-promise-with-resolvers)[⬆](#index)\n```ts\nclass Promise {\n  static withResolvers(): { promise: Promise, resolve: function, reject: function };\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/promise-with-resolvers\n```\n##### [`Symbol.asyncIterator` for asynchronous iteration](https://github.com/tc39/proposal-async-iteration)[⬆](#index)\n```ts\nclass Symbol {\n  static asyncIterator: @@asyncIterator;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/async-iteration\n```\n##### [`Symbol.prototype.description`](https://github.com/tc39/proposal-Symbol-description)[⬆](#index)\n```ts\nclass Symbol {\n  readonly attribute description: string | void;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/symbol-description\n```\n\n##### [`JSON.parse` source text access](https://github.com/tc39/proposal-json-parse-with-source)[⬆](#index)\n```ts\nnamespace JSON {\n  isRawJSON(O: any): boolean;\n  // patched for source support\n  parse(text: string, reviver?: (this: any, key: string, value: any, context: { source?: string }) => any): any;\n  rawJSON(text: any): RawJSON;\n  // patched for `JSON.rawJSON` support\n  stringify(value: any, replacer?: Array<string | number> | (this: any, key: string, value: any) => any, space?: string | number): string | void;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/json-parse-with-source\n```\n\n##### [Well-formed `JSON.stringify`](https://github.com/tc39/proposal-well-formed-stringify)[⬆](#index)\n```ts\nnamespace JSON {\n  stringify(target: any, replacer?: Function | Array, space?: string | number): string | void;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/well-formed-stringify\n```\n##### [Well-formed unicode strings](https://github.com/tc39/proposal-is-usv-string)[⬆](#index)\n```ts\nclass String {\n  isWellFormed(): boolean;\n  toWellFormed(): string;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/well-formed-unicode-strings\n```\n##### [New `Set` methods](https://github.com/tc39/proposal-set-methods)[⬆](#index)\n```ts\nclass Set {\n  difference(other: SetLike<mixed>): Set;\n  intersection(other: SetLike<mixed>): Set;\n  isDisjointFrom(other: SetLike<mixed>): boolean;\n  isSubsetOf(other: SetLike<mixed>): boolean;\n  isSupersetOf(other: SetLike<mixed>): boolean;\n  symmetricDifference(other: SetLike<mixed>): Set;\n  union(other: SetLike<mixed>): Set;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/set-methods-v2\n```\n\n##### [`Map` upsert](https://github.com/thumbsupep/proposal-upsert)[⬆](#index)\n```ts\nclass Map {\n  getOrInsert(key: any, value: any): any;\n  getOrInsertComputed(key: any, (key: any) => value: any): any;\n}\n\nclass WeakMap {\n  getOrInsert(key: object | symbol, value: any): any;\n  getOrInsertComputed(key: object | symbol, (key: any) => value: any): any;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/map-upsert-v4\n```\n\n##### [`Math.sumPrecise`](https://github.com/tc39/proposal-math-sum)\n```ts\nnamespace Math {\n  sumPrecise(items: Iterable<number>): Number;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/math-sum\n```\n\n#### Stage 3 proposals[⬆](#index)\n\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stage/3\n```\n\n##### [Joint iteration](https://github.com/tc39/proposal-joint-iteration)[⬆](#index)\nModules [esnext.iterator.zip](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.zip.js), [esnext.iterator.zip-keyed](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.zip-keyed.js)\n```ts\nclass Iterator {\n  zip<T extends readonly Iterable<unknown>[]>(\n    iterables: T,\n    options?: {\n      mode?: 'shortest' | 'longest' | 'strict';\n      padding?: { [K in keyof T]?: T[K] extends Iterable<infer U> ? U : never };\n    }\n  ): IterableIterator<{ [K in keyof T]: T[K] extends Iterable<infer U> ? U : never }>;\n  zipKeyed<K extends PropertyKey, V extends Record<K, Iterable<unknown>>>(\n    iterables: V,\n    options?: {\n      mode?: 'shortest' | 'longest' | 'strict';\n      padding?: { [P in keyof V]?: V[P] extends Iterable<infer U> ? U : never };\n    }\n  ): IterableIterator<{ [P in keyof V]: V[P] extends Iterable<infer U> ? U : never }>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/joint-iteration\ncore-js(-pure)/actual|full/iterator/zip\ncore-js(-pure)/actual|full/iterator/zip-keyed\n```\n[*Example*](https://tinyurl.com/vutnf2nu):\n```js\nIterator.zip([\n  [0, 1, 2],\n  [3, 4, 5],\n]).toArray();  // => [[0, 3], [1, 4], [2, 5]]\n\nIterator.zipKeyed({\n  a: [0, 1, 2],\n  b: [3, 4, 5, 6],\n  c: [7, 8, 9],\n}, {\n  mode: 'longest',\n  padding: { c: 10 },\n}).toArray();\n/*\n[\n  { a: 0,         b: 3, c: 7  },\n  { a: 1,         b: 4, c: 8  },\n  { a: 2,         b: 5, c: 9  },\n  { a: undefined, b: 6, c: 10 },\n];\n */\n```\n\n##### [`Symbol.metadata` for decorators metadata proposal](https://github.com/tc39/proposal-decorator-metadata)[⬆](#index)\nModules [`esnext.symbol.metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.metadata.js) and [`esnext.function.metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.function.metadata.js).\n```ts\nclass Symbol {\n  static metadata: @@metadata;\n}\n\nclass Function {\n  @@metadata: null;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/decorator-metadata-v2\ncore-js(-pure)/actual|full/symbol/metadata\ncore-js(-pure)/actual|full/function/metadata\n```\n\n#### Stage 2.7 proposals[⬆](#index)\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stage/2.7\n```\n\n##### [`Iterator` chunking](https://github.com/tc39/proposal-iterator-chunking)[⬆](#index)\nModules [`esnext.iterator.chunks`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.chunks.js)\nand [`esnext.iterator.windows`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.windows.js)\n```ts\nclass Iterator {\n  chunks(chunkSize: number): Iterator<any>;\n  windows(windowSize: number, undersized?: 'only-full' | 'allow-partial' | undefined): Iterator<any>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/iterator-chunking-v2\ncore-js(-pure)/full/iterator/chunks\ncore-js(-pure)/full/iterator/windows\n```\n[*Examples*](https://tinyurl.com/24xnkcnn)\n```js\nconst digits = () => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].values();\n\nlet chunks = Array.from(digits().chunks(2));  // [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]\n\nlet windows = Array.from(digits().windows(2));  // [[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9]]\n\nlet windowsPartial = Array.from([0, 1].values().windows(3, 'allow-partial'));  // [[0, 1]]\n\nlet windowsFull = Array.from([0, 1].values().windows(3));  // []\n```\n\n#### Stage 2 proposals[⬆](#index)\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stage/2\n```\n##### [`AsyncIterator` helpers](https://github.com/tc39/proposal-async-iterator-helpers)[⬆](#index)\nModules [`esnext.async-iterator.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.constructor.js), [`esnext.async-iterator.drop`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.drop.js), [`esnext.async-iterator.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.every.js), [`esnext.async-iterator.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.filter.js), [`esnext.async-iterator.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.find.js), [`esnext.async-iterator.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.flat-map.js), [`esnext.async-iterator.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.for-each.js), [`esnext.async-iterator.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.from.js), [`esnext.async-iterator.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.map.js), [`esnext.async-iterator.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.reduce.js), [`esnext.async-iterator.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.some.js), [`esnext.async-iterator.take`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.take.js), [`esnext.async-iterator.to-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.to-array.js), , [`esnext.iterator.to-async`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.to-async.js)\n```ts\nclass Iterator {\n  toAsync(): AsyncIterator<any>;\n}\n\nclass AsyncIterator {\n  static from(iterable: AsyncIterable<any> | Iterable<any> | AsyncIterator<any>): AsyncIterator<any>;\n  drop(limit: uint): AsyncIterator<any>;\n  every(async callbackfn: (value: any, counter: uint) => boolean): Promise<boolean>;\n  filter(async callbackfn: (value: any, counter: uint) => boolean): AsyncIterator<any>;\n  find(async callbackfn: (value: any, counter: uint) => boolean)): Promise<any>;\n  flatMap(async callbackfn: (value: any, counter: uint) => AsyncIterable<any> | Iterable<any> | AsyncIterator<any>): AsyncIterator<any>;\n  forEach(async callbackfn: (value: any, counter: uint) => void): Promise<void>;\n  map(async callbackfn: (value: any, counter: uint) => any): AsyncIterator<any>;\n  reduce(async callbackfn: (memo: any, value: any, counter: uint) => any, initialValue: any): Promise<any>;\n  some(async callbackfn: (value: any, counter: uint) => boolean): Promise<boolean>;\n  take(limit: uint): AsyncIterator<any>;\n  toArray(): Promise<Array>;\n  @@toStringTag: 'AsyncIterator'\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/async-iterator-helpers\ncore-js(-pure)/actual|full/async-iterator\ncore-js(-pure)/actual|full/async-iterator/drop\ncore-js(-pure)/actual|full/async-iterator/every\ncore-js(-pure)/actual|full/async-iterator/filter\ncore-js(-pure)/actual|full/async-iterator/find\ncore-js(-pure)/actual|full/async-iterator/flat-map\ncore-js(-pure)/actual|full/async-iterator/for-each\ncore-js(-pure)/actual|full/async-iterator/from\ncore-js(-pure)/actual|full/async-iterator/map\ncore-js(-pure)/actual|full/async-iterator/reduce\ncore-js(-pure)/actual|full/async-iterator/some\ncore-js(-pure)/actual|full/async-iterator/take\ncore-js(-pure)/actual|full/async-iterator/to-array\ncore-js(-pure)/actual|full/iterator/to-async\n```\n[Examples](https://tinyurl.com/28tet4ek):\n```js\nawait AsyncIterator.from([1, 2, 3, 4, 5, 6, 7])\n  .drop(1)\n  .take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nawait [1, 2, 3].values().toAsync().map(async it => it ** 2).toArray(); // => [1, 4, 9]\n```\n\n###### Caveats:[⬆](#index)\n- For preventing prototypes pollution, in the `pure` version, new `%AsyncIteratorPrototype%` methods are not added to the real `%AsyncIteratorPrototype%`, they available only on wrappers - instead of `[].values().toAsync().map(fn)` use `AsyncIterator.from([]).map(fn)`.\n- Now, we have access to the real `%AsyncIteratorPrototype%` only with usage async generators syntax. So, for compatibility of the library with old browsers, we should use `Function` constructor. However, that breaks compatibility with CSP. So, if you wanna use the real `%AsyncIteratorPrototype%`, you should set `USE_FUNCTION_CONSTRUCTOR` option in the `core-js/configurator` to `true`:\n```js\nconst configurator = require('core-js/configurator');\n\nconfigurator({ USE_FUNCTION_CONSTRUCTOR: true });\n\nrequire('core-js/actual/async-iterator');\n\n(async function * () { /* empty */ })() instanceof AsyncIterator; // => true\n```\n- As an alternative, you could pass to the `core-js/configurator` an object that will be considered as `%AsyncIteratorPrototype%`:\n```js\nconst configurator = require('core-js/configurator');\n\nconst { getPrototypeOf } = Object;\n\nconfigurator({ AsyncIteratorPrototype: getPrototypeOf(getPrototypeOf(getPrototypeOf(async function * () { /* empty */ }()))) });\n\nrequire('core-js/actual/async-iterator');\n\n(async function * () { /* empty */ })() instanceof AsyncIterator; // => true\n```\n\n##### [`Iterator.range`](https://github.com/tc39/proposal-Number.range)[⬆](#index)\nModule [`esnext.iterator.range`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.range.js)\n```ts\nclass Iterator {\n  range(start: number, end: number, options: { step: number = 1, inclusive: boolean = false } | step: number = 1): NumericRangeIterator;\n  range(start: bigint, end: bigint | Infinity | -Infinity, options: { step: bigint = 1n, inclusive: boolean = false } | step: bigint = 1n): NumericRangeIterator;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/number-range\ncore-js(-pure)/full/iterator/range\n```\n[*Example*](https://tinyurl.com/2gobe777):\n```js\nfor (const i of Iterator.range(1, 10)) {\n  console.log(i); // => 1, 2, 3, 4, 5, 6, 7, 8, 9\n}\n\nfor (const i of Iterator.range(1, 10, { step: 3, inclusive: true })) {\n  console.log(i); // => 1, 4, 7, 10\n}\n```\n\n##### [`Array.isTemplateObject`](https://github.com/tc39/proposal-array-is-template-object)[⬆](#index)\nModule [`esnext.array.is-template-object`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array.is-template-object.js)\n```ts\nclass Array {\n  static isTemplateObject(value: any): boolean\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/array-is-template-object\ncore-js(-pure)/full/array/is-template-object\n```\n*Example*:\n```js\nconsole.log(Array.isTemplateObject((it => it)`qwe${ 123 }asd`)); // => true\n```\n\n##### [`Number.prototype.clamp`](https://github.com/tc39/proposal-math-clamp)[⬆](#index)\nModule [`esnext.number.clamp`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.number.clamp.js)\n```ts\nclass Number {\n  clamp(min: number, max: number): number;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/math-clamp-v2\ncore-js(-pure)/full/number/clamp\n```\n[*Example*](https://tinyurl.com/yeyv7nxz):\n```js\n5.0.clamp(0, 10); // => 5\n-5.0.clamp(0, 10); // => 0\n15.0.clamp(0, 10); // => 10\n````\n\n##### [`String.dedent`](https://github.com/tc39/proposal-string-dedent)[⬆](#index)\nModule [`esnext.string.dedent`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.string.dedent.js)\n```ts\nclass String {\n  static dedent(templateOrTag: { raw: Array<string> } | function, ...substitutions: Array<string>): string | function;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/string-dedent\ncore-js(-pure)/full/string/dedent\n```\n[*Example*](https://tinyurl.com/2lbnofgo):\n```js\nconst message = 42;\n\nconsole.log(String.dedent`\n  print('${ message }')\n`); // => print('42')\n\nString.dedent(console.log)`\n  print('${ message }')\n`; // => [\"print('\", \"')\", raw: Array(2)], 42\n```\n\n##### [`Symbol` predicates](https://github.com/tc39/proposal-symbol-predicates)[⬆](#index)\nModules [`esnext.symbol.is-registered-symbol`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.is-registered-symbol.js), [`esnext.symbol.is-well-known-symbol`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.is-well-known-symbol.js).\n```ts\nclass Symbol {\n  static isRegisteredSymbol(value: any): boolean;\n  static isWellKnownSymbol(value: any): boolean;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/symbol-predicates-v2\ncore-js(-pure)/full/symbol/is-registered-symbol\ncore-js(-pure)/full/symbol/is-well-known-symbol\n```\n[*Example*](https://tinyurl.com/2oqoaq7t):\n```js\nSymbol.isRegisteredSymbol(Symbol.for('key')); // => true\nSymbol.isRegisteredSymbol(Symbol('key')); // => false\n\nSymbol.isWellKnownSymbol(Symbol.iterator); // => true\nSymbol.isWellKnownSymbol(Symbol('key')); // => false\n```\n\n##### [`Symbol.customMatcher` for extractors](https://github.com/tc39/proposal-extractors)[⬆](#index)\nModule [`esnext.symbol.custom-matcher`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.custom-matcher.js).\n```ts\nclass Symbol {\n  static customMatcher: @@customMatcher;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/pattern-extractors\ncore-js(-pure)/full/symbol/custom-matcher\n```\n\n#### Stage 1 proposals[⬆](#index)\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stage/1\n```\n##### [`Observable`](https://github.com/zenparsing/es-observable)[⬆](#index)\nModules [`esnext.observable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.observable.js) and [`esnext.symbol.observable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.observable.js)\n```ts\nclass Observable {\n  constructor(subscriber: Function): Observable;\n  subscribe(observer: Function | { next?: Function, error?: Function, complete?: Function }): Subscription;\n  @@observable(): this;\n  static of(...items: Array<mixed>): Observable;\n  static from(x: Observable | Iterable): Observable;\n  static readonly attribute @@species: this;\n}\n\nclass Symbol {\n  static observable: @@observable;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/observable\ncore-js(-pure)/full/observable\ncore-js(-pure)/full/symbol/observable\n```\n*Example*:\n```js\nnew Observable(observer => {\n  observer.next('hello');\n  observer.next('world');\n  observer.complete();\n}).subscribe({\n  next(it) { console.log(it); },\n  complete() { console.log('!'); },\n});\n```\n##### [New collections methods](https://github.com/tc39/proposal-collection-methods)[⬆](#index)\nModules [`esnext.set.add-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.add-all.js), [`esnext.set.delete-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.delete-all.js), [`esnext.set.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.every.js), [`esnext.set.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.filter.js), [`esnext.set.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.find.js), [`esnext.set.join`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.join.js), [`esnext.set.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.map.js), [`esnext.set.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.reduce.js), [`esnext.set.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.some.js), [`esnext.map.delete-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.delete-all.js), [`esnext.map.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.every.js), [`esnext.map.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.filter.js), [`esnext.map.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.find.js), [`esnext.map.find-key`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.find-key.js), [`esnext.map.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.includes.js), [`esnext.map.key-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.key-by.js), [`esnext.map.key-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.key-of.js), [`esnext.map.map-keys`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.map-keys.js), [`esnext.map.map-values`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.map-values.js), [`esnext.map.merge`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.merge.js), [`esnext.map.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.reduce.js), [`esnext.map.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.some.js), [`esnext.map.update`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.update.js), [`esnext.weak-set.add-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-set.add-all.js), [`esnext.weak-set.delete-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-set.delete-all.js), [`esnext.weak-map.delete-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-map.delete-all.js)\n##### [`.of` and `.from` methods on collection constructors](https://github.com/tc39/proposal-setmap-offrom)[⬆](#index)\nModules [`esnext.set.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.of.js), [`esnext.set.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.from.js), [`esnext.map.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.of.js), [`esnext.map.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.from.js), [`esnext.weak-set.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-set.of.js), [`esnext.weak-set.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-set.from.js), [`esnext.weak-map.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-map.of.js), [`esnext.weak-map.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-map.from.js)\n```ts\nclass Set {\n  static of(...args: Array<mixed>): Set;\n  static from(iterable: Iterable<mixed>, mapFn?: (value: any, index: number) => any, thisArg?: any): Set;\n  addAll(...args: Array<mixed>): this;\n  deleteAll(...args: Array<mixed>): boolean;\n  every(callbackfn: (value: any, key: any, target: any) => boolean, thisArg?: any): boolean;\n  filter(callbackfn: (value: any, key: any, target: any) => boolean, thisArg?: any): Set;\n  find(callbackfn: (value: any, key: any, target: any) => boolean), thisArg?: any): any;\n  join(separator: string = ','): string;\n  map(callbackfn: (value: any, key: any, target: any) => any, thisArg?: any): Set;\n  reduce(callbackfn: (memo: any, value: any, key: any, target: any) => any, initialValue?: any): any;\n  some(callbackfn: (value: any, key: any, target: any) => boolean, thisArg?: any): boolean;\n}\n\nclass Map {\n  static of(...args: Array<[key, value]>): Map;\n  static from(iterable: Iterable<mixed>, mapFn?: (value: any, index: number) => [key: any, value: any], thisArg?: any): Map;\n  static keyBy(iterable: Iterable<mixed>, callbackfn?: (value: any) => any): Map;\n  deleteAll(...args: Array<mixed>): boolean;\n  every(callbackfn: (value: any, key: any, target: any) => boolean, thisArg?: any): boolean;\n  filter(callbackfn: (value: any, key: any, target: any) => boolean, thisArg?: any): Map;\n  find(callbackfn: (value: any, key: any, target: any) => boolean), thisArg?: any): any;\n  findKey(callbackfn: (value: any, key: any, target: any) => boolean), thisArg?: any): any;\n  includes(searchElement: any): boolean;\n  keyOf(searchElement: any): any;\n  mapKeys(mapFn: (value: any, index: number, target: any) => any, thisArg?: any): Map;\n  mapValues(mapFn: (value: any, index: number, target: any) => any, thisArg?: any): Map;\n  merge(...iterables: Array<Iterable>): this;\n  reduce(callbackfn: (memo: any, value: any, key: any, target: any) => any, initialValue?: any): any;\n  some(callbackfn: (value: any, key: any, target: any) => boolean, thisArg?: any): boolean;\n  update(key: any, callbackfn: (value: any, key: any, target: any) => any, thunk?: (key: any, target: any) => any): this;\n}\n\nclass WeakSet {\n  static of(...args: Array<mixed>): WeakSet;\n  static from(iterable: Iterable<mixed>, mapFn?: (value: any, index: number) => Object, thisArg?: any): WeakSet;\n  addAll(...args: Array<mixed>): this;\n  deleteAll(...args: Array<mixed>): boolean;\n}\n\nclass WeakMap {\n  static of(...args: Array<[key, value]>): WeakMap;\n  static from(iterable: Iterable<mixed>, mapFn?: (value: any, index: number) => [key: Object, value: any], thisArg?: any): WeakMap;\n  deleteAll(...args: Array<mixed>): boolean;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/collection-methods\ncore-js/proposals/collection-of-from\ncore-js(-pure)/full/set/add-all\ncore-js(-pure)/full/set/delete-all\ncore-js(-pure)/full/set/every\ncore-js(-pure)/full/set/filter\ncore-js(-pure)/full/set/find\ncore-js(-pure)/full/set/from\ncore-js(-pure)/full/set/join\ncore-js(-pure)/full/set/map\ncore-js(-pure)/full/set/of\ncore-js(-pure)/full/set/reduce\ncore-js(-pure)/full/set/some\ncore-js(-pure)/full/map/delete-all\ncore-js(-pure)/full/map/every\ncore-js(-pure)/full/map/filter\ncore-js(-pure)/full/map/find\ncore-js(-pure)/full/map/find-key\ncore-js(-pure)/full/map/from\ncore-js(-pure)/full/map/includes\ncore-js(-pure)/full/map/key-by\ncore-js(-pure)/full/map/key-of\ncore-js(-pure)/full/map/map-keys\ncore-js(-pure)/full/map/map-values\ncore-js(-pure)/full/map/merge\ncore-js(-pure)/full/map/of\ncore-js(-pure)/full/map/reduce\ncore-js(-pure)/full/map/some\ncore-js(-pure)/full/map/update\ncore-js(-pure)/full/weak-set/add-all\ncore-js(-pure)/full/weak-set/delete-all\ncore-js(-pure)/full/weak-set/of\ncore-js(-pure)/full/weak-set/from\ncore-js(-pure)/full/weak-map/delete-all\ncore-js(-pure)/full/weak-map/of\ncore-js(-pure)/full/weak-map/from\n```\n`.of` / `.from` [*examples*](https://tinyurl.com/27fktwtw):\n```js\nSet.of(1, 2, 3, 2, 1); // => Set {1, 2, 3}\n\nMap.from([[1, 2], [3, 4]], ([key, value]) => [key ** 2, value ** 2]); // => Map { 1: 4, 9: 16 }\n```\n##### [`compositeKey` and `compositeSymbol`](https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey)[⬆](#index)\nModules [`esnext.composite-key`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.composite-key.js) and [`esnext.composite-symbol`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.composite-symbol.js)\n```ts\nfunction compositeKey(...args: Array<mixed>): object;\nfunction compositeSymbol(...args: Array<mixed>): symbol;\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/keys-composition\ncore-js(-pure)/full/composite-key\ncore-js(-pure)/full/composite-symbol\n```\n[*Examples*](https://tinyurl.com/2c8pczur):\n```js\n// returns a symbol\nconst symbol = compositeSymbol({});\nconsole.log(typeof symbol); // => 'symbol'\n\n// works the same, but returns a plain frozen object without a prototype\nconst key = compositeKey({});\nconsole.log(typeof key); // => 'object'\nconsole.log({}.toString.call(key)); // => '[object Object]'\nconsole.log(Object.getPrototypeOf(key)); // => null\nconsole.log(Object.isFrozen(key)); // => true\n\nconst a = ['a'];\nconst b = ['b'];\nconst c = ['c'];\n\n/* eslint-disable no-self-compare -- example */\nconsole.log(compositeSymbol(a) === compositeSymbol(a)); // => true\nconsole.log(compositeSymbol(a) !== compositeSymbol(['a'])); // => true\nconsole.log(compositeSymbol(a, 1) === compositeSymbol(a, 1)); // => true\nconsole.log(compositeSymbol(a, b) !== compositeSymbol(b, a)); // => true\nconsole.log(compositeSymbol(a, b, c) === compositeSymbol(a, b, c)); // => true\nconsole.log(compositeSymbol(1, a) === compositeSymbol(1, a)); // => true\nconsole.log(compositeSymbol(1, a, 2, b) === compositeSymbol(1, a, 2, b)); // => true\nconsole.log(compositeSymbol(a, a) === compositeSymbol(a, a)); // => true\n```\n##### [Array filtering](https://github.com/tc39/proposal-array-filtering)[⬆](#index)\nModules [`esnext.array.filter-reject`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array.filter-reject.js) and [`esnext.typed-array.filter-reject`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.typed-array.filter-reject.js).\n```ts\nclass Array {\n  filterReject(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): Array<mixed>;\n}\n\nclass %TypedArray% {\n  filterReject(callbackfn: (value: number, index: number, target: %TypedArray%) => boolean, thisArg?: any): %TypedArray%;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/array-filtering-stage-1\ncore-js(-pure)/full/array(/virtual)/filter-reject\ncore-js/full/typed-array/filter-reject\n```\n[*Examples*](https://is.gd/jJcoWw):\n```js\n[1, 2, 3, 4, 5].filterReject(it => it % 2); // => [2, 4]\n```\n##### [Array deduplication](https://github.com/tc39/proposal-array-unique)[⬆](#index)\nModules [`esnext.array.unique-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array.unique-by.js) and [`esnext.typed-array.unique-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.typed-array.unique-by.js)\n```ts\nclass Array {\n  uniqueBy(resolver?: (item: any) => any): Array<mixed>;\n}\n\nclass %TypedArray% {\n  uniqueBy(resolver?: (item: any) => any): %TypedArray%;;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/array-unique\ncore-js(-pure)/full/array(/virtual)/unique-by\ncore-js/full/typed-array/unique-by\n```\n[*Examples*](https://is.gd/lilNPu):\n```js\n[1, 2, 3, 2, 1].uniqueBy(); // [1, 2, 3]\n\n[\n  { id: 1, uid: 10000 },\n  { id: 2, uid: 10000 },\n  { id: 3, uid: 10001 },\n].uniqueBy(it => it.uid);    // => [{ id: 1, uid: 10000 }, { id: 3, uid: 10001 }]\n```\n\n##### [`DataView` get / set `Uint8Clamped` methods](https://github.com/tc39/proposal-dataview-get-set-uint8clamped)[⬆](#index)\nModules [`esnext.data-view.get-uint8-clamped`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.data-view.get-uint8-clamped.js) and [`esnext.data-view.set-uint8-clamped`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.data-view.set-uint8-clamped.js)\n```ts\nclass DataView {\n  getUint8Clamped(offset: any): uint8\n  setUint8Clamped(offset: any, value: any): void;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/data-view-get-set-uint8-clamped\ncore-js/full/dataview/get-uint8-clamped\ncore-js/full/dataview/set-uint8-clamped\n```\n[Examples](https://tinyurl.com/2h4zv8sw):\n```js\nconst view = new DataView(new ArrayBuffer(1));\nview.setUint8Clamped(0, 100500);\nconsole.log(view.getUint8Clamped(0)); // => 255\n```\n\n##### [`Number.fromString`](https://github.com/tc39/proposal-number-fromstring)[⬆](#index)\nModule [`esnext.number.from-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.number.from-string.js)\n```ts\nclass Number {\n  fromString(string: string, radix: number): number;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/number-from-string\ncore-js(-pure)/full/number/from-string\n```\n\n##### [`String.cooked`](https://github.com/tc39/proposal-string-cooked)[⬆](#index)\nModule [`esnext.string.cooked`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.string.cooked.js)\n```ts\nclass String {\n  static cooked(template: Array<string>, ...substitutions: Array<string>): string;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/string-cooked\ncore-js(-pure)/full/string/cooked\n```\n[*Example*](https://is.gd/7QPnss):\n```js\nfunction safePath(strings, ...subs) {\n  return String.cooked(strings, ...subs.map(sub => encodeURIComponent(sub)));\n}\n\nlet id = 'spottie?';\n\nsafePath`/cats/${ id }`; // => /cats/spottie%3F\n```\n##### [`String.prototype.codePoints`](https://github.com/tc39/proposal-string-prototype-codepoints)[⬆](#index)\nModule [`esnext.string.code-points`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.string.code-points.js)\n```ts\nclass String {\n  codePoints(): Iterator<{ codePoint, position }>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/string-code-points\ncore-js(-pure)/full/string/code-points\n```\n[*Example*](https://tinyurl.com/2bt9bhwn):\n```js\nfor (let { codePoint, position } of 'qwe'.codePoints()) {\n  console.log(codePoint); // => 113, 119, 101\n  console.log(position);  // => 0, 1, 2\n}\n```\n\n##### [`Symbol.customMatcher` for pattern matching](https://github.com/tc39/proposal-pattern-matching)[⬆](#index)\nModule [`esnext.symbol.custom-matcher`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.custom-matcher.js).\n```ts\nclass Symbol {\n  static customMatcher: @@customMatcher;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/pattern-matching-v2\ncore-js(-pure)/full/symbol/custom-matcher\n```\n\n#### Stage 0 proposals[⬆](#index)\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stage/0\n```\n##### [`Function.prototype.demethodize`](https://github.com/js-choi/proposal-function-demethodize)[⬆](#index)\nModule [`esnext.function.demethodize`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.function.demethodize.js)\n```ts\nclass Function {\n  demethodize(): Function;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/function-demethodize\ncore-js(-pure)/full/function/demethodize\ncore-js(-pure)/full/function/virtual/demethodize\n```\n[*Examples*](https://tinyurl.com/2ltmohgl):\n```js\nconst slice = Array.prototype.slice.demethodize();\n\nslice([1, 2, 3], 1); // => [2, 3]\n```\n##### [`Function.{ isCallable, isConstructor }`](https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md)[⬆](#index)\n\nModules [`esnext.function.is-callable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.function.is-callable.js), [`esnext.function.is-constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.function.is-constructor.js)\n```ts\nclass Function {\n  static isCallable(value: any): boolean;\n  static isConstructor(value: any): boolean;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/function-is-callable-is-constructor\ncore-js(-pure)/full/function/is-callable\ncore-js(-pure)/full/function/is-constructor\n```\n[*Examples*](https://is.gd/Kof1he):\n```js\n/* eslint-disable prefer-arrow-callback -- example */\nFunction.isCallable(null);                        // => false\nFunction.isCallable({});                          // => false\nFunction.isCallable(function () { /* empty */ }); // => true\nFunction.isCallable(() => { /* empty */ });       // => true\nFunction.isCallable(class { /* empty */ });       // => false\n\nFunction.isConstructor(null);                        // => false\nFunction.isConstructor({});                          // => false\nFunction.isConstructor(function () { /* empty */ }); // => true\nFunction.isConstructor(() => { /* empty */ });       // => false\nFunction.isConstructor(class { /* empty */ });       // => true\n```\n\n#### Pre-stage 0 proposals[⬆](#index)\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stage/pre\n```\n##### [`Reflect` metadata](https://github.com/rbuckton/reflect-metadata)[⬆](#index)\nModules [`esnext.reflect.define-metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.define-metadata.js), [`esnext.reflect.delete-metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.delete-metadata.js), [`esnext.reflect.get-metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.get-metadata.js), [`esnext.reflect.get-metadata-keys`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.get-metadata-keys.js), [`esnext.reflect.get-own-metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.get-own-metadata.js), [`esnext.reflect.get-own-metadata-keys`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.get-own-metadata-keys.js), [`esnext.reflect.has-metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.has-metadata.js), [`esnext.reflect.has-own-metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.has-own-metadata.js) and [`esnext.reflect.metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.metadata.js).\n```ts\nnamespace Reflect {\n  defineMetadata(metadataKey: any, metadataValue: any, target: Object, propertyKey?: PropertyKey): void;\n  getMetadata(metadataKey: any, target: Object, propertyKey?: PropertyKey): any;\n  getOwnMetadata(metadataKey: any, target: Object, propertyKey?: PropertyKey): any;\n  hasMetadata(metadataKey: any, target: Object, propertyKey?: PropertyKey): boolean;\n  hasOwnMetadata(metadataKey: any, target: Object, propertyKey?: PropertyKey): boolean;\n  deleteMetadata(metadataKey: any, target: Object, propertyKey?: PropertyKey): boolean;\n  getMetadataKeys(target: Object, propertyKey?: PropertyKey): Array<mixed>;\n  getOwnMetadataKeys(target: Object, propertyKey?: PropertyKey): Array<mixed>;\n  metadata(metadataKey: any, metadataValue: any): decorator(target: Object, targetKey?: PropertyKey) => void;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/reflect-metadata\ncore-js(-pure)/full/reflect/define-metadata\ncore-js(-pure)/full/reflect/delete-metadata\ncore-js(-pure)/full/reflect/get-metadata\ncore-js(-pure)/full/reflect/get-metadata-keys\ncore-js(-pure)/full/reflect/get-own-metadata\ncore-js(-pure)/full/reflect/get-own-metadata-keys\ncore-js(-pure)/full/reflect/has-metadata\ncore-js(-pure)/full/reflect/has-own-metadata\ncore-js(-pure)/full/reflect/metadata\n```\n[*Examples*](https://tinyurl.com/27t6a5ya):\n```js\nlet object = {};\nReflect.defineMetadata('foo', 'bar', object);\nReflect.ownKeys(object);               // => []\nReflect.getOwnMetadataKeys(object);    // => ['foo']\nReflect.getOwnMetadata('foo', object); // => 'bar'\n```\n\n### Web standards[⬆](#index)\n#### `self`[⬆](#index)\n[Spec](https://html.spec.whatwg.org/multipage/window-object.html#dom-self), module [`web.self`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.self.js)\n```ts\ngetter self: GlobalThisValue;\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stable|actual|full/self\n```\n[*Examples*](https://tinyurl.com/27nghouh):\n```js\n// eslint-disable-next-line no-restricted-globals -- example\nself.Array === Array; // => true\n```\n\n#### `structuredClone`[⬆](#index)\n[Spec](https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone), module [`web.structured-clone`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.structured-clone.js)\n```ts\nfunction structuredClone(value: Serializable, { transfer?: Sequence<Transferable> }): any;\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stable|actual|full/structured-clone\n```\n[*Examples*](https://is.gd/RhK7TW):\n```js\nconst structured = [{ a: 42 }];\nconst sclone = structuredClone(structured);\nconsole.log(sclone);                      // => [{ a: 42 }]\nconsole.log(structured !== sclone);       // => true\nconsole.log(structured[0] !== sclone[0]); // => true\n\nconst circular = {};\ncircular.circular = circular;\nconst cclone = structuredClone(circular);\nconsole.log(cclone.circular === cclone);  // => true\n\nstructuredClone(42);                                            // => 42\nstructuredClone({ x: 42 });                                     // => { x: 42 }\nstructuredClone([1, 2, 3]);                                     // => [1, 2, 3]\nstructuredClone(new Set([1, 2, 3]));                            // => Set{ 1, 2, 3 }\nstructuredClone(new Map([['a', 1], ['b', 2]]));                 // => Map{ a: 1, b: 2 }\nstructuredClone(new Int8Array([1, 2, 3]));                      // => new Int8Array([1, 2, 3])\nstructuredClone(new AggregateError([1, 2, 3], 'message'));      // => new AggregateError([1, 2, 3], 'message'))\nstructuredClone(new TypeError('message', { cause: 42 }));       // => new TypeError('message', { cause: 42 })\nstructuredClone(new DOMException('message', 'DataCloneError')); // => new DOMException('message', 'DataCloneError')\nstructuredClone(document.getElementById('myfileinput'));        // => new FileList\nstructuredClone(new DOMPoint(1, 2, 3, 4));                      // => new DOMPoint(1, 2, 3, 4)\nstructuredClone(new Blob(['test']));                            // => new Blob(['test'])\nstructuredClone(new ImageData(8, 8));                           // => new ImageData(8, 8)\n// etc.\n\nstructuredClone(new WeakMap()); // => DataCloneError on non-serializable types\n```\n> [!WARNING]\n> - Many platform types cannot be transferred in most engines since we have no way to polyfill this behavior, however `.transfer` option works for some platform types. I recommend avoiding this option.\n> - Some specific platform types can't be cloned in old engines. Mainly it's very specific types or very old engines, but here are some exceptions. For example, we have no sync way to clone `ImageBitmap` in Safari 14.0- or Firefox 83-, so it's recommended to look to the [polyfill source](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.structured-clone.js) if you wanna clone something specific.\n\n#### Base64 utility methods[⬆](#index)\n[Specification](https://html.spec.whatwg.org/multipage/webappapis.html#atob), [MDN](https://developer.mozilla.org/en-US/docs/Glossary/Base64). Modules [`web.atob`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.atob.js), [`web.btoa`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.btoa.js).\n```ts\nfunction atob(data: string): string;\nfunction btoa(data: string): string;\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stable|actual|full/atob\ncore-js(-pure)/stable|actual|full/btoa\n```\n[*Examples*](https://is.gd/4Nxmzn):\n```js\nbtoa('hi, core-js');      // => 'aGksIGNvcmUtanM='\natob('aGksIGNvcmUtanM='); // => 'hi, core-js'\n```\n\n#### `setTimeout` and `setInterval`[⬆](#index)\nModule [`web.timers`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.timers.js). Additional arguments fix for IE9-.\n```ts\nfunction setTimeout(callback: any, time: any, ...args: Array<mixed>): number;\nfunction setInterval(callback: any, time: any, ...args: Array<mixed>): number;\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stable|actual|full/set-timeout\ncore-js(-pure)/stable|actual|full/set-interval\n```\n```js\n// Before:\nsetTimeout(log.bind(null, 42), 1000);\n// After:\nsetTimeout(log, 1000, 42);\n```\n#### `setImmediate`[⬆](#index)\nModule [`web.immediate`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.immediate.js). [`setImmediate`](https://w3c.github.io/setImmediate/) polyfill.\n```ts\nfunction setImmediate(callback: any, ...args: Array<mixed>): number;\nfunction clearImmediate(id: number): void;\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stable|actual|full/set-immediate\ncore-js(-pure)/stable|actual|full/clear-immediate\n```\n[*Examples*](https://tinyurl.com/25u8y8ks):\n```js\nsetImmediate((arg1, arg2) => {\n  console.log(arg1, arg2); // => Message will be displayed with minimum delay\n}, 'Message will be displayed', 'with minimum delay');\n\nclearImmediate(setImmediate(() => {\n  console.log('Message will not be displayed');\n}));\n```\n\n#### `queueMicrotask`[⬆](#index)\n[Spec](https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask), module [`web.queue-microtask`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.queue-microtask.js)\n```ts\nfunction queueMicrotask(fn: Function): void;\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stable|actual|full/queue-microtask\n```\n[*Examples*](https://tinyurl.com/2dk9f3zm):\n```js\nqueueMicrotask(() => console.log('called as microtask'));\n```\n\n#### `URL` and `URLSearchParams`[⬆](#index)\n[`URL` standard](https://url.spec.whatwg.org/) implementation. Modules [`web.url`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.js), [`web.url.can-parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.can-parse.js), [`web.url.parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.parse.js), [`web.url.to-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.to-json.js), [`web.url-search-params`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.js), [`web.url-search-params.delete`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.delete.js), [`web.url-search-params.has`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.has.js), [`web.url-search-params.size`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.size.js).\n```ts\nclass URL {\n  constructor(url: string, base?: string);\n  attribute href: string;\n  readonly attribute origin: string;\n  attribute protocol: string;\n  attribute username: string;\n  attribute password: string;\n  attribute host: string;\n  attribute hostname: string;\n  attribute port: string;\n  attribute pathname: string;\n  attribute search: string;\n  readonly attribute searchParams: URLSearchParams;\n  attribute hash: string;\n  toJSON(): string;\n  toString(): string;\n  static canParse(url: string, base?: string): boolean;\n  static parse(url: string, base?: string): URL | null;\n}\n\nclass URLSearchParams {\n  constructor(params?: string | Iterable<[key, value]> | Object);\n  append(name: string, value: string): void;\n  delete(name: string, value?: string): void;\n  get(name: string): string | void;\n  getAll(name: string): Array<string>;\n  has(name: string, value?: string): boolean;\n  set(name: string, value: string): void;\n  sort(): void;\n  toString(): string;\n  forEach(callbackfn: (value: any, index: number, target: any) => void, thisArg: any): void;\n  entries(): Iterator<[key, value]>;\n  keys(): Iterator<key>;\n  values(): Iterator<value>;\n  @@iterator(): Iterator<[key, value]>;\n  readonly attribute size: number;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js/proposals/url\ncore-js(-pure)/stable|actual|full/url\ncore-js(-pure)/stable|actual|full/url/can-parse\ncore-js/stable|actual|full/url/to-json\ncore-js(-pure)/stable|actual|full/url-search-params\n```\n[*Examples*](https://tinyurl.com/2yz45vol):\n```js\nURL.canParse('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'); // => true\nURL.canParse('https'); // => false\n\nURL.parse('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'); // => url\nURL.parse('https'); // => null\n\nconst url = new URL('https://login:password@example.com:8080/foo/bar?a=1&b=2&a=3#fragment');\n\nconsole.log(url.href);       // => 'https://login:password@example.com:8080/foo/bar?a=1&b=2&a=3#fragment'\nconsole.log(url.origin);     // => 'https://example.com:8080'\nconsole.log(url.protocol);   // => 'https:'\nconsole.log(url.username);   // => 'login'\nconsole.log(url.password);   // => 'password'\nconsole.log(url.host);       // => 'example.com:8080'\nconsole.log(url.hostname);   // => 'example.com'\nconsole.log(url.port);       // => '8080'\nconsole.log(url.pathname);   // => '/foo/bar'\nconsole.log(url.search);     // => '?a=1&b=2&a=3'\nconsole.log(url.hash);       // => '#fragment'\nconsole.log(url.toJSON());   // => 'https://login:password@example.com:8080/foo/bar?a=1&b=2&a=3#fragment'\nconsole.log(url.toString()); // => 'https://login:password@example.com:8080/foo/bar?a=1&b=2&a=3#fragment'\n\nfor (let [key, value] of url.searchParams) {\n  console.log(key);   // => 'a', 'b', 'a'\n  console.log(value); // => '1', '2', '3'\n}\n\nurl.pathname = '';\nurl.searchParams.append('c', 4);\n\nconsole.log(url.search); // => '?a=1&b=2&a=3&c=4'\nconsole.log(url.href);   // => 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'\n\nconst params = new URLSearchParams('?a=1&b=2&a=3');\n\nparams.append('c', 4);\nparams.append('a', 2);\nparams.delete('a', 1);\nparams.sort();\n\nconsole.log(params.size); // => 4\n\nfor (let [key, value] of params) {\n  console.log(key);   // => 'a', 'a', 'b', 'c'\n  console.log(value); // => '3', '2', '2', '4'\n}\n\nconsole.log(params.has('a')); // => true\nconsole.log(params.has('a', 3)); // => true\nconsole.log(params.has('a', 4)); // => false\n\nconsole.log(params.toString()); // => 'a=3&a=2&b=2&c=4'\n```\n\n> [!WARNING]\n> - IE8 does not support setters, so they do not work on `URL` instances. However, `URL` constructor can be used for basic `URL` parsing.\n> - Legacy encodings in a search query are not supported. Also, `core-js` implementation has some other encoding-related issues.\n> - `URL` implementations from all of the popular browsers have significantly more problems than `core-js`, however, replacing all of them does not look like a good idea. You can customize the aggressiveness of polyfill [by your requirements](#configurable-level-of-aggressiveness).\n\n##### `DOMException`:[⬆](#index)\n[The specification.](https://webidl.spec.whatwg.org/#idl-DOMException) Modules [`web.dom-exception.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.dom-exception.constructor.js), [`web.dom-exception.stack`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.dom-exception.stack.js), [`web.dom-exception.to-string-tag`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.dom-exception.to-string-tag.js).\n```ts\nclass DOMException {\n  constructor(message: string, name?: string);\n  readonly attribute name: string;\n  readonly attribute message: string;\n  readonly attribute code: string;\n  attribute stack: string; // in engines that should have it\n  @@toStringTag: 'DOMException';\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stable|actual|full/dom-exception\ncore-js(-pure)/stable|actual|full/dom-exception/constructor\ncore-js/stable|actual|full/dom-exception/to-string-tag\n```\n[*Examples*](https://is.gd/pI6oTN):\n```js\nconst exception = new DOMException('error', 'DataCloneError');\nconsole.log(exception.name);                            // => 'DataCloneError'\nconsole.log(exception.message);                         // => 'error'\nconsole.log(exception.code);                            // => 25\nconsole.log(typeof exception.stack);                    // => 'string'\nconsole.log(exception instanceof DOMException);         // => true\nconsole.log(exception instanceof Error);                // => true\nconsole.log(exception.toString());                      // => 'DataCloneError: error'\nconsole.log(Object.prototype.toString.call(exception)); // => '[object DOMException]'\n```\n\n#### Iterable DOM collections[⬆](#index)\nSome DOM collections should have [iterable interface](https://heycam.github.io/webidl/#idl-iterable) or should be [inherited from `Array`](https://heycam.github.io/webidl/#LegacyArrayClass). That means they should have `forEach`, `keys`, `values`, `entries` and `@@iterator` methods for iteration. So add them. Modules [`web.dom-collections.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.dom-collections.iterator.js) and [`web.dom-collections.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.dom-collections.for-each.js).\n```ts\nclass [\n  CSSRuleList,\n  CSSStyleDeclaration,\n  CSSValueList,\n  ClientRectList,\n  DOMRectList,\n  DOMStringList,\n  DataTransferItemList,\n  FileList,\n  HTMLAllCollection,\n  HTMLCollection,\n  HTMLFormElement,\n  HTMLSelectElement,\n  MediaList,\n  MimeTypeArray,\n  NamedNodeMap,\n  PaintRequestList,\n  Plugin,\n  PluginArray,\n  SVGLengthList,\n  SVGNumberList,\n  SVGPathSegList,\n  SVGPointList,\n  SVGStringList,\n  SVGTransformList,\n  SourceBufferList,\n  StyleSheetList,\n  TextTrackCueList,\n  TextTrackList,\n  TouchList,\n] {\n  @@iterator(): Iterator<value>;\n}\n\nclass [DOMTokenList, NodeList] {\n  forEach(callbackfn: (value: any, index: number, target: any) => void, thisArg: any): void;\n  entries(): Iterator<[key, value]>;\n  keys(): Iterator<key>;\n  values(): Iterator<value>;\n  @@iterator(): Iterator<value>;\n}\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js(-pure)/stable|actual|full/dom-collections/iterator\ncore-js/stable|actual|full/dom-collections/for-each\n```\n[*Examples*](https://tinyurl.com/25rcspv4):\n```js\nfor (let { id } of document.querySelectorAll('*')) {\n  if (id) console.log(id);\n}\n\nfor (let [index, { id }] of document.querySelectorAll('*').entries()) {\n  if (id) console.log(index, id);\n}\n\ndocument.querySelectorAll('*').forEach(it => console.log(it.id));\n```\n### Iteration helpers[⬆](#index)\nHelpers for checking iterability / get iterator in the `pure` version or, for example, for `arguments` object:\n```ts\nfunction isIterable(value: any): boolean;\nfunction getIterator(value: any): Object;\nfunction getIteratorMethod(value: any): Function | void;\n```\n[*CommonJS entry points:*](#commonjs-api)\n```\ncore-js-pure/es|stable|actual|full/is-iterable\ncore-js-pure/es|stable|actual|full/get-iterator\ncore-js-pure/es|stable|actual|full/get-iterator-method\n```\n*Examples*:\n```js\nimport isIterable from 'core-js-pure/actual/is-iterable';\nimport getIterator from 'core-js-pure/actual/get-iterator';\nimport getIteratorMethod from 'core-js-pure/actual/get-iterator-method';\n\nlet list = (function () {\n  // eslint-disable-next-line prefer-rest-params -- example\n  return arguments;\n})(1, 2, 3);\n\nconsole.log(isIterable(list)); // true;\n\nlet iterator = getIterator(list);\nconsole.log(iterator.next().value); // 1\nconsole.log(iterator.next().value); // 2\nconsole.log(iterator.next().value); // 3\nconsole.log(iterator.next().value); // undefined\n\ngetIterator({}); // TypeError: [object Object] is not iterable!\n\nlet method = getIteratorMethod(list);\nconsole.log(typeof method);         // 'function'\niterator = method.call(list);\nconsole.log(iterator.next().value); // 1\nconsole.log(iterator.next().value); // 2\nconsole.log(iterator.next().value); // 3\nconsole.log(iterator.next().value); // undefined\n\nconsole.log(getIteratorMethod({})); // undefined\n```\n\n## Missing polyfills[⬆](#index)\n- ES `BigInt` can't be polyfilled since it requires changes in the behavior of operators, you can find more info [here](https://github.com/zloirock/core-js/issues/381). You could try to use [`JSBI`](https://github.com/GoogleChromeLabs/jsbi).\n- ES `Proxy` can't be polyfilled, you can try to use [`proxy-polyfill`](https://github.com/GoogleChrome/proxy-polyfill) which provides a very small subset of features.\n- ES `String#normalize` is not a very useful feature, but this polyfill will be very large. If you need it, you can use [unorm](https://github.com/walling/unorm/).\n- ECMA-402 `Intl` is missed because of the size. You can use [those polyfills](https://formatjs.github.io/docs/polyfills).\n- `window.fetch` is not a cross-platform feature, in some environments, it makes no sense. For this reason, I don't think it should be in `core-js`. Looking at a large number of requests it *might be*  added in the future. Now you can use, for example, [this polyfill](https://github.com/github/fetch).\n"
  },
  {
    "path": "SECURITY.md",
    "content": "# Security Policy\n\n## Supported Versions\n\nThe [latest released version](https://github.com/zloirock/core-js/releases) of `core-js` is supported.\n\n## Reporting a Vulnerability\n\nTo report a vulnerability please send an email with the details to zloirock@zloirock.ru. \nThis will help us to assess the risk and start the necessary steps.\n\nThanks for helping to keep `core-js` secure!\n"
  },
  {
    "path": "babel.config.js",
    "content": "'use strict';\nmodule.exports = {\n  // use transforms which does not use ES5+ builtins\n  plugins: [\n    ['@babel/transform-member-expression-literals'],\n    ['@babel/transform-property-literals'],\n    ['@babel/transform-arrow-functions'],\n    ['@babel/transform-block-scoped-functions'],\n    ['@babel/transform-block-scoping'],\n    // it seems `setClassMethods` unlike `loose` does not work\n    ['@babel/transform-classes', { loose: true }],\n    // private instance props in IE8- only with polyfills\n    ['@babel/transform-class-properties'],\n    ['@babel/transform-class-static-block'],\n    ['@babel/transform-computed-properties'],\n    ['@babel/transform-destructuring'],\n    ['@babel/transform-duplicate-named-capturing-groups-regex'],\n    ['@babel/transform-explicit-resource-management'],\n    ['@babel/transform-exponentiation-operator'],\n    ['@babel/transform-for-of'],\n    ['@babel/transform-literals'],\n    ['@babel/transform-logical-assignment-operators'],\n    ['@babel/transform-new-target'],\n    ['@babel/transform-nullish-coalescing-operator'],\n    ['@babel/transform-numeric-separator'],\n    ['@babel/transform-object-rest-spread'],\n    ['@babel/transform-object-super'],\n    ['@babel/transform-optional-catch-binding'],\n    ['@babel/transform-optional-chaining'],\n    ['@babel/transform-parameters'],\n    ['@babel/transform-private-methods'],\n    ['@babel/transform-private-property-in-object'],\n    ['@babel/transform-regenerator', { generators: true }],\n    ['@babel/transform-regexp-modifiers'],\n    ['@babel/transform-reserved-words'],\n    ['@babel/transform-shorthand-properties'],\n    ['@babel/transform-spread'],\n    ['@babel/transform-template-literals'],\n    ['@babel/transform-unicode-regex'],\n    // use it instead of webpack es modules for support engines without descriptors\n    ['@babel/transform-modules-commonjs'],\n  ],\n  assumptions: {\n    constantReexports: true,\n    constantSuper: true,\n    enumerableModuleMeta: true,\n    iterableIsArray: true,\n    mutableTemplateObject: false,\n    noClassCalls: true,\n    noDocumentAll: true,\n    noIncompleteNsImportDetection: true,\n    noNewArrows: true,\n    objectRestNoSymbols: true,\n    privateFieldsAsProperties: true,\n    setClassMethods: true,\n    setComputedProperties: true,\n    setPublicClassFields: true,\n    setSpreadProperties: true,\n    skipForOfIteratorClosing: true,\n    superIsCallableConstructor: true,\n  },\n};\n"
  },
  {
    "path": "deno/corejs/LICENSE",
    "content": "Copyright (c) 2013–2025 Denis Pushkarev (zloirock.ru)\nCopyright (c) 2025–2026 CoreJS Company (core-js.io)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "deno/corejs/README.md",
    "content": "![logo](https://user-images.githubusercontent.com/2213682/146607186-8e13ddef-26a4-4ebf-befd-5aac9d77c090.png)\n\n<div align=\"center\">\n\n[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js.svg)](https://www.npmjs.com/package/core-js) [![core-js downloads](https://img.shields.io/npm/dm/core-js.svg?label=npm%20i%20core-js)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18) [![core-js-pure downloads](https://img.shields.io/npm/dm/core-js-pure.svg?label=npm%20i%20core-js-pure)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18) [![jsDelivr](https://data.jsdelivr.com/v1/package/npm/core-js-bundle/badge?style=rounded)](https://www.jsdelivr.com/package/npm/core-js-bundle)\n\n</div>\n\n**I highly recommend reading this: [So, what's next?](https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md)**\n---\n\n> Modular standard library for JavaScript. Includes polyfills for [ECMAScript up to 2021](https://github.com/zloirock/core-js#ecmascript): [promises](https://github.com/zloirock/core-js#ecmascript-promise), [symbols](https://github.com/zloirock/core-js#ecmascript-symbol), [collections](https://github.com/zloirock/core-js#ecmascript-collections), iterators, [typed arrays](https://github.com/zloirock/core-js#ecmascript-typed-arrays), many other features, [ECMAScript proposals](https://github.com/zloirock/core-js#ecmascript-proposals), [some cross-platform WHATWG / W3C features and proposals](#web-standards) like [`URL`](https://github.com/zloirock/core-js#url-and-urlsearchparams). You can load only required features or use it without global namespace pollution.\n\n## [core-js@3, babel and a look into the future](https://github.com/zloirock/core-js/tree/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md)\n\n## Raising funds\n\n`core-js` isn't backed by a company, so the future of this project depends on you. Become a sponsor or a backer if you are interested in `core-js`: [**Open Collective**](https://opencollective.com/core-js), [**Patreon**](https://patreon.com/zloirock), [**Boosty**](https://boosty.to/zloirock), **Bitcoin ( bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz )**, [**Alipay**](https://user-images.githubusercontent.com/2213682/219464783-c17ad329-17ce-4795-82a7-f609493345ed.png).\n\n---\n\n<a href=\"https://opencollective.com/core-js/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/0/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/1/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/2/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/3/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/4/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/5/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/6/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/7/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/8/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/9/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/10/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/10/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/11/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/11/avatar.svg\"></a>\n\n---\n\n<a href=\"https://opencollective.com/core-js#backers\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/backers.svg?width=890\"></a>\n\n---\n\n*Example*:\n```js\nimport 'https://deno.land/x/corejs@v3.49.0/index.js'; // <- at the top of your entry point\n\nObject.hasOwn({ foo: 42 }, 'foo');   // => true\n\n[1, 2, 3, 4, 5, 6, 7].at(-3);        // => 5\n\n[1, 2, 3, 4, 5].group(it => it % 2); // => { 1: [1, 3, 5], 0: [2, 4] }\n\nPromise.any([\n  Promise.resolve(1),\n  Promise.reject(2),\n  Promise.resolve(3),\n]).then(console.log);                // => 1\n\n(function * (i) { while (true) yield i++; })(1)\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray();                        // => [9, 25]\n```\n\n**It's a bundled global version for Deno 1.0+, for more info see [`core-js` documentation](https://github.com/zloirock/core-js/blob/master/README.md).**\n"
  },
  {
    "path": "deno/corejs/index.js",
    "content": "/**\n * core-js 3.49.0\n * © 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.\n * license: https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE\n * source: https://github.com/zloirock/core-js\n */\n!function (undefined) { 'use strict'; /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tvar __webpack_require__ = function (moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(1);\n__webpack_require__(47);\n__webpack_require__(48);\n__webpack_require__(88);\n__webpack_require__(89);\n__webpack_require__(105);\n__webpack_require__(106);\n__webpack_require__(107);\n__webpack_require__(109);\n__webpack_require__(111);\n__webpack_require__(112);\n__webpack_require__(116);\n__webpack_require__(118);\n__webpack_require__(121);\n__webpack_require__(122);\n__webpack_require__(123);\n__webpack_require__(124);\n__webpack_require__(129);\n__webpack_require__(134);\n__webpack_require__(142);\n__webpack_require__(143);\n__webpack_require__(147);\n__webpack_require__(149);\n__webpack_require__(153);\n__webpack_require__(154);\n__webpack_require__(160);\n__webpack_require__(161);\n__webpack_require__(163);\n__webpack_require__(164);\n__webpack_require__(166);\n__webpack_require__(167);\n__webpack_require__(168);\n__webpack_require__(169);\n__webpack_require__(170);\n__webpack_require__(171);\n__webpack_require__(172);\n__webpack_require__(173);\n__webpack_require__(176);\n__webpack_require__(178);\n__webpack_require__(180);\n__webpack_require__(182);\n__webpack_require__(184);\n__webpack_require__(185);\n__webpack_require__(186);\n__webpack_require__(189);\n__webpack_require__(190);\n__webpack_require__(191);\n__webpack_require__(192);\n__webpack_require__(193);\n__webpack_require__(221);\n__webpack_require__(222);\n__webpack_require__(223);\n__webpack_require__(224);\n__webpack_require__(225);\n__webpack_require__(226);\n__webpack_require__(233);\n__webpack_require__(234);\n__webpack_require__(235);\n__webpack_require__(236);\n__webpack_require__(241);\n__webpack_require__(244);\n__webpack_require__(254);\n__webpack_require__(256);\n__webpack_require__(258);\n__webpack_require__(260);\n__webpack_require__(262);\n__webpack_require__(265);\n__webpack_require__(267);\n__webpack_require__(268);\n__webpack_require__(269);\n__webpack_require__(273);\n__webpack_require__(274);\n__webpack_require__(276);\n__webpack_require__(277);\n__webpack_require__(278);\n__webpack_require__(280);\n__webpack_require__(281);\n__webpack_require__(282);\n__webpack_require__(285);\n__webpack_require__(290);\n__webpack_require__(292);\n__webpack_require__(294);\n__webpack_require__(295);\n__webpack_require__(296);\n__webpack_require__(297);\n__webpack_require__(299);\n__webpack_require__(302);\n__webpack_require__(306);\n__webpack_require__(308);\n__webpack_require__(310);\n__webpack_require__(312);\n__webpack_require__(313);\n__webpack_require__(314);\n__webpack_require__(315);\n__webpack_require__(316);\n__webpack_require__(319);\n__webpack_require__(320);\n__webpack_require__(324);\n__webpack_require__(325);\n__webpack_require__(326);\n__webpack_require__(327);\n__webpack_require__(328);\n__webpack_require__(330);\n__webpack_require__(331);\n__webpack_require__(333);\n__webpack_require__(334);\n__webpack_require__(335);\n__webpack_require__(336);\n__webpack_require__(337);\n__webpack_require__(338);\n__webpack_require__(339);\n__webpack_require__(342);\n__webpack_require__(356);\n__webpack_require__(357);\n__webpack_require__(358);\n__webpack_require__(360);\n__webpack_require__(362);\n__webpack_require__(363);\n__webpack_require__(364);\n__webpack_require__(365);\n__webpack_require__(366);\n__webpack_require__(368);\n__webpack_require__(369);\n__webpack_require__(370);\n__webpack_require__(371);\n__webpack_require__(373);\n__webpack_require__(374);\n__webpack_require__(375);\n__webpack_require__(379);\n__webpack_require__(380);\n__webpack_require__(382);\n__webpack_require__(383);\n__webpack_require__(384);\n__webpack_require__(385);\n__webpack_require__(386);\n__webpack_require__(387);\n__webpack_require__(389);\n__webpack_require__(391);\n__webpack_require__(392);\n__webpack_require__(393);\n__webpack_require__(394);\n__webpack_require__(395);\n__webpack_require__(396);\n__webpack_require__(398);\n__webpack_require__(399);\n__webpack_require__(400);\n__webpack_require__(401);\n__webpack_require__(404);\n__webpack_require__(405);\n__webpack_require__(406);\n__webpack_require__(409);\n__webpack_require__(410);\n__webpack_require__(411);\n__webpack_require__(412);\n__webpack_require__(413);\n__webpack_require__(415);\n__webpack_require__(416);\n__webpack_require__(417);\n__webpack_require__(421);\n__webpack_require__(423);\n__webpack_require__(424);\n__webpack_require__(425);\n__webpack_require__(426);\n__webpack_require__(427);\n__webpack_require__(428);\n__webpack_require__(429);\n__webpack_require__(430);\n__webpack_require__(431);\n__webpack_require__(432);\n__webpack_require__(433);\n__webpack_require__(436);\n__webpack_require__(437);\n__webpack_require__(438);\n__webpack_require__(439);\n__webpack_require__(440);\n__webpack_require__(441);\n__webpack_require__(442);\n__webpack_require__(443);\n__webpack_require__(444);\n__webpack_require__(445);\n__webpack_require__(446);\n__webpack_require__(447);\n__webpack_require__(448);\n__webpack_require__(449);\n__webpack_require__(450);\n__webpack_require__(451);\n__webpack_require__(453);\n__webpack_require__(455);\n__webpack_require__(457);\n__webpack_require__(458);\n__webpack_require__(460);\n__webpack_require__(461);\n__webpack_require__(463);\n__webpack_require__(464);\n__webpack_require__(465);\n__webpack_require__(466);\n__webpack_require__(467);\n__webpack_require__(468);\n__webpack_require__(469);\n__webpack_require__(471);\n__webpack_require__(472);\n__webpack_require__(473);\n__webpack_require__(474);\n__webpack_require__(475);\n__webpack_require__(476);\n__webpack_require__(477);\n__webpack_require__(478);\n__webpack_require__(481);\n__webpack_require__(482);\n__webpack_require__(483);\n__webpack_require__(484);\n__webpack_require__(487);\n__webpack_require__(488);\n__webpack_require__(489);\n__webpack_require__(493);\n__webpack_require__(494);\n__webpack_require__(495);\n__webpack_require__(497);\n__webpack_require__(498);\n__webpack_require__(499);\nmodule.exports = __webpack_require__(500);\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar defineWellKnownSymbol = __webpack_require__(3);\nvar defineProperty = __webpack_require__(23).f;\nvar getOwnPropertyDescriptor = __webpack_require__(41).f;\n\nvar Symbol = globalThis.Symbol;\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-async-explicit-resource-management\ndefineWellKnownSymbol('asyncDispose');\n\nif (Symbol) {\n  var descriptor = getOwnPropertyDescriptor(Symbol, 'asyncDispose');\n  // workaround of NodeJS 20.4 bug\n  // https://github.com/nodejs/node/issues/48699\n  // and incorrect descriptor from some transpilers and userland helpers\n  if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n    defineProperty(Symbol, 'asyncDispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n  }\n}\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar check = function (it) {\n  return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  check(typeof this == 'object' && this) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar path = __webpack_require__(4);\nvar hasOwn = __webpack_require__(5);\nvar wrappedWellKnownSymbolModule = __webpack_require__(12);\nvar defineProperty = __webpack_require__(23).f;\n\nmodule.exports = function (NAME) {\n  var Symbol = path.Symbol || (path.Symbol = {});\n  if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n    value: wrappedWellKnownSymbolModule.f(NAME)\n  });\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\n\nmodule.exports = globalThis;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar toObject = __webpack_require__(9);\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar NATIVE_BIND = __webpack_require__(7);\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n  return function () {\n    return call.apply(fn, arguments);\n  };\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(8);\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-function-prototype-bind -- safe\n  var test = function () { /* empty */ }.bind();\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar requireObjectCoercible = __webpack_require__(10);\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return $Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isNullOrUndefined = __webpack_require__(11);\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n  return it;\n};\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n  return it === null || it === undefined;\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar wellKnownSymbol = __webpack_require__(13);\n\nexports.f = wellKnownSymbol;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar shared = __webpack_require__(14);\nvar hasOwn = __webpack_require__(5);\nvar uid = __webpack_require__(18);\nvar NATIVE_SYMBOL = __webpack_require__(19);\nvar USE_SYMBOL_AS_UID = __webpack_require__(22);\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name)) {\n    WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n      ? Symbol[name]\n      : createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar store = __webpack_require__(15);\n\nmodule.exports = function (key, value) {\n  return store[key] || (store[key] = value || {});\n};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IS_PURE = __webpack_require__(16);\nvar globalThis = __webpack_require__(2);\nvar defineGlobalProperty = __webpack_require__(17);\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n  version: '3.49.0',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',\n  license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE',\n  source: 'https://github.com/zloirock/core-js'\n});\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n  try {\n    defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n  } catch (error) {\n    globalThis[key] = value;\n  } return value;\n};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = __webpack_require__(20);\nvar fails = __webpack_require__(8);\nvar globalThis = __webpack_require__(2);\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol('symbol detection');\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n  // of course, fail.\n  return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar userAgent = __webpack_require__(21);\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = +match[1];\n  }\n}\n\nmodule.exports = version;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = __webpack_require__(19);\n\nmodule.exports = NATIVE_SYMBOL &&\n  !Symbol.sham &&\n  typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar IE8_DOM_DEFINE = __webpack_require__(25);\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(29);\nvar anObject = __webpack_require__(30);\nvar toPropertyKey = __webpack_require__(31);\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n    var current = $getOwnPropertyDescriptor(O, P);\n    if (current && current[WRITABLE]) {\n      O[P] = Attributes.value;\n      Attributes = {\n        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n        writable: false\n      };\n    }\n  } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(8);\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar fails = __webpack_require__(8);\nvar createElement = __webpack_require__(26);\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a !== 7;\n});\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar isObject = __webpack_require__(27);\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isCallable = __webpack_require__(28);\n\nmodule.exports = function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n  return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n  return typeof argument == 'function';\n};\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar fails = __webpack_require__(8);\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype !== 42;\n});\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isObject = __webpack_require__(27);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw new $TypeError($String(argument) + ' is not an object');\n};\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(32);\nvar isSymbol = __webpack_require__(34);\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n  var key = toPrimitive(argument, 'string');\n  return isSymbol(key) ? key : key + '';\n};\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar isObject = __webpack_require__(27);\nvar isSymbol = __webpack_require__(34);\nvar getMethod = __webpack_require__(37);\nvar ordinaryToPrimitive = __webpack_require__(40);\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n  if (!isObject(input) || isSymbol(input)) return input;\n  var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n  var result;\n  if (exoticToPrim) {\n    if (pref === undefined) pref = 'default';\n    result = call(exoticToPrim, input, pref);\n    if (!isObject(result) || isSymbol(result)) return result;\n    throw new $TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar NATIVE_BIND = __webpack_require__(7);\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(35);\nvar isCallable = __webpack_require__(28);\nvar isPrototypeOf = __webpack_require__(36);\nvar USE_SYMBOL_AS_UID = __webpack_require__(22);\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  var $Symbol = getBuiltIn('Symbol');\n  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar isCallable = __webpack_require__(28);\n\nvar aFunction = function (argument) {\n  return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aCallable = __webpack_require__(38);\nvar isNullOrUndefined = __webpack_require__(11);\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isCallable = __webpack_require__(28);\nvar tryToString = __webpack_require__(39);\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n  try {\n    return $String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar isCallable = __webpack_require__(28);\nvar isObject = __webpack_require__(27);\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n  var fn, val;\n  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  throw new $TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar call = __webpack_require__(33);\nvar propertyIsEnumerableModule = __webpack_require__(42);\nvar createPropertyDescriptor = __webpack_require__(43);\nvar toIndexedObject = __webpack_require__(44);\nvar toPropertyKey = __webpack_require__(31);\nvar hasOwn = __webpack_require__(5);\nvar IE8_DOM_DEFINE = __webpack_require__(25);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPropertyKey(P);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(45);\nvar requireObjectCoercible = __webpack_require__(10);\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar fails = __webpack_require__(8);\nvar classof = __webpack_require__(46);\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n  return stringSlice(toString(it), 8, -1);\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar defineWellKnownSymbol = __webpack_require__(3);\nvar defineProperty = __webpack_require__(23).f;\nvar getOwnPropertyDescriptor = __webpack_require__(41).f;\n\nvar Symbol = globalThis.Symbol;\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n\nif (Symbol) {\n  var descriptor = getOwnPropertyDescriptor(Symbol, 'dispose');\n  // workaround of NodeJS 20.4 bug\n  // https://github.com/nodejs/node/issues/48699\n  // and incorrect descriptor from some transpilers and userland helpers\n  if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n    defineProperty(Symbol, 'dispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n  }\n}\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar apply = __webpack_require__(72);\nvar wrapErrorConstructorWithCause = __webpack_require__(73);\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = globalThis[WEB_ASSEMBLY];\n\n// eslint-disable-next-line es/no-error-cause -- feature detection\nvar FORCED = new Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  var O = {};\n  // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n  $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  if (WebAssembly && WebAssembly[ERROR_NAME]) {\n    var O = {};\n    // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n    O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n    $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n  }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\nexportGlobalErrorCauseWrapper('Error', function (init) {\n  return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n  return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n  return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n  return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n  return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n  return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n  return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n  return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n  return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n  return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar getOwnPropertyDescriptor = __webpack_require__(41).f;\nvar createNonEnumerableProperty = __webpack_require__(50);\nvar defineBuiltIn = __webpack_require__(51);\nvar defineGlobalProperty = __webpack_require__(17);\nvar copyConstructorProperties = __webpack_require__(59);\nvar isForced = __webpack_require__(71);\n\n/*\n  options.target         - name of the target object\n  options.global         - target is the global object\n  options.stat           - export as static methods of target\n  options.proto          - export as prototype methods of target\n  options.real           - real prototype method for the `pure` version\n  options.forced         - export even if the native feature is available\n  options.bind           - bind methods to the target, required for the `pure` version\n  options.wrap           - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe         - use the simple assignment of property instead of delete + defineProperty\n  options.sham           - add a flag to not completely full polyfills\n  options.enumerable     - export as enumerable property\n  options.dontCallGetSet - prevent calling a getter on target\n  options.name           - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = globalThis;\n  } else if (STATIC) {\n    target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n  } else {\n    target = globalThis[TARGET] && globalThis[TARGET].prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.dontCallGetSet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty == typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    defineBuiltIn(target, key, sourceProperty, options);\n  }\n};\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar definePropertyModule = __webpack_require__(23);\nvar createPropertyDescriptor = __webpack_require__(43);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isCallable = __webpack_require__(28);\nvar definePropertyModule = __webpack_require__(23);\nvar makeBuiltIn = __webpack_require__(52);\nvar defineGlobalProperty = __webpack_require__(17);\n\nmodule.exports = function (O, key, value, options) {\n  if (!options) options = {};\n  var simple = options.enumerable;\n  var name = options.name !== undefined ? options.name : key;\n  if (isCallable(value)) makeBuiltIn(value, name, options);\n  if (options.global) {\n    if (simple) O[key] = value;\n    else defineGlobalProperty(key, value);\n  } else {\n    try {\n      if (!options.unsafe) delete O[key];\n      else if (O[key]) simple = true;\n    } catch (error) { /* empty */ }\n    if (simple) O[key] = value;\n    else definePropertyModule.f(O, key, {\n      value: value,\n      enumerable: false,\n      configurable: !options.nonConfigurable,\n      writable: !options.nonWritable\n    });\n  } return O;\n};\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar fails = __webpack_require__(8);\nvar isCallable = __webpack_require__(28);\nvar hasOwn = __webpack_require__(5);\nvar DESCRIPTORS = __webpack_require__(24);\nvar CONFIGURABLE_FUNCTION_NAME = __webpack_require__(53).CONFIGURABLE;\nvar inspectSource = __webpack_require__(54);\nvar InternalStateModule = __webpack_require__(55);\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n  return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n  if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n    name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n  }\n  if (options && options.getter) name = 'get ' + name;\n  if (options && options.setter) name = 'set ' + name;\n  if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n    if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n    else value.name = name;\n  }\n  if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n    defineProperty(value, 'length', { value: options.arity });\n  }\n  try {\n    if (options && hasOwn(options, 'constructor') && options.constructor) {\n      if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n    // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n    } else if (value.prototype) value.prototype = undefined;\n  } catch (error) { /* empty */ }\n  var state = enforceInternalState(value);\n  if (!hasOwn(state, 'source')) {\n    state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n  } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n  return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar hasOwn = __webpack_require__(5);\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && function something() { /* empty */ }.name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n  EXISTS: EXISTS,\n  PROPER: PROPER,\n  CONFIGURABLE: CONFIGURABLE\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar isCallable = __webpack_require__(28);\nvar store = __webpack_require__(15);\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n  store.inspectSource = function (it) {\n    return functionToString(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar NATIVE_WEAK_MAP = __webpack_require__(56);\nvar globalThis = __webpack_require__(2);\nvar isObject = __webpack_require__(27);\nvar createNonEnumerableProperty = __webpack_require__(50);\nvar hasOwn = __webpack_require__(5);\nvar shared = __webpack_require__(15);\nvar sharedKey = __webpack_require__(57);\nvar hiddenKeys = __webpack_require__(58);\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  /* eslint-disable no-self-assign -- prototype methods protection */\n  store.get = store.get;\n  store.has = store.has;\n  store.set = store.set;\n  /* eslint-enable no-self-assign -- prototype methods protection */\n  set = function (it, metadata) {\n    if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    store.set(it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return store.get(it) || {};\n  };\n  has = function (it) {\n    return store.has(it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return hasOwn(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return hasOwn(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar isCallable = __webpack_require__(28);\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar shared = __webpack_require__(14);\nvar uid = __webpack_require__(18);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar hasOwn = __webpack_require__(5);\nvar ownKeys = __webpack_require__(60);\nvar getOwnPropertyDescriptorModule = __webpack_require__(41);\nvar definePropertyModule = __webpack_require__(23);\n\nmodule.exports = function (target, source, exceptions) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n      defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n    }\n  }\n};\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(35);\nvar uncurryThis = __webpack_require__(6);\nvar getOwnPropertyNamesModule = __webpack_require__(61);\nvar getOwnPropertySymbolsModule = __webpack_require__(70);\nvar anObject = __webpack_require__(30);\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar internalObjectKeys = __webpack_require__(62);\nvar enumBugKeys = __webpack_require__(69);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar hasOwn = __webpack_require__(5);\nvar toIndexedObject = __webpack_require__(44);\nvar indexOf = __webpack_require__(63).indexOf;\nvar hiddenKeys = __webpack_require__(58);\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (hasOwn(O, key = names[i++])) {\n    ~indexOf(result, key) || push(result, key);\n  }\n  return result;\n};\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(44);\nvar toAbsoluteIndex = __webpack_require__(64);\nvar lengthOfArrayLike = __webpack_require__(67);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = lengthOfArrayLike(O);\n    if (length === 0) return !IS_INCLUDES && -1;\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el !== el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value !== value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIntegerOrInfinity = __webpack_require__(65);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toIntegerOrInfinity(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar trunc = __webpack_require__(66);\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n  var number = +argument;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return number !== number || number === 0 ? 0 : trunc(number);\n};\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n  var n = +x;\n  return (n > 0 ? floor : ceil)(n);\n};\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toLength = __webpack_require__(68);\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n  return toLength(obj.length);\n};\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIntegerOrInfinity = __webpack_require__(65);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  var len = toIntegerOrInfinity(argument);\n  return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(8);\nvar isCallable = __webpack_require__(28);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value === POLYFILL ? true\n    : value === NATIVE ? false\n    : isCallable(detection) ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar NATIVE_BIND = __webpack_require__(7);\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n  return call.apply(apply, arguments);\n});\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(35);\nvar hasOwn = __webpack_require__(5);\nvar createNonEnumerableProperty = __webpack_require__(50);\nvar isPrototypeOf = __webpack_require__(36);\nvar setPrototypeOf = __webpack_require__(74);\nvar copyConstructorProperties = __webpack_require__(59);\nvar proxyAccessor = __webpack_require__(78);\nvar inheritIfRequired = __webpack_require__(79);\nvar normalizeStringArgument = __webpack_require__(80);\nvar installErrorCause = __webpack_require__(84);\nvar installErrorStack = __webpack_require__(85);\nvar DESCRIPTORS = __webpack_require__(24);\nvar IS_PURE = __webpack_require__(16);\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n  var STACK_TRACE_LIMIT = 'stackTraceLimit';\n  var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n  var path = FULL_NAME.split('.');\n  var ERROR_NAME = path[path.length - 1];\n  var OriginalError = getBuiltIn.apply(null, path);\n\n  if (!OriginalError) return;\n\n  var OriginalErrorPrototype = OriginalError.prototype;\n\n  // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n  if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n  if (!FORCED) return OriginalError;\n\n  var BaseError = getBuiltIn('Error');\n\n  var WrappedError = wrapper(function (a, b) {\n    var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n    var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n    if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n    installErrorStack(result, WrappedError, result.stack, 2);\n    if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n    if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n    return result;\n  });\n\n  WrappedError.prototype = OriginalErrorPrototype;\n\n  if (ERROR_NAME !== 'Error') {\n    if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n    else copyConstructorProperties(WrappedError, BaseError, { name: true });\n  } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n    proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n    proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n  }\n\n  copyConstructorProperties(WrappedError, OriginalError);\n\n  if (!IS_PURE) try {\n    // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n    if (OriginalErrorPrototype.name !== ERROR_NAME) {\n      createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n    }\n    OriginalErrorPrototype.constructor = WrappedError;\n  } catch (error) { /* empty */ }\n\n  return WrappedError;\n};\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = __webpack_require__(75);\nvar isObject = __webpack_require__(27);\nvar requireObjectCoercible = __webpack_require__(10);\nvar aPossiblePrototype = __webpack_require__(76);\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n    setter(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    requireObjectCoercible(O);\n    aPossiblePrototype(proto);\n    if (!isObject(O)) return O;\n    if (CORRECT_SETTER) setter(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar aCallable = __webpack_require__(38);\n\nmodule.exports = function (object, key, method) {\n  try {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n  } catch (error) { /* empty */ }\n};\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isPossiblePrototype = __webpack_require__(77);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (isPossiblePrototype(argument)) return argument;\n  throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isObject = __webpack_require__(27);\n\nmodule.exports = function (argument) {\n  return isObject(argument) || argument === null;\n};\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar defineProperty = __webpack_require__(23).f;\n\nmodule.exports = function (Target, Source, key) {\n  key in Target || defineProperty(Target, key, {\n    configurable: true,\n    get: function () { return Source[key]; },\n    set: function (it) { Source[key] = it; }\n  });\n};\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isCallable = __webpack_require__(28);\nvar isObject = __webpack_require__(27);\nvar setPrototypeOf = __webpack_require__(74);\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    isCallable(NewTarget = dummy.constructor) &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toString = __webpack_require__(81);\n\nmodule.exports = function (argument, $default) {\n  return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar classof = __webpack_require__(82);\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n  return $String(argument);\n};\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(83);\nvar isCallable = __webpack_require__(28);\nvar classofRaw = __webpack_require__(46);\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isObject = __webpack_require__(27);\nvar createNonEnumerableProperty = __webpack_require__(50);\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/ecma262/#sec-installerrorcause\nmodule.exports = function (O, options) {\n  if (isObject(options) && 'cause' in options) {\n    createNonEnumerableProperty(O, 'cause', options.cause);\n  }\n};\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar createNonEnumerableProperty = __webpack_require__(50);\nvar clearErrorStack = __webpack_require__(86);\nvar ERROR_STACK_INSTALLABLE = __webpack_require__(87);\n\n// non-standard V8\n// eslint-disable-next-line es/no-nonstandard-error-properties -- safe\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n  if (ERROR_STACK_INSTALLABLE) {\n    if (captureStackTrace) captureStackTrace(error, C);\n    else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n  }\n};\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable, sonarjs/slow-regex -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n  if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n    while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n  } return stack;\n};\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(8);\nvar createPropertyDescriptor = __webpack_require__(43);\n\nmodule.exports = !fails(function () {\n  var error = new Error('a');\n  if (!('stack' in error)) return true;\n  // eslint-disable-next-line es/no-object-defineproperty -- safe\n  Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n  return error.stack !== 7;\n});\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar getBuiltIn = __webpack_require__(35);\nvar isObject = __webpack_require__(27);\nvar classof = __webpack_require__(82);\nvar fails = __webpack_require__(8);\n\nvar ERROR = 'Error';\nvar DOM_EXCEPTION = 'DOMException';\n// eslint-disable-next-line es/no-object-setprototypeof, no-proto -- safe\nvar PROTOTYPE_SETTING_AVAILABLE = Object.setPrototypeOf || {}.__proto__;\n\nvar DOMException = getBuiltIn(DOM_EXCEPTION);\nvar $Error = Error;\n// eslint-disable-next-line es/no-error-iserror -- safe\nvar $isError = $Error.isError;\n\nvar FORCED = !$isError || !PROTOTYPE_SETTING_AVAILABLE || fails(function () {\n  // Bun, isNativeError-based implementations, some buggy structuredClone-based implementations, etc.\n  // https://github.com/oven-sh/bun/issues/15821\n  return (DOMException && !$isError(new DOMException(DOM_EXCEPTION))) ||\n    // structuredClone-based implementations\n    // eslint-disable-next-line es/no-error-cause -- detection\n    !$isError(new $Error(ERROR, { cause: function () { /* empty */ } })) ||\n    // instanceof-based and FF Error#stack-based implementations\n    $isError(getBuiltIn('Object', 'create')($Error.prototype));\n});\n\n// `Error.isError` method\n// https://tc39.es/ecma262/#sec-error.iserror\n$({ target: 'Error', stat: true, sham: true, forced: FORCED }, {\n  isError: function isError(arg) {\n    if (!isObject(arg)) return false;\n    var tag = classof(arg);\n    return tag === ERROR || tag === DOM_EXCEPTION;\n  }\n});\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\n__webpack_require__(90);\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar isPrototypeOf = __webpack_require__(36);\nvar getPrototypeOf = __webpack_require__(91);\nvar setPrototypeOf = __webpack_require__(74);\nvar copyConstructorProperties = __webpack_require__(59);\nvar create = __webpack_require__(93);\nvar createNonEnumerableProperty = __webpack_require__(50);\nvar createPropertyDescriptor = __webpack_require__(43);\nvar installErrorCause = __webpack_require__(84);\nvar installErrorStack = __webpack_require__(85);\nvar iterate = __webpack_require__(97);\nvar normalizeStringArgument = __webpack_require__(80);\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n  var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n  var that;\n  if (setPrototypeOf) {\n    that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n  } else {\n    that = isInstance ? this : create(AggregateErrorPrototype);\n    createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n  }\n  if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n  installErrorStack(that, $AggregateError, that.stack, 1);\n  if (arguments.length > 2) installErrorCause(that, arguments[2]);\n  var errorsArray = [];\n  iterate(errors, push, { that: errorsArray });\n  createNonEnumerableProperty(that, 'errors', errorsArray);\n  return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);\nelse copyConstructorProperties($AggregateError, $Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n  constructor: createPropertyDescriptor(1, $AggregateError),\n  message: createPropertyDescriptor(1, ''),\n  name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true, constructor: true, arity: 2 }, {\n  AggregateError: $AggregateError\n});\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar hasOwn = __webpack_require__(5);\nvar isCallable = __webpack_require__(28);\nvar toObject = __webpack_require__(9);\nvar sharedKey = __webpack_require__(57);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(92);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n  var object = toObject(O);\n  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n  var constructor = object.constructor;\n  if (isCallable(constructor) && object instanceof constructor) {\n    return constructor.prototype;\n  } return object instanceof $Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(8);\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = __webpack_require__(30);\nvar definePropertiesModule = __webpack_require__(94);\nvar enumBugKeys = __webpack_require__(69);\nvar hiddenKeys = __webpack_require__(58);\nvar html = __webpack_require__(96);\nvar documentCreateElement = __webpack_require__(26);\nvar sharedKey = __webpack_require__(57);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n  activeXDocument = null;\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    activeXDocument = new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = typeof document != 'undefined'\n    ? document.domain && activeXDocument\n      ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n      : NullProtoObjectViaIFrame()\n    : NullProtoObjectViaActiveX(activeXDocument); // WSH\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(29);\nvar definePropertyModule = __webpack_require__(23);\nvar anObject = __webpack_require__(30);\nvar toIndexedObject = __webpack_require__(44);\nvar objectKeys = __webpack_require__(95);\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var props = toIndexedObject(Properties);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n  return O;\n};\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar internalObjectKeys = __webpack_require__(62);\nvar enumBugKeys = __webpack_require__(69);\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(35);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(98);\nvar call = __webpack_require__(33);\nvar anObject = __webpack_require__(30);\nvar tryToString = __webpack_require__(39);\nvar isArrayIteratorMethod = __webpack_require__(100);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar isPrototypeOf = __webpack_require__(36);\nvar getIterator = __webpack_require__(102);\nvar getIteratorMethod = __webpack_require__(103);\nvar iteratorClose = __webpack_require__(104);\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n  var that = options && options.that;\n  var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n  var IS_RECORD = !!(options && options.IS_RECORD);\n  var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n  var INTERRUPTED = !!(options && options.INTERRUPTED);\n  var fn = bind(unboundFunction, that);\n  var iterator, iterFn, index, length, result, next, step;\n\n  var stop = function (condition) {\n    var $iterator = iterator;\n    iterator = undefined;\n    if ($iterator) iteratorClose($iterator, 'normal');\n    return new Result(true, condition);\n  };\n\n  var callFn = function (value) {\n    if (AS_ENTRIES) {\n      anObject(value);\n      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n    } return INTERRUPTED ? fn(value, stop) : fn(value);\n  };\n\n  if (IS_RECORD) {\n    iterator = iterable.iterator;\n  } else if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n        result = callFn(iterable[index]);\n        if (result && isPrototypeOf(ResultPrototype, result)) return result;\n      } return new Result(false);\n    }\n    iterator = getIterator(iterable, iterFn);\n  }\n\n  next = IS_RECORD ? iterable.next : iterator.next;\n  while (!(step = call(next, iterator)).done) {\n    // `IteratorValue` errors should propagate without closing the iterator\n    var value = step.value;\n    try {\n      result = callFn(value);\n    } catch (error) {\n      if (iterator) iteratorClose(iterator, 'throw', error);\n      else throw error;\n    }\n    if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n  } return new Result(false);\n};\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(99);\nvar aCallable = __webpack_require__(38);\nvar NATIVE_BIND = __webpack_require__(7);\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n  aCallable(fn);\n  return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar classofRaw = __webpack_require__(46);\nvar uncurryThis = __webpack_require__(6);\n\nmodule.exports = function (fn) {\n  // Nashorn bug:\n  //   https://github.com/zloirock/core-js/issues/1128\n  //   https://github.com/zloirock/core-js/issues/1130\n  if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar wellKnownSymbol = __webpack_require__(13);\nvar Iterators = __webpack_require__(101);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar tryToString = __webpack_require__(39);\nvar getIteratorMethod = __webpack_require__(103);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n  var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n  if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n  throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar classof = __webpack_require__(82);\nvar getMethod = __webpack_require__(37);\nvar isNullOrUndefined = __webpack_require__(11);\nvar Iterators = __webpack_require__(101);\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n    || getMethod(it, '@@iterator')\n    || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar anObject = __webpack_require__(30);\nvar getMethod = __webpack_require__(37);\n\nmodule.exports = function (iterator, kind, value) {\n  var innerResult, innerError;\n  anObject(iterator);\n  try {\n    innerResult = getMethod(iterator, 'return');\n    if (!innerResult) {\n      if (kind === 'throw') throw value;\n      return value;\n    }\n    innerResult = call(innerResult, iterator);\n  } catch (error) {\n    innerError = true;\n    innerResult = error;\n  }\n  if (kind === 'throw') throw value;\n  if (innerError) throw innerResult;\n  anObject(innerResult);\n  return value;\n};\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar getBuiltIn = __webpack_require__(35);\nvar apply = __webpack_require__(72);\nvar fails = __webpack_require__(8);\nvar wrapErrorConstructorWithCause = __webpack_require__(73);\n\nvar AGGREGATE_ERROR = 'AggregateError';\nvar $AggregateError = getBuiltIn(AGGREGATE_ERROR);\n\nvar FORCED = !fails(function () {\n  return $AggregateError([1]).errors[0] !== 1;\n}) && fails(function () {\n  return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7;\n});\n\n// https://tc39.es/ecma262/#sec-aggregate-error\n$({ global: true, constructor: true, arity: 2, forced: FORCED }, {\n  AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) {\n    // eslint-disable-next-line no-unused-vars -- required for functions `.length`\n    return function AggregateError(errors, message) { return apply(init, this, arguments); };\n  }, FORCED, true)\n});\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar isPrototypeOf = __webpack_require__(36);\nvar getPrototypeOf = __webpack_require__(91);\nvar setPrototypeOf = __webpack_require__(74);\nvar copyConstructorProperties = __webpack_require__(59);\nvar create = __webpack_require__(93);\nvar createNonEnumerableProperty = __webpack_require__(50);\nvar createPropertyDescriptor = __webpack_require__(43);\nvar installErrorStack = __webpack_require__(85);\nvar normalizeStringArgument = __webpack_require__(80);\nvar wellKnownSymbol = __webpack_require__(13);\nvar fails = __webpack_require__(8);\nvar IS_PURE = __webpack_require__(16);\n\nvar NativeSuppressedError = globalThis.SuppressedError;\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\n\n// https://github.com/oven-sh/bun/issues/9282\nvar WRONG_ARITY = !!NativeSuppressedError && NativeSuppressedError.length !== 3;\n\n// https://github.com/oven-sh/bun/issues/9283\nvar EXTRA_ARGS_SUPPORT = !!NativeSuppressedError && fails(function () {\n  return new NativeSuppressedError(1, 2, 3, { cause: 4 }).cause === 4;\n});\n\nvar PATCH = WRONG_ARITY || EXTRA_ARGS_SUPPORT;\n\nvar $SuppressedError = function SuppressedError(error, suppressed, message) {\n  var isInstance = isPrototypeOf(SuppressedErrorPrototype, this);\n  var that;\n  if (setPrototypeOf) {\n    that = PATCH && (!isInstance || getPrototypeOf(this) === SuppressedErrorPrototype)\n      ? new NativeSuppressedError()\n      : setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : SuppressedErrorPrototype);\n  } else {\n    that = isInstance ? this : create(SuppressedErrorPrototype);\n    createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n  }\n  if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n  installErrorStack(that, $SuppressedError, that.stack, 1);\n  createNonEnumerableProperty(that, 'error', error);\n  createNonEnumerableProperty(that, 'suppressed', suppressed);\n  return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($SuppressedError, $Error);\nelse copyConstructorProperties($SuppressedError, $Error, { name: true });\n\nvar SuppressedErrorPrototype = $SuppressedError.prototype = PATCH ? NativeSuppressedError.prototype : create($Error.prototype, {\n  constructor: createPropertyDescriptor(1, $SuppressedError),\n  message: createPropertyDescriptor(1, ''),\n  name: createPropertyDescriptor(1, 'SuppressedError')\n});\n\nif (PATCH && !IS_PURE) SuppressedErrorPrototype.constructor = $SuppressedError;\n\n// `SuppressedError` constructor\n// https://github.com/tc39/proposal-explicit-resource-management\n$({ global: true, constructor: true, arity: 3, forced: PATCH }, {\n  SuppressedError: $SuppressedError\n});\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar toObject = __webpack_require__(9);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar toIntegerOrInfinity = __webpack_require__(65);\nvar addToUnscopables = __webpack_require__(108);\n\n// `Array.prototype.at` method\n// https://tc39.es/ecma262/#sec-array.prototype.at\n$({ target: 'Array', proto: true }, {\n  at: function at(index) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : O[k];\n  }\n});\n\naddToUnscopables('at');\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar wellKnownSymbol = __webpack_require__(13);\nvar create = __webpack_require__(93);\nvar defineProperty = __webpack_require__(23).f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n  defineProperty(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar $findLast = __webpack_require__(110).findLast;\nvar addToUnscopables = __webpack_require__(108);\n\n// `Array.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-array.prototype.findlast\n$({ target: 'Array', proto: true }, {\n  findLast: function findLast(callbackfn /* , that = undefined */) {\n    return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\naddToUnscopables('findLast');\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(98);\nvar IndexedObject = __webpack_require__(45);\nvar toObject = __webpack_require__(9);\nvar lengthOfArrayLike = __webpack_require__(67);\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_FIND_LAST_INDEX = TYPE === 1;\n  return function ($this, callbackfn, that) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var index = lengthOfArrayLike(self);\n    var boundFunction = bind(callbackfn, that);\n    var value, result;\n    while (index-- > 0) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (result) switch (TYPE) {\n        case 0: return value; // findLast\n        case 1: return index; // findLastIndex\n      }\n    }\n    return IS_FIND_LAST_INDEX ? -1 : undefined;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.findLast` method\n  // https://github.com/tc39/proposal-array-find-from-last\n  findLast: createMethod(0),\n  // `Array.prototype.findLastIndex` method\n  // https://github.com/tc39/proposal-array-find-from-last\n  findLastIndex: createMethod(1)\n};\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar $findLastIndex = __webpack_require__(110).findLastIndex;\nvar addToUnscopables = __webpack_require__(108);\n\n// `Array.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findlastindex\n$({ target: 'Array', proto: true }, {\n  findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) {\n    return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\naddToUnscopables('findLastIndex');\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar toObject = __webpack_require__(9);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar setArrayLength = __webpack_require__(113);\nvar doesNotExceedSafeInteger = __webpack_require__(115);\nvar fails = __webpack_require__(8);\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n  return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).push();\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  push: function push(item) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var argCount = arguments.length;\n    doesNotExceedSafeInteger(len + argCount);\n    for (var i = 0; i < argCount; i++) {\n      O[len] = arguments[i];\n      len++;\n    }\n    setArrayLength(O, len);\n    return len;\n  }\n});\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar isArray = __webpack_require__(114);\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n  // makes no sense without proper strict mode support\n  if (this !== undefined) return true;\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).length = 1;\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n  if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n    throw new $TypeError('Cannot set read only .length');\n  } return O.length = length;\n} : function (O, length) {\n  return O.length = length;\n};\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar classof = __webpack_require__(46);\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n  return classof(argument) === 'Array';\n};\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n  if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded');\n  return it;\n};\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar toIndexedObject = __webpack_require__(44);\nvar createProperty = __webpack_require__(117);\nvar addToUnscopables = __webpack_require__(108);\n\nvar $Array = Array;\n\n// `Array.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-array.prototype.toreversed\n$({ target: 'Array', proto: true }, {\n  toReversed: function toReversed() {\n    var O = toIndexedObject(this);\n    var len = lengthOfArrayLike(O);\n    var A = new $Array(len);\n    var k = 0;\n    for (; k < len; k++) createProperty(A, k, O[len - k - 1]);\n    return A;\n  }\n});\n\naddToUnscopables('toReversed');\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar definePropertyModule = __webpack_require__(23);\nvar createPropertyDescriptor = __webpack_require__(43);\n\nmodule.exports = function (object, key, value) {\n  if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n  else object[key] = value;\n};\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar aCallable = __webpack_require__(38);\nvar toIndexedObject = __webpack_require__(44);\nvar arrayFromConstructorAndList = __webpack_require__(119);\nvar getBuiltInPrototypeMethod = __webpack_require__(120);\nvar addToUnscopables = __webpack_require__(108);\n\nvar $Array = Array;\nvar sort = uncurryThis(getBuiltInPrototypeMethod('Array', 'sort'));\n\n// `Array.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-array.prototype.tosorted\n$({ target: 'Array', proto: true }, {\n  toSorted: function toSorted(compareFn) {\n    if (compareFn !== undefined) aCallable(compareFn);\n    var O = toIndexedObject(this);\n    var A = arrayFromConstructorAndList($Array, O);\n    return sort(A, compareFn);\n  }\n});\n\naddToUnscopables('toSorted');\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar lengthOfArrayLike = __webpack_require__(67);\n\nmodule.exports = function (Constructor, list, $length) {\n  var index = 0;\n  var length = arguments.length > 2 ? $length : lengthOfArrayLike(list);\n  var result = new Constructor(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n  var Constructor = globalThis[CONSTRUCTOR];\n  var Prototype = Constructor && Constructor.prototype;\n  return Prototype && Prototype[METHOD];\n};\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar addToUnscopables = __webpack_require__(108);\nvar doesNotExceedSafeInteger = __webpack_require__(115);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar toAbsoluteIndex = __webpack_require__(64);\nvar toIndexedObject = __webpack_require__(44);\nvar toIntegerOrInfinity = __webpack_require__(65);\nvar createProperty = __webpack_require__(117);\n\nvar $Array = Array;\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.toSpliced` method\n// https://tc39.es/ecma262/#sec-array.prototype.tospliced\n$({ target: 'Array', proto: true }, {\n  toSpliced: function toSpliced(start, deleteCount /* , ...items */) {\n    var O = toIndexedObject(this);\n    var len = lengthOfArrayLike(O);\n    var actualStart = toAbsoluteIndex(start, len);\n    var argumentsLength = arguments.length;\n    var k = 0;\n    var insertCount, actualDeleteCount, newLen, A;\n    if (argumentsLength === 0) {\n      insertCount = actualDeleteCount = 0;\n    } else if (argumentsLength === 1) {\n      insertCount = 0;\n      actualDeleteCount = len - actualStart;\n    } else {\n      insertCount = argumentsLength - 2;\n      actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n    }\n    newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n    A = $Array(newLen);\n\n    for (; k < actualStart; k++) createProperty(A, k, O[k]);\n    for (; k < actualStart + insertCount; k++) createProperty(A, k, arguments[k - actualStart + 2]);\n    for (; k < newLen; k++) createProperty(A, k, O[k + actualDeleteCount - insertCount]);\n\n    return A;\n  }\n});\n\naddToUnscopables('toSpliced');\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar toIntegerOrInfinity = __webpack_require__(65);\nvar toIndexedObject = __webpack_require__(44);\nvar createProperty = __webpack_require__(117);\n\nvar $Array = Array;\nvar $RangeError = RangeError;\n\n// Firefox bug\nvar INCORRECT_EXCEPTION_ON_COERCION_FAIL = (function () {\n  try {\n    // eslint-disable-next-line es/no-array-prototype-with, no-throw-literal -- needed for testing\n    []['with']({ valueOf: function () { throw 4; } }, null);\n  } catch (error) {\n    return error !== 4;\n  }\n})();\n\n// `Array.prototype.with` method\n// https://tc39.es/ecma262/#sec-array.prototype.with\n$({ target: 'Array', proto: true, forced: INCORRECT_EXCEPTION_ON_COERCION_FAIL }, {\n  'with': function (index, value) {\n    var O = toIndexedObject(this);\n    var len = lengthOfArrayLike(O);\n    var relativeIndex = toIntegerOrInfinity(index);\n    var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n    if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n    var A = new $Array(len);\n    var k = 0;\n    for (; k < len; k++) createProperty(A, k, k === actualIndex ? value : O[k]);\n    return A;\n  }\n});\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\n\nvar pow = Math.pow;\n\nvar EXP_MASK16 = 31; // 2 ** 5 - 1\nvar SIGNIFICAND_MASK16 = 1023; // 2 ** 10 - 1\nvar MIN_SUBNORMAL16 = pow(2, -24); // 2 ** -10 * 2 ** -14\nvar SIGNIFICAND_DENOM16 = 0.0009765625; // 2 ** -10\n\nvar unpackFloat16 = function (bytes) {\n  var sign = bytes >>> 15;\n  var exponent = bytes >>> 10 & EXP_MASK16;\n  var significand = bytes & SIGNIFICAND_MASK16;\n  if (exponent === EXP_MASK16) return significand === 0 ? sign === 0 ? Infinity : -Infinity : NaN;\n  if (exponent === 0) return significand * (sign === 0 ? MIN_SUBNORMAL16 : -MIN_SUBNORMAL16);\n  return pow(2, exponent - 15) * (sign === 0 ? 1 + significand * SIGNIFICAND_DENOM16 : -1 - significand * SIGNIFICAND_DENOM16);\n};\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar getUint16 = uncurryThis(DataView.prototype.getUint16);\n\n// `DataView.prototype.getFloat16` method\n// https://tc39.es/ecma262/#sec-dataview.prototype.getfloat16\n$({ target: 'DataView', proto: true }, {\n  getFloat16: function getFloat16(byteOffset /* , littleEndian */) {\n    return unpackFloat16(getUint16(this, byteOffset, arguments.length > 1 ? arguments[1] : false));\n  }\n});\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar aDataView = __webpack_require__(125);\nvar toIndex = __webpack_require__(126);\n// TODO: Replace with module dependency in `core-js@4`\nvar log2 = __webpack_require__(127);\nvar roundTiesToEven = __webpack_require__(128);\n\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar MIN_INFINITY16 = 65520; // (2 - 2 ** -11) * 2 ** 15\nvar MIN_NORMAL16 = 0.000061005353927612305; // (1 - 2 ** -11) * 2 ** -14\nvar REC_MIN_SUBNORMAL16 = 16777216; // 2 ** 10 * 2 ** 14\nvar REC_SIGNIFICAND_DENOM16 = 1024; // 2 ** 10;\n\nvar packFloat16 = function (value) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (value !== value) return 0x7E00; // NaN\n  if (value === 0) return (1 / value === -Infinity) << 15; // +0 or -0\n\n  var neg = value < 0;\n  if (neg) value = -value;\n  if (value >= MIN_INFINITY16) return neg << 15 | 0x7C00; // Infinity\n  if (value < MIN_NORMAL16) return neg << 15 | roundTiesToEven(value * REC_MIN_SUBNORMAL16); // subnormal\n\n  // normal\n  var exponent = floor(log2(value));\n  if (exponent === -15) {\n    // we round from a value between 2 ** -15 * (1 + 1022/1024) (the largest subnormal) and 2 ** -14 * (1 + 0/1024) (the smallest normal)\n    // to the latter (former impossible because of the subnormal check above)\n    return neg << 15 | REC_SIGNIFICAND_DENOM16;\n  }\n  var significand = roundTiesToEven((value * pow(2, -exponent) - 1) * REC_SIGNIFICAND_DENOM16);\n  if (significand === REC_SIGNIFICAND_DENOM16) {\n    // we round from a value between 2 ** n * (1 + 1023/1024) and 2 ** (n + 1) * (1 + 0/1024) to the latter\n    return neg << 15 | exponent + 16 << 10;\n  }\n  return neg << 15 | exponent + 15 << 10 | significand;\n};\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar setUint16 = uncurryThis(DataView.prototype.setUint16);\n\n// `DataView.prototype.setFloat16` method\n// https://tc39.es/ecma262/#sec-dataview.prototype.setfloat16\n$({ target: 'DataView', proto: true }, {\n  setFloat16: function setFloat16(byteOffset, value /* , littleEndian */) {\n    setUint16(\n      aDataView(this),\n      toIndex(byteOffset),\n      packFloat16(+value),\n      arguments.length > 2 ? arguments[2] : false\n    );\n  }\n});\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar classof = __webpack_require__(82);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'DataView') return argument;\n  throw new $TypeError('Argument is not a DataView');\n};\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIntegerOrInfinity = __webpack_require__(65);\nvar toLength = __webpack_require__(68);\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toIntegerOrInfinity(it);\n  var length = toLength(number);\n  if (number !== length) throw new $RangeError('Wrong length or index');\n  return length;\n};\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n// eslint-disable-next-line es/no-math-log2 -- safe\nmodule.exports = Math.log2 || function log2(x) {\n  return log(x) / LN2;\n};\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar EPSILON = 2.220446049250313e-16; // Number.EPSILON\nvar INVERSE_EPSILON = 1 / EPSILON;\n\nmodule.exports = function (n) {\n  return n + INVERSE_EPSILON - INVERSE_EPSILON;\n};\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar isDetached = __webpack_require__(131);\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\n// `ArrayBuffer.prototype.detached` getter\n// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n  defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n    configurable: true,\n    get: function detached() {\n      return isDetached(this);\n    }\n  });\n}\n\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar makeBuiltIn = __webpack_require__(52);\nvar defineProperty = __webpack_require__(23);\n\nmodule.exports = function (target, name, descriptor) {\n  if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n  if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n  return defineProperty.f(target, name, descriptor);\n};\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(132);\nvar arrayBufferByteLength = __webpack_require__(133);\n\nvar DataView = globalThis.DataView;\n\nmodule.exports = function (O) {\n  if (!NATIVE_ARRAY_BUFFER || arrayBufferByteLength(O) !== 0) return false;\n  try {\n    // eslint-disable-next-line no-new -- thrower\n    new DataView(O);\n    return false;\n  } catch (error) {\n    return true;\n  }\n};\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar uncurryThisAccessor = __webpack_require__(75);\nvar classof = __webpack_require__(46);\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar TypeError = globalThis.TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n  if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');\n  return O.byteLength;\n};\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar $transfer = __webpack_require__(135);\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n  transfer: function transfer() {\n    return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n  }\n});\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar uncurryThis = __webpack_require__(6);\nvar uncurryThisAccessor = __webpack_require__(75);\nvar toIndex = __webpack_require__(126);\nvar notDetached = __webpack_require__(136);\nvar arrayBufferByteLength = __webpack_require__(133);\nvar detachTransferable = __webpack_require__(137);\nvar PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(141);\n\nvar structuredClone = globalThis.structuredClone;\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar DataView = globalThis.DataView;\nvar max = Math.max;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n  var byteLength = arrayBufferByteLength(arrayBuffer);\n  var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n  var fixedLength = !isResizable || !isResizable(arrayBuffer);\n  var newBuffer;\n  notDetached(arrayBuffer);\n  if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n    arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n    if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n  }\n  if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n    newBuffer = slice(arrayBuffer, 0, newByteLength);\n  } else {\n    var options = preserveResizability && !fixedLength && maxByteLength\n      ? { maxByteLength: max(newByteLength, maxByteLength(arrayBuffer)) }\n      : undefined;\n    newBuffer = new ArrayBuffer(newByteLength, options);\n    var a = new DataView(arrayBuffer);\n    var b = new DataView(newBuffer);\n    var copyLength = min(newByteLength, byteLength);\n    for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n  }\n  if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n  return newBuffer;\n};\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isDetached = __webpack_require__(131);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n  if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');\n  return it;\n};\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar getBuiltInNodeModule = __webpack_require__(138);\nvar PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(141);\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n  detach = function (transferable) {\n    structuredClone(transferable, { transfer: [transferable] });\n  };\n} else if ($ArrayBuffer) try {\n  if (!$MessageChannel) {\n    WorkerThreads = getBuiltInNodeModule('worker_threads');\n    if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n  }\n\n  if ($MessageChannel) {\n    channel = new $MessageChannel();\n    buffer = new $ArrayBuffer(2);\n\n    $detach = function (transferable) {\n      channel.port1.postMessage(null, [transferable]);\n    };\n\n    if (buffer.byteLength === 2) {\n      $detach(buffer);\n      if (buffer.byteLength === 0) detach = $detach;\n    }\n  }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar IS_NODE = __webpack_require__(139);\n\nmodule.exports = function (name) {\n  if (IS_NODE) {\n    try {\n      return globalThis.process.getBuiltinModule(name);\n    } catch (error) { /* empty */ }\n    try {\n      // eslint-disable-next-line no-new-func -- safe\n      return Function('return require(\"' + name + '\")')();\n    } catch (error) { /* empty */ }\n  }\n};\n\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ENVIRONMENT = __webpack_require__(140);\n\nmodule.exports = ENVIRONMENT === 'NODE';\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* global Bun, Deno -- detection */\nvar globalThis = __webpack_require__(2);\nvar userAgent = __webpack_require__(21);\nvar classof = __webpack_require__(46);\n\nvar userAgentStartsWith = function (string) {\n  return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n  if (userAgentStartsWith('Bun/')) return 'BUN';\n  if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n  if (userAgentStartsWith('Deno/')) return 'DENO';\n  if (userAgentStartsWith('Node.js/')) return 'NODE';\n  if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n  if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n  if (classof(globalThis.process) === 'process') return 'NODE';\n  if (globalThis.window && globalThis.document) return 'BROWSER';\n  return 'REST';\n})();\n\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar fails = __webpack_require__(8);\nvar V8 = __webpack_require__(20);\nvar ENVIRONMENT = __webpack_require__(140);\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n  // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n  var buffer = new ArrayBuffer(8);\n  var clone = structuredClone(buffer, { transfer: [buffer] });\n  return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar $transfer = __webpack_require__(135);\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n  transferToFixedLength: function transferToFixedLength() {\n    return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n  }\n});\n\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/proposal-explicit-resource-management\nvar $ = __webpack_require__(49);\nvar DESCRIPTORS = __webpack_require__(24);\nvar getBuiltIn = __webpack_require__(35);\nvar aCallable = __webpack_require__(38);\nvar anInstance = __webpack_require__(144);\nvar defineBuiltIn = __webpack_require__(51);\nvar defineBuiltIns = __webpack_require__(145);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar wellKnownSymbol = __webpack_require__(13);\nvar InternalStateModule = __webpack_require__(55);\nvar addDisposableResource = __webpack_require__(146);\n\nvar SuppressedError = getBuiltIn('SuppressedError');\nvar $ReferenceError = ReferenceError;\n\nvar DISPOSE = wellKnownSymbol('dispose');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar DISPOSABLE_STACK = 'DisposableStack';\nvar setInternalState = InternalStateModule.set;\nvar getDisposableStackInternalState = InternalStateModule.getterFor(DISPOSABLE_STACK);\n\nvar HINT = 'sync-dispose';\nvar DISPOSED = 'disposed';\nvar PENDING = 'pending';\n\nvar getPendingDisposableStackInternalState = function (stack) {\n  var internalState = getDisposableStackInternalState(stack);\n  if (internalState.state === DISPOSED) throw new $ReferenceError(DISPOSABLE_STACK + ' already disposed');\n  return internalState;\n};\n\nvar $DisposableStack = function DisposableStack() {\n  setInternalState(anInstance(this, DisposableStackPrototype), {\n    type: DISPOSABLE_STACK,\n    state: PENDING,\n    stack: []\n  });\n\n  if (!DESCRIPTORS) this.disposed = false;\n};\n\nvar DisposableStackPrototype = $DisposableStack.prototype;\n\ndefineBuiltIns(DisposableStackPrototype, {\n  dispose: function dispose() {\n    var internalState = getDisposableStackInternalState(this);\n    if (internalState.state === DISPOSED) return;\n    internalState.state = DISPOSED;\n    if (!DESCRIPTORS) this.disposed = true;\n    var stack = internalState.stack;\n    var i = stack.length;\n    var thrown = false;\n    var suppressed;\n    while (i) {\n      var disposeMethod = stack[--i];\n      stack[i] = null;\n      try {\n        disposeMethod();\n      } catch (errorResult) {\n        if (thrown) {\n          suppressed = new SuppressedError(errorResult, suppressed);\n        } else {\n          thrown = true;\n          suppressed = errorResult;\n        }\n      }\n    }\n    internalState.stack = null;\n    if (thrown) throw suppressed;\n  },\n  use: function use(value) {\n    addDisposableResource(getPendingDisposableStackInternalState(this), value, HINT);\n    return value;\n  },\n  adopt: function adopt(value, onDispose) {\n    var internalState = getPendingDisposableStackInternalState(this);\n    aCallable(onDispose);\n    addDisposableResource(internalState, undefined, HINT, function () {\n      onDispose(value);\n    });\n    return value;\n  },\n  defer: function defer(onDispose) {\n    var internalState = getPendingDisposableStackInternalState(this);\n    aCallable(onDispose);\n    addDisposableResource(internalState, undefined, HINT, onDispose);\n  },\n  move: function move() {\n    var internalState = getPendingDisposableStackInternalState(this);\n    var newDisposableStack = new $DisposableStack();\n    getDisposableStackInternalState(newDisposableStack).stack = internalState.stack;\n    internalState.stack = [];\n    internalState.state = DISPOSED;\n    if (!DESCRIPTORS) this.disposed = true;\n    return newDisposableStack;\n  }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(DisposableStackPrototype, 'disposed', {\n  configurable: true,\n  get: function disposed() {\n    return getDisposableStackInternalState(this).state === DISPOSED;\n  }\n});\n\ndefineBuiltIn(DisposableStackPrototype, DISPOSE, DisposableStackPrototype.dispose, { name: 'dispose' });\ndefineBuiltIn(DisposableStackPrototype, TO_STRING_TAG, DISPOSABLE_STACK, { nonWritable: true });\n\n$({ global: true, constructor: true }, {\n  DisposableStack: $DisposableStack\n});\n\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isPrototypeOf = __webpack_require__(36);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n  if (isPrototypeOf(Prototype, it)) return it;\n  throw new $TypeError('Incorrect invocation');\n};\n\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar defineBuiltIn = __webpack_require__(51);\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) defineBuiltIn(target, key, src[key], options);\n  return target;\n};\n\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(35);\nvar call = __webpack_require__(33);\nvar uncurryThis = __webpack_require__(6);\nvar bind = __webpack_require__(98);\nvar anObject = __webpack_require__(30);\nvar aCallable = __webpack_require__(38);\nvar isNullOrUndefined = __webpack_require__(11);\nvar getMethod = __webpack_require__(37);\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar DISPOSE = wellKnownSymbol('dispose');\n\nvar push = uncurryThis([].push);\n\n// `GetDisposeMethod` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-getdisposemethod\nvar getDisposeMethod = function (V, hint) {\n  if (hint === 'async-dispose') {\n    var method = getMethod(V, ASYNC_DISPOSE);\n    if (method !== undefined) return method;\n    method = getMethod(V, DISPOSE);\n    if (method === undefined) return method;\n    return function () {\n      var O = this;\n      var Promise = getBuiltIn('Promise');\n      return new Promise(function (resolve) {\n        call(method, O);\n        resolve(undefined);\n      });\n    };\n  } return getMethod(V, DISPOSE);\n};\n\n// `CreateDisposableResource` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-createdisposableresource\nvar createDisposableResource = function (V, hint, method) {\n  if (arguments.length < 3 && !isNullOrUndefined(V)) {\n    method = aCallable(getDisposeMethod(anObject(V), hint));\n  }\n\n  return method === undefined ? function () {\n    return undefined;\n  } : bind(method, V);\n};\n\n// `AddDisposableResource` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-adddisposableresource\nmodule.exports = function (disposable, V, hint, method) {\n  var resource;\n  if (arguments.length < 4) {\n    // When `V`` is either `null` or `undefined` and hint is `async-dispose`,\n    // we record that the resource was evaluated to ensure we will still perform an `Await` when resources are later disposed.\n    if (isNullOrUndefined(V) && hint === 'sync-dispose') return;\n    resource = createDisposableResource(V, hint);\n  } else {\n    resource = createDisposableResource(undefined, hint, method);\n  }\n\n  push(disposable.stack, resource);\n};\n\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar anInstance = __webpack_require__(144);\nvar anObject = __webpack_require__(30);\nvar isCallable = __webpack_require__(28);\nvar getPrototypeOf = __webpack_require__(91);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar createProperty = __webpack_require__(117);\nvar fails = __webpack_require__(8);\nvar hasOwn = __webpack_require__(5);\nvar wellKnownSymbol = __webpack_require__(13);\nvar IteratorPrototype = __webpack_require__(148).IteratorPrototype;\nvar DESCRIPTORS = __webpack_require__(24);\nvar IS_PURE = __webpack_require__(16);\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = globalThis[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n  || !isCallable(NativeIterator)\n  || NativeIterator.prototype !== IteratorPrototype\n  // FF44- non-standard `Iterator` passes previous tests\n  || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n  anInstance(this, IteratorPrototype);\n  if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n  if (DESCRIPTORS) {\n    defineBuiltInAccessor(IteratorPrototype, key, {\n      configurable: true,\n      get: function () {\n        return value;\n      },\n      set: function (replacement) {\n        anObject(this);\n        if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n        if (hasOwn(this, key)) this[key] = replacement;\n        else createProperty(this, key, replacement);\n      }\n    });\n  } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n  defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://tc39.es/ecma262/#sec-iterator\n$({ global: true, constructor: true, forced: FORCED }, {\n  Iterator: IteratorConstructor\n});\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(8);\nvar isCallable = __webpack_require__(28);\nvar isObject = __webpack_require__(27);\nvar create = __webpack_require__(93);\nvar getPrototypeOf = __webpack_require__(91);\nvar defineBuiltIn = __webpack_require__(51);\nvar wellKnownSymbol = __webpack_require__(13);\nvar IS_PURE = __webpack_require__(16);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n  var test = {};\n  // FF44- legacy iterators case\n  return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n  defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n    return this;\n  });\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar getIteratorMethod = __webpack_require__(103);\nvar createIteratorProxy = __webpack_require__(150);\nvar IS_PURE = __webpack_require__(16);\n\nvar $Array = Array;\n\nvar IteratorProxy = createIteratorProxy(function () {\n  while (true) {\n    var iterator = this.iterator;\n    if (!iterator) {\n      var iterableIndex = this.nextIterableIndex++;\n      var iterables = this.iterables;\n      if (iterableIndex >= iterables.length) {\n        this.done = true;\n        return;\n      }\n      var entry = iterables[iterableIndex];\n      this.iterables[iterableIndex] = null;\n      iterator = this.iterator = anObject(call(entry.method, entry.iterable));\n      this.next = iterator.next;\n    }\n    var result = anObject(call(this.next, iterator));\n    if (result.done) {\n      this.iterator = null;\n      this.next = null;\n      continue;\n    }\n    return result.value;\n  }\n});\n\n// `Iterator.concat` method\n// https://tc39.es/ecma262/#sec-iterator.concat\n$({ target: 'Iterator', stat: true, forced: IS_PURE }, {\n  concat: function concat() {\n    var length = arguments.length;\n    var iterables = $Array(length);\n    for (var index = 0; index < length; index++) {\n      var item = anObject(arguments[index]);\n      iterables[index] = {\n        iterable: item,\n        method: aCallable(getIteratorMethod(item))\n      };\n    }\n    return new IteratorProxy({\n      iterables: iterables,\n      nextIterableIndex: 0,\n      iterator: null,\n      next: null\n    });\n  }\n});\n\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar create = __webpack_require__(93);\nvar createNonEnumerableProperty = __webpack_require__(50);\nvar defineBuiltIns = __webpack_require__(145);\nvar wellKnownSymbol = __webpack_require__(13);\nvar InternalStateModule = __webpack_require__(55);\nvar getMethod = __webpack_require__(37);\nvar IteratorPrototype = __webpack_require__(148).IteratorPrototype;\nvar createIterResultObject = __webpack_require__(151);\nvar iteratorClose = __webpack_require__(104);\nvar iteratorCloseAll = __webpack_require__(152);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar NORMAL = 'normal';\nvar THROW = 'throw';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n  var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n  return defineBuiltIns(create(IteratorPrototype), {\n    next: function next() {\n      var state = getInternalState(this);\n      // for simplification:\n      //   for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`\n      //   for `%IteratorHelperPrototype%.next` - just a value\n      if (IS_ITERATOR) return state.nextHandler();\n      if (state.done) return createIterResultObject(undefined, true);\n      try {\n        var result = state.nextHandler();\n        return state.returnHandlerResult ? result : createIterResultObject(result, state.done);\n      } catch (error) {\n        state.done = true;\n        throw error;\n      }\n    },\n    'return': function () {\n      var state = getInternalState(this);\n      var iterator = state.iterator;\n      var done = state.done;\n      state.done = true;\n      if (IS_ITERATOR) {\n        var returnMethod = getMethod(iterator, 'return');\n        return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n      }\n      if (done) return createIterResultObject(undefined, true);\n      if (state.inner) try {\n        iteratorClose(state.inner.iterator, NORMAL);\n      } catch (error) {\n        return iteratorClose(iterator, THROW, error);\n      }\n      if (state.openIters) try {\n        iteratorCloseAll(state.openIters, NORMAL);\n      } catch (error) {\n        if (iterator) return iteratorClose(iterator, THROW, error);\n        throw error;\n      }\n      if (iterator) iteratorClose(iterator, NORMAL);\n      return createIterResultObject(undefined, true);\n    }\n  });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {\n  var IteratorProxy = function Iterator(record, state) {\n    if (state) {\n      state.iterator = record.iterator;\n      state.next = record.next;\n    } else state = record;\n    state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n    state.returnHandlerResult = !!RETURN_HANDLER_RESULT;\n    state.nextHandler = nextHandler;\n    state.counter = 0;\n    state.done = false;\n    setInternalState(this, state);\n  };\n\n  IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n  return IteratorProxy;\n};\n\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n  return { value: value, done: done };\n};\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar iteratorClose = __webpack_require__(104);\n\nmodule.exports = function (iters, kind, value) {\n  for (var i = iters.length - 1; i >= 0; i--) {\n    if (iters[i] === undefined) continue;\n    try {\n      value = iteratorClose(iters[i].iterator, kind, value);\n    } catch (error) {\n      kind = 'throw';\n      value = error;\n    }\n  }\n  if (kind === 'throw') throw value;\n  return value;\n};\n\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/proposal-explicit-resource-management\nvar call = __webpack_require__(33);\nvar defineBuiltIn = __webpack_require__(51);\nvar getMethod = __webpack_require__(37);\nvar hasOwn = __webpack_require__(5);\nvar wellKnownSymbol = __webpack_require__(13);\nvar IteratorPrototype = __webpack_require__(148).IteratorPrototype;\n\nvar DISPOSE = wellKnownSymbol('dispose');\n\nif (!hasOwn(IteratorPrototype, DISPOSE)) {\n  defineBuiltIn(IteratorPrototype, DISPOSE, function () {\n    var $return = getMethod(this, 'return');\n    if ($return) call($return, this);\n  });\n}\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar notANaN = __webpack_require__(156);\nvar toPositiveInteger = __webpack_require__(157);\nvar iteratorClose = __webpack_require__(104);\nvar createIteratorProxy = __webpack_require__(150);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(158);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(159);\nvar IS_PURE = __webpack_require__(16);\n\nvar DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('drop', 0);\nvar dropWithoutClosingOnEarlyError = !IS_PURE && !DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n  && iteratorHelperWithoutClosingOnEarlyError('drop', RangeError);\n\nvar FORCED = IS_PURE || DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR || dropWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var next = this.next;\n  var result, done;\n  while (this.remaining) {\n    this.remaining--;\n    result = anObject(call(next, iterator));\n    done = this.done = !!result.done;\n    if (done) return;\n  }\n  result = anObject(call(next, iterator));\n  done = this.done = !!result.done;\n  if (!done) return result.value;\n});\n\n// `Iterator.prototype.drop` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.drop\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n  drop: function drop(limit) {\n    anObject(this);\n    var remaining;\n    try {\n      remaining = toPositiveInteger(notANaN(+limit));\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (dropWithoutClosingOnEarlyError) return call(dropWithoutClosingOnEarlyError, this, remaining);\n\n    return new IteratorProxy(getIteratorDirect(this), {\n      remaining: remaining\n    });\n  }\n});\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/ecma262/#sec-getiteratordirect\nmodule.exports = function (obj) {\n  return {\n    iterator: obj,\n    next: obj.next,\n    done: false\n  };\n};\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (it === it) return it;\n  throw new $RangeError('NaN is not allowed');\n};\n\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIntegerOrInfinity = __webpack_require__(65);\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n  var result = toIntegerOrInfinity(it);\n  if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n  return result;\n};\n\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// Should throw an error on invalid iterator\n// https://issues.chromium.org/issues/336839115\nmodule.exports = function (methodName, argument) {\n  // eslint-disable-next-line es/no-iterator -- required for testing\n  var method = typeof Iterator == 'function' && Iterator.prototype[methodName];\n  if (method) try {\n    method.call({ next: null }, argument).next();\n  } catch (error) {\n    return true;\n  }\n};\n\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\n\n// https://github.com/tc39/ecma262/pull/3467\nmodule.exports = function (METHOD_NAME, ExpectedError) {\n  var Iterator = globalThis.Iterator;\n  var IteratorPrototype = Iterator && Iterator.prototype;\n  var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];\n\n  var CLOSED = false;\n\n  if (method) try {\n    method.call({\n      next: function () { return { done: true }; },\n      'return': function () { CLOSED = true; }\n    }, -1);\n  } catch (error) {\n    // https://bugs.webkit.org/show_bug.cgi?id=291195\n    if (!(error instanceof ExpectedError)) CLOSED = false;\n  }\n\n  if (!CLOSED) return method;\n};\n\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar iterate = __webpack_require__(97);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar iteratorClose = __webpack_require__(104);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(159);\n\nvar everyWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('every', TypeError);\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEarlyError }, {\n  every: function every(predicate) {\n    anObject(this);\n    try {\n      aCallable(predicate);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (everyWithoutClosingOnEarlyError) return call(everyWithoutClosingOnEarlyError, this, predicate);\n\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return !iterate(record, function (value, stop) {\n      if (!predicate(value, counter++)) return stop();\n    }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n  }\n});\n\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar createIteratorProxy = __webpack_require__(150);\nvar callWithSafeIterationClosing = __webpack_require__(162);\nvar IS_PURE = __webpack_require__(16);\nvar iteratorClose = __webpack_require__(104);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(158);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(159);\n\nvar FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('filter', function () { /* empty */ });\nvar filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR\n  && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);\n\nvar FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var predicate = this.predicate;\n  var next = this.next;\n  var result, done, value;\n  while (true) {\n    result = anObject(call(next, iterator));\n    done = this.done = !!result.done;\n    if (done) return;\n    value = result.value;\n    if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n  }\n});\n\n// `Iterator.prototype.filter` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.filter\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n  filter: function filter(predicate) {\n    anObject(this);\n    try {\n      aCallable(predicate);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate);\n\n    return new IteratorProxy(getIteratorDirect(this), {\n      predicate: predicate\n    });\n  }\n});\n\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(30);\nvar iteratorClose = __webpack_require__(104);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  } catch (error) {\n    iteratorClose(iterator, 'throw', error);\n  }\n};\n\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar iterate = __webpack_require__(97);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar iteratorClose = __webpack_require__(104);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(159);\n\nvar findWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('find', TypeError);\n\n// `Iterator.prototype.find` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.find\n$({ target: 'Iterator', proto: true, real: true, forced: findWithoutClosingOnEarlyError }, {\n  find: function find(predicate) {\n    anObject(this);\n    try {\n      aCallable(predicate);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (findWithoutClosingOnEarlyError) return call(findWithoutClosingOnEarlyError, this, predicate);\n\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return iterate(record, function (value, stop) {\n      if (predicate(value, counter++)) return stop(value);\n    }, { IS_RECORD: true, INTERRUPTED: true }).result;\n  }\n});\n\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar getIteratorFlattenable = __webpack_require__(165);\nvar createIteratorProxy = __webpack_require__(150);\nvar iteratorClose = __webpack_require__(104);\nvar IS_PURE = __webpack_require__(16);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(158);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(159);\n\n// Should not throw an error for an iterator without `return` method. Fixed in Safari 26.2\n// https://bugs.webkit.org/show_bug.cgi?id=297532\nfunction throwsOnIteratorWithoutReturn() {\n  try {\n    // eslint-disable-next-line es/no-map, es/no-iterator, es/no-iterator-prototype-flatmap -- required for testing\n    var it = Iterator.prototype.flatMap.call(new Map([[4, 5]]).entries(), function (v) { return v; });\n    it.next();\n    it['return']();\n  } catch (error) {\n    return true;\n  }\n}\n\nvar FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE\n  && !iteratorHelperThrowsOnInvalidIterator('flatMap', function () { /* empty */ });\nvar flatMapWithoutClosingOnEarlyError = !IS_PURE && !FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n  && iteratorHelperWithoutClosingOnEarlyError('flatMap', TypeError);\n\nvar FORCED = IS_PURE || FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || flatMapWithoutClosingOnEarlyError\n  || throwsOnIteratorWithoutReturn();\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var mapper = this.mapper;\n  var result, inner;\n\n  while (true) {\n    if (inner = this.inner) try {\n      result = anObject(call(inner.next, inner.iterator));\n      if (!result.done) return result.value;\n      this.inner = null;\n    } catch (error) { iteratorClose(iterator, 'throw', error); }\n\n    result = anObject(call(this.next, iterator));\n\n    if (this.done = !!result.done) return;\n\n    try {\n      this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false);\n    } catch (error) { iteratorClose(iterator, 'throw', error); }\n  }\n});\n\n// `Iterator.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.flatmap\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n  flatMap: function flatMap(mapper) {\n    anObject(this);\n    try {\n      aCallable(mapper);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (flatMapWithoutClosingOnEarlyError) return call(flatMapWithoutClosingOnEarlyError, this, mapper);\n\n    return new IteratorProxy(getIteratorDirect(this), {\n      mapper: mapper,\n      inner: null\n    });\n  }\n});\n\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar getIteratorMethod = __webpack_require__(103);\n\nmodule.exports = function (obj, stringHandling) {\n  if (!stringHandling || typeof obj !== 'string') anObject(obj);\n  var method = getIteratorMethod(obj);\n  return getIteratorDirect(anObject(method !== undefined ? call(method, obj) : obj));\n};\n\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar iterate = __webpack_require__(97);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar iteratorClose = __webpack_require__(104);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(159);\n\nvar forEachWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('forEach', TypeError);\n\n// `Iterator.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.foreach\n$({ target: 'Iterator', proto: true, real: true, forced: forEachWithoutClosingOnEarlyError }, {\n  forEach: function forEach(fn) {\n    anObject(this);\n    try {\n      aCallable(fn);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (forEachWithoutClosingOnEarlyError) return call(forEachWithoutClosingOnEarlyError, this, fn);\n\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    iterate(record, function (value) {\n      fn(value, counter++);\n    }, { IS_RECORD: true });\n  }\n});\n\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar toObject = __webpack_require__(9);\nvar isPrototypeOf = __webpack_require__(36);\nvar IteratorPrototype = __webpack_require__(148).IteratorPrototype;\nvar createIteratorProxy = __webpack_require__(150);\nvar getIteratorFlattenable = __webpack_require__(165);\nvar IS_PURE = __webpack_require__(16);\n\nvar FORCED = IS_PURE || function () {\n  // Should not throw when an underlying iterator's `return` method is null\n  // https://bugs.webkit.org/show_bug.cgi?id=288714\n  try {\n    // eslint-disable-next-line es/no-iterator -- required for testing\n    Iterator.from({ 'return': null })['return']();\n  } catch (error) {\n    return true;\n  }\n}();\n\nvar IteratorProxy = createIteratorProxy(function () {\n  return call(this.next, this.iterator);\n}, true);\n\n// `Iterator.from` method\n// https://tc39.es/ecma262/#sec-iterator.from\n$({ target: 'Iterator', stat: true, forced: FORCED }, {\n  from: function from(O) {\n    var iteratorRecord = getIteratorFlattenable(typeof O == 'string' ? toObject(O) : O, true);\n    return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator)\n      ? iteratorRecord.iterator\n      : new IteratorProxy(iteratorRecord);\n  }\n});\n\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar createIteratorProxy = __webpack_require__(150);\nvar callWithSafeIterationClosing = __webpack_require__(162);\nvar iteratorClose = __webpack_require__(104);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(158);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(159);\nvar IS_PURE = __webpack_require__(16);\n\nvar MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });\nvar mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n  && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);\n\nvar FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var result = anObject(call(this.next, iterator));\n  var done = this.done = !!result.done;\n  if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.map\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n  map: function map(mapper) {\n    anObject(this);\n    try {\n      aCallable(mapper);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);\n\n    return new IteratorProxy(getIteratorDirect(this), {\n      mapper: mapper\n    });\n  }\n});\n\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar iterate = __webpack_require__(97);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar iteratorClose = __webpack_require__(104);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(159);\nvar apply = __webpack_require__(72);\nvar fails = __webpack_require__(8);\n\nvar $TypeError = TypeError;\n\n// https://bugs.webkit.org/show_bug.cgi?id=291651\nvar FAILS_ON_INITIAL_UNDEFINED = fails(function () {\n  // eslint-disable-next-line es/no-iterator-prototype-reduce, es/no-array-prototype-keys, array-callback-return -- required for testing\n  [].keys().reduce(function () { /* empty */ }, undefined);\n});\n\nvar reduceWithoutClosingOnEarlyError = !FAILS_ON_INITIAL_UNDEFINED && iteratorHelperWithoutClosingOnEarlyError('reduce', $TypeError);\n\n// `Iterator.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.reduce\n$({ target: 'Iterator', proto: true, real: true, forced: FAILS_ON_INITIAL_UNDEFINED || reduceWithoutClosingOnEarlyError }, {\n  reduce: function reduce(reducer /* , initialValue */) {\n    anObject(this);\n    try {\n      aCallable(reducer);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    var noInitial = arguments.length < 2;\n    var accumulator = noInitial ? undefined : arguments[1];\n    if (reduceWithoutClosingOnEarlyError) {\n      return apply(reduceWithoutClosingOnEarlyError, this, noInitial ? [reducer] : [reducer, accumulator]);\n    }\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    iterate(record, function (value) {\n      if (noInitial) {\n        noInitial = false;\n        accumulator = value;\n      } else {\n        accumulator = reducer(accumulator, value, counter);\n      }\n      counter++;\n    }, { IS_RECORD: true });\n    if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n    return accumulator;\n  }\n});\n\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar iterate = __webpack_require__(97);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar iteratorClose = __webpack_require__(104);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(159);\n\nvar someWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('some', TypeError);\n\n// `Iterator.prototype.some` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.some\n$({ target: 'Iterator', proto: true, real: true, forced: someWithoutClosingOnEarlyError }, {\n  some: function some(predicate) {\n    anObject(this);\n    try {\n      aCallable(predicate);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (someWithoutClosingOnEarlyError) return call(someWithoutClosingOnEarlyError, this, predicate);\n\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return iterate(record, function (value, stop) {\n      if (predicate(value, counter++)) return stop();\n    }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n  }\n});\n\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar notANaN = __webpack_require__(156);\nvar toPositiveInteger = __webpack_require__(157);\nvar createIteratorProxy = __webpack_require__(150);\nvar iteratorClose = __webpack_require__(104);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(158);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(159);\nvar IS_PURE = __webpack_require__(16);\n\nvar TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('take', 1);\nvar takeWithoutClosingOnEarlyError = !IS_PURE && !TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR\n  && iteratorHelperWithoutClosingOnEarlyError('take', RangeError);\n\nvar FORCED = IS_PURE || TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR || takeWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  if (!this.remaining--) {\n    this.done = true;\n    return iteratorClose(iterator, 'normal', undefined);\n  }\n  var result = anObject(call(this.next, iterator));\n  var done = this.done = !!result.done;\n  if (!done) return result.value;\n});\n\n// `Iterator.prototype.take` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.take\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n  take: function take(limit) {\n    anObject(this);\n    var remaining;\n    try {\n      remaining = toPositiveInteger(notANaN(+limit));\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (takeWithoutClosingOnEarlyError) return call(takeWithoutClosingOnEarlyError, this, remaining);\n\n    return new IteratorProxy(getIteratorDirect(this), {\n      remaining: remaining\n    });\n  }\n});\n\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar anObject = __webpack_require__(30);\nvar createProperty = __webpack_require__(117);\nvar iterate = __webpack_require__(97);\nvar getIteratorDirect = __webpack_require__(155);\n\n// `Iterator.prototype.toArray` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.toarray\n$({ target: 'Iterator', proto: true, real: true }, {\n  toArray: function toArray() {\n    var result = [];\n    var index = 0;\n    iterate(getIteratorDirect(anObject(this)), function (element) {\n      createProperty(result, index++, element);\n    }, { IS_RECORD: true });\n    return result;\n  }\n});\n\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar NATIVE_RAW_JSON = __webpack_require__(174);\nvar isRawJSON = __webpack_require__(175);\n\n// `JSON.isRawJSON` method\n// https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {\n  isRawJSON: isRawJSON\n});\n\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* eslint-disable es/no-json -- safe */\nvar fails = __webpack_require__(8);\n\nmodule.exports = !fails(function () {\n  var unsafeInt = '9007199254740993';\n  // eslint-disable-next-line es/no-json-rawjson -- feature detection\n  var raw = JSON.rawJSON(unsafeInt);\n  // eslint-disable-next-line es/no-json-israwjson -- feature detection\n  return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;\n});\n\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isObject = __webpack_require__(27);\nvar getInternalState = __webpack_require__(55).get;\n\nmodule.exports = function isRawJSON(O) {\n  if (!isObject(O)) return false;\n  var state = getInternalState(O);\n  return !!state && state.type === 'RawJSON';\n};\n\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar DESCRIPTORS = __webpack_require__(24);\nvar globalThis = __webpack_require__(2);\nvar getBuiltIn = __webpack_require__(35);\nvar uncurryThis = __webpack_require__(6);\nvar call = __webpack_require__(33);\nvar isCallable = __webpack_require__(28);\nvar isObject = __webpack_require__(27);\nvar isArray = __webpack_require__(114);\nvar hasOwn = __webpack_require__(5);\nvar toString = __webpack_require__(81);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar createProperty = __webpack_require__(117);\nvar fails = __webpack_require__(8);\nvar parseJSONString = __webpack_require__(177);\nvar NATIVE_SYMBOL = __webpack_require__(19);\n\nvar JSON = globalThis.JSON;\nvar Number = globalThis.Number;\nvar SyntaxError = globalThis.SyntaxError;\nvar nativeParse = JSON && JSON.parse;\nvar enumerableOwnProperties = getBuiltIn('Object', 'keys');\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar IS_DIGIT = /^\\d$/;\nvar IS_NON_ZERO_DIGIT = /^[1-9]$/;\nvar IS_NUMBER_START = /^[\\d-]$/;\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\nvar PRIMITIVE = 0;\nvar OBJECT = 1;\n\nvar $parse = function (source, reviver) {\n  source = toString(source);\n  var context = new Context(source, 0, '');\n  var root = context.parse();\n  var value = root.value;\n  var endIndex = context.skip(IS_WHITESPACE, root.end);\n  if (endIndex < source.length) {\n    throw new SyntaxError('Unexpected extra character: \"' + at(source, endIndex) + '\" after the parsed data at: ' + endIndex);\n  }\n  return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;\n};\n\nvar internalize = function (holder, name, reviver, node) {\n  var val = holder[name];\n  var unmodified = node && val === node.value;\n  var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};\n  var elementRecordsLen, keys, len, i, P;\n  if (isObject(val)) {\n    var nodeIsArray = isArray(val);\n    var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};\n    if (nodeIsArray) {\n      elementRecordsLen = nodes.length;\n      len = lengthOfArrayLike(val);\n      for (i = 0; i < len; i++) {\n        internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));\n      }\n    } else {\n      keys = enumerableOwnProperties(val);\n      len = lengthOfArrayLike(keys);\n      for (i = 0; i < len; i++) {\n        P = keys[i];\n        internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));\n      }\n    }\n  }\n  return call(reviver, holder, name, val, context);\n};\n\nvar internalizeProperty = function (object, key, value) {\n  if (DESCRIPTORS) {\n    var descriptor = getOwnPropertyDescriptor(object, key);\n    if (descriptor && !descriptor.configurable) return;\n  }\n  if (value === undefined) delete object[key];\n  else createProperty(object, key, value);\n};\n\nvar Node = function (value, end, source, nodes) {\n  this.value = value;\n  this.end = end;\n  this.source = source;\n  this.nodes = nodes;\n};\n\nvar Context = function (source, index) {\n  this.source = source;\n  this.index = index;\n};\n\n// https://www.json.org/json-en.html\nContext.prototype = {\n  fork: function (nextIndex) {\n    return new Context(this.source, nextIndex);\n  },\n  parse: function () {\n    var source = this.source;\n    var i = this.skip(IS_WHITESPACE, this.index);\n    var fork = this.fork(i);\n    var chr = at(source, i);\n    if (exec(IS_NUMBER_START, chr)) return fork.number();\n    switch (chr) {\n      case '{':\n        return fork.object();\n      case '[':\n        return fork.array();\n      case '\"':\n        return fork.string();\n      case 't':\n        return fork.keyword(true);\n      case 'f':\n        return fork.keyword(false);\n      case 'n':\n        return fork.keyword(null);\n    } throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n  },\n  node: function (type, value, start, end, nodes) {\n    return new Node(value, end, type ? null : slice(this.source, start, end), nodes);\n  },\n  object: function () {\n    var source = this.source;\n    var i = this.index + 1;\n    var expectKeypair = false;\n    var object = {};\n    var nodes = {};\n    var closed = false;\n    while (i < source.length) {\n      i = this.until(['\"', '}'], i);\n      if (at(source, i) === '}' && !expectKeypair) {\n        i++;\n        closed = true;\n        break;\n      }\n      // Parsing the key\n      var result = this.fork(i).string();\n      var key = result.value;\n      i = result.end;\n      i = this.until([':'], i) + 1;\n      // Parsing value\n      i = this.skip(IS_WHITESPACE, i);\n      result = this.fork(i).parse();\n      createProperty(nodes, key, result);\n      createProperty(object, key, result.value);\n      i = this.until([',', '}'], result.end);\n      var chr = at(source, i);\n      if (chr === ',') {\n        expectKeypair = true;\n        i++;\n      } else if (chr === '}') {\n        i++;\n        closed = true;\n        break;\n      }\n    }\n    if (!closed) throw new SyntaxError('Unterminated object at: ' + i);\n    return this.node(OBJECT, object, this.index, i, nodes);\n  },\n  array: function () {\n    var source = this.source;\n    var i = this.index + 1;\n    var expectElement = false;\n    var array = [];\n    var nodes = [];\n    var closed = false;\n    while (i < source.length) {\n      i = this.skip(IS_WHITESPACE, i);\n      if (at(source, i) === ']' && !expectElement) {\n        i++;\n        closed = true;\n        break;\n      }\n      var result = this.fork(i).parse();\n      push(nodes, result);\n      push(array, result.value);\n      i = this.until([',', ']'], result.end);\n      if (at(source, i) === ',') {\n        expectElement = true;\n        i++;\n      } else if (at(source, i) === ']') {\n        i++;\n        closed = true;\n        break;\n      }\n    }\n    if (!closed) throw new SyntaxError('Unterminated array at: ' + i);\n    return this.node(OBJECT, array, this.index, i, nodes);\n  },\n  string: function () {\n    var index = this.index;\n    var parsed = parseJSONString(this.source, this.index + 1);\n    return this.node(PRIMITIVE, parsed.value, index, parsed.end);\n  },\n  number: function () {\n    var source = this.source;\n    var startIndex = this.index;\n    var i = startIndex;\n    if (at(source, i) === '-') i++;\n    if (at(source, i) === '0') i++;\n    else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, i + 1);\n    else throw new SyntaxError('Failed to parse number at: ' + i);\n    if (at(source, i) === '.') {\n      var fractionStartIndex = i + 1;\n      i = this.skip(IS_DIGIT, fractionStartIndex);\n      if (fractionStartIndex === i) throw new SyntaxError(\"Failed to parse number's fraction at: \" + i);\n    }\n    if (at(source, i) === 'e' || at(source, i) === 'E') {\n      i++;\n      if (at(source, i) === '+' || at(source, i) === '-') i++;\n      var exponentStartIndex = i;\n      i = this.skip(IS_DIGIT, i);\n      if (exponentStartIndex === i) throw new SyntaxError(\"Failed to parse number's exponent value at: \" + i);\n    }\n    return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);\n  },\n  keyword: function (value) {\n    var keyword = '' + value;\n    var index = this.index;\n    var endIndex = index + keyword.length;\n    if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);\n    return this.node(PRIMITIVE, value, index, endIndex);\n  },\n  skip: function (regex, i) {\n    var source = this.source;\n    for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;\n    return i;\n  },\n  until: function (array, i) {\n    i = this.skip(IS_WHITESPACE, i);\n    var chr = at(this.source, i);\n    for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;\n    throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n  }\n};\n\nvar NO_SOURCE_SUPPORT = fails(function () {\n  var unsafeInt = '9007199254740993';\n  var source;\n  nativeParse(unsafeInt, function (key, value, context) {\n    source = context.source;\n  });\n  return source !== unsafeInt;\n});\n\nvar PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {\n  // Safari 9 bug\n  return 1 / nativeParse('-0 \\t') !== -Infinity;\n});\n\n// `JSON.parse` method\n// https://tc39.es/ecma262/#sec-json.parse\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {\n  parse: function parse(text, reviver) {\n    return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);\n  }\n});\n\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar hasOwn = __webpack_require__(5);\n\nvar $SyntaxError = SyntaxError;\nvar $parseInt = parseInt;\nvar fromCharCode = String.fromCharCode;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar codePoints = {\n  '\\\\\"': '\"',\n  '\\\\\\\\': '\\\\',\n  '\\\\/': '/',\n  '\\\\b': '\\b',\n  '\\\\f': '\\f',\n  '\\\\n': '\\n',\n  '\\\\r': '\\r',\n  '\\\\t': '\\t'\n};\n\nvar IS_4_HEX_DIGITS = /^[\\da-f]{4}$/i;\n// eslint-disable-next-line regexp/no-control-character -- safe\nvar IS_C0_CONTROL_CODE = /^[\\u0000-\\u001F]$/;\n\nmodule.exports = function (source, i) {\n  var unterminated = true;\n  var value = '';\n  while (i < source.length) {\n    var chr = at(source, i);\n    if (chr === '\\\\') {\n      var twoChars = slice(source, i, i + 2);\n      if (hasOwn(codePoints, twoChars)) {\n        value += codePoints[twoChars];\n        i += 2;\n      } else if (twoChars === '\\\\u') {\n        i += 2;\n        var fourHexDigits = slice(source, i, i + 4);\n        if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i);\n        value += fromCharCode($parseInt(fourHexDigits, 16));\n        i += 4;\n      } else throw new $SyntaxError('Unknown escape sequence: \"' + twoChars + '\"');\n    } else if (chr === '\"') {\n      unterminated = false;\n      i++;\n      break;\n    } else {\n      if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i);\n      value += chr;\n      i++;\n    }\n  }\n  if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i);\n  return { value: value, end: i };\n};\n\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar FREEZING = __webpack_require__(179);\nvar NATIVE_RAW_JSON = __webpack_require__(174);\nvar getBuiltIn = __webpack_require__(35);\nvar uncurryThis = __webpack_require__(6);\nvar toString = __webpack_require__(81);\nvar createProperty = __webpack_require__(117);\nvar setInternalState = __webpack_require__(55).set;\n\nvar $SyntaxError = SyntaxError;\nvar parse = getBuiltIn('JSON', 'parse');\nvar create = getBuiltIn('Object', 'create');\nvar freeze = getBuiltIn('Object', 'freeze');\nvar at = uncurryThis(''.charAt);\n\nvar ERROR_MESSAGE = 'Unacceptable as raw JSON';\n\nvar isWhitespace = function (it) {\n  return it === ' ' || it === '\\t' || it === '\\n' || it === '\\r';\n};\n\n// `JSON.rawJSON` method\n// https://tc39.es/proposal-json-parse-with-source/#sec-json.rawjson\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {\n  rawJSON: function rawJSON(text) {\n    var jsonString = toString(text);\n    if (jsonString === '' || isWhitespace(at(jsonString, 0)) || isWhitespace(at(jsonString, jsonString.length - 1))) {\n      throw new $SyntaxError(ERROR_MESSAGE);\n    }\n    var parsed = parse(jsonString);\n    if (typeof parsed == 'object' && parsed !== null) throw new $SyntaxError(ERROR_MESSAGE);\n    var obj = create(null);\n    setInternalState(obj, { type: 'RawJSON' });\n    createProperty(obj, 'rawJSON', jsonString);\n    return FREEZING ? freeze(obj) : obj;\n  }\n});\n\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(8);\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n  return Object.isExtensible(Object.preventExtensions({}));\n});\n\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar getBuiltIn = __webpack_require__(35);\nvar apply = __webpack_require__(72);\nvar call = __webpack_require__(33);\nvar uncurryThis = __webpack_require__(6);\nvar fails = __webpack_require__(8);\nvar isArray = __webpack_require__(114);\nvar isCallable = __webpack_require__(28);\nvar isRawJSON = __webpack_require__(175);\nvar isSymbol = __webpack_require__(34);\nvar classof = __webpack_require__(46);\nvar toString = __webpack_require__(81);\nvar arraySlice = __webpack_require__(181);\nvar parseJSONString = __webpack_require__(177);\nvar uid = __webpack_require__(18);\nvar NATIVE_SYMBOL = __webpack_require__(19);\nvar NATIVE_RAW_JSON = __webpack_require__(174);\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar slice = uncurryThis(''.slice);\nvar push = uncurryThis([].push);\nvar numberToString = uncurryThis(1.1.toString);\n\nvar surrogates = /[\\uD800-\\uDFFF]/g;\nvar leadingSurrogates = /^[\\uD800-\\uDBFF]$/;\nvar trailingSurrogates = /^[\\uDC00-\\uDFFF]$/;\n\nvar MARK = uid();\nvar MARK_LENGTH = MARK.length;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n  var symbol = getBuiltIn('Symbol')('stringify detection');\n  // MS Edge converts symbol values to JSON as {}\n  return $stringify([symbol]) !== '[null]'\n    // WebKit converts symbol values to JSON as null\n    || $stringify({ a: symbol }) !== '{}'\n    // V8 throws on boxed symbols\n    || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n  return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n    || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithProperSymbolsConversion = WRONG_SYMBOLS_CONVERSION ? function (it, replacer) {\n  var args = arraySlice(arguments);\n  var $replacer = getReplacerFunction(replacer);\n  if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n  args[1] = function (key, value) {\n    // some old implementations (like WebKit) could pass numbers as keys\n    if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n    if (!isSymbol(value)) return value;\n  };\n  return apply($stringify, null, args);\n} : $stringify;\n\nvar fixIllFormedJSON = function (match, offset, string) {\n  var prev = charAt(string, offset - 1);\n  var next = charAt(string, offset + 1);\n  if (\n    (exec(leadingSurrogates, match) && !exec(trailingSurrogates, next)) ||\n    (exec(trailingSurrogates, match) && !exec(leadingSurrogates, prev))\n  ) {\n    return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n  } return match;\n};\n\nvar getReplacerFunction = function (replacer) {\n  if (isCallable(replacer)) return replacer;\n  if (!isArray(replacer)) return;\n  var rawLength = replacer.length;\n  var keys = [];\n  for (var i = 0; i < rawLength; i++) {\n    var element = replacer[i];\n    if (typeof element == 'string') push(keys, element);\n    else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n  }\n  var keysLength = keys.length;\n  var root = true;\n  return function (key, value) {\n    if (root) {\n      root = false;\n      return value;\n    }\n    if (isArray(this)) return value;\n    for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n  };\n};\n\n// `JSON.stringify` method\n// https://tc39.es/ecma262/#sec-json.stringify\n// https://github.com/tc39/proposal-json-parse-with-source\nif ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE || !NATIVE_RAW_JSON }, {\n  stringify: function stringify(text, replacer, space) {\n    var replacerFunction = getReplacerFunction(replacer);\n    var rawStrings = [];\n\n    var json = stringifyWithProperSymbolsConversion(text, function (key, value) {\n      // some old implementations (like WebKit) could pass numbers as keys\n      var v = isCallable(replacerFunction) ? call(replacerFunction, this, $String(key), value) : value;\n      return !NATIVE_RAW_JSON && isRawJSON(v) ? MARK + (push(rawStrings, v.rawJSON) - 1) : v;\n    }, space);\n\n    if (typeof json != 'string') return json;\n\n    if (ILL_FORMED_UNICODE) json = replace(json, surrogates, fixIllFormedJSON);\n\n    if (NATIVE_RAW_JSON) return json;\n\n    var result = '';\n    var length = json.length;\n\n    for (var i = 0; i < length; i++) {\n      var chr = charAt(json, i);\n      if (chr === '\"') {\n        var end = parseJSONString(json, ++i).end - 1;\n        var string = slice(json, i, end);\n        result += slice(string, 0, MARK_LENGTH) === MARK\n          ? rawStrings[slice(string, MARK_LENGTH)]\n          : '\"' + string + '\"';\n        i = end;\n      } else result += chr;\n    }\n\n    return result;\n  }\n});\n\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\n\nmodule.exports = uncurryThis([].slice);\n\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar aCallable = __webpack_require__(38);\nvar requireObjectCoercible = __webpack_require__(10);\nvar iterate = __webpack_require__(97);\nvar MapHelpers = __webpack_require__(183);\nvar IS_PURE = __webpack_require__(16);\nvar fails = __webpack_require__(8);\n\nvar Map = MapHelpers.Map;\nvar has = MapHelpers.has;\nvar get = MapHelpers.get;\nvar set = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// https://bugs.webkit.org/show_bug.cgi?id=271524\nvar DOES_NOT_WORK_WITH_PRIMITIVES = IS_PURE || fails(function () {\n  return Map.groupBy('ab', function (it) {\n    return it;\n  }).get('a').length !== 1;\n});\n\n// `Map.groupBy` method\n// https://tc39.es/ecma262/#sec-map.groupby\n$({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES }, {\n  groupBy: function groupBy(items, callbackfn) {\n    requireObjectCoercible(items);\n    aCallable(callbackfn);\n    var map = new Map();\n    var k = 0;\n    iterate(items, function (value) {\n      var key = callbackfn(value, k++);\n      if (!has(map, key)) set(map, key, [value]);\n      else push(get(map, key), value);\n    });\n    return map;\n  }\n});\n\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n  // eslint-disable-next-line es/no-map -- safe\n  Map: Map,\n  set: uncurryThis(MapPrototype.set),\n  get: uncurryThis(MapPrototype.get),\n  has: uncurryThis(MapPrototype.has),\n  remove: uncurryThis(MapPrototype['delete']),\n  proto: MapPrototype\n};\n\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar MapHelpers = __webpack_require__(183);\nvar IS_PURE = __webpack_require__(16);\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsert` method\n// https://tc39.es/ecma262/#sec-map.prototype.getorinsert\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n  getOrInsert: function getOrInsert(key, value) {\n    if (has(this, key)) return get(this, key);\n    set(this, key, value);\n    return value;\n  }\n});\n\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aCallable = __webpack_require__(38);\nvar MapHelpers = __webpack_require__(183);\nvar IS_PURE = __webpack_require__(16);\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsertComputed` method\n// https://tc39.es/ecma262/#sec-map.prototype.getorinsertcomputed\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n  getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n    var hasKey = has(this, key);\n    aCallable(callbackfn);\n    if (hasKey) return get(this, key);\n    // CanonicalizeKeyedCollectionKey\n    if (key === 0 && 1 / key === -Infinity) key = 0;\n    var value = callbackfn(key);\n    set(this, key, value);\n    return value;\n  }\n});\n\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar floatRound = __webpack_require__(187);\n\nvar FLOAT16_EPSILON = 0.0009765625;\nvar FLOAT16_MAX_VALUE = 65504;\nvar FLOAT16_MIN_VALUE = 6.103515625e-05;\n\n// `Math.f16round` method\n// https://tc39.es/ecma262/#sec-math.f16round\n$({ target: 'Math', stat: true }, {\n  f16round: function f16round(x) {\n    return floatRound(x, FLOAT16_EPSILON, FLOAT16_MAX_VALUE, FLOAT16_MIN_VALUE);\n  }\n});\n\n\n/***/ }),\n/* 187 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar sign = __webpack_require__(188);\nvar roundTiesToEven = __webpack_require__(128);\n\nvar abs = Math.abs;\n\nvar EPSILON = 2.220446049250313e-16; // Number.EPSILON\n\nmodule.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) {\n  var n = +x;\n  var absolute = abs(n);\n  var s = sign(n);\n  if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON;\n  var a = (1 + FLOAT_EPSILON / EPSILON) * absolute;\n  var result = a - (a - absolute);\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity;\n  return s * result;\n};\n\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n  var n = +x;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return n === 0 || n !== n ? n : n < 0 ? -1 : 1;\n};\n\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// based on Shewchuk's algorithm for exactly floating point addition\n// adapted from https://github.com/tc39/proposal-math-sum/blob/3513d58323a1ae25560e8700aa5294500c6c9287/polyfill/polyfill.mjs\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar iterate = __webpack_require__(97);\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar $Infinity = Infinity;\nvar $NaN = NaN;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar push = uncurryThis([].push);\n\nvar POW_2_1023 = pow(2, 1023);\nvar MAX_SAFE_INTEGER = pow(2, 53) - 1; // 2 ** 53 - 1 === 9007199254740991\nvar MAX_DOUBLE = Number.MAX_VALUE; // 2 ** 1024 - 2 ** (1023 - 52) === 1.79769313486231570815e+308\nvar MAX_ULP = pow(2, 971); // 2 ** (1023 - 52) === 1.99584030953471981166e+292\n\nvar NOT_A_NUMBER = {};\nvar MINUS_INFINITY = {};\nvar PLUS_INFINITY = {};\nvar MINUS_ZERO = {};\nvar FINITE = {};\n\n// prerequisite: abs(x) >= abs(y)\nvar twosum = function (x, y) {\n  var hi = x + y;\n  var lo = y - (hi - x);\n  return { hi: hi, lo: lo };\n};\n\n// `Math.sumPrecise` method\n// https://tc39.es/ecma262/#sec-math.sumprecise\n$({ target: 'Math', stat: true }, {\n  // eslint-disable-next-line max-statements -- ok\n  sumPrecise: function sumPrecise(items) {\n    var numbers = [];\n    var count = 0;\n    var state = MINUS_ZERO;\n\n    iterate(items, function (n) {\n      if (++count > MAX_SAFE_INTEGER) throw new $RangeError('Maximum allowed index exceeded');\n      if (typeof n != 'number') throw new $TypeError('Value is not a number');\n      if (state !== NOT_A_NUMBER) {\n        // eslint-disable-next-line no-self-compare -- NaN check\n        if (n !== n) state = NOT_A_NUMBER;\n        else if (n === $Infinity) state = state === MINUS_INFINITY ? NOT_A_NUMBER : PLUS_INFINITY;\n        else if (n === -$Infinity) state = state === PLUS_INFINITY ? NOT_A_NUMBER : MINUS_INFINITY;\n        else if ((n !== 0 || (1 / n) === $Infinity) && (state === MINUS_ZERO || state === FINITE)) {\n          state = FINITE;\n          push(numbers, n);\n        }\n      }\n    });\n\n    switch (state) {\n      case NOT_A_NUMBER: return $NaN;\n      case MINUS_INFINITY: return -$Infinity;\n      case PLUS_INFINITY: return $Infinity;\n      case MINUS_ZERO: return -0;\n    }\n\n    var partials = [];\n    var overflow = 0; // conceptually 2 ** 1024 times this value; the final partial is biased by this amount\n    var x, y, sum, hi, lo, tmp;\n\n    for (var i = 0; i < numbers.length; i++) {\n      x = numbers[i];\n      var actuallyUsedPartials = 0;\n      for (var j = 0; j < partials.length; j++) {\n        y = partials[j];\n        if (abs(x) < abs(y)) {\n          tmp = x;\n          x = y;\n          y = tmp;\n        }\n        sum = twosum(x, y);\n        hi = sum.hi;\n        lo = sum.lo;\n        if (abs(hi) === $Infinity) {\n          var sign = hi === $Infinity ? 1 : -1;\n          overflow += sign;\n\n          x = (x - (sign * POW_2_1023)) - (sign * POW_2_1023);\n          if (abs(x) < abs(y)) {\n            tmp = x;\n            x = y;\n            y = tmp;\n          }\n          sum = twosum(x, y);\n          hi = sum.hi;\n          lo = sum.lo;\n        }\n        if (lo !== 0) partials[actuallyUsedPartials++] = lo;\n        x = hi;\n      }\n      partials.length = actuallyUsedPartials;\n      if (x !== 0) push(partials, x);\n    }\n\n    // compute the exact sum of partials, stopping once we lose precision\n    var n = partials.length - 1;\n    hi = 0;\n    lo = 0;\n\n    if (overflow !== 0) {\n      var next = n >= 0 ? partials[n] : 0;\n      n--;\n      if (abs(overflow) > 1 || (overflow > 0 && next > 0) || (overflow < 0 && next < 0)) {\n        return overflow > 0 ? $Infinity : -$Infinity;\n      }\n      // here we actually have to do the arithmetic\n      // drop a factor of 2 so we can do it without overflow\n      // assert(abs(overflow) === 1)\n      sum = twosum(overflow * POW_2_1023, next / 2);\n      hi = sum.hi;\n      lo = sum.lo;\n      lo *= 2;\n      if (abs(2 * hi) === $Infinity) {\n        // rounding to the maximum value\n        if (hi > 0) {\n          return (hi === POW_2_1023 && lo === -(MAX_ULP / 2) && n >= 0 && partials[n] < 0) ? MAX_DOUBLE : $Infinity;\n        } return (hi === -POW_2_1023 && lo === (MAX_ULP / 2) && n >= 0 && partials[n] > 0) ? -MAX_DOUBLE : -$Infinity;\n      }\n\n      if (lo !== 0) {\n        partials[++n] = lo;\n        lo = 0;\n      }\n\n      hi *= 2;\n    }\n\n    while (n >= 0) {\n      sum = twosum(hi, partials[n--]);\n      hi = sum.hi;\n      lo = sum.lo;\n      if (lo !== 0) break;\n    }\n\n    if (n >= 0 && ((lo < 0 && partials[n] < 0) || (lo > 0 && partials[n] > 0))) {\n      y = lo * 2;\n      x = hi + y;\n      if (y === x - hi) hi = x;\n    }\n\n    return hi;\n  }\n});\n\n\n/***/ }),\n/* 190 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar createProperty = __webpack_require__(117);\nvar getBuiltIn = __webpack_require__(35);\nvar uncurryThis = __webpack_require__(6);\nvar aCallable = __webpack_require__(38);\nvar requireObjectCoercible = __webpack_require__(10);\nvar toPropertyKey = __webpack_require__(31);\nvar iterate = __webpack_require__(97);\nvar fails = __webpack_require__(8);\n\n// eslint-disable-next-line es/no-object-groupby -- testing\nvar nativeGroupBy = Object.groupBy;\nvar create = getBuiltIn('Object', 'create');\nvar push = uncurryThis([].push);\n\n// https://bugs.webkit.org/show_bug.cgi?id=271524\nvar DOES_NOT_WORK_WITH_PRIMITIVES = !nativeGroupBy || fails(function () {\n  return nativeGroupBy('ab', function (it) {\n    return it;\n  }).a.length !== 1;\n});\n\n// `Object.groupBy` method\n// https://tc39.es/ecma262/#sec-object.groupby\n$({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, {\n  groupBy: function groupBy(items, callbackfn) {\n    requireObjectCoercible(items);\n    aCallable(callbackfn);\n    var obj = create(null);\n    var k = 0;\n    iterate(items, function (value) {\n      var key = toPropertyKey(callbackfn(value, k++));\n      // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys\n      // but since it's a `null` prototype object, we can safely use `in`\n      if (key in obj) push(obj[key], value);\n      else createProperty(obj, key, [value]);\n    });\n    return obj;\n  }\n});\n\n\n/***/ }),\n/* 191 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar hasOwn = __webpack_require__(5);\n\n// `Object.hasOwn` method\n// https://tc39.es/ecma262/#sec-object.hasown\n$({ target: 'Object', stat: true }, {\n  hasOwn: hasOwn\n});\n\n\n/***/ }),\n/* 192 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar isObject = __webpack_require__(27);\nvar isPossiblePrototype = __webpack_require__(77);\nvar toObject = __webpack_require__(9);\nvar requireObjectCoercible = __webpack_require__(10);\n\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nvar getPrototypeOf = Object.getPrototypeOf;\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nvar setPrototypeOf = Object.setPrototypeOf;\nvar ObjectPrototype = Object.prototype;\nvar PROTO = '__proto__';\n\n// `Object.prototype.__proto__` accessor\n// https://tc39.es/ecma262/#sec-object.prototype.__proto__\nif (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try {\n  defineBuiltInAccessor(ObjectPrototype, PROTO, {\n    configurable: true,\n    get: function __proto__() {\n      return getPrototypeOf(toObject(this));\n    },\n    set: function __proto__(proto) {\n      var O = requireObjectCoercible(this);\n      if (isPossiblePrototype(proto) && isObject(O)) {\n        setPrototypeOf(O, proto);\n      }\n    }\n  });\n} catch (error) { /* empty */ }\n\n\n/***/ }),\n/* 193 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\n__webpack_require__(194);\n__webpack_require__(213);\n__webpack_require__(216);\n__webpack_require__(217);\n__webpack_require__(218);\n__webpack_require__(219);\n\n\n/***/ }),\n/* 194 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar IS_PURE = __webpack_require__(16);\nvar IS_NODE = __webpack_require__(139);\nvar globalThis = __webpack_require__(2);\nvar path = __webpack_require__(4);\nvar call = __webpack_require__(33);\nvar defineBuiltIn = __webpack_require__(51);\nvar setPrototypeOf = __webpack_require__(74);\nvar setToStringTag = __webpack_require__(195);\nvar setSpecies = __webpack_require__(196);\nvar aCallable = __webpack_require__(38);\nvar isCallable = __webpack_require__(28);\nvar isObject = __webpack_require__(27);\nvar anInstance = __webpack_require__(144);\nvar speciesConstructor = __webpack_require__(197);\nvar task = __webpack_require__(200).set;\nvar microtask = __webpack_require__(203);\nvar hostReportErrors = __webpack_require__(208);\nvar perform = __webpack_require__(209);\nvar Queue = __webpack_require__(205);\nvar InternalStateModule = __webpack_require__(55);\nvar NativePromiseConstructor = __webpack_require__(210);\nvar PromiseConstructorDetection = __webpack_require__(211);\nvar newPromiseCapabilityModule = __webpack_require__(212);\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n  var value = state.value;\n  var ok = state.state === FULFILLED;\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(new TypeError('Promise-chain cycle'));\n      } else if (then = isThenable(result)) {\n        call(then, 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\nvar notify = function (state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  microtask(function () {\n    var reactions = state.reactions;\n    var reaction;\n    while (reaction = reactions.get()) {\n      callReaction(reaction, state);\n    }\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    globalThis.dispatchEvent(event);\n  } else event = { promise: promise, reason: reason };\n  if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n  call(task, globalThis, 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  call(task, globalThis, 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 new 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          call(then, 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_PROMISE_CONSTRUCTOR) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromisePrototype);\n    aCallable(executor);\n    call(Internal, this);\n    var state = getInternalPromiseState(this);\n    try {\n      executor(bind(internalResolve, state), bind(internalReject, state));\n    } catch (error) {\n      internalReject(state, error);\n    }\n  };\n\n  PromisePrototype = PromiseConstructor.prototype;\n\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: new Queue(),\n      rejection: false,\n      state: PENDING,\n      value: null\n    });\n  };\n\n  // `Promise.prototype.then` method\n  // https://tc39.es/ecma262/#sec-promise.prototype.then\n  Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n    var state = getInternalPromiseState(this);\n    var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n    state.parent = true;\n    reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n    reaction.fail = isCallable(onRejected) && onRejected;\n    reaction.domain = IS_NODE ? process.domain : undefined;\n    if (state.state === PENDING) state.reactions.add(reaction);\n    else microtask(function () {\n      callReaction(reaction, state);\n    });\n    return reaction.promise;\n  });\n\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalPromiseState(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\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n\n  if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n    nativeThen = NativePromisePrototype.then;\n\n    if (!NATIVE_PROMISE_SUBCLASSING) {\n      // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n      defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n        var that = this;\n        return new PromiseConstructor(function (resolve, reject) {\n          call(nativeThen, that, resolve, reject);\n        }).then(onFulfilled, onRejected);\n      // https://github.com/zloirock/core-js/issues/640\n      }, { unsafe: true });\n    }\n\n    // make `.constructor === Promise` work for native promise-based APIs\n    try {\n      delete NativePromisePrototype.constructor;\n    } catch (error) { /* empty */ }\n\n    // make `instanceof Promise` work for native promise-based APIs\n    if (setPrototypeOf) {\n      setPrototypeOf(NativePromisePrototype, PromisePrototype);\n    }\n  }\n}\n\n// `Promise` constructor\n// https://tc39.es/ecma262/#sec-promise-executor\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n  Promise: PromiseConstructor\n});\n\nPromiseWrapper = path.Promise;\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\n\n/***/ }),\n/* 195 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar defineProperty = __webpack_require__(23).f;\nvar hasOwn = __webpack_require__(5);\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n  if (target && !STATIC) target = target.prototype;\n  if (target && !hasOwn(target, TO_STRING_TAG)) {\n    defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n\n\n/***/ }),\n/* 196 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(35);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar wellKnownSymbol = __webpack_require__(13);\nvar DESCRIPTORS = __webpack_require__(24);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineBuiltInAccessor(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n\n\n/***/ }),\n/* 197 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(30);\nvar aConstructor = __webpack_require__(198);\nvar isNullOrUndefined = __webpack_require__(11);\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n\n\n/***/ }),\n/* 198 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isConstructor = __webpack_require__(199);\nvar tryToString = __webpack_require__(39);\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n  if (isConstructor(argument)) return argument;\n  throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n\n\n/***/ }),\n/* 199 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar fails = __webpack_require__(8);\nvar isCallable = __webpack_require__(28);\nvar classof = __webpack_require__(82);\nvar getBuiltIn = __webpack_require__(35);\nvar inspectSource = __webpack_require__(54);\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n  if (!isCallable(argument)) return false;\n  try {\n    construct(noop, [], argument);\n    return true;\n  } catch (error) {\n    return false;\n  }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n  if (!isCallable(argument)) return false;\n  switch (classof(argument)) {\n    case 'AsyncFunction':\n    case 'GeneratorFunction':\n    case 'AsyncGeneratorFunction': return false;\n  }\n  try {\n    // we can't check .prototype since constructors produced by .bind haven't it\n    // `Function#toString` throws on some built-it function in some legacy engines\n    // (for example, `DOMQuad` and similar in FF41-)\n    return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n  } catch (error) {\n    return true;\n  }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n  var called;\n  return isConstructorModern(isConstructorModern.call)\n    || !isConstructorModern(Object)\n    || !isConstructorModern(function () { called = true; })\n    || called;\n}) ? isConstructorLegacy : isConstructorModern;\n\n\n/***/ }),\n/* 200 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar apply = __webpack_require__(72);\nvar bind = __webpack_require__(98);\nvar isCallable = __webpack_require__(28);\nvar hasOwn = __webpack_require__(5);\nvar fails = __webpack_require__(8);\nvar html = __webpack_require__(96);\nvar arraySlice = __webpack_require__(181);\nvar createElement = __webpack_require__(26);\nvar validateArgumentsLength = __webpack_require__(201);\nvar IS_IOS = __webpack_require__(202);\nvar IS_NODE = __webpack_require__(139);\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n  // Deno throws a ReferenceError on `location` access without `--location` flag\n  $location = globalThis.location;\n});\n\nvar run = function (id) {\n  if (hasOwn(queue, id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\n\nvar eventListener = function (event) {\n  run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n  // old engines have not location.origin\n  globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(handler) {\n    validateArgumentsLength(arguments.length, 1);\n    var fn = isCallable(handler) ? handler : Function(handler);\n    var args = arraySlice(arguments, 1);\n    queue[++counter] = function () {\n      apply(fn, undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (IS_NODE) {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  // except iOS - https://github.com/zloirock/core-js/issues/624\n  } else if (MessageChannel && !IS_IOS) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = eventListener;\n    defer = bind(port.postMessage, port);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (\n    globalThis.addEventListener &&\n    isCallable(globalThis.postMessage) &&\n    !globalThis.importScripts &&\n    $location && $location.protocol !== 'file:' &&\n    !fails(globalPostMessageDefer)\n  ) {\n    defer = globalPostMessageDefer;\n    globalThis.addEventListener('message', eventListener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n\n\n/***/ }),\n/* 201 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n  if (passed < required) throw new $TypeError('Not enough arguments');\n  return passed;\n};\n\n\n/***/ }),\n/* 202 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar userAgent = __webpack_require__(21);\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && /applewebkit/i.test(userAgent);\n\n\n/***/ }),\n/* 203 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar safeGetBuiltIn = __webpack_require__(204);\nvar bind = __webpack_require__(98);\nvar macrotask = __webpack_require__(200).set;\nvar Queue = __webpack_require__(205);\nvar IS_IOS = __webpack_require__(202);\nvar IS_IOS_PEBBLE = __webpack_require__(206);\nvar IS_WEBOS_WEBKIT = __webpack_require__(207);\nvar IS_NODE = __webpack_require__(139);\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n  var queue = new Queue();\n\n  var flush = function () {\n    var parent, fn;\n    if (IS_NODE && (parent = process.domain)) parent.exit();\n    while (fn = queue.get()) try {\n      fn();\n    } catch (error) {\n      if (queue.head) notify();\n      throw error;\n    }\n    if (parent) parent.enter();\n  };\n\n  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n  // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n  if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n    toggle = true;\n    node = document.createTextNode('');\n    new MutationObserver(flush).observe(node, { characterData: true });\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    promise = Promise.resolve(undefined);\n    // workaround of WebKit ~ iOS Safari 10.1 bug\n    promise.constructor = Promise;\n    then = bind(promise.then, promise);\n    notify = function () {\n      then(flush);\n    };\n  // Node.js without promises\n  } else if (IS_NODE) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessage\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    // `webpack` dev server bug on IE global methods - use bind(fn, global)\n    macrotask = bind(macrotask, globalThis);\n    notify = function () {\n      macrotask(flush);\n    };\n  }\n\n  microtask = function (fn) {\n    if (!queue.head) notify();\n    queue.add(fn);\n  };\n}\n\nmodule.exports = microtask;\n\n\n/***/ }),\n/* 204 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar DESCRIPTORS = __webpack_require__(24);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n  if (!DESCRIPTORS) return globalThis[name];\n  var descriptor = getOwnPropertyDescriptor(globalThis, name);\n  return descriptor && descriptor.value;\n};\n\n\n/***/ }),\n/* 205 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Queue = function () {\n  this.head = null;\n  this.tail = null;\n};\n\nQueue.prototype = {\n  add: function (item) {\n    var entry = { item: item, next: null };\n    var tail = this.tail;\n    if (tail) tail.next = entry;\n    else this.head = entry;\n    this.tail = entry;\n  },\n  get: function () {\n    var entry = this.head;\n    if (entry) {\n      var next = this.head = entry.next;\n      if (next === null) this.tail = null;\n      return entry.item;\n    }\n  }\n};\n\nmodule.exports = Queue;\n\n\n/***/ }),\n/* 206 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar userAgent = __webpack_require__(21);\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n\n\n/***/ }),\n/* 207 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar userAgent = __webpack_require__(21);\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n\n\n/***/ }),\n/* 208 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = function (a, b) {\n  try {\n    // eslint-disable-next-line no-console -- safe\n    arguments.length === 1 ? console.error(a) : console.error(a, b);\n  } catch (error) { /* empty */ }\n};\n\n\n/***/ }),\n/* 209 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = function (exec) {\n  try {\n    return { error: false, value: exec() };\n  } catch (error) {\n    return { error: true, value: error };\n  }\n};\n\n\n/***/ }),\n/* 210 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\n\nmodule.exports = globalThis.Promise;\n\n\n/***/ }),\n/* 211 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar NativePromiseConstructor = __webpack_require__(210);\nvar isCallable = __webpack_require__(28);\nvar isForced = __webpack_require__(71);\nvar inspectSource = __webpack_require__(54);\nvar wellKnownSymbol = __webpack_require__(13);\nvar ENVIRONMENT = __webpack_require__(140);\nvar IS_PURE = __webpack_require__(16);\nvar V8_VERSION = __webpack_require__(20);\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n  var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n  var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\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 (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n  // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n  if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['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 || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n    // Detect correctness of subclassing with @@species support\n    var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n    var FakePromise = function (exec) {\n      exec(function () { /* empty */ }, function () { /* empty */ });\n    };\n    var constructor = promise.constructor = {};\n    constructor[SPECIES] = FakePromise;\n    SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n    if (!SUBCLASSING) return true;\n  // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n  } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n  CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n  REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n  SUBCLASSING: SUBCLASSING\n};\n\n\n/***/ }),\n/* 212 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aCallable = __webpack_require__(38);\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aCallable(resolve);\n  this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n\n\n/***/ }),\n/* 213 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar newPromiseCapabilityModule = __webpack_require__(212);\nvar perform = __webpack_require__(209);\nvar iterate = __webpack_require__(97);\nvar PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(214);\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aCallable(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        remaining++;\n        call($promiseResolve, 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});\n\n\n/***/ }),\n/* 214 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar NativePromiseConstructor = __webpack_require__(210);\nvar checkCorrectnessOfIteration = __webpack_require__(215);\nvar FORCED_PROMISE_CONSTRUCTOR = __webpack_require__(211).CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n  NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n\n\n/***/ }),\n/* 215 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  try {\n    if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n/* 216 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar IS_PURE = __webpack_require__(16);\nvar FORCED_PROMISE_CONSTRUCTOR = __webpack_require__(211).CONSTRUCTOR;\nvar NativePromiseConstructor = __webpack_require__(210);\nvar getBuiltIn = __webpack_require__(35);\nvar isCallable = __webpack_require__(28);\nvar defineBuiltIn = __webpack_require__(51);\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n  'catch': function (onRejected) {\n    return this.then(undefined, onRejected);\n  }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n  var method = getBuiltIn('Promise').prototype['catch'];\n  if (NativePromisePrototype['catch'] !== method) {\n    defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n  }\n}\n\n\n/***/ }),\n/* 217 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar newPromiseCapabilityModule = __webpack_require__(212);\nvar perform = __webpack_require__(209);\nvar iterate = __webpack_require__(97);\nvar PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(214);\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aCallable(C.resolve);\n      iterate(iterable, function (promise) {\n        call($promiseResolve, C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n\n\n/***/ }),\n/* 218 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar newPromiseCapabilityModule = __webpack_require__(212);\nvar FORCED_PROMISE_CONSTRUCTOR = __webpack_require__(211).CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n  reject: function reject(r) {\n    var capability = newPromiseCapabilityModule.f(this);\n    var capabilityReject = capability.reject;\n    capabilityReject(r);\n    return capability.promise;\n  }\n});\n\n\n/***/ }),\n/* 219 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar getBuiltIn = __webpack_require__(35);\nvar IS_PURE = __webpack_require__(16);\nvar NativePromiseConstructor = __webpack_require__(210);\nvar FORCED_PROMISE_CONSTRUCTOR = __webpack_require__(211).CONSTRUCTOR;\nvar promiseResolve = __webpack_require__(220);\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n  resolve: function resolve(x) {\n    return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n  }\n});\n\n\n/***/ }),\n/* 220 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(30);\nvar isObject = __webpack_require__(27);\nvar newPromiseCapability = __webpack_require__(212);\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n\n\n/***/ }),\n/* 221 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar newPromiseCapabilityModule = __webpack_require__(212);\nvar perform = __webpack_require__(209);\nvar iterate = __webpack_require__(97);\nvar PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(214);\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n  allSettled: function allSettled(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aCallable(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        remaining++;\n        call(promiseResolve, C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'fulfilled', value: value };\n          --remaining || resolve(values);\n        }, function (error) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'rejected', reason: error };\n          --remaining || resolve(values);\n        });\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n\n\n/***/ }),\n/* 222 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar getBuiltIn = __webpack_require__(35);\nvar newPromiseCapabilityModule = __webpack_require__(212);\nvar perform = __webpack_require__(209);\nvar iterate = __webpack_require__(97);\nvar PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(214);\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n  any: function any(iterable) {\n    var C = this;\n    var AggregateError = getBuiltIn('AggregateError');\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aCallable(C.resolve);\n      var errors = [];\n      var counter = 0;\n      var remaining = 1;\n      var alreadyResolved = false;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyRejected = false;\n        remaining++;\n        call(promiseResolve, C, promise).then(function (value) {\n          if (alreadyRejected || alreadyResolved) return;\n          alreadyResolved = true;\n          resolve(value);\n        }, function (error) {\n          if (alreadyRejected || alreadyResolved) return;\n          alreadyRejected = true;\n          errors[index] = error;\n          --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n        });\n      });\n      --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n\n\n/***/ }),\n/* 223 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar IS_PURE = __webpack_require__(16);\nvar NativePromiseConstructor = __webpack_require__(210);\nvar fails = __webpack_require__(8);\nvar getBuiltIn = __webpack_require__(35);\nvar isCallable = __webpack_require__(28);\nvar speciesConstructor = __webpack_require__(197);\nvar promiseResolve = __webpack_require__(220);\nvar defineBuiltIn = __webpack_require__(51);\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n  // eslint-disable-next-line unicorn/no-thenable -- required for testing\n  NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n  'finally': function (onFinally) {\n    var C = speciesConstructor(this, getBuiltIn('Promise'));\n    var isFunction = isCallable(onFinally);\n    return this.then(\n      isFunction ? function (x) {\n        return promiseResolve(C, onFinally()).then(function () { return x; });\n      } : onFinally,\n      isFunction ? function (e) {\n        return promiseResolve(C, onFinally()).then(function () { throw e; });\n      } : onFinally\n    );\n  }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n  var method = getBuiltIn('Promise').prototype['finally'];\n  if (NativePromisePrototype['finally'] !== method) {\n    defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n  }\n}\n\n\n/***/ }),\n/* 224 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar apply = __webpack_require__(72);\nvar slice = __webpack_require__(181);\nvar newPromiseCapabilityModule = __webpack_require__(212);\nvar aCallable = __webpack_require__(38);\nvar perform = __webpack_require__(209);\n\nvar Promise = globalThis.Promise;\n\nvar ACCEPT_ARGUMENTS = false;\n// Avoiding the use of polyfills of the previous iteration of this proposal\n// that does not accept arguments of the callback\nvar FORCED = !Promise || !Promise['try'] || perform(function () {\n  Promise['try'](function (argument) {\n    ACCEPT_ARGUMENTS = argument === 8;\n  }, 8);\n}).error || !ACCEPT_ARGUMENTS;\n\n// `Promise.try` method\n// https://tc39.es/ecma262/#sec-promise.try\n$({ target: 'Promise', stat: true, forced: FORCED }, {\n  'try': function (callbackfn /* , ...args */) {\n    var args = arguments.length > 1 ? slice(arguments, 1) : [];\n    var promiseCapability = newPromiseCapabilityModule.f(this);\n    var result = perform(function () {\n      return apply(aCallable(callbackfn), undefined, args);\n    });\n    (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n    return promiseCapability.promise;\n  }\n});\n\n\n/***/ }),\n/* 225 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar newPromiseCapabilityModule = __webpack_require__(212);\n\n// `Promise.withResolvers` method\n// https://tc39.es/ecma262/#sec-promise.withResolvers\n$({ target: 'Promise', stat: true }, {\n  withResolvers: function withResolvers() {\n    var promiseCapability = newPromiseCapabilityModule.f(this);\n    return {\n      promise: promiseCapability.promise,\n      resolve: promiseCapability.resolve,\n      reject: promiseCapability.reject\n    };\n  }\n});\n\n\n/***/ }),\n/* 226 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar fromAsync = __webpack_require__(227);\nvar fails = __webpack_require__(8);\n\n// eslint-disable-next-line es/no-array-fromasync -- safe\nvar nativeFromAsync = Array.fromAsync;\n// https://bugs.webkit.org/show_bug.cgi?id=271703\nvar INCORRECT_CONSTRUCTURING = !nativeFromAsync || fails(function () {\n  var counter = 0;\n  nativeFromAsync.call(function () {\n    counter++;\n    return [];\n  }, { length: 0 });\n  return counter !== 1;\n});\n\n// `Array.fromAsync` method\n// https://tc39.es/ecma262/#sec-array.fromasync\n$({ target: 'Array', stat: true, forced: INCORRECT_CONSTRUCTURING }, {\n  fromAsync: fromAsync\n});\n\n\n/***/ }),\n/* 227 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(98);\nvar uncurryThis = __webpack_require__(6);\nvar isConstructor = __webpack_require__(199);\nvar getAsyncIterator = __webpack_require__(228);\nvar getIterator = __webpack_require__(102);\nvar getIteratorDirect = __webpack_require__(155);\nvar getIteratorMethod = __webpack_require__(103);\nvar getMethod = __webpack_require__(37);\nvar getBuiltIn = __webpack_require__(35);\nvar getBuiltInPrototypeMethod = __webpack_require__(120);\nvar wellKnownSymbol = __webpack_require__(13);\nvar AsyncFromSyncIterator = __webpack_require__(229);\nvar toArray = __webpack_require__(231).toArray;\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar arrayIterator = uncurryThis(getBuiltInPrototypeMethod('Array', 'values'));\nvar arrayIteratorNext = uncurryThis(arrayIterator([]).next);\n\nvar safeArrayIterator = function () {\n  return new SafeArrayIterator(this);\n};\n\nvar SafeArrayIterator = function (O) {\n  this.iterator = arrayIterator(O);\n};\n\nSafeArrayIterator.prototype.next = function () {\n  return arrayIteratorNext(this.iterator);\n};\n\n// `Array.fromAsync` method implementation\n// https://github.com/tc39/proposal-array-from-async\nmodule.exports = function fromAsync(items /* , mapfn = undefined, thisArg = undefined */) {\n  var C = this;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n  return new (getBuiltIn('Promise'))(function (resolve) {\n    if (mapfn !== undefined) mapfn = bind(mapfn, thisArg);\n    var usingAsyncIterator = getMethod(items, ASYNC_ITERATOR);\n    var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(items) || safeArrayIterator;\n    var A = isConstructor(C) ? new C() : [];\n    var iterator = usingAsyncIterator\n      ? getAsyncIterator(items, usingAsyncIterator)\n      : new AsyncFromSyncIterator(getIteratorDirect(getIterator(items, usingSyncIterator)));\n    resolve(toArray(iterator, mapfn, A));\n  });\n};\n\n\n/***/ }),\n/* 228 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar AsyncFromSyncIterator = __webpack_require__(229);\nvar anObject = __webpack_require__(30);\nvar getIterator = __webpack_require__(102);\nvar getIteratorDirect = __webpack_require__(155);\nvar getMethod = __webpack_require__(37);\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\n\nmodule.exports = function (it, usingIterator) {\n  var method = arguments.length < 2 ? getMethod(it, ASYNC_ITERATOR) : usingIterator;\n  return method ? anObject(call(method, it)) : new AsyncFromSyncIterator(getIteratorDirect(getIterator(it)));\n};\n\n\n/***/ }),\n/* 229 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar anObject = __webpack_require__(30);\nvar create = __webpack_require__(93);\nvar getMethod = __webpack_require__(37);\nvar defineBuiltIns = __webpack_require__(145);\nvar InternalStateModule = __webpack_require__(55);\nvar iteratorClose = __webpack_require__(104);\nvar getBuiltIn = __webpack_require__(35);\nvar AsyncIteratorPrototype = __webpack_require__(230);\nvar createIterResultObject = __webpack_require__(151);\n\nvar Promise = getBuiltIn('Promise');\n\nvar ASYNC_FROM_SYNC_ITERATOR = 'AsyncFromSyncIterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ASYNC_FROM_SYNC_ITERATOR);\n\nvar asyncFromSyncIteratorContinuation = function (result, resolve, reject, syncIterator, closeOnRejection) {\n  var done = result.done;\n  Promise.resolve(result.value).then(function (value) {\n    resolve(createIterResultObject(value, done));\n  }, function (error) {\n    if (!done && closeOnRejection) {\n      try {\n        iteratorClose(syncIterator, 'throw', error);\n      } catch (error2) {\n        error = error2;\n      }\n    }\n\n    reject(error);\n  });\n};\n\nvar AsyncFromSyncIterator = function AsyncIterator(iteratorRecord) {\n  iteratorRecord.type = ASYNC_FROM_SYNC_ITERATOR;\n  setInternalState(this, iteratorRecord);\n};\n\nAsyncFromSyncIterator.prototype = defineBuiltIns(create(AsyncIteratorPrototype), {\n  next: function next() {\n    var state = getInternalState(this);\n    var hasValue = arguments.length > 0;\n    var value = hasValue ? arguments[0] : undefined;\n    return new Promise(function (resolve, reject) {\n      var result = anObject(hasValue ? call(state.next, state.iterator, value) : call(state.next, state.iterator));\n      asyncFromSyncIteratorContinuation(result, resolve, reject, state.iterator, true);\n    });\n  },\n  'return': function () {\n    var state = getInternalState(this);\n    var iterator = state.iterator;\n    var hasValue = arguments.length > 0;\n    var value = hasValue ? arguments[0] : undefined;\n    return new Promise(function (resolve, reject) {\n      var $return = getMethod(iterator, 'return');\n      if ($return === undefined) return resolve(createIterResultObject(value, true));\n      var result = anObject(hasValue ? call($return, iterator, value) : call($return, iterator));\n      asyncFromSyncIteratorContinuation(result, resolve, reject, iterator);\n    });\n  },\n  'throw': function () {\n    var state = getInternalState(this);\n    var iterator = state.iterator;\n    var hasValue = arguments.length > 0;\n    var value = hasValue ? arguments[0] : undefined;\n    return new Promise(function (resolve, reject) {\n      var $throw = getMethod(iterator, 'throw');\n      if ($throw === undefined) {\n        try {\n          iteratorClose(iterator, 'normal');\n        } catch (error) {\n          return reject(error);\n        }\n        return reject(new TypeError('The iterator does not provide a throw method'));\n      }\n      var result = anObject(hasValue ? call($throw, iterator, value) : call($throw, iterator));\n      asyncFromSyncIteratorContinuation(result, resolve, reject, iterator, true);\n    });\n  }\n});\n\nmodule.exports = AsyncFromSyncIterator;\n\n\n/***/ }),\n/* 230 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar shared = __webpack_require__(15);\nvar isCallable = __webpack_require__(28);\nvar create = __webpack_require__(93);\nvar getPrototypeOf = __webpack_require__(91);\nvar defineBuiltIn = __webpack_require__(51);\nvar wellKnownSymbol = __webpack_require__(13);\nvar IS_PURE = __webpack_require__(16);\n\nvar USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar AsyncIterator = globalThis.AsyncIterator;\nvar PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype;\nvar AsyncIteratorPrototype, prototype;\n\nif (PassedAsyncIteratorPrototype) {\n  AsyncIteratorPrototype = PassedAsyncIteratorPrototype;\n} else if (isCallable(AsyncIterator)) {\n  AsyncIteratorPrototype = AsyncIterator.prototype;\n} else if (shared[USE_FUNCTION_CONSTRUCTOR] || globalThis[USE_FUNCTION_CONSTRUCTOR]) {\n  try {\n    // eslint-disable-next-line no-new-func -- we have no alternatives without usage of modern syntax\n    prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));\n    if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;\n  } catch (error) { /* empty */ }\n}\n\nif (!AsyncIteratorPrototype) AsyncIteratorPrototype = {};\nelse if (IS_PURE) AsyncIteratorPrototype = create(AsyncIteratorPrototype);\n\nif (!isCallable(AsyncIteratorPrototype[ASYNC_ITERATOR])) {\n  defineBuiltIn(AsyncIteratorPrototype, ASYNC_ITERATOR, function () {\n    return this;\n  });\n}\n\nmodule.exports = AsyncIteratorPrototype;\n\n\n/***/ }),\n/* 231 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/proposal-async-iterator-helpers\n// https://github.com/tc39/proposal-array-from-async\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar isObject = __webpack_require__(27);\nvar doesNotExceedSafeInteger = __webpack_require__(115);\nvar getBuiltIn = __webpack_require__(35);\nvar createProperty = __webpack_require__(117);\nvar setArrayLength = __webpack_require__(113);\nvar getIteratorDirect = __webpack_require__(155);\nvar closeAsyncIteration = __webpack_require__(232);\n\nvar createMethod = function (TYPE) {\n  var IS_TO_ARRAY = TYPE === 0;\n  var IS_FOR_EACH = TYPE === 1;\n  var IS_EVERY = TYPE === 2;\n  var IS_SOME = TYPE === 3;\n  return function (object, fn, target) {\n    anObject(object);\n    var MAPPING = fn !== undefined;\n    if (MAPPING || !IS_TO_ARRAY) aCallable(fn);\n    var record = getIteratorDirect(object);\n    var Promise = getBuiltIn('Promise');\n    var iterator = record.iterator;\n    var next = record.next;\n    var counter = 0;\n\n    return new Promise(function (resolve, reject) {\n      var ifAbruptCloseAsyncIterator = function (error) {\n        closeAsyncIteration(iterator, reject, error, reject);\n      };\n\n      var loop = function () {\n        try {\n          try {\n            doesNotExceedSafeInteger(counter);\n          } catch (error5) {\n            return ifAbruptCloseAsyncIterator(error5);\n          }\n          Promise.resolve(anObject(call(next, iterator))).then(function (step) {\n            try {\n              if (anObject(step).done) {\n                if (IS_TO_ARRAY) {\n                  setArrayLength(target, counter);\n                  resolve(target);\n                } else resolve(IS_SOME ? false : IS_EVERY || undefined);\n              } else {\n                var value = step.value;\n                try {\n                  if (MAPPING) {\n                    var index = counter++;\n                    var result = fn(value, index);\n\n                    var handler = function ($result) {\n                      if (IS_FOR_EACH) {\n                        loop();\n                      } else if (IS_EVERY) {\n                        $result ? loop() : closeAsyncIteration(iterator, resolve, false, reject);\n                      } else if (IS_TO_ARRAY) {\n                        try {\n                          createProperty(target, index, $result);\n                          loop();\n                        } catch (error4) { ifAbruptCloseAsyncIterator(error4); }\n                      } else {\n                        $result ? closeAsyncIteration(iterator, resolve, IS_SOME || value, reject) : loop();\n                      }\n                    };\n\n                    if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n                    else handler(result);\n                  } else {\n                    createProperty(target, counter++, value);\n                    loop();\n                  }\n                } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n              }\n            } catch (error2) { reject(error2); }\n          }, reject);\n        } catch (error) { reject(error); }\n      };\n\n      loop();\n    });\n  };\n};\n\nmodule.exports = {\n  // `AsyncIterator.prototype.toArray` / `Array.fromAsync` methods\n  toArray: createMethod(0),\n  // `AsyncIterator.prototype.forEach` method\n  forEach: createMethod(1),\n  // `AsyncIterator.prototype.every` method\n  every: createMethod(2),\n  // `AsyncIterator.prototype.some` method\n  some: createMethod(3),\n  // `AsyncIterator.prototype.find` method\n  find: createMethod(4)\n};\n\n\n/***/ }),\n/* 232 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar anObject = __webpack_require__(30);\nvar getBuiltIn = __webpack_require__(35);\nvar getMethod = __webpack_require__(37);\n\nmodule.exports = function (iterator, method, argument, reject) {\n  try {\n    var returnMethod = getMethod(iterator, 'return');\n    if (returnMethod) {\n      return getBuiltIn('Promise').resolve(call(returnMethod, iterator)).then(function (result) {\n        try {\n          if (method !== reject) anObject(result);\n        } catch (error3) {\n          reject(error3);\n          return;\n        }\n        method(argument);\n      }, function (error) {\n        method === reject ? method(argument) : reject(error);\n      });\n    }\n  } catch (error2) {\n    // the original error (`argument`) takes priority over `return()` errors\n    return method === reject ? reject(argument) : reject(error2);\n  } method(argument);\n};\n\n\n/***/ }),\n/* 233 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/proposal-async-explicit-resource-management\nvar $ = __webpack_require__(49);\nvar DESCRIPTORS = __webpack_require__(24);\nvar getBuiltIn = __webpack_require__(35);\nvar aCallable = __webpack_require__(38);\nvar anInstance = __webpack_require__(144);\nvar defineBuiltIn = __webpack_require__(51);\nvar defineBuiltIns = __webpack_require__(145);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar wellKnownSymbol = __webpack_require__(13);\nvar InternalStateModule = __webpack_require__(55);\nvar addDisposableResource = __webpack_require__(146);\nvar V8_VERSION = __webpack_require__(20);\n\nvar Promise = getBuiltIn('Promise');\nvar SuppressedError = getBuiltIn('SuppressedError');\nvar $ReferenceError = ReferenceError;\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar ASYNC_DISPOSABLE_STACK = 'AsyncDisposableStack';\nvar setInternalState = InternalStateModule.set;\nvar getAsyncDisposableStackInternalState = InternalStateModule.getterFor(ASYNC_DISPOSABLE_STACK);\n\nvar HINT = 'async-dispose';\nvar DISPOSED = 'disposed';\nvar PENDING = 'pending';\n\nvar getPendingAsyncDisposableStackInternalState = function (stack) {\n  var internalState = getAsyncDisposableStackInternalState(stack);\n  if (internalState.state === DISPOSED) throw new $ReferenceError(ASYNC_DISPOSABLE_STACK + ' already disposed');\n  return internalState;\n};\n\nvar $AsyncDisposableStack = function AsyncDisposableStack() {\n  setInternalState(anInstance(this, AsyncDisposableStackPrototype), {\n    type: ASYNC_DISPOSABLE_STACK,\n    state: PENDING,\n    stack: []\n  });\n\n  if (!DESCRIPTORS) this.disposed = false;\n};\n\nvar AsyncDisposableStackPrototype = $AsyncDisposableStack.prototype;\n\ndefineBuiltIns(AsyncDisposableStackPrototype, {\n  disposeAsync: function disposeAsync() {\n    var asyncDisposableStack = this;\n    return new Promise(function (resolve, reject) {\n      var internalState = getAsyncDisposableStackInternalState(asyncDisposableStack);\n      if (internalState.state === DISPOSED) return resolve(undefined);\n      internalState.state = DISPOSED;\n      if (!DESCRIPTORS) asyncDisposableStack.disposed = true;\n      var stack = internalState.stack;\n      var i = stack.length;\n      var thrown = false;\n      var suppressed;\n\n      var handleError = function (result) {\n        if (thrown) {\n          suppressed = new SuppressedError(result, suppressed);\n        } else {\n          thrown = true;\n          suppressed = result;\n        }\n\n        loop();\n      };\n\n      var loop = function () {\n        if (i) {\n          var disposeMethod = stack[--i];\n          stack[i] = null;\n          try {\n            Promise.resolve(disposeMethod()).then(loop, handleError);\n          } catch (error) {\n            handleError(error);\n          }\n        } else {\n          internalState.stack = null;\n          thrown ? reject(suppressed) : resolve(undefined);\n        }\n      };\n\n      loop();\n    });\n  },\n  use: function use(value) {\n    addDisposableResource(getPendingAsyncDisposableStackInternalState(this), value, HINT);\n    return value;\n  },\n  adopt: function adopt(value, onDispose) {\n    var internalState = getPendingAsyncDisposableStackInternalState(this);\n    aCallable(onDispose);\n    addDisposableResource(internalState, undefined, HINT, function () {\n      return onDispose(value);\n    });\n    return value;\n  },\n  defer: function defer(onDispose) {\n    var internalState = getPendingAsyncDisposableStackInternalState(this);\n    aCallable(onDispose);\n    addDisposableResource(internalState, undefined, HINT, onDispose);\n  },\n  move: function move() {\n    var internalState = getPendingAsyncDisposableStackInternalState(this);\n    var newAsyncDisposableStack = new $AsyncDisposableStack();\n    getAsyncDisposableStackInternalState(newAsyncDisposableStack).stack = internalState.stack;\n    internalState.stack = [];\n    internalState.state = DISPOSED;\n    if (!DESCRIPTORS) this.disposed = true;\n    return newAsyncDisposableStack;\n  }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(AsyncDisposableStackPrototype, 'disposed', {\n  configurable: true,\n  get: function disposed() {\n    return getAsyncDisposableStackInternalState(this).state === DISPOSED;\n  }\n});\n\ndefineBuiltIn(AsyncDisposableStackPrototype, ASYNC_DISPOSE, AsyncDisposableStackPrototype.disposeAsync, { name: 'disposeAsync' });\ndefineBuiltIn(AsyncDisposableStackPrototype, TO_STRING_TAG, ASYNC_DISPOSABLE_STACK, { nonWritable: true });\n\n// https://github.com/tc39/proposal-explicit-resource-management/issues/256\n// can't be detected synchronously\nvar SYNC_DISPOSE_RETURNING_PROMISE_RESOLUTION_BUG = V8_VERSION && V8_VERSION < 136;\n\n$({ global: true, constructor: true, forced: SYNC_DISPOSE_RETURNING_PROMISE_RESOLUTION_BUG }, {\n  AsyncDisposableStack: $AsyncDisposableStack\n});\n\n\n/***/ }),\n/* 234 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/proposal-async-explicit-resource-management\nvar call = __webpack_require__(33);\nvar defineBuiltIn = __webpack_require__(51);\nvar getBuiltIn = __webpack_require__(35);\nvar getMethod = __webpack_require__(37);\nvar hasOwn = __webpack_require__(5);\nvar wellKnownSymbol = __webpack_require__(13);\nvar AsyncIteratorPrototype = __webpack_require__(230);\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar Promise = getBuiltIn('Promise');\n\nif (!hasOwn(AsyncIteratorPrototype, ASYNC_DISPOSE)) {\n  defineBuiltIn(AsyncIteratorPrototype, ASYNC_DISPOSE, function () {\n    var O = this;\n    return new Promise(function (resolve, reject) {\n      var $return = getMethod(O, 'return');\n      if ($return) {\n        Promise.resolve(call($return, O)).then(function () {\n          resolve(undefined);\n        }, reject);\n      } else resolve(undefined);\n    });\n  });\n}\n\n\n/***/ }),\n/* 235 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar setToStringTag = __webpack_require__(195);\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(globalThis.Reflect, 'Reflect', true);\n\n\n/***/ }),\n/* 236 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar aString = __webpack_require__(237);\nvar hasOwn = __webpack_require__(5);\nvar padStart = __webpack_require__(238).start;\nvar WHITESPACES = __webpack_require__(240);\n\nvar $Array = Array;\nvar $escape = RegExp.escape;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar numberToString = uncurryThis(1.1.toString);\nvar join = uncurryThis([].join);\nvar FIRST_DIGIT_OR_ASCII = /^[0-9a-z]/i;\nvar SYNTAX_SOLIDUS = /^[$()*+./?[\\\\\\]^{|}]/;\nvar OTHER_PUNCTUATORS_AND_WHITESPACES = RegExp('^[!\"#%&\\',\\\\-:;<=>@`~' + WHITESPACES + ']');\nvar exec = uncurryThis(FIRST_DIGIT_OR_ASCII.exec);\n\nvar ControlEscape = {\n  '\\u0009': 't',\n  '\\u000A': 'n',\n  '\\u000B': 'v',\n  '\\u000C': 'f',\n  '\\u000D': 'r'\n};\n\nvar escapeChar = function (chr) {\n  var hex = numberToString(charCodeAt(chr, 0), 16);\n  return hex.length < 3 ? '\\\\x' + padStart(hex, 2, '0') : '\\\\u' + padStart(hex, 4, '0');\n};\n\n// Avoiding the use of polyfills of the previous iteration of this proposal\nvar FORCED = !$escape || $escape('ab') !== '\\\\x61b';\n\n// `RegExp.escape` method\n// https://tc39.es/ecma262/#sec-regexp.escape\n$({ target: 'RegExp', stat: true, forced: FORCED }, {\n  escape: function escape(S) {\n    aString(S);\n    var length = S.length;\n    var result = $Array(length);\n\n    for (var i = 0; i < length; i++) {\n      var chr = charAt(S, i);\n      if (i === 0 && exec(FIRST_DIGIT_OR_ASCII, chr)) {\n        result[i] = escapeChar(chr);\n      } else if (hasOwn(ControlEscape, chr)) {\n        result[i] = '\\\\' + ControlEscape[chr];\n      } else if (exec(SYNTAX_SOLIDUS, chr)) {\n        result[i] = '\\\\' + chr;\n      } else if (exec(OTHER_PUNCTUATORS_AND_WHITESPACES, chr)) {\n        result[i] = escapeChar(chr);\n      } else {\n        var charCode = charCodeAt(chr, 0);\n        // single UTF-16 code unit\n        if ((charCode & 0xF800) !== 0xD800) result[i] = chr;\n        // unpaired surrogate\n        else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = escapeChar(chr);\n        // surrogate pair\n        else {\n          result[i] = chr;\n          result[++i] = charAt(S, i);\n        }\n      }\n    }\n\n    return join(result, '');\n  }\n});\n\n\n/***/ }),\n/* 237 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (typeof argument == 'string') return argument;\n  throw new $TypeError('Argument is not a string');\n};\n\n\n/***/ }),\n/* 238 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar toLength = __webpack_require__(68);\nvar toString = __webpack_require__(81);\nvar $repeat = __webpack_require__(239);\nvar requireObjectCoercible = __webpack_require__(10);\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n  return function ($this, maxLength, fillString) {\n    var S = toString(requireObjectCoercible($this));\n    var intMaxLength = toLength(maxLength);\n    var stringLength = S.length;\n    if (intMaxLength <= stringLength) return S;\n    var fillStr = fillString === undefined ? ' ' : toString(fillString);\n    var fillLen, stringFiller;\n    if (fillStr === '') return S;\n    fillLen = intMaxLength - stringLength;\n    stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n    if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n    return IS_END ? S + stringFiller : stringFiller + S;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.padStart` method\n  // https://tc39.es/ecma262/#sec-string.prototype.padstart\n  start: createMethod(false),\n  // `String.prototype.padEnd` method\n  // https://tc39.es/ecma262/#sec-string.prototype.padend\n  end: createMethod(true)\n};\n\n\n/***/ }),\n/* 239 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIntegerOrInfinity = __webpack_require__(65);\nvar toString = __webpack_require__(81);\nvar requireObjectCoercible = __webpack_require__(10);\n\nvar $RangeError = RangeError;\nvar floor = Math.floor;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n  var str = toString(requireObjectCoercible(this));\n  var result = '';\n  var n = toIntegerOrInfinity(count);\n  if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');\n  for (;n > 0; (n = floor(n / 2)) && (str += str)) if (n % 2) result += str;\n  return result;\n};\n\n\n/***/ }),\n/* 240 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n  '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n/***/ }),\n/* 241 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar regExpFlagsDetection = __webpack_require__(242);\nvar regExpFlagsGetterImplementation = __webpack_require__(243);\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (DESCRIPTORS && !regExpFlagsDetection.correct) {\n  defineBuiltInAccessor(RegExp.prototype, 'flags', {\n    configurable: true,\n    get: regExpFlagsGetterImplementation\n  });\n\n  regExpFlagsDetection.correct = true;\n}\n\n\n/***/ }),\n/* 242 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar fails = __webpack_require__(8);\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = globalThis.RegExp;\n\nvar FLAGS_GETTER_IS_CORRECT = !fails(function () {\n  var INDICES_SUPPORT = true;\n  try {\n    RegExp('.', 'd');\n  } catch (error) {\n    INDICES_SUPPORT = false;\n  }\n\n  var O = {};\n  // modern V8 bug\n  var calls = '';\n  var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n  var addGetter = function (key, chr) {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty(O, key, { get: function () {\n      calls += chr;\n      return true;\n    } });\n  };\n\n  var pairs = {\n    dotAll: 's',\n    global: 'g',\n    ignoreCase: 'i',\n    multiline: 'm',\n    sticky: 'y'\n  };\n\n  if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n  for (var key in pairs) addGetter(key, pairs[key]);\n\n  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n  var result = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(O);\n\n  return result !== expected || calls !== expected;\n});\n\nmodule.exports = { correct: FLAGS_GETTER_IS_CORRECT };\n\n\n/***/ }),\n/* 243 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(30);\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.hasIndices) result += 'd';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.unicodeSets) result += 'v';\n  if (that.sticky) result += 'y';\n  return result;\n};\n\n\n/***/ }),\n/* 244 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar difference = __webpack_require__(245);\nvar fails = __webpack_require__(8);\nvar setMethodAcceptSetLike = __webpack_require__(253);\n\nvar SET_LIKE_INCORRECT_BEHAVIOR = !setMethodAcceptSetLike('difference', function (result) {\n  return result.size === 0;\n});\n\nvar FORCED = SET_LIKE_INCORRECT_BEHAVIOR || fails(function () {\n  // https://bugs.webkit.org/show_bug.cgi?id=288595\n  var setLike = {\n    size: 1,\n    has: function () { return true; },\n    keys: function () {\n      var index = 0;\n      return {\n        next: function () {\n          var done = index++ > 1;\n          if (baseSet.has(1)) baseSet.clear();\n          return { done: done, value: 2 };\n        }\n      };\n    }\n  };\n  // eslint-disable-next-line es/no-set -- testing\n  var baseSet = new Set([1, 2, 3, 4]);\n  // eslint-disable-next-line es/no-set-prototype-difference -- testing\n  return baseSet.difference(setLike).size !== 3;\n});\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n  difference: difference\n});\n\n\n/***/ }),\n/* 245 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aSet = __webpack_require__(246);\nvar SetHelpers = __webpack_require__(247);\nvar clone = __webpack_require__(248);\nvar size = __webpack_require__(251);\nvar getSetRecord = __webpack_require__(252);\nvar iterateSet = __webpack_require__(249);\nvar iterateSimple = __webpack_require__(250);\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\nmodule.exports = function difference(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  var result = clone(O);\n  if (size(result) <= otherRec.size) iterateSet(result, function (e) {\n    if (otherRec.includes(e)) remove(result, e);\n  });\n  else iterateSimple(otherRec.getIterator(), function (e) {\n    if (has(result, e)) remove(result, e);\n  });\n  return result;\n};\n\n\n/***/ }),\n/* 246 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar has = __webpack_require__(247).has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n  has(it);\n  return it;\n};\n\n\n/***/ }),\n/* 247 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n  // eslint-disable-next-line es/no-set -- safe\n  Set: Set,\n  add: uncurryThis(SetPrototype.add),\n  has: uncurryThis(SetPrototype.has),\n  remove: uncurryThis(SetPrototype['delete']),\n  proto: SetPrototype\n};\n\n\n/***/ }),\n/* 248 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar SetHelpers = __webpack_require__(247);\nvar iterate = __webpack_require__(249);\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n  var result = new Set();\n  iterate(set, function (it) {\n    add(result, it);\n  });\n  return result;\n};\n\n\n/***/ }),\n/* 249 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar iterateSimple = __webpack_require__(250);\nvar SetHelpers = __webpack_require__(247);\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n  return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n\n\n/***/ }),\n/* 250 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n  var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n  var next = record.next;\n  var step, result;\n  while (!(step = call(next, iterator)).done) {\n    result = fn(step.value);\n    if (result !== undefined) return result;\n  }\n};\n\n\n/***/ }),\n/* 251 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThisAccessor = __webpack_require__(75);\nvar SetHelpers = __webpack_require__(247);\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n  return set.size;\n};\n\n\n/***/ }),\n/* 252 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar call = __webpack_require__(33);\nvar toIntegerOrInfinity = __webpack_require__(65);\nvar getIteratorDirect = __webpack_require__(155);\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n  this.set = set;\n  this.size = max(intSize, 0);\n  this.has = aCallable(set.has);\n  this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n  getIterator: function () {\n    return getIteratorDirect(anObject(call(this.keys, this.set)));\n  },\n  includes: function (it) {\n    return call(this.has, this.set, it);\n  }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n  anObject(obj);\n  var numSize = +obj.size;\n  // NOTE: If size is undefined, then numSize will be NaN\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n  var intSize = toIntegerOrInfinity(numSize);\n  if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n  return new SetRecord(obj, intSize);\n};\n\n\n/***/ }),\n/* 253 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(35);\n\nvar createSetLike = function (size) {\n  return {\n    size: size,\n    has: function () {\n      return false;\n    },\n    keys: function () {\n      return {\n        next: function () {\n          return { done: true };\n        }\n      };\n    }\n  };\n};\n\nvar createSetLikeWithInfinitySize = function (size) {\n  return {\n    size: size,\n    has: function () {\n      return true;\n    },\n    keys: function () {\n      throw new Error('e');\n    }\n  };\n};\n\nmodule.exports = function (name, callback) {\n  var Set = getBuiltIn('Set');\n  try {\n    new Set()[name](createSetLike(0));\n    try {\n      // late spec change, early WebKit ~ Safari 17 implementation does not pass it\n      // https://github.com/tc39/proposal-set-methods/pull/88\n      // also covered engines with\n      // https://bugs.webkit.org/show_bug.cgi?id=272679\n      new Set()[name](createSetLike(-1));\n      return false;\n    } catch (error2) {\n      if (!callback) return true;\n      // early V8 implementation bug\n      // https://issues.chromium.org/issues/351332634\n      try {\n        new Set()[name](createSetLikeWithInfinitySize(-Infinity));\n        return false;\n      } catch (error) {\n        var set = new Set([1, 2]);\n        return callback(set[name](createSetLikeWithInfinitySize(Infinity)));\n      }\n    }\n  } catch (error) {\n    return false;\n  }\n};\n\n\n/***/ }),\n/* 254 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar fails = __webpack_require__(8);\nvar intersection = __webpack_require__(255);\nvar setMethodAcceptSetLike = __webpack_require__(253);\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {\n  return result.size === 2 && result.has(1) && result.has(2);\n}) || fails(function () {\n  // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing\n  return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n  intersection: intersection\n});\n\n\n/***/ }),\n/* 255 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aSet = __webpack_require__(246);\nvar SetHelpers = __webpack_require__(247);\nvar size = __webpack_require__(251);\nvar getSetRecord = __webpack_require__(252);\nvar iterateSet = __webpack_require__(249);\nvar iterateSimple = __webpack_require__(250);\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\nmodule.exports = function intersection(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  var result = new Set();\n\n  if (size(O) > otherRec.size) {\n    iterateSimple(otherRec.getIterator(), function (e) {\n      if (has(O, e)) add(result, e);\n    });\n  } else {\n    iterateSet(O, function (e) {\n      if (otherRec.includes(e)) add(result, e);\n    });\n  }\n\n  return result;\n};\n\n\n/***/ }),\n/* 256 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar isDisjointFrom = __webpack_require__(257);\nvar setMethodAcceptSetLike = __webpack_require__(253);\n\nvar INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {\n  return !result;\n});\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n  isDisjointFrom: isDisjointFrom\n});\n\n\n/***/ }),\n/* 257 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aSet = __webpack_require__(246);\nvar has = __webpack_require__(247).has;\nvar size = __webpack_require__(251);\nvar getSetRecord = __webpack_require__(252);\nvar iterateSet = __webpack_require__(249);\nvar iterateSimple = __webpack_require__(250);\nvar iteratorClose = __webpack_require__(104);\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\nmodule.exports = function isDisjointFrom(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n    if (otherRec.includes(e)) return false;\n  }, true) !== false;\n  var iterator = otherRec.getIterator();\n  return iterateSimple(iterator, function (e) {\n    if (has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);\n  }) !== false;\n};\n\n\n/***/ }),\n/* 258 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar isSubsetOf = __webpack_require__(259);\nvar setMethodAcceptSetLike = __webpack_require__(253);\n\nvar INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {\n  return result;\n});\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n  isSubsetOf: isSubsetOf\n});\n\n\n/***/ }),\n/* 259 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aSet = __webpack_require__(246);\nvar size = __webpack_require__(251);\nvar iterate = __webpack_require__(249);\nvar getSetRecord = __webpack_require__(252);\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\nmodule.exports = function isSubsetOf(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) > otherRec.size) return false;\n  return iterate(O, function (e) {\n    if (!otherRec.includes(e)) return false;\n  }, true) !== false;\n};\n\n\n/***/ }),\n/* 260 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar isSupersetOf = __webpack_require__(261);\nvar setMethodAcceptSetLike = __webpack_require__(253);\n\nvar INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {\n  return !result;\n});\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n  isSupersetOf: isSupersetOf\n});\n\n\n/***/ }),\n/* 261 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aSet = __webpack_require__(246);\nvar has = __webpack_require__(247).has;\nvar size = __webpack_require__(251);\nvar getSetRecord = __webpack_require__(252);\nvar iterateSimple = __webpack_require__(250);\nvar iteratorClose = __webpack_require__(104);\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\nmodule.exports = function isSupersetOf(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) < otherRec.size) return false;\n  var iterator = otherRec.getIterator();\n  return iterateSimple(iterator, function (e) {\n    if (!has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);\n  }) !== false;\n};\n\n\n/***/ }),\n/* 262 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar symmetricDifference = __webpack_require__(263);\nvar setMethodGetKeysBeforeCloning = __webpack_require__(264);\nvar setMethodAcceptSetLike = __webpack_require__(253);\n\nvar FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference');\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n  symmetricDifference: symmetricDifference\n});\n\n\n/***/ }),\n/* 263 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aSet = __webpack_require__(246);\nvar SetHelpers = __webpack_require__(247);\nvar clone = __webpack_require__(248);\nvar getSetRecord = __webpack_require__(252);\nvar iterateSimple = __webpack_require__(250);\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\nmodule.exports = function symmetricDifference(other) {\n  var O = aSet(this);\n  var keysIter = getSetRecord(other).getIterator();\n  var result = clone(O);\n  iterateSimple(keysIter, function (e) {\n    if (has(O, e)) remove(result, e);\n    else add(result, e);\n  });\n  return result;\n};\n\n\n/***/ }),\n/* 264 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// Should get iterator record of a set-like object before cloning this\n// https://bugs.webkit.org/show_bug.cgi?id=289430\nmodule.exports = function (METHOD_NAME) {\n  try {\n    // eslint-disable-next-line es/no-set -- needed for test\n    var baseSet = new Set();\n    var setLike = {\n      size: 0,\n      has: function () { return true; },\n      keys: function () {\n        // eslint-disable-next-line es/no-object-defineproperty -- needed for test\n        return Object.defineProperty({}, 'next', {\n          get: function () {\n            baseSet.clear();\n            baseSet.add(4);\n            return function () {\n              return { done: true };\n            };\n          }\n        });\n      }\n    };\n    var result = baseSet[METHOD_NAME](setLike);\n\n    return result.size === 1 && result.values().next().value === 4;\n  } catch (error) {\n    return false;\n  }\n};\n\n\n/***/ }),\n/* 265 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar union = __webpack_require__(266);\nvar setMethodGetKeysBeforeCloning = __webpack_require__(264);\nvar setMethodAcceptSetLike = __webpack_require__(253);\n\nvar FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning('union');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n  union: union\n});\n\n\n/***/ }),\n/* 266 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aSet = __webpack_require__(246);\nvar add = __webpack_require__(247).add;\nvar clone = __webpack_require__(248);\nvar getSetRecord = __webpack_require__(252);\nvar iterateSimple = __webpack_require__(250);\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\nmodule.exports = function union(other) {\n  var O = aSet(this);\n  var keysIter = getSetRecord(other).getIterator();\n  var result = clone(O);\n  iterateSimple(keysIter, function (it) {\n    add(result, it);\n  });\n  return result;\n};\n\n\n/***/ }),\n/* 267 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar requireObjectCoercible = __webpack_require__(10);\nvar toIntegerOrInfinity = __webpack_require__(65);\nvar toString = __webpack_require__(81);\nvar fails = __webpack_require__(8);\n\nvar charAt = uncurryThis(''.charAt);\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line es/no-string-prototype-at -- safe\n  return '𠮷'.at(-2) !== '\\uD842';\n});\n\n// `String.prototype.at` method\n// https://tc39.es/ecma262/#sec-string.prototype.at\n$({ target: 'String', proto: true, forced: FORCED }, {\n  at: function at(index) {\n    var S = toString(requireObjectCoercible(this));\n    var len = S.length;\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : charAt(S, k);\n  }\n});\n\n\n/***/ }),\n/* 268 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar requireObjectCoercible = __webpack_require__(10);\nvar toString = __webpack_require__(81);\n\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `String.prototype.isWellFormed` method\n// https://tc39.es/ecma262/#sec-string.prototype.iswellformed\n$({ target: 'String', proto: true }, {\n  isWellFormed: function isWellFormed() {\n    var S = toString(requireObjectCoercible(this));\n    var length = S.length;\n    for (var i = 0; i < length; i++) {\n      var charCode = charCodeAt(S, i);\n      // single UTF-16 code unit\n      if ((charCode & 0xF800) !== 0xD800) continue;\n      // unpaired surrogate\n      if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false;\n    } return true;\n  }\n});\n\n\n/***/ }),\n/* 269 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar uncurryThis = __webpack_require__(6);\nvar requireObjectCoercible = __webpack_require__(10);\nvar isCallable = __webpack_require__(28);\nvar isObject = __webpack_require__(27);\nvar isRegExp = __webpack_require__(270);\nvar toString = __webpack_require__(81);\nvar getMethod = __webpack_require__(37);\nvar getRegExpFlags = __webpack_require__(271);\nvar getSubstitution = __webpack_require__(272);\nvar wellKnownSymbol = __webpack_require__(13);\nvar IS_PURE = __webpack_require__(16);\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n  replaceAll: function replaceAll(searchValue, replaceValue) {\n    var O = requireObjectCoercible(this);\n    var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, position, replacement;\n    var endOfLastMatch = 0;\n    var result = '';\n    if (isObject(searchValue)) {\n      IS_REG_EXP = isRegExp(searchValue);\n      if (IS_REG_EXP) {\n        flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n        if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n      }\n      replacer = getMethod(searchValue, REPLACE);\n      if (replacer) return call(replacer, searchValue, O, replaceValue);\n      if (IS_PURE && IS_REG_EXP) return replace(toString(O), searchValue, replaceValue);\n    }\n    string = toString(O);\n    searchString = toString(searchValue);\n    functionalReplace = isCallable(replaceValue);\n    if (!functionalReplace) replaceValue = toString(replaceValue);\n    searchLength = searchString.length;\n    advanceBy = max(1, searchLength);\n    position = indexOf(string, searchString);\n    while (position !== -1) {\n      replacement = functionalReplace\n        ? toString(replaceValue(searchString, position, string))\n        : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n      result += stringSlice(string, endOfLastMatch, position) + replacement;\n      endOfLastMatch = position + searchLength;\n      position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy);\n    }\n    if (endOfLastMatch < string.length) {\n      result += stringSlice(string, endOfLastMatch);\n    }\n    return result;\n  }\n});\n\n\n/***/ }),\n/* 270 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isObject = __webpack_require__(27);\nvar classof = __webpack_require__(46);\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n\n\n/***/ }),\n/* 271 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar hasOwn = __webpack_require__(5);\nvar isPrototypeOf = __webpack_require__(36);\nvar regExpFlagsDetection = __webpack_require__(242);\nvar regExpFlagsGetterImplementation = __webpack_require__(243);\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = regExpFlagsDetection.correct ? function (it) {\n  return it.flags;\n} : function (it) {\n  return (!regExpFlagsDetection.correct && isPrototypeOf(RegExpPrototype, it) && !hasOwn(it, 'flags'))\n    ? call(regExpFlagsGetterImplementation, it)\n    : it.flags;\n};\n\n\n/***/ }),\n/* 272 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar toObject = __webpack_require__(9);\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n  var tailPos = position + matched.length;\n  var m = captures.length;\n  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n  if (namedCaptures !== undefined) {\n    namedCaptures = toObject(namedCaptures);\n    symbols = SUBSTITUTION_SYMBOLS;\n  }\n  return replace(replacement, symbols, function (match, ch) {\n    var capture;\n    switch (charAt(ch, 0)) {\n      case '$': return '$';\n      case '&': return matched;\n      case '`': return stringSlice(str, 0, position);\n      case \"'\": return stringSlice(str, tailPos);\n      case '<':\n        capture = namedCaptures[stringSlice(ch, 1, -1)];\n        break;\n      default: // \\d\\d?\n        var n = +ch;\n        if (n === 0) return match;\n        if (n > m) {\n          var f = floor(n / 10);\n          if (f === 0) return match;\n          if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n          return match;\n        }\n        capture = captures[n - 1];\n    }\n    return capture === undefined ? '' : capture;\n  });\n};\n\n\n/***/ }),\n/* 273 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar uncurryThis = __webpack_require__(6);\nvar requireObjectCoercible = __webpack_require__(10);\nvar toString = __webpack_require__(81);\nvar fails = __webpack_require__(8);\n\nvar $Array = Array;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\n// eslint-disable-next-line es/no-string-prototype-towellformed -- safe\nvar $toWellFormed = ''.toWellFormed;\nvar REPLACEMENT_CHARACTER = '\\uFFFD';\n\n// Safari bug\nvar TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () {\n  return call($toWellFormed, 1) !== '1';\n});\n\n// `String.prototype.toWellFormed` method\n// https://tc39.es/ecma262/#sec-string.prototype.towellformed\n$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, {\n  toWellFormed: function toWellFormed() {\n    var S = toString(requireObjectCoercible(this));\n    if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S);\n    var length = S.length;\n    var result = $Array(length);\n    for (var i = 0; i < length; i++) {\n      var charCode = charCodeAt(S, i);\n      // single UTF-16 code unit\n      if ((charCode & 0xF800) !== 0xD800) result[i] = charAt(S, i);\n      // unpaired surrogate\n      else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER;\n      // surrogate pair\n      else {\n        result[i] = charAt(S, i);\n        result[++i] = charAt(S, i);\n      }\n    } return join(result, '');\n  }\n});\n\n\n/***/ }),\n/* 274 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(275);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar toIntegerOrInfinity = __webpack_require__(65);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at\nexportTypedArrayMethod('at', function at(index) {\n  var O = aTypedArray(this);\n  var len = lengthOfArrayLike(O);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n  return (k < 0 || k >= len) ? undefined : O[k];\n});\n\n\n/***/ }),\n/* 275 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(132);\nvar DESCRIPTORS = __webpack_require__(24);\nvar globalThis = __webpack_require__(2);\nvar isCallable = __webpack_require__(28);\nvar isObject = __webpack_require__(27);\nvar hasOwn = __webpack_require__(5);\nvar classof = __webpack_require__(82);\nvar tryToString = __webpack_require__(39);\nvar createNonEnumerableProperty = __webpack_require__(50);\nvar defineBuiltIn = __webpack_require__(51);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar isPrototypeOf = __webpack_require__(36);\nvar getPrototypeOf = __webpack_require__(91);\nvar setPrototypeOf = __webpack_require__(74);\nvar wellKnownSymbol = __webpack_require__(13);\nvar uid = __webpack_require__(18);\nvar InternalStateModule = __webpack_require__(55);\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = globalThis.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = globalThis.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n  BigInt64Array: 8,\n  BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return klass === 'DataView'\n    || hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n  var proto = getPrototypeOf(it);\n  if (!isObject(proto)) return;\n  var state = getInternalState(proto);\n  return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n  throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = globalThis[ARRAY];\n    if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n      delete TypedArrayConstructor.prototype[KEY];\n    } catch (error) {\n      // old WebKit bug - some methods are non-configurable\n      try {\n        TypedArrayConstructor.prototype[KEY] = property;\n      } catch (error2) { /* empty */ }\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n  }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = globalThis[ARRAY];\n      if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n        delete TypedArrayConstructor[KEY];\n      } catch (error) { /* empty */ }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = globalThis[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      defineBuiltIn(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  Constructor = globalThis[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n  else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n  Constructor = globalThis[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow -- safe\n  TypedArray = function TypedArray() {\n    throw new TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQUIRED = true;\n  defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n    configurable: true,\n    get: function () {\n      return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n    }\n  });\n  for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) {\n    createNonEnumerableProperty(globalThis[NAME].prototype, TYPED_ARRAY_TAG, NAME);\n  }\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  getTypedArrayConstructor: getTypedArrayConstructor,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n\n\n/***/ }),\n/* 276 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(275);\nvar $findLast = __webpack_require__(110).findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n  return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n/* 277 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(275);\nvar $findLastIndex = __webpack_require__(110).findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n  return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n/* 278 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar call = __webpack_require__(33);\nvar ArrayBufferViewCore = __webpack_require__(275);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar toOffset = __webpack_require__(279);\nvar toIndexedObject = __webpack_require__(9);\nvar fails = __webpack_require__(8);\n\nvar RangeError = globalThis.RangeError;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () {\n  // eslint-disable-next-line es/no-typed-arrays -- required for testing\n  var array = new Uint8ClampedArray(2);\n  call($set, array, { length: 1, 0: 3 }, 1);\n  return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n  var array = new Int8Array(2);\n  array.set(1);\n  array.set('2', 1);\n  return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n  aTypedArray(this);\n  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n  var src = toIndexedObject(arrayLike);\n  if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n  var length = this.length;\n  var len = lengthOfArrayLike(src);\n  var index = 0;\n  if (len + offset > length) throw new RangeError('Wrong length');\n  while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n\n\n/***/ }),\n/* 279 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPositiveInteger = __webpack_require__(157);\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n  var offset = toPositiveInteger(it);\n  if (offset % BYTES) throw new $RangeError('Wrong offset');\n  return offset;\n};\n\n\n/***/ }),\n/* 280 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar lengthOfArrayLike = __webpack_require__(67);\nvar ArrayBufferViewCore = __webpack_require__(275);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n  var O = aTypedArray(this);\n  var len = lengthOfArrayLike(O);\n  var A = new (getTypedArrayConstructor(O))(len);\n  var k = 0;\n  for (; k < len; k++) A[k] = O[len - k - 1];\n  return A;\n});\n\n\n/***/ }),\n/* 281 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(275);\nvar uncurryThis = __webpack_require__(6);\nvar aCallable = __webpack_require__(38);\nvar arrayFromConstructorAndList = __webpack_require__(119);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n  if (compareFn !== undefined) aCallable(compareFn);\n  var O = aTypedArray(this);\n  var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n  return sort(A, compareFn);\n});\n\n\n/***/ }),\n/* 282 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(275);\nvar isBigIntArray = __webpack_require__(283);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar toIntegerOrInfinity = __webpack_require__(65);\nvar toBigInt = __webpack_require__(284);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar $RangeError = RangeError;\n\nvar PROPER_ORDER = function () {\n  try {\n    // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n    new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n  } catch (error) {\n    // some early implementations, like WebKit, does not follow the final semantic\n    // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n    return error === 8;\n  }\n}();\n\n// Bug in WebKit. It should truncate a negative fractional index to zero, but instead throws an error\nvar THROW_ON_NEGATIVE_FRACTIONAL_INDEX = PROPER_ORDER && function () {\n  try {\n    // eslint-disable-next-line es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n    new Int8Array(1)['with'](-0.5, 1);\n  } catch (error) {\n    return true;\n  }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n  var O = aTypedArray(this);\n  var len = lengthOfArrayLike(O);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n  var numericValue = isBigIntArray(O) ? toBigInt(value) : +value;\n  if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n  var A = new (getTypedArrayConstructor(O))(len);\n  var k = 0;\n  for (; k < len; k++) A[k] = k === actualIndex ? numericValue : O[k];\n  return A;\n} }['with'], !PROPER_ORDER || THROW_ON_NEGATIVE_FRACTIONAL_INDEX);\n\n\n/***/ }),\n/* 283 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar classof = __webpack_require__(82);\n\nmodule.exports = function (it) {\n  var klass = classof(it);\n  return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n\n\n/***/ }),\n/* 284 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(32);\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n  var prim = toPrimitive(argument, 'number');\n  if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n  // eslint-disable-next-line es/no-bigint -- safe\n  return BigInt(prim);\n};\n\n\n/***/ }),\n/* 285 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar arrayFromConstructorAndList = __webpack_require__(119);\nvar $fromBase64 = __webpack_require__(286);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.fromBase64 || !function () {\n  // Webkit not throw an error on odd length string\n  try {\n    Uint8Array.fromBase64('a');\n    return;\n  } catch (error) { /* empty */ }\n  try {\n    Uint8Array.fromBase64('', null);\n  } catch (error) {\n    return true;\n  }\n}();\n\n// `Uint8Array.fromBase64` method\n// https://tc39.es/ecma262/#sec-uint8array.frombase64\nif (Uint8Array) $({ target: 'Uint8Array', stat: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n  fromBase64: function fromBase64(string /* , options */) {\n    var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, null, 0x1FFFFFFFFFFFFF);\n    return arrayFromConstructorAndList(Uint8Array, result.bytes);\n  }\n});\n\n\n/***/ }),\n/* 286 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar uncurryThis = __webpack_require__(6);\nvar anObjectOrUndefined = __webpack_require__(287);\nvar aString = __webpack_require__(237);\nvar hasOwn = __webpack_require__(5);\nvar base64Map = __webpack_require__(288);\nvar getAlphabetOption = __webpack_require__(289);\nvar notDetached = __webpack_require__(136);\n\nvar base64Alphabet = base64Map.c2i;\nvar base64UrlAlphabet = base64Map.c2iUrl;\n\nvar SyntaxError = globalThis.SyntaxError;\nvar TypeError = globalThis.TypeError;\nvar at = uncurryThis(''.charAt);\n\nvar skipAsciiWhitespace = function (string, index) {\n  var length = string.length;\n  for (;index < length; index++) {\n    var chr = at(string, index);\n    if (chr !== ' ' && chr !== '\\t' && chr !== '\\n' && chr !== '\\f' && chr !== '\\r') break;\n  } return index;\n};\n\nvar decodeBase64Chunk = function (chunk, alphabet, throwOnExtraBits) {\n  var chunkLength = chunk.length;\n\n  if (chunkLength < 4) {\n    chunk += chunkLength === 2 ? 'AA' : 'A';\n  }\n\n  var triplet = (alphabet[at(chunk, 0)] << 18)\n    + (alphabet[at(chunk, 1)] << 12)\n    + (alphabet[at(chunk, 2)] << 6)\n    + alphabet[at(chunk, 3)];\n\n  var chunkBytes = [\n    (triplet >> 16) & 255,\n    (triplet >> 8) & 255,\n    triplet & 255\n  ];\n\n  if (chunkLength === 2) {\n    if (throwOnExtraBits && chunkBytes[1] !== 0) {\n      throw new SyntaxError('Extra bits');\n    }\n    return [chunkBytes[0]];\n  }\n\n  if (chunkLength === 3) {\n    if (throwOnExtraBits && chunkBytes[2] !== 0) {\n      throw new SyntaxError('Extra bits');\n    }\n    return [chunkBytes[0], chunkBytes[1]];\n  }\n\n  return chunkBytes;\n};\n\nvar writeBytes = function (bytes, elements, written) {\n  var elementsLength = elements.length;\n  for (var index = 0; index < elementsLength; index++) {\n    bytes[written + index] = elements[index];\n  }\n  return written + elementsLength;\n};\n\n/* eslint-disable max-statements, max-depth -- TODO */\nmodule.exports = function (string, options, into, maxLength) {\n  aString(string);\n  anObjectOrUndefined(options);\n  var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n  var lastChunkHandling = options ? options.lastChunkHandling : undefined;\n\n  if (lastChunkHandling === undefined) lastChunkHandling = 'loose';\n\n  if (lastChunkHandling !== 'loose' && lastChunkHandling !== 'strict' && lastChunkHandling !== 'stop-before-partial') {\n    throw new TypeError('Incorrect `lastChunkHandling` option');\n  }\n\n  if (into) notDetached(into.buffer);\n\n  var stringLength = string.length;\n  var bytes = into || [];\n  var written = 0;\n  var read = 0;\n  var chunk = '';\n  var index = 0;\n\n  if (maxLength) while (true) {\n    index = skipAsciiWhitespace(string, index);\n    if (index === stringLength) {\n      if (chunk.length > 0) {\n        if (lastChunkHandling === 'stop-before-partial') {\n          break;\n        }\n        if (lastChunkHandling === 'loose') {\n          if (chunk.length === 1) {\n            throw new SyntaxError('Malformed padding: exactly one additional character');\n          }\n          written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n        } else {\n          throw new SyntaxError('Missing padding');\n        }\n      }\n      read = stringLength;\n      break;\n    }\n    var chr = at(string, index);\n    ++index;\n    if (chr === '=') {\n      if (chunk.length < 2) {\n        throw new SyntaxError('Padding is too early');\n      }\n      index = skipAsciiWhitespace(string, index);\n      if (chunk.length === 2) {\n        if (index === stringLength) {\n          if (lastChunkHandling === 'stop-before-partial') {\n            break;\n          }\n          throw new SyntaxError('Malformed padding: only one =');\n        }\n        if (at(string, index) === '=') {\n          ++index;\n          index = skipAsciiWhitespace(string, index);\n        }\n      }\n      if (index < stringLength) {\n        throw new SyntaxError('Unexpected character after padding');\n      }\n      written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, lastChunkHandling === 'strict'), written);\n      read = stringLength;\n      break;\n    }\n    if (!hasOwn(alphabet, chr)) {\n      throw new SyntaxError('Unexpected character');\n    }\n    var remainingBytes = maxLength - written;\n    if (remainingBytes === 1 && chunk.length === 2 || remainingBytes === 2 && chunk.length === 3) {\n      // special case: we can fit exactly the number of bytes currently represented by chunk, so we were just checking for `=`\n      break;\n    }\n\n    chunk += chr;\n    if (chunk.length === 4) {\n      written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n      chunk = '';\n      read = index;\n      if (written === maxLength) {\n        break;\n      }\n    }\n  }\n\n  return { bytes: bytes, read: read, written: written };\n};\n\n\n/***/ }),\n/* 287 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isObject = __webpack_require__(27);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (argument === undefined || isObject(argument)) return argument;\n  throw new $TypeError($String(argument) + ' is not an object or undefined');\n};\n\n\n/***/ }),\n/* 288 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nvar base64Alphabet = commonAlphabet + '+/';\nvar base64UrlAlphabet = commonAlphabet + '-_';\n\nvar inverse = function (characters) {\n  // TODO: use `Object.create(null)` in `core-js@4`\n  var result = {};\n  var index = 0;\n  for (; index < 64; index++) result[characters.charAt(index)] = index;\n  return result;\n};\n\nmodule.exports = {\n  i2c: base64Alphabet,\n  c2i: inverse(base64Alphabet),\n  i2cUrl: base64UrlAlphabet,\n  c2iUrl: inverse(base64UrlAlphabet)\n};\n\n\n/***/ }),\n/* 289 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (options) {\n  var alphabet = options && options.alphabet;\n  if (alphabet === undefined || alphabet === 'base64' || alphabet === 'base64url') return alphabet || 'base64';\n  throw new $TypeError('Incorrect `alphabet` option');\n};\n\n\n/***/ }),\n/* 290 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar aString = __webpack_require__(237);\nvar $fromHex = __webpack_require__(291);\n\n// `Uint8Array.fromHex` method\n// https://tc39.es/ecma262/#sec-uint8array.fromhex\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', stat: true }, {\n  fromHex: function fromHex(string) {\n    return $fromHex(aString(string)).bytes;\n  }\n});\n\n\n/***/ }),\n/* 291 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar uncurryThis = __webpack_require__(6);\n\nvar Uint8Array = globalThis.Uint8Array;\nvar SyntaxError = globalThis.SyntaxError;\nvar min = Math.min;\nvar stringMatch = uncurryThis(''.match);\n\nmodule.exports = function (string, into) {\n  var stringLength = string.length;\n  if (stringLength % 2 !== 0) throw new SyntaxError('String should be an even number of characters');\n  var maxLength = into ? min(into.length, stringLength / 2) : stringLength / 2;\n  var bytes = into || new Uint8Array(maxLength);\n  var segments = stringMatch(string, /.{2}/g);\n  var written = 0;\n  for (; written < maxLength; written++) {\n    var result = +('0x' + segments[written] + '0');\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (result !== result) {\n      throw new SyntaxError('String should only contain hex characters');\n    }\n    bytes[written] = result >> 4;\n  }\n  return { bytes: bytes, read: written << 1 };\n};\n\n\n/***/ }),\n/* 292 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar $fromBase64 = __webpack_require__(286);\nvar anUint8Array = __webpack_require__(293);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.setFromBase64 || !function () {\n  var target = new Uint8Array([255, 255, 255, 255, 255]);\n  try {\n    target.setFromBase64('', null);\n    return;\n  } catch (error) { /* empty */ }\n  // Webkit not throw an error on odd length string\n  try {\n    target.setFromBase64('a');\n    return;\n  } catch (error) { /* empty */ }\n  try {\n    target.setFromBase64('MjYyZg===');\n  } catch (error) {\n    return target[0] === 50 && target[1] === 54 && target[2] === 50 && target[3] === 255 && target[4] === 255;\n  }\n}();\n\n// `Uint8Array.prototype.setFromBase64` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.setfrombase64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n  setFromBase64: function setFromBase64(string /* , options */) {\n    anUint8Array(this);\n\n    var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, this, this.length);\n\n    return { read: result.read, written: result.written };\n  }\n});\n\n\n/***/ }),\n/* 293 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar classof = __webpack_require__(82);\n\nvar $TypeError = TypeError;\n\n// Perform ? RequireInternalSlot(argument, [[TypedArrayName]])\n// If argument.[[TypedArrayName]] is not \"Uint8Array\", throw a TypeError exception\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Uint8Array') return argument;\n  throw new $TypeError('Argument is not an Uint8Array');\n};\n\n\n/***/ }),\n/* 294 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar aString = __webpack_require__(237);\nvar anUint8Array = __webpack_require__(293);\nvar notDetached = __webpack_require__(136);\nvar $fromHex = __webpack_require__(291);\n\n// Should not throw an error on length-tracking views over ResizableArrayBuffer\n// https://issues.chromium.org/issues/454630441\nfunction throwsOnLengthTrackingView() {\n  try {\n    // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- required for testing\n    var rab = new ArrayBuffer(16, { maxByteLength: 1024 });\n    // eslint-disable-next-line es/no-uint8array-prototype-setfromhex, es/no-typed-arrays -- required for testing\n    new Uint8Array(rab).setFromHex('cafed00d');\n  } catch (error) {\n    return true;\n  }\n}\n\n// `Uint8Array.prototype.setFromHex` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.setfromhex\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true, forced: throwsOnLengthTrackingView() }, {\n  setFromHex: function setFromHex(string) {\n    anUint8Array(this);\n    aString(string);\n    notDetached(this.buffer);\n    var read = $fromHex(string, this).read;\n    return { read: read, written: read / 2 };\n  }\n});\n\n\n/***/ }),\n/* 295 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar uncurryThis = __webpack_require__(6);\nvar anObjectOrUndefined = __webpack_require__(287);\nvar anUint8Array = __webpack_require__(293);\nvar notDetached = __webpack_require__(136);\nvar base64Map = __webpack_require__(288);\nvar getAlphabetOption = __webpack_require__(289);\n\nvar base64Alphabet = base64Map.i2c;\nvar base64UrlAlphabet = base64Map.i2cUrl;\n\nvar charAt = uncurryThis(''.charAt);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toBase64 || !function () {\n  try {\n    var target = new Uint8Array();\n    target.toBase64(null);\n  } catch (error) {\n    return true;\n  }\n}();\n\n// `Uint8Array.prototype.toBase64` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.tobase64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n  toBase64: function toBase64(/* options */) {\n    var array = anUint8Array(this);\n    var options = arguments.length ? anObjectOrUndefined(arguments[0]) : undefined;\n    var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n    var omitPadding = !!options && !!options.omitPadding;\n    notDetached(this.buffer);\n\n    var result = '';\n    var i = 0;\n    var length = array.length;\n    var triplet;\n\n    var at = function (shift) {\n      return charAt(alphabet, (triplet >> (6 * shift)) & 63);\n    };\n\n    for (; i + 2 < length; i += 3) {\n      triplet = (array[i] << 16) + (array[i + 1] << 8) + array[i + 2];\n      result += at(3) + at(2) + at(1) + at(0);\n    }\n    if (i + 2 === length) {\n      triplet = (array[i] << 16) + (array[i + 1] << 8);\n      result += at(3) + at(2) + at(1) + (omitPadding ? '' : '=');\n    } else if (i + 1 === length) {\n      triplet = array[i] << 16;\n      result += at(3) + at(2) + (omitPadding ? '' : '==');\n    }\n\n    return result;\n  }\n});\n\n\n/***/ }),\n/* 296 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar uncurryThis = __webpack_require__(6);\nvar anUint8Array = __webpack_require__(293);\nvar notDetached = __webpack_require__(136);\n\nvar numberToString = uncurryThis(1.1.toString);\nvar join = uncurryThis([].join);\nvar $Array = Array;\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toHex || !(function () {\n  try {\n    var target = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]);\n    return target.toHex() === 'ffffffffffffffff';\n  } catch (error) {\n    return false;\n  }\n})();\n\n// `Uint8Array.prototype.toHex` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.tohex\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n  toHex: function toHex() {\n    anUint8Array(this);\n    notDetached(this.buffer);\n    var result = $Array(this.length);\n    for (var i = 0, length = this.length; i < length; i++) {\n      var hex = numberToString(this[i], 16);\n      result[i] = hex.length === 1 ? '0' + hex : hex;\n    }\n    return join(result, '');\n  }\n});\n\n\n/***/ }),\n/* 297 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar WeakMapHelpers = __webpack_require__(298);\nvar IS_PURE = __webpack_require__(16);\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.getOrInsert` method\n// https://tc39.es/ecma262/#sec-weakmap.prototype.getorinsert\n$({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {\n  getOrInsert: function getOrInsert(key, value) {\n    if (has(this, key)) return get(this, key);\n    set(this, key, value);\n    return value;\n  }\n});\n\n\n/***/ }),\n/* 298 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\n\n// eslint-disable-next-line es/no-weak-map -- safe\nvar WeakMapPrototype = WeakMap.prototype;\n\nmodule.exports = {\n  // eslint-disable-next-line es/no-weak-map -- safe\n  WeakMap: WeakMap,\n  set: uncurryThis(WeakMapPrototype.set),\n  get: uncurryThis(WeakMapPrototype.get),\n  has: uncurryThis(WeakMapPrototype.has),\n  remove: uncurryThis(WeakMapPrototype['delete'])\n};\n\n\n/***/ }),\n/* 299 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aCallable = __webpack_require__(38);\nvar aWeakMap = __webpack_require__(300);\nvar aWeakKey = __webpack_require__(301);\nvar WeakMapHelpers = __webpack_require__(298);\nvar IS_PURE = __webpack_require__(16);\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\nvar FORCED = IS_PURE || !function () {\n  try {\n    // eslint-disable-next-line es/no-weak-map, no-throw-literal -- testing\n    if (WeakMap.prototype.getOrInsertComputed) new WeakMap().getOrInsertComputed(1, function () { throw 1; });\n  } catch (error) {\n    // FF144 Nightly - Beta 3 bug\n    // https://bugzilla.mozilla.org/show_bug.cgi?id=1988369\n    return error instanceof TypeError;\n  }\n}();\n\n// `WeakMap.prototype.getOrInsertComputed` method\n// https://tc39.es/ecma262/#sec-weakmap.prototype.getorinsertcomputed\n$({ target: 'WeakMap', proto: true, real: true, forced: FORCED }, {\n  getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n    if (!IS_PURE) aWeakMap(this);\n    aWeakKey(key);\n    aCallable(callbackfn);\n    if (has(this, key)) return get(this, key);\n    var value = callbackfn(key);\n    set(this, key, value);\n    return value;\n  }\n});\n\n\n/***/ }),\n/* 300 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar has = __webpack_require__(298).has;\n\n// Perform ? RequireInternalSlot(M, [[WeakMapData]])\nmodule.exports = function (it) {\n  has(it);\n  return it;\n};\n\n\n/***/ }),\n/* 301 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar WeakMapHelpers = __webpack_require__(298);\n\nvar weakmap = new WeakMapHelpers.WeakMap();\nvar set = WeakMapHelpers.set;\nvar remove = WeakMapHelpers.remove;\n\nmodule.exports = function (key) {\n  set(weakmap, key, 1);\n  remove(weakmap, key);\n  return key;\n};\n\n\n/***/ }),\n/* 302 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar $filterReject = __webpack_require__(303).filterReject;\nvar addToUnscopables = __webpack_require__(108);\n\n// `Array.prototype.filterReject` method\n// https://github.com/tc39/proposal-array-filtering\n$({ target: 'Array', proto: true, forced: true }, {\n  filterReject: function filterReject(callbackfn /* , thisArg */) {\n    return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\naddToUnscopables('filterReject');\n\n\n/***/ }),\n/* 303 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(98);\nvar IndexedObject = __webpack_require__(45);\nvar toObject = __webpack_require__(9);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar arraySpeciesCreate = __webpack_require__(304);\nvar createProperty = __webpack_require__(117);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE === 1;\n  var IS_FILTER = TYPE === 2;\n  var IS_SOME = TYPE === 3;\n  var IS_EVERY = TYPE === 4;\n  var IS_FIND_INDEX = TYPE === 6;\n  var IS_FILTER_REJECT = TYPE === 7;\n  var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var length = lengthOfArrayLike(self);\n    var boundFunction = bind(callbackfn, that);\n    var index = 0;\n    var resIndex = 0;\n    var target = IS_MAP ? arraySpeciesCreate($this, length) : IS_FILTER || IS_FILTER_REJECT ? arraySpeciesCreate($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) createProperty(target, index, result);    // map\n        else if (result) switch (TYPE) {\n          case 3: return true;                                // some\n          case 5: return value;                               // find\n          case 6: return index;                               // findIndex\n          case 2: createProperty(target, resIndex++, value);  // filter\n        } else switch (TYPE) {\n          case 4: return false;                               // every\n          case 7: createProperty(target, resIndex++, value);  // filterReject\n        }\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.es/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.es/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.es/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.es/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.es/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.es/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6),\n  // `Array.prototype.filterReject` method\n  // https://github.com/tc39/proposal-array-filtering\n  filterReject: createMethod(7)\n};\n\n\n/***/ }),\n/* 304 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar arraySpeciesConstructor = __webpack_require__(305);\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n/* 305 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isArray = __webpack_require__(114);\nvar isConstructor = __webpack_require__(199);\nvar isObject = __webpack_require__(27);\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return C === undefined ? $Array : C;\n};\n\n\n/***/ }),\n/* 306 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar $group = __webpack_require__(307);\nvar addToUnscopables = __webpack_require__(108);\n\n// `Array.prototype.group` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Array', proto: true }, {\n  group: function group(callbackfn /* , thisArg */) {\n    var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n    return $group(this, callbackfn, thisArg);\n  }\n});\n\naddToUnscopables('group');\n\n\n/***/ }),\n/* 307 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(98);\nvar uncurryThis = __webpack_require__(6);\nvar IndexedObject = __webpack_require__(45);\nvar toObject = __webpack_require__(9);\nvar toPropertyKey = __webpack_require__(31);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar objectCreate = __webpack_require__(93);\nvar arrayFromConstructorAndList = __webpack_require__(119);\n\nvar $Array = Array;\nvar push = uncurryThis([].push);\n\nmodule.exports = function ($this, callbackfn, that, specificConstructor) {\n  var O = toObject($this);\n  var self = IndexedObject(O);\n  var boundFunction = bind(callbackfn, that);\n  var target = objectCreate(null);\n  var length = lengthOfArrayLike(self);\n  var index = 0;\n  var Constructor, key, value;\n  for (;length > index; index++) {\n    value = self[index];\n    key = toPropertyKey(boundFunction(value, index, O));\n    // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys\n    // but since it's a `null` prototype object, we can safely use `in`\n    if (key in target) push(target[key], value);\n    else target[key] = [value];\n  }\n  // TODO: Remove this block from `core-js@4`\n  if (specificConstructor) {\n    Constructor = specificConstructor(O);\n    if (Constructor !== $Array) {\n      for (key in target) target[key] = arrayFromConstructorAndList(Constructor, target[key]);\n    }\n  } return target;\n};\n\n\n/***/ }),\n/* 308 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar $group = __webpack_require__(307);\nvar arrayMethodIsStrict = __webpack_require__(309);\nvar addToUnscopables = __webpack_require__(108);\n\n// `Array.prototype.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\n// https://bugs.webkit.org/show_bug.cgi?id=236541\n$({ target: 'Array', proto: true, forced: !arrayMethodIsStrict('groupBy') }, {\n  groupBy: function groupBy(callbackfn /* , thisArg */) {\n    var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n    return $group(this, callbackfn, thisArg);\n  }\n});\n\naddToUnscopables('groupBy');\n\n\n/***/ }),\n/* 309 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(8);\n\nmodule.exports = function (METHOD_NAME, argument) {\n  var method = [][METHOD_NAME];\n  return !!method && fails(function () {\n    // eslint-disable-next-line no-useless-call -- required for testing\n    method.call(null, argument || function () { return 1; }, 1);\n  });\n};\n\n\n/***/ }),\n/* 310 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar arrayMethodIsStrict = __webpack_require__(309);\nvar addToUnscopables = __webpack_require__(108);\nvar $groupToMap = __webpack_require__(311);\nvar IS_PURE = __webpack_require__(16);\n\n// `Array.prototype.groupByToMap` method\n// https://github.com/tc39/proposal-array-grouping\n// https://bugs.webkit.org/show_bug.cgi?id=236541\n$({ target: 'Array', proto: true, name: 'groupToMap', forced: IS_PURE || !arrayMethodIsStrict('groupByToMap') }, {\n  groupByToMap: $groupToMap\n});\n\naddToUnscopables('groupByToMap');\n\n\n/***/ }),\n/* 311 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(98);\nvar uncurryThis = __webpack_require__(6);\nvar IndexedObject = __webpack_require__(45);\nvar toObject = __webpack_require__(9);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar MapHelpers = __webpack_require__(183);\n\nvar Map = MapHelpers.Map;\nvar mapGet = MapHelpers.get;\nvar mapHas = MapHelpers.has;\nvar mapSet = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// `Array.prototype.groupToMap` method\n// https://github.com/tc39/proposal-array-grouping\nmodule.exports = function groupToMap(callbackfn /* , thisArg */) {\n  var O = toObject(this);\n  var self = IndexedObject(O);\n  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  var map = new Map();\n  var length = lengthOfArrayLike(self);\n  var index = 0;\n  var key, value;\n  for (;length > index; index++) {\n    value = self[index];\n    key = boundFunction(value, index, O);\n    if (mapHas(map, key)) push(mapGet(map, key), value);\n    else mapSet(map, key, [value]);\n  } return map;\n};\n\n\n/***/ }),\n/* 312 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar addToUnscopables = __webpack_require__(108);\nvar $groupToMap = __webpack_require__(311);\nvar IS_PURE = __webpack_require__(16);\n\n// `Array.prototype.groupToMap` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Array', proto: true, forced: IS_PURE }, {\n  groupToMap: $groupToMap\n});\n\naddToUnscopables('groupToMap');\n\n\n/***/ }),\n/* 313 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar isArray = __webpack_require__(114);\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = Object.isFrozen;\n\nvar isFrozenStringArray = function (array, allowUndefined) {\n  if (!isFrozen || !isArray(array) || !isFrozen(array)) return false;\n  var index = 0;\n  var length = array.length;\n  var element;\n  while (index < length) {\n    element = array[index++];\n    if (!(typeof element == 'string' || (allowUndefined && element === undefined))) {\n      return false;\n    }\n  } return length !== 0;\n};\n\n// `Array.isTemplateObject` method\n// https://github.com/tc39/proposal-array-is-template-object\n$({ target: 'Array', stat: true, sham: true, forced: true }, {\n  isTemplateObject: function isTemplateObject(value) {\n    if (!isFrozenStringArray(value, true)) return false;\n    var raw = value.raw;\n    return isFrozenStringArray(raw, false) && raw.length === value.length;\n  }\n});\n\n\n/***/ }),\n/* 314 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar DESCRIPTORS = __webpack_require__(24);\nvar addToUnscopables = __webpack_require__(108);\nvar toObject = __webpack_require__(9);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar defineBuiltInAccessor = __webpack_require__(130);\n\n// `Array.prototype.lastIndex` getter\n// https://github.com/tc39/proposal-array-last\nif (DESCRIPTORS) {\n  defineBuiltInAccessor(Array.prototype, 'lastIndex', {\n    configurable: true,\n    get: function lastIndex() {\n      var O = toObject(this);\n      var len = lengthOfArrayLike(O);\n      return len === 0 ? 0 : len - 1;\n    }\n  });\n\n  addToUnscopables('lastIndex');\n}\n\n\n/***/ }),\n/* 315 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar DESCRIPTORS = __webpack_require__(24);\nvar addToUnscopables = __webpack_require__(108);\nvar toObject = __webpack_require__(9);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar defineBuiltInAccessor = __webpack_require__(130);\n\n// `Array.prototype.lastIndex` accessor\n// https://github.com/tc39/proposal-array-last\nif (DESCRIPTORS) {\n  defineBuiltInAccessor(Array.prototype, 'lastItem', {\n    configurable: true,\n    get: function lastItem() {\n      var O = toObject(this);\n      var len = lengthOfArrayLike(O);\n      return len === 0 ? undefined : O[len - 1];\n    },\n    set: function lastItem(value) {\n      var O = toObject(this);\n      var len = lengthOfArrayLike(O);\n      return O[len === 0 ? 0 : len - 1] = value;\n    }\n  });\n\n  addToUnscopables('lastItem');\n}\n\n\n/***/ }),\n/* 316 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar addToUnscopables = __webpack_require__(108);\nvar uniqueBy = __webpack_require__(317);\n\n// `Array.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\n$({ target: 'Array', proto: true, forced: true }, {\n  uniqueBy: uniqueBy\n});\n\naddToUnscopables('uniqueBy');\n\n\n/***/ }),\n/* 317 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aCallable = __webpack_require__(38);\nvar isNullOrUndefined = __webpack_require__(11);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar toObject = __webpack_require__(9);\nvar createProperty = __webpack_require__(117);\nvar MapHelpers = __webpack_require__(183);\nvar iterate = __webpack_require__(318);\n\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapSet = MapHelpers.set;\n\n// `Array.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\nmodule.exports = function uniqueBy(resolver) {\n  var that = toObject(this);\n  var length = lengthOfArrayLike(that);\n  var result = [];\n  var map = new Map();\n  var resolverFunction = !isNullOrUndefined(resolver) ? aCallable(resolver) : function (value) {\n    return value;\n  };\n  var index, item, key;\n  for (index = 0; index < length; index++) {\n    item = that[index];\n    key = resolverFunction(item);\n    if (!mapHas(map, key)) mapSet(map, key, item);\n  }\n  index = 0;\n  iterate(map, function (value) {\n    createProperty(result, index++, value);\n  });\n  return result;\n};\n\n\n/***/ }),\n/* 318 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar iterateSimple = __webpack_require__(250);\nvar MapHelpers = __webpack_require__(183);\n\nvar Map = MapHelpers.Map;\nvar MapPrototype = MapHelpers.proto;\nvar forEach = uncurryThis(MapPrototype.forEach);\nvar entries = uncurryThis(MapPrototype.entries);\nvar next = entries(new Map()).next;\n\nmodule.exports = function (map, fn, interruptible) {\n  return interruptible ? iterateSimple({ iterator: entries(map), next: next }, function (entry) {\n    return fn(entry[1], entry[0]);\n  }) : forEach(map, fn);\n};\n\n\n/***/ }),\n/* 319 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar anInstance = __webpack_require__(144);\nvar getPrototypeOf = __webpack_require__(91);\nvar createNonEnumerableProperty = __webpack_require__(50);\nvar hasOwn = __webpack_require__(5);\nvar wellKnownSymbol = __webpack_require__(13);\nvar AsyncIteratorPrototype = __webpack_require__(230);\nvar IS_PURE = __webpack_require__(16);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\n\nvar AsyncIteratorConstructor = function AsyncIterator() {\n  anInstance(this, AsyncIteratorPrototype);\n  if (getPrototypeOf(this) === AsyncIteratorPrototype) throw new $TypeError('Abstract class AsyncIterator not directly constructable');\n};\n\nAsyncIteratorConstructor.prototype = AsyncIteratorPrototype;\n\nif (!hasOwn(AsyncIteratorPrototype, TO_STRING_TAG)) {\n  createNonEnumerableProperty(AsyncIteratorPrototype, TO_STRING_TAG, 'AsyncIterator');\n}\n\nif (IS_PURE || !hasOwn(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPrototype.constructor === Object) {\n  createNonEnumerableProperty(AsyncIteratorPrototype, 'constructor', AsyncIteratorConstructor);\n}\n\n// `AsyncIterator` constructor\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ global: true, constructor: true, forced: IS_PURE }, {\n  AsyncIterator: AsyncIteratorConstructor\n});\n\n\n/***/ }),\n/* 320 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar indexed = __webpack_require__(321);\n\n// `AsyncIterator.prototype.asIndexedPairs` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'AsyncIterator', name: 'indexed', proto: true, real: true, forced: true }, {\n  asIndexedPairs: indexed\n});\n\n\n/***/ }),\n/* 321 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar map = __webpack_require__(322);\n\nvar callback = function (value, counter) {\n  return [counter, value];\n};\n\n// `AsyncIterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function indexed() {\n  return call(map, this, callback);\n};\n\n\n/***/ }),\n/* 322 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar isObject = __webpack_require__(27);\nvar getIteratorDirect = __webpack_require__(155);\nvar createAsyncIteratorProxy = __webpack_require__(323);\nvar createIterResultObject = __webpack_require__(151);\nvar closeAsyncIteration = __webpack_require__(232);\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n  var state = this;\n  var iterator = state.iterator;\n  var mapper = state.mapper;\n\n  return new Promise(function (resolve, reject) {\n    var doneAndReject = function (error) {\n      state.done = true;\n      reject(error);\n    };\n\n    var ifAbruptCloseAsyncIterator = function (error) {\n      closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n    };\n\n    try {\n      Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n        try {\n          if (anObject(step).done) {\n            state.done = true;\n            resolve(createIterResultObject(undefined, true));\n          } else {\n            var value = step.value;\n            try {\n              var result = mapper(value, state.counter++);\n\n              var handler = function (mapped) {\n                resolve(createIterResultObject(mapped, false));\n              };\n\n              if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n              else handler(result);\n            } catch (error2) { ifAbruptCloseAsyncIterator(error2); }\n          }\n        } catch (error) { doneAndReject(error); }\n      }, doneAndReject);\n    } catch (error) { doneAndReject(error); }\n  });\n});\n\n// `AsyncIterator.prototype.map` method\n// https://github.com/tc39/proposal-async-iterator-helpers\nmodule.exports = function map(mapper) {\n  anObject(this);\n  aCallable(mapper);\n  return new AsyncIteratorProxy(getIteratorDirect(this), {\n    mapper: mapper\n  });\n};\n\n\n/***/ }),\n/* 323 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar perform = __webpack_require__(209);\nvar anObject = __webpack_require__(30);\nvar create = __webpack_require__(93);\nvar createNonEnumerableProperty = __webpack_require__(50);\nvar defineBuiltIns = __webpack_require__(145);\nvar wellKnownSymbol = __webpack_require__(13);\nvar InternalStateModule = __webpack_require__(55);\nvar getBuiltIn = __webpack_require__(35);\nvar getMethod = __webpack_require__(37);\nvar AsyncIteratorPrototype = __webpack_require__(230);\nvar createIterResultObject = __webpack_require__(151);\n\nvar Promise = getBuiltIn('Promise');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ASYNC_ITERATOR_HELPER = 'AsyncIteratorHelper';\nvar WRAP_FOR_VALID_ASYNC_ITERATOR = 'WrapForValidAsyncIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createAsyncIteratorProxyPrototype = function (IS_ITERATOR) {\n  var IS_GENERATOR = !IS_ITERATOR;\n  var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ASYNC_ITERATOR : ASYNC_ITERATOR_HELPER);\n\n  var getStateOrEarlyExit = function (that) {\n    var stateCompletion = perform(function () {\n      return getInternalState(that);\n    });\n\n    var stateError = stateCompletion.error;\n    var state = stateCompletion.value;\n\n    if (stateError || (IS_GENERATOR && state.done)) {\n      return { exit: true, value: stateError ? Promise.reject(state) : Promise.resolve(createIterResultObject(undefined, true)) };\n    } return { exit: false, value: state };\n  };\n\n  return defineBuiltIns(create(AsyncIteratorPrototype), {\n    next: function next() {\n      var stateCompletion = getStateOrEarlyExit(this);\n      var state = stateCompletion.value;\n      if (stateCompletion.exit) return state;\n      var handlerCompletion = perform(function () {\n        return anObject(state.nextHandler(Promise));\n      });\n      var handlerError = handlerCompletion.error;\n      var value = handlerCompletion.value;\n      if (handlerError) state.done = true;\n      return handlerError ? Promise.reject(value) : Promise.resolve(value);\n    },\n    'return': function () {\n      var stateCompletion = getStateOrEarlyExit(this);\n      var state = stateCompletion.value;\n      if (stateCompletion.exit) return state;\n      state.done = true;\n      var iterator = state.iterator;\n      var inner = state.inner;\n      var returnMethod, result;\n      var closeOuterIterator = function () {\n        var completion = perform(function () {\n          return getMethod(iterator, 'return');\n        });\n        returnMethod = result = completion.value;\n        if (completion.error) return Promise.reject(result);\n        if (returnMethod === undefined) return Promise.resolve(createIterResultObject(undefined, true));\n        completion = perform(function () {\n          return call(returnMethod, iterator);\n        });\n        result = completion.value;\n        if (completion.error) return Promise.reject(result);\n        return IS_ITERATOR ? Promise.resolve(result) : Promise.resolve(result).then(function (resolved) {\n          anObject(resolved);\n          return createIterResultObject(undefined, true);\n        });\n      };\n\n      var closeAndReject = function (error) {\n        return closeOuterIterator().then(function () {\n          throw error;\n        }, function () {\n          throw error;\n        });\n      };\n\n      if (inner) {\n        var innerIterator = inner.iterator;\n        var innerReturn;\n        var completion = perform(function () {\n          innerReturn = getMethod(innerIterator, 'return');\n          if (innerReturn) return call(innerReturn, innerIterator);\n        });\n        if (completion.error) return closeAndReject(completion.value);\n        if (innerReturn) {\n          return Promise.resolve(completion.value).then(function (innerResult) {\n            try {\n              anObject(innerResult);\n            } catch (error) {\n              return closeAndReject(error);\n            }\n            return closeOuterIterator();\n          }, closeAndReject);\n        }\n      }\n\n      return closeOuterIterator();\n    }\n  });\n};\n\nvar WrapForValidAsyncIteratorPrototype = createAsyncIteratorProxyPrototype(true);\nvar AsyncIteratorHelperPrototype = createAsyncIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(AsyncIteratorHelperPrototype, TO_STRING_TAG, 'Async Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n  var AsyncIteratorProxy = function AsyncIterator(record, state) {\n    if (state) {\n      state.iterator = record.iterator;\n      state.next = record.next;\n    } else state = record;\n    state.type = IS_ITERATOR ? WRAP_FOR_VALID_ASYNC_ITERATOR : ASYNC_ITERATOR_HELPER;\n    state.nextHandler = nextHandler;\n    state.counter = 0;\n    state.done = false;\n    setInternalState(this, state);\n  };\n\n  AsyncIteratorProxy.prototype = IS_ITERATOR ? WrapForValidAsyncIteratorPrototype : AsyncIteratorHelperPrototype;\n\n  return AsyncIteratorProxy;\n};\n\n\n/***/ }),\n/* 324 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar notANaN = __webpack_require__(156);\nvar toPositiveInteger = __webpack_require__(157);\nvar createAsyncIteratorProxy = __webpack_require__(323);\nvar createIterResultObject = __webpack_require__(151);\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n  var state = this;\n\n  return new Promise(function (resolve, reject) {\n    var doneAndReject = function (error) {\n      state.done = true;\n      reject(error);\n    };\n\n    var loop = function () {\n      try {\n        Promise.resolve(anObject(call(state.next, state.iterator))).then(function (step) {\n          try {\n            if (anObject(step).done) {\n              state.done = true;\n              resolve(createIterResultObject(undefined, true));\n            } else if (state.remaining) {\n              state.remaining--;\n              loop();\n            } else resolve(createIterResultObject(step.value, false));\n          } catch (err) { doneAndReject(err); }\n        }, doneAndReject);\n      } catch (error) { doneAndReject(error); }\n    };\n\n    loop();\n  });\n});\n\n// `AsyncIterator.prototype.drop` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  drop: function drop(limit) {\n    anObject(this);\n    var remaining = toPositiveInteger(notANaN(+limit));\n    return new AsyncIteratorProxy(getIteratorDirect(this), {\n      remaining: remaining\n    });\n  }\n});\n\n\n/***/ }),\n/* 325 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar $every = __webpack_require__(231).every;\n\n// `AsyncIterator.prototype.every` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  every: function every(predicate) {\n    return $every(this, predicate);\n  }\n});\n\n\n/***/ }),\n/* 326 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar isObject = __webpack_require__(27);\nvar getIteratorDirect = __webpack_require__(155);\nvar createAsyncIteratorProxy = __webpack_require__(323);\nvar createIterResultObject = __webpack_require__(151);\nvar closeAsyncIteration = __webpack_require__(232);\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n  var state = this;\n  var iterator = state.iterator;\n  var predicate = state.predicate;\n\n  return new Promise(function (resolve, reject) {\n    var doneAndReject = function (error) {\n      state.done = true;\n      reject(error);\n    };\n\n    var ifAbruptCloseAsyncIterator = function (error) {\n      closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n    };\n\n    var loop = function () {\n      try {\n        Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n          try {\n            if (anObject(step).done) {\n              state.done = true;\n              resolve(createIterResultObject(undefined, true));\n            } else {\n              var value = step.value;\n              try {\n                var result = predicate(value, state.counter++);\n\n                var handler = function (selected) {\n                  selected ? resolve(createIterResultObject(value, false)) : loop();\n                };\n\n                if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n                else handler(result);\n              } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n            }\n          } catch (error2) { doneAndReject(error2); }\n        }, doneAndReject);\n      } catch (error) { doneAndReject(error); }\n    };\n\n    loop();\n  });\n});\n\n// `AsyncIterator.prototype.filter` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  filter: function filter(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    return new AsyncIteratorProxy(getIteratorDirect(this), {\n      predicate: predicate\n    });\n  }\n});\n\n\n/***/ }),\n/* 327 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar $find = __webpack_require__(231).find;\n\n// `AsyncIterator.prototype.find` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  find: function find(predicate) {\n    return $find(this, predicate);\n  }\n});\n\n\n/***/ }),\n/* 328 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar isObject = __webpack_require__(27);\nvar getIteratorDirect = __webpack_require__(155);\nvar createAsyncIteratorProxy = __webpack_require__(323);\nvar createIterResultObject = __webpack_require__(151);\nvar getAsyncIteratorFlattenable = __webpack_require__(329);\nvar closeAsyncIteration = __webpack_require__(232);\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n  var state = this;\n  var iterator = state.iterator;\n  var mapper = state.mapper;\n\n  return new Promise(function (resolve, reject) {\n    var doneAndReject = function (error) {\n      state.done = true;\n      reject(error);\n    };\n\n    var ifAbruptCloseAsyncIterator = function (error) {\n      closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n    };\n\n    var outerLoop = function () {\n      try {\n        Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n          try {\n            if (anObject(step).done) {\n              state.done = true;\n              resolve(createIterResultObject(undefined, true));\n            } else {\n              var value = step.value;\n              try {\n                var result = mapper(value, state.counter++);\n\n                var handler = function (mapped) {\n                  try {\n                    state.inner = getAsyncIteratorFlattenable(mapped);\n                    innerLoop();\n                  } catch (error4) { ifAbruptCloseAsyncIterator(error4); }\n                };\n\n                if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n                else handler(result);\n              } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n            }\n          } catch (error2) { doneAndReject(error2); }\n        }, doneAndReject);\n      } catch (error) { doneAndReject(error); }\n    };\n\n    var innerLoop = function () {\n      var inner = state.inner;\n      if (inner) {\n        try {\n          Promise.resolve(anObject(call(inner.next, inner.iterator))).then(function (result) {\n            try {\n              if (anObject(result).done) {\n                state.inner = null;\n                outerLoop();\n              } else resolve(createIterResultObject(result.value, false));\n            } catch (error1) { ifAbruptCloseAsyncIterator(error1); }\n          }, ifAbruptCloseAsyncIterator);\n        } catch (error) { ifAbruptCloseAsyncIterator(error); }\n      } else outerLoop();\n    };\n\n    innerLoop();\n  });\n});\n\n// `AsyncIterator.prototype.flatMap` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  flatMap: function flatMap(mapper) {\n    anObject(this);\n    aCallable(mapper);\n    return new AsyncIteratorProxy(getIteratorDirect(this), {\n      mapper: mapper,\n      inner: null\n    });\n  }\n});\n\n\n/***/ }),\n/* 329 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar isCallable = __webpack_require__(28);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar getIteratorMethod = __webpack_require__(103);\nvar getMethod = __webpack_require__(37);\nvar wellKnownSymbol = __webpack_require__(13);\nvar AsyncFromSyncIterator = __webpack_require__(229);\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\n\nmodule.exports = function (obj) {\n  var object = anObject(obj);\n  var alreadyAsync = true;\n  var method = getMethod(object, ASYNC_ITERATOR);\n  var iterator;\n  if (!isCallable(method)) {\n    method = getIteratorMethod(object);\n    alreadyAsync = false;\n  }\n  if (method !== undefined) {\n    iterator = call(method, object);\n  } else {\n    iterator = object;\n    alreadyAsync = true;\n  }\n  anObject(iterator);\n  return getIteratorDirect(alreadyAsync ? iterator : new AsyncFromSyncIterator(getIteratorDirect(iterator)));\n};\n\n\n/***/ }),\n/* 330 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar $forEach = __webpack_require__(231).forEach;\n\n// `AsyncIterator.prototype.forEach` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  forEach: function forEach(fn) {\n    return $forEach(this, fn);\n  }\n});\n\n\n/***/ }),\n/* 331 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar toObject = __webpack_require__(9);\nvar isPrototypeOf = __webpack_require__(36);\nvar getAsyncIteratorFlattenable = __webpack_require__(329);\nvar AsyncIteratorPrototype = __webpack_require__(230);\nvar WrapAsyncIterator = __webpack_require__(332);\n\n// `AsyncIterator.from` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', stat: true, forced: true }, {\n  from: function from(O) {\n    var iteratorRecord = getAsyncIteratorFlattenable(typeof O == 'string' ? toObject(O) : O);\n    return isPrototypeOf(AsyncIteratorPrototype, iteratorRecord.iterator)\n      ? iteratorRecord.iterator\n      : new WrapAsyncIterator(iteratorRecord);\n  }\n});\n\n\n/***/ }),\n/* 332 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar createAsyncIteratorProxy = __webpack_require__(323);\n\nmodule.exports = createAsyncIteratorProxy(function () {\n  return call(this.next, this.iterator);\n}, true);\n\n\n/***/ }),\n/* 333 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar indexed = __webpack_require__(321);\n\n// `AsyncIterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  indexed: indexed\n});\n\n\n/***/ }),\n/* 334 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar map = __webpack_require__(322);\n\n// `AsyncIterator.prototype.map` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  map: map\n});\n\n\n\n/***/ }),\n/* 335 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar isObject = __webpack_require__(27);\nvar getBuiltIn = __webpack_require__(35);\nvar getIteratorDirect = __webpack_require__(155);\nvar closeAsyncIteration = __webpack_require__(232);\n\nvar Promise = getBuiltIn('Promise');\nvar $TypeError = TypeError;\n\n// `AsyncIterator.prototype.reduce` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  reduce: function reduce(reducer /* , initialValue */) {\n    anObject(this);\n    aCallable(reducer);\n    var record = getIteratorDirect(this);\n    var iterator = record.iterator;\n    var next = record.next;\n    var noInitial = arguments.length < 2;\n    var accumulator = noInitial ? undefined : arguments[1];\n    var counter = 0;\n\n    return new Promise(function (resolve, reject) {\n      var ifAbruptCloseAsyncIterator = function (error) {\n        closeAsyncIteration(iterator, reject, error, reject);\n      };\n\n      var loop = function () {\n        try {\n          Promise.resolve(anObject(call(next, iterator))).then(function (step) {\n            try {\n              if (anObject(step).done) {\n                noInitial ? reject(new $TypeError('Reduce of empty iterator with no initial value')) : resolve(accumulator);\n              } else {\n                var value = step.value;\n                if (noInitial) {\n                  noInitial = false;\n                  accumulator = value;\n                  counter++;\n                  loop();\n                } else try {\n                  var result = reducer(accumulator, value, counter++);\n\n                  var handler = function ($result) {\n                    accumulator = $result;\n                    loop();\n                  };\n\n                  if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n                  else handler(result);\n                } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n              }\n            } catch (error2) { reject(error2); }\n          }, reject);\n        } catch (error) { reject(error); }\n      };\n\n      loop();\n    });\n  }\n});\n\n\n/***/ }),\n/* 336 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar $some = __webpack_require__(231).some;\n\n// `AsyncIterator.prototype.some` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  some: function some(predicate) {\n    return $some(this, predicate);\n  }\n});\n\n\n/***/ }),\n/* 337 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar anObject = __webpack_require__(30);\nvar getIteratorDirect = __webpack_require__(155);\nvar getMethod = __webpack_require__(37);\nvar notANaN = __webpack_require__(156);\nvar toPositiveInteger = __webpack_require__(157);\nvar createAsyncIteratorProxy = __webpack_require__(323);\nvar createIterResultObject = __webpack_require__(151);\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n  var state = this;\n  var iterator = state.iterator;\n  var returnMethod;\n\n  if (!state.remaining--) {\n    var resultDone = createIterResultObject(undefined, true);\n    state.done = true;\n    returnMethod = getMethod(iterator, 'return');\n    if (returnMethod !== undefined) {\n      return Promise.resolve(call(returnMethod, iterator)).then(function (result) {\n        anObject(result);\n        return resultDone;\n      });\n    }\n    return resultDone;\n  } return Promise.resolve(call(state.next, iterator)).then(function (step) {\n    if (anObject(step).done) {\n      state.done = true;\n      return createIterResultObject(undefined, true);\n    } return createIterResultObject(step.value, false);\n  }).then(null, function (error) {\n    state.done = true;\n    throw error;\n  });\n});\n\n// `AsyncIterator.prototype.take` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  take: function take(limit) {\n    anObject(this);\n    var remaining = toPositiveInteger(notANaN(+limit));\n    return new AsyncIteratorProxy(getIteratorDirect(this), {\n      remaining: remaining\n    });\n  }\n});\n\n\n/***/ }),\n/* 338 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar $toArray = __webpack_require__(231).toArray;\n\n// `AsyncIterator.prototype.toArray` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  toArray: function toArray() {\n    return $toArray(this, undefined, []);\n  }\n});\n\n\n/***/ }),\n/* 339 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* eslint-disable es/no-bigint -- safe */\nvar $ = __webpack_require__(49);\nvar NumericRangeIterator = __webpack_require__(340);\n\n// `BigInt.range` method\n// https://github.com/tc39/proposal-iterator.range\n// TODO: Remove from `core-js@4`\nif (typeof BigInt == 'function') {\n  $({ target: 'BigInt', stat: true, forced: true }, {\n    range: function range(start, end, option) {\n      return new NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1));\n    }\n  });\n}\n\n\n/***/ }),\n/* 340 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/proposal-iterator.range\nvar InternalStateModule = __webpack_require__(55);\nvar createIteratorConstructor = __webpack_require__(341);\nvar createIterResultObject = __webpack_require__(151);\nvar isNullOrUndefined = __webpack_require__(11);\nvar isObject = __webpack_require__(27);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar DESCRIPTORS = __webpack_require__(24);\n\nvar INCORRECT_RANGE = 'Incorrect Iterator.range arguments';\nvar NUMERIC_RANGE_ITERATOR = 'NumericRangeIterator';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(NUMERIC_RANGE_ITERATOR);\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\n\nvar $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (start !== start || end !== end) {\n    throw new $RangeError(INCORRECT_RANGE);\n  }\n  // TODO: Drop the first `typeof` check after removing legacy methods in `core-js@4`\n  if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) {\n    throw new $TypeError(INCORRECT_RANGE);\n  }\n  if (start === Infinity || start === -Infinity) {\n    throw new $RangeError(INCORRECT_RANGE);\n  }\n  var ifIncrease = end > start;\n  var inclusiveEnd = false;\n  var step;\n  if (isNullOrUndefined(option)) {\n    step = undefined;\n  } else if (isObject(option)) {\n    step = option.step;\n    inclusiveEnd = !!option.inclusive;\n  } else if (typeof option == type) {\n    step = option;\n  } else {\n    throw new $TypeError(INCORRECT_RANGE);\n  }\n  if (isNullOrUndefined(step)) {\n    step = ifIncrease ? one : -one;\n  }\n  if (typeof step != type) {\n    throw new $TypeError(INCORRECT_RANGE);\n  }\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (step !== step || step === Infinity || step === -Infinity || (step === zero && start !== end)) {\n    throw new $RangeError(INCORRECT_RANGE);\n  }\n  var hitsEnd = end > start !== step > zero;\n  setInternalState(this, {\n    type: NUMERIC_RANGE_ITERATOR,\n    start: start,\n    end: end,\n    step: step,\n    inclusive: inclusiveEnd,\n    hitsEnd: hitsEnd,\n    currentCount: zero,\n    zero: zero\n  });\n  if (!DESCRIPTORS) {\n    this.start = start;\n    this.end = end;\n    this.step = step;\n    this.inclusive = inclusiveEnd;\n  }\n}, NUMERIC_RANGE_ITERATOR, function next() {\n  var state = getInternalState(this);\n  if (state.hitsEnd) return createIterResultObject(undefined, true);\n  var start = state.start;\n  var end = state.end;\n  var step = state.step;\n  var currentYieldingValue = start + (step * state.currentCount++);\n  if (currentYieldingValue === end) state.hitsEnd = true;\n  var inclusiveEnd = state.inclusive;\n  var endCondition;\n  if (end > start) {\n    endCondition = inclusiveEnd ? currentYieldingValue > end : currentYieldingValue >= end;\n  } else {\n    endCondition = inclusiveEnd ? end > currentYieldingValue : end >= currentYieldingValue;\n  }\n  if (endCondition) {\n    state.hitsEnd = true;\n    return createIterResultObject(undefined, true);\n  } return createIterResultObject(currentYieldingValue, false);\n});\n\nvar addGetter = function (key) {\n  defineBuiltInAccessor($RangeIterator.prototype, key, {\n    get: function () {\n      return getInternalState(this)[key];\n    },\n    set: function () { /* empty */ },\n    configurable: true,\n    enumerable: false\n  });\n};\n\nif (DESCRIPTORS) {\n  addGetter('start');\n  addGetter('end');\n  addGetter('inclusive');\n  addGetter('step');\n}\n\nmodule.exports = $RangeIterator;\n\n\n/***/ }),\n/* 341 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(148).IteratorPrototype;\nvar create = __webpack_require__(93);\nvar createPropertyDescriptor = __webpack_require__(43);\nvar setToStringTag = __webpack_require__(195);\nvar Iterators = __webpack_require__(101);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n\n\n/***/ }),\n/* 342 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar apply = __webpack_require__(72);\nvar getCompositeKeyNode = __webpack_require__(343);\nvar getBuiltIn = __webpack_require__(35);\nvar create = __webpack_require__(93);\n\nvar $Object = Object;\n\nvar initializer = function () {\n  var freeze = getBuiltIn('Object', 'freeze');\n  return freeze ? freeze(create(null)) : create(null);\n};\n\n// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey\n$({ global: true, forced: true }, {\n  compositeKey: function compositeKey() {\n    return apply(getCompositeKeyNode, $Object, arguments).get('object', initializer);\n  }\n});\n\n\n/***/ }),\n/* 343 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\n__webpack_require__(344);\n__webpack_require__(353);\nvar getBuiltIn = __webpack_require__(35);\nvar create = __webpack_require__(93);\nvar isObject = __webpack_require__(27);\n\nvar $Object = Object;\nvar $TypeError = TypeError;\nvar Map = getBuiltIn('Map');\nvar WeakMap = getBuiltIn('WeakMap');\n\nvar Node = function () {\n  // keys\n  this.object = null;\n  this.symbol = null;\n  // child nodes\n  this.primitives = null;\n  this.objectsByIndex = create(null);\n};\n\nNode.prototype.get = function (key, initializer) {\n  return this[key] || (this[key] = initializer());\n};\n\nNode.prototype.next = function (i, it, IS_OBJECT) {\n  var store = IS_OBJECT\n    ? this.objectsByIndex[i] || (this.objectsByIndex[i] = new WeakMap())\n    : this.primitives || (this.primitives = new Map());\n  var entry = store.get(it);\n  if (!entry) store.set(it, entry = new Node());\n  return entry;\n};\n\nvar root = new Node();\n\nmodule.exports = function () {\n  var active = root;\n  var length = arguments.length;\n  var i, it;\n  // for prevent leaking, start from objects\n  for (i = 0; i < length; i++) {\n    if (isObject(it = arguments[i])) active = active.next(i, it, true);\n  }\n  if (this === $Object && active === root) throw new $TypeError('Composite keys must contain a non-primitive component');\n  for (i = 0; i < length; i++) {\n    if (!isObject(it = arguments[i])) active = active.next(i, it, false);\n  } return active;\n};\n\n\n/***/ }),\n/* 344 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\n__webpack_require__(345);\n\n\n/***/ }),\n/* 345 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar collection = __webpack_require__(346);\nvar collectionStrong = __webpack_require__(351);\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n  return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n\n\n/***/ }),\n/* 346 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar uncurryThis = __webpack_require__(6);\nvar isForced = __webpack_require__(71);\nvar defineBuiltIn = __webpack_require__(51);\nvar InternalMetadataModule = __webpack_require__(347);\nvar iterate = __webpack_require__(97);\nvar anInstance = __webpack_require__(144);\nvar isCallable = __webpack_require__(28);\nvar isNullOrUndefined = __webpack_require__(11);\nvar isObject = __webpack_require__(27);\nvar fails = __webpack_require__(8);\nvar checkCorrectnessOfIteration = __webpack_require__(215);\nvar setToStringTag = __webpack_require__(195);\nvar inheritIfRequired = __webpack_require__(79);\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n  var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n  var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var NativeConstructor = globalThis[CONSTRUCTOR_NAME];\n  var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n  var Constructor = NativeConstructor;\n  var exported = {};\n\n  var fixMethod = function (KEY) {\n    var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n    defineBuiltIn(NativePrototype, KEY,\n      KEY === 'add' ? function add(value) {\n        uncurriedNativeMethod(this, value === 0 ? 0 : value);\n        return this;\n      } : KEY === 'delete' ? function (key) {\n        return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n      } : KEY === 'get' ? function get(key) {\n        return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n      } : KEY === 'has' ? function has(key) {\n        return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n      } : function set(key, value) {\n        uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n        return this;\n      }\n    );\n  };\n\n  var REPLACE = isForced(\n    CONSTRUCTOR_NAME,\n    !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n      new NativeConstructor().entries().next();\n    }))\n  );\n\n  if (REPLACE) {\n    // create collection constructor\n    Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n    InternalMetadataModule.enable();\n  } else if (isForced(CONSTRUCTOR_NAME, true)) {\n    var instance = new Constructor();\n    // early implementations not supports chaining\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance;\n    // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n    // most early implementations doesn't supports iterables, most modern - not close it correctly\n    // eslint-disable-next-line no-new -- required for testing\n    var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n    // for early implementations -0 and +0 not the same\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      // V8 ~ Chromium 42- fails only with 5+ elements\n      var $instance = new NativeConstructor();\n      var index = 5;\n      while (index--) $instance[ADDER](index, index);\n      return !$instance.has(-0);\n    });\n\n    if (!ACCEPT_ITERABLES) {\n      Constructor = wrapper(function (dummy, iterable) {\n        anInstance(dummy, NativePrototype);\n        var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n        if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n        return that;\n      });\n      Constructor.prototype = NativePrototype;\n      NativePrototype.constructor = Constructor;\n    }\n\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n    // weak collections should not contains .clear method\n    if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n  }\n\n  exported[CONSTRUCTOR_NAME] = Constructor;\n  $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported);\n\n  setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n  if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n  return Constructor;\n};\n\n\n/***/ }),\n/* 347 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar hiddenKeys = __webpack_require__(58);\nvar isObject = __webpack_require__(27);\nvar hasOwn = __webpack_require__(5);\nvar defineProperty = __webpack_require__(23).f;\nvar getOwnPropertyNamesModule = __webpack_require__(61);\nvar getOwnPropertyNamesExternalModule = __webpack_require__(348);\nvar isExtensible = __webpack_require__(349);\nvar uid = __webpack_require__(18);\nvar FREEZING = __webpack_require__(179);\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n  defineProperty(it, METADATA, { value: {\n    objectID: 'O' + id++, // object ID\n    weakData: {}          // weak collections IDs\n  } });\n};\n\nvar fastKey = function (it, create) {\n  // return a primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!hasOwn(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMetadata(it);\n  // return object ID\n  } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n  if (!hasOwn(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMetadata(it);\n  // return the store of weak collections IDs\n  } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n  return it;\n};\n\nvar enable = function () {\n  meta.enable = function () { /* empty */ };\n  REQUIRED = true;\n  var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n  var splice = uncurryThis([].splice);\n  var test = {};\n  // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n  test[METADATA] = 1;\n\n  // prevent exposing of metadata key\n  if (getOwnPropertyNames(test).length) {\n    getOwnPropertyNamesModule.f = function (it) {\n      var result = getOwnPropertyNames(it);\n      for (var i = 0, length = result.length; i < length; i++) {\n        if (result[i] === METADATA) {\n          splice(result, i, 1);\n          break;\n        }\n      } return result;\n    };\n\n    $({ target: 'Object', stat: true, forced: true }, {\n      getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n    });\n  }\n};\n\nvar meta = module.exports = {\n  enable: enable,\n  fastKey: fastKey,\n  getWeakData: getWeakData,\n  onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n\n\n/***/ }),\n/* 348 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = __webpack_require__(46);\nvar toIndexedObject = __webpack_require__(44);\nvar $getOwnPropertyNames = __webpack_require__(61).f;\nvar arraySlice = __webpack_require__(181);\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return $getOwnPropertyNames(it);\n  } catch (error) {\n    return arraySlice(windowNames);\n  }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && classof(it) === 'Window'\n    ? getWindowNames(it)\n    : $getOwnPropertyNames(toIndexedObject(it));\n};\n\n\n/***/ }),\n/* 349 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(8);\nvar isObject = __webpack_require__(27);\nvar classof = __webpack_require__(46);\nvar ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(350);\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n  if (!isObject(it)) return false;\n  if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n  return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n\n\n/***/ }),\n/* 350 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = __webpack_require__(8);\n\nmodule.exports = fails(function () {\n  if (typeof ArrayBuffer == 'function') {\n    var buffer = new ArrayBuffer(8);\n    // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n    if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n  }\n});\n\n\n/***/ }),\n/* 351 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(93);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar defineBuiltIns = __webpack_require__(145);\nvar bind = __webpack_require__(98);\nvar anInstance = __webpack_require__(144);\nvar isNullOrUndefined = __webpack_require__(11);\nvar iterate = __webpack_require__(97);\nvar defineIterator = __webpack_require__(352);\nvar createIterResultObject = __webpack_require__(151);\nvar setSpecies = __webpack_require__(196);\nvar DESCRIPTORS = __webpack_require__(24);\nvar fastKey = __webpack_require__(347).fastKey;\nvar InternalStateModule = __webpack_require__(55);\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var Constructor = wrapper(function (that, iterable) {\n      anInstance(that, Prototype);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        index: create(null),\n        first: null,\n        last: null,\n        size: 0\n      });\n      if (!DESCRIPTORS) that.size = 0;\n      if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n    });\n\n    var Prototype = Constructor.prototype;\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var entry = getEntry(that, key);\n      var previous, index;\n      // change existing entry\n      if (entry) {\n        entry.value = value;\n      // create new entry\n      } else {\n        state.last = entry = {\n          index: index = fastKey(key, true),\n          key: key,\n          value: value,\n          previous: previous = state.last,\n          next: null,\n          removed: false\n        };\n        if (!state.first) state.first = entry;\n        if (previous) previous.next = entry;\n        if (DESCRIPTORS) state.size++;\n        else that.size++;\n        // add to index\n        if (index !== 'F') state.index[index] = entry;\n      } return that;\n    };\n\n    var getEntry = function (that, key) {\n      var state = getInternalState(that);\n      // fast case\n      var index = fastKey(key);\n      var entry;\n      if (index !== 'F') return state.index[index];\n      // frozen object case\n      for (entry = state.first; entry; entry = entry.next) {\n        if (entry.key === key) return entry;\n      }\n    };\n\n    defineBuiltIns(Prototype, {\n      // `{ Map, Set }.prototype.clear()` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.clear\n      // https://tc39.es/ecma262/#sec-set.prototype.clear\n      clear: function clear() {\n        var that = this;\n        var state = getInternalState(that);\n        var entry = state.first;\n        while (entry) {\n          entry.removed = true;\n          if (entry.previous) entry.previous = entry.previous.next = null;\n          entry = entry.next;\n        }\n        state.first = state.last = null;\n        state.index = create(null);\n        if (DESCRIPTORS) state.size = 0;\n        else that.size = 0;\n      },\n      // `{ Map, Set }.prototype.delete(key)` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.delete\n      // https://tc39.es/ecma262/#sec-set.prototype.delete\n      'delete': function (key) {\n        var that = this;\n        var state = getInternalState(that);\n        var entry = getEntry(that, key);\n        if (entry) {\n          var next = entry.next;\n          var prev = entry.previous;\n          delete state.index[entry.index];\n          entry.removed = true;\n          if (prev) prev.next = next;\n          if (next) next.previous = prev;\n          if (state.first === entry) state.first = next;\n          if (state.last === entry) state.last = prev;\n          if (DESCRIPTORS) state.size--;\n          else that.size--;\n        } return !!entry;\n      },\n      // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.foreach\n      // https://tc39.es/ecma262/#sec-set.prototype.foreach\n      forEach: function forEach(callbackfn /* , that = undefined */) {\n        var state = getInternalState(this);\n        var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n        var entry;\n        while (entry = entry ? entry.next : state.first) {\n          boundFunction(entry.value, entry.key, this);\n          // revert to the last existing entry\n          while (entry && entry.removed) entry = entry.previous;\n        }\n      },\n      // `{ Map, Set}.prototype.has(key)` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.has\n      // https://tc39.es/ecma262/#sec-set.prototype.has\n      has: function has(key) {\n        return !!getEntry(this, key);\n      }\n    });\n\n    defineBuiltIns(Prototype, IS_MAP ? {\n      // `Map.prototype.get(key)` method\n      // https://tc39.es/ecma262/#sec-map.prototype.get\n      get: function get(key) {\n        var entry = getEntry(this, key);\n        return entry && entry.value;\n      },\n      // `Map.prototype.set(key, value)` method\n      // https://tc39.es/ecma262/#sec-map.prototype.set\n      set: function set(key, value) {\n        return define(this, key === 0 ? 0 : key, value);\n      }\n    } : {\n      // `Set.prototype.add(value)` method\n      // https://tc39.es/ecma262/#sec-set.prototype.add\n      add: function add(value) {\n        return define(this, value = value === 0 ? 0 : value, value);\n      }\n    });\n    if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n      configurable: true,\n      get: function () {\n        return getInternalState(this).size;\n      }\n    });\n    return Constructor;\n  },\n  setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n    var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n    var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n    var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n    // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n    // https://tc39.es/ecma262/#sec-map.prototype.entries\n    // https://tc39.es/ecma262/#sec-map.prototype.keys\n    // https://tc39.es/ecma262/#sec-map.prototype.values\n    // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n    // https://tc39.es/ecma262/#sec-set.prototype.entries\n    // https://tc39.es/ecma262/#sec-set.prototype.keys\n    // https://tc39.es/ecma262/#sec-set.prototype.values\n    // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n    defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n      setInternalState(this, {\n        type: ITERATOR_NAME,\n        target: iterated,\n        state: getInternalCollectionState(iterated),\n        kind: kind,\n        last: null\n      });\n    }, function () {\n      var state = getInternalIteratorState(this);\n      var kind = state.kind;\n      var entry = state.last;\n      // revert to the last existing entry\n      while (entry && entry.removed) entry = entry.previous;\n      // get next entry\n      if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n        // or finish the iteration\n        state.target = null;\n        return createIterResultObject(undefined, true);\n      }\n      // return step by kind\n      if (kind === 'keys') return createIterResultObject(entry.key, false);\n      if (kind === 'values') return createIterResultObject(entry.value, false);\n      return createIterResultObject([entry.key, entry.value], false);\n    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n    // `{ Map, Set }.prototype[@@species]` accessors\n    // https://tc39.es/ecma262/#sec-get-map-@@species\n    // https://tc39.es/ecma262/#sec-get-set-@@species\n    setSpecies(CONSTRUCTOR_NAME);\n  }\n};\n\n\n/***/ }),\n/* 352 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar IS_PURE = __webpack_require__(16);\nvar FunctionName = __webpack_require__(53);\nvar isCallable = __webpack_require__(28);\nvar createIteratorConstructor = __webpack_require__(341);\nvar getPrototypeOf = __webpack_require__(91);\nvar setPrototypeOf = __webpack_require__(74);\nvar setToStringTag = __webpack_require__(195);\nvar createNonEnumerableProperty = __webpack_require__(50);\nvar defineBuiltIn = __webpack_require__(51);\nvar wellKnownSymbol = __webpack_require__(13);\nvar Iterators = __webpack_require__(101);\nvar IteratorsCore = __webpack_require__(148);\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    }\n\n    return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n          defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n  if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n      createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n    } else {\n      INCORRECT_VALUES_NAME = true;\n      defaultIterator = function values() { return call(nativeIterator, this); };\n    }\n  }\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n  }\n  Iterators[NAME] = defaultIterator;\n\n  return methods;\n};\n\n\n/***/ }),\n/* 353 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\n__webpack_require__(354);\n\n\n/***/ }),\n/* 354 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar FREEZING = __webpack_require__(179);\nvar globalThis = __webpack_require__(2);\nvar uncurryThis = __webpack_require__(6);\nvar defineBuiltIns = __webpack_require__(145);\nvar InternalMetadataModule = __webpack_require__(347);\nvar collection = __webpack_require__(346);\nvar collectionWeak = __webpack_require__(355);\nvar isObject = __webpack_require__(27);\nvar enforceInternalState = __webpack_require__(55).enforce;\nvar fails = __webpack_require__(8);\nvar NATIVE_WEAK_MAP = __webpack_require__(56);\n\nvar $Object = Object;\n// eslint-disable-next-line es/no-array-isarray -- safe\nvar isArray = Array.isArray;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = $Object.isExtensible;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = $Object.isFrozen;\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar isSealed = $Object.isSealed;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = $Object.freeze;\n// eslint-disable-next-line es/no-object-seal -- safe\nvar seal = $Object.seal;\n\nvar IS_IE11 = !globalThis.ActiveXObject && 'ActiveXObject' in globalThis;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n  return function WeakMap() {\n    return init(this, arguments.length ? arguments[0] : undefined);\n  };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\nvar WeakMapPrototype = $WeakMap.prototype;\nvar nativeSet = uncurryThis(WeakMapPrototype.set);\n\n// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them\nvar hasMSEdgeFreezingBug = function () {\n  return FREEZING && fails(function () {\n    var frozenArray = freeze([]);\n    nativeSet(new $WeakMap(), frozenArray, 1);\n    return !isFrozen(frozenArray);\n  });\n};\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP) if (IS_IE11) {\n  InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n  InternalMetadataModule.enable();\n  var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n  var nativeHas = uncurryThis(WeakMapPrototype.has);\n  var nativeGet = uncurryThis(WeakMapPrototype.get);\n  defineBuiltIns(WeakMapPrototype, {\n    'delete': function (key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeDelete(this, key) || state.frozen['delete'](key);\n      } return nativeDelete(this, key);\n    },\n    has: function has(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas(this, key) || state.frozen.has(key);\n      } return nativeHas(this, key);\n    },\n    get: function get(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n      } return nativeGet(this, key);\n    },\n    set: function set(key, value) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n      } else nativeSet(this, key, value);\n      return this;\n    }\n  });\n// Chakra Edge frozen keys fix\n} else if (hasMSEdgeFreezingBug()) {\n  defineBuiltIns(WeakMapPrototype, {\n    set: function set(key, value) {\n      var arrayIntegrityLevel;\n      if (isArray(key)) {\n        if (isFrozen(key)) arrayIntegrityLevel = freeze;\n        else if (isSealed(key)) arrayIntegrityLevel = seal;\n      }\n      nativeSet(this, key, value);\n      if (arrayIntegrityLevel) arrayIntegrityLevel(key);\n      return this;\n    }\n  });\n}\n\n\n/***/ }),\n/* 355 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar defineBuiltIns = __webpack_require__(145);\nvar getWeakData = __webpack_require__(347).getWeakData;\nvar anInstance = __webpack_require__(144);\nvar anObject = __webpack_require__(30);\nvar isNullOrUndefined = __webpack_require__(11);\nvar isObject = __webpack_require__(27);\nvar iterate = __webpack_require__(97);\nvar ArrayIterationModule = __webpack_require__(303);\nvar hasOwn = __webpack_require__(5);\nvar InternalStateModule = __webpack_require__(55);\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n  return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n  this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n  return find(store.entries, function (it) {\n    return it[0] === key;\n  });\n};\n\nUncaughtFrozenStore.prototype = {\n  get: function (key) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) return entry[1];\n  },\n  has: function (key) {\n    return !!findUncaughtFrozen(this, key);\n  },\n  set: function (key, value) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) entry[1] = value;\n    else this.entries.push([key, value]);\n  },\n  'delete': function (key) {\n    var index = findIndex(this.entries, function (it) {\n      return it[0] === key;\n    });\n    if (~index) splice(this.entries, index, 1);\n    return !!~index;\n  }\n};\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var Constructor = wrapper(function (that, iterable) {\n      anInstance(that, Prototype);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        id: id++,\n        frozen: null\n      });\n      if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n    });\n\n    var Prototype = Constructor.prototype;\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var data = getWeakData(anObject(key), true);\n      if (data === true) uncaughtFrozenStore(state).set(key, value);\n      else data[state.id] = value;\n      return that;\n    };\n\n    defineBuiltIns(Prototype, {\n      // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n      // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n      'delete': function (key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n        return data && hasOwn(data, state.id) && delete data[state.id];\n      },\n      // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n      // https://tc39.es/ecma262/#sec-weakset.prototype.has\n      has: function has(key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state).has(key);\n        return data && hasOwn(data, state.id);\n      }\n    });\n\n    defineBuiltIns(Prototype, IS_MAP ? {\n      // `WeakMap.prototype.get(key)` method\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n      get: function get(key) {\n        var state = getInternalState(this);\n        if (isObject(key)) {\n          var data = getWeakData(key);\n          if (data === true) return uncaughtFrozenStore(state).get(key);\n          if (data) return data[state.id];\n        }\n      },\n      // `WeakMap.prototype.set(key, value)` method\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n      set: function set(key, value) {\n        return define(this, key, value);\n      }\n    } : {\n      // `WeakSet.prototype.add(value)` method\n      // https://tc39.es/ecma262/#sec-weakset.prototype.add\n      add: function add(value) {\n        return define(this, value, true);\n      }\n    });\n\n    return Constructor;\n  }\n};\n\n\n/***/ }),\n/* 356 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar getCompositeKeyNode = __webpack_require__(343);\nvar getBuiltIn = __webpack_require__(35);\nvar apply = __webpack_require__(72);\n\n// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey\n$({ global: true, forced: true }, {\n  compositeSymbol: function compositeSymbol() {\n    if (arguments.length === 1 && typeof arguments[0] == 'string') return getBuiltIn('Symbol')['for'](arguments[0]);\n    return apply(getCompositeKeyNode, null, arguments).get('symbol', getBuiltIn('Symbol'));\n  }\n});\n\n\n/***/ }),\n/* 357 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar getUint8 = uncurryThis(DataView.prototype.getUint8);\n\n// `DataView.prototype.getUint8Clamped` method\n// https://github.com/tc39/proposal-dataview-get-set-uint8clamped\n$({ target: 'DataView', proto: true, forced: true }, {\n  getUint8Clamped: function getUint8Clamped(byteOffset) {\n    return getUint8(this, byteOffset);\n  }\n});\n\n\n/***/ }),\n/* 358 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar aDataView = __webpack_require__(125);\nvar toIndex = __webpack_require__(126);\nvar toUint8Clamped = __webpack_require__(359);\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar setUint8 = uncurryThis(DataView.prototype.setUint8);\n\n// `DataView.prototype.setUint8Clamped` method\n// https://github.com/tc39/proposal-dataview-get-set-uint8clamped\n$({ target: 'DataView', proto: true, forced: true }, {\n  setUint8Clamped: function setUint8Clamped(byteOffset, value) {\n    setUint8(\n      aDataView(this),\n      toIndex(byteOffset),\n      toUint8Clamped(value)\n    );\n  }\n});\n\n\n/***/ }),\n/* 359 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar floor = Math.floor;\n\n// https://tc39.es/ecma262/#sec-touint8clamp\nmodule.exports = function (it) {\n  var number = +it;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (number !== number || number <= 0) return 0;\n  if (number >= 0xFF) return 0xFF;\n  var f = floor(number);\n  if (f + 0.5 < number) return f + 1;\n  if (number < f + 0.5) return f;\n  // round-half-to-even (banker's rounding)\n  return f % 2 === 0 ? f : f + 1;\n};\n\n\n/***/ }),\n/* 360 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar demethodize = __webpack_require__(361);\n\n// `Function.prototype.demethodize` method\n// https://github.com/js-choi/proposal-function-demethodize\n$({ target: 'Function', proto: true, forced: true }, {\n  demethodize: demethodize\n});\n\n\n/***/ }),\n/* 361 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar aCallable = __webpack_require__(38);\n\nmodule.exports = function demethodize() {\n  return uncurryThis(aCallable(this));\n};\n\n\n/***/ }),\n/* 362 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar $isCallable = __webpack_require__(28);\nvar inspectSource = __webpack_require__(54);\nvar hasOwn = __webpack_require__(5);\nvar DESCRIPTORS = __webpack_require__(24);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar classRegExp = /^\\s*class\\b/;\nvar exec = uncurryThis(classRegExp.exec);\n\nvar isClassConstructor = function (argument) {\n  try {\n    // `Function#toString` throws on some built-it function in some legacy engines\n    // (for example, `DOMQuad` and similar in FF41-)\n    if (!DESCRIPTORS || !exec(classRegExp, inspectSource(argument))) return false;\n  } catch (error) { /* empty */ }\n  var prototype = getOwnPropertyDescriptor(argument, 'prototype');\n  return !!prototype && hasOwn(prototype, 'writable') && !prototype.writable;\n};\n\n// `Function.isCallable` method\n// https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md\n$({ target: 'Function', stat: true, sham: true, forced: true }, {\n  isCallable: function isCallable(argument) {\n    return $isCallable(argument) && !isClassConstructor(argument);\n  }\n});\n\n\n/***/ }),\n/* 363 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar isConstructor = __webpack_require__(199);\n\n// `Function.isConstructor` method\n// https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md\n$({ target: 'Function', stat: true, forced: true }, {\n  isConstructor: isConstructor\n});\n\n\n/***/ }),\n/* 364 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar wellKnownSymbol = __webpack_require__(13);\nvar defineProperty = __webpack_require__(23).f;\n\nvar METADATA = wellKnownSymbol('metadata');\nvar FunctionPrototype = Function.prototype;\n\n// Function.prototype[@@metadata]\n// https://github.com/tc39/proposal-decorator-metadata\nif (FunctionPrototype[METADATA] === undefined) {\n  defineProperty(FunctionPrototype, METADATA, {\n    value: null\n  });\n}\n\n\n/***/ }),\n/* 365 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar demethodize = __webpack_require__(361);\n\n// `Function.prototype.unThis` method\n// https://github.com/js-choi/proposal-function-demethodize\n// TODO: Remove from `core-js@4`\n$({ target: 'Function', proto: true, forced: true, name: 'demethodize' }, {\n  unThis: demethodize\n});\n\n\n/***/ }),\n/* 366 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar indexed = __webpack_require__(367);\n\n// `Iterator.prototype.asIndexedPairs` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', name: 'indexed', proto: true, real: true, forced: true }, {\n  asIndexedPairs: indexed\n});\n\n\n/***/ }),\n/* 367 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(168);\nvar call = __webpack_require__(33);\nvar map = __webpack_require__(148).IteratorPrototype.map;\n\nvar callback = function (value, counter) {\n  return [counter, value];\n};\n\n// `Iterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function indexed() {\n  return call(map, this, callback);\n};\n\n\n/***/ }),\n/* 368 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar anObject = __webpack_require__(30);\nvar call = __webpack_require__(33);\nvar createIteratorProxy = __webpack_require__(150);\nvar getIteratorDirect = __webpack_require__(155);\nvar iteratorClose = __webpack_require__(104);\nvar uncurryThis = __webpack_require__(6);\n\nvar $RangeError = RangeError;\nvar push = uncurryThis([].push);\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var next = this.next;\n  var chunkSize = this.chunkSize;\n  var buffer = [];\n  var result, done;\n  while (true) {\n    result = anObject(call(next, iterator));\n    done = !!result.done;\n    if (done) {\n      if (buffer.length) return buffer;\n      this.done = true;\n      return;\n    }\n    push(buffer, result.value);\n    if (buffer.length === chunkSize) return buffer;\n  }\n});\n\n// `Iterator.prototype.chunks` method\n// https://github.com/tc39/proposal-iterator-chunking\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n  chunks: function chunks(chunkSize) {\n    var O = anObject(this);\n    if (typeof chunkSize != 'number' || !chunkSize || chunkSize >>> 0 !== chunkSize) {\n      return iteratorClose(O, 'throw', new $RangeError('chunkSize must be integer in [1, 2^32-1]'));\n    }\n    return new IteratorProxy(getIteratorDirect(O), {\n      chunkSize: chunkSize\n    });\n  }\n});\n\n\n/***/ }),\n/* 369 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar indexed = __webpack_require__(367);\n\n// `Iterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n  indexed: indexed\n});\n\n\n/***/ }),\n/* 370 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* eslint-disable es/no-bigint -- safe */\nvar $ = __webpack_require__(49);\nvar NumericRangeIterator = __webpack_require__(340);\n\nvar $TypeError = TypeError;\n\n// `Iterator.range` method\n// https://github.com/tc39/proposal-iterator.range\n$({ target: 'Iterator', stat: true, forced: true }, {\n  range: function range(start, end, option) {\n    if (typeof start == 'number') return new NumericRangeIterator(start, end, option, 'number', 0, 1);\n    if (typeof start == 'bigint') return new NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1));\n    throw new $TypeError('Incorrect Iterator.range arguments');\n  }\n});\n\n\n/***/ }),\n/* 371 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar iteratorWindow = __webpack_require__(372);\n\n// `Iterator.prototype.sliding` method\n// https://github.com/tc39/proposal-iterator-chunking\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n  sliding: function sliding(windowSize) {\n    return iteratorWindow(this, windowSize, 'allow-partial');\n  }\n});\n\n\n/***/ }),\n/* 372 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(30);\nvar call = __webpack_require__(33);\nvar createIteratorProxy = __webpack_require__(150);\nvar createIterResultObject = __webpack_require__(151);\nvar getIteratorDirect = __webpack_require__(155);\nvar iteratorClose = __webpack_require__(104);\nvar uncurryThis = __webpack_require__(6);\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar push = uncurryThis([].push);\nvar slice = uncurryThis([].slice);\nvar ALLOW_PARTIAL = 'allow-partial';\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var next = this.next;\n  var buffer = this.buffer;\n  var windowSize = this.windowSize;\n  var allowPartial = this.allowPartial;\n  var result, done;\n  while (true) {\n    result = anObject(call(next, iterator));\n    done = this.done = !!result.done;\n    if (allowPartial && done && buffer.length && buffer.length < windowSize) return createIterResultObject(slice(buffer, 0), false);\n    if (done) return createIterResultObject(undefined, true);\n\n    if (buffer.length === windowSize) this.buffer = buffer = slice(buffer, 1);\n    push(buffer, result.value);\n    if (buffer.length === windowSize) return createIterResultObject(slice(buffer, 0), false);\n  }\n}, false, true);\n\n// `Iterator.prototype.windows` and obsolete `Iterator.prototype.sliding` methods\n// https://github.com/tc39/proposal-iterator-chunking\nmodule.exports = function (O, windowSize, undersized) {\n  anObject(O);\n  if (typeof windowSize != 'number' || !windowSize || windowSize >>> 0 !== windowSize) {\n    return iteratorClose(O, 'throw', new $RangeError('`windowSize` must be integer in [1, 2^32-1]'));\n  }\n  if (undersized !== undefined && undersized !== 'only-full' && undersized !== ALLOW_PARTIAL) {\n    return iteratorClose(O, 'throw', new $TypeError('Incorrect `undersized` argument'));\n  }\n  return new IteratorProxy(getIteratorDirect(O), {\n    windowSize: windowSize,\n    buffer: [],\n    allowPartial: undersized === ALLOW_PARTIAL\n  });\n};\n\n\n/***/ }),\n/* 373 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar anObject = __webpack_require__(30);\nvar AsyncFromSyncIterator = __webpack_require__(229);\nvar WrapAsyncIterator = __webpack_require__(332);\nvar getIteratorDirect = __webpack_require__(155);\n\n// `Iterator.prototype.toAsync` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n  toAsync: function toAsync() {\n    return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(getIteratorDirect(anObject(this)))));\n  }\n});\n\n\n/***/ }),\n/* 374 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar iteratorWindow = __webpack_require__(372);\n\n// `Iterator.prototype.windows` method\n// https://github.com/tc39/proposal-iterator-chunking\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n  windows: function windows(windowSize /* , undersized */) {\n    return iteratorWindow(this, windowSize, arguments.length < 2 ? undefined : arguments[1]);\n  }\n});\n\n\n/***/ }),\n/* 375 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar anObject = __webpack_require__(30);\nvar anObjectOrUndefined = __webpack_require__(287);\nvar call = __webpack_require__(33);\nvar uncurryThis = __webpack_require__(6);\nvar getIteratorRecord = __webpack_require__(376);\nvar getIteratorFlattenable = __webpack_require__(165);\nvar getModeOption = __webpack_require__(377);\nvar iteratorClose = __webpack_require__(104);\nvar iteratorCloseAll = __webpack_require__(152);\nvar iteratorZip = __webpack_require__(378);\nvar IS_PURE = __webpack_require__(16);\n\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar THROW = 'throw';\n\n// `Iterator.zip` method\n// https://github.com/tc39/proposal-joint-iteration\n$({ target: 'Iterator', stat: true, forced: IS_PURE }, {\n  zip: function zip(iterables /* , options */) {\n    anObject(iterables);\n    var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;\n    var mode = getModeOption(options);\n    var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;\n\n    var iters = [];\n    var padding = [];\n    var inputIter = getIteratorRecord(iterables);\n    var iter, done, next;\n    while (!done) {\n      try {\n        next = anObject(call(inputIter.next, inputIter.iterator));\n        done = next.done;\n      } catch (error) {\n        return iteratorCloseAll(iters, THROW, error);\n      }\n      if (!done) {\n        try {\n          iter = getIteratorFlattenable(next.value, false);\n        } catch (error) {\n          return iteratorCloseAll(concat([inputIter], iters), THROW, error);\n        }\n        push(iters, iter);\n      }\n    }\n\n    var iterCount = iters.length;\n    var i, paddingDone, paddingIter;\n    if (mode === 'longest') {\n      if (paddingOption === undefined) {\n        for (i = 0; i < iterCount; i++) push(padding, undefined);\n      } else {\n        try {\n          paddingIter = getIteratorRecord(paddingOption);\n        } catch (error) {\n          return iteratorCloseAll(iters, THROW, error);\n        }\n        var usingIterator = true;\n        for (i = 0; i < iterCount; i++) {\n          if (usingIterator) {\n            try {\n              next = anObject(call(paddingIter.next, paddingIter.iterator));\n              paddingDone = next.done;\n              next = next.value;\n            } catch (error) {\n              return iteratorCloseAll(iters, THROW, error);\n            }\n            if (paddingDone) {\n              usingIterator = false;\n            } else {\n              push(padding, next);\n            }\n          } else {\n            push(padding, undefined);\n          }\n        }\n\n        if (usingIterator) {\n          try {\n            iteratorClose(paddingIter.iterator, 'normal');\n          } catch (error) {\n            return iteratorCloseAll(iters, THROW, error);\n          }\n        }\n      }\n    }\n\n    return iteratorZip(iters, mode, padding);\n  }\n});\n\n\n/***/ }),\n/* 376 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getIterator = __webpack_require__(102);\nvar getIteratorDirect = __webpack_require__(155);\n\nmodule.exports = function (argument) {\n  return getIteratorDirect(getIterator(argument));\n};\n\n\n/***/ }),\n/* 377 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (options) {\n  var mode = options && options.mode;\n  if (mode === undefined || mode === 'shortest' || mode === 'longest' || mode === 'strict') return mode || 'shortest';\n  throw new $TypeError('Incorrect `mode` option');\n};\n\n\n/***/ }),\n/* 378 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(33);\nvar uncurryThis = __webpack_require__(6);\nvar anObject = __webpack_require__(30);\nvar createIteratorProxy = __webpack_require__(150);\nvar iteratorCloseAll = __webpack_require__(152);\n\nvar $TypeError = TypeError;\nvar slice = uncurryThis([].slice);\nvar push = uncurryThis([].push);\nvar ITERATOR_IS_EXHAUSTED = 'Iterator is exhausted';\nvar THROW = 'throw';\n\n// eslint-disable-next-line max-statements -- specification case\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterCount = this.iterCount;\n  if (!iterCount) {\n    this.done = true;\n    return;\n  }\n  var openIters = this.openIters;\n  var iters = this.iters;\n  var padding = this.padding;\n  var mode = this.mode;\n  var finishResults = this.finishResults;\n\n  var results = [];\n  var result, done;\n  for (var i = 0; i < iterCount; i++) {\n    var iter = iters[i];\n    if (iter === null) {\n      result = padding[i];\n    } else {\n      try {\n        result = anObject(call(iter.next, iter.iterator));\n        done = result.done;\n        result = result.value;\n      } catch (error) {\n        openIters[i] = undefined;\n        return iteratorCloseAll(openIters, THROW, error);\n      }\n      if (done) {\n        openIters[i] = undefined;\n        this.openItersCount--;\n        if (mode === 'shortest') {\n          this.done = true;\n          return iteratorCloseAll(openIters, 'normal', undefined);\n        }\n        if (mode === 'strict') {\n          if (i) {\n            return iteratorCloseAll(openIters, THROW, new $TypeError(ITERATOR_IS_EXHAUSTED));\n          }\n\n          var open, openDone;\n          for (var k = 1; k < iterCount; k++) {\n            // eslint-disable-next-line max-depth -- specification case\n            try {\n              open = anObject(call(iters[k].next, iters[k].iterator));\n              openDone = open.done;\n              open = open.value;\n            } catch (error) {\n              openIters[k] = undefined;\n              return iteratorCloseAll(openIters, THROW, error);\n            }\n            // eslint-disable-next-line max-depth -- specification case\n            if (openDone) {\n              openIters[k] = undefined;\n              this.openItersCount--;\n            } else {\n              return iteratorCloseAll(openIters, THROW, new $TypeError(ITERATOR_IS_EXHAUSTED));\n            }\n          }\n          this.done = true;\n          return;\n        }\n        if (!this.openItersCount) {\n          this.done = true;\n          return;\n        }\n        iters[i] = null;\n        result = padding[i];\n      }\n    }\n    push(results, result);\n  }\n\n  return finishResults ? finishResults(results) : results;\n});\n\nmodule.exports = function (iters, mode, padding, finishResults) {\n  var iterCount = iters.length;\n  return new IteratorProxy({\n    iters: iters,\n    iterCount: iterCount,\n    openIters: slice(iters, 0),\n    openItersCount: iterCount,\n    mode: mode,\n    padding: padding,\n    finishResults: finishResults\n  });\n};\n\n\n/***/ }),\n/* 379 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar anObject = __webpack_require__(30);\nvar anObjectOrUndefined = __webpack_require__(287);\nvar createProperty = __webpack_require__(117);\nvar call = __webpack_require__(33);\nvar uncurryThis = __webpack_require__(6);\nvar getBuiltIn = __webpack_require__(35);\nvar propertyIsEnumerableModule = __webpack_require__(42);\nvar getIteratorFlattenable = __webpack_require__(165);\nvar getModeOption = __webpack_require__(377);\nvar iteratorCloseAll = __webpack_require__(152);\nvar iteratorZip = __webpack_require__(378);\nvar IS_PURE = __webpack_require__(16);\n\nvar create = getBuiltIn('Object', 'create');\nvar ownKeys = getBuiltIn('Reflect', 'ownKeys');\nvar push = uncurryThis([].push);\nvar THROW = 'throw';\n\n// `Iterator.zipKeyed` method\n// https://github.com/tc39/proposal-joint-iteration\n$({ target: 'Iterator', stat: true, forced: IS_PURE }, {\n  zipKeyed: function zipKeyed(iterables /* , options */) {\n    anObject(iterables);\n    var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;\n    var mode = getModeOption(options);\n    var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;\n\n    var iters = [];\n    var padding = [];\n    var allKeys = ownKeys(iterables);\n    var keys = [];\n    var propertyIsEnumerable = propertyIsEnumerableModule.f;\n    var i, key, value;\n    for (i = 0; i < allKeys.length; i++) try {\n      key = allKeys[i];\n      if (!call(propertyIsEnumerable, iterables, key)) continue;\n      value = iterables[key];\n      if (value !== undefined) {\n        push(keys, key);\n        push(iters, getIteratorFlattenable(value, false));\n      }\n    } catch (error) {\n      return iteratorCloseAll(iters, THROW, error);\n    }\n\n    var iterCount = iters.length;\n    if (mode === 'longest') {\n      if (paddingOption === undefined) {\n        for (i = 0; i < iterCount; i++) push(padding, undefined);\n      } else {\n        for (i = 0; i < keys.length; i++) {\n          try {\n            value = paddingOption[keys[i]];\n          } catch (error) {\n            return iteratorCloseAll(iters, THROW, error);\n          }\n          push(padding, value);\n        }\n      }\n    }\n\n    return iteratorZip(iters, mode, padding, function (results) {\n      var obj = create(null);\n      for (var j = 0; j < iterCount; j++) {\n        createProperty(obj, keys[j], results[j]);\n      }\n      return obj;\n    });\n  }\n});\n\n\n/***/ }),\n/* 380 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aMap = __webpack_require__(381);\nvar remove = __webpack_require__(183).remove;\n\n// `Map.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  deleteAll: function deleteAll(/* ...elements */) {\n    var collection = aMap(this);\n    var allDeleted = true;\n    var wasDeleted;\n    for (var k = 0, len = arguments.length; k < len; k++) {\n      wasDeleted = remove(collection, arguments[k]);\n      allDeleted = allDeleted && wasDeleted;\n    } return !!allDeleted;\n  }\n});\n\n\n/***/ }),\n/* 381 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar has = __webpack_require__(183).has;\n\n// Perform ? RequireInternalSlot(M, [[MapData]])\nmodule.exports = function (it) {\n  has(it);\n  return it;\n};\n\n\n/***/ }),\n/* 382 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aMap = __webpack_require__(381);\nvar MapHelpers = __webpack_require__(183);\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.emplace` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  emplace: function emplace(key, handler) {\n    var map = aMap(this);\n    var value, inserted;\n    if (has(map, key)) {\n      value = get(map, key);\n      if ('update' in handler) {\n        value = handler.update(value, key, map);\n        set(map, key, value);\n      } return value;\n    }\n    inserted = handler.insert(key, map);\n    set(map, key, inserted);\n    return inserted;\n  }\n});\n\n\n/***/ }),\n/* 383 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar bind = __webpack_require__(98);\nvar aMap = __webpack_require__(381);\nvar iterate = __webpack_require__(318);\n\n// `Map.prototype.every` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  every: function every(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    return iterate(map, function (value, key) {\n      if (!boundFunction(value, key, map)) return false;\n    }, true) !== false;\n  }\n});\n\n\n/***/ }),\n/* 384 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar bind = __webpack_require__(98);\nvar aMap = __webpack_require__(381);\nvar MapHelpers = __webpack_require__(183);\nvar iterate = __webpack_require__(318);\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.filter` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var newMap = new Map();\n    iterate(map, function (value, key) {\n      if (boundFunction(value, key, map)) set(newMap, key, value);\n    });\n    return newMap;\n  }\n});\n\n\n/***/ }),\n/* 385 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar bind = __webpack_require__(98);\nvar aMap = __webpack_require__(381);\nvar iterate = __webpack_require__(318);\n\n// `Map.prototype.find` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  find: function find(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var result = iterate(map, function (value, key) {\n      if (boundFunction(value, key, map)) return { value: value };\n    }, true);\n    return result && result.value;\n  }\n});\n\n\n/***/ }),\n/* 386 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar bind = __webpack_require__(98);\nvar aMap = __webpack_require__(381);\nvar iterate = __webpack_require__(318);\n\n// `Map.prototype.findKey` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  findKey: function findKey(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var result = iterate(map, function (value, key) {\n      if (boundFunction(value, key, map)) return { key: key };\n    }, true);\n    return result && result.key;\n  }\n});\n\n\n/***/ }),\n/* 387 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar MapHelpers = __webpack_require__(183);\nvar createCollectionFrom = __webpack_require__(388);\n\n// `Map.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\n$({ target: 'Map', stat: true, forced: true }, {\n  from: createCollectionFrom(MapHelpers.Map, MapHelpers.set, true)\n});\n\n\n/***/ }),\n/* 388 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://tc39.github.io/proposal-setmap-offrom/\nvar bind = __webpack_require__(98);\nvar anObject = __webpack_require__(30);\nvar toObject = __webpack_require__(9);\nvar iterate = __webpack_require__(97);\n\nmodule.exports = function (C, adder, ENTRY) {\n  return function from(source /* , mapFn, thisArg */) {\n    var O = toObject(source);\n    var length = arguments.length;\n    var mapFn = length > 1 ? arguments[1] : undefined;\n    var mapping = mapFn !== undefined;\n    var boundFunction = mapping ? bind(mapFn, length > 2 ? arguments[2] : undefined) : undefined;\n    var result = new C();\n    var n = 0;\n    iterate(O, function (nextItem) {\n      var entry = mapping ? boundFunction(nextItem, n++) : nextItem;\n      if (ENTRY) adder(result, anObject(entry)[0], entry[1]);\n      else adder(result, entry);\n    });\n    return result;\n  };\n};\n\n\n/***/ }),\n/* 389 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar sameValueZero = __webpack_require__(390);\nvar aMap = __webpack_require__(381);\nvar iterate = __webpack_require__(318);\n\n// `Map.prototype.includes` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  includes: function includes(searchElement) {\n    return iterate(aMap(this), function (value) {\n      if (sameValueZero(value, searchElement)) return true;\n    }, true) === true;\n  }\n});\n\n\n/***/ }),\n/* 390 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// `SameValueZero` abstract operation\n// https://tc39.es/ecma262/#sec-samevaluezero\nmodule.exports = function (x, y) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return x === y || x !== x && y !== y;\n};\n\n\n/***/ }),\n/* 391 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar iterate = __webpack_require__(97);\nvar isCallable = __webpack_require__(28);\nvar aCallable = __webpack_require__(38);\nvar Map = __webpack_require__(183).Map;\n\n// `Map.keyBy` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', stat: true, forced: true }, {\n  keyBy: function keyBy(iterable, keyDerivative) {\n    var C = isCallable(this) ? this : Map;\n    var newMap = new C();\n    aCallable(keyDerivative);\n    var setter = aCallable(newMap.set);\n    iterate(iterable, function (element) {\n      call(setter, newMap, keyDerivative(element), element);\n    });\n    return newMap;\n  }\n});\n\n\n/***/ }),\n/* 392 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aMap = __webpack_require__(381);\nvar iterate = __webpack_require__(318);\n\n// `Map.prototype.keyOf` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  keyOf: function keyOf(searchElement) {\n    var result = iterate(aMap(this), function (value, key) {\n      if (value === searchElement) return { key: key };\n    }, true);\n    return result && result.key;\n  }\n});\n\n\n/***/ }),\n/* 393 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar bind = __webpack_require__(98);\nvar aMap = __webpack_require__(381);\nvar MapHelpers = __webpack_require__(183);\nvar iterate = __webpack_require__(318);\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.mapKeys` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  mapKeys: function mapKeys(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var newMap = new Map();\n    iterate(map, function (value, key) {\n      set(newMap, boundFunction(value, key, map), value);\n    });\n    return newMap;\n  }\n});\n\n\n/***/ }),\n/* 394 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar bind = __webpack_require__(98);\nvar aMap = __webpack_require__(381);\nvar MapHelpers = __webpack_require__(183);\nvar iterate = __webpack_require__(318);\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.mapValues` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  mapValues: function mapValues(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var newMap = new Map();\n    iterate(map, function (value, key) {\n      set(newMap, key, boundFunction(value, key, map));\n    });\n    return newMap;\n  }\n});\n\n\n/***/ }),\n/* 395 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aMap = __webpack_require__(381);\nvar iterate = __webpack_require__(97);\nvar set = __webpack_require__(183).set;\n\n// `Map.prototype.merge` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, arity: 1, forced: true }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  merge: function merge(iterable /* ...iterables */) {\n    var map = aMap(this);\n    var argumentsLength = arguments.length;\n    var i = 0;\n    while (i < argumentsLength) {\n      iterate(arguments[i++], function (key, value) {\n        set(map, key, value);\n      }, { AS_ENTRIES: true });\n    }\n    return map;\n  }\n});\n\n\n/***/ }),\n/* 396 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar MapHelpers = __webpack_require__(183);\nvar createCollectionOf = __webpack_require__(397);\n\n// `Map.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\n$({ target: 'Map', stat: true, forced: true }, {\n  of: createCollectionOf(MapHelpers.Map, MapHelpers.set, true)\n});\n\n\n/***/ }),\n/* 397 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(30);\n\n// https://tc39.github.io/proposal-setmap-offrom/\nmodule.exports = function (C, adder, ENTRY) {\n  return function of() {\n    var result = new C();\n    var length = arguments.length;\n    for (var index = 0; index < length; index++) {\n      var entry = arguments[index];\n      if (ENTRY) adder(result, anObject(entry)[0], entry[1]);\n      else adder(result, entry);\n    } return result;\n  };\n};\n\n\n/***/ }),\n/* 398 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aCallable = __webpack_require__(38);\nvar aMap = __webpack_require__(381);\nvar iterate = __webpack_require__(318);\n\nvar $TypeError = TypeError;\n\n// `Map.prototype.reduce` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    var map = aMap(this);\n    var noInitial = arguments.length < 2;\n    var accumulator = noInitial ? undefined : arguments[1];\n    aCallable(callbackfn);\n    iterate(map, function (value, key) {\n      if (noInitial) {\n        noInitial = false;\n        accumulator = value;\n      } else {\n        accumulator = callbackfn(accumulator, value, key, map);\n      }\n    });\n    if (noInitial) throw new $TypeError('Reduce of empty map with no initial value');\n    return accumulator;\n  }\n});\n\n\n/***/ }),\n/* 399 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar bind = __webpack_require__(98);\nvar aMap = __webpack_require__(381);\nvar iterate = __webpack_require__(318);\n\n// `Map.prototype.some` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  some: function some(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    return iterate(map, function (value, key) {\n      if (boundFunction(value, key, map)) return true;\n    }, true) === true;\n  }\n});\n\n\n/***/ }),\n/* 400 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aCallable = __webpack_require__(38);\nvar aMap = __webpack_require__(381);\nvar MapHelpers = __webpack_require__(183);\n\nvar $TypeError = TypeError;\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.update` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  update: function update(key, callback /* , thunk */) {\n    var map = aMap(this);\n    var length = arguments.length;\n    aCallable(callback);\n    var isPresentInMap = has(map, key);\n    if (!isPresentInMap && length < 3) {\n      throw new $TypeError('Updating absent value');\n    }\n    var value = isPresentInMap ? get(map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map);\n    set(map, key, callback(value, key, map));\n    return map;\n  }\n});\n\n\n/***/ }),\n/* 401 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar clamp = __webpack_require__(402);\n\n// TODO: Remove from `core-js@4`\n// `Math.clamp` method\n// https://github.com/tc39/proposal-math-clamp\n$({ target: 'Math', stat: true, forced: true }, {\n  clamp: clamp\n});\n\n\n/***/ }),\n/* 402 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aNumber = __webpack_require__(403);\n\nvar $min = Math.min;\nvar $max = Math.max;\n\nmodule.exports = function clamp(value, min, max) {\n  return $min($max(aNumber(value), aNumber(min)), aNumber(max));\n};\n\n\n/***/ }),\n/* 403 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (typeof argument == 'number') return argument;\n  throw new $TypeError('Argument is not a number');\n};\n\n\n/***/ }),\n/* 404 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\n\n// `Math.DEG_PER_RAD` constant\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, {\n  DEG_PER_RAD: Math.PI / 180\n});\n\n\n/***/ }),\n/* 405 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\n\nvar RAD_PER_DEG = 180 / Math.PI;\n\n// `Math.degrees` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n  degrees: function degrees(radians) {\n    return radians * RAD_PER_DEG;\n  }\n});\n\n\n/***/ }),\n/* 406 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\n\nvar scale = __webpack_require__(407);\nvar fround = __webpack_require__(408);\n\n// `Math.fscale` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n  fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {\n    return fround(scale(x, inLow, inHigh, outLow, outHigh));\n  }\n});\n\n\n/***/ }),\n/* 407 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// `Math.scale` method implementation\n// https://rwaldron.github.io/proposal-math-extensions/\nmodule.exports = function scale(x, inLow, inHigh, outLow, outHigh) {\n  var nx = +x;\n  var nInLow = +inLow;\n  var nInHigh = +inHigh;\n  var nOutLow = +outLow;\n  var nOutHigh = +outHigh;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (nx !== nx || nInLow !== nInLow || nInHigh !== nInHigh || nOutLow !== nOutLow || nOutHigh !== nOutHigh) return NaN;\n  if (nx === Infinity || nx === -Infinity) return nx;\n  return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow;\n};\n\n\n/***/ }),\n/* 408 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar floatRound = __webpack_require__(187);\n\nvar FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23;\nvar FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104\nvar FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126;\n\n// `Math.fround` method implementation\n// https://tc39.es/ecma262/#sec-math.fround\n// eslint-disable-next-line es/no-math-fround -- safe\nmodule.exports = Math.fround || function fround(x) {\n  return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE);\n};\n\n\n/***/ }),\n/* 409 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\n\n// `Math.RAD_PER_DEG` constant\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, {\n  RAD_PER_DEG: 180 / Math.PI\n});\n\n\n/***/ }),\n/* 410 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\n\nvar DEG_PER_RAD = Math.PI / 180;\n\n// `Math.radians` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n  radians: function radians(degrees) {\n    return degrees * DEG_PER_RAD;\n  }\n});\n\n\n/***/ }),\n/* 411 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar scale = __webpack_require__(407);\n\n// `Math.scale` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n  scale: scale\n});\n\n\n/***/ }),\n/* 412 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\n\n// `Math.signbit` method\n// https://github.com/tc39/proposal-Math.signbit\n$({ target: 'Math', stat: true, forced: true }, {\n  signbit: function signbit(x) {\n    var n = +x;\n    // eslint-disable-next-line no-self-compare -- NaN check\n    return n === n && n === 0 ? 1 / n === -Infinity : n < 0;\n  }\n});\n\n\n/***/ }),\n/* 413 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar $clamp = __webpack_require__(402);\nvar thisNumberValue = __webpack_require__(414);\n\n// `Number.prototype.clamp` method\n// https://github.com/tc39/proposal-math-clamp\n$({ target: 'Number', proto: true, forced: true }, {\n  clamp: function clamp(min, max) {\n    return $clamp(thisNumberValue(this), min, max);\n  }\n});\n\n\n/***/ }),\n/* 414 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.1.valueOf);\n\n\n/***/ }),\n/* 415 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar toIntegerOrInfinity = __webpack_require__(65);\n\nvar INVALID_NUMBER_REPRESENTATION = 'Invalid number representation';\nvar INVALID_RADIX = 'Invalid radix';\nvar $RangeError = RangeError;\nvar $SyntaxError = SyntaxError;\nvar $TypeError = TypeError;\nvar $parseInt = parseInt;\nvar pow = Math.pow;\nvar valid = /^[0-9a-z]+(\\.[0-9a-z]+)?$/;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar exec = uncurryThis(valid.exec);\nvar numberToString = uncurryThis(1.1.toString);\nvar stringSlice = uncurryThis(''.slice);\nvar split = uncurryThis(''.split);\n\nvar validDigitForRadix = function (string, R) {\n  for (var i = 0; i < string.length; i++) {\n    var code = charCodeAt(string, i);\n    // '.' is allowed\n    if (code === 0x2E) continue;\n    // '0'-'9' - digit value 0-9\n    if (code >= 0x30 && code <= 0x39) {\n      if (code - 0x30 >= R) return false;\n    // 'a'-'z' - digit value 10-35\n    } else if (code >= 0x61 && code <= 0x7A) {\n      if (code - 0x61 + 10 >= R) return false;\n    } else return false;\n  }\n  return true;\n};\n\n// `Number.fromString` method\n// https://github.com/tc39/proposal-number-fromstring\n$({ target: 'Number', stat: true, forced: true }, {\n  fromString: function fromString(string, radix) {\n    var sign = 1;\n    if (typeof string != 'string') throw new $TypeError(INVALID_NUMBER_REPRESENTATION);\n    if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n    if (charAt(string, 0) === '-') {\n      sign = -1;\n      string = stringSlice(string, 1);\n      if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n    }\n    var R = radix === undefined ? 10 : toIntegerOrInfinity(radix);\n    if (R < 2 || R > 36) throw new $RangeError(INVALID_RADIX);\n    if (!exec(valid, string) || !validDigitForRadix(string, R)) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n    var parts = split(string, '.');\n    var mathNum = $parseInt(parts[0], R);\n    if (parts.length > 1) mathNum += $parseInt(parts[1], R) / pow(R, parts[1].length);\n    if (R === 10) {\n      var compareString = string;\n      if (parts.length > 1) {\n        var fraction = parts[1];\n        while (fraction.length && charAt(fraction, fraction.length - 1) === '0') {\n          fraction = stringSlice(fraction, 0, -1);\n        }\n        compareString = fraction.length ? parts[0] + '.' + fraction : parts[0];\n      }\n      if (numberToString(mathNum, R) !== compareString) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n    }\n    return sign * mathNum;\n  }\n});\n\n\n/***/ }),\n/* 416 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar NumericRangeIterator = __webpack_require__(340);\n\n// `Number.range` method\n// https://github.com/tc39/proposal-iterator.range\n// TODO: Remove from `core-js@4`\n$({ target: 'Number', stat: true, forced: true }, {\n  range: function range(start, end, option) {\n    return new NumericRangeIterator(start, end, option, 'number', 0, 1);\n  }\n});\n\n\n/***/ }),\n/* 417 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\n__webpack_require__(418);\n__webpack_require__(419);\n__webpack_require__(420);\n\n\n/***/ }),\n/* 418 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/proposal-observable\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar DESCRIPTORS = __webpack_require__(24);\nvar setSpecies = __webpack_require__(196);\nvar aCallable = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar anInstance = __webpack_require__(144);\nvar isCallable = __webpack_require__(28);\nvar isNullOrUndefined = __webpack_require__(11);\nvar isObject = __webpack_require__(27);\nvar getMethod = __webpack_require__(37);\nvar defineBuiltIn = __webpack_require__(51);\nvar defineBuiltIns = __webpack_require__(145);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar hostReportErrors = __webpack_require__(208);\nvar wellKnownSymbol = __webpack_require__(13);\nvar InternalStateModule = __webpack_require__(55);\n\nvar $$OBSERVABLE = wellKnownSymbol('observable');\nvar OBSERVABLE = 'Observable';\nvar SUBSCRIPTION = 'Subscription';\nvar SUBSCRIPTION_OBSERVER = 'SubscriptionObserver';\nvar getterFor = InternalStateModule.getterFor;\nvar setInternalState = InternalStateModule.set;\nvar getObservableInternalState = getterFor(OBSERVABLE);\nvar getSubscriptionInternalState = getterFor(SUBSCRIPTION);\nvar getSubscriptionObserverInternalState = getterFor(SUBSCRIPTION_OBSERVER);\n\nvar SubscriptionState = function (observer) {\n  this.observer = anObject(observer);\n  this.cleanup = null;\n  this.subscriptionObserver = null;\n};\n\nSubscriptionState.prototype = {\n  type: SUBSCRIPTION,\n  clean: function () {\n    var cleanup = this.cleanup;\n    if (cleanup) {\n      this.cleanup = null;\n      try {\n        cleanup();\n      } catch (error) {\n        hostReportErrors(error);\n      }\n    }\n  },\n  close: function () {\n    if (!DESCRIPTORS) {\n      var subscription = this.facade;\n      var subscriptionObserver = this.subscriptionObserver;\n      subscription.closed = true;\n      if (subscriptionObserver) subscriptionObserver.closed = true;\n    } this.observer = null;\n  },\n  isClosed: function () {\n    return this.observer === null;\n  }\n};\n\nvar Subscription = function (observer, subscriber) {\n  var subscriptionState = setInternalState(this, new SubscriptionState(observer));\n  var start;\n  if (!DESCRIPTORS) this.closed = false;\n  try {\n    if (start = getMethod(observer, 'start')) call(start, observer, this);\n  } catch (error) {\n    hostReportErrors(error);\n  }\n  if (subscriptionState.isClosed()) return;\n  var subscriptionObserver = subscriptionState.subscriptionObserver = new SubscriptionObserver(subscriptionState);\n  try {\n    var cleanup = subscriber(subscriptionObserver);\n    var subscription = cleanup;\n    if (!isNullOrUndefined(cleanup)) subscriptionState.cleanup = isCallable(cleanup.unsubscribe)\n      ? function () { subscription.unsubscribe(); }\n      : aCallable(cleanup);\n  } catch (error) {\n    subscriptionObserver.error(error);\n    return;\n  } if (subscriptionState.isClosed()) subscriptionState.clean();\n};\n\nSubscription.prototype = defineBuiltIns({}, {\n  unsubscribe: function unsubscribe() {\n    var subscriptionState = getSubscriptionInternalState(this);\n    if (!subscriptionState.isClosed()) {\n      subscriptionState.close();\n      subscriptionState.clean();\n    }\n  }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(Subscription.prototype, 'closed', {\n  configurable: true,\n  get: function closed() {\n    return getSubscriptionInternalState(this).isClosed();\n  }\n});\n\nvar SubscriptionObserver = function (subscriptionState) {\n  setInternalState(this, {\n    type: SUBSCRIPTION_OBSERVER,\n    subscriptionState: subscriptionState\n  });\n  if (!DESCRIPTORS) this.closed = false;\n};\n\nSubscriptionObserver.prototype = defineBuiltIns({}, {\n  next: function next(value) {\n    var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n    if (!subscriptionState.isClosed()) {\n      var observer = subscriptionState.observer;\n      try {\n        var nextMethod = getMethod(observer, 'next');\n        if (nextMethod) call(nextMethod, observer, value);\n      } catch (error) {\n        hostReportErrors(error);\n      }\n    }\n  },\n  error: function error(value) {\n    var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n    if (!subscriptionState.isClosed()) {\n      var observer = subscriptionState.observer;\n      subscriptionState.close();\n      try {\n        var errorMethod = getMethod(observer, 'error');\n        if (errorMethod) call(errorMethod, observer, value);\n        else hostReportErrors(value);\n      } catch (err) {\n        hostReportErrors(err);\n      } subscriptionState.clean();\n    }\n  },\n  complete: function complete() {\n    var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n    if (!subscriptionState.isClosed()) {\n      var observer = subscriptionState.observer;\n      subscriptionState.close();\n      try {\n        var completeMethod = getMethod(observer, 'complete');\n        if (completeMethod) call(completeMethod, observer);\n      } catch (error) {\n        hostReportErrors(error);\n      } subscriptionState.clean();\n    }\n  }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(SubscriptionObserver.prototype, 'closed', {\n  configurable: true,\n  get: function closed() {\n    return getSubscriptionObserverInternalState(this).subscriptionState.isClosed();\n  }\n});\n\nvar $Observable = function Observable(subscriber) {\n  anInstance(this, ObservablePrototype);\n  setInternalState(this, {\n    type: OBSERVABLE,\n    subscriber: aCallable(subscriber)\n  });\n};\n\nvar ObservablePrototype = $Observable.prototype;\n\ndefineBuiltIns(ObservablePrototype, {\n  subscribe: function subscribe(observer) {\n    var length = arguments.length;\n    return new Subscription(isCallable(observer) ? {\n      next: observer,\n      error: length > 1 ? arguments[1] : undefined,\n      complete: length > 2 ? arguments[2] : undefined\n    } : isObject(observer) ? observer : {}, getObservableInternalState(this).subscriber);\n  }\n});\n\ndefineBuiltIn(ObservablePrototype, $$OBSERVABLE, function () { return this; });\n\n$({ global: true, constructor: true, forced: true }, {\n  Observable: $Observable\n});\n\nsetSpecies(OBSERVABLE);\n\n\n/***/ }),\n/* 419 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar getBuiltIn = __webpack_require__(35);\nvar call = __webpack_require__(33);\nvar anObject = __webpack_require__(30);\nvar isConstructor = __webpack_require__(199);\nvar getIterator = __webpack_require__(102);\nvar getIteratorMethod = __webpack_require__(103);\nvar getMethod = __webpack_require__(37);\nvar iterate = __webpack_require__(97);\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar $$OBSERVABLE = wellKnownSymbol('observable');\n\n// `Observable.from` method\n// https://github.com/tc39/proposal-observable\n$({ target: 'Observable', stat: true, forced: true }, {\n  from: function from(x) {\n    var C = isConstructor(this) ? this : getBuiltIn('Observable');\n    var observableMethod = getMethod(anObject(x), $$OBSERVABLE);\n    if (observableMethod) {\n      var observable = anObject(call(observableMethod, x));\n      return observable.constructor === C ? observable : new C(function (observer) {\n        return observable.subscribe(observer);\n      });\n    }\n    var iteratorMethod = getIteratorMethod(x);\n    // validate that x is iterable synchronously during `from()` call\n    if (!iteratorMethod) getIterator(x);\n    return new C(function (observer) {\n      iterate(getIterator(x, iteratorMethod), function (it, stop) {\n        observer.next(it);\n        if (observer.closed) return stop();\n      }, { IS_ITERATOR: true, INTERRUPTED: true });\n      observer.complete();\n    });\n  }\n});\n\n\n/***/ }),\n/* 420 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar getBuiltIn = __webpack_require__(35);\nvar isConstructor = __webpack_require__(199);\n\nvar Array = getBuiltIn('Array');\n\n// `Observable.of` method\n// https://github.com/tc39/proposal-observable\n$({ target: 'Observable', stat: true, forced: true }, {\n  of: function of() {\n    var C = isConstructor(this) ? this : getBuiltIn('Observable');\n    var length = arguments.length;\n    var items = Array(length);\n    var index = 0;\n    while (index < length) items[index] = arguments[index++];\n    return new C(function (observer) {\n      for (var i = 0; i < length; i++) {\n        observer.next(items[i]);\n        if (observer.closed) return;\n      } observer.complete();\n    });\n  }\n});\n\n\n/***/ }),\n/* 421 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar ReflectMetadataModule = __webpack_require__(422);\nvar anObject = __webpack_require__(30);\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar ordinaryDefineOwnMetadata = ReflectMetadataModule.set;\n\n// `Reflect.defineMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  defineMetadata: function defineMetadata(metadataKey, metadataValue, target /* , targetKey */) {\n    var targetKey = arguments.length < 4 ? undefined : toMetadataKey(arguments[3]);\n    ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), targetKey);\n  }\n});\n\n\n/***/ }),\n/* 422 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\n__webpack_require__(344);\n__webpack_require__(353);\nvar getBuiltIn = __webpack_require__(35);\nvar uncurryThis = __webpack_require__(6);\nvar shared = __webpack_require__(14);\n\nvar Map = getBuiltIn('Map');\nvar WeakMap = getBuiltIn('WeakMap');\nvar push = uncurryThis([].push);\n\nvar metadata = shared('metadata');\nvar store = metadata.store || (metadata.store = new WeakMap());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n  var targetMetadata = store.get(target);\n  if (!targetMetadata) {\n    if (!create) return;\n    store.set(target, targetMetadata = new Map());\n  }\n  var keyMetadata = targetMetadata.get(targetKey);\n  if (!keyMetadata) {\n    if (!create) return;\n    targetMetadata.set(targetKey, keyMetadata = new Map());\n  } return keyMetadata;\n};\n\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n  var metadataMap = getOrCreateMetadataMap(O, P, false);\n  return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\n\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n  var metadataMap = getOrCreateMetadataMap(O, P, false);\n  return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\n\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n  getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\n\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n  var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n  var keys = [];\n  if (metadataMap) metadataMap.forEach(function (_, key) { push(keys, key); });\n  return keys;\n};\n\nvar toMetadataKey = function (it) {\n  return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\n\nmodule.exports = {\n  store: store,\n  getMap: getOrCreateMetadataMap,\n  has: ordinaryHasOwnMetadata,\n  get: ordinaryGetOwnMetadata,\n  set: ordinaryDefineOwnMetadata,\n  keys: ordinaryOwnMetadataKeys,\n  toKey: toMetadataKey\n};\n\n\n/***/ }),\n/* 423 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar ReflectMetadataModule = __webpack_require__(422);\nvar anObject = __webpack_require__(30);\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar getOrCreateMetadataMap = ReflectMetadataModule.getMap;\nvar store = ReflectMetadataModule.store;\n\n// `Reflect.deleteMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n    var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n    if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n    if (metadataMap.size) return true;\n    var targetMetadata = store.get(target);\n    targetMetadata['delete'](targetKey);\n    return !!targetMetadata.size || store['delete'](target);\n  }\n});\n\n\n/***/ }),\n/* 424 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar ReflectMetadataModule = __webpack_require__(422);\nvar anObject = __webpack_require__(30);\nvar getPrototypeOf = __webpack_require__(91);\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar ordinaryGetOwnMetadata = ReflectMetadataModule.get;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n  if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n  var parent = getPrototypeOf(O);\n  return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\n// `Reflect.getMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n    return ordinaryGetMetadata(metadataKey, anObject(target), targetKey);\n  }\n});\n\n\n/***/ }),\n/* 425 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar ReflectMetadataModule = __webpack_require__(422);\nvar anObject = __webpack_require__(30);\nvar getPrototypeOf = __webpack_require__(91);\nvar $arrayUniqueBy = __webpack_require__(317);\n\nvar arrayUniqueBy = uncurryThis($arrayUniqueBy);\nvar concat = uncurryThis([].concat);\nvar ordinaryOwnMetadataKeys = ReflectMetadataModule.keys;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryMetadataKeys = function (O, P) {\n  var oKeys = ordinaryOwnMetadataKeys(O, P);\n  var parent = getPrototypeOf(O);\n  if (parent === null) return oKeys;\n  var pKeys = ordinaryMetadataKeys(parent, P);\n  return pKeys.length ? oKeys.length ? arrayUniqueBy(concat(oKeys, pKeys)) : pKeys : oKeys;\n};\n\n// `Reflect.getMetadataKeys` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n    var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]);\n    return ordinaryMetadataKeys(anObject(target), targetKey);\n  }\n});\n\n\n/***/ }),\n/* 426 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar ReflectMetadataModule = __webpack_require__(422);\nvar anObject = __webpack_require__(30);\n\nvar ordinaryGetOwnMetadata = ReflectMetadataModule.get;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.getOwnMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n    return ordinaryGetOwnMetadata(metadataKey, anObject(target), targetKey);\n  }\n});\n\n\n/***/ }),\n/* 427 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar ReflectMetadataModule = __webpack_require__(422);\nvar anObject = __webpack_require__(30);\n\nvar ordinaryOwnMetadataKeys = ReflectMetadataModule.keys;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.getOwnMetadataKeys` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n    var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]);\n    return ordinaryOwnMetadataKeys(anObject(target), targetKey);\n  }\n});\n\n\n/***/ }),\n/* 428 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar ReflectMetadataModule = __webpack_require__(422);\nvar anObject = __webpack_require__(30);\nvar getPrototypeOf = __webpack_require__(91);\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n  if (hasOwn) return true;\n  var parent = getPrototypeOf(O);\n  return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\n// `Reflect.hasMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n    return ordinaryHasMetadata(metadataKey, anObject(target), targetKey);\n  }\n});\n\n\n/***/ }),\n/* 429 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar $ = __webpack_require__(49);\nvar ReflectMetadataModule = __webpack_require__(422);\nvar anObject = __webpack_require__(30);\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.hasOwnMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n    return ordinaryHasOwnMetadata(metadataKey, anObject(target), targetKey);\n  }\n});\n\n\n/***/ }),\n/* 430 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar ReflectMetadataModule = __webpack_require__(422);\nvar anObject = __webpack_require__(30);\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar ordinaryDefineOwnMetadata = ReflectMetadataModule.set;\n\n// `Reflect.metadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  metadata: function metadata(metadataKey, metadataValue) {\n    return function decorator(target, key) {\n      ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetadataKey(key));\n    };\n  }\n});\n\n\n/***/ }),\n/* 431 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aSet = __webpack_require__(246);\nvar add = __webpack_require__(247).add;\n\n// `Set.prototype.addAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  addAll: function addAll(/* ...elements */) {\n    var set = aSet(this);\n    for (var k = 0, len = arguments.length; k < len; k++) {\n      add(set, arguments[k]);\n    } return set;\n  }\n});\n\n\n/***/ }),\n/* 432 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aSet = __webpack_require__(246);\nvar remove = __webpack_require__(247).remove;\n\n// `Set.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  deleteAll: function deleteAll(/* ...elements */) {\n    var collection = aSet(this);\n    var allDeleted = true;\n    var wasDeleted;\n    for (var k = 0, len = arguments.length; k < len; k++) {\n      wasDeleted = remove(collection, arguments[k]);\n      allDeleted = allDeleted && wasDeleted;\n    } return !!allDeleted;\n  }\n});\n\n\n/***/ }),\n/* 433 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar toSetLike = __webpack_require__(434);\nvar $difference = __webpack_require__(245);\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  difference: function difference(other) {\n    return call($difference, this, toSetLike(other));\n  }\n});\n\n\n/***/ }),\n/* 434 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(35);\nvar isCallable = __webpack_require__(28);\nvar isIterable = __webpack_require__(435);\nvar isObject = __webpack_require__(27);\n\nvar Set = getBuiltIn('Set');\n\nvar isSetLike = function (it) {\n  return isObject(it)\n    && typeof it.size == 'number'\n    && isCallable(it.has)\n    && isCallable(it.keys);\n};\n\n// fallback old -> new set methods proposal arguments\nmodule.exports = function (it) {\n  if (isSetLike(it)) return it;\n  return isIterable(it) ? new Set(it) : it;\n};\n\n\n/***/ }),\n/* 435 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar classof = __webpack_require__(82);\nvar hasOwn = __webpack_require__(5);\nvar isNullOrUndefined = __webpack_require__(11);\nvar wellKnownSymbol = __webpack_require__(13);\nvar Iterators = __webpack_require__(101);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar $Object = Object;\n\nmodule.exports = function (it) {\n  if (isNullOrUndefined(it)) return false;\n  var O = $Object(it);\n  return O[ITERATOR] !== undefined\n    || '@@iterator' in O\n    || hasOwn(Iterators, classof(O));\n};\n\n\n/***/ }),\n/* 436 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar bind = __webpack_require__(98);\nvar aSet = __webpack_require__(246);\nvar iterate = __webpack_require__(249);\n\n// `Set.prototype.every` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  every: function every(callbackfn /* , thisArg */) {\n    var set = aSet(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    return iterate(set, function (value) {\n      if (!boundFunction(value, value, set)) return false;\n    }, true) !== false;\n  }\n});\n\n\n/***/ }),\n/* 437 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar bind = __webpack_require__(98);\nvar aSet = __webpack_require__(246);\nvar SetHelpers = __webpack_require__(247);\nvar iterate = __webpack_require__(249);\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\n// `Set.prototype.filter` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    var set = aSet(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var newSet = new Set();\n    iterate(set, function (value) {\n      if (boundFunction(value, value, set)) add(newSet, value);\n    });\n    return newSet;\n  }\n});\n\n\n/***/ }),\n/* 438 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar bind = __webpack_require__(98);\nvar aSet = __webpack_require__(246);\nvar iterate = __webpack_require__(249);\n\n// `Set.prototype.find` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  find: function find(callbackfn /* , thisArg */) {\n    var set = aSet(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var result = iterate(set, function (value) {\n      if (boundFunction(value, value, set)) return { value: value };\n    }, true);\n    return result && result.value;\n  }\n});\n\n\n/***/ }),\n/* 439 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar SetHelpers = __webpack_require__(247);\nvar createCollectionFrom = __webpack_require__(388);\n\n// `Set.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\n$({ target: 'Set', stat: true, forced: true }, {\n  from: createCollectionFrom(SetHelpers.Set, SetHelpers.add, false)\n});\n\n\n/***/ }),\n/* 440 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar toSetLike = __webpack_require__(434);\nvar $intersection = __webpack_require__(255);\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  intersection: function intersection(other) {\n    return call($intersection, this, toSetLike(other));\n  }\n});\n\n\n/***/ }),\n/* 441 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar toSetLike = __webpack_require__(434);\nvar $isDisjointFrom = __webpack_require__(257);\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  isDisjointFrom: function isDisjointFrom(other) {\n    return call($isDisjointFrom, this, toSetLike(other));\n  }\n});\n\n\n/***/ }),\n/* 442 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar toSetLike = __webpack_require__(434);\nvar $isSubsetOf = __webpack_require__(259);\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  isSubsetOf: function isSubsetOf(other) {\n    return call($isSubsetOf, this, toSetLike(other));\n  }\n});\n\n\n/***/ }),\n/* 443 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar toSetLike = __webpack_require__(434);\nvar $isSupersetOf = __webpack_require__(261);\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  isSupersetOf: function isSupersetOf(other) {\n    return call($isSupersetOf, this, toSetLike(other));\n  }\n});\n\n\n/***/ }),\n/* 444 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar uncurryThis = __webpack_require__(6);\nvar aSet = __webpack_require__(246);\nvar iterate = __webpack_require__(249);\nvar toString = __webpack_require__(81);\n\nvar arrayJoin = uncurryThis([].join);\nvar push = uncurryThis([].push);\n\n// `Set.prototype.join` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  join: function join(separator) {\n    var set = aSet(this);\n    var sep = separator === undefined ? ',' : toString(separator);\n    var array = [];\n    iterate(set, function (value) {\n      push(array, value);\n    });\n    return arrayJoin(array, sep);\n  }\n});\n\n\n/***/ }),\n/* 445 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar bind = __webpack_require__(98);\nvar aSet = __webpack_require__(246);\nvar SetHelpers = __webpack_require__(247);\nvar iterate = __webpack_require__(249);\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\n// `Set.prototype.map` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  map: function map(callbackfn /* , thisArg */) {\n    var set = aSet(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var newSet = new Set();\n    iterate(set, function (value) {\n      add(newSet, boundFunction(value, value, set));\n    });\n    return newSet;\n  }\n});\n\n\n/***/ }),\n/* 446 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar SetHelpers = __webpack_require__(247);\nvar createCollectionOf = __webpack_require__(397);\n\n// `Set.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\n$({ target: 'Set', stat: true, forced: true }, {\n  of: createCollectionOf(SetHelpers.Set, SetHelpers.add, false)\n});\n\n\n/***/ }),\n/* 447 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aCallable = __webpack_require__(38);\nvar aSet = __webpack_require__(246);\nvar iterate = __webpack_require__(249);\n\nvar $TypeError = TypeError;\n\n// `Set.prototype.reduce` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    var set = aSet(this);\n    var noInitial = arguments.length < 2;\n    var accumulator = noInitial ? undefined : arguments[1];\n    aCallable(callbackfn);\n    iterate(set, function (value) {\n      if (noInitial) {\n        noInitial = false;\n        accumulator = value;\n      } else {\n        accumulator = callbackfn(accumulator, value, value, set);\n      }\n    });\n    if (noInitial) throw new $TypeError('Reduce of empty set with no initial value');\n    return accumulator;\n  }\n});\n\n\n/***/ }),\n/* 448 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar bind = __webpack_require__(98);\nvar aSet = __webpack_require__(246);\nvar iterate = __webpack_require__(249);\n\n// `Set.prototype.some` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  some: function some(callbackfn /* , thisArg */) {\n    var set = aSet(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    return iterate(set, function (value) {\n      if (boundFunction(value, value, set)) return true;\n    }, true) === true;\n  }\n});\n\n\n/***/ }),\n/* 449 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar toSetLike = __webpack_require__(434);\nvar $symmetricDifference = __webpack_require__(263);\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  symmetricDifference: function symmetricDifference(other) {\n    return call($symmetricDifference, this, toSetLike(other));\n  }\n});\n\n\n/***/ }),\n/* 450 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar call = __webpack_require__(33);\nvar toSetLike = __webpack_require__(434);\nvar $union = __webpack_require__(266);\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  union: function union(other) {\n    return call($union, this, toSetLike(other));\n  }\n});\n\n\n/***/ }),\n/* 451 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar cooked = __webpack_require__(452);\n\n// `String.cooked` method\n// https://github.com/tc39/proposal-string-cooked\n$({ target: 'String', stat: true, forced: true }, {\n  cooked: cooked\n});\n\n\n/***/ }),\n/* 452 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar toIndexedObject = __webpack_require__(44);\nvar toString = __webpack_require__(81);\nvar lengthOfArrayLike = __webpack_require__(67);\n\nvar $TypeError = TypeError;\nvar push = uncurryThis([].push);\nvar join = uncurryThis([].join);\n\n// `String.cooked` method\n// https://tc39.es/proposal-string-cooked/\nmodule.exports = function cooked(template /* , ...substitutions */) {\n  var cookedTemplate = toIndexedObject(template);\n  var literalSegments = lengthOfArrayLike(cookedTemplate);\n  if (!literalSegments) return '';\n  var argumentsLength = arguments.length;\n  var elements = [];\n  var i = 0;\n  while (true) {\n    var nextVal = cookedTemplate[i++];\n    if (nextVal === undefined) throw new $TypeError('Incorrect template');\n    push(elements, toString(nextVal));\n    if (i === literalSegments) return join(elements, '');\n    if (i < argumentsLength) push(elements, toString(arguments[i]));\n  }\n};\n\n\n/***/ }),\n/* 453 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar createIteratorConstructor = __webpack_require__(341);\nvar createIterResultObject = __webpack_require__(151);\nvar requireObjectCoercible = __webpack_require__(10);\nvar toString = __webpack_require__(81);\nvar InternalStateModule = __webpack_require__(55);\nvar StringMultibyteModule = __webpack_require__(454);\n\nvar codeAt = StringMultibyteModule.codeAt;\nvar charAt = StringMultibyteModule.charAt;\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// TODO: unify with String#@@iterator\nvar $StringIterator = createIteratorConstructor(function StringIterator(string) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: string,\n    index: 0\n  });\n}, 'String', function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return createIterResultObject(undefined, true);\n  point = charAt(string, index);\n  state.index += point.length;\n  return createIterResultObject({ codePoint: codeAt(point, 0), position: index }, false);\n});\n\n// `String.prototype.codePoints` method\n// https://github.com/tc39/proposal-string-prototype-codepoints\n$({ target: 'String', proto: true, forced: true }, {\n  codePoints: function codePoints() {\n    return new $StringIterator(toString(requireObjectCoercible(this)));\n  }\n});\n\n\n/***/ }),\n/* 454 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar toIntegerOrInfinity = __webpack_require__(65);\nvar toString = __webpack_require__(81);\nvar requireObjectCoercible = __webpack_require__(10);\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = toString(requireObjectCoercible($this));\n    var position = toIntegerOrInfinity(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = charCodeAt(S, position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING\n          ? charAt(S, position)\n          : first\n        : CONVERT_TO_STRING\n          ? stringSlice(S, position, position + 2)\n          : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n\n\n/***/ }),\n/* 455 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar FREEZING = __webpack_require__(179);\nvar $ = __webpack_require__(49);\nvar makeBuiltIn = __webpack_require__(52);\nvar uncurryThis = __webpack_require__(6);\nvar apply = __webpack_require__(72);\nvar anObject = __webpack_require__(30);\nvar toObject = __webpack_require__(9);\nvar isCallable = __webpack_require__(28);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar defineProperty = __webpack_require__(23).f;\nvar createArrayFromList = __webpack_require__(181);\nvar WeakMapHelpers = __webpack_require__(298);\nvar cooked = __webpack_require__(452);\nvar parse = __webpack_require__(456);\nvar whitespaces = __webpack_require__(240);\n\nvar DedentMap = new WeakMapHelpers.WeakMap();\nvar weakMapGet = WeakMapHelpers.get;\nvar weakMapHas = WeakMapHelpers.has;\nvar weakMapSet = WeakMapHelpers.set;\n\nvar $Array = Array;\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = Object.freeze || Object;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = Object.isFrozen;\nvar min = Math.min;\nvar charAt = uncurryThis(''.charAt);\nvar stringSlice = uncurryThis(''.slice);\nvar split = uncurryThis(''.split);\nvar exec = uncurryThis(/./.exec);\n\nvar NEW_LINE = /([\\n\\u2028\\u2029]|\\r\\n?)/g;\nvar LEADING_WHITESPACE = RegExp('^[' + whitespaces + ']*');\nvar NON_WHITESPACE = RegExp('[^' + whitespaces + ']');\nvar INVALID_TAG = 'Invalid tag';\nvar INVALID_OPENING_LINE = 'Invalid opening line';\nvar INVALID_CLOSING_LINE = 'Invalid closing line';\n\nvar dedentTemplateStringsArray = function (template) {\n  var rawInput = template.raw;\n  // https://github.com/tc39/proposal-string-dedent/issues/75\n  if (FREEZING && !isFrozen(rawInput)) throw new $TypeError('Raw template should be frozen');\n  if (weakMapHas(DedentMap, rawInput)) return weakMapGet(DedentMap, rawInput);\n  var raw = dedentStringsArray(rawInput);\n  var cookedArr = cookStrings(raw);\n  defineProperty(cookedArr, 'raw', {\n    value: freeze(raw)\n  });\n  freeze(cookedArr);\n  weakMapSet(DedentMap, rawInput, cookedArr);\n  return cookedArr;\n};\n\nvar dedentStringsArray = function (template) {\n  var t = toObject(template);\n  var length = lengthOfArrayLike(t);\n  var blocks = $Array(length);\n  var dedented = $Array(length);\n  var i = 0;\n  var lines, common, quasi, k;\n\n  if (!length) throw new $TypeError(INVALID_TAG);\n\n  for (; i < length; i++) {\n    var element = t[i];\n    if (typeof element == 'string') blocks[i] = split(element, NEW_LINE);\n    else throw new $TypeError(INVALID_TAG);\n  }\n\n  for (i = 0; i < length; i++) {\n    var lastSplit = i + 1 === length;\n    lines = blocks[i];\n    if (i === 0) {\n      if (lines.length === 1 || lines[0].length > 0) {\n        throw new $TypeError(INVALID_OPENING_LINE);\n      }\n      lines[1] = '';\n    }\n    if (lastSplit) {\n      if (lines.length === 1 || exec(NON_WHITESPACE, lines[lines.length - 1])) {\n        throw new $TypeError(INVALID_CLOSING_LINE);\n      }\n      lines[lines.length - 2] = '';\n      lines[lines.length - 1] = '';\n    }\n\n    for (var j = 2; j < lines.length; j += 2) {\n      var text = lines[j];\n      var lineContainsTemplateExpression = j + 1 === lines.length && !lastSplit;\n      var leading = exec(LEADING_WHITESPACE, text)[0];\n      if (!lineContainsTemplateExpression && leading.length === text.length) {\n        lines[j] = '';\n        continue;\n      }\n      common = commonLeadingIndentation(leading, common);\n    }\n  }\n\n  var count = common ? common.length : 0;\n\n  for (i = 0; i < length; i++) {\n    lines = blocks[i];\n    quasi = lines[0];\n    k = 1;\n    for (; k < lines.length; k += 2) {\n      quasi += lines[k] + stringSlice(lines[k + 1], count);\n    }\n    dedented[i] = quasi;\n  }\n\n  return dedented;\n};\n\nvar commonLeadingIndentation = function (a, b) {\n  if (b === undefined || a === b) return a;\n  var i = 0;\n  for (var len = min(a.length, b.length); i < len; i++) {\n    if (charAt(a, i) !== charAt(b, i)) break;\n  }\n  return stringSlice(a, 0, i);\n};\n\nvar cookStrings = function (raw) {\n  var i = 0;\n  var length = raw.length;\n  var result = $Array(length);\n  for (; i < length; i++) {\n    result[i] = parse(raw[i]);\n  } return result;\n};\n\nvar makeDedentTag = function (tag) {\n  return makeBuiltIn(function (template /* , ...substitutions */) {\n    var args = createArrayFromList(arguments);\n    args[0] = dedentTemplateStringsArray(anObject(template));\n    return apply(tag, this, args);\n  }, '');\n};\n\nvar cookedDedentTag = makeDedentTag(cooked);\n\n// `String.dedent` method\n// https://github.com/tc39/proposal-string-dedent\n$({ target: 'String', stat: true, forced: true }, {\n  dedent: function dedent(templateOrFn /* , ...substitutions */) {\n    anObject(templateOrFn);\n    if (isCallable(templateOrFn)) return makeDedentTag(templateOrFn);\n    return apply(cookedDedentTag, this, arguments);\n  }\n});\n\n\n/***/ }),\n/* 456 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// adapted from https://github.com/jridgewell/string-dedent\nvar getBuiltIn = __webpack_require__(35);\nvar uncurryThis = __webpack_require__(6);\n\nvar fromCharCode = String.fromCharCode;\nvar fromCodePoint = getBuiltIn('String', 'fromCodePoint');\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar ZERO_CODE = 48;\nvar NINE_CODE = 57;\nvar LOWER_A_CODE = 97;\nvar LOWER_F_CODE = 102;\nvar UPPER_A_CODE = 65;\nvar UPPER_F_CODE = 70;\n\nvar isDigit = function (str, index) {\n  var c = charCodeAt(str, index);\n  return c >= ZERO_CODE && c <= NINE_CODE;\n};\n\nvar parseHex = function (str, index, end) {\n  if (end > str.length || index >= end) return -1;\n  var n = 0;\n  for (; index < end; index++) {\n    var c = hexToInt(charCodeAt(str, index));\n    if (c === -1) return -1;\n    n = n * 16 + c;\n  }\n  return n;\n};\n\nvar hexToInt = function (c) {\n  if (c >= ZERO_CODE && c <= NINE_CODE) return c - ZERO_CODE;\n  if (c >= LOWER_A_CODE && c <= LOWER_F_CODE) return c - LOWER_A_CODE + 10;\n  if (c >= UPPER_A_CODE && c <= UPPER_F_CODE) return c - UPPER_A_CODE + 10;\n  return -1;\n};\n\nmodule.exports = function (raw) {\n  var out = '';\n  var start = 0;\n  // We need to find every backslash escape sequence, and cook the escape into a real char.\n  var i = 0;\n  var n;\n  while ((i = stringIndexOf(raw, '\\\\', i)) > -1) {\n    out += stringSlice(raw, start, i);\n    // If the backslash is the last char of the string, then it was an invalid sequence.\n    // This can't actually happen in a tagged template literal, but could happen if you manually\n    // invoked the tag with an array.\n    if (++i === raw.length) return;\n    var next = charAt(raw, i++);\n    switch (next) {\n      // Escaped control codes need to be individually processed.\n      case 'b':\n        out += '\\b';\n        break;\n      case 't':\n        out += '\\t';\n        break;\n      case 'n':\n        out += '\\n';\n        break;\n      case 'v':\n        out += '\\v';\n        break;\n      case 'f':\n        out += '\\f';\n        break;\n      case 'r':\n        out += '\\r';\n        break;\n      // Escaped line terminators just skip the char.\n      case '\\r':\n        // Treat `\\r\\n` as a single terminator.\n        if (i < raw.length && charAt(raw, i) === '\\n') ++i;\n      // break omitted\n      case '\\n':\n      case '\\u2028':\n      case '\\u2029':\n        break;\n      // `\\0` is a null control char, but `\\0` followed by another digit is an illegal octal escape.\n      case '0':\n        if (isDigit(raw, i)) return;\n        out += '\\0';\n        break;\n      // Hex escapes must contain 2 hex chars.\n      case 'x':\n        n = parseHex(raw, i, i + 2);\n        if (n === -1) return;\n        i += 2;\n        out += fromCharCode(n);\n        break;\n      // Unicode escapes contain either 4 chars, or an unlimited number between `{` and `}`.\n      // The hex value must not overflow 0x10FFFF.\n      case 'u':\n        if (i < raw.length && charAt(raw, i) === '{') {\n          var end = stringIndexOf(raw, '}', ++i);\n          if (end === -1) return;\n          n = parseHex(raw, i, end);\n          i = end + 1;\n        } else {\n          n = parseHex(raw, i, i + 4);\n          i += 4;\n        }\n        if (n === -1 || n > 0x10FFFF) return;\n        out += fromCodePoint(n);\n        break;\n      default:\n        if (isDigit(next, 0)) return;\n        out += next;\n    }\n    start = i;\n  }\n  return out + stringSlice(raw, start);\n};\n\n\n/***/ }),\n/* 457 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar defineWellKnownSymbol = __webpack_require__(3);\n\n// `Symbol.customMatcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('customMatcher');\n\n\n/***/ }),\n/* 458 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar isRegisteredSymbol = __webpack_require__(459);\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true }, {\n  isRegisteredSymbol: isRegisteredSymbol\n});\n\n\n/***/ }),\n/* 459 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(35);\nvar uncurryThis = __webpack_require__(6);\n\nvar Symbol = getBuiltIn('Symbol');\nvar keyFor = Symbol.keyFor;\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\nmodule.exports = Symbol.isRegisteredSymbol || function isRegisteredSymbol(value) {\n  try {\n    return keyFor(thisSymbolValue(value)) !== undefined;\n  } catch (error) {\n    return false;\n  }\n};\n\n\n/***/ }),\n/* 460 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar isRegisteredSymbol = __webpack_require__(459);\n\n// `Symbol.isRegistered` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, {\n  isRegistered: isRegisteredSymbol\n});\n\n\n/***/ }),\n/* 461 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar isWellKnownSymbol = __webpack_require__(462);\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, forced: true }, {\n  isWellKnownSymbol: isWellKnownSymbol\n});\n\n\n/***/ }),\n/* 462 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar shared = __webpack_require__(14);\nvar getBuiltIn = __webpack_require__(35);\nvar uncurryThis = __webpack_require__(6);\nvar isSymbol = __webpack_require__(34);\nvar wellKnownSymbol = __webpack_require__(13);\n\nvar Symbol = getBuiltIn('Symbol');\nvar $isWellKnownSymbol = Symbol.isWellKnownSymbol;\nvar getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\nvar WellKnownSymbolsStore = shared('wks');\n\nfor (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {\n  // some old engines throws on access to some keys like `arguments` or `caller`\n  try {\n    var symbolKey = symbolKeys[i];\n    if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);\n  } catch (error) { /* empty */ }\n}\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\nmodule.exports = function isWellKnownSymbol(value) {\n  if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true;\n  try {\n    var symbol = thisSymbolValue(value);\n    for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {\n      // eslint-disable-next-line eqeqeq -- polyfilled symbols case\n      if (WellKnownSymbolsStore[keys[j]] == symbol) return true;\n    }\n  } catch (error) { /* empty */ }\n  return false;\n};\n\n\n/***/ }),\n/* 463 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar isWellKnownSymbol = __webpack_require__(462);\n\n// `Symbol.isWellKnown` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, name: 'isWellKnownSymbol', forced: true }, {\n  isWellKnown: isWellKnownSymbol\n});\n\n\n/***/ }),\n/* 464 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar defineWellKnownSymbol = __webpack_require__(3);\n\n// `Symbol.matcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('matcher');\n\n\n/***/ }),\n/* 465 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar defineWellKnownSymbol = __webpack_require__(3);\n\n// `Symbol.metadata` well-known symbol\n// https://github.com/tc39/proposal-decorators\ndefineWellKnownSymbol('metadata');\n\n\n/***/ }),\n/* 466 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar defineWellKnownSymbol = __webpack_require__(3);\n\n// `Symbol.metadataKey` well-known symbol\n// https://github.com/tc39/proposal-decorator-metadata\ndefineWellKnownSymbol('metadataKey');\n\n\n/***/ }),\n/* 467 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar defineWellKnownSymbol = __webpack_require__(3);\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n\n\n/***/ }),\n/* 468 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar getBuiltIn = __webpack_require__(35);\nvar aConstructor = __webpack_require__(198);\nvar arrayFromAsync = __webpack_require__(227);\nvar ArrayBufferViewCore = __webpack_require__(275);\nvar arrayFromConstructorAndList = __webpack_require__(119);\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.fromAsync` method\n// https://github.com/tc39/proposal-array-from-async\nexportTypedArrayStaticMethod('fromAsync', function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {\n  var C = this;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n  return new (getBuiltIn('Promise'))(function (resolve) {\n    aConstructor(C);\n    resolve(arrayFromAsync(asyncItems, mapfn, thisArg));\n  }).then(function (list) {\n    return arrayFromConstructorAndList(aTypedArrayConstructor(C), list);\n  });\n}, true);\n\n\n/***/ }),\n/* 469 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(275);\nvar $filterReject = __webpack_require__(303).filterReject;\nvar fromSameTypeAndList = __webpack_require__(470);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filterReject` method\n// https://github.com/tc39/proposal-array-filtering\nexportTypedArrayMethod('filterReject', function filterReject(callbackfn /* , thisArg */) {\n  var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  return fromSameTypeAndList(this, list);\n}, true);\n\n\n/***/ }),\n/* 470 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar arrayFromConstructorAndList = __webpack_require__(119);\nvar getTypedArrayConstructor = __webpack_require__(275).getTypedArrayConstructor;\n\nmodule.exports = function (instance, list) {\n  return arrayFromConstructorAndList(getTypedArrayConstructor(instance), list);\n};\n\n\n/***/ }),\n/* 471 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = __webpack_require__(275);\nvar $group = __webpack_require__(307);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\nexportTypedArrayMethod('groupBy', function groupBy(callbackfn /* , thisArg */) {\n  var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n  return $group(aTypedArray(this), callbackfn, thisArg, getTypedArrayConstructor);\n}, true);\n\n\n/***/ }),\n/* 472 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = __webpack_require__(275);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar isBigIntArray = __webpack_require__(283);\nvar toAbsoluteIndex = __webpack_require__(64);\nvar toBigInt = __webpack_require__(284);\nvar toIntegerOrInfinity = __webpack_require__(65);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar max = Math.max;\nvar min = Math.min;\n\n// `%TypedArray%.prototype.toSpliced` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toSpliced\nexportTypedArrayMethod('toSpliced', function toSpliced(start, deleteCount /* , ...items */) {\n  var O = aTypedArray(this);\n  var C = getTypedArrayConstructor(O);\n  var len = lengthOfArrayLike(O);\n  var actualStart = toAbsoluteIndex(start, len);\n  var argumentsLength = arguments.length;\n  var k = 0;\n  var insertCount, actualDeleteCount, thisIsBigIntArray, convertedItems, value, newLen, A;\n  if (argumentsLength === 0) {\n    insertCount = actualDeleteCount = 0;\n  } else if (argumentsLength === 1) {\n    insertCount = 0;\n    actualDeleteCount = len - actualStart;\n  } else {\n    actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n    insertCount = argumentsLength - 2;\n    if (insertCount) {\n      convertedItems = new C(insertCount);\n      thisIsBigIntArray = isBigIntArray(convertedItems);\n      for (var i = 2; i < argumentsLength; i++) {\n        value = arguments[i];\n        // FF30- typed arrays doesn't properly convert objects to typed array values\n        convertedItems[i - 2] = thisIsBigIntArray ? toBigInt(value) : +value;\n      }\n    }\n  }\n  newLen = len + insertCount - actualDeleteCount;\n  A = new C(newLen);\n\n  for (; k < actualStart; k++) A[k] = O[k];\n  for (; k < actualStart + insertCount; k++) A[k] = convertedItems[k - actualStart];\n  for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount];\n\n  return A;\n}, true);\n\n\n/***/ }),\n/* 473 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\nvar ArrayBufferViewCore = __webpack_require__(275);\nvar arrayFromConstructorAndList = __webpack_require__(119);\nvar $arrayUniqueBy = __webpack_require__(317);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar arrayUniqueBy = uncurryThis($arrayUniqueBy);\n\n// `%TypedArray%.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\nexportTypedArrayMethod('uniqueBy', function uniqueBy(resolver) {\n  aTypedArray(this);\n  return arrayFromConstructorAndList(getTypedArrayConstructor(this), arrayUniqueBy(this, resolver));\n}, true);\n\n\n/***/ }),\n/* 474 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aWeakMap = __webpack_require__(300);\nvar remove = __webpack_require__(298).remove;\n\n// `WeakMap.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n  deleteAll: function deleteAll(/* ...elements */) {\n    var collection = aWeakMap(this);\n    var allDeleted = true;\n    var wasDeleted;\n    for (var k = 0, len = arguments.length; k < len; k++) {\n      wasDeleted = remove(collection, arguments[k]);\n      allDeleted = allDeleted && wasDeleted;\n    } return !!allDeleted;\n  }\n});\n\n\n/***/ }),\n/* 475 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar WeakMapHelpers = __webpack_require__(298);\nvar createCollectionFrom = __webpack_require__(388);\n\n// `WeakMap.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\n$({ target: 'WeakMap', stat: true, forced: true }, {\n  from: createCollectionFrom(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true)\n});\n\n\n/***/ }),\n/* 476 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar WeakMapHelpers = __webpack_require__(298);\nvar createCollectionOf = __webpack_require__(397);\n\n// `WeakMap.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\n$({ target: 'WeakMap', stat: true, forced: true }, {\n  of: createCollectionOf(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true)\n});\n\n\n/***/ }),\n/* 477 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aWeakMap = __webpack_require__(300);\nvar WeakMapHelpers = __webpack_require__(298);\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.emplace` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n  emplace: function emplace(key, handler) {\n    var map = aWeakMap(this);\n    var value, inserted;\n    if (has(map, key)) {\n      value = get(map, key);\n      if ('update' in handler) {\n        value = handler.update(value, key, map);\n        set(map, key, value);\n      } return value;\n    }\n    inserted = handler.insert(key, map);\n    set(map, key, inserted);\n    return inserted;\n  }\n});\n\n\n/***/ }),\n/* 478 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aWeakSet = __webpack_require__(479);\nvar add = __webpack_require__(480).add;\n\n// `WeakSet.prototype.addAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakSet', proto: true, real: true, forced: true }, {\n  addAll: function addAll(/* ...elements */) {\n    var set = aWeakSet(this);\n    for (var k = 0, len = arguments.length; k < len; k++) {\n      add(set, arguments[k]);\n    } return set;\n  }\n});\n\n\n/***/ }),\n/* 479 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar has = __webpack_require__(480).has;\n\n// Perform ? RequireInternalSlot(M, [[WeakSetData]])\nmodule.exports = function (it) {\n  has(it);\n  return it;\n};\n\n\n/***/ }),\n/* 480 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6);\n\n// eslint-disable-next-line es/no-weak-set -- safe\nvar WeakSetPrototype = WeakSet.prototype;\n\nmodule.exports = {\n  // eslint-disable-next-line es/no-weak-set -- safe\n  WeakSet: WeakSet,\n  add: uncurryThis(WeakSetPrototype.add),\n  has: uncurryThis(WeakSetPrototype.has),\n  remove: uncurryThis(WeakSetPrototype['delete'])\n};\n\n\n/***/ }),\n/* 481 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar aWeakSet = __webpack_require__(479);\nvar remove = __webpack_require__(480).remove;\n\n// `WeakSet.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakSet', proto: true, real: true, forced: true }, {\n  deleteAll: function deleteAll(/* ...elements */) {\n    var collection = aWeakSet(this);\n    var allDeleted = true;\n    var wasDeleted;\n    for (var k = 0, len = arguments.length; k < len; k++) {\n      wasDeleted = remove(collection, arguments[k]);\n      allDeleted = allDeleted && wasDeleted;\n    } return !!allDeleted;\n  }\n});\n\n\n/***/ }),\n/* 482 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar WeakSetHelpers = __webpack_require__(480);\nvar createCollectionFrom = __webpack_require__(388);\n\n// `WeakSet.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\n$({ target: 'WeakSet', stat: true, forced: true }, {\n  from: createCollectionFrom(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false)\n});\n\n\n/***/ }),\n/* 483 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar WeakSetHelpers = __webpack_require__(480);\nvar createCollectionOf = __webpack_require__(397);\n\n// `WeakSet.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\n$({ target: 'WeakSet', stat: true, forced: true }, {\n  of: createCollectionOf(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false)\n});\n\n\n/***/ }),\n/* 484 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar getBuiltIn = __webpack_require__(35);\nvar getBuiltInNodeModule = __webpack_require__(138);\nvar fails = __webpack_require__(8);\nvar create = __webpack_require__(93);\nvar createPropertyDescriptor = __webpack_require__(43);\nvar defineProperty = __webpack_require__(23).f;\nvar defineBuiltIn = __webpack_require__(51);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar hasOwn = __webpack_require__(5);\nvar anInstance = __webpack_require__(144);\nvar anObject = __webpack_require__(30);\nvar errorToString = __webpack_require__(485);\nvar normalizeStringArgument = __webpack_require__(80);\nvar DOMExceptionConstants = __webpack_require__(486);\nvar clearErrorStack = __webpack_require__(86);\nvar InternalStateModule = __webpack_require__(55);\nvar DESCRIPTORS = __webpack_require__(24);\nvar IS_PURE = __webpack_require__(16);\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n  try {\n    // NodeJS < 15.0 does not expose `MessageChannel` to global\n    var MessageChannel = getBuiltIn('MessageChannel') || getBuiltInNodeModule('worker_threads').MessageChannel;\n    // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe\n    new MessageChannel().port1.postMessage(new WeakMap());\n  } catch (error) {\n    if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor;\n  }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n  return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n  anInstance(this, DOMExceptionPrototype);\n  var argumentsLength = arguments.length;\n  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n  var code = codeFor(name);\n  setInternalState(this, {\n    type: DOM_EXCEPTION,\n    name: name,\n    message: message,\n    code: code\n  });\n  if (!DESCRIPTORS) {\n    this.name = name;\n    this.message = message;\n    this.code = code;\n  }\n  if (HAS_STACK) {\n    var error = new Error(message);\n    error.name = DOM_EXCEPTION;\n    defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n  }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n  return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n  return createGetterDescriptor(function () {\n    return getInternalState(this)[key];\n  });\n};\n\nif (DESCRIPTORS) {\n  // `DOMException.prototype.code` getter\n  defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));\n  // `DOMException.prototype.message` getter\n  defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));\n  // `DOMException.prototype.name` getter\n  defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));\n}\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n  return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n  return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n  return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n  || NativeDOMException[DATA_CLONE_ERR] !== 25\n  || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {\n  DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n  defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n  defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n    return codeFor(anObject(this).name);\n  }));\n}\n\n// `DOMException` constants\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n  var constant = DOMExceptionConstants[key];\n  var constantName = constant.s;\n  var descriptor = createPropertyDescriptor(6, constant.c);\n  if (!hasOwn(PolyfilledDOMException, constantName)) {\n    defineProperty(PolyfilledDOMException, constantName, descriptor);\n  }\n  if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n    defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n  }\n}\n\n\n/***/ }),\n/* 485 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar fails = __webpack_require__(8);\nvar anObject = __webpack_require__(30);\nvar normalizeStringArgument = __webpack_require__(80);\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n  if (DESCRIPTORS) {\n    // Chrome 32- incorrectly call accessor\n    // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe\n    var object = Object.create(Object.defineProperty({}, 'name', { get: function () {\n      return this === object;\n    } }));\n    if (nativeErrorToString.call(object) !== 'true') return true;\n  }\n  // FF10- does not properly handle non-strings\n  return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n    // IE8 does not properly handle defaults\n    || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n  var O = anObject(this);\n  var name = normalizeStringArgument(O.name, 'Error');\n  var message = normalizeStringArgument(O.message);\n  return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n\n\n/***/ }),\n/* 486 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = {\n  IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n  DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n  HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n  WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n  InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n  NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n  NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n  NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n  NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n  InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n  InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n  SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n  InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n  NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n  InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n  ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n  TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n  SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n  NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n  AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n  URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n  QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n  TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n  InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n  DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n\n\n/***/ }),\n/* 487 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar getBuiltIn = __webpack_require__(35);\nvar createPropertyDescriptor = __webpack_require__(43);\nvar defineProperty = __webpack_require__(23).f;\nvar hasOwn = __webpack_require__(5);\nvar anInstance = __webpack_require__(144);\nvar inheritIfRequired = __webpack_require__(79);\nvar normalizeStringArgument = __webpack_require__(80);\nvar DOMExceptionConstants = __webpack_require__(486);\nvar clearErrorStack = __webpack_require__(86);\nvar DESCRIPTORS = __webpack_require__(24);\nvar IS_PURE = __webpack_require__(16);\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n  anInstance(this, DOMExceptionPrototype);\n  var argumentsLength = arguments.length;\n  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n  var that = new NativeDOMException(message, name);\n  var error = new Error(message);\n  error.name = DOM_EXCEPTION;\n  defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n  inheritIfRequired(that, this, $DOMException);\n  return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n  DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n  if (!IS_PURE) {\n    defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n  }\n\n  for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n    var constant = DOMExceptionConstants[key];\n    var constantName = constant.s;\n    if (!hasOwn(PolyfilledDOMException, constantName)) {\n      defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n    }\n  }\n}\n\n\n/***/ }),\n/* 488 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(35);\nvar setToStringTag = __webpack_require__(195);\n\nvar DOM_EXCEPTION = 'DOMException';\n\n// `DOMException.prototype[@@toStringTag]` property\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n\n\n/***/ }),\n/* 489 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\n__webpack_require__(490);\n__webpack_require__(491);\n\n\n/***/ }),\n/* 490 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar clearImmediate = __webpack_require__(200).clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: globalThis.clearImmediate !== clearImmediate }, {\n  clearImmediate: clearImmediate\n});\n\n\n/***/ }),\n/* 491 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar setTask = __webpack_require__(200).set;\nvar schedulersFix = __webpack_require__(492);\n\n// https://github.com/oven-sh/bun/issues/1633\nvar setImmediate = globalThis.setImmediate ? schedulersFix(setTask, false) : setTask;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: globalThis.setImmediate !== setImmediate }, {\n  setImmediate: setImmediate\n});\n\n\n/***/ }),\n/* 492 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar globalThis = __webpack_require__(2);\nvar apply = __webpack_require__(72);\nvar isCallable = __webpack_require__(28);\nvar ENVIRONMENT = __webpack_require__(140);\nvar USER_AGENT = __webpack_require__(21);\nvar arraySlice = __webpack_require__(181);\nvar validateArgumentsLength = __webpack_require__(201);\n\nvar Function = globalThis.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENVIRONMENT === 'BUN' && (function () {\n  var version = globalThis.Bun.version.split('.');\n  return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n  var firstParamIndex = hasTimeArg ? 2 : 1;\n  return WRAP ? function (handler, timeout /* , ...arguments */) {\n    var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n    var fn = isCallable(handler) ? handler : Function(handler);\n    var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n    var callback = boundArgs ? function () {\n      apply(fn, this, params);\n    } : fn;\n    return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n  } : scheduler;\n};\n\n\n/***/ }),\n/* 493 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar defineBuiltInAccessor = __webpack_require__(130);\nvar DESCRIPTORS = __webpack_require__(24);\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar INCORRECT_VALUE = globalThis.self !== globalThis;\n\n// `self` getter\n// https://html.spec.whatwg.org/multipage/window-object.html#dom-self\ntry {\n  if (DESCRIPTORS) {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    var descriptor = Object.getOwnPropertyDescriptor(globalThis, 'self');\n    // some engines have `self`, but with incorrect descriptor\n    // https://github.com/denoland/deno/issues/15765\n    if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) {\n      defineBuiltInAccessor(globalThis, 'self', {\n        get: function self() {\n          return globalThis;\n        },\n        set: function self(value) {\n          if (this !== globalThis) throw new $TypeError('Illegal invocation');\n          defineProperty(globalThis, 'self', {\n            value: value,\n            writable: true,\n            configurable: true,\n            enumerable: true\n          });\n        },\n        configurable: true,\n        enumerable: true\n      });\n    }\n  } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, {\n    self: globalThis\n  });\n} catch (error) { /* empty */ }\n\n\n/***/ }),\n/* 494 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IS_PURE = __webpack_require__(16);\nvar $ = __webpack_require__(49);\nvar globalThis = __webpack_require__(2);\nvar getBuiltIn = __webpack_require__(35);\nvar uncurryThis = __webpack_require__(6);\nvar fails = __webpack_require__(8);\nvar uid = __webpack_require__(18);\nvar isCallable = __webpack_require__(28);\nvar isConstructor = __webpack_require__(199);\nvar isNullOrUndefined = __webpack_require__(11);\nvar isObject = __webpack_require__(27);\nvar isSymbol = __webpack_require__(34);\nvar iterate = __webpack_require__(97);\nvar anObject = __webpack_require__(30);\nvar classof = __webpack_require__(82);\nvar hasOwn = __webpack_require__(5);\nvar createProperty = __webpack_require__(117);\nvar createNonEnumerableProperty = __webpack_require__(50);\nvar lengthOfArrayLike = __webpack_require__(67);\nvar validateArgumentsLength = __webpack_require__(201);\nvar getRegExpFlags = __webpack_require__(271);\nvar MapHelpers = __webpack_require__(183);\nvar SetHelpers = __webpack_require__(247);\nvar setIterate = __webpack_require__(249);\nvar detachTransferable = __webpack_require__(137);\nvar ERROR_STACK_INSTALLABLE = __webpack_require__(87);\nvar PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(141);\n\nvar Object = globalThis.Object;\nvar Array = globalThis.Array;\nvar Date = globalThis.Date;\nvar Error = globalThis.Error;\nvar TypeError = globalThis.TypeError;\nvar PerformanceMark = globalThis.PerformanceMark;\nvar DOMException = getBuiltIn('DOMException');\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapGet = MapHelpers.get;\nvar mapSet = MapHelpers.set;\nvar Set = SetHelpers.Set;\nvar setAdd = SetHelpers.add;\nvar setHas = SetHelpers.has;\nvar objectKeys = getBuiltIn('Object', 'keys');\nvar push = uncurryThis([].push);\nvar thisBooleanValue = uncurryThis(true.valueOf);\nvar thisNumberValue = uncurryThis(1.1.valueOf);\nvar thisStringValue = uncurryThis(''.valueOf);\nvar thisTimeValue = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n  return !fails(function () {\n    var set1 = new globalThis.Set([7]);\n    var set2 = structuredCloneImplementation(set1);\n    var number = structuredCloneImplementation(Object(7));\n    return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7;\n  }) && structuredCloneImplementation;\n};\n\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n  return !fails(function () {\n    var error = new $Error();\n    var test = structuredCloneImplementation({ a: error, b: error });\n    return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n  });\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n  return !fails(function () {\n    var test = structuredCloneImplementation(new globalThis.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n    return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3;\n  });\n};\n\n// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+\n// FF<103 and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// FF103 can clone errors, but `.stack` of clone is an empty string\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762\n// FF104+ fixed it on usual errors, but not on DOMExceptions\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321\n// Chrome <102 returns `null` if cloned object contains multiple references to one error\n// https://bugs.chromium.org/p/v8/issues/detail?id=12542\n// NodeJS implementation can't clone DOMExceptions\n// https://github.com/nodejs/node/issues/41038\n// only FF103+ supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = globalThis.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE\n  || !checkErrorsCloning(nativeStructuredClone, Error)\n  || !checkErrorsCloning(nativeStructuredClone, DOMException)\n  || !checkNewErrorsCloningSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Chrome returns `null` if cloned object contains multiple references to one error\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor\n// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive\n// and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of those implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n  return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n  throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, action) {\n  throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar tryNativeRestrictedStructuredClone = function (value, type) {\n  if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type);\n  return nativeRestrictedStructuredClone(value);\n};\n\nvar createDataTransfer = function () {\n  var dataTransfer;\n  try {\n    dataTransfer = new globalThis.DataTransfer();\n  } catch (error) {\n    try {\n      dataTransfer = new globalThis.ClipboardEvent('').clipboardData;\n    } catch (error2) { /* empty */ }\n  }\n  return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;\n};\n\nvar cloneBuffer = function (value, map, $type) {\n  if (mapHas(map, value)) return mapGet(map, value);\n\n  var type = $type || classof(value);\n  var clone, length, options, source, target, i;\n\n  if (type === 'SharedArrayBuffer') {\n    if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value);\n    // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n    else clone = value;\n  } else {\n    var DataView = globalThis.DataView;\n\n    // `ArrayBuffer#slice` is not available in IE10\n    // `ArrayBuffer#slice` and `DataView` are not available in old FF\n    if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer');\n    // detached buffers throws in `DataView` and `.slice`\n    try {\n      if (isCallable(value.slice) && !value.resizable) {\n        clone = value.slice(0);\n      } else {\n        length = value.byteLength;\n        options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined;\n        // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe\n        clone = new ArrayBuffer(length, options);\n        source = new DataView(value);\n        target = new DataView(clone);\n        for (i = 0; i < length; i++) {\n          target.setUint8(i, source.getUint8(i));\n        }\n      }\n    } catch (error) {\n      throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n    }\n  }\n\n  mapSet(map, value, clone);\n\n  return clone;\n};\n\nvar cloneView = function (value, type, offset, length, map) {\n  var C = globalThis[type];\n  // in some old engines like Safari 9, typeof C is 'object'\n  // on Uint8ClampedArray or some other constructors\n  if (!isObject(C)) throwUnpolyfillable(type);\n  return new C(cloneBuffer(value.buffer, map), offset, length);\n};\n\nvar structuredCloneInternal = function (value, map) {\n  if (isSymbol(value)) throwUncloneable('Symbol');\n  if (!isObject(value)) return value;\n  // effectively preserves circular references\n  if (map) {\n    if (mapHas(map, value)) return mapGet(map, value);\n  } else map = new Map();\n\n  var type = classof(value);\n  var C, name, cloned, dataTransfer, i, length, keys, key;\n\n  switch (type) {\n    case 'Array':\n      cloned = Array(lengthOfArrayLike(value));\n      break;\n    case 'Object':\n      cloned = {};\n      break;\n    case 'Map':\n      cloned = new Map();\n      break;\n    case 'Set':\n      cloned = new Set();\n      break;\n    case 'RegExp':\n      // in this block because of a Safari 14.1 bug\n      // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n      cloned = new RegExp(value.source, getRegExpFlags(value));\n      break;\n    case 'Error':\n      name = value.name;\n      switch (name) {\n        case 'AggregateError':\n          cloned = new (getBuiltIn(name))([]);\n          break;\n        case 'EvalError':\n        case 'RangeError':\n        case 'ReferenceError':\n        case 'SuppressedError':\n        case 'SyntaxError':\n        case 'TypeError':\n        case 'URIError':\n          cloned = new (getBuiltIn(name))();\n          break;\n        case 'CompileError':\n        case 'LinkError':\n        case 'RuntimeError':\n          cloned = new (getBuiltIn('WebAssembly', name))();\n          break;\n        default:\n          cloned = new Error();\n      }\n      break;\n    case 'DOMException':\n      cloned = new DOMException(value.message, value.name);\n      break;\n    case 'ArrayBuffer':\n    case 'SharedArrayBuffer':\n      cloned = cloneBuffer(value, map, type);\n      break;\n    case 'DataView':\n    case 'Int8Array':\n    case 'Uint8Array':\n    case 'Uint8ClampedArray':\n    case 'Int16Array':\n    case 'Uint16Array':\n    case 'Int32Array':\n    case 'Uint32Array':\n    case 'Float16Array':\n    case 'Float32Array':\n    case 'Float64Array':\n    case 'BigInt64Array':\n    case 'BigUint64Array':\n      length = type === 'DataView' ? value.byteLength : value.length;\n      cloned = cloneView(value, type, value.byteOffset, length, map);\n      break;\n    case 'DOMQuad':\n      try {\n        cloned = new DOMQuad(\n          structuredCloneInternal(value.p1, map),\n          structuredCloneInternal(value.p2, map),\n          structuredCloneInternal(value.p3, map),\n          structuredCloneInternal(value.p4, map)\n        );\n      } catch (error) {\n        cloned = tryNativeRestrictedStructuredClone(value, type);\n      }\n      break;\n    case 'File':\n      if (nativeRestrictedStructuredClone) try {\n        cloned = nativeRestrictedStructuredClone(value);\n        // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612\n        if (classof(cloned) !== type) cloned = undefined;\n      } catch (error) { /* empty */ }\n      if (!cloned) try {\n        cloned = new File([value], value.name, value);\n      } catch (error) { /* empty */ }\n      if (!cloned) throwUnpolyfillable(type);\n      break;\n    case 'FileList':\n      dataTransfer = createDataTransfer();\n      if (dataTransfer) {\n        for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n          dataTransfer.items.add(structuredCloneInternal(value[i], map));\n        }\n        cloned = dataTransfer.files;\n      } else cloned = tryNativeRestrictedStructuredClone(value, type);\n      break;\n    case 'ImageData':\n      // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n      try {\n        cloned = new ImageData(\n          structuredCloneInternal(value.data, map),\n          value.width,\n          value.height,\n          { colorSpace: value.colorSpace }\n        );\n      } catch (error) {\n        cloned = tryNativeRestrictedStructuredClone(value, type);\n      } break;\n    default:\n      if (nativeRestrictedStructuredClone) {\n        cloned = nativeRestrictedStructuredClone(value);\n      } else switch (type) {\n        case 'BigInt':\n          // can be a 3rd party polyfill\n          cloned = Object(value.valueOf());\n          break;\n        case 'Boolean':\n          cloned = Object(thisBooleanValue(value));\n          break;\n        case 'Number':\n          cloned = Object(thisNumberValue(value));\n          break;\n        case 'String':\n          cloned = Object(thisStringValue(value));\n          break;\n        case 'Date':\n          cloned = new Date(thisTimeValue(value));\n          break;\n        case 'Blob':\n          try {\n            cloned = value.slice(0, value.size, value.type);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'DOMPoint':\n        case 'DOMPointReadOnly':\n          C = globalThis[type];\n          try {\n            cloned = C.fromPoint\n              ? C.fromPoint(value)\n              : new C(value.x, value.y, value.z, value.w);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'DOMRect':\n        case 'DOMRectReadOnly':\n          C = globalThis[type];\n          try {\n            cloned = C.fromRect\n              ? C.fromRect(value)\n              : new C(value.x, value.y, value.width, value.height);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'DOMMatrix':\n        case 'DOMMatrixReadOnly':\n          C = globalThis[type];\n          try {\n            cloned = C.fromMatrix\n              ? C.fromMatrix(value)\n              : new C(value);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'AudioData':\n        case 'VideoFrame':\n          if (!isCallable(value.clone)) throwUnpolyfillable(type);\n          try {\n            cloned = value.clone();\n          } catch (error) {\n            throwUncloneable(type);\n          } break;\n        case 'CropTarget':\n        case 'CryptoKey':\n        case 'FileSystemDirectoryHandle':\n        case 'FileSystemFileHandle':\n        case 'FileSystemHandle':\n        case 'GPUCompilationInfo':\n        case 'GPUCompilationMessage':\n        case 'ImageBitmap':\n        case 'RTCCertificate':\n        case 'WebAssembly.Module':\n          throwUnpolyfillable(type);\n          // break omitted\n        default:\n          throwUncloneable(type);\n      }\n  }\n\n  mapSet(map, value, cloned);\n\n  switch (type) {\n    case 'Array':\n    case 'Object':\n      keys = objectKeys(value);\n      for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n        key = keys[i];\n        createProperty(cloned, key, structuredCloneInternal(value[key], map));\n      } break;\n    case 'Map':\n      value.forEach(function (v, k) {\n        mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n      });\n      break;\n    case 'Set':\n      value.forEach(function (v) {\n        setAdd(cloned, structuredCloneInternal(v, map));\n      });\n      break;\n    case 'Error':\n      createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n      if (hasOwn(value, 'cause')) {\n        createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n      }\n      if (name === 'AggregateError') {\n        cloned.errors = structuredCloneInternal(value.errors, map);\n      } else if (name === 'SuppressedError') {\n        cloned.error = structuredCloneInternal(value.error, map);\n        cloned.suppressed = structuredCloneInternal(value.suppressed, map);\n      } // break omitted\n    case 'DOMException':\n      if (ERROR_STACK_INSTALLABLE) {\n        createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n      }\n  }\n\n  return cloned;\n};\n\nvar tryToTransfer = function (rawTransfer, map) {\n  if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence');\n\n  var transfer = [];\n\n  iterate(rawTransfer, function (value) {\n    push(transfer, anObject(value));\n  });\n\n  var i = 0;\n  var length = lengthOfArrayLike(transfer);\n  var buffers = new Set();\n  var value, type, C, transferred, canvas, context;\n\n  while (i < length) {\n    value = transfer[i++];\n    type = classof(value);\n    transferred = undefined;\n\n    if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) {\n      throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n    }\n\n    if (type === 'ArrayBuffer') {\n      setAdd(buffers, value);\n      continue;\n    }\n\n    if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n      transferred = nativeStructuredClone(value, { transfer: [value] });\n    } else switch (type) {\n      case 'ImageBitmap':\n        C = globalThis.OffscreenCanvas;\n        if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n        try {\n          canvas = new C(value.width, value.height);\n          context = canvas.getContext('bitmaprenderer');\n          context.transferFromImageBitmap(value);\n          transferred = canvas.transferToImageBitmap();\n        } catch (error) { /* empty */ }\n        break;\n      case 'AudioData':\n      case 'VideoFrame':\n        if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n        try {\n          transferred = value.clone();\n          value.close();\n        } catch (error) { /* empty */ }\n        break;\n      case 'MediaSourceHandle':\n      case 'MessagePort':\n      case 'MIDIAccess':\n      case 'OffscreenCanvas':\n      case 'ReadableStream':\n      case 'RTCDataChannel':\n      case 'TransformStream':\n      case 'WebTransportReceiveStream':\n      case 'WebTransportSendStream':\n      case 'WritableStream':\n        throwUnpolyfillable(type, TRANSFERRING);\n    }\n\n    if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n\n    mapSet(map, value, transferred);\n  }\n\n  return buffers;\n};\n\nvar detachBuffers = function (buffers) {\n  setIterate(buffers, function (buffer) {\n    if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n      nativeStructuredClone(buffer, { transfer: [buffer] });\n    } else if (isCallable(buffer.transfer)) {\n      buffer.transfer();\n    } else if (detachTransferable) {\n      detachTransferable(buffer);\n    } else {\n      throwUnpolyfillable('ArrayBuffer', TRANSFERRING);\n    }\n  });\n};\n\n// `structuredClone` method\n// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone\n$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, {\n  structuredClone: function structuredClone(value /* , { transfer } */) {\n    var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;\n    var transfer = options ? options.transfer : undefined;\n    var map, buffers;\n\n    if (transfer !== undefined) {\n      map = new Map();\n      buffers = tryToTransfer(transfer, map);\n    }\n\n    var clone = structuredCloneInternal(value, map);\n\n    // since of an issue with cloning views of transferred buffers, we a forced to detach them later\n    // https://github.com/zloirock/core-js/issues/1265\n    if (buffers) detachBuffers(buffers);\n\n    return clone;\n  }\n});\n\n\n/***/ }),\n/* 495 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar getBuiltIn = __webpack_require__(35);\nvar fails = __webpack_require__(8);\nvar validateArgumentsLength = __webpack_require__(201);\nvar toString = __webpack_require__(81);\nvar USE_NATIVE_URL = __webpack_require__(496);\n\nvar URL = getBuiltIn('URL');\n\n// https://github.com/nodejs/node/issues/47505\n// https://github.com/denoland/deno/issues/18893\nvar THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () {\n  URL.canParse();\n});\n\n// Bun ~ 1.0.30 bug\n// https://github.com/oven-sh/bun/issues/9250\nvar WRONG_ARITY = fails(function () {\n  return URL.canParse.length !== 1;\n});\n\n// `URL.canParse` method\n// https://url.spec.whatwg.org/#dom-url-canparse\n$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS || WRONG_ARITY }, {\n  canParse: function canParse(url) {\n    var length = validateArgumentsLength(arguments.length, 1);\n    var urlString = toString(url);\n    var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n    try {\n      return !!new URL(urlString, base);\n    } catch (error) {\n      return false;\n    }\n  }\n});\n\n\n/***/ }),\n/* 496 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(8);\nvar wellKnownSymbol = __webpack_require__(13);\nvar DESCRIPTORS = __webpack_require__(24);\nvar IS_PURE = __webpack_require__(16);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n  var url = new URL('b?a=1&b=2&c=3', 'https://a');\n  var params = url.searchParams;\n  var params2 = new URLSearchParams('a=1&a=2&b=3');\n  var result = '';\n  url.pathname = 'c%20d';\n  params.forEach(function (value, key) {\n    params['delete']('b');\n    result += key + value;\n  });\n  params2['delete']('a', 2);\n  // `undefined` case is a Chromium 117 bug\n  // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n  params2['delete']('b', undefined);\n  return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n    || (!params.size && (IS_PURE || !DESCRIPTORS))\n    || !params.sort\n    || url.href !== 'https://a/c%20d?a=1&c=3'\n    || params.get('c') !== '3'\n    || String(new URLSearchParams('?a=1')) !== 'a=1'\n    || !params[ITERATOR]\n    // throws in Edge\n    || new URL('https://a@b').username !== 'a'\n    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n    // not punycoded in Edge\n    || new URL('https://тест').host !== 'xn--e1aybc'\n    // not escaped in Chrome 62-\n    || new URL('https://a#б').hash !== '#%D0%B1'\n    // fails in Chrome 66-\n    || result !== 'a1c3'\n    // throws in Safari\n    || new URL('https://x', undefined).host !== 'x';\n});\n\n\n/***/ }),\n/* 497 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar getBuiltIn = __webpack_require__(35);\nvar validateArgumentsLength = __webpack_require__(201);\nvar toString = __webpack_require__(81);\nvar USE_NATIVE_URL = __webpack_require__(496);\n\nvar URL = getBuiltIn('URL');\n\n// `URL.parse` method\n// https://url.spec.whatwg.org/#dom-url-parse\n$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, {\n  parse: function parse(url) {\n    var length = validateArgumentsLength(arguments.length, 1);\n    var urlString = toString(url);\n    var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n    try {\n      return new URL(urlString, base);\n    } catch (error) {\n      return null;\n    }\n  }\n});\n\n\n/***/ }),\n/* 498 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar defineBuiltIn = __webpack_require__(51);\nvar uncurryThis = __webpack_require__(6);\nvar toString = __webpack_require__(81);\nvar validateArgumentsLength = __webpack_require__(201);\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n  defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n    var length = arguments.length;\n    var $value = length < 2 ? undefined : arguments[1];\n    if (length && $value === undefined) return $delete(this, name);\n    var entries = [];\n    forEach(this, function (v, k) { // also validates `this`\n      push(entries, { key: k, value: v });\n    });\n    validateArgumentsLength(length, 1);\n    var key = toString(name);\n    var value = toString($value);\n    var index = 0;\n    var entriesLength = entries.length;\n    var entry;\n    while (index < entriesLength) {\n      entry = entries[index];\n      $delete(this, entry.key);\n      index++;\n    }\n    index = 0;\n    while (index < entriesLength) {\n      entry = entries[index++];\n      if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n    }\n  }, { enumerable: true, unsafe: true });\n}\n\n\n/***/ }),\n/* 499 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar defineBuiltIn = __webpack_require__(51);\nvar uncurryThis = __webpack_require__(6);\nvar toString = __webpack_require__(81);\nvar validateArgumentsLength = __webpack_require__(201);\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n  defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n    var length = arguments.length;\n    var $value = length < 2 ? undefined : arguments[1];\n    if (length && $value === undefined) return $has(this, name);\n    var values = getAll(this, name); // also validates `this`\n    validateArgumentsLength(length, 1);\n    var value = toString($value);\n    var index = 0;\n    while (index < values.length) {\n      if (values[index++] === value) return true;\n    } return false;\n  }, { enumerable: true, unsafe: true });\n}\n\n\n/***/ }),\n/* 500 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(24);\nvar uncurryThis = __webpack_require__(6);\nvar defineBuiltInAccessor = __webpack_require__(130);\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n  defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n    get: function size() {\n      var count = 0;\n      forEach(this, function () { count++; });\n      return count;\n    },\n    configurable: true,\n    enumerable: true\n  });\n}\n\n\n/***/ })\n/******/ ]); }();\n"
  },
  {
    "path": "docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md",
    "content": "After more than 1.5 years of development, dozens of pre-releases, many sleepless nights, **[`core-js@3`](https://github.com/zloirock/core-js)** is finally released. It's the largest set of changes in `core-js` and polyfilling-related **[`babel`](https://babeljs.io)** features of all time.\n\n---\n\n# core-js@3, babel and a look into the future\n\nWhat is `core-js`?\n- It is a polyfill of the JavaScript standard library, which supports:\n  - The latest ECMAScript standard.\n  - ECMAScript standard library proposals.\n  - Some WHATWG / W3C standards (cross-platform or closely related ECMAScript).\n- It is maximally modular: you can easily choose to load only the features you will be using.\n- It can be used without polluting the global namespace.\n- It is [tightly integrated with `babel`](#Babel): this allows many optimizations of `core-js` import.\n\nIt's the most universal and [the most popular](https://npmtrends.com/airbnb-js-shims-vs-core-js-vs-es5-shim-vs-es6-shim-vs-js-polyfills-vs-polyfill-library-vs-polyfill-service) way to polyfill JavaScript standard library, but a big part of developers just don't know that they use `core-js` indirectly 🙂\n\n## Contributing\n\n`core-js` is my own hobby project and it does not bring me any profit. It takes too much time and it is really costly: to finish work on `core-js@3`, I had left my job some months ago. This project facilitates the life of many people and companies. For these reasons, it makes sense to start raising funds to support the maintenance of `core-js`.\n\nIf you are interested in the `core-js` project or use it in your day-to-day work, you can become a sponsor on **[Open Collective](https://opencollective.com/core-js#sponsor)** or **[Patreon](https://www.patreon.com/zloirock)**.\n\nYou can propose [me](http://zloirock.ru/) a good job where I will be able to work on something related.\n\nOr you can contribute in another way: you can help improve code, tests or documentation (currently, `core-js` documentation is terrible!).\n\n## What changed in `core-js@3`?\n\n### Changes in JavaScript standard library content\n\nBecause of the following two reasons, this release is rich with new JavaScript polyfills:\n- `core-js` only has breaking changes in major releases, even if it is needed to reflect a change in a proposal.\n- `core-js@2` entered feature freeze 1.5 years ago; all new features were added only to the `core-js@3` branch.\n\n#### Stable ECMAScript features\n\nStable ECMAScript features had already been almost completely supported by `core-js` for a long time, however, `core-js@3` introduced some new features:\n- Added support of [`@@isConcatSpreadable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable) and [`@@species`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/species) well-known symbols, introduced in ECMAScript 2015, to all the methods which use them.\n- Added [`Array.prototype.flat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat) and [`Array.prototype.flatMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap) methods from ECMAScript 2018 (`core-js@2` provided a polyfill for an old version of this proposal with `Array.prototype.flatten`).\n- Added [`Object.fromEntries`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries) method, introduced in ECMAScript 2019.\n- Added [`Symbol.prototype.description`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/description) accessor, introduced ECMAScript 2019.\n\nSome features that have already been available for a long time as proposals have been accepted in ES2016-ES2019 and are now marked as stable:\n- [`Array.prototype.includes`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) and [`%TypedArray%.prototype.includes`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/includes) methods (ECMAScript 2016)\n- [`Object.values`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values) and [`Object.entries`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) methods (ECMAScript 2017)\n- [`Object.getOwnPropertyDescriptors`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors) method (ECMAScript 2017)\n- [`String.prototype.padStart`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart) and [`String.prototype.padEnd`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd) methods (ECMAScript 2017)\n- [`Promise.prototype.finally`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/finally) method (ECMAScript 2018)\n- [`Symbol.asyncIterator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/asyncIterator) well-known symbol (ECMAScript 2018)\n- [`Object.prototype.__define(Getter|Setter)__`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__) and [`Object.prototype.__lookup(Getter|Setter)__`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__) methods (ECMAScript 2018)\n- [`String.prototype.trim(Start|End|Left|Right)`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trimStart) methods (ECMAScript 2019)\n\nAdded many fixes for browsers bugs/issues. For example, [Safari 12.0 `Array.prototype.reverse` bug](https://bugs.webkit.org/show_bug.cgi?id=188794) has been fixed.\n\n#### ECMAScript proposals\n\nIn addition to supported before, `core-js@3` now supports the following ECMAScript proposals:\n- [`globalThis`](https://github.com/tc39/proposal-global) stage 3 proposal - before, we had `global` and `System.global`\n- [`Promise.allSettled`](https://github.com/tc39/proposal-promise-allSettled) stage 2 proposal\n- [New `Set` methods](https://github.com/tc39/proposal-set-methods) stage 2 proposal:\n  - `Set.prototype.difference`\n  - `Set.prototype.intersection`\n  - `Set.prototype.isDisjointFrom`\n  - `Set.prototype.isSubsetOf`\n  - `Set.prototype.isSupersetOf`\n  - `Set.prototype.symmetricDifference`\n  - `Set.prototype.union`\n- [New collections methods](https://github.com/tc39/proposal-collection-methods) stage 1 proposal, which includes many new useful methods:\n  - `Map.groupBy`\n  - `Map.keyBy`\n  - `Map.prototype.deleteAll`\n  - `Map.prototype.every`\n  - `Map.prototype.filter`\n  - `Map.prototype.find`\n  - `Map.prototype.findKey`\n  - `Map.prototype.includes`\n  - `Map.prototype.keyOf`\n  - `Map.prototype.mapKeys`\n  - `Map.prototype.mapValues`\n  - `Map.prototype.merge`\n  - `Map.prototype.reduce`\n  - `Map.prototype.some`\n  - `Map.prototype.update`\n  - `Set.prototype.addAll`\n  - `Set.prototype.deleteAll`\n  - `Set.prototype.every`\n  - `Set.prototype.filter`\n  - `Set.prototype.find`\n  - `Set.prototype.join`\n  - `Set.prototype.map`\n  - `Set.prototype.reduce`\n  - `Set.prototype.some`\n  - `WeakMap.prototype.deleteAll`\n  - `WeakSet.prototype.addAll`\n  - `WeakSet.prototype.deleteAll`\n- [`String.prototype.replaceAll`](https://github.com/tc39/proposal-string-replace-all) stage 1 proposal\n- [`String.prototype.codePoints`](https://github.com/tc39/proposal-string-prototype-codepoints) stage 1 proposal\n- [`Array.prototype.last(Item|Index)`](https://github.com/keithamus/proposal-array-last) stage 1 proposal\n- [`compositeKey` and `compositeSymbol` methods](https://github.com/bmeck/proposal-richer-keys/tree/master/compositeKey) stage 1 proposal\n- [`Number.fromString`](https://github.com/tc39/proposal-number-fromstring) stage 1 proposal\n- [`Math.seededPRNG`](https://github.com/tc39/proposal-seeded-random) stage 1 proposal\n- [`Promise.any` (with `AggregateError`)](https://github.com/tc39/proposal-promise-any) stage 0 proposal\n\nSome proposals have been largely changed, and `core-js` was updated accordingly:\n- [`String.prototype.matchAll`](https://github.com/tc39/proposal-string-matchall) stage 3 proposal\n- [`Observable`](https://github.com/tc39/proposal-observable) stage 1 proposal\n\n#### Web standards\n\nMany useful features have been added to this category.\n\nThe most important one is support for [`URL`](https://developer.mozilla.org/en-US/docs/Web/API/URL) and [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams). It was [one of the most popular feature requests](https://github.com/zloirock/core-js/issues/117). Adding `URL` and `URLSearchParams`, making maximally spec-compliant, supporting any environment keeping their source code small compact was [one of the hardest tasks](https://github.com/zloirock/core-js/pull/454/files) in the `core-js@3` development.\n\n`core-js@3` includes *a standard* method to create microtasks in JavaScript: [`queueMicrotask`](https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#microtask-queuing). `core-js@2` provided the `asap` function which did the same thing and was an old ECMAScript proposal. `queueMicrotask` is defined in the HTML standard and it is already available in modern engines like Chromium or NodeJS.\n\nAnother popular feature request was support for the [`.forEach` method on DOM collection](https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach). Since `core-js` already polyfilled iterators of DOM collections, why not add also `.forEach` to `NodeList` and `DOMTokenList`?\n\n#### Removed obsolete features:\n\n- `Reflect.enumerate` because it's removed from the spec\n- `System.global` and `global` since now they are replaced by `globalThis`\n- `Array.prototype.flatten` since it's replaced by `Array.prototype.flat`\n- `asap` since it's replaced by `queueMicrotask`\n- `Error.isError` has withdrawn a long time ago\n- `RegExp.escape` rejected a long time ago\n- `Map.prototype.toJSON` and `Set.prototype.toJSON` also rejected a long time ago\n- Unnecessary `CSSRuleList`, `MediaList`, `StyleSheetList` iteration methods which were added mistakenly\n\n\n#### No more non-standard non-proposed features\n\nMany years ago, I started writing a library which I needed as the core of my JavaScript applications: this library contained polyfills and some utilities for common needs. After some time, it was published as `core-js`. I think that at this moment most `core-js` users do not use non-standard `core-js` features. Almost all of them were removed in previous releases, and it's time to remove all the remaining ones from `core-js`. Starting from this release, `core-js` can be finally called a polyfill.\n\n### Packages, entry points and modules names\n\nA popular issue was a big size (~2MB) of the `core-js` package and duplication of many of its files. For this reason, `core-js` was split into three packages:\n- [`core-js`](https://www.npmjs.com/package/core-js), which defines global polyfills. (~500KB, [40KB minified and gzipped](https://bundlephobia.com/result?p=core-js@3.0.0-beta.20))\n- [`core-js-pure`](https://www.npmjs.com/package/core-js-pure), which provides polyfills without pollution the global environment. It's the equivalent of `core-js/library` from `core-js@2`. (~440KB)\n- [`core-js-bundle`](https://www.npmjs.com/package/core-js-bundle): a bundled version of `core-js` which defines global polyfills.\n\nIn previous versions of `core-js`, modules with polyfills for stable ECMAScript features and ECMAScript proposals were prefixed with `es6.` and `es7.` respectively. It was a decision taken in 2014 when all the features which could be after ES6 were considered as ES7. In `core-js@3` all stable ECMAScript features are prefixed with `es.`, while ECMAScript proposals with `esnext.`.\n\nAlmost all CommonJS entry points were changed. In `core-js@3` there are many more entry points than there were in `core-js@2`: they bring maximum flexibility, making it possible to include only the polyfills needed by your application.\n\nHere are some examples of how the new entry points can be used:\n```js\n// polyfill all `core-js` features:\nimport \"core-js\";\n// polyfill only stable `core-js` features - ES and web standards:\nimport \"core-js/stable\";\n// polyfill only stable ES features:\nimport \"core-js/es\";\n\n// if you want to polyfill `Set`:\n// all `Set`-related features, with ES proposals:\nimport \"core-js/features/set\";\n// stable required for `Set` ES features and features from web standards\n// (DOM collections iterator in this case):\nimport \"core-js/stable/set\";\n// only stable ES features required for `Set`:\nimport \"core-js/es/set\";\n// the same without global namespace pollution:\nimport Set from \"core-js-pure/features/set\";\nimport Set from \"core-js-pure/stable/set\";\nimport Set from \"core-js-pure/es/set\";\n\n// if you want to polyfill just required methods:\nimport \"core-js/features/set/intersection\";\nimport \"core-js/stable/queue-microtask\";\nimport \"core-js/es/array/from\";\n\n// polyfill reflect metadata proposal:\nimport \"core-js/proposals/reflect-metadata\";\n// polyfill all stage 2+ proposals:\nimport \"core-js/stage/2\";\n```\n\n### Some other important changes\n\nIt's now possible to [configure the aggressiveness](https://github.com/zloirock/core-js/blob/master/README.md#configurable-level-of-aggressiveness) of `core-js` polyfills. If you think that `core-js` feature detection is too aggressive in some cases and that the native implementation is correct enough for your use-case, or if an incorrect implementation isn't detected by `core-js` as such, you can change the `core-js` default behavior.\n\nIf a feature can't be implemented following the specification in every detail, `core-js` adds a `.sham` property to the polyfill. For example, in IE11 `Symbol.sham` is `true`.\n\nNo more LiveScript! When I started the `core-js` project, I mainly used [LiveScript](http://livescript.net/); after some time, I rewrote all the polyfills in JavaScript. Tests and helper tools in `core-js@2` still used LiveScript: it is a very interesting CoffeeScript-like language with powerful syntax sugar which allows writing very compact code, but now it's almost dead. Other than that, it was an additional barrier for contributing to `core-js` because most `core-js` users do not know this language. `core-js@3` tests and tools use modern ES syntax: it could be a good moment to start contributing to `core-js` 🙂\n\nFor almost all users, for optimization of `core-js` import, I recommend using [`babel`](#Babel). However, [`core-js-builder`](https://npmjs.com/package/core-js-builder) is still useful in some cases. Now it supports the `targets` argument which takes a [`browserslist`](https://github.com/browserslist/browserslist) query with target engines - you can create a bundle which contains only required for target engines polyfills. For cases like this, I made the [`core-js-compat`](https://www.npmjs.com/package/core-js-compat) package, more info about it you could find in [`@babel/preset-env` part of this article](#babelpreset-env).\n\n---\n\nThis is just the tip of the iceberg, much more changes were done internally. You can find more info about `core-js` changes in the [changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md#300).\n\n## Babel\n\nAs mentioned above, `babel` and `core-js` are tightly integrated: `babel` gives the possibility of optimizing the `core-js` import as much as possible. A serious part of work on `core-js@3` was improving `core-js`-related `babel` features (see [this PR](https://github.com/babel/babel/pull/7646)). Those changes are published in [Babel 7.4.0](https://babeljs.io/blog/2019/03/19/7.4.0).\n\n### `@babel/polyfill`\n\n[`@babel/polyfill`](https://babeljs.io/docs/en/next/babel-polyfill.html) is a wrapper package which only includes imports of stable `core-js` features (in Babel 6 it also included proposals) and `regenerator-runtime/runtime`, needed by transpiled generators and async functions. This package doesn't make it possible to provide a smooth migration path from `core-js@2` to `core-js@3`: for this reason, it was decided to deprecate `@babel/polyfill` in favor of separate inclusion of required parts of `core-js` and `regenerator-runtime`.\n\nInstead of\n```js\nimport \"@babel/polyfill\";\n```\nyou should use those 2 lines:\n```js\nimport \"core-js/stable\";\nimport \"regenerator-runtime/runtime\";\n```\n\nDon't forget install those dependencies directly!\n\n```sh\nnpm i --save core-js regenerator-runtime\n```\n\n### `@babel/preset-env`\n\n[`@babel/preset-env`](https://babeljs.io/docs/en/next/babel-preset-env#usebuiltins) has 2 different modes, which can be enabled with the `useBuiltIns` option: `entry` and `usage`, which optimize imports of `core-js` in different ways.\n\nBabel 7.4.0 introduces both changes commons to the two modes and specific to each mode.\n\nSince `@babel/preset-env` now supports `core-js@2` and `core-js@3`, `useBuiltIns` requires setting a new option, `corejs`, which specifies the used version (`corejs: 2` or `corejs: 3`). If it isn't directly set, `corejs: 2` will be used by default and it will show a warning.\n\nTo make it possible for Babel to support new `core-js` features introduced in future minor versions, you also can specify the minor `core-js` version used in your project. For example, if you want to use `core-js@3.1` and take advantage of new features added in that version, you can set the `corejs` option to `3.1`: `corejs: '3.1'` or `corejs: { version: '3.1' }`.\n\nOne of the most important parts of `@babel/preset-env` was the source providing data about the features supported by different target engines, to understand whether something needs to be polyfilled by `core-js` or not. [`caniuse`](https://caniuse.com/), [`mdn`](https://developer.mozilla.org/en-US/) and [`compat-table`](http://kangax.github.io/compat-table/es6/) are good educational resources but aren't really meant to be used as data sources for developer tools: only the `compat-table` contains a good set of ES-related data and it is used by `@babel/preset-env`, but it has some limitations:\n- it contains data only about ECMAScript features and proposals, but not about web platform features like `setImmediate` or DOM collections iterators. So, up to now, `@babel/preset-env` added all web platform features from `core-js` even for targets where they are supported.\n- it does not contain any information about (even serious) bugs in engines: for example, already mentioned `Array#reverse` broken in Safari 12 but it isn't marked as unsupported by `compat-table`. On the other hand, `core-js` correctly fixes broken implementations, but with `compat-table` this capability wasn't taken advantage of.\n- it contains only some basic and naive tests, which do not check that features work as they should in real-world cases. For example, old Safari has broken iterators without `.next` method, but `compat-table` shows them as supported because it just checks that `typeof` of methods which should return iterators is `\"function\"`. Some features like typed arrays are almost completely not covered.\n- `compat-table` is not designed for providing data for tools. I'm one of the `compat-table` maintainers, but [some of the other maintainers are against maintaining this functionality](https://github.com/kangax/compat-table/pull/1312).\n\nFor this reason, I created the [`core-js-compat`](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat) package: it provides data about the necessity of `core-js` modules for different target engines. When using `core-js@3`, `@babel/preset-env` will use that new package instead of `compat-table`. [Please help us with testing and providing data and mappings for missing engines! 😊](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md#updating-core-js-compat-data)\n\nUntil Babel 7.3, `@babel/preset-env` had some problems related to the order polyfills were injected. Starting from version 7.4.0, `@babel/preset-env` will add the polyfills only when it knows which of them is required and in the recommended order.\n\n#### `useBuiltIns: entry` with `corejs: 3`\n\nWhen using this option, `@babel/preset-env` replaces direct imports of `core-js` with imports of only the specific modules required for a target environment.\n\nBefore those changes, `@babel/preset-env` replaced only `import '@babel/polyfill'` and `import 'core-js'`, they were synonyms and used for polyfilling all stable JavaScript features.\n\nSince `@babel/polyfill` is now deprecated, `@babel/preset-env` doesn't transpile it when `corejs` is set to `3`.\n\nAn equivalent replacement for `@babel/polyfill` with `core-js@3` is\n```js\nimport \"core-js/stable\";\nimport \"regenerator-runtime/runtime\";\n```\n\nWhen targeting `chrome 72`, it will be transformed by `@babel/preset-env` to\n```js\nimport \"core-js/modules/es.array.unscopables.flat\";\nimport \"core-js/modules/es.array.unscopables.flat-map\";\nimport \"core-js/modules/es.object.from-entries\";\nimport \"core-js/modules/web.immediate\";\n```\n\nwhen targeting `chrome 73` (which completely support ES2019 standard library), it will just become a single smaller import:\n```js\nimport \"core-js/modules/web.immediate\";\n```\n\nSince now `@babel/polyfill` is deprecated in favor of separate `core-js` and `regenerator-runtime` inclusion, we can optimize `regenerator-runtime` import. For this reason, `regenerator-runtime` import will be removed from the source code when targeting browsers that support generators natively.\n\nNow, `@babel/preset-env` in `useBuiltIns: entry` mode transpile **all available** `core-js` entry points and their combinations. This means that you can customize it as much as you want, by using different `core-js` entry points, and it will be optimized for your target environment.\n\nFor example, when targeting `chrome 72`,\n```js\nimport \"core-js/es\";\nimport \"core-js/proposals/set-methods\";\nimport \"core-js/features/set/map\";\n```\nwill be replaced with\n```js\nimport \"core-js/modules/es.array.unscopables.flat\";\nimport \"core-js/modules/es.array.unscopables.flat-map\";\nimport \"core-js/modules/es.object.from-entries\";\nimport \"core-js/modules/esnext.set.difference\";\nimport \"core-js/modules/esnext.set.intersection\";\nimport \"core-js/modules/esnext.set.is-disjoint-from\";\nimport \"core-js/modules/esnext.set.is-subset-of\";\nimport \"core-js/modules/esnext.set.is-superset-of\";\nimport \"core-js/modules/esnext.set.map\";\nimport \"core-js/modules/esnext.set.symmetric-difference\";\nimport \"core-js/modules/esnext.set.union\";\n```\n\n#### `useBuiltIns: usage` with `corejs: 3`\n\nWhen using this option, `@babel/preset-env` adds at the top of each file imports of polyfills only for features used in the current and not supported by target environments.\n\nFor example,\n```js\nconst set = new Set([1, 2, 3]);\n[1, 2, 3].includes(2);\n```\n\nwhen targeting an old browser like `ie 11`, will be transformed to\n```js\nimport \"core-js/modules/es.array.includes\";\nimport \"core-js/modules/es.array.iterator\";\nimport \"core-js/modules/es.object.to-string\";\nimport \"core-js/modules/es.set\";\n\nconst set = new Set([1, 2, 3]);\n[1, 2, 3].includes(2);\n```\n\nwhen targeting, for example, `chrome 72` no imports will be injected, since those polyfills not required for this target:\n```js\nconst set = new Set([1, 2, 3]);\n[1, 2, 3].includes(2);\n```\n\nUntil Babel 7.3, `useBuiltIns: usage` was unstable and not fully reliable: many polyfills were not included, and many others were added without their required dependencies. In Babel 7.4, I tried to make it understand every possible usage pattern.\n\nI improved the techniques used to determine which polyfills should be added on property accesses, object destructuring, `in` operator, global object property accesses.\n\n`@babel/preset-env` now injections polyfills required for syntax features: iterators when using `for-of`, destructuring, spread and `yield` delegation; promises when using dynamic `import`, async functions and generators, etc.\n\nBabel 7.4 supports injecting proposals polyfills. By default, `@babel/preset-env` does not inject them, but you can opt-in using the `proposals` flag: `corejs: { version: 3, proposals: true }`.\n\n### `@babel/runtime`\n\nWhen used with `core-js@3`, [`@babel/transform-runtime`](https://babeljs.io/docs/en/next/babel-plugin-transform-runtime#corejs) now injects polyfills from `core-js-pure`: a version of `core-js` that doesn't pollute the global namespace.\n\n`core-js@3` and `@babel/runtime` have been integrated together by adding a `corejs: 3` option to `@babel/transform-runtime` and creating the `@babel/runtime-corejs3` package. But what advantages did this bring?\n\nOne of the most popular issue with `@babel/runtime` was that it did not support instance methods. Starting from `@babel/runtime-corejs3`, this problem has resolved. For example,\n```js\narray.includes(something);\n```\nwill be transpiled to\n```js\nimport _includesInstanceProperty from \"@babel/runtime-corejs3/core-js-stable/instance/includes\";\n\n_includesInstanceProperty(array).call(array, something);\n```\n\nAnother notable change is the support of ECMAScript proposals. By default, `@babel/plugin-transform-runtime` does not inject polyfills for proposals and use entry points which do not include them but, exactly as you can do in `@babel/preset-env`, you can set the `proposals` flag to enable them: `corejs: { version: 3, proposals: true }`.\n\nWithout `proposals` flag,\n```js\nnew Set([1, 2, 3, 2, 1]);\nstring.matchAll(/something/g);\n```\nis transpiled to:\n```js\nimport _Set from \"@babel/runtime-corejs3/core-js-stable/set\";\n\nnew _Set([1, 2, 3, 2, 1]);\nstring.matchAll(/something/g);\n```\nwhen proposals are enabled, it becomes:\n```js\nimport _Set from \"@babel/runtime-corejs3/core-js/set\";\nimport _matchAllInstanceProperty from \"@babel/runtime-corejs3/core-js/instance/match-all\";\n\nnew _Set([1, 2, 3, 2, 1]);\n_matchAllInstanceProperty(string).call(string, /something/g);\n```\n\nSome other old issues have been fixed. For example, this quite popular pattern didn't work when using `@babel/runtime-corejs2` but it is supported with `@babel/runtime-corejs3`.\n\n```js\nmyArrayLikeObject[Symbol.iterator] = Array.prototype[Symbol.iterator];\n```\nAlthough previous versions of `@babel/runtime` did not work with instance methods, iterables (both `[Symbol.iterator]()` calls and its presence) were supported using some custom helper functions. Extracting the `[Symbol.iterator]` method was not supported, but now it works.\n\nAs a cheap bonus, `@babel/runtime` now supports IE8-, with some limitations. For example, since IE8- does not support accessors, modules transform should be used in loose mode and `regenerator-runtime` (which internally uses some ES5+ built-ins) needs to be transpiled by this plugin.\n\n## Look into the future\n\nMuch work has been done, but `core-js` is still far from perfect. How can the library and tools be improved in the future and how do language changes can affect it?\n\n### Old engines support\n\nAt this moment, `core-js` tries to support all possible engines and platforms where we can test it: it even supports IE8- or, for example, early Firefox versions. While it is useful for some users, only a small part of developers using `core-js` need it. For many other users, it can cause some problems like bigger bundle size or slower runtime execution.\n\nThe main problem comes from supporting ES3 engines (above all, IE8-): most modern ES features are based on ES5 features, which aren't available in those very old browsers.\n\nThe biggest missing important feature is property descriptors: when they aren't available, some features can't be polyfilled because they either are accessors (like `RegExp.prototype.flags` or `URL` properties setters) or are accessors-based (like typed arrays polyfill). In order to workaround this lack, we need to use different workarounds (for example, to keep `Set.prototype.size` updated). Maintenance of those workarounds sometimes is too painful, and removing them would highly simplify many polyfills.\n\nHowever, descriptors are just a part of this problem. The ES5 standard library contains many other features that can be considered as the basis of modern JavaScript: `Object.keys`, `Object.create`, `Object.getPrototypeOf`, `Array.prototype.forEach`, `Function.prototype.bind`, etc. Unlike the most modern features, `core-js` internally relies on them and [in order to implement even a simple modern function, `core-js` needs to load implementations of some of those \"building blocks\"](https://github.com/babel/babel/pull/7646#discussion_r179333093). It is a problem for users who want to create [a maximally minimalistic bundle](https://github.com/zloirock/core-js/issues/388) and only import just a few `core-js` polyfills.\n\nIn some countries, IE8 still is quite popular, but browsers should disappear at some point to allow the web to move forward. IE8 was released 19-03-2009; today it is 19-03-2019: it's the 10th birthday of IE8. IE6 is about to turn 18: I stopped testing new `core-js` versions in IE6 some months ago.\n\nWe should drop IE8- and other engines without basic ES5 support in `core-js@4`.\n\n### ECMAScript modules\n\n`core-js` use `CommonJS` modules. It has been the most popular JavaScript modules format for a long time, but now ECMAScript provides its own modules format. Many engines already support them; some bundlers (like `rollup`) are based on them, and some other bundlers provide them as an alternative to `CommonJS`. It would make sense to provide an alternative version of `core-js` which uses ECMAScript modules format.\n\n### Extended web standards support?\n\n`core-js` is currently focused on ECMAScript support, but it also supports a few web standards features which are available cross-platform and closely related to ECMAScript. Adding polyfills for web standards like `fetch` is a very popular feature request.\n\nThe main reason why `core-js` doesn’t include them was that it would have seriously increased bundles size and it would have forced `core-js` users to load features which might not have been needed. Now `core-js` is maximally modular, user can include only some chosen features, there are tools like `@babel/preset-env` and `@babel/runtime` which helps to get rid of unused or unnecessary polyfills.\n\nMaybe it's time to revisit this old decision?\n\n### `@babel/runtime` for target environment\n\nCurrently, we can't set the target environment as `@babel/runtime` like we can do for `@babel/preset-env`. That means that `@babel/runtime` injects all possible polyfills even when targeting modern engines: it unnecessarily increases the size of the final bundle.\n\nSince `core-js-compat` contains all the necessary data, in the future, it will be possible to add support for compiling for a target environment to `@babel/runtime` and to add a `useBuiltIns: runtime` option to `@babel/preset-env`.\n\n### Better optimization of polyfill loading\n\nAs explained above, Babel plugins give us different ways of optimizing `core-js` usage, but they are not perfect: we can improve them.\n\n`@babel/preset-env` with `useBuiltIns: usage` now should work much better than before, but it could still fail in some uncommon cases: when the code can't be statically analyzed. For that case, we need to find a way for library developers to specify which polyfills are required by their library instead of directly loading them: some kind of metadata, which will be used to inject polyfills when creating the final bundle.\n\nAnother issue of `useBuiltIns: usage` is the duplication of polyfills import. `useBuiltIns: usage` can inject dozens of `core-js` imports in each file. But what if our project has thousands of files or even tenths of thousands? In this case, we will have more lines of code with `import \"core-js/...\"` than lines of code in `core-js` itself: we need a way to collect all imports to one file so that they can be deduplicated.\n\nAlmost every `@babel/preset-env` user which targets old engines like IE11 uses a single bundle for every browser. That means that even modern engines with full ES2019 support will be loading the unnecessary polyfills only required by IE11. Sure, we can create different bundles for different targets and use, for example, the `type=module` / `nomodules`  attributes: one bundle for modern engines with modules support, another for legacy engines. Unfortunately, it’s not a complete solution to this problem: a service that bundles polyfills for the required target based on the user agent would be really useful. And we already have one - [`polyfill-service`](https://github.com/Financial-Times/polyfill-service). Although it is an interesting and popular service, polyfills quality leaves much to be desired. It’s not as bad as it was some years ago: the team of this project is actively working to improve it, but I wouldn't recommend using polyfills from this project if you want them to match native implementations. Some years ago was an attempt to use `core-js` as a polyfills source for this project, but it hadn't been possible because `polyfill-service` relies on files concatenation instead of modules (like `core-js` in the first few months after it was published 😊).\n\nA service like this one integrated with a good polyfills source like `core-js`, which only loads the needed polyfills by statically analyzing the source like Babel's `useBuiltIns: usage` option does could cause a revolution in the way we think about polyfills.\n\n### New features proposals from TC39 and possible problems for `core-js`\n\nTC39 is working really hard to improve ECMAScript: you can see the progress by looking at all the new proposals implemented in `core-js`. However, I think that some features of some proposals could cause serious problems for polyfilling / transpiling. There would be enough to say about this topic to write a whole new post, but I'll try to summarize my thoughts here.\n\n#### Standard library proposal, stage 1\n\nAt this moment, TC39 is considering adding to ECMAScript [built-in modules](https://github.com/tc39/proposal-javascript-standard-library): a modular standard library. It would be a great addition to JavaScript, and `core-js` is the best place where it could be polyfilled. With the techniques used in `@babel/preset-env` and `@babel/runtime`, we could theoretically inject polyfills for required built-in modules in a very simple way. However, the current version of this proposal causes some serious problems which don't make it as straightforward.\n\nPolyfilling of built-in modules, [as stated by the authors of the proposal](https://github.com/tc39/proposal-javascript-standard-library/issues/2), only means falling back to layered APIs or import maps. This means that if a native module will be missing, it will be possible to load a polyfill from a provided URL. That's absolutely not what polyfills need, and it is incompatible with the architecture of `core-js` and every other popular polyfill project. Import maps shouldn't be the only way to polyfill built-in modules.\n\nWe will be able to get a built-in module just by using ES modules syntax with a special prefix. This syntax haven't any equal based on the previous version of the language - transpiled modules will not be able to interact with not transpiled in modern engines - it will cause problems for package distribution.\n\nMore other, it will work asynchronously. It's a critical problem for feature detection - scripts will not wait when you'll detect a feature and load a polyfill - feature detection should be done synchronously.\n\n[The first implementation of built-in modules without a proper way of transpiling / polyfilling already available](https://developers.google.com/web/updates/2019/03/kv-storage). If it will not be revised, built-in modules will not be able to be polyfilled in the current `core-js` format. The proposed way of polyfilling will seriously complicate the lives of developers.\n\nThe issue with the standard library can be solved by adding a new global (maybe it will be the last one?): a registry of built-in modules which will allow getting and setting them synchronously, like\n```js\nStandardLibraryRegistry.get(moduleName);\nStandardLibraryRegistry.set(moduleName, value);\n```\n\nAsynchronous fallbacks like layered APIs should be used only after this global registry.\n\nAs a bonus point, it would simplify transpiling native modules import to old syntax.\n\n#### Decorators proposal, new iteration, stage 2\n\n[In the new iteration](https://github.com/tc39/proposal-decorators) of this proposal, it has been seriously reworked. Decorator definitions aren't a syntax sugar anymore and, like with built-in modules, we will not be able to write a decorator in an old version of the language and use it as a native decorator. Other than that, decorators are not just usual identifiers - they live in a parallel lexical scope: this means that transpiled decorators can't interact with native decorators.\n\nThe proposal authors recommend distributing packages with untranspiled decorators and leaving to the library consumers the choice to transpile their dependencies. However, it's not possible in different scenarios. This approach could prevent `core-js` from polyfilling new built-in decorators when they will be added to the JS standard library.\n\nDecorators should be just an alternative way of applying functions on something, they should only be syntax sugar for wrappers. Why complicate things?\n\n---\n\nIf a new language feature does not introduce to the language something fundamentally new, an alternative for what couldn't be implemented in a previous version of the language, we should be able to transpile and/or polyfill it, and transpiled/polyfilled code should be able to interact with the native feature in engines which supports this feature natively.\n\nI hope for the wisdom of the authors of those proposals and of the committee, that these proposals will be adapted so that it will be possible to properly transpile or polyfill them.\n\n---\n\nIf you are interested in the `core-js` project or use it in your day-to-day work, you can become a sponsor on **[Open Collective](https://opencollective.com/core-js#sponsor)** or **[Patreon](https://www.patreon.com/zloirock)**. `core-js` isn't backed by a company: its future depends on you.\n\n---\n\n**Feel free to add comments to this article [here](https://github.com/zloirock/core-js/discussions/963).**\n\n**[Denis Pushkarev](https://github.com/zloirock)**, **19-03-2019**, *thanks [Nicolò Ribaudo](https://github.com/nicolo-ribaudo) for redaction*\n"
  },
  {
    "path": "docs/2023-02-14-so-whats-next.md",
    "content": "<p align=\"center\"><img alt=\"core-js\" src=\"https://user-images.githubusercontent.com/2213682/146607186-8e13ddef-26a4-4ebf-befd-5aac9d77c090.png\" /></p>\n\nHi. I am (**[@zloirock](https://github.com/zloirock)**), a full-time open-source developer. I don't like to write long posts, but it seems it is high time to do it. Initially, this post was supposed to be a post about the start of active development of the new major version of `core-js` and the roadmap (it was moved to [the second half](#roadmap)), however, due to recent events, it became a really long post about many different things... I'm fucking tired. Free open-source software is fundamentally broken. I could stop working on this silently, but I want to give open-source one last chance.\n\n---\n\n# So, what's next?\n\n<details>\n<summary><b>🔻 Click to see how you can help 🔻</b></summary>\n\nIf you or your company use `core-js` in one way or another and are interested in the quality of your supply chain, support the project:\n- [**Open Collective**](https://opencollective.com/core-js)\n- [**Patreon**](https://patreon.com/zloirock)\n- [**Boosty**](https://boosty.to/zloirock)\n- **Bitcoin ( bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz )**\n- [**Alipay**](https://user-images.githubusercontent.com/2213682/219464783-c17ad329-17ce-4795-82a7-f609493345ed.png)\n\n**Write me if you want to offer a good job on Web-standards and open-source.**\n</details>\n\n## What is [`core-js`](https://github.com/zloirock/core-js)?\n\n- It is the most popular and the most universal polyfill of the JavaScript standard library, which provides support for the latest ECMAScript standard and proposals, from ancient ES5 features to bleeding edge features like [iterator helpers](https://github.com/tc39/proposal-iterator-helpers), and web platform features closely related to ECMAScript, like `structuredClone`.\n- It is the most complex and comprehensive polyfill project. At the time of publishing this post, `core-js` contains about half a thousand polyfill modules with different levels of complexity — from `Object.hasOwn` or `Array.prototype.at` to `URL`, `Promise` or `Symbol` — that are designed to work together. With a different architecture, each of them could be a separate package — however, it is not as convenient.\n- It is maximally modular — you can easily (or even automatically) choose to load only the features you will be using. It can be used without polluting the global namespace (someone calls such a use case \"ponyfill\").\n- It is designed for integration with tools and provides everything that's required for this — for example, `@babel/preset-env`, `@babel/transform-runtime`, and similar SWC features are based on `core-js`.\n- It is one of the main reasons why developers could use modern ECMAScript features in their development process every day for many years, but most developers just don't know that they have this possibility because of `core-js` since they use `core-js` indirectly as it's provided by their transpilers / frameworks / intermediate packages like `babel-polyfill` / etc.\n- It is not a framework or a library, whose usage requires the developer to know their API, periodically look at the documentation, or at least remember that he or she is using it. Even if developers use `core-js` directly — it's just some lines of import or some lines in the configuration (in most cases — with mistakes, since almost no one read the documentation), after that, they forget about `core-js` and just use features from web-standards provided by `core-js` — but sometimes this is the most of JS standard library that they use.\n\n[About 9 billion NPM downloads / 250 million NPM downloads for a month](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-bundle&from=2014-11-18), 19 million dependent GitHub repositories ([global](https://github.com/zloirock/core-js/network/dependents?package_id=UGFja2FnZS00ODk5NjgyNDU%3D) ⋃ [pure](https://github.com/zloirock/core-js/network/dependents?package_id=UGFja2FnZS00MjYyOTI0Ng%3D%3D)) — big numbers, however, they do not show the real spread of `core-js`. Let's check it.\n\nI wrote [a simple script](https://github.com/zloirock/core-js/blob/master/scripts/usage/usage.mjs) that checks the usage of `core-js` in the wild by the Alexa top websites list. We can detect obvious cases of `core-js` usage and used versions (only modern).\n\n<p align=\"center\"><img alt=\"usage\" src=\"https://user-images.githubusercontent.com/2213682/218452738-859e7420-6376-44ec-addd-e91e4bcdec1d.png\" /></p>\n\nAt this moment, this script running on the TOP 1000 websites **detects usage of `core-js` on [52%](https://gist.github.com/zloirock/7ad972bba4b21596a4037ea2d87616f6) of tested websites**. Depending on the phase of the moon (the list, websites, etc. are not constants), results may vary by a few percent. However, it's just a naive detection on websites' home pages using a modern browser that loses many cases, **manual check shows that it's additional dozens of percent**. For example, let's leave the home pages of some websites from the screenshot above where `core-js` was **not** found by this script, without repeating for each company (at first — MS that's already on the screenshot) websites (be patient, after the series of screenshots the number of pictures will decrease):\n\n<p align=\"center\"><img alt=\"whatsapp\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/153953087-8e3891aa-f00a-4882-a338-f4cc7496581b.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"linkedin\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/190879234-30c15dbb-cd5e-4056-8f32-2eac67ef9e89.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"netflix\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/213377001-2af36bac-0577-4e34-a4fc-a49ca06e9f04.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"qq\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/213378031-57496cb0-b6b6-4cc8-9656-f126820db26f.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"ebay\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/213379258-eba54efb-1c65-451a-91af-9f9978ece5a7.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"apple\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/161145359-812efe4c-33c9-4905-96b9-fef23d2d969e.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"fandom\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/218451581-5cae922c-f782-4e44-8385-a443ef0f8232.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"pornhub\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/174662177-5767c34b-f347-4045-96da-5b0783a1345b.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"paypal\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/218453759-d15fc6c4-4246-479d-aea6-b9123ecb59a2.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"binance\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/213380797-70a61338-2152-4642-b0e7-affebe2c3b71.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"spotify\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/213381068-fb73821f-3cfa-4f37-9096-305587c16ef8.png\" /></p>\n\n**With such a manual check, you can find `core-js` on about 75-80% of the top 100 websites** while the script found it on about 55-60%. On a larger sample the percentage, of course, decreases.\n\n[Wappalyzer](https://www.wappalyzer.com/technologies/javascript-libraries/) allows to detect used technologies, including `core-js`, with a browser plugin and has previously shown interesting results, but now on their website, all the most popular technologies' public results are limited to only about 5 million positives. Statistics based on Wappalyzer results are available [here](https://almanac.httparchive.org/en/2022/javascript#library-usage) and show `core-js` on 41% and 44% of 8 million mobile and 5 million desktop tested pages. [Built With at this moment shows `core-js` on 54% of TOP 10000 sites](https://trends.builtwith.com/javascript/core-js) (however, I'm not sure about the completeness of their detection and see the graph from another reality).\n\nAnyway, we can say with confidence that **`core-js` is used by most of the popular websites**. Even if `core-js` is not used on the main site of any large corporation, it's definitely used in some of their projects.\n\nWhat JS libraries are more widespread on websites? It's not [React](https://trends.builtwith.com/javascript/React), [Lodash](https://trends.builtwith.com/javascript/lodash), or any other most talked-about library or framework, I am pretty sure only about [\"good old\" jQuery](https://trends.builtwith.com/javascript/jQuery).\n\nAnd `core-js` is not only about a website's frontend — it's used almost everywhere where JavaScript is used — but I think that's more than enough statistics.\n\n<p align=\"center\"><img alt=\"github\" src=\"https://user-images.githubusercontent.com/2213682/211223204-ec62ea94-1df8-4a91-a9b2-4e85aef24677.png\" /></p>\n\nHowever, for the above reasons, [**almost no one remembers that he or she uses `core-js`**](https://2022.stateofjs.com/en-US/other-tools).\n\nWhy am I posting this? No, not to show how cool I am, but to show how bad everything is. Read on.\n\n---\n\n## Let's start the next part with one popular `xkcd` picture\n\n[<p align=\"center\"><img alt=\"xkcd\" src=\"https://user-images.githubusercontent.com/2213682/113476934-c70f0900-94a8-11eb-8723-d080f129a449.png\" /></p>](https://xkcd.com/2347/)\n\n### Beginning\n\nI switched my development stack to full-stack JavaScript in 2012. It was a time when JavaScript still was too raw — IE still was more popular than anything else, ES3 era browsers still occupied a significant part of the web, the latest NodeJS version was 0.7 — it was just starting its way. JavaScript still was not adapted for writing of serious applications and developers solved the lack of required language syntax sugar with compilers from languages like CoffeeScript and the lack of proper standard library with libraries like Underscore. However, it wasn't a standard — over time, these languages and libraries became obsolete together with the projects that used them. So, I took all news of the upcoming ECMAScript ~~Harmony~~ 6 standard with great hope.\n\nGiven the prevalence of old JavaScript engines and the fact that users were in no hurry and often did not have the opportunity to abandon them, even in the case of quick and problem-free adoption of the new ECMAScript standard, the ability to use it only through JavaScript engines was postponed for many and many years. But it was possible to try to get support features from this standard using some tools. Transpilers (this word was not as popular as it is now) should have to solve the problem with the syntax, and polyfills — with the standard library. However, at that time the necessary toolkit was only just beginning to emerge.\n\nIt was a time when ECMAScript transpilers started to become popular and develop actively. However, at the same time, polyfills have barely evolved according to users' and real-life projects' needs. They were not modular. They could not be used without global namespace pollution — so they were not suitable for libraries. They weren't a single complex — it was required to use multiple different polyfill libraries from different authors and somehow make them work together — but in some cases, it was almost impossible. Too many necessary fundamental language features were just missing.\n\nTo fix these problems, at the end of 2012, initially for my own projects, I started to work on a project that was later called `core-js`. I wanted to make the life of all JS developers easier and in November 2014, I published `core-js` as an open-source project. *Maybe it was the biggest mistake in my life.*\n\nSince I was not the only one who faced these issues, after a few months, `core-js` has already become the de facto standard of polyfill for JavaScript standard library features. `core-js` was integrated into Babel (`6to5` at that moment) which appeared a couple of months before `core-js` was published — some of the aforementioned issues were critical for that project too. `core-js` began to be distributed as `6to5/polyfill`; and after rebranding as `babel-polyfill`. After a few months of collaboration, a tool has appeared, which became `babel-runtime` after rebranding and evolution. A few months later `core-js` was integrated into the key frameworks.\n\n### Ensuring compatibility for the whole Web\n\nI didn't promote myself or the project. *This is the second mistake.* `core-js` didn't have a website or social media accounts, only GitHub. I did not show up at conferences to talk about it. I wrote almost no posts about it. I was just making a really useful and wanted part of the modern development stack, and I was happy about that. I gave developers a chance to use the most modern and really necessary JavaScript features without waiting for years until they are implemented in all required engines, without thinking about compatibility and bugs — and they started to use it. The spread of the project had grown exponentially — very soon it was already used on dozens of percent of popular websites.\n\nHowever, it was just the start of the required work. Many years of hard work followed. Almost every day I spent some hours on `core-js` and maintenance of related projects (mainly Babel and [`compat-table`](https://kangax.github.io/compat-table/es2016plus/)).\n\n![github](https://user-images.githubusercontent.com/2213682/218516268-6ec765a5-50df-4d45-971f-3c3fc4aba7a1.png)\n\n`core-js` is not a several lines library that you can write and forget about it. Unlike the vast majority of libraries, it's bound to the state of the Web. It should react to any change of JavaScript standards or proposals, to any new JS engine release, to any detection of a bug in JS engines, etc. ECMAScript ~~6~~ 2015 was followed by new proposals, new versions of ECMAScript, new non-ECMAScript web standards, new engines and tools, etc. The evolution, the improvement of the project, and the adaptation to the current state of the Web have never stopped — and almost all of this work remains not visible to the average user.\n\nThe scale of required work was constantly growing.\n\nI tried to find other maintainers or at least constant contributors for `core-js` in different ways for a long time, but all attempts have failed. Almost every JS developer used `core-js` indirectly and knew, for example, `babel-polyfill`, `babel-runtime`, or that their framework polyfilled all required features, but almost no one knew `core-js`. In some posts about polyfilling where `core-js` was mentioned, it was called \"a small library\". It was not a trendy and widely discussed project, so why help maintain it if it works great anyway? Over time, I lost hope for it, but I felt a responsibility to the community, so I was forced to continue working alone.\n\nAfter a few years combining full-time work and FOSS became almost impossible — no one wanted to pay money for the working time devoted to FOSS, non-working hours were not enough, and sometimes `core-js` required complete immersion for weeks. I thought that proper polyfilling is required for the community and money was not my priority.\n\nI left a high-paying job and did not accept some very good options because in those positions I would not have had the opportunity to devote enough time to work on open-source. I started to work on open-source full-time. No one paid me for it. I hoped sooner or later to find a job where I could fully dedicate myself to open-source and web standards. Periodically, I earned the money required for living and work on FOSS, on short-term contracts. I returned to Russia, where it was possible to have a decent standard of living with relatively little money. *One more mistake — as you will see below, money matters.*\n\n---\n\nUntil April 2019, for about one and a half years as a whole and about a half-year full-time without distraction of any other work, I worked on [the `core-js@3` with a fundamental improvement of polyfilling-related Babel tools](https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md), the foundation of the toolkit generation that now is used almost everywhere.\n\n### Accident\n\nShit happened 3 weeks after the `core-js@3` release. One April night, at 3 AM, I was driving home. Two deadly drunk 18-years-old girls in dark clothes decided somehow *to crawl* across a poorly lit highway — one of them laid down on the road, another sat down and dragged the first, but not from the road — directly under my wheels. That's what the witnesses said. I had absolutely no chance to see them. One more witness said that before the accident they were just jokingly fighting on the road. Nothing unusual, it's Russia. One of them died and another girl went to the hospital. However, even in this case, according to Russian arbitrage practice, if the driver is not a son of a deputy or someone like that, he would almost always be found guilty — he has to see and anticipate everything, and a pedestrian owes nothing to anyone. I could end up in prison for a long time, IIRC later the prosecutor requested 7 years.\n\nThe only way not to end up in prison was reconciliation with \"victims\" — a standard practice after such accidents — and a good lawyer. Within a few weeks after the accident, I received financial claims totaling about 80 thousand dollars at the exchange rate at that time from \"victims'\" relatives. A significant amount of money was also needed for a lawyer.\n\nMaybe it's not an inconceivable amount of money for a good software engineer, but, as I wrote just above, I worked full time on the `core-js@3` release for a long time. Of course, no one paid me for this work, and I completely exhausted all my financial reserves, so, sure, I didn't have that kind of money and I didn't have a chance to find the money required from available sources. The time I had was running out.\n\n### Fundraising\n\nBy that time `core-js` already was used almost as widely as it is now. As I wrote above, I looked for contributors for `core-js` for a long time without any success. However, `core-js` is a project that should be actively maintained and it can't stay just frozen. My long-term imprisonment would have caused problems not only for me — but it would have also been the death of `core-js` and a problem for everyone who had been using it — for half of the Web. The notorious [bus factor](https://en.wikipedia.org/wiki/Bus_factor).\n\nSome months before that, I started raising funds to support the `core-js` development (mainly it was posted in READMEs on GitHub and NPM). The result was... \\$57 / month. Fair pay for full-time work on ensuring compatibility for the whole web 😂\n\nI decided to do a little experiment — to ask for help from the `core-js` users — those who will suffer if `core-js` will be left without maintenance. I added a message in `core-js` installation:\n\n![postinstall](https://user-images.githubusercontent.com/2213682/153024428-28b8102c-ce08-461c-af99-d0417dc7d2cd.png)\n\nI understood that I'd have hardly gotten all the required money from donations, however, every dollar mattered. I added a job search message to get a chance to earn the other part. I was thinking that a few lines in the NPM installation log asking to help, which can be hidden if needed, is an acceptable price for using `core-js`. The original plan was to delete this message in a few weeks, but everything went against the plan. How wrong I was about people...\n\n### Hate\n\nOf course, I expected that someone would not like to see a request for help in their console, but the continuous stream of hate that I began to receive went through the roof. It was hundreds of messages, posts, and comments every day. All of it can be reduced to something like:\n\n<p align=\"center\"><img alt=\"get-rid\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/154875165-2b144651-5769-4f8e-9072-3a1a03bfe164.png\" /></p>\n\nThis is far from the funniest thing I've seen — if I wanted to, I could collect a huge selection of statements in the style [collected here](https://github.com/samdark/opensource-hate) — but why? I already have enough negativity in my life.\n\n**Developers love to use free open-source software — it's free and works great, they are not interested in the fact that many and many thousands of hours of development, and real people with their own problems and needs are behind it. They consider any mention of this as an invasion of their personal space or even a personal affront. For them, these are just gears that should automatically change without any noise and their participation.**\n\nSo, thousands of developers attacked me with insults and claimed that I have no right to ask them for any kind of help. My request for help offended them so much that they began to demand restricting my access to the repository and packages and move them to someone else like it was done with [`left-pad`](https://arstechnica.com/information-technology/2016/03/rage-quit-coder-unpublished-17-lines-of-javascript-and-broke-the-internet/). Almost none of them understood what `core-js` does, the scale of the project, and, of course, nobody wanted to maintain it — it should be done by \"the community\", someone else. Seeing all this hatred, in order to not be led by the haters, I did not delete the help-asking message, which was initially planned to be there only for a couple of weeks, just out of principle.\n\n**What about companies which `core-js` helped and is helping to make big money? It's almost every big company. Let's rephrase [this old tweet](https://twitter.com/AdamRackis/status/931195056479965185):**\n\n> Company: \"We'd like to use SQL Server Enterprise\"\n>\n> MS: \"That'll be a quarter million dollars + $20K/month\"\n>\n> Company: \"Ok!\"\n>\n> ...\n>\n> Company: \"We'd like to use core-js\"\n>\n> core-js: \"Ok! npm i core-js\"\n>\n> Company: \"Cool\"\n>\n> core-js: \"Would you like to help contribute financially?\"\n>\n> Company: \"lol no\"\n\nA few months later, tired of user complaints, NPM presented [`npm fund`](https://docs.npmjs.com/cli/v6/commands/npm-fund) — it was not a solution for the problem, it was just a way to get rid of those complaints. How often did you call `npm fund`? How often did you donate to someone who you saw in `npm fund`? Who did you see and support at first — `core-js` or someone who maintains a dozen of one-line libraries dependent on each other? It also provided NPM with a perfect justification for the future step (read below).\n\nWithin 9 months many thousands of developers, including developers of projects fundamentally dependent on `core-js`, knew about the situation — but no one offered to maintain `core-js`. Within many months I talked with maintainers of some significant projects dependent on `core-js`, but without any success — they didn't have the necessary time resources. So I was forced to ask some of my friends who were not related to FOSS community (at first **[@slowcheetah](https://github.com/slowcheetah)**, thanks him for his help) to cover for me and at least try to fix significant issues until I get free.\n\n---\n\nFew users and small companies supported the `core-js` — and I am very grateful to them. However, the amount of money raised in 9 months was only about 1/4 of the money that should have been collected within a couple of weeks to change something.\n\nDuring the same time, despite everything, the number of `core-js` downloads per day almost doubled.\n\nIn January 2020 I ended up in prison.\n\n### Release\n\nI don't wanna say many words about prison and I have no great desire remembering this. It was slave labor at a chemical factory where my health was significantly ruined and where I 24/7 had a great time in a company of drug dealers, thieves, and killers (from other regimes), without access to the Internet and computers.\n\nAfter about 10 months, I was released early.\n\n---\n\nI saw dozens of articles, hundreds of posts, and thousands of comments the essence of many of which can be expressed by this:\n\n<p align=\"center\"><img alt=\"reddit\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/218419779-d61c9e39-c8c1-412b-83aa-eb1b12d2e760.png\" /></p>\n\nWhat do you think I did? *Of course, I made the same mistake.* I saw some people who supported the development of `core-js`, many issues, questions, and messages — sure, not as many as angry comments. `core-js` became even more popular and was already used by almost the same percentage of websites as it is now.\n\n### Ensuring compatibility for the whole Web again\n\nI returned to `core-js` maintenance like it was before. Moreover, I completely stopped being distracted by contracts and any other work in favor of working on `core-js`. `core-js` had some money on funding platforms — not so much, many times less than I received before starting work on `core-js` full-time — but for me alone it was enough to live on. A kind of down-shifting, full-time Open-Source to make the world better... I didn't think about the tens of thousands of dollars in lawsuits left over from the accident. I didn't think about my future. I thought about a better future for the Web. And, of course, I was hoping that some company would offer me a position with the opportunity to work on web standards and would sponsor my work on polyfills and FOSS.\n\n[A lot has been accomplished](https://github.com/zloirock/core-js/compare/0943d43e98aca9ea7b23cdd23ab8b7f3901d04f1...master) over the next two years — in terms of work, almost as much as in the previous 8 years. This is still `core-js@3` — but much better. However, the changelog and even the previous diff reflect only a small percentage of the work done. Almost all of this work remains in the shadows, not visible to the average user.\n\nIt is the fundamental work with standards and proposals. As a side effect of this work, taking into account the hard work that was done and changes after my feedback and suggestions, I consider many of the ECMAScript proposals — that have become part of the language — are my achievements as much as they are achievements of their champions. It is the work with engines and their bug trackers in searching for bugs. It is the constant automatic and (too often) manual testing in many hundreds of environments, many thousands of environments / builds / test suites combinations to ensure proper operation of the standard library everywhere and to collect compat data. From a raw prototype, made in a couple of days, `core-js` compat data became an exhaustive data set with proper external and internal tooling. It is the design and prototyping of many features that are yet to appear in the project. And also much, much more.\n\n---\n\nAs you can see above, `core-js` is present in most of the popular websites, provides an almost complete JavaScript standard library, and fixes improper implementations. The number of web page openings with `core-js` is greater than the number of web page openings in Safari and Firefox. Thus, from a certain point of view, `core-js` can be called one of the most popular JavaScript runtimes.\n\nWhen working on `core-js`, I am the first implementer of almost all modern and future JavaScript standard library features, almost all of them have my feedback and they have been fixed according to it. `core-js` is the best playground for experimentation with ECMAScript proposals. In too many cases, proposals receive feedback from other users after they play with experimental `core-js` implementations of these proposals.\n\nThe best way forward for JavaScript would be for TC39 and `core-js` to work together on the future of JavaScript. For example, TC39 invites members of projects like Babel and others as experts. Except `core-js`. Instead, too often, I see the ignoring of my or `core-js`'s issues or even creation of roadblocks by TC39 members; and they don't even hide it:\n\n<p align=\"center\"><img alt=\"shu\" width=\"600\" src=\"https://user-images.githubusercontent.com/2213682/140033052-46e53b0c-e1bc-4c84-a1f4-3511d7de604a.png\" /></p>\n\n---\n\n<p align=\"center\"><img alt=\"lj\" width=\"800\" src=\"https://user-images.githubusercontent.com/2213682/217476089-604b1629-73a8-4715-9276-a601004f0947.png\" /></p>\n\n---\n\nAfter a while, \"support\" came from NPM. In `npm@7`, which was released at the end of 2020, as a logical continuation of `npm fund`, the console output was disabled in post-install scripts. The result was expectable, because people stopped seeing the funding request and almost no one uses `npm fund`, the number of `core-js` backers began to decline. An excellent support for the project from those, who not only earn by distributing my work, but also use it themselves :-)\n\n<p align=\"center\"><img alt=\"npm\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/218333796-18bee93f-64e7-4257-8ddd-d16fc4f05989.png\" /></p>\n\nIn addition, another factor came into play again. Higher quality — less support. Is the library well-maintained? There are practically almost no open bug reports, and when they happen, they are fixed almost instantly? Does the library already give us almost everything we want? Yes? So why should we support the maintenance of the library? The price at which this is done for the maintainers is not on the surface — for most developers and companies, it's still just \"a small library\". Many of those, who backed `core-js` before, stopped doing it.\n\nThe `core-js` code contains my copyright. As you can see at the top of this post, it's present in about half of all websites. Regularly someone finds it in the source code of harmful sites / applications — but they don't know what `core-js` is and their tech level is not good enough even to find it out. When this happens, the police will call and threaten me, and someone even tried to blackmail me. Sometimes it's not funny at all.\n\nI have been contacted several times by American and Canadian journalists who discovered `core-js` on American news and government websites. They were very disappointed that I was not an evil Russian hacker who meddles in American elections.\n\nThe endless stream of hatred decreased slightly over time but continues. However, most of it moved from something like GitHub issues or Twitter threads to my mail or IM. Today, one developer wrote me a message. He called me a parasite on the body of the developer community that makes a lot of money spamming and doing nothing useful. He called me the same murderer as [Hans Reiser](https://en.wikipedia.org/wiki/Hans_Reiser), but who bought the judge and escaped unpunished. He wished death for me and all my relatives. And there is nothing unusual here, I get several of such messages a month. Last year, one more thing was added that I am a \"Russian fascist\".\n\n### Some words about the war\n\n**Open-source should be out of politics.**\n\nI don't want to choose between two kinds of evil. I will not comment on this in more detail, since there are people close to me on both sides of the border who may suffer because of this.\n\nLet me remind you what I wrote about above: I returned to Russia because it was a place where it was possible to have a decent standard of living for relatively little money and to concentrate on FOSS instead of making money. Now I cannot leave Russia, because after the accident I have outstanding lawsuits in the amount of tens of thousands of dollars and I am forbidden to leave the country until they are paid off.\n\n### What do you think, how much money does `core-js` receive each month?\n\nWhen I started to maintain `core-js` full-time, without being distracted by contracts and any other work, **it was about \\$2500 per month — it was about 4-5 times less than I usually had on full-time contracts**. Remember, a kind of down-shifting, to make the Web better. Temporarily. Reduce issues and bugs to zero, make the highest quality product, which is used by almost everyone... and the project will be sufficiently supported, right? Right?\n\nAfter a few months, the reoccurring monthly income **decreased to about \\$1700** *(at least that's what I thought)*, \\$1000 via Tidelift, \\$600 via Open Collective, and \\$100 via Patreon. In addition to the reoccurring monthly, one-time donations came periodically (on average it was maybe \\$100 per month).\n\nCrypto? Adding a crypto wallet for donations was a very popular request. However, for all the time, only 2 transfers for a total amount of about \\$200 have been received on crypto wallets, the last one was more than a year ago. GitHub sponsors? It's not available in Russia and never was. PayPal? It's banned for Russians. When it was available, `core-js` received about \\$60 in all that time. Grants? I applied for a lot of grants — all applications were ignored.\n\n**The main part, \\$400 per month, of those donations, `core-js` received from... [Bower](https://bower.io/), another FOSS community. I am also very grateful [to all other sponsors](https://opencollective.com/core-js#section-contributors): because of your donations, I'm still working on this project.**\n\nHowever, in this list there is not a single big corporation or at least a company from the top 1000 website list. Let's be honest, there are mainly individuals, and only a few small companies on the current list of backers and they pay a few dollars a month.\n\nIf someone says that they don't know that `core-js` requires funding... Come on, I regularly see memes like [this](https://www.reddit.com/r/ProgrammerHumor/comments/fbfb2o/thank_you_for_using_corejs/):\n\n<p align=\"center\"><img alt=\"sanders\" width=\"400\" src=\"https://user-images.githubusercontent.com/2213682/218325687-08d58543-4b88-4a39-a0de-420bd325450f.png\" /></p>\n\n---\n\nA year ago, Tidelift stopped sending me money. They said that because of the political situation, the Hyperwallet, that they used, is no longer available to Russians (but it was available to me till last month when I tried to update some personal data), and for safety, they will store my money on their side. Over the previous couple of months, I tried to get this money to a bank or a Hyperwallet account, but only received replies that they will try to do something (*sounds great, doesn't it?*). Since the end of the last year, they have just stopped responding to emails. And now, I've got this:\n\n![tidelift](https://user-images.githubusercontent.com/2213682/217650273-548d123d-4ee4-4beb-ad5b-631c55e612a6.png)\n\n**In such an amusing way, I found out that I will not receive the money for the previous year, and this year I worked not for \\$1800, but for \\$800 a month.** There were, of course, no replies to subsequent emails. However, their site indicated that I received and still receive money through them.\n\n<p align=\"center\"><img alt=\"tidelift\" width=\"500\" src=\"https://user-images.githubusercontent.com/2213682/218159794-1ea53543-a8ff-463a-ad36-dc900a34b7c8.png\" /></p>\n\nI wonder how the companies that support their dependencies chain through them will react to such a scam.\n\n---\n\nOn the same day, on OpenCollective I saw that the reoccurring monthly was reduced from about \\$600 to about \\$300. Apparently, the financial reserves of `Bower` have come to an end. This means that **for this month I'll get about \\$400 total**.\n\nIn the previous months, I measured how much time it takes to work on `core-js`. It turned out about... **250 hours a month** — significantly more than a full day without any days off, which makes it impossible to have a \"real\" (as many say) full-time work or work for any significant contracts. \\$400 for 250 hours... It will be less than **\\$2 per hour of work, for the year before a little more: \\$4 per hour**. Yes, in some months, I did spend less time working on the project, but it does not change much.\n\nThis is the current price for ensuring compatibility for the whole Web. And no insurance or social security.\n\n**Awesome earning growth and career, right?**\n\nI think you understand well how much senior software engineers in key IT companies get paid. I received a lot of comparable offers, however, they are not compatible with the proper work on `core-js`.\n\n---\n\nAmong the regular threats, accusations, demands, and insults, I often get something like \"Stop begging and go to work, idler. Remove your beggarly messages immediately — I don't wanna see them.\" The funny thing is that at least some of these people get over $300,000 a year (which I know for sure because I talk to their colleagues), and (because of the nature of their work) `core-js` saves them many hours of work each month.\n\n### Everything changes\n\nWhen I started working on `core-js`, I was alone. Now I have a family. A little over a year ago, I became a father of my son. Now I have to provide him with a decent standard of living.\n\n![son](https://user-images.githubusercontent.com/2213682/208297825-7f98a8e2-088e-47d3-95a6-a853077296b3.png)\n\nI have a wife, and sometimes she wants some new shoes or a bag, a new iPhone or an Apple Watch. My parents are already at the age that I need to significantly support them.\n\nI think it is obvious that it is impossible to properly support a family with the money that I have or had from `core-js` maintenance. Financial reserves that I used, have finally come to the end.\n\nMore and more often I hear reproaches like: \"Give up your Open-Source, this is pampering. Go back to a normal job. `%USERNAME%` has been working as a programmer for just a year. He understands almost nothing about it, works a couple of hours a day, and already earns many times more than you do.\"\n\n# NO MORE\n\nI'm damn tired. I love working on open-source and `core-js`. But who or what am I doing this for? Let's summarize the above.\n\n- I have been ensuring zero compatibility issues and providing bleeding edge features of the web platform for most of the Web since 2014; and I've been working on it for most of the time for money, that now will not even be enough for food.\n- Rather than any gratitude, all I see is the huge hatred from developers whose life I simplify.\n- Companies that save and earn many millions of dollars on `core-js` usage just ignore `core-js` funding requests.\n- Even in a critical situation, in response to a request for help, instead of help, most of them preferred to ignore or hate.\n- Instead of working together with standards' and browsers' developers on a better future for JavaScript, I'm forced to struggle with roadblocks that they make.\n\n---\n\nI don't care about the haters. Otherwise, I would have left open-source a long time ago.\n\nI can tolerate the lack of normal interaction with the standards developers. First of all, this means future problems for users and, when the Web will be broken, for standards developers themselves.\n\n**However, money matters.** I've had enough of sponsoring corporations at the expense of my and my family's well-being. I should be able to ensure a bright future for my family, for my son.\n\nThe work on `core-js` occupies almost all of my time, more than a full working day. This work ensures the proper functioning of the most of the popular websites and this work should be paid properly. I'm not going to keep working for free or for \\$2 per hour. I'm willing to continue working on a project for at least \\$80 an hour. This is the rate that have, for example, [`eslint` team members per hour](https://eslint.org/blog/2022/02/paying-contributors-sponsoring-projects/#paying-team-members-per-hour). And, if the work on open-source requires it, I'm ready to pay off my lawsuits and leave Russia — however, it's not cheap.\n\n---\n\nRegularly I see comments like this:\n\n<p align=\"center\"><img alt=\"core-js approach\" width=\"600\" src=\"https://user-images.githubusercontent.com/2213682/136879465-88b3d349-6a1a-442e-bb78-fb20916a4679.png\" /></p>\n\nOk guys, if you want it — let's use such an approach.\n\n---\n\n## Depending on your feedback, `core-js` will soon follow one of the following ways:\n\n- **Appropriate financial backing**\n\n  I hope that, at least after reading this post, corporations, small companies, and developers will finally think about the sustainability of their development stack and will properly back `core-js` development. In this case, `core-js` will be appropriately maintained and I'll be able to focus on adding [a new level of functionality](#roadmap).\n\n  The scale of the necessary work goes through the roof, a single me is no longer enough — I can't work more physically. Some work, for example, improving test coverage or documentation, is simple enough and takes a lot of time, but it's not the kind of work that volunteers want to do — I don't remember any PRs with improvements for test coverage of existent features. So it makes sense to attract at least one or two developers (at least students, better — higher level) on a paid basis.\n\n  Taking into account the involvement of additional maintainers and other expenses, I think that at this moment about 30 thousand dollars a month could be enough. More money — better product and faster development. A couple times less — it makes sense to resume the work on `core-js` full-time alone — sure, not as productive as it could be with a team.\n\n- **I may be hired by a company where I will be able to work on Open-Source and Web standards**\n\n  and that will give me the resources required for continuation of the work.\n\n- **`core-js` will become a commercial project** if it will not receive an appropriate support from users\n\n  It's problematic to create a commercial infrastructure around the current `core-js` packages, so most likely the new `core-js` major release will change the license. The free version will be significantly limited. All extra functionality will be paid for. `core-js` will continue to evolve appropriately and, in the scope of this project, many new tools will be created to ensure web compatibility. Sure, it will significantly reduce the spread of `core-js` and will cause problems for many developers, however, even some paying customers could be enough and my family will have money to pay the bills.\n\n- A **slow death** in case I'll see that `core-js` is not required\n\n  I have many ideas for commercial projects, I have a lot of good job offers — all this takes time, which now goes into `core-js` maintenance. It does not mean that I'll immediately completely stop maintaining `core-js`, I'll just maintain pro-rata donations. If they are at the current level, it will be only a few hours of maintenance a month instead of hundreds like now. The project will stop the upgrowth — maybe minor bugs will be fixed and compatibility data will be updated — this time is not enough for more. After a while, `core-js` will become just useless and will die.\n\nI still hope for the first outcome since `core-js` is one of the key components of the modern digital infrastructure, but, looking at the present and the past, I am mentally getting ready for other options.\n\n## I will answer some angry comments in advance that I see regularly and that will definitely come up after this post:\n\n- **\"Not a problem, we will just pin the `core-js` dependency.\"**\n\n  Unlike most projects, `core-js` should be on the bleeding edge since `core-js` allows you to be on the bleeding edge of JavaScript: use the most recent JavaScript features and don't think about engines compatibility and bugs. However, the library has a good safety margin for the future. Maybe for a year or a couple, you will not have serious problems. After that, they will appear — polyfills will become obsolete, but still will be present in your bundles and will become just a useless ballast. You will not be able to use new features of the language and will face new bugs in JS engines.\n\n- **\"It's open-source, we will fork it, fuck off.\"**\n\n  I see such comments regularly, someone even tries to scare me with a fork. I've said already too many times that **if someone will fork and properly maintain `core-js`, I'd be happy** — it makes no sense just to fork it without maintenance. Now I don't see anyone at all who tries to add something significant to `core-js` or at least contribute regularly. The project ought to follow up on each new JavaScript engine release to update compatibility data, fix or at least take into account each new (no matter how significant) bug from each engine, take a look and implement each new JavaScript feature possible, do it maximally properly, test and take into account the specifics of each version of each modern or legacy engine. It's a hard work, are you ready and have the required knowledge and time for that? For example, when I was in prison, Babel said that they are not:\n\n  <p align=\"center\"><img alt=\"babel\" width=\"800\" src=\"https://user-images.githubusercontent.com/2213682/154870832-36318fdd-c5a0-45ce-aaed-2d50371a2976.png\" /></p>\n\n- **\"We don't need `core-js`, many alternative projects are available.\"**\n\n  Nobody is holding you. But where are those alternatives in real life? Sure, `core-js` is not the only polyfill of the JavaScript standard library. But all other projects are [tens](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=es6-shim&from=2014-11-18) of [times](https://user-images.githubusercontent.com/2213682/205467964-2dfcce78-5cdf-4f4f-b0d6-e37c02e1bf01.png) less popular than `core-js`, and it's not unreasonable — all of them provide only a small part of `core-js` functionality, they are not proper and complex enough, the number of cases where they can be used is significantly limited, they can't be properly integrated into your project in such a simple way and have other significant problems. In the case if proper alternatives existed, I would have stopped working on `core-js` a long time ago.\n\n- **\"We can drop IE support, so we no longer need polyfills.\"**\n\n  As I wrote a just above, nobody is holding you. In some cases, polyfills are really not required and you can avoid them, but it's only a small part of all cases — almost the same as it was in the IE era. Of course, if you don't need IE support, polyfills will not expand your possibilities as much as it was with adding ES6 support to IE8. But even the most modern engines do not implement the most modern JavaScript features. Even the most modern engines contain bugs. Are you pretty sure that you and your team perfectly know all limitations of all engines that you support and can work around them? Even I sometimes may forget some quirks and missing features.\n\n- **\"You are an asshole, we will expel you from the FOSS community.\"**\n\n  Yes, you're right. I'm such an asshole that gives you a chance to use modern JavaScript features in the real life, have been solving your cross-engine compatibility issues for many years, and had sacrificed for this more than anyone else. I'm such an asshole that just wants his son to be well-fed, wants his family to have enough money to pay the bills, so they don't need anything. Some options above suppose my departure from FOSS in favor of commercial software, so we'll see.\n\n---\n\nNow let's move away from the negative to the second half of this post where we will talk about things that would be nice to implement in `core-js` and the problems of polyfilling in general.\n\n## Roadmap\n\nJavaScript, browsers, and web development are evolving at an amazing speed. The time when almost all of the `core-js` modules were required for all browsers is gone. The latest browsers have good standards support and, in the common use cases, they need only some percentage of the `core-js` modules for the most recent language features and bug fixes. Some companies are already dropping support for IE11 which was recently  \"buried\" once more. However, even without IE, old browsers will always be there, bugs will happen in modern browsers too, and new language features will appear regularly and they will appear in browsers with a delay anyway; so, if we want to use modern JS in development and minimize possible problems, polyfills stay with us for a long time, but they should continue to evolve.\n\nHere I will write (almost) nothing about adding new or improving existing specific polyfills (but, sure, it's one of the main parts of `core-js` development), let's talk about some other crucial moments without focusing on minor things. If it is decided to make a commercial project from `core-js`, the roadmap will be adapted to this outcome.\n\nI am trying to keep `core-js` as compact as possible, but one of the main conceptions that it should follow is to be maximally useful in the modern web — the client should not load any unnecessary polyfills and polyfills should be maximally compact and optimized. Currently, a maximal `core-js` bundle size with early-stage proposals [is about 220KB minified, 70KB gzipped](https://bundlephobia.com/package/core-js) — it's not a tiny package, it's big enough — it's like jQuery, LoDash, and Axios together — the reason is that the package covers almost the entire standard library of the language. The individual weight of each component is several times less than the weight of quite correct alternatives. It's possible to load only the `core-js` features that you use and in minimal cases, the bundle size can be reduced to some kilobytes. When `core-js` is used correctly, this is usually a couple of tens of kilobytes — however, there is something to strive for. [Most pages contain pictures larger](https://almanac.httparchive.org/en/2022/media#bytesizes) than the entire `core-js` bundle, most users have Internet speed in dozens of Mbps, so why is this concept so significant?\n\nI don't want to repeat old posts about [the cost of JavaScript](https://medium.com/dev-channel/the-cost-of-javascript-84009f51e99e) in detail where you can read why adding JS increases the time when the user can start interacting with the page much more than adding a similar size picture — it's not only downloading, it's also parsing, compiling, evaluating the script, it blocks the page rendering.\n\nIn too many places the mobile Internet is not perfect and is still 3G or even 2G. In the case of 3G, the download of one full copy of `core-js` can take a couple of seconds. However, pages contain more than one copy of `core-js` and many other duplicated polyfills too often. Some (mainly mobile) Internet providers have very limited \"unlimited\" data plans and after a few gigabytes reduce the speed to a few Kbps. The connection speed is often limited for many other reasons too.\n\nThe speed of the page load equals revenue.\n\n<p align=\"center\"><img alt=\"conversion\" width=\"600\" src=\"https://user-images.githubusercontent.com/2213682/217910389-7320a726-890d-4f34-a941-f51a069f01a1.png\" /></p>\n\n> Illustration is from a [random post](https://medium.com/@vikigreen/impact-of-slow-page-load-time-on-website-performance-40d5c9ce568a) by googling\n\nThe size of `core-js` is constantly growing because of the addition of new or improvements to the existing polyfills. This issue also is a blocker for some big polyfills — the addition of `Intl`, `Temporal`, and some other features to `core-js` could increase the maximal bundle size by a dozen times up to a few megabytes.\n\nOne of the main `core-js` killer features is that it can be optimized with the usage of Babel, SWC, or manually, however, current approaches solve only a part of the problem. To properly solve them, the modern web requires a new generation of the toolkit that could be simply integrated into the current development stack. And in some cases, as you will see below, this toolkit could help to make the size of your web pages even less than just without `core-js`.\n\nI already wrote about some of this in [**`core-js@3`, Babel and a look into the future** post](https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#look-into-the-future), but those were just raw ideas. Now they're in the stage of experimentation or even implementation.\n\nSince the future of the project is uncertain, it makes no sense to write any specific dates here, I do not promise that all of this will be done shortly, but this is what should be strived for.\n\n---\n\n### New major version\n\n`core-js@3` was released about 4 years ago — it's been a long time. It's not a big problem for me to add some breaking changes (rather ensuring backward compatibility is often a challenge) and to mark a new version as a major release — it's a big problem for the users.\n\nAt this moment, about 25% of `core-js` downloads are critically obsolete `core-js@2`. Many users wanna update it to `core-js@3`, but because their dependencies use `core-js@2` they still use the obsolete version to avoid multiple copies (I saw such issues on GitHub in too many projects). Too frequent major updates would worsen such cases even more.\n\nHowever, it's better not to get too obsessed with compatibility with older versions. The library contains too much that's not removed only for compatibility reasons. The absence of some long-needed breaking changes for someone will negatively affect the future. Judging by how the standards, the ecosystem, and the Web change, and how legacy accumulates, it's better to release a new major version each 2-3 years.\n\nThe addition of all the new things that we would like to see in the new major version would take many years, which is unacceptable. However, `core-js` follows [SemVer](https://semver.org/) and it makes sense to release a new major release at first with breaking changes (some of them below), most of the new features can be added in minor releases. In this case, such a release can take just about 2-3 months of full-time work and it can be the first `core-js` version that reduced the size compared to the previous -)\n\n### `core-js` package directly\n\n### Drop critically obsolete engines support\n\nIE is dead. However, not for all — for many different reasons, someone is still forced to make or maintain websites that should work in IE. `core-js` is one of the main tools that makes life easier for them.\n\nAt this moment, `core-js` tries to support all possible engines and platforms, even ES3 — IE8-. But only a small part of developers using `core-js` needs support of ES3 engines — at this moment, the IE8- segment of browsers is about 0.1%. For many other users, it causes problems — bigger bundle size and slower runtime execution.\n\nThe main problem comes from supporting ES3 engines: most modern ES features are based on ES5 features, which aren't available in those old engines. Some features (like getters / setters) can't be polyfilled, so some polyfills (like typed arrays) can't work in IE8- at all. Some others require heavy workarounds. In cases where you need to polyfill only some simple features, the main part of the `core-js` size in the bundle is the implementation of ES5 methods (in the case of polyfilling a lot of features, it's only some percent, so this problem is related mainly to minimalistic bundles).\n\nEven the simple replacement of internal fallbacks of ES5 features to implementations to direct usage of those native features reduces minimalistic `core-js` bundle size by 2+ times. After reworking the architecture, it will be reduced even more.\n\nThe IE9-10 segment of browsers already is also small — at this moment, the same 0.1%. But it makes no sense to consider dropping their support without dropping support of some other obsolete engines with similar or even greater restrictions, for example, Android 4.4.4 — in total, it's about 1%. Raising the lower bar higher than ES5 is a more difficult decision at least because of some non-browser engines. However, even dropping IE11 support in the future will not give as many benefits as dropping IE8- support would now.\n\n### ECMAScript modules and modern syntax\n\nAt this moment, `core-js` uses CommonJS modules. For a long time, it was the most popular JavaScript modules format, but now ECMAScript provides its own modules format and it's already very popular and supported *almost* everywhere. For example, Deno, like browsers, doesn't support CommonJS, but supports ES modules. `core-js` should get an ECMAScript modules version in the near future. But, for example, on NodeJS, ECMAScript modules are supported only in the modern versions — but on NodeJS `core-js` should work without transpiling / bundling even in ancient versions, [Electron still does not support it](https://github.com/electron/electron/issues/21457), etc., so it's problematic to get rid of the CommonJS version immediately.\n\nThe situation with the rest of modern syntax is not so obvious. At this moment, `core-js` uses ES3 syntax. Initially, it was for maximal optimization since it should be pre-transpiled to old syntax anyway. But it was true only initially. Now, `core-js` just can't be properly transpiled in userland and should be ignored in transpiler configs. Why? Let's take a look, for example, at Babel transforms:\n\n- A big part of transforms rely on modern built-ins, for example, transforms which use `@@iterator` protocol — yet `Symbol.iterator`, iterators, and all other related built-ins are implemented in `core-js` and absent before `core-js` loading.\n- Another problem is transpiling `core-js` with transforms that inject `core-js` polyfills. Obviously, we can't inject polyfills into the place where they are implemented since it is circular dependencies.\n- Some other transforms applied on `core-js` just break its internals — for example, [the `typeof` transform](https://babeljs.io/docs/en/babel-plugin-transform-typeof-symbol) (that should help with support of polyfilled symbols) breaks the `Symbol` polyfill.\n\nHowever, the usage of modern syntax in polyfills code could significantly improve the readability of the source code, reduce the size and in some cases improve performance if polyfill is bundled for a modern engine, so it's time to think about rewriting `core-js` to modern syntax, making it transpilable by getting around those problems and publishing versions with different syntax for different use cases.\n\n### Web standards polyfills\n\nI've been thinking about adding the most possible web standards (not only ECMAScript and closely related features) support to `core-js` for a long time. First of all, about the remaining features from the [Minimum Common Web Platform API](https://common-min-api.proposal.wintercg.org/#index) ([what is it?](https://blog.cloudflare.com/introducing-the-wintercg/)), but not only about them. It could be good to have one bulletproof polyfills project for all possible web development cases, not only for ECMAScript. At the moment, the situation with the support of web standards in browsers is much worse than with the support of modern ECMAScript features.\n\nOne of the barriers preventing the addition of web standards polyfills to `core-js` was a significant increase of bundles' size, but I think that with current techniques of loading only the required polyfills and techniques which you can see below, we could add polyfills of web standards to `core-js`.\n\nBut the main problem is that it should not be naive polyfills. As I wrote above, today the correctness of ECMAScript features is not in a very bad shape almost universally, but we can't say this about web platform features. For example, [a `structuredClone` polyfill](https://github.com/zloirock/core-js#structuredclone) was relatively recently added. When working on it, taking into account the dependencies, I faced **hundreds** of different JavaScript engines bugs — I don't remember when I saw something like that when I added new ECMAScript features — for this reason, the work on this simple method, that naively could be implemented within a couple hours, including resolving all issues and adding required features, lasted for several months. In the case of polyfills, better to do nothing than to do bad. The proper testing, polyfilling, and ensuring cross-platform compatibility web platform features require even more significant resources than what I spend on ECMAScript polyfills. So adding the maximum possible web standards support to `core-js` will be started only in case if I have such resources.\n\n---\n\n### New approaches to tooling are more interesting\n\nSomeone will ask why it's here. What do tools, like transpilers, have to do with the `core-js` project? `core-js` is just a polyfill, and those tools are written and maintained by other people. Once I also thought that it is enough to write a great project with a good API, explain its possibilities, and when it becomes popular, it will acquire an ecosystem with proper third-party tools. However, over the years, I realized that this will not happen if you do not do, or at least not control, it yourself.\n\nFor example, for many years, instance methods were not able to be polyfilled through Babel `runtime`, but I explained how to do it too many times. Polyfilling via `preset-env` could not be used in real-life projects because of incomplete detection of required polyfills and a bad source of compatibility data, which I explained from the beginning. Because of such problems, I was forced [to almost completely rewrite those tools in 2018-2019, for the `core-js@3` release](https://github.com/babel/babel/pull/7646), after that we got the current state of statically analysis-based tools for polyfills injecting.\n\nI am sure that if the approaches below are not implemented in the scope of `core-js`, they will not be properly implemented at all.\n\n---\n\nTo avoid some questions related to the following text: `core-js` tools will be moved to scoped packages — tools like `core-js-builder` and `core-js-compat` will become `@core-js/builder` and `@core-js/compat` respectively.\n\n### Not only Babel: plugins for transpilers and module bundlers\n\nAt this moment, some users are forced to use Babel only due to the need to automatically inject / optimize required polyfills. At this moment, Babel's [`preset-env`](https://babeljs.io/docs/en/babel-preset-env#usebuiltins) and [`runtime`](https://babeljs.io/docs/en/babel-plugin-transform-runtime#core-js-aliasing) are the only good enough and well-known ways to optimize usage of `core-js` with statical analysis. Historically, it happened because I helped Babel with polyfills. It does not mean that it's the only or the best place where it could be done.\n\nBabel is only one of many transpilers. TypeScript is another popular option. Other transpilers are gaining popularity now, for example, [SWC](https://swc.rs/) (that already contains [a tool for automatic polyfilling / `core-js` optimization](https://swc.rs/docs/configuration/supported-browsers), but it's still not perfect). However, why do we talk about the transpilers layer? The bundlers layer and tools like `webpack` or [`esbuild`](https://esbuild.github.io/) (that also contains an integrated transpiler) are more interesting for the optimization of polyfills. [Rome](https://rome.tools/) has been in development for several years and still is not ready, but its concept looks very promising.\n\nOne of the main problems with statical analysis-based automatic polyfilling on the transpiler layer is that usually not all files from the bundle are transpiled — for example, dependencies. If some of your dependencies need a polyfill of a modern built-in feature, but you don't use this built-in in your userland code, this polyfill will not be added to the bundle. Unnecessary polyfills import also will not be removed from your dependencies (see below). Moving automatic polyfilling to the bundlers layer fixes this problem.\n\nSure, writing or using such plugins in many places is difficult compared to Babel. For example, [now without some extra tools you can't use plugins for custom transforms in TypeScript](https://github.com/microsoft/TypeScript/issues/14419). However, where there's a will there's a way.\n\nAutomatic polyfilling / optimization of `core-js` should be available not only in Babel. It's almost impossible to write and maintain plugins for all transpilers and bundlers in the scope of the `core-js` project, but it's possible to do those things:\n\n- Improve data provided by `core-js` (`@core-js/compat`) and tools for integration with third-party projects, they should be comprehensive. For example, \"built-in definitions\" are still on Babel's side that causing problems with their reuse in other projects.\n- Since some tools already provide `core-js` integration, it makes sense to help them too, not just Babel.\n- It makes sense to write and maintain plugins for some significant tools in the scope of the `core-js` project. Which? We will see.\n\n### Polyfills collector\n\nOne of the problems of the statical analysis-based automatic polyfilling on the files layer (`usage` polyfilling mode of Babel `preset-env`) was explained above, but it's not the only problem. Let's talk about some others.\n\nYour dependencies could have their own `core-js` dependencies and they can be incompatible with the `core-js` version that you use at the root of your project, so injecting `core-js` imports to your dependencies directly could cause breakage.\n\nProjects often contain multiple entry points, multiple bundles, and, in some cases, the proper moving of all `core-js` modules to one chunk can be problematic and it could cause duplication of `core-js` in each bundle.\n\nI already posted [the `core-js` usage statistics](https://gist.github.com/zloirock/7331cec2a1ba74feae09e64584ec5d0e) above. In many cases, you could see the duplication of `core-js` — and it's only on the first loaded page of the application. Sometimes it's even like what we see on the Bloomberg website:\n\n<p align=\"center\"><img alt=\"bloomberg\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/218467140-c475482c-24b0-4420-b510-32f6e2a15743.png\" /></p>\n\n[Some time ago this number was even higher.](https://user-images.githubusercontent.com/2213682/115339234-87e1f700-a1ce-11eb-853c-8b93b7fc5657.png) Of course, such a number of copies and various versions of `core-js` is not something typical, but a situation with several copies of `core-js` is too common as you saw above, affecting about half the websites with `core-js`. To prevent this **a new solution is required to collect all polyfills from all entry points, bundles and dependencies of the project in one place.**\n\nLet's call a tool for this `@core-js/collector`. This tool should take an entry point or a list of entry points and should use the same statical analysis that's used in `preset-env`, however, this tool should not transform code or inject anything, should check full dependencies trees and should return a full list of required `core-js` modules. As a requirement, it should be simple to integrate into the current development stack. One possible way can be a new polyfilling mode in plugins, let's call it `collected` — that will allow loading all collected polyfills of the application in one place and remove the unnecessary (see below).\n\n### Removing unnecessary third-party polyfills\n\nNow it's typical to see, for example, a dozen copies of `Promise` polyfills with the same functionality on a website — you load only one `Promise` polyfill from `core-js`, but some of your dependencies load `Promise` polyfills by themself — `Promise` polyfill from one more `core-js` copy, `es6-promise`, `promise-polyfill`, `es6-promise-polyfill`, `native-promise-only`, etc. But it's just ES6 `Promise` which is already completely covered by `core-js` — and available in most browsers without polyfills. Sometimes, due to this, the size of all polyfills in the bundle swells to several megabytes.\n\nIt's not an ideal illustration for this issue, many other examples would have been better, but since above we started to talk about the Bloomberg website, let's take a look at this site one more time. We have no access to the source code, however, we have, for example, such an awesome tool as [`bundlescanner.com`](https://bundlescanner.com/website/bloomberg.com%2Feurope/all) (I hope that the Bloomberg team will fix it ASAP, so the result could be outdated).\n\n<p align=\"center\"><img alt=\"bundlescanner\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/181242201-ec16dd17-f4dd-4706-abf5-36e764c72e22.png\" /></p>\n\nAs shown in the practice, since such analysis it's not a simple work, this tool detects only about half of libraries' code. However, in addition to 450 kilobytes of `core-js`, we see hundreds of kilobytes of other polyfills — many copies of `es6-promise`, `promise-polyfill`, `whatwg-fetch` ([for the above reason](#web-standards-polyfills), `core-js` *still* does not polyfill it), `string.prototype.codepointat`, `object-assign` (it's a *ponyfill* and the next section is about them), `array-find-index`, etc.\n\nBut how many polyfills were not detected? What's the size of all polyfills that this website loads? It seems a couple of megabytes. However, even for *very* old browsers, at most a hundred kilobytes are more than be enough... And this situation is not something unique — it's a too common problem.\n\nSince many of those polyfills contain just a subset of `core-js` functionality, in the scope of `@core-js/compat`, we could collect data that will show if a module is an unnecessary third-party polyfill or not and, if this functionality is contained in `core-js`, a transpiler or bundler plugin will remove the import of this module or will replace it to the import of suitable `core-js` modules.\n\nThe same approach could be applied to get rid of dependencies from old `core-js` versions.\n\n### Globalization of pure version polyfills / ponyfills\n\nOne more popular and similar issue is a duplication of polyfills from global and pure `core-js` versions. The pure version of `core-js` / `babel-runtime` is intended for usage in libraries' code, so it's a normal situation if you use a global version of `core-js` and your dependencies also load some copies of `core-js` without global namespace pollution. They use different internals and it's problematic to share similar code between them.\n\nI'm thinking about resolving this issue on the transpiler or bundler plugins side similarly to the previous one (but, sure, a little more complex) — we could replace imports from the pure version with imports from the global version and remove polyfills unnecessary for the target engines.\n\nThat also could be applied to third-party ponyfills or obsolete libraries that implement something already available in the JS standard library. For example, the usage of `has` package can be replaced by `Object.hasOwn`, `left-pad` by `String.prototype.padStart`, some `lodash` methods by related modern built-in JS methods, etc.\n\n### Service\n\nLoading the same polyfills, for example, in IE11, iOS Safari 14.8, and the latest Firefox is wrong — too much dead code will be loaded in modern browsers. At this moment, a popular pattern is the use of 2 bundles — for \"modern\" browsers that will be loaded if native modules are supported, `<script type=\"module\">`, and for obsolete browsers which do not support native modules, `<script nomodule>` (a little harder in a practice). For example, Lighthouse can detect some cases of polyfills that are not required with the `esmodules` target, [let's check the long-suffering Bloomberg website](https://googlechrome.github.io/lighthouse/viewer/?psiurl=https%3A%2F%2Fwww.bloomberg.com%2Feurope&strategy=mobile&category=performance):\n\n<p align=\"center\"><img alt=\"lighthouse\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/148652288-bd6e452a-f6ba-417d-8972-9d98d2f715a4.png\" /></p>\n\nLighthouse shows just about 200KB in all resources, 0.56s. Let's remember that the site contains about a couple of megabytes of polyfills. [Now Lighthouse detects less than half of the features that it should](https://github.com/GoogleChrome/lighthouse/issues/13440), but even with another half, it's only a little part of all loaded polyfills. Where are the rest? Are they really required for a modern browser? The problem is that the lower bar of native modules support is too low — \"modern\" browsers will, in this case, need most of the polyfills of stable JS features that are required for old IE, so a part of polyfills is shown in the \"unused JavaScript\" section that takes 6.41s, a part is not shown at all...\n\nFrom the very beginning of work on `core-js`, I've been thinking about creating a web service that serves only the polyfills needed for the requesting browser.\n\nThe availability of a such service is the only aspect in which `core-js` have lagged behind another project. [`polyfill-service`](https://cdnjs.cloudflare.com/polyfill/) is based on this conception and it's a great service. The main problem with this project — it's a great service that uses poor polyfills. This project polyfills only a little part of the ECMAScript features that `core-js` provides, most of the polyfills are third-party and are not designed to work together, too many don't properly follow specs, too unpolished or just dangerous for usage (for example, [`WeakMap` looks like a step-by-step implementation of the spec text](https://github.com/Financial-Times/polyfill-library/blob/554248173eae7554ef0a7776549d2901f02a7d51/polyfills/WeakMap/polyfill.js), but the absence of some non-spec magic cause memory leaking and linear access time that makes it harmful, but here's more — instead of patching, fixing and reusing of native implementation in engines like IE11 where it's available, but does not accept an iterable argument, [`WeakMap` will be completely replaced](https://github.com/Financial-Times/polyfill-library/blob/554248173eae7554ef0a7776549d2901f02a7d51/polyfills/WeakMap/detect.js)). Some good developers try to fix this from time to time, but polyfills themselves are given unforgivably little time, so it's still too far from something that could be recommended for usage.\n\nCreating such a service in the proper form requires the creation and maintenance of many new components. I work on `core-js` alone, the project does not have the necessary support from any company, and the development is carried out with pure enthusiasm, I need to look for funds to feed myself and my family, so I have no time and other resources required for that. However, in the scope of other tasks, I already made some required components, and discussions with some users convinced me that creating a maximally simplified service that you could start on your own server could be enough.\n\nWe already have the best set of polyfills, the proper compatibility data, and the builder which could already create a bundle for a target browser. The previously mentioned `@core-js/collector` could be used for optimization — getting only the required subset of modules, plugins for transpilers / bundlers — for removing unnecessary polyfills. Missing a tool for the normalization of the user agent and a service that will bind those components together. Let's call it `@core-js/service`.\n\n#### What should it look like in a perfect world?\n\n- You bundle your project. A plugin on the bundler's side removes all polyfill imports (including third-party, without global pollution, from your dependencies, etc.). Your bundles will not contain any polyfills.\n- You run `@core-js/service`. When you run it, `@core-js/collector` checks all your frontend codebase, all your entry points, including dependencies, and collects a list of all required polyfills.\n- A user loads a page and requests a polyfill bundle from the service. The service gives the client a bundle compiled for the target browser that contains the required subset of polyfills and uses allowed syntax.\n\nSo, with this complex of tools, modern browsers will not load polyfills at all if they are not required, old browsers will load only the required and maximally optimized polyfills.\n\n---\n\nMost of the above is about minimizing the size of polyfills sent to the client — but these are just a little subset of the concepts that it would be good to implement in the scope of `core-js`, however, I think that it's enough to understand that still requires a huge work and this work could significantly improve web development. Whether it will be implemented in practice and whether it will be available as FOSS or as a commercial project is up to you.\n\n# Conclusion\n\nThis was the last attempt to keep `core-js` as a free open-source project with a proper quality and functionality level. It was the last attempt to convey that there are real people on the other side of open-source with families to feed and problems to solve.\n\nIf you or your company use `core-js` in one way or another and are interested in the quality of your supply chain, support the project:\n- [**Open Collective**](https://opencollective.com/core-js)\n- [**Patreon**](https://patreon.com/zloirock)\n- [**Boosty**](https://boosty.to/zloirock)\n- **Bitcoin ( bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz )**\n- [**Alipay**](https://user-images.githubusercontent.com/2213682/219464783-c17ad329-17ce-4795-82a7-f609493345ed.png)\n\n**Contact me if you can offer a good job on Web-standards and open-source.**\n\n---\n\n**Feel free to add comments to this post [here.](https://github.com/zloirock/core-js/issues/1179)**\n\n**[Denis Pushkarev](https://github.com/zloirock), February 14th 2023**\n"
  },
  {
    "path": "docs/web/404.md",
    "content": "# 404 Page Not found\n\nThe page you’re looking for doesn’t exist or has been moved.\n\nPlease return to our [homepage](https://core-js.io/) to continue browsing.\n"
  },
  {
    "path": "docs/web/docs/engines.md",
    "content": "# Supported engines and compatibility data\n\n`core-js` tries to support all possible JS engines and environments with ES3 support. Some features have a higher lower bar - for example, *some* accessors can properly work only from ES5, promises require a way to set a microtask or a task, etc.\n\nHowever, I have no possibility to test `core-js` absolutely everywhere - for example, testing in IE7- and some other ancient was stopped. The list of definitely supported engines you can see in the compatibility table by the link below. [Write](https://github.com/zloirock/core-js/issues) if you have issues or questions with the support of any engine.\n\n`core-js` project provides (as [`core-js-compat`](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat) package) all required data about the necessity of `core-js` modules, entry points, and tools for work with it - it's useful for integration with tools like `babel` or `swc`. If you wanna help, you could take a look at the related section of [`CONTRIBUTING`](contributing#h-how-to-update-core-js-compat-data). The visualization of compatibility data and the browser tests runner is available [here](http://zloirock.github.io/core-js/master/compat/), the example:\n\n![compat-table](https://user-images.githubusercontent.com/2213682/217452234-ccdcfc5a-c7d3-40d1-ab3f-86902315b8c3.png)\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/array.md",
    "content": "# ECMAScript: Array\n\n## Modules \n[`es.array.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.from.js), [`es.array.from-async`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.from-async.js), [`es.array.is-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.is-array.js), [`es.array.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.of.js), [`es.array.copy-within`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.copy-within.js), [`es.array.fill`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.fill.js), [`es.array.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find.js), [`es.array.find-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find-index.js), [`es.array.find-last`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find-last.js), [`es.array.find-last-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find-last-index.js), [`es.array.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.iterator.js), [`es.array.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.includes.js), [`es.array.push`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.push.js), [`es.array.slice`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.slice.js), [`es.array.join`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.join.js), [`es.array.unshift`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.unshift.js), [`es.array.index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.index-of.js), [`es.array.last-index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.last-index-of.js), [`es.array.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.every.js), [`es.array.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.some.js), [`es.array.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.for-each.js), [`es.array.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.map.js), [`es.array.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.filter.js), [`es.array.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.reduce.js), [`es.array.reduce-right`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.reduce-right.js), [`es.array.reverse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.reverse.js), [`es.array.sort`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.sort.js), [`es.array.flat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.flat.js), [`es.array.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.flat-map.js), [`es.array.unscopables.flat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.unscopables.flat.js), [`es.array.unscopables.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.unscopables.flat-map.js), [`es.array.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.at.js), [`es.array.to-reversed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.to-reversed.js), [`es.array.to-sorted`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.to-sorted.js), [`es.array.to-spliced`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.to-spliced.js), [`es.array.with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.with.js).\n\n## Built-ins signatures\n```ts\nclass Array {\n  at(index: int): any;\n  concat(...args: Array<mixed>): Array<mixed>; // with adding support of @@isConcatSpreadable and @@species\n  copyWithin(target: number, start: number, end?: number): this;\n  entries(): Iterator<[index, value]>;\n  every(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): boolean;\n  fill(value: any, start?: number, end?: number): this;\n  filter(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): Array<mixed>; // with adding support of @@species\n  find(callbackfn: (value: any, index: number, target: any) => boolean), thisArg?: any): any;\n  findIndex(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): uint;\n  findLast(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): any;\n  findLastIndex(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): uint;\n  flat(depthArg?: number = 1): Array<mixed>;\n  flatMap(mapFn: (value: any, index: number, target: any) => any, thisArg: any): Array<mixed>;\n  forEach(callbackfn: (value: any, index: number, target: any) => void, thisArg?: any): void;\n  includes(searchElement: any, from?: number): boolean;\n  indexOf(searchElement: any, from?: number): number;\n  join(separator: string = ','): string;\n  keys(): Iterator<index>;\n  lastIndexOf(searchElement: any, from?: number): number;\n  map(mapFn: (value: any, index: number, target: any) => any, thisArg?: any): Array<mixed>; // with adding support of @@species\n  push(...args: Array<mixed>): uint;\n  reduce(callbackfn: (memo: any, value: any, index: number, target: any) => any, initialValue?: any): any;\n  reduceRight(callbackfn: (memo: any, value: any, index: number, target: any) => any, initialValue?: any): any;\n  reverse(): this; // Safari 12.0 bug fix\n  slice(start?: number, end?: number): Array<mixed>; // with adding support of @@species\n  splice(start?: number, deleteCount?: number, ...items: Array<mixed>): Array<mixed>; // with adding support of @@species\n  some(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): boolean;\n  sort(comparefn?: (a: any, b: any) => number): this; // with modern behavior like stable sort\n  toReversed(): Array<mixed>;\n  toSpliced(start?: number, deleteCount?: number, ...items: Array<mixed>): Array<mixed>;\n  toSorted(comparefn?: (a: any, b: any) => number): Array<mixed>;\n  unshift(...args: Array<mixed>): uint;\n  values(): Iterator<value>;\n  with(index: includes, value: any): Array<mixed>;\n  @@iterator(): Iterator<value>;\n  @@unscopables: { [newMethodNames: string]: true };\n  static from(items: Iterable | ArrayLike, mapFn?: (value: any, index: number) => any, thisArg?: any): Array<mixed>;\n  static fromAsync(asyncItems: AsyncIterable | Iterable | ArrayLike, mapfn?: (value: any, index: number) => any, thisArg?: any): Array;\n  static isArray(value: any): boolean;\n  static of(...args: Array<mixed>): Array<mixed>;\n}\n\nclass Arguments {\n  @@iterator(): Iterator<value>; // available only in core-js methods\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/array\ncore-js(-pure)/es|stable|actual|full/array/from\ncore-js(-pure)/es|stable|actual|full/array/from-async\ncore-js(-pure)/es|stable|actual|full/array/of\ncore-js(-pure)/es|stable|actual|full/array/is-array\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/at\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/concat\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/copy-within\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/entries\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/every\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/fill\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/filter\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/find\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/find-index\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/find-last\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/find-last-index\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/flat\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/flat-map\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/for-each\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/includes\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/index-of\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/iterator\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/join\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/keys\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/last-index-of\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/map\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/push\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/reduce\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/reduce-right\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/reverse\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/slice\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/some\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/sort\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/splice\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/to-reversed\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/to-sorted\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/to-spliced\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/unshift\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/values\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/with\n```\n\n## Examples\n```js\nArray.from(new Set([1, 2, 3, 2, 1]));        // => [1, 2, 3]\nArray.from({ 0: 1, 1: 2, 2: 3, length: 3 }); // => [1, 2, 3]\nArray.from('123', Number);                   // => [1, 2, 3]\nArray.from('123', it => it ** 2);            // => [1, 4, 9]\n\nArray.of(1);       // => [1]\nArray.of(1, 2, 3); // => [1, 2, 3]\n\nlet array = ['a', 'b', 'c'];\n\nfor (let value of array) console.log(value);          // => 'a', 'b', 'c'\nfor (let value of array.values()) console.log(value); // => 'a', 'b', 'c'\nfor (let key of array.keys()) console.log(key);       // => 0, 1, 2\nfor (let [key, value] of array.entries()) {\n  console.log(key);                                   // => 0, 1, 2\n  console.log(value);                                 // => 'a', 'b', 'c'\n}\n\nfunction isOdd(value) {\n  return value % 2;\n}\n[4, 8, 15, 16, 23, 42].find(isOdd);      // => 15\n[4, 8, 15, 16, 23, 42].findIndex(isOdd); // => 2\n[1, 2, 3, 4].findLast(isOdd);            // => 3\n[1, 2, 3, 4].findLastIndex(isOdd);       // => 2\n\nArray(5).fill(42); // => [42, 42, 42, 42, 42]\n\n[1, 2, 3, 4, 5].copyWithin(0, 3); // => [4, 5, 3, 4, 5]\n\n[1, 2, 3].includes(2);        // => true\n[1, 2, 3].includes(4);        // => false\n[1, 2, 3].includes(2, 2);     // => false\n\n[NaN].indexOf(NaN);           // => -1\n[NaN].includes(NaN);          // => true\nArray(1).indexOf(undefined);  // => -1\nArray(1).includes(undefined); // => true\n\n[1, [2, 3], [4, 5]].flat();    // => [1, 2, 3, 4, 5]\n[1, [2, [3, [4]]], 5].flat();  // => [1, 2, [3, [4]], 5]\n[1, [2, [3, [4]]], 5].flat(3); // => [1, 2, 3, 4, 5]\n\n[{ a: 1, b: 2 }, { a: 3, b: 4 }, { a: 5, b: 6 }].flatMap(it => [it.a, it.b]); // => [1, 2, 3, 4, 5, 6]\n\n[1, 2, 3].at(1);  // => 2\n[1, 2, 3].at(-1); // => 3\n\nconst sequence = [1, 2, 3];\nsequence.toReversed(); // => [3, 2, 1]\nsequence; // => [1, 2, 3]\n\nconst initialArray = [1, 2, 3, 4];\ninitialArray.toSpliced(1, 2, 5, 6, 7); // => [1, 5, 6, 7, 4]\ninitialArray; // => [1, 2, 3, 4]\n\nconst outOfOrder = [3, 1, 2];\noutOfOrder.toSorted(); // => [1, 2, 3]\noutOfOrder; // => [3, 1, 2]\n\nconst correctionNeeded = [1, 1, 3];\ncorrectionNeeded.with(1, 2); // => [1, 2, 3]\ncorrectionNeeded; // => [1, 1, 3]\n```\n\n## `Array.fromAsync` example\n```js\nawait Array.fromAsync(\n  (async function * () { yield * [1, 2, 3]; })(), \n  i => i ** 2\n); // => [1, 4, 9]\n```\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/collections.md",
    "content": "# ECMAScript: Collections\n`core-js` uses native collections in most cases, just fixes methods / constructor, if it's required, and in the old environment uses fast polyfill (O(1) lookup).\n\n## Map\n### Modules \n[`es.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.js), [`es.map.group-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.group-by.js), [`es.map.get-or-insert`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.get-or-insert.js) and [`es.map.get-or-insert-computed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.get-or-insert-computed.js).\n\n### Built-ins signatures\n```ts\nclass Map {\n  constructor(iterable?: Iterable<[key, value]>): Map;\n  clear(): void;\n  delete(key: any): boolean;\n  forEach(callbackfn: (value: any, key: any, target: any) => void, thisArg: any): void;\n  get(key: any): any;\n  getOrInsert(key: any, value: any): any;\n  getOrInsertComputed(key: any, (key: any) => value: any): any;\n  has(key: any): boolean;\n  set(key: any, val: any): this;\n  values(): Iterator<value>;\n  keys(): Iterator<key>;\n  entries(): Iterator<[key, value]>;\n  @@iterator(): Iterator<[key, value]>;\n  readonly attribute size: number;\n  static groupBy(items: Iterable, callbackfn: (value: any, index: number) => key): Map<key, Array<mixed>>;\n}\n```\n\n### [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/map\ncore-js(-pure)/es|stable|actual|full/map/group-by\ncore-js(-pure)/es|stable|actual|full/map/get-or-insert\ncore-js(-pure)/es|stable|actual|full/map/get-or-insert-computed\n```\n\n### Examples\n```js\nlet array = [1];\n\nlet map = new Map([['a', 1], [42, 2]]);\nmap.set(array, 3).set(true, 4);\n\nconsole.log(map.size);        // => 4\nconsole.log(map.has(array));  // => true\nconsole.log(map.has([1]));    // => false\nconsole.log(map.get(array));  // => 3\nmap.forEach((val, key) => {\n  console.log(val);           // => 1, 2, 3, 4\n  console.log(key);           // => 'a', 42, [1], true\n});\nmap.delete(array);\nconsole.log(map.size);        // => 3\nconsole.log(map.get(array));  // => undefined\nconsole.log(Array.from(map)); // => [['a', 1], [42, 2], [true, 4]]\n\nmap = new Map([['a', 1], ['b', 2], ['c', 3]]);\n\nfor (let [key, value] of map) {\n  console.log(key);                                 // => 'a', 'b', 'c'\n  console.log(value);                               // => 1, 2, 3\n}\nfor (let value of map.values()) console.log(value); // => 1, 2, 3\nfor (let key of map.keys()) console.log(key);       // => 'a', 'b', 'c'\nfor (let [key, value] of map.entries()) {\n  console.log(key);                                 // => 'a', 'b', 'c'\n  console.log(value);                               // => 1, 2, 3\n}\n\nmap = Map.groupBy([1, 2, 3, 4, 5], it => it % 2);\nmap.get(1); // => [1, 3, 5]\nmap.get(0); // => [2, 4]\n\n\nmap = new Map([['a', 1]]);\n\nmap.getOrInsert('a', 2); // => 1\n\nmap.getOrInsert('b', 3); // => 3\n\nmap.getOrInsertComputed('a', key => key); // => 1\n\nmap.getOrInsertComputed('c', key => key); // => 'c'\n\nconsole.log(map); // => Map { 'a': 1, 'b': 3, 'c': 'c' }\n```\n\n## Set\n### Modules \n[`es.set`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.js), [`es.set.difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.v2.js), [`es.set.intersection.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.v2.js), [`es.set.is-disjoint-from.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.v2.js), [`es.set.is-subset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.v2.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js)\n\n### Built-ins signatures\n```ts\nclass Set {\n  constructor(iterable?: Iterable<value>): Set;\n  add(key: any): this;\n  clear(): void;\n  delete(key: any): boolean;\n  forEach((value: any, key: any, target: any) => void, thisArg: any): void;\n  has(key: any): boolean;\n  values(): Iterator<value>;\n  keys(): Iterator<value>;\n  entries(): Iterator<[value, value]>;\n  difference(other: SetLike<mixed>): Set;\n  intersection(other: SetLike<mixed>): Set;\n  isDisjointFrom(other: SetLike<mixed>): boolean;\n  isSubsetOf(other: SetLike<mixed>): boolean;\n  isSupersetOf(other: SetLike<mixed>): boolean;\n  symmetricDifference(other: SetLike<mixed>): Set;\n  union(other: SetLike<mixed>): Set;\n  @@iterator(): Iterator<value>;\n  readonly attribute size: number;\n}\n```\n\n### [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/set\ncore-js(-pure)/es|stable|actual|full/set/difference\ncore-js(-pure)/es|stable|actual|full/set/intersection\ncore-js(-pure)/es|stable|actual|full/set/is-disjoint-from\ncore-js(-pure)/es|stable|actual|full/set/is-subset-of\ncore-js(-pure)/es|stable|actual|full/set/is-superset-of\ncore-js(-pure)/es|stable|actual|full/set/symmetric-difference\ncore-js(-pure)/es|stable|actual|full/set/union\n```\n\n### Examples\n```js\nlet set = new Set(['a', 'b', 'a', 'c']);\nset.add('d').add('b').add('e');\nconsole.log(set.size);        // => 5\nconsole.log(set.has('b'));    // => true\nset.forEach(it => {\n  console.log(it);            // => 'a', 'b', 'c', 'd', 'e'\n});\nset.delete('b');\nconsole.log(set.size);        // => 4\nconsole.log(set.has('b'));    // => false\nconsole.log(Array.from(set)); // => ['a', 'c', 'd', 'e']\n\nset = new Set([1, 2, 3, 2, 1]);\n\nfor (let value of set) console.log(value);          // => 1, 2, 3\nfor (let value of set.values()) console.log(value); // => 1, 2, 3\nfor (let key of set.keys()) console.log(key);       // => 1, 2, 3\nfor (let [key, value] of set.entries()) {\n  console.log(key);                                 // => 1, 2, 3\n  console.log(value);                               // => 1, 2, 3\n}\n\nnew Set([1, 2, 3]).union(new Set([3, 4, 5]));               // => Set {1, 2, 3, 4, 5}\nnew Set([1, 2, 3]).intersection(new Set([3, 4, 5]));        // => Set {3}\nnew Set([1, 2, 3]).difference(new Set([3, 4, 5]));          // => Set {1, 2}\nnew Set([1, 2, 3]).symmetricDifference(new Set([3, 4, 5])); // => Set {1, 2, 4, 5}\nnew Set([1, 2, 3]).isDisjointFrom(new Set([4, 5, 6]));      // => true\nnew Set([1, 2, 3]).isSubsetOf(new Set([5, 4, 3, 2, 1]));    // => true\nnew Set([5, 4, 3, 2, 1]).isSupersetOf(new Set([1, 2, 3]));  // => true\n```\n\n## WeakMap\n\n### Modules\n[`es.weak-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-map.js), [`es.weak-map.get-or-insert`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-map.get-or-insert.js) and [`es.weak-map.get-or-insert-computed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-map.get-or-insert-computed.js).\n\n### Built-ins signatures\n```ts\nclass WeakMap {\n  constructor(iterable?: Iterable<[key, value]>): WeakMap;\n  delete(key: object | symbol): boolean;\n  get(key: object | symbol): any;\n  getOrInsert(key: object | symbol, value: any): any;\n  getOrInsertComputed(key: object | symbol, (key: any) => value: any): any;\n  has(key: object | symbol): boolean;\n  set(key: object | symbol, val: any): this;\n}\n```\n### [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/weak-map\ncore-js(-pure)/es|stable|actual|full/weak-map/get-or-insert\ncore-js(-pure)/es|stable|actual|full/weak-map/get-or-insert-computed\n```\n\n### Examples\n```js\nlet a = [1];\nlet b = [2];\nlet c = [3];\n\nlet weakmap = new WeakMap([[a, 1], [b, 2]]);\nweakmap.set(c, 3).set(b, 4);\nconsole.log(weakmap.has(a));   // => true\nconsole.log(weakmap.has([1])); // => false\nconsole.log(weakmap.get(a));   // => 1\nweakmap.delete(a);\nconsole.log(weakmap.get(a));   // => undefined\n\n// Private properties store:\nlet Person = (() => {\n  let names = new WeakMap();\n  return class {\n    constructor(name) {\n      names.set(this, name);\n    }\n    getName() {\n      return names.get(this);\n    }\n  };\n})();\n\nlet person = new Person('Vasya');\nconsole.log(person.getName());            // => 'Vasya'\nfor (let key in person) console.log(key); // => only 'getName'\n```\n\n## WeakSet\n### Modules \n[`es.weak-set`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-set.js).\n\n### Built-ins signatures\n```ts\nclass WeakSet {\n  constructor(iterable?: Iterable<value>): WeakSet;\n  add(key: object | symbol): this;\n  delete(key: object | symbol): boolean;\n  has(key: object | symbol): boolean;\n}\n```\n\n### [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/weak-set\n```\n### Examples\n```js\nlet a = [1];\nlet b = [2];\nlet c = [3];\n\nlet weakset = new WeakSet([a, b, a]);\nweakset.add(c).add(b).add(c);\nconsole.log(weakset.has(b));   // => true\nconsole.log(weakset.has([2])); // => false\nweakset.delete(b);\nconsole.log(weakset.has(b));   // => false\n```\n\n> [!WARNING]\n> - Weak-collections polyfill stores values as hidden properties of keys. It works correctly and does not leak in most cases. However, it is desirable to store a collection longer than its keys.\n> - Native symbols as `WeakMap` keys can't be properly polyfilled without memory leaks.\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/date.md",
    "content": "# ECMAScript: Date\n## Modules \n[`es.date.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-string.js), ES5 features with fixes: [`es.date.now`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.now.js), [`es.date.to-iso-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-iso-string.js), [`es.date.to-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-json.js) and [`es.date.to-primitive`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-primitive.js).\n\nAnnex B methods. Modules [`es.date.get-year`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.get-year.js), [`es.date.set-year`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.set-year.js) and [`es.date.to-gmt-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-gmt-string.js).\n\n## Built-ins signatures\n```ts\nclass Date {\n  getYear(): int;\n  setYear(year: int): number;\n  toGMTString(): string;\n  toISOString(): string;\n  toJSON(): string;\n  toString(): string;\n  @@toPrimitive(hint: 'default' | 'number' | 'string'): string | number;\n  static now(): number;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/es|stable|actual|full/date\ncore-js/es|stable|actual|full/date/to-string\ncore-js(-pure)/es|stable|actual|full/date/now\ncore-js(-pure)/es|stable|actual|full/date/get-year\ncore-js(-pure)/es|stable|actual|full/date/set-year\ncore-js(-pure)/es|stable|actual|full/date/to-gmt-string\ncore-js(-pure)/es|stable|actual|full/date/to-iso-string\ncore-js(-pure)/es|stable|actual|full/date/to-json\ncore-js(-pure)/es|stable|actual|full/date/to-primitive\n```\n\n## Examples\n```js\nnew Date(NaN).toString(); // => 'Invalid Date'\n```\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/error.md",
    "content": "# ECMAScript: Error\n## Modules \n[`es.aggregate-error`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.aggregate-error.js), [`es.aggregate-error.cause`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.aggregate-error.cause.js), [`es.error.cause`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.error.cause.js), [`es.error.is-error`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.error.is-error.js), [`es.suppressed-error.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.suppressed-error.constructor.js), [`es.error.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.error.to-string.js).\n\n## Built-ins signatures\n```ts\nclass Error {\n  static isError(value: any): boolean;\n  constructor(message: string, { cause: any }): %Error%;\n  toString(): string; // different fixes\n}\n\nclass [\n  EvalError,\n  RangeError,\n  ReferenceError,\n  SyntaxError,\n  TypeError,\n  URIError,\n  WebAssembly.CompileError,\n  WebAssembly.LinkError,\n  WebAssembly.RuntimeError,\n] extends Error {\n  constructor(message: string, { cause: any }): %Error%;\n}\n\nclass AggregateError extends Error {\n  constructor(errors: Iterable, message?: string, { cause: any }?): AggregateError;\n  errors: Array<any>;\n  message: string;\n  cause: any;\n}\n\nclass SuppressedError extends Error {\n  constructor(error: any, suppressed: any, message?: string): SuppressedError;\n  error: any;\n  suppressed: any;\n  message: string;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/es|stable|actual|full/error\ncore-js/es|stable|actual|full/error/constructor\ncore-js(-pure)/es|stable|actual|full/error/is-error\ncore-js/es|stable|actual|full/error/to-string\ncore-js(-pure)/es|stable|actual|full/aggregate-error\ncore-js(-pure)/es|stable|actual|full/suppressed-error\n```\n\n## Examples\n```js\nconst error1 = new TypeError('Error 1');\nconst error2 = new TypeError('Error 2');\nconst aggregate = new AggregateError([error1, error2], 'Collected errors');\naggregate.errors[0] === error1; // => true\naggregate.errors[1] === error2; // => true\n\nconst cause = new TypeError('Something wrong');\nconst error = new TypeError('Here explained what`s wrong', { cause });\nerror.cause === cause; // => true\n\nError.prototype.toString.call({ message: 1, name: 2 }) === '2: 1'; // => true\n```\n\n## `Error.isError` examples\n```js\nError.isError(new Error('error')); // => true\nError.isError(new TypeError('error')); // => true\nError.isError(new DOMException('error')); // => true\n\nError.isError(null); // => false\nError.isError({}); // => false\nError.isError(Object.create(Error.prototype)); // => false\n```\n\n> [!WARNING]\n> We have no bulletproof way to polyfill this `Error.isError` / check if the object is an error, so it's an enough naive implementation.\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/explicit-resource-management.md",
    "content": "# ECMAScript: Explicit Resource Management\n> [!NOTE]\n> This is only built-ins for this Explicit Resource Management, `using` syntax support requires [transpiler support](https://babeljs.io/docs/babel-plugin-syntax-explicit-resource-management).\n\n## Modules \n[`es.disposable-stack.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.disposable-stack.constructor.js), [`es.iterator.dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.dispose.js), [`es.async-disposable-stack.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.async-disposable-stack.constructor.js), [`es.async-iterator.async-dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.async-dispose.js).\n\n## Built-ins signatures\n```ts\nclass Symbol {\n  static asyncDispose: @@asyncDispose;\n  static dispose: @@dispose;\n}\n\nclass DisposableStack {\n  constructor(): DisposableStack;\n  dispose(): undefined;\n  use(value: Disposable): value;\n  adopt(value: object, onDispose: Function): value;\n  defer(onDispose: Function): undefined;\n  move(): DisposableStack;\n  @@dispose(): undefined;\n  @@toStringTag: 'DisposableStack';\n}\n\nclass AsyncDisposableStack {\n  constructor(): AsyncDisposableStack;\n  disposeAsync(): Promise<undefined>;\n  use(value: AsyncDisposable | Disposable): value;\n  adopt(value: object, onDispose: Function): value;\n  defer(onDispose: Function): undefined;\n  move(): AsyncDisposableStack;\n  @@asyncDispose(): Promise<undefined>;\n  @@toStringTag: 'AsyncDisposableStack';\n}\n\nclass SuppressedError extends Error {\n  constructor(error: any, suppressed: any, message?: string): SuppressedError;\n  error: any;\n  suppressed: any;\n  message: string;\n  cause: any;\n}\n\nclass Iterator {\n  @@dispose(): undefined;\n}\n\nclass AsyncIterator {\n  @@asyncDispose(): Promise<undefined>;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/disposable-stack\ncore-js(-pure)/es|stable|actual|full/async-disposable-stack\ncore-js(-pure)/es|stable|actual|full/iterator/dispose\ncore-js(-pure)/es|stable|actual|full/async-iterator/async-dispose\n```\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/function.md",
    "content": "# ECMAScript: Function\n\n## Modules\n[`es.function.name`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.function.name.js), [`es.function.has-instance`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.function.has-instance.js). Just ES5: [`es.function.bind`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.function.bind.js).\n\n## Built-ins signatures\n```ts\nclass Function {\n  name: string;\n  bind(thisArg: any, ...args: Array<mixed>): Function;\n  @@hasInstance(value: any): boolean;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/es|stable|actual|full/function\ncore-js/es|stable|actual|full/function/name\ncore-js/es|stable|actual|full/function/has-instance\ncore-js(-pure)/es|stable|actual|full/function/bind\ncore-js(-pure)/es|stable|actual|full/function/virtual/bind\n```\n\n## Examples\n```js\n(function foo() { /* empty */ }).name; // => 'foo'\n\nconsole.log.bind(console, 42)(43); // -> 42 43\n```\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/globalthis.md",
    "content": "# ECMAScript: globalThis\n\n## Modules\n[`es.global-this`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.global-this.js).\n\n## Built-ins signatures\n```ts\nlet globalThis: GlobalThisValue;\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/global-this\n```\n\n## Examples\n```js\nglobalThis.Array === Array; // => true\n```\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/iterator.md",
    "content": "# ECMAScript: Iterator\n## Modules \n[`es.iterator.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.constructor.js), [`es.iterator.concat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.concat.js), [`es.iterator.dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.dispose.js), [`es.iterator.drop`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.drop.js), [`es.iterator.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.every.js), [`es.iterator.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.filter.js), [`es.iterator.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.find.js), [`es.iterator.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.flat-map.js), [`es.iterator.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.for-each.js), [`es.iterator.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.from.js), [`es.iterator.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.map.js), [`es.iterator.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.reduce.js), [`es.iterator.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.some.js), [`es.iterator.take`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.take.js), [`es.iterator.to-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.to-array.js)\n\n## Built-ins signatures\n```ts\nclass Iterator {\n  static concat(...items: Array<IterableObject>): Iterator<any>;\n  static from(iterable: Iterable<any> | Iterator<any>): Iterator<any>;\n  drop(limit: uint): Iterator<any>;\n  every(callbackfn: (value: any, counter: uint) => boolean): boolean;\n  filter(callbackfn: (value: any, counter: uint) => boolean): Iterator<any>;\n  find(callbackfn: (value: any, counter: uint) => boolean)): any;\n  flatMap(callbackfn: (value: any, counter: uint) => Iterable<any> | Iterator<any>): Iterator<any>;\n  forEach(callbackfn: (value: any, counter: uint) => void): void;\n  map(callbackfn: (value: any, counter: uint) => any): Iterator<any>;\n  reduce(callbackfn: (memo: any, value: any, counter: uint) => any, initialValue: any): any;\n  some(callbackfn: (value: any, counter: uint) => boolean): boolean;\n  take(limit: uint): Iterator<any>;\n  toArray(): Array<any>;\n  @@dispose(): undefined;\n  @@toStringTag: 'Iterator'\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/iterator\ncore-js(-pure)/es|stable|actual|full/iterator/concat\ncore-js(-pure)/es|stable|actual|full/iterator/dispose\ncore-js(-pure)/es|stable|actual|full/iterator/drop\ncore-js(-pure)/es|stable|actual|full/iterator/every\ncore-js(-pure)/es|stable|actual|full/iterator/filter\ncore-js(-pure)/es|stable|actual|full/iterator/find\ncore-js(-pure)/es|stable|actual|full/iterator/flat-map\ncore-js(-pure)/es|stable|actual|full/iterator/for-each\ncore-js(-pure)/es|stable|actual|full/iterator/from\ncore-js(-pure)/es|stable|actual|full/iterator/map\ncore-js(-pure)/es|stable|actual|full/iterator/reduce\ncore-js(-pure)/es|stable|actual|full/iterator/some\ncore-js(-pure)/es|stable|actual|full/iterator/take\ncore-js(-pure)/es|stable|actual|full/iterator/to-array\n```\n\n## Examples\n```js\n[1, 2, 3, 4, 5, 6, 7].values()\n  .drop(1)\n  .take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nIterator.from({\n  next: () => ({ done: Math.random() > 0.9, value: Math.random() * 10 | 0 }),\n}).toArray(); // => [7, 6, 3, 0, 2, 8]\n\nIterator.concat([0, 1].values(), [2, 3], function * () {\n  yield 4;\n  yield 5;\n}()).toArray(); // => [0, 1, 2, 3, 4, 5]\n```\n\n> [!WARNING]\n> - For preventing prototype pollution, in the `pure` version, new `%IteratorPrototype%` methods are not added to the real `%IteratorPrototype%`, they are available only on wrappers - instead of `[].values().map(fn)` use `Iterator.from([]).map(fn)`.\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/json.md",
    "content": "# ECMAScript: JSON\nSince `JSON` object is missed only in very old engines like IE7-, `core-js` does not provide a full `JSON.{ parse, stringify }` polyfill, however, fix already existing implementations by the current standard.\n\n## Modules\n[`es.json.is-raw-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.is-raw-json.js), [`es.json.parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.parse.js), [`es.json.raw-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.raw-json.js), [`es.json.stringify`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.stringify.js) and [`es.json.to-string-tag`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.to-string-tag.js).\n\n## Built-ins signatures\n```ts\nnamespace JSON {\n  isRawJSON(O: any): boolean;\n  parse(text: string, reviver?: (this: any, key: string, value: any, context: { source?: string }) => any): any;\n  rawJSON(text: any): RawJSON;\n  stringify(value: any, replacer?: Array<string | number> | (this: any, key: string, value: any) => any, space?: string | number): string | void;\n  @@toStringTag: 'JSON';\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/json/is-raw-json\ncore-js(-pure)/es|stable|actual|full/json/parse\ncore-js(-pure)/es|stable|actual|full/json/raw-json\ncore-js(-pure)/es|stable|actual|full/json/to-string-tag\n```\n\n## Examples\n```js\nfunction digitsToBigInt(key, val, { source }) {\n  return /^\\d+$/.test(source) ? BigInt(source) : val;\n}\n\nfunction bigIntToRawJSON(key, val) {\n  return typeof val === 'bigint' ? JSON.rawJSON(String(val)) : val;\n}\n\nconst tooBigForNumber = BigInt(Number.MAX_SAFE_INTEGER) + 2n;\nJSON.parse(String(tooBigForNumber), digitsToBigInt) === tooBigForNumber; // => true\n\nconst wayTooBig = BigInt(`1${ '0'.repeat(1000) }`);\nJSON.parse(String(wayTooBig), digitsToBigInt) === wayTooBig; // => true\n\nJSON.stringify({ tooBigForNumber }, bigIntToRawJSON); // => '{\"tooBigForNumber\":9007199254740993}'\n\nJSON.stringify({ '𠮷': ['\\uDF06\\uD834'] }); // => '{\"𠮷\":[\"\\\\udf06\\\\ud834\"]}'\n```\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/math.md",
    "content": "# ECMAScript: Math\n\n## Modules \n[`es.math.acosh`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.acosh.js), [`es.math.asinh`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.asinh.js), [`es.math.atanh`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.atanh.js), [`es.math.cbrt`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.cbrt.js), [`es.math.clz32`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.clz32.js), [`es.math.cosh`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.cosh.js), [`es.math.expm1`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.expm1.js), [`es.math.fround`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.fround.js), [`es.math.f16round`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.f16round.js), [`es.math.hypot`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.hypot.js), [`es.math.imul`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.imul.js), [`es.math.log10`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.log10.js), [`es.math.log1p`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.log1p.js), [`es.math.log2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.log2.js), [`es.math.sign`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.sign.js), [`es.math.sinh`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.sinh.js), [`esnext.math.sum-precise`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.math.sum-precise.js), [`es.math.tanh`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.tanh.js), [`es.math.trunc`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.trunc.js).\n\n## Built-ins signatures\n```ts\nnamespace Math {\n  acosh(number: number): number;\n  asinh(number: number): number;\n  atanh(number: number): number;\n  cbrt(number: number): number;\n  clz32(number: number): number;\n  cosh(number: number): number;\n  expm1(number: number): number;\n  fround(number: number): number;\n  f16round(number: any): number;\n  hypot(...args: Array<number>): number;\n  imul(number1: number, number2: number): number;\n  log1p(number: number): number;\n  log10(number: number): number;\n  log2(number: number): number;\n  sign(number: number): 1 | -1 | 0 | -0 | NaN;\n  sinh(number: number): number;\n  sumPrecise(items: Iterable<number>): Number;\n  tanh(number: number): number;\n  trunc(number: number): number;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/math\ncore-js(-pure)/es|stable|actual|full/math/acosh\ncore-js(-pure)/es|stable|actual|full/math/asinh\ncore-js(-pure)/es|stable|actual|full/math/atanh\ncore-js(-pure)/es|stable|actual|full/math/cbrt\ncore-js(-pure)/es|stable|actual|full/math/clz32\ncore-js(-pure)/es|stable|actual|full/math/cosh\ncore-js(-pure)/es|stable|actual|full/math/expm1\ncore-js(-pure)/es|stable|actual|full/math/fround\ncore-js(-pure)/es|stable|actual|full/math/f16round\ncore-js(-pure)/es|stable|actual|full/math/hypot\ncore-js(-pure)/es|stable|actual|full/math/imul\ncore-js(-pure)/es|stable|actual|full/math/log1p\ncore-js(-pure)/es|stable|actual|full/math/log10\ncore-js(-pure)/es|stable|actual|full/math/log2\ncore-js(-pure)/es|stable|actual|full/math/sign\ncore-js(-pure)/es|stable|actual|full/math/sinh\ncore-js(-pure)/es|stable|actual|full/math/sum-precise\ncore-js(-pure)/es|stable|actual|full/math/tanh\ncore-js(-pure)/es|stable|actual|full/math/trunc\n```\n\n## Examples\n```js\n1e20 + 0.1 + -1e20; // => 0\nMath.sumPrecise([1e20, 0.1, -1e20]); // => 0.1\n```\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/number.md",
    "content": "# ECMAScript: Number\n`Number` constructor support binary and octal literals\n\n## Modules\n[`es.number.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.constructor.js), [`es.number.epsilon`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.epsilon.js), [`es.number.is-finite`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.is-finite.js), [`es.number.is-integer`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.is-integer.js), [`es.number.is-nan`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.is-nan.js), [`es.number.is-safe-integer`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.is-safe-integer.js), [`es.number.max-safe-integer`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.max-safe-integer.js), [`es.number.min-safe-integer`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.min-safe-integer.js), [`es.number.parse-float`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.parse-float.js), [`es.number.parse-int`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.parse-int.js), [`es.number.to-exponential`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.to-exponential.js), [`es.number.to-fixed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.to-fixed.js), [`es.number.to-precision`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.number.to-precision.js), [`es.parse-int`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.parse-int.js), [`es.parse-float`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.parse-float.js).\n\n## Built-ins signatures\n```ts\nclass Number {\n  constructor(value: any): number;\n  toExponential(digits: number): string;\n  toFixed(digits: number): string;\n  toPrecision(precision: number): string;\n  static isFinite(number: any): boolean;\n  static isNaN(number: any): boolean;\n  static isInteger(number: any): boolean;\n  static isSafeInteger(number: any): boolean;\n  static parseFloat(string: string): number;\n  static parseInt(string: string, radix?: number = 10): number;\n  static EPSILON: number;\n  static MAX_SAFE_INTEGER: number;\n  static MIN_SAFE_INTEGER: number;\n}\n\nfunction parseFloat(string: string): number;\nfunction parseInt(string: string, radix?: number = 10): number;\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/number\ncore-js(-pure)/es|stable|actual|full/number/constructor\ncore-js(-pure)/es|stable|actual|full/number/is-finite\ncore-js(-pure)/es|stable|actual|full/number/is-nan\ncore-js(-pure)/es|stable|actual|full/number/is-integer\ncore-js(-pure)/es|stable|actual|full/number/is-safe-integer\ncore-js(-pure)/es|stable|actual|full/number/parse-float\ncore-js(-pure)/es|stable|actual|full/number/parse-int\ncore-js(-pure)/es|stable|actual|full/number/epsilon\ncore-js(-pure)/es|stable|actual|full/number/max-safe-integer\ncore-js(-pure)/es|stable|actual|full/number/min-safe-integer\ncore-js(-pure)/es|stable|actual|full/number(/virtual)/to-exponential\ncore-js(-pure)/es|stable|actual|full/number(/virtual)/to-fixed\ncore-js(-pure)/es|stable|actual|full/number(/virtual)/to-precision\ncore-js(-pure)/es|stable|actual|full/parse-float\ncore-js(-pure)/es|stable|actual|full/parse-int\n```\n\n## Examples\n```js\nNumber('0b1010101'); // => 85\nNumber('0o7654321'); // => 2054353\n```\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/object.md",
    "content": "# ECMAScript: Object\n\n## Modules \n[`es.object.assign`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.assign.js), [`es.object.create`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.create.js), [`es.object.define-getter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-getter.js), [`es.object.define-property`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-property.js), [`es.object.define-properties`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-properties.js), [`es.object.define-setter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-setter.js), [`es.object.entries`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.entries.js), [`es.object.freeze`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.freeze.js), [`es.object.from-entries`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.from-entries.js), [`es.object.get-own-property-descriptor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-descriptor.js), [`es.object.get-own-property-descriptors`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-descriptors.js), [`es.object.get-own-property-names`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-names.js), [`es.object.get-prototype-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-prototype-of.js), [`es.object.group-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.group-by.js), [`es.object.has-own`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.has-own.js), [`es.object.is`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is.js), [`es.object.is-extensible`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is-extensible.js), [`es.object.is-frozen`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is-frozen.js), [`es.object.is-sealed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is-sealed.js), [`es.object.keys`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.keys.js), [`es.object.lookup-setter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.lookup-setter.js), [`es.object.lookup-getter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.lookup-getter.js), [`es.object.prevent-extensions`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.prevent-extensions.js), [`es.object.proto`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.proto.js), [`es.object.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.to-string.js), [`es.object.seal`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.seal.js), [`es.object.set-prototype-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.set-prototype-of.js), [`es.object.values`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.values.js).\n\n## Built-ins signatures\n```ts\nclass Object {\n  toString(): string; // ES2015+ fix: @@toStringTag support\n  __defineGetter__(property: PropertyKey, getter: Function): void;\n  __defineSetter__(property: PropertyKey, setter: Function): void;\n  __lookupGetter__(property: PropertyKey): Function | void;\n  __lookupSetter__(property: PropertyKey): Function | void;\n  __proto__: Object | null; // required a way setting of prototype - will not in IE10-, it's for modern engines like Deno\n  static assign(target: Object, ...sources: Array<Object>): Object;\n  static create(prototype: Object | null, properties?: { [property: PropertyKey]: PropertyDescriptor }): Object;\n  static defineProperties(object: Object, properties: { [property: PropertyKey]: PropertyDescriptor })): Object;\n  static defineProperty(object: Object, property: PropertyKey, attributes: PropertyDescriptor): Object;\n  static entries(object: Object): Array<[string, mixed]>;\n  static freeze(object: any): any;\n  static fromEntries(iterable: Iterable<[key, value]>): Object;\n  static getOwnPropertyDescriptor(object: any, property: PropertyKey): PropertyDescriptor | void;\n  static getOwnPropertyDescriptors(object: any): { [property: PropertyKey]: PropertyDescriptor };\n  static getOwnPropertyNames(object: any): Array<string>;\n  static getPrototypeOf(object: any): Object | null;\n  static groupBy(items: Iterable, callbackfn: (value: any, index: number) => key): { [key]: Array<mixed> };\n  static hasOwn(object: object, key: PropertyKey): boolean;\n  static is(value1: any, value2: any): boolean;\n  static isExtensible(object: any): boolean;\n  static isFrozen(object: any): boolean;\n  static isSealed(object: any): boolean;\n  static keys(object: any): Array<string>;\n  static preventExtensions(object: any): any;\n  static seal(object: any): any;\n  static setPrototypeOf(target: any, prototype: Object | null): any; // required __proto__ - IE11+\n  static values(object: any): Array<mixed>;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/object\ncore-js(-pure)/es|stable|actual|full/object/assign\ncore-js(-pure)/es|stable|actual|full/object/is\ncore-js(-pure)/es|stable|actual|full/object/set-prototype-of\ncore-js(-pure)/es|stable|actual|full/object/get-prototype-of\ncore-js(-pure)/es|stable|actual|full/object/create\ncore-js(-pure)/es|stable|actual|full/object/define-property\ncore-js(-pure)/es|stable|actual|full/object/define-properties\ncore-js(-pure)/es|stable|actual|full/object/get-own-property-descriptor\ncore-js(-pure)/es|stable|actual|full/object/get-own-property-descriptors\ncore-js(-pure)/es|stable|actual|full/object/group-by\ncore-js(-pure)/es|stable|actual|full/object/has-own\ncore-js(-pure)/es|stable|actual|full/object/keys\ncore-js(-pure)/es|stable|actual|full/object/values\ncore-js(-pure)/es|stable|actual|full/object/entries\ncore-js(-pure)/es|stable|actual|full/object/get-own-property-names\ncore-js(-pure)/es|stable|actual|full/object/freeze\ncore-js(-pure)/es|stable|actual|full/object/from-entries\ncore-js(-pure)/es|stable|actual|full/object/seal\ncore-js(-pure)/es|stable|actual|full/object/prevent-extensions\ncore-js/es|stable|actual|full/object/proto\ncore-js(-pure)/es|stable|actual|full/object/is-frozen\ncore-js(-pure)/es|stable|actual|full/object/is-sealed\ncore-js(-pure)/es|stable|actual|full/object/is-extensible\ncore-js/es|stable|actual|full/object/to-string\ncore-js(-pure)/es|stable|actual|full/object/define-getter\ncore-js(-pure)/es|stable|actual|full/object/define-setter\ncore-js(-pure)/es|stable|actual|full/object/lookup-getter\ncore-js(-pure)/es|stable|actual|full/object/lookup-setter\n```\n\n## Examples\n```js\nlet foo = { q: 1, w: 2 };\nlet bar = { e: 3, r: 4 };\nlet baz = { t: 5, y: 6 };\nObject.assign(foo, bar, baz); // => foo = { q: 1, w: 2, e: 3, r: 4, t: 5, y: 6 }\n\nObject.is(NaN, NaN); // => true\nObject.is(0, -0);    // => false\nObject.is(42, 42);   // => true\nObject.is(42, '42'); // => false\n\nfunction Parent() { /* empty */ }\nfunction Child() { /* empty */ }\nObject.setPrototypeOf(Child.prototype, Parent.prototype);\nnew Child() instanceof Child;  // => true\nnew Child() instanceof Parent; // => true\n\n({\n  [Symbol.toStringTag]: 'Foo',\n}).toString(); // => '[object Foo]'\n\nObject.keys('qwe'); // => ['0', '1', '2']\nObject.getPrototypeOf('qwe') === String.prototype; // => true\n\nObject.values({ a: 1, b: 2, c: 3 });  // => [1, 2, 3]\nObject.entries({ a: 1, b: 2, c: 3 }); // => [['a', 1], ['b', 2], ['c', 3]]\n\nfor (let [key, value] of Object.entries({ a: 1, b: 2, c: 3 })) {\n  console.log(key);   // => 'a', 'b', 'c'\n  console.log(value); // => 1, 2, 3\n}\n\nconst object = { a: \"1\" };\nObject.defineProperty(object, 'notWritable', { value: true, writable: false });\n// Shallow object cloning with prototype and descriptors:\nObject.create(Object.getPrototypeOf(object), Object.getOwnPropertyDescriptors(object)); // => {\"a\": \"1\", \"notWritable\": true}\n\nconst target = { a: \"9\" };\nconst source = { b: \"8\" };\nObject.defineProperty(source, 'notWritable', { value: true, writable: false });\n// Mixin:\nObject.defineProperties(target, Object.getOwnPropertyDescriptors(source)); // => {\"a\": \"9\", \"b\": \"8\", \"notWritable\": true}\n\nconst map = new Map([['a', 1], ['b', 2]]);\nObject.fromEntries(map); // => { a: 1, b: 2 }\n\nclass Unit {\n  constructor(id) {\n    this.id = id;\n  }\n  toString() {\n    return `unit${ this.id }`;\n  }\n}\n\nconst units = new Set([new Unit(101), new Unit(102)]);\n\nObject.fromEntries(units.entries()); // => { unit101: Unit { id: 101 }, unit102: Unit { id: 102 } }\n\nObject.hasOwn({ foo: 42 }, 'foo'); // => true\nObject.hasOwn({ foo: 42 }, 'bar'); // => false\nObject.hasOwn({}, 'toString');     // => false\n\nObject.groupBy([1, 2, 3, 4, 5], it => it % 2); // => { 1: [1, 3, 5], 0: [2, 4] }\n```\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/promise.md",
    "content": "# ECMAScript: Promise\n\n## Modules\n[`es.promise`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.js), [`es.promise.all-settled`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.all-settled.js), [`es.promise.any`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.any.js), [`es.promise.finally`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.finally.js), [`es.promise.try`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.try.js) and [`es.promise.with-resolvers`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.with-resolvers.js).\n\n## Built-ins signatures\n```ts\nclass Promise {\n  constructor(executor: (resolve: Function, reject: Function) => void): Promise;\n  then(onFulfilled: Function, onRejected: Function): Promise;\n  catch(onRejected: Function): Promise;\n  finally(onFinally: Function): Promise;\n  static all(iterable: Iterable): Promise;\n  static allSettled(iterable: Iterable): Promise;\n  static any(promises: Iterable): Promise;\n  static race(iterable: Iterable): Promise;\n  static reject(r: any): Promise;\n  static resolve(x: any): Promise;\n  static try(callbackfn: Function, ...args?: Array<mixed>): Promise;\n  static withResolvers(): { promise: Promise, resolve: function, reject: function };\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/promise\ncore-js(-pure)/es|stable|actual|full/promise/all-settled\ncore-js(-pure)/es|stable|actual|full/promise/any\ncore-js(-pure)/es|stable|actual|full/promise/finally\ncore-js(-pure)/es|stable|actual|full/promise/try\ncore-js(-pure)/es|stable|actual|full/promise/with-resolvers\n```\n\n## Basic example\n```js\nfunction sleepRandom(time) {\n  return new Promise((resolve, reject) => {\n    setTimeout(resolve, time * 1e3, 0 | Math.random() * 1e3);\n  });\n}\n\nconsole.log('Run');                    // -> Run\nsleepRandom(5).then(result => {\n  console.log(result);                 // -> 869, after 5 sec.\n  return sleepRandom(10);\n}).then(result => {\n  console.log(result);                 // -> 202, after 10 sec.\n}).then(() => {\n  console.log('immediately after');    // -> immediately after\n  throw new Error('Irror!');\n}).then(() => {\n  console.log('will not be displayed');\n}).catch(error => console.log(error)); // -> Error: Irror!\n```\n\n## `Promise.resolve` and `Promise.reject` example\n```js\nconst getJson = () => new Promise(resolve => {\n  resolve({ message: \"Hello, world!\", success: true });\n});\n\nPromise.resolve(42).then(x => console.log(x));         // -> 42\nPromise.reject(42).catch(error => console.log(error)); // -> 42\n\nPromise.resolve(getJson()); // => ES promise\n```\n\n## `Promise#finally` example\n```js\nPromise.resolve(42).finally(() => console.log('You will see it anyway'));\n\nPromise.reject(42).finally(() => console.log('You will see it anyway'));\n```\n\n## `Promise.all` example\n```js\nfunction sleepRandom(time) {\n  return new Promise(resolve => setTimeout(resolve, time * 1e3, 0 | Math.random() * 1e3));\n}\n\nPromise.all([\n  'foo',\n  sleepRandom(5),\n  sleepRandom(15),\n  sleepRandom(10),            // after 15 sec:\n]).then(x => console.log(x)); // -> ['foo', 956, 85, 382]\n```\n\n## `Promise.race` example\n```js\nfunction sleepRandom(time) {\n  return new Promise(resolve => setTimeout(resolve, time * 1e3, 0 | Math.random() * 1e3));\n}\n\nfunction timeLimit(promise, time) {\n  return Promise.race([promise, new Promise((resolve, reject) => {\n    setTimeout(reject, time * 1e3, new Error(`Await > ${ time } sec`));\n  })]);\n}\n\ntimeLimit(sleepRandom(5), 10).then(x => console.log(x));           // -> 853, after 5 sec.\ntimeLimit(sleepRandom(15), 10).catch(error => console.log(error)); // Error: Await > 10 sec\n```\n\n## `Promise.allSettled` example\n```js\nPromise.allSettled([\n  Promise.resolve(1),\n  Promise.reject(2),\n  Promise.resolve(3),\n]).then(console.log); // -> [{ value: 1, status: 'fulfilled' }, { reason: 2, status: 'rejected' }, { value: 3, status: 'fulfilled' }]\n```\n\n## `Promise.any` example\n```js\nPromise.any([\n  Promise.resolve(1),\n  Promise.reject(2),\n  Promise.resolve(3),\n]).then(console.log); // -> 1\n\nPromise.any([\n  Promise.reject(1),\n  Promise.reject(2),\n  Promise.reject(3),\n]).catch(({ errors }) => console.log(errors)); // -> [1, 2, 3]\n```\n\n## `Promise.try` examples\n```js\nPromise.try(() => 42).then(it => console.log(`Promise, resolved as ${ it }`));\n\nPromise.try(() => { throw new Error('42'); }).catch(error => console.log(`Promise, rejected as ${ error }`));\n\nPromise.try(async () => 42).then(it => console.log(`Promise, resolved as ${ it }`));\n\nPromise.try(async () => { throw new Error('42'); }).catch(error => console.log(`Promise, rejected as ${ error }`));\n\nPromise.try(it => it, 42).then(it => console.log(`Promise, resolved as ${ it }`));\n```\n\n## `Promise.withResolvers` examples\n```js\nconst d = Promise.withResolvers();\nd.resolve(42);\nd.promise.then(console.log); // -> 42\n```\n\n## Example with async functions\n```js\nlet delay = time => new Promise(resolve => setTimeout(resolve, time));\n\nasync function sleepRandom(time) {\n  await delay(time * 1e3);\n  return 0 | Math.random() * 1e3;\n}\n\nasync function sleepError(time, msg) {\n  await delay(time * 1e3);\n  throw new Error(msg);\n}\n\n(async () => {\n  try {\n    console.log('Run');                // => Run\n    console.log(await sleepRandom(5)); // => 936, after 5 sec.\n    let [a, b, c] = await Promise.all([\n      sleepRandom(5),\n      sleepRandom(15),\n      sleepRandom(10),\n    ]);\n    console.log(a, b, c);              // => 210 445 71, after 15 sec.\n    await sleepError(5, 'Error!');\n    console.log('Will not be displayed');\n  } catch (error) {\n    console.log(error);                // => Error: 'Error!', after 5 sec.\n  }\n})();\n```\n\n## Unhandled rejection tracking\n\nIn Node.js, like in native implementation, available events [`unhandledRejection`](https://nodejs.org/api/process.html#process_event_unhandledrejection) and [`rejectionHandled`](https://nodejs.org/api/process.html#process_event_rejectionhandled):\n```ts\nprocess.on('unhandledRejection', (reason, promise) => console.log('unhandled', reason, promise));\nprocess.on('rejectionHandled', promise => console.log('handled', promise));\n\nlet promise = Promise.reject(42);\n// unhandled 42 [object Promise]\n\nsetTimeout(() => promise.catch(() => { /* empty */ }), 1e3);\n// handled [object Promise]\n```\nIn a browser on rejection, by default, you will see notify in the console, or you can add a custom handler and a handler on handling unhandled, example:\n```js\nglobalThis.addEventListener('unhandledrejection', e => console.log('unhandled', e.reason, e.promise));\nglobalThis.addEventListener('rejectionhandled', e => console.log('handled', e.reason, e.promise));\n// or\nglobalThis.onunhandledrejection = e => console.log('unhandled', e.reason, e.promise);\nglobalThis.onrejectionhandled = e => console.log('handled', e.reason, e.promise);\n\nlet promise = Promise.reject(42);\n// => unhandled 42 [object Promise]\n\nsetTimeout(() => promise.catch(() => { /* empty */ }), 1e3);\n// => handled 42 [object Promise]\n```\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/reflect.md",
    "content": "# ECMAScript: Reflect\n\n## Modules \n[`es.reflect.apply`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.apply.js), [`es.reflect.construct`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.construct.js), [`es.reflect.define-property`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.define-property.js), [`es.reflect.delete-property`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.delete-property.js), [`es.reflect.get`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.get.js), [`es.reflect.get-own-property-descriptor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.get-own-property-descriptor.js), [`es.reflect.get-prototype-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.get-prototype-of.js), [`es.reflect.has`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.has.js), [`es.reflect.is-extensible`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.is-extensible.js), [`es.reflect.own-keys`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.own-keys.js), [`es.reflect.prevent-extensions`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.prevent-extensions.js), [`es.reflect.set`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.set.js), [`es.reflect.set-prototype-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.reflect.set-prototype-of.js).\n\n## Built-ins signatures\n```ts\nnamespace Reflect {\n  apply(target: Function, thisArgument: any, argumentsList: Array<mixed>): any;\n  construct(target: Function, argumentsList: Array<mixed>, newTarget?: Function): Object;\n  defineProperty(target: Object, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;\n  deleteProperty(target: Object, propertyKey: PropertyKey): boolean;\n  get(target: Object, propertyKey: PropertyKey, receiver?: any): any;\n  getOwnPropertyDescriptor(target: Object, propertyKey: PropertyKey): PropertyDescriptor | void;\n  getPrototypeOf(target: Object): Object | null;\n  has(target: Object, propertyKey: PropertyKey): boolean;\n  isExtensible(target: Object): boolean;\n  ownKeys(target: Object): Array<string | symbol>;\n  preventExtensions(target: Object): boolean;\n  set(target: Object, propertyKey: PropertyKey, V: any, receiver?: any): boolean;\n  setPrototypeOf(target: Object, proto: Object | null): boolean; // required __proto__ - IE11+\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/reflect\ncore-js(-pure)/es|stable|actual|full/reflect/apply\ncore-js(-pure)/es|stable|actual|full/reflect/construct\ncore-js(-pure)/es|stable|actual|full/reflect/define-property\ncore-js(-pure)/es|stable|actual|full/reflect/delete-property\ncore-js(-pure)/es|stable|actual|full/reflect/get\ncore-js(-pure)/es|stable|actual|full/reflect/get-own-property-descriptor\ncore-js(-pure)/es|stable|actual|full/reflect/get-prototype-of\ncore-js(-pure)/es|stable|actual|full/reflect/has\ncore-js(-pure)/es|stable|actual|full/reflect/is-extensible\ncore-js(-pure)/es|stable|actual|full/reflect/own-keys\ncore-js(-pure)/es|stable|actual|full/reflect/prevent-extensions\ncore-js(-pure)/es|stable|actual|full/reflect/set\ncore-js(-pure)/es|stable|actual|full/reflect/set-prototype-of\n```\n\n## Examples\n```js\nlet object = { a: 1 };\nObject.defineProperty(object, 'b', { value: 2 });\nobject[Symbol('c')] = 3;\nReflect.ownKeys(object); // => ['a', 'b', Symbol(c)]\n\nfunction C(a, b) {\n  this.c = a + b;\n}\n\nlet instance = Reflect.construct(C, [20, 22]);\ninstance.c; // => 42\n```\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/string-regexp.md",
    "content": "# ECMAScript: String and RegExp\n\n## Modules\nThe main part of `String` features: modules [`es.string.from-code-point`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.from-code-point.js), [`es.string.raw`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.raw.js), [`es.string.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.iterator.js), [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js), [`es.string.code-point-at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.code-point-at.js), [`es.string.ends-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.ends-with.js), [`es.string.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.includes.js), [`es.string.repeat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.repeat.js), [`es.string.pad-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-start.js), [`es.string.pad-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-end.js), [`es.string.starts-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.starts-with.js), [`es.string.trim`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim.js), [`es.string.trim-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-start.js), [`es.string.trim-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-end.js), [`es.string.match-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match-all.js), [`es.string.replace-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace-all.js), [`es.string.at-alternative`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.at-alternative.js), [`es.string.is-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.is-well-formed.js), [`es.string.to-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.to-well-formed.js).\n\nAdding support of well-known [symbols]({docs-version}/docs/features/ecmascript/symbol) `@@match`, `@@replace`, `@@search` and `@@split` and direct `.exec` calls to related `String` methods, modules [`es.string.match`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match.js), [`es.string.replace`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace.js), [`es.string.search`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.search.js) and [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js).\n\nAnnex B methods. Modules [`es.string.anchor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.anchor.js), [`es.string.big`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.big.js), [`es.string.blink`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.blink.js), [`es.string.bold`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.bold.js), [`es.string.fixed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.fixed.js), [`es.string.fontcolor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.fontcolor.js), [`es.string.fontsize`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.fontsize.js), [`es.string.italics`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.italics.js), [`es.string.link`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.link.js), [`es.string.small`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.small.js), [`es.string.strike`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.strike.js), [`es.string.sub`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.sub.js), [`es.string.sup`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.sup.js), [`es.string.substr`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.substr.js), [`es.escape`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.escape.js) and [`es.unescape`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.unescape.js).\n\n`RegExp` features: modules [`es.regexp.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.regexp.constructor.js), [`es.regexp.escape`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.regexp.escape.js), [`es.regexp.dot-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.regexp.dot-all.js), [`es.regexp.flags`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.regexp.flags.js), [`es.regexp.sticky`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.regexp.sticky.js) and [`es.regexp.test`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.regexp.test.js).\n\n## Built-ins signatures\n```ts\nclass String {\n  static fromCodePoint(...codePoints: Array<number>): string;\n  static raw({ raw: Array<string> }, ...substitutions: Array<string>): string;\n  at(index: int): string;\n  includes(searchString: string, position?: number): boolean;\n  startsWith(searchString: string, position?: number): boolean;\n  endsWith(searchString: string, position?: number): boolean;\n  repeat(count: number): string;\n  padStart(length: number, fillStr?: string = ' '): string;\n  padEnd(length: number, fillStr?: string = ' '): string;\n  codePointAt(pos: number): number | void;\n  match(template: any): any; // ES2015+ fix for support @@match\n  matchAll(regexp: RegExp): Iterator;\n  replace(template: any, replacer: any): any; // ES2015+ fix for support @@replace\n  replaceAll(searchValue: string | RegExp, replaceString: string | (searchValue, index, this) => string): string;\n  search(template: any): any; // ES2015+ fix for support @@search\n  split(template: any, limit?: int): Array<string>;; // ES2015+ fix for support @@split, some fixes for old engines\n  trim(): string;\n  trimLeft(): string;\n  trimRight(): string;\n  trimStart(): string;\n  trimEnd(): string;\n  isWellFormed(): boolean;\n  toWellFormed(): string;\n  anchor(name: string): string;\n  big(): string;\n  blink(): string;\n  bold(): string;\n  fixed(): string;\n  fontcolor(color: string): string;\n  fontsize(size: any): string;\n  italics(): string;\n  link(url: string): string;\n  small(): string;\n  strike(): string;\n  sub(): string;\n  substr(start: int, length?: int): string;\n  sup(): string;\n  @@iterator(): Iterator<characters>;\n}\n\nclass RegExp {\n  // support of sticky (`y`) flag, dotAll (`s`) flag, named capture groups, can alter flags\n  constructor(pattern: RegExp | string, flags?: string): RegExp;\n  static escape(value: string): string\n  exec(): Array<string | undefined> | null; // IE8 fixes\n  test(string: string): boolean; // delegation to `.exec`\n  toString(): string; // ES2015+ fix - generic\n  @@match(string: string): Array | null;\n  @@matchAll(string: string): Iterator;\n  @@replace(string: string, replaceValue: Function | string): string;\n  @@search(string: string): number;\n  @@split(string: string, limit: number): Array<string>;\n  readonly attribute dotAll: boolean; // IE9+\n  readonly attribute flags: string;   // IE9+\n  readonly attribute sticky: boolean; // IE9+\n}\n\nfunction escape(string: string): string;\nfunction unescape(string: string): string;\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/string\ncore-js(-pure)/es|stable|actual|full/string/from-code-point\ncore-js(-pure)/es|stable|actual|full/string/raw\ncore-js/es|stable|actual|full/string/match\ncore-js/es|stable|actual|full/string/replace\ncore-js/es|stable|actual|full/string/search\ncore-js/es|stable|actual|full/string/split\ncore-js(-pure)/es|stable|actual/string(/virtual)/at\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/code-point-at\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/ends-with\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/includes\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/starts-with\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/match-all\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/pad-start\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/pad-end\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/repeat\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/replace-all\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/trim\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/trim-start\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/trim-end\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/trim-left\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/trim-right\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/is-well-formed\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/to-well-formed\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/anchor\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/big\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/blink\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/bold\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/fixed\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/fontcolor\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/fontsize\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/italics\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/link\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/small\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/strike\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/sub\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/substr\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/sup\ncore-js(-pure)/es|stable|actual|full/string(/virtual)/iterator\ncore-js/es|stable|actual|full/regexp\ncore-js/es|stable|actual|full/regexp/constructor\ncore-js(-pure)/es|stable|actual|full/regexp/escape\ncore-js/es|stable|actual|full/regexp/dot-all\ncore-js(-pure)/es|stable|actual|full/regexp/flags\ncore-js/es|stable|actual|full/regexp/sticky\ncore-js/es|stable|actual|full/regexp/test\ncore-js/es|stable|actual|full/regexp/to-string\ncore-js/es|stable|actual|full/escape\ncore-js/es|stable|actual|full/unescape\n```\n\n## Examples\n```js\nfor (let value of 'a𠮷b') {\n  console.log(value); // => 'a', '𠮷', 'b'\n}\n\n'foobarbaz'.includes('bar');      // => true\n'foobarbaz'.includes('bar', 4);   // => false\n'foobarbaz'.startsWith('foo');    // => true\n'foobarbaz'.startsWith('bar', 3); // => true\n'foobarbaz'.endsWith('baz');      // => true\n'foobarbaz'.endsWith('bar', 6);   // => true\n\n'string'.repeat(3); // => 'stringstringstring'\n\n'hello'.padStart(10);         // => '     hello'\n'hello'.padStart(10, '1234'); // => '12341hello'\n'hello'.padEnd(10);           // => 'hello     '\n'hello'.padEnd(10, '1234');   // => 'hello12341'\n\n'𠮷'.codePointAt(0); // => 134071\nString.fromCodePoint(97, 134071, 98); // => 'a𠮷b'\n\nlet name = 'Bob';\nString.raw`Hi\\n${ name }!`;           // => 'Hi\\\\nBob!' (ES2015 template string syntax)\nString.raw({ raw: 'test' }, 0, 1, 2); // => 't0e1s2t'\n\n'foo'.bold();                      // => '<b>foo</b>'\n'bar'.anchor('a\"b');               // => '<a name=\"a&quot;b\">bar</a>'\n'baz'.link('https://example.com'); // => '<a href=\"https://example.com\">baz</a>'\n\nRegExp('.', 's').test('\\n'); // => true\nRegExp('.', 's').dotAll;     // => true\n\nRegExp('foo:(?<foo>\\\\w+),bar:(?<bar>\\\\w+)').exec('foo:abc,bar:def').groups; // => { foo: 'abc', bar: 'def' }\n\n'foo:abc,bar:def'.replace(RegExp('foo:(?<foo>\\\\w+),bar:(?<bar>\\\\w+)'), '$<bar>,$<foo>'); // => 'def,abc'\n\n// eslint-disable-next-line regexp/no-useless-flag -- example\nRegExp(/./g, 'm'); // => /./m\n\n/foo/.flags;   // => ''\n/foo/gi.flags; // => 'gi'\n\nRegExp('foo', 'y').sticky; // => true\n\nconst text = 'First line\\nSecond line';\nconst regex = RegExp('(?<index>\\\\S+) line\\\\n?', 'y');\n\nregex.exec(text).groups.index; // => 'First'\nregex.exec(text).groups.index; // => 'Second'\nregex.exec(text);    // => null\n\n'foo'.match({ [Symbol.match]: () => 1 });     // => 1\n'foo'.replace({ [Symbol.replace]: () => 2 }); // => 2\n'foo'.search({ [Symbol.search]: () => 3 });   // => 3\n'foo'.split({ [Symbol.split]: () => 4 });     // => 4\n\nRegExp.prototype.toString.call({ source: 'foo', flags: 'bar' }); // => '/foo/bar'\n\n'   hello   '.trimLeft();  // => 'hello   '\n'   hello   '.trimRight(); // => '   hello'\n'   hello   '.trimStart(); // => 'hello   '\n'   hello   '.trimEnd();   // => '   hello'\n\nfor (let { groups: { number, letter } } of '1111a2b3cccc'.matchAll(RegExp('(?<number>\\\\d)(?<letter>\\\\D)', 'g'))) {\n  console.log(number, letter); // => 1 a, 2 b, 3 c\n}\n\n'Test abc test test abc test.'.replaceAll('abc', 'foo'); // -> 'Test foo test test foo test.'\n\n'abc'.at(1);  // => 'b'\n'abc'.at(-1); // => 'c'\n\n'a💩b'.isWellFormed();      // => true\n'a\\uD83Db'.isWellFormed();  // => false\n\n'a💩b'.toWellFormed();      // => 'a💩b'\n'a\\uD83Db'.toWellFormed();  // => 'a�b'\n```\n\n## Examples\n```js\nconsole.log(RegExp.escape('10$')); // => '\\\\x310\\\\$'\nconsole.log(RegExp.escape('abcdefg_123456')); // => '\\\\x61bcdefg_123456'\nconsole.log(RegExp.escape('Привет')); // => 'Привет'\nconsole.log(RegExp.escape('(){}[]|,.?*+-^$=<>\\\\/#&!%:;@~\\'\"`'));\n// => '\\\\(\\\\)\\\\{\\\\}\\\\[\\\\]\\\\|\\\\x2c\\\\.\\\\?\\\\*\\\\+\\\\x2d\\\\^\\\\$\\\\x3d\\\\x3c\\\\x3e\\\\\\\\\\\\/\\\\x23\\\\x26\\\\x21\\\\x25\\\\x3a\\\\x3b\\\\x40\\\\x7e\\\\x27\\\\x22\\\\x60'\nconsole.log(RegExp.escape('\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF'));\n// => '\\\\\\t\\\\\\n\\\\\\v\\\\\\f\\\\\\r\\\\x20\\\\xa0\\\\u1680\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029\\\\ufeff'\nconsole.log(RegExp.escape('💩')); // => '💩'\nconsole.log(RegExp.escape('\\uD83D')); // => '\\\\ud83d'\n```\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/symbol.md",
    "content": "# ECMAScript: Symbol\n## Modules \n[`es.symbol`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.js), [`es.symbol.async-dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.async-dispose.js), [`es.symbol.async-iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.async-iterator.js), [`es.symbol.description`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.description.js), [`es.symbol.dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.dispose.js), [`es.symbol.has-instance`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.has-instance.js), [`es.symbol.is-concat-spreadable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.is-concat-spreadable.js), [`es.symbol.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.iterator.js), [`es.symbol.match`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.match.js), [`es.symbol.replace`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.replace.js), [`es.symbol.search`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.search.js), [`es.symbol.species`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.species.js), [`es.symbol.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.split.js), [`es.symbol.to-primitive`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.to-primitive.js), [`es.symbol.to-string-tag`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.to-string-tag.js), [`es.symbol.unscopables`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.unscopables.js), [`es.math.to-string-tag`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.to-string-tag.js).\n\n## Built-ins signatures\n```ts\nclass Symbol {\n  constructor(description?): symbol;\n  readonly attribute description: string | void;\n  static asyncDispose: @@asyncDispose;\n  static asyncIterator: @@asyncIterator;\n  static dispose: @@dispose;\n  static hasInstance: @@hasInstance;\n  static isConcatSpreadable: @@isConcatSpreadable;\n  static iterator: @@iterator;\n  static match: @@match;\n  static replace: @@replace;\n  static search: @@search;\n  static species: @@species;\n  static split: @@split;\n  static toPrimitive: @@toPrimitive;\n  static toStringTag: @@toStringTag;\n  static unscopables: @@unscopables;\n  static for(key: string): symbol;\n  static keyFor(sym: symbol): string;\n  static useSimple(): void;\n  static useSetter(): void;\n}\n\nclass Object {\n  static getOwnPropertySymbols(object: any): Array<symbol>;\n}\n```\nAlso wrapped some methods for correct work with `Symbol` polyfill.\n```ts\nclass Object {\n  static create(prototype: Object | null, properties?: { [property: PropertyKey]: PropertyDescriptor }): Object;\n  static defineProperties(object: Object, properties: { [property: PropertyKey]: PropertyDescriptor })): Object;\n  static defineProperty(object: Object, property: PropertyKey, attributes: PropertyDescriptor): Object;\n  static getOwnPropertyDescriptor(object: any, property: PropertyKey): PropertyDescriptor | void;\n  static getOwnPropertyNames(object: any): Array<string>;\n  propertyIsEnumerable(key: PropertyKey): boolean;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/es|stable|actual|full/symbol\ncore-js(-pure)/es|stable|actual|full/symbol/async-dispose\ncore-js(-pure)/es|stable|actual|full/symbol/async-iterator\ncore-js/es|stable|actual|full/symbol/description\ncore-js(-pure)/es|stable|actual|full/symbol/dispose\ncore-js(-pure)/es|stable|actual|full/symbol/has-instance\ncore-js(-pure)/es|stable|actual|full/symbol/is-concat-spreadable\ncore-js(-pure)/es|stable|actual|full/symbol/iterator\ncore-js(-pure)/es|stable|actual|full/symbol/match\ncore-js(-pure)/es|stable|actual|full/symbol/replace\ncore-js(-pure)/es|stable|actual|full/symbol/search\ncore-js(-pure)/es|stable|actual|full/symbol/species\ncore-js(-pure)/es|stable|actual|full/symbol/split\ncore-js(-pure)/es|stable|actual|full/symbol/to-primitive\ncore-js(-pure)/es|stable|actual|full/symbol/to-string-tag\ncore-js(-pure)/es|stable|actual|full/symbol/unscopables\ncore-js(-pure)/es|stable|actual|full/symbol/for\ncore-js(-pure)/es|stable|actual|full/symbol/key-for\ncore-js(-pure)/es|stable|actual|full/object/get-own-property-symbols\ncore-js(-pure)/es|stable|actual|full/math/to-string-tag\n```\n\n## Basic example\n```js\nlet Person = (() => {\n  let NAME = Symbol('name');\n  return class {\n    constructor(name) {\n      this[NAME] = name;\n    }\n    getName() {\n      return this[NAME];\n    }\n  };\n})();\n\nlet person = new Person('Vasya');\nconsole.log(person.getName());            // => 'Vasya'\nconsole.log(person.name);                 // => undefined\nconsole.log(person[Symbol('name')]);      // => undefined, symbols are uniq\nfor (let key in person) console.log(key); // => nothing, symbols are not enumerable\n```\n\n## `Symbol.for` & `Symbol.keyFor` example\n```js\nlet symbol = Symbol.for('key');\nsymbol === Symbol.for('key'); // => true\nSymbol.keyFor(symbol);        // => 'key'\n```\n\n## Example with methods for getting own object keys\n```js\nlet object = { a: 1 };\nObject.defineProperty(object, 'b', { value: 2 });\nobject[Symbol('c')] = 3;\nObject.keys(object);                  // => ['a']\nObject.getOwnPropertyNames(object);   // => ['a', 'b']\nObject.getOwnPropertySymbols(object); // => [Symbol(c)]\nReflect.ownKeys(object);              // => ['a', 'b', Symbol(c)]\n```\n\n## Symbol#description getter example\n```js\nSymbol('foo').description; // => 'foo'\nSymbol().description;      // => undefined\n```\n\n## Caveats when using `Symbol` polyfill\n\n- We can't add a new primitive type, `Symbol` returns an object.\n- `Symbol.for` and `Symbol.keyFor` can't be polyfilled cross-realm.\n- By default, to hide the keys, `Symbol` polyfill defines a setter in `Object.prototype`. For this reason, an uncontrolled creation of symbols can cause a memory leak and the `in` operator is not working correctly with `Symbol` polyfill: `Symbol() in {} // => true`.\n\nYou can disable defining setters in `Object.prototype`. *Example*:\n```ts\nSymbol.useSimple();\nlet object1 = { [Symbol('symbol1')]: true };\nfor (let key in object1) console.log(key); // => 'Symbol(symbol1)_t.qamkg9f3q', w/o native Symbol\n\nSymbol.useSetter();\nlet object2 = { [Symbol('symbol2')]: true };\nfor (let key in object2) console.log(key); // nothing\n```\n- Currently, `core-js` does not add setters to `Object.prototype` for well-known symbols for correct work something like `Symbol.iterator in foo`. It can cause problems with their enumerability.\n- Some problems are possible with environment exotic objects (for example, IE `localStorage`).\n"
  },
  {
    "path": "docs/web/docs/features/ecmascript/typed-arrays.md",
    "content": "# ECMAScript: Typed Arrays\nImplementations and fixes for `ArrayBuffer`, `DataView`, Typed Arrays constructors, static and prototype methods. Typed arrays work only in environments with support descriptors (IE9+), `ArrayBuffer` and `DataView` should work anywhere.\n\n## Modules\n[`es.array-buffer.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array-buffer.constructor.js), [`es.array-buffer.is-view`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array-buffer.is-view.js), [`esnext.array-buffer.detached`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array-buffer.detached.js), [`es.array-buffer.slice`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array-buffer.slice.js), [`esnext.array-buffer.transfer`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array-buffer.transfer.js), [`esnext.array-buffer.transfer-to-fixed-length`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js) [`es.data-view`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.data-view.js), [`es.data-view.get-float16`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.data-view.get-float16.js), [`es.data-view.set-float16`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.data-view.set-float16.js), [`es.typed-array.int8-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.int8-array.js), [`es.typed-array.uint8-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint8-array.js), [`es.typed-array.uint8-clamped-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint8-clamped-array.js), [`es.typed-array.int16-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.int16-array.js), [`es.typed-array.uint16-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint16-array.js), [`es.typed-array.int32-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.int32-array.js), [`es.typed-array.uint32-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint32-array.js), [`es.typed-array.float32-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.float32-array.js), [`es.typed-array.float64-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.float64-array.js), [`es.typed-array.copy-within`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.copy-within.js), [`es.typed-array.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.every.js), [`es.typed-array.fill`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.fill.js), [`es.typed-array.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.filter.js), [`es.typed-array.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find.js), [`es.typed-array.find-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find-index.js), [`es.typed-array.find-last`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find-last.js), [`es.typed-array.find-last-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find-last-index.js), [`es.typed-array.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.for-each.js), [`es.typed-array.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.from.js), [`es.typed-array.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.includes.js), [`es.typed-array.index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.index-of.js), [`es.typed-array.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.iterator.js), [`es.typed-array.last-index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.last-index-of.js), [`es.typed-array.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.map.js), [`es.typed-array.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.of.js), [`es.typed-array.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.reduce.js), [`es.typed-array.reduce-right`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.reduce-right.js), [`es.typed-array.reverse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.reverse.js), [`es.typed-array.set`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.set.js), [`es.typed-array.slice`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.slice.js), [`es.typed-array.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.some.js), [`es.typed-array.sort`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.sort.js), [`es.typed-array.subarray`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.subarray.js), [`es.typed-array.to-locale-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-locale-string.js), [`es.typed-array.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-string.js), [`es.typed-array.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.at.js), [`es.typed-array.to-reversed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-reversed.js), [`es.typed-array.to-sorted`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-sorted.js), [`es.typed-array.with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.with.js), [`es.uint8-array.from-base64`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.from-base64.js), [`es.uint8-array.from-hex`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.from-hex.js), [`es.uint8-array.set-from-hex`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.set-from-hex.js), [`es.uint8-array.to-base64`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.to-base64.js), [`es.uint8-array.to-hex`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.to-hex.js).\n\n## Built-ins signatures\n```ts\nclass ArrayBuffer {\n  constructor(length: any): ArrayBuffer;\n  readonly attribute byteLength: number;\n  readonly attribute detached: boolean;\n  slice(start: any, end: any): ArrayBuffer;\n  transfer(newLength?: number): ArrayBuffer;\n  transferToFixedLength(newLength?: number): ArrayBuffer;\n  static isView(arg: any): boolean;\n}\n\nclass DataView {\n  constructor(buffer: ArrayBuffer, byteOffset?: number, byteLength?: number): DataView;\n  getInt8(offset: any): int8;\n  getUint8(offset: any): uint8\n  getInt16(offset: any, littleEndian?: boolean = false): int16;\n  getUint16(offset: any, littleEndian?: boolean = false): uint16;\n  getInt32(offset: any, littleEndian?: boolean = false): int32;\n  getUint32(offset: any, littleEndian?: boolean = false): uint32;\n  getFloat16(offset: any, littleEndian?: boolean = false): float16\n  getFloat32(offset: any, littleEndian?: boolean = false): float32;\n  getFloat64(offset: any, littleEndian?: boolean = false): float64;\n  setInt8(offset: any, value: any): void;\n  setUint8(offset: any, value: any): void;\n  setInt16(offset: any, value: any, littleEndian?: boolean = false): void;\n  setUint16(offset: any, value: any, littleEndian?: boolean = false): void;\n  setInt32(offset: any, value: any, littleEndian?: boolean = false): void;\n  setUint32(offset: any, value: any, littleEndian?: boolean = false): void;\n  setFloat16(offset: any, value: any, littleEndian?: boolean = false): void;\n  setFloat32(offset: any, value: any, littleEndian?: boolean = false): void;\n  setFloat64(offset: any, value: any, littleEndian?: boolean = false): void;\n  readonly attribute buffer: ArrayBuffer;\n  readonly attribute byteLength: number;\n  readonly attribute byteOffset: number;\n}\n\nclass [\n  Int8Array,\n  Uint8Array,\n  Uint8ClampedArray,\n  Int16Array,\n  Uint16Array,\n  Int32Array,\n  Uint32Array,\n  Float32Array,\n  Float64Array,\n] extends %TypedArray% {\n  constructor(length: number): %TypedArray%;\n  constructor(object: %TypedArray% | Iterable | ArrayLike): %TypedArray%;\n  constructor(buffer: ArrayBuffer, byteOffset?: number, length?: number): %TypedArray%\n}\n\nclass %TypedArray% {\n  at(index: int): number;\n  copyWithin(target: number, start: number, end?: number): this;\n  entries(): Iterator<[index, value]>;\n  every(callbackfn: (value: number, index: number, target: %TypedArray%) => boolean, thisArg?: any): boolean;\n  fill(value: number, start?: number, end?: number): this;\n  filter(callbackfn: (value: number, index: number, target: %TypedArray%) => boolean, thisArg?: any): %TypedArray%;\n  find(callbackfn: (value: number, index: number, target: %TypedArray%) => boolean), thisArg?: any): any;\n  findIndex(callbackfn: (value: number, index: number, target: %TypedArray%) => boolean, thisArg?: any): uint;\n  findLast(callbackfn: (value: any, index: number, target: %TypedArray%) => boolean, thisArg?: any): any;\n  findLastIndex(callbackfn: (value: any, index: number, target: %TypedArray%) => boolean, thisArg?: any): uint;\n  forEach(callbackfn: (value: number, index: number, target: %TypedArray%) => void, thisArg?: any): void;\n  includes(searchElement: any, from?: number): boolean;\n  indexOf(searchElement: any, from?: number): number;\n  join(separator: string = ','): string;\n  keys(): Iterator<index>;\n  lastIndexOf(searchElement: any, from?: number): number;\n  map(mapFn: (value: number, index: number, target: %TypedArray%) => number, thisArg?: any): %TypedArray%;\n  reduce(callbackfn: (memo: any, value: number, index: number, target: %TypedArray%) => any, initialValue?: any): any;\n  reduceRight(callbackfn: (memo: any, value: number, index: number, target: %TypedArray%) => any, initialValue?: any): any;\n  reverse(): this;\n  set(array: ArrayLike, offset?: number): void;\n  slice(start?: number, end?: number): %TypedArray%;\n  some(callbackfn: (value: number, index: number, target: %TypedArray%) => boolean, thisArg?: any): boolean;\n  sort(comparefn?: (a: number, b: number) => number): this; // with modern behavior like stable sort\n  subarray(begin?: number, end?: number): %TypedArray%;\n  toReversed(): %TypedArray%;\n  toSorted(comparefn?: (a: any, b: any) => number): %TypedArray%;\n  toString(): string;\n  toLocaleString(): string;\n  values(): Iterator<value>;\n  with(index: includes, value: any): %TypedArray%;\n  @@iterator(): Iterator<value>;\n  readonly attribute buffer: ArrayBuffer;\n  readonly attribute byteLength: number;\n  readonly attribute byteOffset: number;\n  readonly attribute length: number;\n  BYTES_PER_ELEMENT: number;\n  static from(items: Iterable | ArrayLike, mapFn?: (value: any, index: number) => any, thisArg?: any): %TypedArray%;\n  static of(...args: Array<mixed>): %TypedArray%;\n  static BYTES_PER_ELEMENT: number;\n}\n\nclass Uint8Array {\n  static fromBase64(string: string, options?: { alphabet?: 'base64' | 'base64url', lastChunkHandling?: 'loose' | 'strict' | 'stop-before-partial' }): Uint8Array;\n  static fromHex(string: string): Uint8Array;\n  setFromBase64(string: string, options?: { alphabet?: 'base64' | 'base64url', lastChunkHandling?: 'loose' | 'strict' | 'stop-before-partial' }): { read: uint, written: uint };\n  setFromHex(string: string): { read: uint, written: uint };\n  toBase64(options?: { alphabet?: 'base64' | 'base64url', omitPadding?: boolean }): string;\n  toHex(): string;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/es|stable|actual|full/array-buffer\ncore-js/es|stable|actual|full/array-buffer/constructor\ncore-js/es|stable|actual|full/array-buffer/is-view\ncore-js/es|stable|actual|full/array-buffer/detached\ncore-js/es|stable|actual|full/array-buffer/slice\ncore-js/es|stable|actual|full/array-buffer/transfer\ncore-js/es|stable|actual|full/array-buffer/transfer-to-fixed-length\ncore-js/es|stable|actual|full/data-view\ncore-js/es|stable|actual|full/dataview/get-float16\ncore-js/es|stable|actual|full/dataview/set-float16\ncore-js/es|stable|actual|full/typed-array\ncore-js/es|stable|actual|full/typed-array/int8-array\ncore-js/es|stable|actual|full/typed-array/uint8-array\ncore-js/es|stable|actual|full/typed-array/uint8-clamped-array\ncore-js/es|stable|actual|full/typed-array/int16-array\ncore-js/es|stable|actual|full/typed-array/uint16-array\ncore-js/es|stable|actual|full/typed-array/int32-array\ncore-js/es|stable|actual|full/typed-array/uint32-array\ncore-js/es|stable|actual|full/typed-array/float32-array\ncore-js/es|stable|actual|full/typed-array/float64-array\ncore-js/es|stable|actual|full/typed-array/at\ncore-js/es|stable|actual|full/typed-array/copy-within\ncore-js/es|stable|actual|full/typed-array/entries\ncore-js/es|stable|actual|full/typed-array/every\ncore-js/es|stable|actual|full/typed-array/fill\ncore-js/es|stable|actual|full/typed-array/filter\ncore-js/es|stable|actual|full/typed-array/find\ncore-js/es|stable|actual|full/typed-array/find-index\ncore-js/es|stable|actual|full/typed-array/find-last\ncore-js/es|stable|actual|full/typed-array/find-last-index\ncore-js/es|stable|actual|full/typed-array/for-each\ncore-js/es|stable|actual|full/typed-array/from\ncore-js/es|stable|actual|full/typed-array/from-base64\ncore-js/es|stable|actual|full/typed-array/from-hex\ncore-js/es|stable|actual|full/typed-array/includes\ncore-js/es|stable|actual|full/typed-array/index-of\ncore-js/es|stable|actual|full/typed-array/iterator\ncore-js/es|stable|actual|full/typed-array/join\ncore-js/es|stable|actual|full/typed-array/keys\ncore-js/es|stable|actual|full/typed-array/last-index-of\ncore-js/es|stable|actual|full/typed-array/map\ncore-js/es|stable|actual|full/typed-array/of\ncore-js/es|stable|actual|full/typed-array/reduce\ncore-js/es|stable|actual|full/typed-array/reduce-right\ncore-js/es|stable|actual|full/typed-array/reverse\ncore-js/es|stable|actual|full/typed-array/set\ncore-js/es|stable|actual|full/typed-array/set-from-base64\ncore-js/es|stable|actual|full/typed-array/set-from-hex\ncore-js/es|stable|actual|full/typed-array/slice\ncore-js/es|stable|actual|full/typed-array/some\ncore-js/es|stable|actual|full/typed-array/sort\ncore-js/es|stable|actual|full/typed-array/subarray\ncore-js/es|stable|actual|full/typed-array/to-base64\ncore-js/es|stable|actual|full/typed-array/to-hex\ncore-js/es|stable|actual|full/typed-array/to-locale-string\ncore-js/es|stable|actual|full/typed-array/to-reversed\ncore-js/es|stable|actual|full/typed-array/to-sorted\ncore-js/es|stable|actual|full/typed-array/to-string\ncore-js/es|stable|actual|full/typed-array/values\ncore-js/es|stable|actual|full/typed-array/with\n```\n\n## Examples\n```js\nnew Int32Array(4);                          // => [0, 0, 0, 0]\nnew Uint8ClampedArray([1, 2, 3, 666]);      // => [1, 2, 3, 255]\nnew Float32Array(new Set([1, 2, 3, 2, 1])); // => [1, 2, 3]\n\nlet buffer = new ArrayBuffer(8);\nlet view = new DataView(buffer);\nview.setFloat64(0, 123.456, true);\nnew Uint8Array(buffer.slice(4)); // => [47, 221, 94, 64]\n\nInt8Array.of(1, 1.5, 5.7, 745);      // => [1, 1, 5, -23]\nUint8Array.from([1, 1.5, 5.7, 745]); // => [1, 1, 5, 233]\n\nlet typed = new Uint8Array([1, 2, 3]);\n\nlet a = typed.slice(1);    // => [2, 3]\ntyped.buffer === a.buffer; // => false\nlet b = typed.subarray(1); // => [2, 3]\ntyped.buffer === b.buffer; // => true\n\ntyped.filter(it => it % 2); // => [1, 3]\ntyped.map(it => it * 1.5);  // => [1, 3, 4]\n\nfor (let value of typed) console.log(value);          // => 1, 2, 3\nfor (let value of typed.values()) console.log(value); // => 1, 2, 3\nfor (let key of typed.keys()) console.log(key);       // => 0, 1, 2\nfor (let [key, value] of typed.entries()) {\n  console.log(key);                                   // => 0, 1, 2\n  console.log(value);                                 // => 1, 2, 3\n}\n\nnew Int32Array([1, 2, 3]).at(1);  // => 2\nnew Int32Array([1, 2, 3]).at(-1); // => 3\n\nbuffer = Int8Array.of(1, 2, 3, 4, 5, 6, 7, 8).buffer;\nconsole.log(buffer.byteLength); // => 8\nconsole.log(buffer.detached); // => false\nconst newBuffer = buffer.transfer(4);\nconsole.log(buffer.byteLength); // => 0\nconsole.log(buffer.detached); // => true\nconsole.log(newBuffer.byteLength); // => 4\nconsole.log(newBuffer.detached); // => false\nconsole.log([...new Int8Array(newBuffer)]); // => [1, 2, 3, 4]\n```\n\n## Base64 / Hex examples\n```js\nlet arr = new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]);\nconsole.log(arr.toBase64()); // => 'SGVsbG8gV29ybGQ='\nconsole.log(arr.toBase64({ omitPadding: true })); // => 'SGVsbG8gV29ybGQ'\nconsole.log(arr.toHex()); // => '48656c6c6f20576f726c64'\nconsole.log(Uint8Array.fromBase64('SGVsbG8gV29ybGQ=')); // => Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100])\nconsole.log(Uint8Array.fromHex('48656c6c6f20576f726c64')); // => Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100])\n```\n\n> [!WARNING]\n> - Polyfills of Typed Arrays constructors work completely how they should work by the spec. Still, because of the internal usage of getters / setters on each instance, they are slow and consume significant memory. However, polyfills of Typed Arrays constructors are required mainly for old IE, all modern engines have native Typed Arrays constructors and require only fixes of constructors and polyfills of methods.\n> - `ArrayBuffer.prototype.{ transfer, transferToFixedLength }` polyfilled only in runtime with native `structuredClone` with `ArrayBuffer` transfer or `MessageChannel` support.\n"
  },
  {
    "path": "docs/web/docs/features/iteration-helpers.md",
    "content": "# Iteration helpers\nHelpers for checking iterability / get iterator in the `pure` version or, for example, for `arguments` object\n\n## Built-ins signatures\n```ts\nfunction isIterable(value: any): boolean;\nfunction getIterator(value: any): Object;\nfunction getIteratorMethod(value: any): Function | void;\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js-pure/es|stable|actual|full/is-iterable\ncore-js-pure/es|stable|actual|full/get-iterator\ncore-js-pure/es|stable|actual|full/get-iterator-method\n```\n\n## Examples\n```ts\nimport isIterable from 'core-js-pure/actual/is-iterable';\nimport getIterator from 'core-js-pure/actual/get-iterator';\nimport getIteratorMethod from 'core-js-pure/actual/get-iterator-method';\n\nlet list = (function () {\n  // eslint-disable-next-line prefer-rest-params -- example\n  return arguments;\n})(1, 2, 3);\n\nconsole.log(isIterable(list)); // true;\n\nlet iterator = getIterator(list);\nconsole.log(iterator.next().value); // 1\nconsole.log(iterator.next().value); // 2\nconsole.log(iterator.next().value); // 3\nconsole.log(iterator.next().value); // undefined\n\ngetIterator({}); // TypeError: [object Object] is not iterable!\n\nlet method = getIteratorMethod(list);\nconsole.log(typeof method);         // 'function'\niterator = method.call(list);\nconsole.log(iterator.next().value); // 1\nconsole.log(iterator.next().value); // 2\nconsole.log(iterator.next().value); // 3\nconsole.log(iterator.next().value); // undefined\n\nconsole.log(getIteratorMethod({})); // undefined\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/accessible-object-prototype-hasownproperty.md",
    "content": "# Accessible `Object.prototype.hasOwnProperty`\n[Specification](https://tc39.es/proposal-accessible-object-hasownproperty/)\\\n[Proposal repo](https://github.com/tc39/proposal-accessible-object-hasownproperty)\n\n## Built-ins signatures\n```ts\nclass Object {\n  static hasOwn(object: object, key: PropertyKey): boolean;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/accessible-object-hasownproperty\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/array-deduplication.md",
    "content": "# Array deduplication\n[Proposal repo](https://github.com/tc39/proposal-array-unique)\n\n## Modules\n[`esnext.array.unique-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array.unique-by.js), [`esnext.typed-array.unique-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.typed-array.unique-by.js)\n\n## Built-ins signatures\n```ts\nclass Array {\n  uniqueBy(resolver?: (item: any) => any): Array<mixed>;\n}\n\nclass %TypedArray% {\n  uniqueBy(resolver?: (item: any) => any): %TypedArray%;;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/array-unique\ncore-js(-pure)/full/array(/virtual)/unique-by\ncore-js/full/typed-array/unique-by\n```\n\n## Examples\n```js\n[1, 2, 3, 2, 1].uniqueBy(); // [1, 2, 3]\n\n[\n  { id: 1, uid: 10000 },\n  { id: 2, uid: 10000 },\n  { id: 3, uid: 10001 },\n].uniqueBy(it => it.uid);    // => [{ id: 1, uid: 10000 }, { id: 3, uid: 10001 }]\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/array-filtering.md",
    "content": "# Array filtering\n[Specification](https://tc39.es/proposal-array-filtering/)\\\n[Proposal repo](https://github.com/tc39/proposal-array-filtering)\n\n## Modules\n[`esnext.array.filter-reject`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array.filter-reject.js), [`esnext.typed-array.filter-reject`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.typed-array.filter-reject.js).\n\n## Built-ins signatures\n```ts\nclass Array {\n  filterReject(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): Array<mixed>;\n}\n\nclass %TypedArray% {\n  filterReject(callbackfn: (value: number, index: number, target: %TypedArray%) => boolean, thisArg?: any): %TypedArray%;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/array-filtering-stage-1\ncore-js(-pure)/full/array(/virtual)/filter-reject\ncore-js/full/typed-array/filter-reject\n```\n\n## Examples\n```js\n[1, 2, 3, 4, 5].filterReject(it => it % 2); // => [2, 4]\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/array-find-from-last.md",
    "content": "# Array find from last\n[Specification](https://tc39.es/proposal-array-find-from-last/index.html)\\\n[Proposal repo](https://github.com/tc39/proposal-array-find-from-last)\n\n## Built-ins signatures\n```ts\nclass Array {\n  findLast(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): any;\n  findLastIndex(callbackfn: (value: any, index: number, target: any) => boolean, thisArg?: any): uint;\n}\n\nclass %TypedArray% {\n  findLast(callbackfn: (value: any, index: number, target: %TypedArray%) => boolean, thisArg?: any): any;\n  findLastIndex(callbackfn: (value: any, index: number, target: %TypedArray%) => boolean, thisArg?: any): uint;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/array-find-from-last\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/array-fromasync.md",
    "content": "# `Array.fromAsync`\n[Specification](https://tc39.es/proposal-array-from-async/)\\\n[Proposal repo](https://github.com/tc39/proposal-array-from-async)\n\n## Built-ins signatures\n```ts\nclass Array {\n  static fromAsync(asyncItems: AsyncIterable | Iterable | ArrayLike, mapfn?: (value: any, index: number) => any, thisArg?: any): Array;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/array-from-async-stage-2\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/array-grouping.md",
    "content": "# `Array` grouping\n[Specification](https://tc39.es/proposal-array-grouping/)\\\n[Proposal repo](https://github.com/tc39/proposal-array-grouping)\n\n## Built-ins signatures\n```ts\nclass Object {\n  static groupBy(items: Iterable, callbackfn: (value: any, index: number) => key): { [key]: Array<mixed> };\n}\n\nclass Map {\n  static groupBy(items: Iterable, callbackfn: (value: any, index: number) => key): Map<key, Array<mixed>>;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/array-grouping-v2\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/array-istemplateobject.md",
    "content": "# Array.isTemplateObject\n[Specification](https://tc39.es/proposal-array-is-template-object/)\\\n[Proposal repo](https://github.com/tc39/proposal-array-is-template-object)\n\n## Module\n[`esnext.array.is-template-object`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array.is-template-object.js)\n\n## Built-ins signatures\n```ts\nclass Array {\n  static isTemplateObject(value: any): boolean\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/array-is-template-object\ncore-js(-pure)/full/array/is-template-object\n```\n\n## Example\n```js\nconsole.log(Array.isTemplateObject((it => it)`qwe${ 123 }asd`)); // => true\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/array-prototype-flat-flatmap.md",
    "content": "# `Array.prototype.flat` / `Array.prototype.flatMap`\n[Specification](https://tc39.es/proposal-flatMap/)\\\n[Proposal repo](https://github.com/tc39/proposal-flatMap)\n\n## Built-ins signatures\n```ts\nclass Array {\n  flat(depthArg?: number = 1): Array<mixed>;\n  flatMap(mapFn: (value: any, index: number, target: any) => any, thisArg: any): Array<mixed>;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/array-flat-map\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/array-prototype-includes.md",
    "content": "# `Array.prototype.includes`\n[Proposal repo](https://github.com/tc39/proposal-Array.prototype.includes)\n\n## Built-ins signatures\n```ts\nclass Array {\n  includes(searchElement: any, from?: number): boolean;\n}\n\nclass %TypedArray% {\n  includes(searchElement: any, from?: number): boolean;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/array-includes\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/arraybuffer-prototype-transfer.md",
    "content": "# `ArrayBuffer.prototype.transfer` and friends\n[Specification](https://tc39.es/proposal-arraybuffer-transfer/)\\\n[Proposal repo](https://github.com/tc39/proposal-arraybuffer-transfer)\n\n## Built-ins signatures\n```ts\nclass ArrayBuffer {\n  readonly attribute detached: boolean;\n  transfer(newLength?: number): ArrayBuffer;\n  transferToFixedLength(newLength?: number): ArrayBuffer;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/array-buffer-transfer\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/asynciterator-helpers.md",
    "content": "# AsyncIterator helpers\n[Specification](https://tc39.es/proposal-async-iterator-helpers/)\\\n[Proposal repo](https://github.com/tc39/proposal-async-iterator-helpers)\n\n## Modules \n[`esnext.async-iterator.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.constructor.js), [`esnext.async-iterator.drop`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.drop.js), [`esnext.async-iterator.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.every.js), [`esnext.async-iterator.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.filter.js), [`esnext.async-iterator.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.find.js), [`esnext.async-iterator.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.flat-map.js), [`esnext.async-iterator.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.for-each.js), [`esnext.async-iterator.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.from.js), [`esnext.async-iterator.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.map.js), [`esnext.async-iterator.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.reduce.js), [`esnext.async-iterator.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.some.js), [`esnext.async-iterator.take`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.take.js), [`esnext.async-iterator.to-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.to-array.js), , [`esnext.iterator.to-async`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.to-async.js)\n\n## Built-ins signatures\n```ts\nclass Iterator {\n  toAsync(): AsyncIterator<any>;\n}\n\nclass AsyncIterator {\n  static from(iterable: AsyncIterable<any> | Iterable<any> | AsyncIterator<any>): AsyncIterator<any>;\n  drop(limit: uint): AsyncIterator<any>;\n  every(async callbackfn: (value: any, counter: uint) => boolean): Promise<boolean>;\n  filter(async callbackfn: (value: any, counter: uint) => boolean): AsyncIterator<any>;\n  find(async callbackfn: (value: any, counter: uint) => boolean)): Promise<any>;\n  flatMap(async callbackfn: (value: any, counter: uint) => AsyncIterable<any> | Iterable<any> | AsyncIterator<any>): AsyncIterator<any>;\n  forEach(async callbackfn: (value: any, counter: uint) => void): Promise<void>;\n  map(async callbackfn: (value: any, counter: uint) => any): AsyncIterator<any>;\n  reduce(async callbackfn: (memo: any, value: any, counter: uint) => any, initialValue: any): Promise<any>;\n  some(async callbackfn: (value: any, counter: uint) => boolean): Promise<boolean>;\n  take(limit: uint): AsyncIterator<any>;\n  toArray(): Promise<Array>;\n  @@toStringTag: 'AsyncIterator'\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/async-iterator-helpers\ncore-js(-pure)/actual|full/async-iterator\ncore-js(-pure)/actual|full/async-iterator/drop\ncore-js(-pure)/actual|full/async-iterator/every\ncore-js(-pure)/actual|full/async-iterator/filter\ncore-js(-pure)/actual|full/async-iterator/find\ncore-js(-pure)/actual|full/async-iterator/flat-map\ncore-js(-pure)/actual|full/async-iterator/for-each\ncore-js(-pure)/actual|full/async-iterator/from\ncore-js(-pure)/actual|full/async-iterator/map\ncore-js(-pure)/actual|full/async-iterator/reduce\ncore-js(-pure)/actual|full/async-iterator/some\ncore-js(-pure)/actual|full/async-iterator/take\ncore-js(-pure)/actual|full/async-iterator/to-array\ncore-js(-pure)/actual|full/iterator/to-async\n```\n\n## Examples\n```js\nawait AsyncIterator.from([1, 2, 3, 4, 5, 6, 7])\n  .drop(1)\n  .take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray();  // => [9, 25]\n\nawait [1, 2, 3].values().toAsync().map(async it => it ** 2).toArray(); // => [1, 4, 9]\n```\n\n## Caveats\n- For preventing prototypes pollution, in the `pure` version, new `%AsyncIteratorPrototype%` methods are not added to the real `%AsyncIteratorPrototype%`, they available only on wrappers - instead of `[].values().toAsync().map(fn)` use `AsyncIterator.from([]).map(fn)`.\n- Now, we have access to the real `%AsyncIteratorPrototype%` only with usage async generators syntax. So, for compatibility of the library with old browsers, we should use `Function` constructor. However, that breaks compatibility with CSP. So, if you wanna use the real `%AsyncIteratorPrototype%`, you should set `USE_FUNCTION_CONSTRUCTOR` option in the `core-js/configurator` to `true`:\n```ts\nconst configurator = require('core-js/configurator');\n\nconfigurator({ USE_FUNCTION_CONSTRUCTOR: true });\n\nrequire('core-js/actual/async-iterator');\n\n(async function * () { /* empty */ })() instanceof AsyncIterator; // => true\n```\n- As an alternative, you could pass to the `core-js/configurator` an object that will be considered as `%AsyncIteratorPrototype%`:\n```ts\nconst configurator = require('core-js/configurator');\n\nconst { getPrototypeOf } = Object;\n\nconfigurator({ AsyncIteratorPrototype: getPrototypeOf(getPrototypeOf(getPrototypeOf(async function * () { /* empty */ }()))) });\n\nrequire('core-js/actual/async-iterator');\n\n(async function * () { /* empty */ })() instanceof AsyncIterator; // => true\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/change-array-by-copy.md",
    "content": "# Change `Array` by copy\n[Specification](https://tc39.es/proposal-change-array-by-copy/)\\\n[Proposal repo](https://github.com/tc39/proposal-change-array-by-copy)\n\n## Built-ins signatures\n```ts\nclass Array {\n  toReversed(): Array<mixed>;\n  toSpliced(start?: number, deleteCount?: number, ...items: Array<mixed>): Array<mixed>;\n  toSorted(comparefn?: (a: any, b: any) => number): Array<mixed>;\n  with(index: includes, value: any): Array<mixed>;\n}\n\nclass %TypedArray% {\n  toReversed(): %TypedArray%;\n  toSorted(comparefn?: (a: any, b: any) => number): %TypedArray%;\n  with(index: includes, value: any): %TypedArray%;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/change-array-by-copy-stage-4\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/to-reversed\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/to-sorted\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/to-spliced\ncore-js(-pure)/es|stable|actual|full/array(/virtual)/with\ncore-js/es|stable|actual|full/typed-array/to-reversed\ncore-js/es|stable|actual|full/typed-array/to-sorted\ncore-js/es|stable|actual|full/typed-array/with\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/compositekey-compositesymbol.md",
    "content": "# `compositeKey` and `compositeSymbol`\n[Proposal repo](https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey)\n\n## Modules\n[`esnext.composite-key`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.composite-key.js) and [`esnext.composite-symbol`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.composite-symbol.js)\n\n## Built-ins signatures\n```ts\nfunction compositeKey(...args: Array<mixed>): object;\nfunction compositeSymbol(...args: Array<mixed>): symbol;\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/keys-composition\ncore-js(-pure)/full/composite-key\ncore-js(-pure)/full/composite-symbol\n```\n\n## Examples\n```js\n// returns a symbol\nconst symbol = compositeSymbol({});\nconsole.log(typeof symbol); // => 'symbol'\n\n// works the same, but returns a plain frozen object without a prototype\nconst key = compositeKey({});\nconsole.log(typeof key); // => 'object'\nconsole.log({}.toString.call(key)); // => '[object Object]'\nconsole.log(Object.getPrototypeOf(key)); // => null\nconsole.log(Object.isFrozen(key)); // => true\n\nconst a = ['a'];\nconst b = ['b'];\nconst c = ['c'];\n\n/* eslint-disable no-self-compare -- example */\nconsole.log(compositeSymbol(a) === compositeSymbol(a)); // => true\nconsole.log(compositeSymbol(a) !== compositeSymbol(['a'])); // => true\nconsole.log(compositeSymbol(a, 1) === compositeSymbol(a, 1)); // => true\nconsole.log(compositeSymbol(a, b) !== compositeSymbol(b, a)); // => true\nconsole.log(compositeSymbol(a, b, c) === compositeSymbol(a, b, c)); // => true\nconsole.log(compositeSymbol(1, a) === compositeSymbol(1, a)); // => true\nconsole.log(compositeSymbol(1, a, 2, b) === compositeSymbol(1, a, 2, b)); // => true\nconsole.log(compositeSymbol(a, a) === compositeSymbol(a, a)); // => true\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/dataview-get-set-uint8clamped.md",
    "content": "# `DataView` get / set `Uint8Clamped` methods\n[Specification](https://tc39.es/proposal-dataview-get-set-uint8clamped/)\\\n[Proposal repo](https://github.com/tc39/proposal-dataview-get-set-uint8clamped)\n\n## Modules\n[`esnext.data-view.get-uint8-clamped`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.data-view.get-uint8-clamped.js) and [`esnext.data-view.set-uint8-clamped`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.data-view.set-uint8-clamped.js)\n\n## Built-ins signatures\n```ts\nclass DataView {\n  getUint8Clamped(offset: any): uint8\n  setUint8Clamped(offset: any, value: any): void;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/data-view-get-set-uint8-clamped\ncore-js/full/dataview/get-uint8-clamped\ncore-js/full/dataview/set-uint8-clamped\n```\n\n## Examples\n```js\nconst view = new DataView(new ArrayBuffer(1));\nview.setUint8Clamped(0, 100500);\nconsole.log(view.getUint8Clamped(0)); // => 255\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/error-iserror.md",
    "content": "# `Error.isError`\n[Specification](https://tc39.es/proposal-is-error/)\\\n[Proposal repo](https://github.com/tc39/proposal-is-error)\n\n## Built-ins signatures\n```ts\nclass Error {\n  static isError(value: any): boolean;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/is-error\n```\n\n> [!WARNING]\n> We have no bulletproof way to polyfill this `Error.isError` / check if the object is an error, so it's an enough naive implementation.\n"
  },
  {
    "path": "docs/web/docs/features/proposals/explicit-resource-management.md",
    "content": "# Explicit Resource Management\n[Proposal repo](https://github.com/tc39/proposal-explicit-resource-management)\n\n> [!NOTE]\n> This is only built-ins for this Explicit Resource Management, `using` syntax support requires [transpiler support](https://babeljs.io/docs/babel-plugin-syntax-explicit-resource-management).\n\n## Built-ins signatures\n```ts\nclass Symbol {\n  static asyncDispose: @@asyncDispose;\n  static dispose: @@dispose;\n}\n\nclass DisposableStack {\n  constructor(): DisposableStack;\n  dispose(): undefined;\n  use(value: Disposable): value;\n  adopt(value: object, onDispose: Function): value;\n  defer(onDispose: Function): undefined;\n  move(): DisposableStack;\n  @@dispose(): undefined;\n  @@toStringTag: 'DisposableStack';\n}\n\nclass AsyncDisposableStack {\n  constructor(): AsyncDisposableStack;\n  disposeAsync(): Promise<undefined>;\n  use(value: AsyncDisposable | Disposable): value;\n  adopt(value: object, onDispose: Function): value;\n  defer(onDispose: Function): undefined;\n  move(): AsyncDisposableStack;\n  @@asyncDispose(): Promise<undefined>;\n  @@toStringTag: 'AsyncDisposableStack';\n}\n\nclass SuppressedError extends Error {\n  constructor(error: any, suppressed: any, message?: string): SuppressedError;\n  error: any;\n  suppressed: any;\n  message: string;\n  cause: any;\n}\n\nclass Iterator {\n  @@dispose(): undefined;\n}\n\nclass AsyncIterator {\n  @@asyncDispose(): Promise<undefined>;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/explicit-resource-management\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/float16-methods.md",
    "content": "# `Float16` methods\n[Specification](https://tc39.es/proposal-float16array/)\\\n[Proposal repo](https://github.com/tc39/proposal-float16array)\n\n## Built-ins signatures\n```ts\nclass DataView {\n  getFloat16(offset: any, littleEndian?: boolean = false): float16\n  setFloat16(offset: any, value: any, littleEndian?: boolean = false): void;\n}\n\nnamespace Math {\n  fround(number: any): number;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/float16\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/function-is-callable-is-constructor.md",
    "content": "# Function.{ isCallable, isConstructor }\n[Proposal repo](https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md)\n\n## Modules\n[`esnext.function.is-callable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.function.is-callable.js), [`esnext.function.is-constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.function.is-constructor.js)\n\n## Built-ins signatures\n```ts\nclass Function {\n  static isCallable(value: any): boolean;\n  static isConstructor(value: any): boolean;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/function-is-callable-is-constructor\ncore-js(-pure)/full/function/is-callable\ncore-js(-pure)/full/function/is-constructor\n```\n\n## Examples\n```js\n/* eslint-disable prefer-arrow-callback -- example */\nFunction.isCallable(null);                        // => false\nFunction.isCallable({});                          // => false\nFunction.isCallable(function () { /* empty */ }); // => true\nFunction.isCallable(() => { /* empty */ });       // => true\nFunction.isCallable(class { /* empty */ });       // => false\n\nFunction.isConstructor(null);                        // => false\nFunction.isConstructor({});                          // => false\nFunction.isConstructor(function () { /* empty */ }); // => true\nFunction.isConstructor(() => { /* empty */ });       // => false\nFunction.isConstructor(class { /* empty */ });       // => true\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/function-prototype-demethodize.md",
    "content": "# Function.prototype.demethodize\n[Proposal repo](https://github.com/js-choi/proposal-function-demethodize)\n\n## Module \n[`esnext.function.demethodize`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.function.demethodize.js)\n\n## Built-ins signatures\n```ts\nclass Function {\n  demethodize(): Function;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/function-demethodize\ncore-js(-pure)/full/function/demethodize\ncore-js(-pure)/full/function/virtual/demethodize\n```\n\n## Examples\n```js\nconst slice = Array.prototype.slice.demethodize();\n\nslice([1, 2, 3], 1); // => [2, 3]\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/globalthis.md",
    "content": "# `globalThis`\n[Specification](https://tc39.es/proposal-global/)\\\n[Proposal repo](https://github.com/tc39/proposal-global)\n\n## Built-ins signatures\n```ts\nlet globalThis: GlobalThisValue;\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/global-this\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/iterator-chunking.md",
    "content": "# Iterator chunking\n[Specification](https://tc39.es/proposal-iterator-chunking/)\\\n[Proposal repo](https://github.com/tc39/proposal-iterator-chunking)\n\n## Modules \n[`esnext.iterator.chunks`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.chunks.js), [`esnext.iterator.windows`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.windows.js)\n\n## Built-ins signatures\n```ts\nclass Iterator {\n  chunks(chunkSize: number): Iterator<any>;\n  windows(windowSize: number, undersized?: 'only-full' | 'allow-partial' | undefined): Iterator<any>;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/iterator-chunking-v2\ncore-js(-pure)/full/iterator/chunks\ncore-js(-pure)/full/iterator/windows\n```\n\n## Examples\n```js\nconst digits = () => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].values();\n\nArray.from(digits().chunks(2));  // => [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]\n\nArray.from(digits().windows(2));  // => [[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9]]\n\nArray.from([0, 1].values().windows(3, 'allow-partial'));  // => [[0, 1]]\n\nArray.from([0, 1].values().windows(3));  // => []\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/iterator-helpers.md",
    "content": "# `Iterator` helpers\n[Specification](https://tc39.es/proposal-iterator-helpers/)\\\n[Proposal repo](https://github.com/tc39/proposal-iterator-helpers)\n\n## Built-ins signatures\n```ts\nclass Iterator {\n  static from(iterable: Iterable<any> | Iterator<any>): Iterator<any>;\n  drop(limit: uint): Iterator<any>;\n  every(callbackfn: (value: any, counter: uint) => boolean): boolean;\n  filter(callbackfn: (value: any, counter: uint) => boolean): Iterator<any>;\n  find(callbackfn: (value: any, counter: uint) => boolean)): any;\n  flatMap(callbackfn: (value: any, counter: uint) => Iterable<any> | Iterator<any>): Iterator<any>;\n  forEach(callbackfn: (value: any, counter: uint) => void): void;\n  map(callbackfn: (value: any, counter: uint) => any): Iterator<any>;\n  reduce(callbackfn: (memo: any, value: any, counter: uint) => any, initialValue: any): any;\n  some(callbackfn: (value: any, counter: uint) => boolean): boolean;\n  take(limit: uint): Iterator<any>;\n  toArray(): Array<any>;\n  @@toStringTag: 'Iterator'\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/iterator-helpers-stage-3-2\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/iterator-range.md",
    "content": "# Iterator.range\n[Specification](https://tc39.es/proposal-iterator.range/)\\\n[Proposal repo](https://github.com/tc39/proposal-Number.range)\n\n## Module\n[`esnext.iterator.range`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.range.js)\n\n## Built-ins signatures\n```ts\nclass Iterator {\n  range(start: number, end: number, options: { step: number = 1, inclusive: boolean = false } | step: number = 1): NumericRangeIterator;\n  range(start: bigint, end: bigint | Infinity | -Infinity, options: { step: bigint = 1n, inclusive: boolean = false } | step: bigint = 1n): NumericRangeIterator;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/number-range\ncore-js(-pure)/full/iterator/range\n```\n\n## Example\n```js\nfor (const i of Iterator.range(1, 10)) {\n  console.log(i); // => 1, 2, 3, 4, 5, 6, 7, 8, 9\n}\n\nfor (const i of Iterator.range(1, 10, { step: 3, inclusive: true })) {\n  console.log(i); // => 1, 4, 7, 10\n}\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/iterator-sequencing.md",
    "content": "# `Iterator` sequencing\n[Specification](https://tc39.es/proposal-iterator-sequencing/)\\\n[Proposal repo](https://github.com/tc39/proposal-iterator-sequencing)\n\n## Modules \n[`es.iterator.concat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.concat.js)\n\n## Built-ins signatures\n```ts\nclass Iterator {\n  static concat(...items: Array<IterableObject>): Iterator<any>;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/iterator-sequencing\ncore-js(-pure)/es|stable|actual|full/iterator/concat\n```\n\n## Example\n```js\nIterator.concat([0, 1].values(), [2, 3], function * () {\n  yield 4;\n  yield 5;\n}()).toArray(); // => [0, 1, 2, 3, 4, 5]\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/joint-iteration.md",
    "content": "# Joint iteration\n[Specification](https://tc39.es/proposal-joint-iteration/)\\\n[Proposal repo](https://github.com/tc39/proposal-joint-iteration)\n\n## Modules\n[`esnext.iterator.zip`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.zip.js), [`esnext.iterator.zip-keyed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.zip-keyed.js)\n\n## Built-ins signatures\n```ts\nclass Iterator {\n  zip<T extends readonly Iterable<unknown>[]>(\n    iterables: T,\n    options?: {\n      mode?: 'shortest' | 'longest' | 'strict';\n      padding?: { [K in keyof T]?: T[K] extends Iterable<infer U> ? U : never };\n    }\n  ): IterableIterator<{ [K in keyof T]: T[K] extends Iterable<infer U> ? U : never }>;\n  zipKeyed<K extends PropertyKey, V extends Record<K, Iterable<unknown>>>(\n    iterables: V,\n    options?: {\n      mode?: 'shortest' | 'longest' | 'strict';\n      padding?: { [P in keyof V]?: V[P] extends Iterable<infer U> ? U : never };\n    }\n  ): IterableIterator<{ [P in keyof V]: V[P] extends Iterable<infer U> ? U : never }>;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/joint-iteration\ncore-js(-pure)/actual|full/iterator/zip\ncore-js(-pure)/actual|full/iterator/zip-keyed\n```\n\n## Example\n```js\nIterator.zip([\n  [0, 1, 2],\n  [3, 4, 5],\n]).toArray();  // => [[0, 3], [1, 4], [2, 5]]\n\nIterator.zipKeyed({\n  a: [0, 1, 2],\n  b: [3, 4, 5, 6],\n  c: [7, 8, 9],\n}, {\n  mode: 'longest',\n  padding: { c: 10 },\n}).toArray();\n/* =>\n[\n  { a: 0,         b: 3, c: 7  },\n  { a: 1,         b: 4, c: 8  },\n  { a: 2,         b: 5, c: 9  },\n  { a: undefined, b: 6, c: 10 },\n];\n */\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/json-parse-source-text-access.md",
    "content": "# `JSON.parse` source text access\n[Specification](https://tc39.es/proposal-json-parse-with-source/)\\\n[Proposal repo](https://github.com/tc39/proposal-json-parse-with-source)\n\n## Modules\n[`es.json.is-raw-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.is-raw-json.js), [`es.json.parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.parse.js), [`es.json.raw-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.json.raw-json.js).\n\n## Built-ins signatures\n```ts\nnamespace JSON {\n  isRawJSON(O: any): boolean;\n  // patched for source support\n  parse(text: string, reviver?: (this: any, key: string, value: any, context: { source?: string }) => any): any;\n  rawJSON(text: any): RawJSON;\n  // patched for `JSON.rawJSON` support\n  stringify(value: any, replacer?: Array<string | number> | (this: any, key: string, value: any) => any, space?: string | number): string | void;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/json-parse-with-source\ncore-js(-pure)/es|stable|actual|full/json/is-raw-json\ncore-js(-pure)/es|stable|actual|full/json/parse\ncore-js(-pure)/es|stable|actual|full/json/raw-json\ncore-js(-pure)/es|stable|actual|full/json/stringify\n```\n\n## Examples\n```js\nfunction digitsToBigInt(key, val, { source }) {\n  return /^\\d+$/.test(source) ? BigInt(source) : val;\n}\n\nfunction bigIntToRawJSON(key, val) {\n  return typeof val === 'bigint' ? JSON.rawJSON(String(val)) : val;\n}\n\nconst tooBigForNumber = BigInt(Number.MAX_SAFE_INTEGER) + 2n;\nJSON.parse(String(tooBigForNumber), digitsToBigInt) === tooBigForNumber; // => true\n\nconst wayTooBig = BigInt(`1${ '0'.repeat(1000) }`);\nJSON.parse(String(wayTooBig), digitsToBigInt) === wayTooBig; // => true\n\nconst embedded = JSON.stringify({ tooBigForNumber }, bigIntToRawJSON);\nembedded === '{\"tooBigForNumber\":9007199254740993}'; // => true\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/map-upsert.md",
    "content": "# `Map` upsert\n[Specification](https://tc39.es/proposal-upsert/)\\\n[Proposal repo](https://github.com/thumbsupep/proposal-upsert)\n\n## Modules \n[`es.map.get-or-insert`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.get-or-insert.js), [`es.map.get-or-insert-computed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.get-or-insert-computed.js), [`es.weak-map.get-or-insert`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-map.get-or-insert.js) and [`es.weak-map.get-or-insert-computed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-map.get-or-insert-computed.js).\n\n## Built-ins signatures\n```ts\nclass Map {\n  getOrInsert(key: object | symbol, value: any): any;\n  getOrInsertComputed(key: object | symbol, (key: any) => value: any): any;\n}\n\nclass WeakMap {\n  getOrInsert(key: object | symbol, value: any): any;\n  getOrInsertComputed(key: object | symbol, (key: any) => value: any): any;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/map-upsert-v4\ncore-js(-pure)/es|stable|actual|full/map/get-or-insert\ncore-js(-pure)/es|stable|actual|full/map/get-or-insert-computed\ncore-js(-pure)/es|stable|actual|full/weak-map/get-or-insert\ncore-js(-pure)/es|stable|actual|full/weak-map/get-or-insert-computed\n```\n\n## Examples\n```js\nconst map = new Map([['a', 1]]);\n\nmap.getOrInsert('a', 2); // => 1\n\nmap.getOrInsert('b', 3); // => 3\n\nmap.getOrInsertComputed('a', key => key); // => 1\n\nmap.getOrInsertComputed('c', key => key); // => 'c'\n\nconsole.log(map); // => Map { 'a': 1, 'b': 3, 'c': 'c' }\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/math-sumprecise.md",
    "content": "# `Math.sumPrecise`\n[Specification](https://tc39.es/proposal-math-sum/)\\\n[Proposal repo](https://github.com/tc39/proposal-math-sum)\n\n## Built-ins signatures\n```ts\nnamespace Math {\n  sumPrecise(items: Iterable<number>): Number;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/math-sum\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/new-collections-methods.md",
    "content": "# New collections methods\n[Specification](https://tc39.es/proposal-collection-methods/)\\\n[Proposal repo](https://github.com/tc39/proposal-collection-methods)\n\n## Modules\n[`esnext.set.add-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.add-all.js), [`esnext.set.delete-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.delete-all.js), [`esnext.set.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.every.js), [`esnext.set.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.filter.js), [`esnext.set.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.find.js), [`esnext.set.join`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.join.js), [`esnext.set.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.map.js), [`esnext.set.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.reduce.js), [`esnext.set.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.some.js), [`esnext.map.delete-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.delete-all.js), [`esnext.map.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.every.js), [`esnext.map.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.filter.js), [`esnext.map.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.find.js), [`esnext.map.find-key`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.find-key.js), [`esnext.map.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.includes.js), [`esnext.map.key-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.key-by.js), [`esnext.map.key-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.key-of.js), [`esnext.map.map-keys`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.map-keys.js), [`esnext.map.map-values`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.map-values.js), [`esnext.map.merge`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.merge.js), [`esnext.map.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.reduce.js), [`esnext.map.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.some.js), [`esnext.map.update`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.update.js), [`esnext.weak-set.add-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-set.add-all.js), [`esnext.weak-set.delete-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-set.delete-all.js), [`esnext.weak-map.delete-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-map.delete-all.js)\n\n## Built-ins signatures\n```ts\nclass Set {\n  addAll(...args: Array<mixed>): this;\n  deleteAll(...args: Array<mixed>): boolean;\n  every(callbackfn: (value: any, key: any, target: any) => boolean, thisArg?: any): boolean;\n  filter(callbackfn: (value: any, key: any, target: any) => boolean, thisArg?: any): Set;\n  find(callbackfn: (value: any, key: any, target: any) => boolean), thisArg?: any): any;\n  join(separator: string = ','): string;\n  map(callbackfn: (value: any, key: any, target: any) => any, thisArg?: any): Set;\n  reduce(callbackfn: (memo: any, value: any, key: any, target: any) => any, initialValue?: any): any;\n  some(callbackfn: (value: any, key: any, target: any) => boolean, thisArg?: any): boolean;\n}\n\nclass Map {\n  static keyBy(iterable: Iterable<mixed>, callbackfn?: (value: any) => any): Map;\n  deleteAll(...args: Array<mixed>): boolean;\n  every(callbackfn: (value: any, key: any, target: any) => boolean, thisArg?: any): boolean;\n  filter(callbackfn: (value: any, key: any, target: any) => boolean, thisArg?: any): Map;\n  find(callbackfn: (value: any, key: any, target: any) => boolean), thisArg?: any): any;\n  findKey(callbackfn: (value: any, key: any, target: any) => boolean), thisArg?: any): any;\n  includes(searchElement: any): boolean;\n  keyOf(searchElement: any): any;\n  mapKeys(mapFn: (value: any, index: number, target: any) => any, thisArg?: any): Map;\n  mapValues(mapFn: (value: any, index: number, target: any) => any, thisArg?: any): Map;\n  merge(...iterables: Array<Iterable>): this;\n  reduce(callbackfn: (memo: any, value: any, key: any, target: any) => any, initialValue?: any): any;\n  some(callbackfn: (value: any, key: any, target: any) => boolean, thisArg?: any): boolean;\n  update(key: any, callbackfn: (value: any, key: any, target: any) => any, thunk?: (key: any, target: any) => any): this;\n}\n\nclass WeakSet {\n  addAll(...args: Array<mixed>): this;\n  deleteAll(...args: Array<mixed>): boolean;\n}\n\nclass WeakMap {\n  deleteAll(...args: Array<mixed>): boolean;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/collection-methods\ncore-js(-pure)/full/set/add-all\ncore-js(-pure)/full/set/delete-all\ncore-js(-pure)/full/set/every\ncore-js(-pure)/full/set/filter\ncore-js(-pure)/full/set/find\ncore-js(-pure)/full/set/join\ncore-js(-pure)/full/set/map\ncore-js(-pure)/full/set/reduce\ncore-js(-pure)/full/set/some\ncore-js(-pure)/full/map/delete-all\ncore-js(-pure)/full/map/every\ncore-js(-pure)/full/map/filter\ncore-js(-pure)/full/map/find\ncore-js(-pure)/full/map/find-key\ncore-js(-pure)/full/map/includes\ncore-js(-pure)/full/map/key-by\ncore-js(-pure)/full/map/key-of\ncore-js(-pure)/full/map/map-keys\ncore-js(-pure)/full/map/map-values\ncore-js(-pure)/full/map/merge\ncore-js(-pure)/full/map/reduce\ncore-js(-pure)/full/map/some\ncore-js(-pure)/full/map/update\ncore-js(-pure)/full/weak-set/add-all\ncore-js(-pure)/full/weak-set/delete-all\ncore-js(-pure)/full/weak-map/delete-all\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/number-from-string.md",
    "content": "# Number.fromString\n[Proposal repo](https://github.com/tc39/proposal-number-fromstring)\n\n## Module\n[`esnext.number.from-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.number.from-string.js)\n\n## Built-ins signatures\n```ts\nclass Number {\n  fromString(string: string, radix: number): number;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/number-from-string\ncore-js(-pure)/full/number/from-string\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/number-prototype-clamp.md",
    "content": "# Number.prototype.clamp\n[Specification](https://tc39.es/proposal-math-clamp/)\\\n[Proposal repo](https://github.com/tc39/proposal-math-clamp)\n\n## Modules\n[`esnext.number.clamp`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.number.clamp.js)\n\n## Built-ins signatures\n```ts\nclass Number {\n  clamp(min: number, max: number): number;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/math-clamp-v2\ncore-js(-pure)/full/number/clamp\n```\n\n## Example\n```js\n5.0.clamp(0, 10); // => 5\n-5.0.clamp(0, 10); // => 0\n15.0.clamp(0, 10); // => 10\n````\n"
  },
  {
    "path": "docs/web/docs/features/proposals/object-fromentries.md",
    "content": "# `Object.fromEntries`\n[Specification](https://tc39.es/proposal-object-from-entries/)\\\n[Proposal repo](https://github.com/tc39/proposal-object-from-entries)\n\n## Built-ins signatures\n```ts\nclass Object {\n  static fromEntries(iterable: Iterable<[key, value]>): Object;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/object-from-entries\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/object-getownpropertydescriptors.md",
    "content": "# `Object.getOwnPropertyDescriptors`\n[Specification](https://tc39.es/proposal-object-getownpropertydescriptors/)\\\n[Proposal repo](https://github.com/tc39/proposal-object-getownpropertydescriptors)\n\n## Built-ins signatures\n```ts\nclass Object {\n  static getOwnPropertyDescriptors(object: any): { [property: PropertyKey]: PropertyDescriptor };\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/object-getownpropertydescriptors\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/object-values-entries.md",
    "content": "# `Object.values` / `Object.entries`\n[Specification](https://tc39.es/proposal-object-values-entries/)\\\n[Proposal repo](https://github.com/tc39/proposal-object-values-entries)\n\n## Built-ins signatures\n```ts\nclass Object {\n  static entries(object: Object): Array<[string, mixed]>;\n  static values(object: any): Array<mixed>;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/object-values-entries\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/observable.md",
    "content": "# Observable\n[Specification](https://tc39.es/proposal-observable/)\\\n[Proposal repo](https://github.com/zenparsing/es-observable)\n\n## Modules\n[`esnext.observable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.observable.js), [`esnext.symbol.observable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.observable.js)\n\n## Built-ins signatures\n```ts\nclass Observable {\n  constructor(subscriber: Function): Observable;\n  subscribe(observer: Function | { next?: Function, error?: Function, complete?: Function }): Subscription;\n  @@observable(): this;\n  static of(...items: Array<mixed>): Observable;\n  static from(x: Observable | Iterable): Observable;\n  static readonly attribute @@species: this;\n}\n\nclass Symbol {\n  static observable: @@observable;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/observable\ncore-js(-pure)/full/observable\ncore-js(-pure)/full/symbol/observable\n```\n\n## Example\n```js\nnew Observable(observer => {\n  observer.next('hello');\n  observer.next('world');\n  observer.complete();\n}).subscribe({\n  next(it) { console.log(it); },\n  complete() { console.log('!'); },\n});\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/of-and-from-methods-on-collections.md",
    "content": "# `.of` and `.from` methods on collection constructors\n[Specification](https://tc39.es/proposal-setmap-offrom/)\\\n[Proposal repo](https://github.com/tc39/proposal-setmap-offrom)\n\n## Modules\n[`esnext.set.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.of.js), [`esnext.set.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.from.js), [`esnext.map.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.of.js), [`esnext.map.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.from.js), [`esnext.weak-set.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-set.of.js), [`esnext.weak-set.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-set.from.js), [`esnext.weak-map.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-map.of.js), [`esnext.weak-map.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-map.from.js)\n\n## Built-ins signatures\n```ts\nclass Set {\n  static of(...args: Array<mixed>): Set;\n  static from(iterable: Iterable<mixed>, mapFn?: (value: any, index: number) => any, thisArg?: any): Set;\n}\n\nclass Map {\n  static of(...args: Array<[key, value]>): Map;\n  static from(iterable: Iterable<mixed>, mapFn?: (value: any, index: number) => [key: any, value: any], thisArg?: any): Map;\n}\n\nclass WeakSet {\n  static of(...args: Array<mixed>): WeakSet;\n  static from(iterable: Iterable<mixed>, mapFn?: (value: any, index: number) => Object, thisArg?: any): WeakSet;\n}\n\nclass WeakMap {\n  static of(...args: Array<[key, value]>): WeakMap;\n  static from(iterable: Iterable<mixed>, mapFn?: (value: any, index: number) => [key: Object, value: any], thisArg?: any): WeakMap;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/collection-of-from\ncore-js(-pure)/full/set/from\ncore-js(-pure)/full/set/of\ncore-js(-pure)/full/map/from\ncore-js(-pure)/full/map/of\ncore-js(-pure)/full/weak-set/of\ncore-js(-pure)/full/weak-set/from\ncore-js(-pure)/full/weak-map/of\ncore-js(-pure)/full/weak-map/from\n```\n\n## Examples\n```js\nSet.of(1, 2, 3, 2, 1); // => Set {1, 2, 3}\n\nMap.from([[1, 2], [3, 4]], ([key, value]) => [key ** 2, value ** 2]); // => Map { 1: 4, 9: 16 }\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/promise-allsettled.md",
    "content": "# `Promise.allSettled`\n[Specification](https://tc39.es/proposal-promise-allSettled/)\\\n[Proposal repo](https://github.com/tc39/proposal-promise-allSettled)\n\n## Built-ins signatures\n```ts\nclass Promise {\n  static allSettled(iterable: Iterable): Promise;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/promise-all-settled\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/promise-any.md",
    "content": "# `Promise.any`\n[Specification](https://tc39.es/proposal-promise-any/)\\\n[Proposal repo](https://github.com/tc39/proposal-promise-any)\n\n## Built-ins signatures\n```ts\nclass AggregateError {\n  constructor(errors: Iterable, message: string): AggregateError;\n  errors: Array<any>;\n  message: string;\n}\n\nclass Promise {\n  static any(promises: Iterable): Promise<any>;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/promise-any\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/promise-prototype-finally.md",
    "content": "# `Promise.prototype.finally`\n[Specification](https://tc39.es/proposal-promise-finally/index.html)\\\n[Proposal repo](https://github.com/tc39/proposal-promise-finally)\n\n## Built-ins signatures\n```ts\nclass Promise {\n  finally(onFinally: Function): Promise;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/promise-finally\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/promise-try.md",
    "content": "# `Promise.try`\n[Specification](https://tc39.es/proposal-promise-try/)\\\n[Proposal repo](https://github.com/tc39/proposal-promise-try)\n\n## Built-ins signatures\n```ts\nclass Promise {\n  static try(callbackfn: Function, ...args?: Array<mixed>): Promise;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/promise-try\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/promise-withresolvers.md",
    "content": "# `Promise.withResolvers`\n[Specification](https://tc39.es/proposal-promise-with-resolvers/)\\\n[Proposal repo](https://github.com/tc39/proposal-promise-with-resolvers)\n\n## Built-ins signatures\n```ts\nclass Promise {\n  static withResolvers(): { promise: Promise, resolve: function, reject: function };\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/promise-with-resolvers\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/reflect-metadata.md",
    "content": "# Reflect metadata\n[Proposal repo](https://github.com/rbuckton/reflect-metadata)\n\n## Modules\n[`esnext.reflect.define-metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.define-metadata.js), [`esnext.reflect.delete-metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.delete-metadata.js), [`esnext.reflect.get-metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.get-metadata.js), [`esnext.reflect.get-metadata-keys`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.get-metadata-keys.js), [`esnext.reflect.get-own-metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.get-own-metadata.js), [`esnext.reflect.get-own-metadata-keys`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.get-own-metadata-keys.js), [`esnext.reflect.has-metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.has-metadata.js), [`esnext.reflect.has-own-metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.has-own-metadata.js) and [`esnext.reflect.metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.reflect.metadata.js).\n\n## Built-ins signatures\n```ts\nnamespace Reflect {\n  defineMetadata(metadataKey: any, metadataValue: any, target: Object, propertyKey?: PropertyKey): void;\n  getMetadata(metadataKey: any, target: Object, propertyKey?: PropertyKey): any;\n  getOwnMetadata(metadataKey: any, target: Object, propertyKey?: PropertyKey): any;\n  hasMetadata(metadataKey: any, target: Object, propertyKey?: PropertyKey): boolean;\n  hasOwnMetadata(metadataKey: any, target: Object, propertyKey?: PropertyKey): boolean;\n  deleteMetadata(metadataKey: any, target: Object, propertyKey?: PropertyKey): boolean;\n  getMetadataKeys(target: Object, propertyKey?: PropertyKey): Array<mixed>;\n  getOwnMetadataKeys(target: Object, propertyKey?: PropertyKey): Array<mixed>;\n  metadata(metadataKey: any, metadataValue: any): decorator(target: Object, targetKey?: PropertyKey) => void;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/reflect-metadata\ncore-js(-pure)/full/reflect/define-metadata\ncore-js(-pure)/full/reflect/delete-metadata\ncore-js(-pure)/full/reflect/get-metadata\ncore-js(-pure)/full/reflect/get-metadata-keys\ncore-js(-pure)/full/reflect/get-own-metadata\ncore-js(-pure)/full/reflect/get-own-metadata-keys\ncore-js(-pure)/full/reflect/has-metadata\ncore-js(-pure)/full/reflect/has-own-metadata\ncore-js(-pure)/full/reflect/metadata\n```\n\n## Examples\n```js\nlet object = {};\nReflect.defineMetadata('foo', 'bar', object);\nReflect.ownKeys(object);               // => []\nReflect.getOwnMetadataKeys(object);    // => ['foo']\nReflect.getOwnMetadata('foo', object); // => 'bar'\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/regexp-dotall-flag.md",
    "content": "# `RegExp` `s` (`dotAll`) flag\n[Specification](https://tc39.es/proposal-regexp-dotall-flag/)\\\n[Proposal repo](https://github.com/tc39/proposal-regexp-dotall-flag)\n\n## Built-ins signatures\n```ts\n// patched for support `RegExp` dotAll (`s`) flag:\nclass RegExp {\n  constructor(pattern: RegExp | string, flags?: string): RegExp;\n  exec(): Array<string | undefined> | null;\n  readonly attribute dotAll: boolean;\n  readonly attribute flags: string;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/regexp-dotall-flag\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/regexp-escaping.md",
    "content": "# `RegExp` escaping\n[Specification](https://tc39.es/proposal-regex-escaping/)\\\n[Proposal repo](https://github.com/tc39/proposal-regex-escaping)\n\n## Built-ins signatures\n```ts\nclass RegExp {\n  static escape(value: string): string\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/regexp-escaping\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/regexp-named-capture-groups.md",
    "content": "# `RegExp` named capture groups\n[Specification](https://tc39.es/proposal-regexp-named-groups/)\\\n[Proposal repo](https://github.com/tc39/proposal-regexp-named-groups)\n\n## Built-ins signatures\n```ts\n// patched for support `RegExp` named capture groups:\nclass RegExp {\n  constructor(pattern: RegExp | string, flags?: string): RegExp;\n  exec(): Array<string | undefined> | null;\n  @@replace(string: string, replaceValue: Function | string): string;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/regexp-named-groups\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/relative-indexing-method.md",
    "content": "# Relative indexing method\n[Specification](https://tc39.es/proposal-relative-indexing-method/)\\\n[Proposal repo](https://github.com/tc39/proposal-relative-indexing-method)\n\n## Built-ins signatures\n```ts\nclass Array {\n  at(index: int): any;\n}\n\nclass String {\n  at(index: int): string;\n}\n\nclass %TypedArray% {\n  at(index: int): number;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/relative-indexing-method\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/set-methods.md",
    "content": "# New `Set` methods\n[Specification](https://tc39.es/proposal-set-methods/)\\\n[Proposal repo](https://github.com/tc39/proposal-set-methods)\n\n## Built-ins signatures\n```ts\nclass Set {\n  difference(other: SetLike<mixed>): Set;\n  intersection(other: SetLike<mixed>): Set;\n  isDisjointFrom(other: SetLike<mixed>): boolean;\n  isSubsetOf(other: SetLike<mixed>): boolean;\n  isSupersetOf(other: SetLike<mixed>): boolean;\n  symmetricDifference(other: SetLike<mixed>): Set;\n  union(other: SetLike<mixed>): Set;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/set-methods-v2\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/string-cooked.md",
    "content": "# String.cooked\n[Specification](https://tc39.es/proposal-string-cooked/)\\\n[Proposal repo](https://github.com/tc39/proposal-string-cooked)\n\n## Module\n[`esnext.string.cooked`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.string.cooked.js)\n\n## Built-ins signatures\n```ts\nclass String {\n  static cooked(template: Array<string>, ...substitutions: Array<string>): string;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/string-cooked\ncore-js(-pure)/full/string/cooked\n```\n\n## Example\n```js\nfunction safePath(strings, ...subs) {\n  return String.cooked(strings, ...subs.map(sub => encodeURIComponent(sub)));\n}\n\nlet id = 'spottie?';\n\nsafePath`/cats/${ id }`; // => /cats/spottie%3F\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/string-dedent.md",
    "content": "# String.dedent\n[Specification](https://tc39.es/proposal-string-dedent/)\\\n[Proposal repo](https://github.com/tc39/proposal-string-dedent)\n\n## Modules\n[`esnext.string.dedent`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.string.dedent.js)\n\n## Built-ins signatures\n```ts\nclass String {\n  static dedent(templateOrTag: { raw: Array<string> } | function, ...substitutions: Array<string>): string | function;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/string-dedent\ncore-js(-pure)/full/string/dedent\n```\n\n## Example\n```js\nconst message = 42;\n\nconsole.log(String.dedent`\n  print('${ message }')\n`); // => print('42')\n\nString.dedent(console.log)`\n  print('${ message }')\n`; // => [\"print('\", \"')\", raw: Array(2)], 42\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/string-matchall.md",
    "content": "# `String#matchAll`\n[Proposal repo](https://github.com/tc39/proposal-string-matchall)\n\n## Built-ins signatures\n```ts\nclass String {\n  matchAll(regexp: RegExp): Iterator;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/string-match-all\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/string-padding.md",
    "content": "# `String` padding\n[Specification](https://tc39.es/proposal-string-pad-start-end/)\\\n[Proposal repo](https://github.com/tc39/proposal-string-pad-start-end)\n\n## Built-ins signatures\n```ts\nclass String {\n  padStart(length: number, fillStr?: string = ' '): string;\n  padEnd(length: number, fillStr?: string = ' '): string;\n}\n\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/string-padding\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/string-prototype-codepoints.md",
    "content": "# String.prototype.codePoints\n[Specification](https://tc39.es/proposal-string-prototype-codepoints/)\\\n[Proposal repo](https://github.com/tc39/proposal-string-prototype-codepoints)\n\n## Module \n[`esnext.string.code-points`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.string.code-points.js)\n\n## Built-ins signatures\n```ts\nclass String {\n  codePoints(): Iterator<{ codePoint, position }>;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/string-code-points\ncore-js(-pure)/full/string/code-points\n```\n\n## Example\n```js\nfor (let { codePoint, position } of 'qwe'.codePoints()) {\n  console.log(codePoint); // => 113, 119, 101\n  console.log(position);  // => 0, 1, 2\n}\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/string-replaceall.md",
    "content": "# `String#replaceAll`\n[Specification](https://tc39.es/proposal-string-replaceall/)\\\n[Proposal repo](https://github.com/tc39/proposal-string-replace-all)\n\n## Built-ins signatures\n```ts\nclass String {\n  replaceAll(searchValue: string | RegExp, replaceString: string | (searchValue, index, this) => string): string;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/string-replace-all-stage-4\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/string-trimstart-trimend.md",
    "content": "# `String.prototype.trimStart` / `String.prototype.trimEnd`\n[Specification](https://tc39.es/proposal-string-left-right-trim/)\\\n[Proposal repo](https://github.com/tc39/proposal-string-left-right-trim)\n\n## Built-ins signatures\n```ts\nclass String {\n  trimLeft(): string;\n  trimRight(): string;\n  trimStart(): string;\n  trimEnd(): string;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/string-left-right-trim\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/symbol-asynciterator.md",
    "content": "# `Symbol.asyncIterator` for asynchronous iteration\n[Specification](https://tc39.es/proposal-async-iteration/)\\\n[Proposal repo](https://github.com/tc39/proposal-async-iteration)\n\n## Built-ins signatures\n```ts\nclass Symbol {\n  static asyncIterator: @@asyncIterator;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/async-iteration\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/symbol-custommatcher-for-extractors.md",
    "content": "# Symbol.customMatcher for extractors\n[Specification](https://tc39.es/proposal-extractors/)\\\n[Proposal repo](https://github.com/tc39/proposal-extractors)\n\n## Module \n[`esnext.symbol.custom-matcher`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.custom-matcher.js).\n\n## Built-ins signatures\n```ts\nclass Symbol {\n  static customMatcher: @@customMatcher;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/pattern-extractors\ncore-js(-pure)/full/symbol/custom-matcher\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/symbol-custommatcher-pattern-matching.md",
    "content": "# Symbol.customMatcher for pattern matching\n[Specification](https://tc39.es/proposal-pattern-matching/)\\\n[Proposal repo](https://github.com/tc39/proposal-pattern-matching)\n\n## Module\n[`esnext.symbol.custom-matcher`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.custom-matcher.js).\n\n## Built-ins signatures\n```ts\nclass Symbol {\n  static customMatcher: @@customMatcher;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/pattern-matching-v2\ncore-js(-pure)/full/symbol/custom-matcher\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/symbol-metadata.md",
    "content": "# `Symbol.metadata` for decorators metadata proposal\n[Proposal repo](https://github.com/tc39/proposal-decorator-metadata)\n\n## Modules \n[`esnext.symbol.metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.metadata.js) and [`esnext.function.metadata`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.function.metadata.js).\n\n## Built-ins signatures\n```ts\nclass Symbol {\n  static metadata: @@metadata;\n}\n\nclass Function {\n  @@metadata: null;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/decorator-metadata-v2\ncore-js(-pure)/actual|full/symbol/metadata\ncore-js(-pure)/actual|full/function/metadata\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/symbol-predicates.md",
    "content": "# Symbol predicates\n[Specification](https://tc39.es/proposal-symbol-predicates/)\\\n[Proposal repo](https://github.com/tc39/proposal-symbol-predicates)\n\n## Modules\n[`esnext.symbol.is-registered-symbol`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.is-registered-symbol.js), [`esnext.symbol.is-well-known-symbol`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.is-well-known-symbol.js).\n\n## Built-ins signatures\n```ts\nclass Symbol {\n  static isRegisteredSymbol(value: any): boolean;\n  static isWellKnownSymbol(value: any): boolean;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/symbol-predicates-v2\ncore-js(-pure)/full/symbol/is-registered-symbol\ncore-js(-pure)/full/symbol/is-well-known-symbol\n```\n\n## Example\n```js\nSymbol.isRegisteredSymbol(Symbol.for('key')); // => true\nSymbol.isRegisteredSymbol(Symbol('key')); // => false\n\nSymbol.isWellKnownSymbol(Symbol.iterator); // => true\nSymbol.isWellKnownSymbol(Symbol('key')); // => false\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/symbol-prototype-description.md",
    "content": "# `Symbol.prototype.description`\n[Specification](https://tc39.es/proposal-Symbol-description/)\\\n[Proposal repo](https://github.com/tc39/proposal-Symbol-description)\n\n## Built-ins signatures\n```ts\nclass Symbol {\n  readonly attribute description: string | void;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/symbol-description\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/uint8array-base64-hex.md",
    "content": "# `Uint8Array` to / from base64 and hex\n[Specification](https://tc39.es/proposal-arraybuffer-base64/)\\\n[Proposal repo](https://github.com/tc39/proposal-arraybuffer-base64)\n\n## Built-ins signatures\n```ts\nclass Uint8Array {\n  static fromBase64(string: string, options?: { alphabet?: 'base64' | 'base64url', lastChunkHandling?: 'loose' | 'strict' | 'stop-before-partial' }): Uint8Array;\n  static fromHex(string: string): Uint8Array;\n  setFromBase64(string: string, options?: { alphabet?: 'base64' | 'base64url', lastChunkHandling?: 'loose' | 'strict' | 'stop-before-partial' }): { read: uint, written: uint };\n  setFromHex(string: string): { read: uint, written: uint };\n  toBase64(options?: { alphabet?: 'base64' | 'base64url', omitPadding?: boolean }): string;\n  toHex(): string;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/array-buffer-base64\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/well-formed-jsonstringify.md",
    "content": "# Well-formed `JSON.stringify`\n[Specification](https://tc39.es/proposal-well-formed-stringify/)\\\n[Proposal repo](https://github.com/tc39/proposal-well-formed-stringify)\n\n## Built-ins signatures\n```ts\nnamespace JSON {\n  stringify(target: any, replacer?: Function | Array, space?: string | number): string | void;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/well-formed-stringify\n```\n"
  },
  {
    "path": "docs/web/docs/features/proposals/well-formed-unicode-strings.md",
    "content": "# Well-formed unicode strings\n[Specification](https://tc39.es/proposal-is-usv-string/)\\\n[Proposal repo](https://github.com/tc39/proposal-is-usv-string)\n\n## Built-ins signatures\n```ts\nclass String {\n  isWellFormed(): boolean;\n  toWellFormed(): string;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/well-formed-unicode-strings\n```\n"
  },
  {
    "path": "docs/web/docs/features/web-standards/base64-utility-methods.md",
    "content": "# Base64 utility methods\n[Specification](https://html.spec.whatwg.org/multipage/webappapis.html#atob)\\\n[MDN](https://developer.mozilla.org/en-US/docs/Glossary/Base64)\n\n## Modules \n[`web.atob`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.atob.js), [`web.btoa`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.btoa.js).\n\n## Built-ins signatures\n```ts\nfunction atob(data: string): string;\nfunction btoa(data: string): string;\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/stable|actual|full/atob\ncore-js(-pure)/stable|actual|full/btoa\n```\n\n## Examples\n```js\nbtoa('hi, core-js');      // => 'aGksIGNvcmUtanM='\natob('aGksIGNvcmUtanM='); // => 'hi, core-js'\n```\n"
  },
  {
    "path": "docs/web/docs/features/web-standards/dom-exception.md",
    "content": "# DOMException\n[Specification](https://webidl.spec.whatwg.org/#idl-DOMException)\n\n## Modules \n[`web.dom-exception.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.dom-exception.constructor.js), [`web.dom-exception.stack`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.dom-exception.stack.js), [`web.dom-exception.to-string-tag`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.dom-exception.to-string-tag.js).\n\n## Built-ins signatures\n```ts\nclass DOMException {\n  constructor(message: string, name?: string);\n  readonly attribute name: string;\n  readonly attribute message: string;\n  readonly attribute code: string;\n  attribute stack: string; // in engines that should have it\n  @@toStringTag: 'DOMException';\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/stable|actual|full/dom-exception\ncore-js(-pure)/stable|actual|full/dom-exception/constructor\ncore-js/stable|actual|full/dom-exception/to-string-tag\n```\n\n## Examples\n```js\nconst exception = new DOMException('error', 'DataCloneError');\nconsole.log(exception.name);                            // => 'DataCloneError'\nconsole.log(exception.message);                         // => 'error'\nconsole.log(exception.code);                            // => 25\nconsole.log(typeof exception.stack);                    // => 'string'\nconsole.log(exception instanceof DOMException);         // => true\nconsole.log(exception instanceof Error);                // => true\nconsole.log(exception.toString());                      // => 'DataCloneError: error'\nconsole.log(Object.prototype.toString.call(exception)); // => '[object DOMException]'\n```\n"
  },
  {
    "path": "docs/web/docs/features/web-standards/iterable-dom-collections.md",
    "content": "# Iterable DOM collections\nSome DOM collections should have [iterable interface](https://heycam.github.io/webidl/#idl-iterable) or should be [inherited from `Array`](https://heycam.github.io/webidl/#LegacyArrayClass). That means they should have `forEach`, `keys`, `values`, `entries` and `@@iterator` methods for iteration. So add them. \n\n## Modules \n[`web.dom-collections.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.dom-collections.iterator.js), [`web.dom-collections.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.dom-collections.for-each.js).\n\n## Built-ins signatures\n```ts\nclass [\n  CSSRuleList,\n  CSSStyleDeclaration,\n  CSSValueList,\n  ClientRectList,\n  DOMRectList,\n  DOMStringList,\n  DataTransferItemList,\n  FileList,\n  HTMLAllCollection,\n  HTMLCollection,\n  HTMLFormElement,\n  HTMLSelectElement,\n  MediaList,\n  MimeTypeArray,\n  NamedNodeMap,\n  PaintRequestList,\n  Plugin,\n  PluginArray,\n  SVGLengthList,\n  SVGNumberList,\n  SVGPathSegList,\n  SVGPointList,\n  SVGStringList,\n  SVGTransformList,\n  SourceBufferList,\n  StyleSheetList,\n  TextTrackCueList,\n  TextTrackList,\n  TouchList,\n] {\n  @@iterator(): Iterator<value>;\n}\n\nclass [DOMTokenList, NodeList] {\n  forEach(callbackfn: (value: any, index: number, target: any) => void, thisArg: any): void;\n  entries(): Iterator<[key, value]>;\n  keys(): Iterator<key>;\n  values(): Iterator<value>;\n  @@iterator(): Iterator<value>;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/stable|actual|full/dom-collections/iterator\ncore-js/stable|actual|full/dom-collections/for-each\n```\n\n## Examples\n```js\nfor (let { id } of document.querySelectorAll('*')) {\n  if (id) console.log(id);\n}\n\nfor (let [index, { id }] of document.querySelectorAll('*').entries()) {\n  if (id) console.log(index, id);\n}\n\ndocument.querySelectorAll('*').forEach(it => console.log(it.id));\n```\n"
  },
  {
    "path": "docs/web/docs/features/web-standards/queuemicrotask.md",
    "content": "# queueMicrotask\n[Specification](https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask)\n\n## Module \n[`web.queue-microtask`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.queue-microtask.js)\n\n## Built-ins signatures\n```ts\nfunction queueMicrotask(fn: Function): void;\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/stable|actual|full/queue-microtask\n```\n\n## Example\n```js\nqueueMicrotask(() => console.log('called as microtask'));\n```\n"
  },
  {
    "path": "docs/web/docs/features/web-standards/self.md",
    "content": "# `self`\n[Specification](https://html.spec.whatwg.org/multipage/window-object.html#dom-self)\n\n## Module \n[`web.self`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.self.js)\n\n## Built-ins signatures\n```ts\ngetter self: GlobalThisValue;\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/stable|actual|full/self\n```\n\n## Examples\n```js\nself.Array === Array; // => true\n```\n"
  },
  {
    "path": "docs/web/docs/features/web-standards/setimmediate.md",
    "content": "# setImmediate\n\n## Module \n[`web.immediate`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.immediate.js). [`setImmediate`](https://w3c.github.io/setImmediate/) polyfill.\n\n## Built-ins signatures\n```ts\nfunction setImmediate(callback: any, ...args: Array<mixed>): number;\nfunction clearImmediate(id: number): void;\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/stable|actual|full/set-immediate\ncore-js(-pure)/stable|actual|full/clear-immediate\n```\n\n## Examples\n```js\nsetImmediate((arg1, arg2) => {\n  console.log(arg1, arg2); // => Message will be displayed with minimum delay\n}, 'Message will be displayed', 'with minimum delay');\n\nclearImmediate(setImmediate(() => {\n  console.log('Message will not be displayed');\n}));\n```\n"
  },
  {
    "path": "docs/web/docs/features/web-standards/settimeout-setinterval.md",
    "content": "# `setTimeout` and `setInterval`\n\nAdditional arguments fix for IE9-.\n\n## Module \n[`web.timers`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.timers.js).\n\n## Built-ins signatures\n```ts\nfunction setTimeout(callback: any, time: any, ...args: Array<mixed>): number;\nfunction setInterval(callback: any, time: any, ...args: Array<mixed>): number;\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/stable|actual|full/set-timeout\ncore-js(-pure)/stable|actual|full/set-interval\n```\n\n## Examples\n```js\n// Before:\nsetTimeout(console.log.bind(null, 41), 1000);\n// After:\nsetTimeout(console.log, 1000, 42);\n```\n"
  },
  {
    "path": "docs/web/docs/features/web-standards/structured-clone.md",
    "content": "# structuredClone\n[Specification](https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone)\n\n## Module \n[`web.structured-clone`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.structured-clone.js)\n\n## Built-ins signatures\n```ts\nfunction structuredClone(value: Serializable, { transfer?: Sequence<Transferable> }): any;\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js(-pure)/stable|actual|full/structured-clone\n```\n\n## Examples\n```js\nconst structured = [{ a: 42 }];\nconst sclone = structuredClone(structured);\nconsole.log(sclone);                      // => [{ a: 42 }]\nconsole.log(structured !== sclone);       // => true\nconsole.log(structured[0] !== sclone[0]); // => true\n\nconst circular = {};\ncircular.circular = circular;\nconst cclone = structuredClone(circular);\nconsole.log(cclone.circular === cclone);  // => true\n\nstructuredClone(42);                                            // => 42\nstructuredClone({ x: 42 });                                     // => { x: 42 }\nstructuredClone([1, 2, 3]);                                     // => [1, 2, 3]\nstructuredClone(new Set([1, 2, 3]));                            // => Set{ 1, 2, 3 }\nstructuredClone(new Map([['a', 1], ['b', 2]]));                 // => Map{ a: 1, b: 2 }\nstructuredClone(new Int8Array([1, 2, 3]));                      // => new Int8Array([1, 2, 3])\nstructuredClone(new AggregateError([1, 2, 3], 'message'));      // => new AggregateError([1, 2, 3], 'message'))\nstructuredClone(new TypeError('message', { cause: 42 }));       // => new TypeError('message', { cause: 42 })\nstructuredClone(new DOMException('message', 'DataCloneError')); // => new DOMException('message', 'DataCloneError')\nstructuredClone(document.getElementById('myfileinput'));        // => new FileList\nstructuredClone(new Date('1970-01-01'));                        // => Date \"Thu Jan 01 1970 00:00:00...\"\nstructuredClone(new Blob(['test']));                            // => new Blob(['test'])\nstructuredClone(new ImageData(8, 8));                           // => new ImageData(8, 8)\n// etc.\n\nstructuredClone(new WeakMap()); // => DataCloneError on non-serializable types\n```\n> [!WARNING]\n> - Many platform types cannot be transferred in most engines since we have no way to polyfill this behavior, however `.transfer` option works for some platform types. I recommend avoiding this option.\n> - Some specific platform types can't be cloned in old engines. Mainly it's very specific types or very old engines, but here are some exceptions. For example, we have no sync way to clone `ImageBitmap` in Safari 14.0- or Firefox 83-, so it's recommended to look to the [polyfill source](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.structured-clone.js) if you wanna clone something specific.\n"
  },
  {
    "path": "docs/web/docs/features/web-standards/url-and-urlsearchparams.md",
    "content": "# `URL` and `URLSearchParams`\n[`URL` standard](https://url.spec.whatwg.org/) implementation. \n\n## Modules \n[`web.url`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.js), [`web.url.can-parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.can-parse.js), [`web.url.parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.parse.js), [`web.url.to-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.to-json.js), [`web.url-search-params`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.js), [`web.url-search-params.delete`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.delete.js), [`web.url-search-params.has`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.has.js), [`web.url-search-params.size`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.size.js).\n\n## Built-ins signatures\n```ts\nclass URL {\n  constructor(url: string, base?: string);\n  attribute href: string;\n  readonly attribute origin: string;\n  attribute protocol: string;\n  attribute username: string;\n  attribute password: string;\n  attribute host: string;\n  attribute hostname: string;\n  attribute port: string;\n  attribute pathname: string;\n  attribute search: string;\n  readonly attribute searchParams: URLSearchParams;\n  attribute hash: string;\n  toJSON(): string;\n  toString(): string;\n  static canParse(url: string, base?: string): boolean;\n  static parse(url: string, base?: string): URL | null;\n}\n\nclass URLSearchParams {\n  constructor(params?: string | Iterable<[key, value]> | Object);\n  append(name: string, value: string): void;\n  delete(name: string, value?: string): void;\n  get(name: string): string | void;\n  getAll(name: string): Array<string>;\n  has(name: string, value?: string): boolean;\n  set(name: string, value: string): void;\n  sort(): void;\n  toString(): string;\n  forEach(callbackfn: (value: any, index: number, target: any) => void, thisArg: any): void;\n  entries(): Iterator<[key, value]>;\n  keys(): Iterator<key>;\n  values(): Iterator<value>;\n  @@iterator(): Iterator<[key, value]>;\n  readonly attribute size: number;\n}\n```\n\n## [Entry points]({docs-version}/docs/usage#h-entry-points)\n```plaintext\ncore-js/proposals/url\ncore-js(-pure)/stable|actual|full/url\ncore-js(-pure)/stable|actual|full/url/can-parse\ncore-js/stable|actual|full/url/to-json\ncore-js(-pure)/stable|actual|full/url-search-params\n```\n\n## Examples\n```js\nURL.canParse('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'); // => true\nURL.canParse('https'); // => false\n\nURL.parse('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'); // => url\nURL.parse('https'); // => null\n\nconst url = new URL('https://login:password@example.com:8080/foo/bar?a=1&b=2&a=3#fragment');\n\nconsole.log(url.href);       // => 'https://login:password@example.com:8080/foo/bar?a=1&b=2&a=3#fragment'\nconsole.log(url.origin);     // => 'https://example.com:8080'\nconsole.log(url.protocol);   // => 'https:'\nconsole.log(url.username);   // => 'login'\nconsole.log(url.password);   // => 'password'\nconsole.log(url.host);       // => 'example.com:8080'\nconsole.log(url.hostname);   // => 'example.com'\nconsole.log(url.port);       // => '8080'\nconsole.log(url.pathname);   // => '/foo/bar'\nconsole.log(url.search);     // => '?a=1&b=2&a=3'\nconsole.log(url.hash);       // => '#fragment'\nconsole.log(url.toJSON());   // => 'https://login:password@example.com:8080/foo/bar?a=1&b=2&a=3#fragment'\nconsole.log(url.toString()); // => 'https://login:password@example.com:8080/foo/bar?a=1&b=2&a=3#fragment'\n\nfor (let [key, value] of url.searchParams) {\n  console.log(key);   // => 'a', 'b', 'a'\n  console.log(value); // => '1', '2', '3'\n}\n\nurl.pathname = '';\nurl.searchParams.append('c', 4);\n\nconsole.log(url.search); // => '?a=1&b=2&a=3&c=4'\nconsole.log(url.href);   // => 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'\n\nconst params = new URLSearchParams('?a=1&b=2&a=3');\n\nparams.append('c', 4);\nparams.append('a', 2);\nparams.delete('a', 1);\nparams.sort();\n\nconsole.log(params.size); // => 4\n\nfor (let [key, value] of params) {\n  console.log(key);   // => 'a', 'a', 'b', 'c'\n  console.log(value); // => '3', '2', '2', '4'\n}\n\nconsole.log(params.has('a')); // => true\nconsole.log(params.has('a', 3)); // => true\nconsole.log(params.has('a', 4)); // => false\n\nconsole.log(params.toString()); // => 'a=3&a=2&b=2&c=4'\n```\n\n> [!WARNING]\n> - IE8 does not support setters, so they do not work on `URL` instances. However, `URL` constructor can be used for basic `URL` parsing.\n> - Legacy encodings in a search query are not supported. Also, `core-js` implementation has some other encoding-related issues.\n> - `URL` implementations from all of the popular browsers have significantly more problems than `core-js`, however, replacing all of them does not look like a good idea. You can customize the aggressiveness of polyfill [by your requirements](#configurable-level-of-aggressiveness).\n"
  },
  {
    "path": "docs/web/docs/menu.json",
    "content": "[\n  {\n    \"title\": \"Usage\",\n    \"url\": \"{docs-version}/docs/usage\"\n  },\n  {\n    \"title\": \"Supported engines and compatibility data\",\n    \"url\": \"{docs-version}/docs/engines\"\n  },\n  {\n    \"title\": \"Features\",\n    \"children\": [\n      {\n        \"title\": \"ECMAScript\",\n        \"children\": [\n          {\n            \"title\": \"ECMAScript: Object\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/object\"\n          },\n          {\n            \"title\": \"ECMAScript: Function\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/function\"\n          },\n          {\n            \"title\": \"ECMAScript: Error\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/error\"\n          },\n          {\n            \"title\": \"ECMAScript: Array\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/array\"\n          },\n          {\n            \"title\": \"ECMAScript: Iterator\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/iterator\"\n          },\n          {\n            \"title\": \"ECMAScript: String and RegExp\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/string-regexp\"\n          },\n          {\n            \"title\": \"ECMAScript: Number\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/number\"\n          },\n          {\n            \"title\": \"ECMAScript: Math\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/math\"\n          },\n          {\n            \"title\": \"ECMAScript: Date\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/date\"\n          },\n          {\n            \"title\": \"ECMAScript: Promise\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/promise\"\n          },\n          {\n            \"title\": \"ECMAScript: Symbol\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/symbol\"\n          },\n          {\n            \"title\": \"ECMAScript: Collections\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/collections\"\n          },\n          {\n            \"title\": \"ECMAScript: Explicit Resource Management\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/explicit-resource-management\"\n          },\n          {\n            \"title\": \"ECMAScript: Typed Arrays\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/typed-arrays\"\n          },\n          {\n            \"title\": \"ECMAScript: Reflect\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/reflect\"\n          },\n          {\n            \"title\": \"ECMAScript: JSON\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/json\"\n          },\n          {\n            \"title\": \"ECMAScript: globalThis\",\n            \"url\": \"{docs-version}/docs/features/ecmascript/globalthis\"\n          }\n        ]\n      },\n      {\n        \"title\": \"ECMAScript proposals\",\n        \"children\": [\n          {\n            \"title\": \"Finished proposals\",\n            \"children\": [\n              {\n                \"title\": \"globalThis\",\n                \"url\": \"{docs-version}/docs/features/proposals/globalthis\"\n              },\n              {\n                \"title\": \"Relative indexing method\",\n                \"url\": \"{docs-version}/docs/features/proposals/relative-indexing-method\"\n              },\n              {\n                \"title\": \"Array.prototype.includes\",\n                \"url\": \"{docs-version}/docs/features/proposals/array-prototype-includes\"\n              },\n              {\n                \"title\": \"Array.prototype.flat / Array.prototype.flatMap\",\n                \"url\": \"{docs-version}/docs/features/proposals/array-prototype-flat-flatmap\"\n              },\n              {\n                \"title\": \"Array find from last\",\n                \"url\": \"{docs-version}/docs/features/proposals/array-find-from-last\"\n              },\n              {\n                \"title\": \"Change Array by copy\",\n                \"url\": \"{docs-version}/docs/features/proposals/change-array-by-copy\"\n              },\n              {\n                \"title\": \"Array grouping\",\n                \"url\": \"{docs-version}/docs/features/proposals/array-grouping\"\n              },\n              {\n                \"title\": \"Array.fromAsync\",\n                \"url\": \"{docs-version}/docs/features/proposals/array-fromasync\"\n              },\n              {\n                \"title\": \"ArrayBuffer.prototype.transfer and friends\",\n                \"url\": \"{docs-version}/docs/features/proposals/arraybuffer-prototype-transfer\"\n              },\n              {\n                \"title\": \"Uint8Array to / from base64 and hex\",\n                \"url\": \"{docs-version}/docs/features/proposals/uint8array-base64-hex\"\n              },\n              {\n                \"title\": \"Error.isError\",\n                \"url\": \"{docs-version}/docs/features/proposals/error-iserror\"\n              },\n              {\n                \"title\": \"Explicit Resource Management\",\n                \"url\": \"{docs-version}/docs/features/proposals/explicit-resource-management\"\n              },\n              {\n                \"title\": \"Float16 methods\",\n                \"url\": \"{docs-version}/docs/features/proposals/float16-methods\"\n              },\n              {\n                \"title\": \"Iterator helpers\",\n                \"url\": \"{docs-version}/docs/features/proposals/iterator-helpers\"\n              },\n              {\n                \"title\": \"Iterator sequencing\",\n                \"url\": \"{docs-version}/docs/features/proposals/iterator-sequencing\"\n              },\n              {\n                \"title\": \"Object.values / Object.entries\",\n                \"url\": \"{docs-version}/docs/features/proposals/object-values-entries\"\n              },\n              {\n                \"title\": \"Object.fromEntries\",\n                \"url\": \"{docs-version}/docs/features/proposals/object-fromentries\"\n              },\n              {\n                \"title\": \"Object.getOwnPropertyDescriptors\",\n                \"url\": \"{docs-version}/docs/features/proposals/object-getownpropertydescriptors\"\n              },\n              {\n                \"title\": \"Accessible Object.prototype.hasOwnProperty\",\n                \"url\": \"{docs-version}/docs/features/proposals/accessible-object-prototype-hasownproperty\"\n              },\n              {\n                \"title\": \"String padding\",\n                \"url\": \"{docs-version}/docs/features/proposals/string-padding\"\n              },\n              {\n                \"title\": \"String.prototype.matchAll\",\n                \"url\": \"{docs-version}/docs/features/proposals/string-matchall\"\n              },\n              {\n                \"title\": \"String.prototype.replaceAll\",\n                \"url\": \"{docs-version}/docs/features/proposals/string-replaceall\"\n              },\n              {\n                \"title\": \"String.prototype.trimStart / String.prototype.trimEnd\",\n                \"url\": \"{docs-version}/docs/features/proposals/string-trimstart-trimend\"\n              },\n              {\n                \"title\": \"RegExp s (dotAll) flag\",\n                \"url\": \"{docs-version}/docs/features/proposals/regexp-dotall-flag\"\n              },\n              {\n                \"title\": \"RegExp named capture groups\",\n                \"url\": \"{docs-version}/docs/features/proposals/regexp-named-capture-groups\"\n              },\n              {\n                \"title\": \"RegExp escaping\",\n                \"url\": \"{docs-version}/docs/features/proposals/regexp-escaping\"\n              },\n              {\n                \"title\": \"Promise.allSettled\",\n                \"url\": \"{docs-version}/docs/features/proposals/promise-allsettled\"\n              },\n              {\n                \"title\": \"Promise.any\",\n                \"url\": \"{docs-version}/docs/features/proposals/promise-any\"\n              },\n              {\n                \"title\": \"Promise.prototype.finally\",\n                \"url\": \"{docs-version}/docs/features/proposals/promise-prototype-finally\"\n              },\n              {\n                \"title\": \"Promise.try\",\n                \"url\": \"{docs-version}/docs/features/proposals/promise-try\"\n              },\n              {\n                \"title\": \"Promise.withResolvers\",\n                \"url\": \"{docs-version}/docs/features/proposals/promise-withresolvers\"\n              },\n              {\n                \"title\": \"Symbol.asyncIterator for asynchronous iteration\",\n                \"url\": \"{docs-version}/docs/features/proposals/symbol-asynciterator\"\n              },\n              {\n                \"title\": \"Symbol.prototype.description\",\n                \"url\": \"{docs-version}/docs/features/proposals/symbol-prototype-description\"\n              },\n              {\n                \"title\": \"JSON.parse source text access\",\n                \"url\": \"{docs-version}/docs/features/proposals/json-parse-source-text-access\"\n              },\n              {\n                \"title\": \"Well-formed JSON.stringify\",\n                \"url\": \"{docs-version}/docs/features/proposals/well-formed-jsonstringify\"\n              },\n              {\n                \"title\": \"Well-formed unicode strings\",\n                \"url\": \"{docs-version}/docs/features/proposals/well-formed-unicode-strings\"\n              },\n              {\n                \"title\": \"New Set methods\",\n                \"url\": \"{docs-version}/docs/features/proposals/set-methods\"\n              },\n              {\n                \"title\": \"Map upsert\",\n                \"url\": \"{docs-version}/docs/features/proposals/map-upsert\"\n              },\n              {\n                \"title\": \"Math.sumPrecise\",\n                \"url\": \"{docs-version}/docs/features/proposals/math-sumprecise\"\n              }\n            ]\n          },\n          {\n            \"title\": \"Stage 3 proposals\",\n            \"children\": [\n              {\n                \"title\": \"Joint iteration\",\n                \"url\": \"{docs-version}/docs/features/proposals/joint-iteration\"\n              },\n              {\n                \"title\": \"Symbol.metadata for decorators metadata proposal\",\n                \"url\": \"{docs-version}/docs/features/proposals/symbol-metadata\"\n              }\n            ]\n          },\n          {\n            \"title\": \"Stage 2.7 proposals\",\n            \"children\": [\n              {\n                \"title\": \"Iterator chunking\",\n                \"url\": \"{docs-version}/docs/features/proposals/iterator-chunking\"\n              }\n            ]\n          },\n          {\n            \"title\": \"Stage 2 proposals\",\n            \"children\": [\n              {\n                \"title\": \"AsyncIterator helpers\",\n                \"url\": \"{docs-version}/docs/features/proposals/asynciterator-helpers\"\n              },\n              {\n                \"title\": \"Iterator.range\",\n                \"url\": \"{docs-version}/docs/features/proposals/iterator-range\"\n              },\n              {\n                \"title\": \"Array.isTemplateObject\",\n                \"url\": \"{docs-version}/docs/features/proposals/array-istemplateobject\"\n              },\n              {\n                \"title\": \"Number.prototype.clamp\",\n                \"url\": \"{docs-version}/docs/features/proposals/number-prototype-clamp\"\n              },\n              {\n                \"title\": \"String.dedent\",\n                \"url\": \"{docs-version}/docs/features/proposals/string-dedent\"\n              },\n              {\n                \"title\": \"Symbol predicates\",\n                \"url\": \"{docs-version}/docs/features/proposals/symbol-predicates\"\n              },\n              {\n                \"title\": \"Symbol.customMatcher for extractors\",\n                \"url\": \"{docs-version}/docs/features/proposals/symbol-custommatcher-for-extractors\"\n              }\n            ]\n          },\n          {\n            \"title\": \"Stage 1 proposals\",\n            \"children\": [\n              {\n                \"title\": \"Observable\",\n                \"url\": \"{docs-version}/docs/features/proposals/observable\"\n              },\n              {\n                \"title\": \"New collections methods\",\n                \"url\": \"{docs-version}/docs/features/proposals/new-collections-methods\"\n              },\n              {\n                \"title\": \".of and .from methods on collection constructors\",\n                \"url\": \"{docs-version}/docs/features/proposals/of-and-from-methods-on-collections\"\n              },\n              {\n                \"title\": \"compositeKey and compositeSymbol\",\n                \"url\": \"{docs-version}/docs/features/proposals/compositekey-compositesymbol\"\n              },\n              {\n                \"title\": \"Array filtering\",\n                \"url\": \"{docs-version}/docs/features/proposals/array-filtering\"\n              },\n              {\n                \"title\": \"Array deduplication\",\n                \"url\": \"{docs-version}/docs/features/proposals/array-deduplication\"\n              },\n              {\n                \"title\": \"DataView get / set Uint8Clamped methods\",\n                \"url\": \"{docs-version}/docs/features/proposals/dataview-get-set-uint8clamped\"\n              },\n              {\n                \"title\": \"Number.fromString\",\n                \"url\": \"{docs-version}/docs/features/proposals/number-from-string\"\n              },\n              {\n                \"title\": \"String.cooked\",\n                \"url\": \"{docs-version}/docs/features/proposals/string-cooked\"\n              },\n              {\n                \"title\": \"String.prototype.codePoints\",\n                \"url\": \"{docs-version}/docs/features/proposals/string-prototype-codepoints\"\n              },\n              {\n                \"title\": \"Symbol.customMatcher for pattern matching\",\n                \"url\": \"{docs-version}/docs/features/proposals/symbol-custommatcher-pattern-matching\"\n              }\n            ]\n          },\n          {\n            \"title\": \"Stage 0 proposals\",\n            \"children\": [\n              {\n                \"title\": \"Function.prototype.demethodize\",\n                \"url\": \"{docs-version}/docs/features/proposals/function-prototype-demethodize\"\n              },\n              {\n                \"title\": \"Function.{ isCallable, isConstructor }\",\n                \"url\": \"{docs-version}/docs/features/proposals/function-is-callable-is-constructor\"\n              }\n            ]\n          },\n          {\n            \"title\": \"Pre-stage 0 proposals\",\n            \"children\": [\n              {\n                \"title\": \"Reflect metadata\",\n                \"url\": \"{docs-version}/docs/features/proposals/reflect-metadata\"\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"title\": \"Web standards\",\n        \"children\": [\n          {\n            \"title\": \"self\",\n            \"url\": \"{docs-version}/docs/features/web-standards/self\"\n          },\n          {\n            \"title\": \"structuredClone\",\n            \"url\": \"{docs-version}/docs/features/web-standards/structured-clone\"\n          },\n          {\n            \"title\": \"Base64 utility methods\",\n            \"url\": \"{docs-version}/docs/features/web-standards/base64-utility-methods\"\n          },\n          {\n            \"title\": \"setTimeout and setInterval\",\n            \"url\": \"{docs-version}/docs/features/web-standards/settimeout-setinterval\"\n          },\n          {\n            \"title\": \"setImmediate\",\n            \"url\": \"{docs-version}/docs/features/web-standards/setimmediate\"\n          },\n          {\n            \"title\": \"queueMicrotask\",\n            \"url\": \"{docs-version}/docs/features/web-standards/queuemicrotask\"\n          },\n          {\n            \"title\": \"URL and URLSearchParams\",\n            \"url\": \"{docs-version}/docs/features/web-standards/url-and-urlsearchparams\"\n          },\n          {\n            \"title\": \"DOMException\",\n            \"url\": \"{docs-version}/docs/features/web-standards/dom-exception\"\n          },\n          {\n            \"title\": \"Iterable DOM collections\",\n            \"url\": \"{docs-version}/docs/features/web-standards/iterable-dom-collections\"\n          }\n        ]\n      },\n      {\n        \"title\": \"Iteration helpers\",\n        \"url\": \"{docs-version}/docs/features/iteration-helpers\"\n      }\n    ]\n  },\n  {\n    \"title\": \"Missing polyfills\",\n    \"url\": \"{docs-version}/docs/missing-polyfills\"\n  },\n  {\n    \"title\": \"Contributing\",\n    \"url\": \"contributing\"\n  },\n  {\n    \"title\": \"Security Policy\",\n    \"url\": \"security\"\n  }\n]\n"
  },
  {
    "path": "docs/web/docs/missing-polyfills.md",
    "content": "# Missing polyfills\n- ES `BigInt` can't be polyfilled since it requires changes in the behavior of operators, you can find more info [here](https://github.com/zloirock/core-js/issues/381). You could try to use [`JSBI`](https://github.com/GoogleChromeLabs/jsbi).\n- ES `Proxy` can't be polyfilled, you can try to use [`proxy-polyfill`](https://github.com/GoogleChrome/proxy-polyfill) which provides a very small subset of features.\n- ES `String#normalize` is not a very useful feature, but this polyfill will be very large. If you need it, you can use [unorm](https://github.com/walling/unorm/).\n- ECMA-402 `Intl` is missed because of the size. You can use [those polyfills](https://formatjs.github.io/docs/polyfills).\n- `window.fetch` is not a cross-platform feature, in some environments, it makes no sense. For this reason, I don't think it should be in `core-js`. Looking at a large number of requests it *might be*  added in the future. Now you can use, for example, [this polyfill](https://github.com/github/fetch).\n"
  },
  {
    "path": "docs/web/docs/usage.md",
    "content": "# Usage\n## Installation\n```sh\n// global version\nnpm install --save core-js@3.49.0\n// version without global namespace pollution\nnpm install --save core-js-pure@3.49.0\n// bundled global version\nnpm install --save core-js-bundle@3.49.0\n```\n\n## Entry points\nYou can import only-required-for-you polyfills, like in the examples at the top of `README.md`. Available CommonJS entry points for all polyfilled methods / constructors and namespaces. Just some examples:\n\n```ts\n// polyfill all `core-js` features, including early-stage proposals:\nimport \"core-js\";\n// or:\nimport \"core-js/full\";\n// polyfill all actual features - stable ES, web standards and stage 3 ES proposals:\nimport \"core-js/actual\";\n// polyfill only stable features - ES and web standards:\nimport \"core-js/stable\";\n// polyfill only stable ES features:\nimport \"core-js/es\";\n\n// if you want to polyfill `Set`:\n// all `Set`-related features, with early-stage ES proposals:\nimport \"core-js/full/set\";\n// stable required for `Set` ES features, features from web standards and stage 3 ES proposals:\nimport \"core-js/actual/set\";\n// stable required for `Set` ES features and features from web standards\n// (DOM collections iterator in this case):\nimport \"core-js/stable/set\";\n// only stable ES features required for `Set`:\nimport \"core-js/es/set\";\n// the same without global namespace pollution:\nimport Set from \"core-js-pure/full/set\";\nimport Set from \"core-js-pure/actual/set\";\nimport Set from \"core-js-pure/stable/set\";\nimport Set from \"core-js-pure/es/set\";\n\n// if you want to polyfill just the required methods:\nimport \"core-js/full/set/intersection\";\nimport \"core-js/actual/array/find-last\";\nimport \"core-js/stable/queue-microtask\";\nimport \"core-js/es/array/from\";\n\n// polyfill iterator helpers proposal:\nimport \"core-js/proposals/iterator-helpers\";\n// polyfill all stage 2+ proposals:\nimport \"core-js/stage/2\";\n```\n\n> [!TIP]\n> The usage of the `/actual/` namespace is recommended since it includes all actual JavaScript features and does not include unstable early-stage proposals that are available mainly for experiments.\n\n> [!WARNING]\n> - The `modules` path is an internal API, does not inject all required dependencies and can be changed in minor or patch releases. Use it only for a custom build and/or if you know what are you doing.\n> - If you use `core-js` with the extension of native objects, recommended to load all `core-js` modules at the top of the entry point of your application, otherwise, you can have conflicts.\n>   - For example, Google Maps use their own `Symbol.iterator`, conflicting with `Array.from`, `URLSearchParams` and / or something else from `core-js`, see [related issues](https://github.com/zloirock/core-js/search?q=Google+Maps&type=Issues).\n>   - Such conflicts are also resolvable by discovering and manually adding each conflicting entry from `core-js`.\n> - `core-js` is extremely modular and uses a lot of very tiny modules, because of that for usage in browsers bundle up `core-js` instead of a usage loader for each file, otherwise, you will have hundreds of requests.\n\n## CommonJS and prototype methods without global namespace pollution\nIn the `pure` version, we can't pollute prototypes of native constructors. Because of that, prototype methods transformed into static methods like in examples above. But with transpilers, we can use one more trick - [bind operator and virtual methods](https://github.com/tc39/proposal-bind-operator). Special for that, available `/virtual/` entry points. Example:\n```ts\nimport fill from 'core-js-pure/actual/array/virtual/fill';\nimport findIndex from 'core-js-pure/actual/array/virtual/find-index';\n\nArray(10)::fill(0).map((a, b) => b * b)::findIndex(it => it && !(it % 8)); // => 4\n```\n\n> [!WARNING]\n> The bind operator is an early-stage ECMAScript proposal and usage of this syntax can be dangerous.\n\n## Babel\n\n`core-js` is integrated with `babel` and is the base for polyfilling-related `babel` features:\n\n## `@babel/polyfill`\n\n[`@babel/polyfill`](https://babeljs.io/docs/usage/polyfill) [**IS** just the import of stable `core-js` features and `regenerator-runtime`](https://github.com/babel/babel/blob/c8bb4500326700e7dc68ce8c4b90b6482c48d82f/packages/babel-polyfill/src/index.js) for generators and async functions, so loading `@babel/polyfill` means loading the global version of `core-js` without ES proposals.\n\nNow it's deprecated in favor of separate inclusion of required parts of `core-js` and `regenerator-runtime` and, for backward compatibility, `@babel/polyfill` is still based on `core-js@2`.\n\nAs a full equal of `@babel/polyfill`, you can use the following:\n```ts\nimport 'core-js/stable';\nimport 'regenerator-runtime/runtime';\n```\n\n## `@babel/preset-env`\n\n[`@babel/preset-env`](https://github.com/babel/babel/tree/master/packages/babel-preset-env) has `useBuiltIns` option, which optimizes the use of the global version of `core-js`. With `useBuiltIns` option, you should also set `corejs` option to the used version of `core-js`, like `corejs: '3.49'`.\n\n> [!IMPORTANT]\n> It is recommended to specify the used minor `core-js` version, like `corejs: '3.49'`, instead of `corejs: 3`, since with `corejs: 3` will not be injected modules which were added in minor `core-js` releases.\n\n---\n\n- `useBuiltIns: 'entry'` replaces imports of `core-js` to import only required for a target environment modules. So, for example,\n```ts\nimport 'core-js/stable';\n```\nwith `chrome 71` target will be replaced just to:\n```ts\nimport 'core-js/modules/es.array.unscopables.flat';\nimport 'core-js/modules/es.array.unscopables.flat-map';\nimport 'core-js/modules/es.object.from-entries';\nimport 'core-js/modules/web.immediate';\n```\nIt works for all entry points of global version of `core-js` and their combinations, for example for\n```ts\nimport 'core-js/es';\nimport 'core-js/proposals/set-methods';\nimport 'core-js/full/set/map';\n```\nwith `chrome 71` target you will have as the result:\n```ts\nimport 'core-js/modules/es.array.unscopables.flat';\nimport 'core-js/modules/es.array.unscopables.flat-map';\nimport 'core-js/modules/es.object.from-entries';\nimport 'core-js/modules/esnext.set.difference';\nimport 'core-js/modules/esnext.set.intersection';\nimport 'core-js/modules/esnext.set.is-disjoint-from';\nimport 'core-js/modules/esnext.set.is-subset-of';\nimport 'core-js/modules/esnext.set.is-superset-of';\nimport 'core-js/modules/esnext.set.map';\nimport 'core-js/modules/esnext.set.symmetric-difference';\nimport 'core-js/modules/esnext.set.union';\n```\n\n- `useBuiltIns: 'usage'` adds to the top of each file import of polyfills for features used in this file and not supported by target environments, so for:\n```ts\n// first file:\nlet set = new Set([1, 2, 3]);\n```\n```ts\n// second file:\nlet array = Array.of(1, 2, 3);\n```\nif the target contains an old environment like `IE 11` we will have something like:\n```ts\n// first file:\nimport 'core-js/modules/es.array.iterator';\nimport 'core-js/modules/es.object.to-string';\nimport 'core-js/modules/es.set';\n\nvar set = new Set([1, 2, 3]);\n```\n```ts\n// second file:\nimport 'core-js/modules/es.array.of';\n\nvar array = Array.of(1, 2, 3);\n```\n\nBy default, `@babel/preset-env` with `useBuiltIns: 'usage'` option only polyfills stable features, but you can enable polyfilling of proposals by the `proposals` option, as `corejs: { version: '3.49', proposals: true }`.\n\n> [!IMPORTANT]\n> In the case of `useBuiltIns: 'usage'`, you should not add `core-js` imports by yourself, they will be added automatically.\n\n## `@babel/runtime`\n\n[`@babel/runtime`](https://babeljs.io/docs/plugins/transform-runtime/) with `corejs: 3` option simplifies work with the `core-js-pure`. It automatically replaces the usage of modern features from the JS standard library to imports from the version of `core-js` without global namespace pollution, so instead of:\n```ts\nimport from from 'core-js-pure/stable/array/from';\nimport flat from 'core-js-pure/stable/array/flat';\nimport Set from 'core-js-pure/stable/set';\nimport Promise from 'core-js-pure/stable/promise';\n\nfrom(new Set([1, 2, 3, 2, 1]));\nflat([1, [2, 3], [4, [5]]], 2);\nPromise.resolve(32).then(x => console.log(x));\n```\nyou can write just:\n```js\nArray.from(new Set([1, 2, 3, 2, 1]));\n[1, [2, 3], [4, [5]]].flat(2);\nPromise.resolve(32).then(x => console.log(x));\n```\n\nBy default, `@babel/runtime` only polyfills stable features, but like in `@babel/preset-env`, you can enable polyfilling of proposals by `proposals` option, as `corejs: { version: 3, proposals: true }`.\n\n> [!WARNING]\n> If you use `@babel/preset-env` and `@babel/runtime` together, use `corejs` option only in one place since it's duplicate functionality and will cause conflicts.\n\n## swc\n\nFast JavaScript transpiler `swc` [contains integration with `core-js`](https://swc.rs/docs/configuration/supported-browsers), that optimizes work with the global version of `core-js`. [Like `@babel/preset-env`](#babelpreset-env), it has 2 modes: `usage` and `entry`, but `usage` mode still works not so well as in `babel`. Example of configuration in `.swcrc`:\n```json\n{\n  \"env\": {\n    \"targets\": \"> 0.25%, not dead\",\n    \"mode\": \"entry\",\n    \"coreJs\": \"3.49\"\n  }\n}\n```\n\n## Configurable level of aggressiveness\n\nBy default, `core-js` sets polyfills only when they are required. That means that `core-js` checks if a feature is available and works correctly or not and if it has no problems, `core-js` uses native implementation.\n\nBut sometimes `core-js` feature detection could be too strict for your case. For example, `Promise` constructor requires the support of unhandled rejection tracking and `@@species`.\n\nSometimes we could have an inverse problem - a knowingly broken environment with problems not covered by `core-js` feature detection.\n\nFor those cases, we could redefine this behavior for certain polyfills:\n\n```ts\nconst configurator = require('core-js/configurator');\n\nconfigurator({\n  useNative: ['Promise'],                                 // polyfills will be used only if natives are completely unavailable\n  usePolyfill: ['Array.from', 'String.prototype.padEnd'], // polyfills will be used anyway\n  useFeatureDetection: ['Map', 'Set'],                    // default behavior\n});\n\nrequire('core-js/actual');\n```\n\nIt does not work with some features. Also, if you change the default behavior, even `core-js` internals may not work correctly.\n\n## Custom build\n\nFor some cases could be useful to exclude some `core-js` features or generate a polyfill for target engines. You could use [`core-js-builder`](https://github.com/zloirock/core-js/tree/master/packages/core-js-builder) package for that.\n\n## `postinstall` message\nThe `core-js` project needs your help, so the package shows a message about it after installation. If it causes problems for you, you can disable it:\n```sh\nADBLOCK=true npm install\n// or\nDISABLE_OPENCOLLECTIVE=true npm install\n// or\nnpm install --loglevel silent\n```\n"
  },
  {
    "path": "docs/web/index.md",
    "content": "<div align=\"center\">\n\n[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js.svg)](https://www.npmjs.com/package/core-js) [![core-js downloads](https://img.shields.io/npm/dm/core-js.svg?label=npm%20i%20core-js)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18) [![core-js-pure downloads](https://img.shields.io/npm/dm/core-js-pure.svg?label=npm%20i%20core-js-pure)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18)\n\n</div>\n\n> Modular standard library for JavaScript. Includes polyfills for ECMAScript up to 2025, ECMAScript proposals and some cross-platform WHATWG / W3C features.\n\n<div class=\"features\">\n    <div class=\"feature\">\n        <div class=\"title\">\n            <span class=\"icon\"><svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.362 5.214A8.252 8.252 0 0 1 12 21 8.25 8.25 0 0 1 6.038 7.047 8.287 8.287 0 0 0 9 9.601a8.983 8.983 0 0 1 3.361-6.867 8.21 8.21 0 0 0 3 2.48Z\"></path>\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 18a3.75 3.75 0 0 0 .495-7.468 5.99 5.99 0 0 0-1.925 3.547 5.975 5.975 0 0 1-2.133-1.001A3.75 3.75 0 0 0 12 18Z\"></path>\n            </svg></span>\n            <span>Maximum Coverage</span>\n        </div>\n        <div class=\"desc\">Delivers the most complete support for modern and upcoming JavaScript features</div>\n    </div>\n    <div class=\"feature\">\n        <div class=\"title\">\n            <span class=\"icon\"><svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0 1 12 12.75Zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 0 1-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 12.75a2.25 2.25 0 0 0 2.248-2.354M12 12.75a2.25 2.25 0 0 1-2.248-2.354M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 0 0-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 0 1 .4-2.253M12 8.25a2.25 2.25 0 0 0-2.248 2.146M12 8.25a2.25 2.25 0 0 1 2.248 2.146M8.683 5a6.032 6.032 0 0 1-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0 1 15.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 0 0-.575-1.752M4.921 6a24.048 24.048 0 0 0-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 0 1-5.223 1.082\"></path>\n            </svg></span>\n            <span>Spec Compliance</span>\n        </div>\n        <div class=\"desc\">Strictly follows ECMAScript standards and fixes engine bugs for consistent behavior</div>\n    </div>\n    <div class=\"feature\">\n        <div class=\"title\">\n            <span class=\"icon\"><svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6.429 9.75 2.25 12l4.179 2.25m0-4.5 5.571 3 5.571-3m-11.142 0L2.25 7.5 12 2.25l9.75 5.25-4.179 2.25m0 0L21.75 12l-4.179 2.25m0 0 4.179 2.25L12 21.75 2.25 16.5l4.179-2.25m11.142 0-5.571 3-5.571-3\"></path>\n            </svg></span>\n            <span>Modularity</span>\n        </div>\n        <div class=\"desc\">Import only the polyfills you need for smaller bundles and faster loading</div>\n    </div>\n    <div class=\"feature\">\n        <div class=\"title\">\n            <span class=\"icon\"><svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M11.42 15.17 17.25 21A2.652 2.652 0 0 0 21 17.25l-5.877-5.877M11.42 15.17l2.496-3.03c.317-.384.74-.626 1.208-.766M11.42 15.17l-4.655 5.653a2.548 2.548 0 1 1-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 0 0 4.486-6.336l-3.276 3.277a3.004 3.004 0 0 1-2.25-2.25l3.276-3.276a4.5 4.5 0 0 0-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085m-1.745 1.437L5.909 7.5H4.5L2.25 3.75l1.5-1.5L7.5 4.5v1.409l4.26 4.26m-1.745 1.437 1.745-1.437m6.615 8.206L15.75 15.75M4.867 19.125h.008v.008h-.008v-.008Z\"></path>\n            </svg></span>\n            <span>Easy to Optimize</span>\n        </div>\n        <div class=\"desc\">It can be automatically injected and optimized by tools like Babel and SWC</div>\n    </div>\n    <div class=\"feature\">\n        <div class=\"title\">\n            <span class=\"icon\"><svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z\"></path>\n            </svg></span>\n            <span>Pure Version</span>\n        </div>\n        <div class=\"desc\">It can be used without global pollution to avoid conflicts</div>\n    </div>\n    <div class=\"feature\">\n        <div class=\"title\">\n            <span class=\"icon\"><svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"></path>\n            </svg></span>\n            <span>Widely Used</span>\n        </div>\n        <div class=\"desc\">Trusted by most of the popular websites for ensuring cross-browser compatibility</div>\n    </div>\n</div>\n\n---\n\nExample of usage:\n\n```js\nimport 'core-js/actual';\n\nawait Promise.try(() => 42); // => 42\n\nArray.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\n[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\nYou can load only required features:\n\n```js\nimport 'core-js/actual/promise';\nimport 'core-js/actual/set';\nimport 'core-js/actual/iterator';\nimport 'core-js/actual/array/from';\nimport 'core-js/actual/array/flat-map';\nimport 'core-js/actual/structured-clone';\n\nawait Promise.try(() => 42); // => 42\n\nArray.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\n[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\nor use it without global namespace pollution:\n\n```ts\nimport Promise from 'core-js-pure/actual/promise';\nimport Set from 'core-js-pure/actual/set';\nimport Iterator from 'core-js-pure/actual/iterator';\nimport from from 'core-js-pure/actual/array/from';\nimport flatMap from 'core-js-pure/actual/array/flat-map';\nimport structuredClone from 'core-js-pure/actual/structured-clone';\n\nawait Promise.try(() => 42); // => 42\n\nfrom(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\nflatMap([1, 2], it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n## Raising funds\n\n`core-js` isn't backed by a company, so the future of this project depends on you. Become a sponsor or a backer if you are interested in `core-js`: [**Open Collective**](https://opencollective.com/core-js), [**Patreon**](https://patreon.com/zloirock), [**Boosty**](https://boosty.to/zloirock), **Bitcoin ( bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz )**, [**Alipay**](https://user-images.githubusercontent.com/2213682/219464783-c17ad329-17ce-4795-82a7-f609493345ed.png).\n\n---\n\n<div class=\"sponsors\">\n    <a href=\"https://opencollective.com/core-js/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/0/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/1/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/2/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/3/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/4/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/5/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/6/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/7/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/8/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/9/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/10/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/10/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/11/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/11/avatar.svg\"></a>\n</div>\n\n---\n\n<div align=\"center\">\n    <details>\n        <summary>More backers</summary>\n        <a href=\"https://opencollective.com/core-js#backers\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/backers.svg?width=890\"></a>\n    </details>\n</div>\n\n---\n"
  },
  {
    "path": "docs/zh_CN/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md",
    "content": "# core-js@3, Babel 展望未来\n\n经过一年半的开发，数十个版本，许多不眠之夜，**[`core-js@3`](https://github.com/zloirock/core-js)** 终于发布了。这是 `core-js` 和 **[babel](https://babeljs.io/)** 补丁相关的功能的最大的一次变化。\n\n什么是 `core-js`?\n\n- 它是JavaScript标准库的 polyfill，它支持\n  - 最新的 [ECMAScript](https://en.wikipedia.org/wiki/ECMAScript) 标准\n  - ECMAScript 标准库提案\n  - 一些 [WHATWG](https://en.wikipedia.org/wiki/WHATWG)  / [W3C](https://en.wikipedia.org/wiki/World_Wide_Web_Consortium) 标准（跨平台或者 ECMAScript 相关）\n- 它最大限度的模块化：你能仅仅加载你想要使用的功能\n- 它能够不污染全局命名空间\n- 它[和babel紧密集成](https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#Babel)：这能够优化`core-js`的导入\n\n它是最普遍、[最流行](https://npmtrends.com/airbnb-js-shims-vs-core-js-vs-es5-shim-vs-es6-shim-vs-js-polyfills-vs-polyfill-library-vs-polyfill-service) 的给 JavaScript 标准库打补丁的方式，但是有很大一部分开发者并不知道他们间接的使用了`core-js`🙂\n\n## 贡献\n\n`core-js` 是我自己爱好的项目，没有给我带来任何利润。它花了我很长的时间，真的很昂贵：为了完成 `core-js@3`，我在几个月之前已经离开我的工作。这个项目对许多人和公司起到了促进作用。因为这些，筹集资金去支持 `core-js` 的维护是说得通的。\n\n如果你对 `core-js` 感兴趣或者在你每天的工作中有使用到，你可以在 [Open Collective](https://opencollective.com/core-js#sponsor) 或者 [Patreon](https://www.patreon.com/zloirock) 成为赞助者。\n\n你可以给[我](http://zloirock.ru/)提供一个好的工作，和我现在做的相关的。\n\n或者你可以以另一种方式贡献，你可以帮助去改进代码、测试或者文档（现在，`core-js` 的文档还很糟糕！）。\n\n## `core-js@3` 有哪些变化？\n\n### JavaScript 标准库中变化的内容\n\n由于以下两个原因，这个版本包含丰富的、新的 JavaScript 补丁：\n\n- `core-js` 只在 major（主）版本更新时才有 break changes，即使需要和提案的内容对齐。\n- `core-js@2` 在一年半前已经进入功能冻结阶段了；所有新的功能只能够添加到 `core-js@3` 这个分支。\n\n#### 稳定的 ECMAScript 功能\n\n稳定的 ECMAScript 功能在 `core-js` 中已经几乎完全支持有很长一段时间了，除此之外，`core-js@3` 引进了一些新功能：\n\n- 增加支持 ECMAScript 2015 引入的两个知名标志 [`@@isConcatSpreadable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable) 和 [`@@species`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/species)，给所有使用他们的方法。\n- 增加来自 ECMAScript 2018 的 [`Array.prototype.flat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat) 和 [`Array.prototype.flatMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap)（ `core-js@2` 针对 `Array.prototype.flatten` 这个老版本的提案提供了补丁）。\n- 增加来自 ECMAScript 2019 的 [`Object.fromEntries`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries) 方法\n- 增加来自 ECMAScript 2019 的 [`Symbol.prototype.description`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/description) 访问器\n\n一些在 ES2016-ES2019 中作为提案被接受且已经使用很长时间的功能，现在被标记为稳定：\n\n- [`Array.prototype.includes`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) 和 [`TypedArray.prototype.includes`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/includes) 方法（ ESMAScript 2016 ）\n- [`Object.values`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values) 和 [`Object.entries`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) 方法( ECMAScript 2017 )\n- [`Object.getOwnPropertyDescriptors`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors) 方法 ( ECMAScript 2017 )\n- [`String.prototype.padStart`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart) 和 [`String.prototype.padEnd`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd) 方法（ ECMAScript 2017 ）\n- [`Promise.prototype.finally`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/finally) 方法（ ECMAScript 2018 ）\n- [`Symbol.asyncIterator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/asyncIterator) 知名标志（ ECMAScript 2018 ）\n- [`Object.prototype.__define(Getter|Setter)__`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__) 和 [`Object.prototype.__lookup(Getter|Setter)__`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__) 方法（ ECMAScript 2018 ）\n- [`String.prototype.trim(Start|End|Left|Right)`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trimStart) 方法（ ECMAScript 2019 ）\n\n修复了针对浏览器的许多问题，例如，[Safari 12.0 `Array.prototype.reverse` bug](https://bugs.webkit.org/show_bug.cgi?id=188794) 已经被修复了。\n\n#### ECMAScript 提案\n\n除了上文提到的支持内容，`core-js@3` 现在还支持下面的 ECMAScript 提案：\n\n- [`globalThis`](https://github.com/tc39/proposal-global) stage 3（ 现在是 stage 4 ）的提案 - 之前，已经有了 `global` 和 `System.global`\n- [`Promise.allSettled`](https://github.com/tc39/proposal-promise-allSettled) stage 2（ 现在是 stage 4 ）提案\n- [新 `Set` 方法](https://github.com/tc39/proposal-set-methods) stage 2 提案：\n  - Set.prototype.difference\n  - Set.prototype.intersection\n  - Set.prototype.isDisjoinFrom\n  - Set.prototype.isSubsetOf\n  - Set.prototype.isSupersetOf\n  - Set.prototype.symmetricDifference\n  - Set.prototype.union\n- [新 collections 方法](https://github.com/tc39/proposal-collection-methods) stage 1 提案，包函许多新的有用的方法：\n  - Map.groupBy\n  - Map.keyBy\n  - Map.prototype.deleteAll\n  - Map.prototype.every\n  - Map.prototype.filter\n  - Map.prototype.find\n  - Map.prototype.findKey\n  - Map.prototype.includes\n  - Map.prototype.keyOf\n  - Map.prototype.mapKeys\n  - Map.prototype.mapValues\n  - Map.prototype.merge\n  - Map.prototype.reduce\n  - Map.prototype.some\n  - Map.prototype.update\n  - Set.prototype.addAll\n  - Set.prototype.deleteAll\n  - Set.prototype.every\n  - Set.prototype.filter\n  - Set.prototype.find\n  - Set.prototype.join\n  - Set.prototype.map\n  - Set.prototype.reduce\n  - Set.prototype.some\n  - WeakMap.prototype.deleteAll\n  - WeakSet.prototype.addAll\n  - WeakSet.prototype.deleteAll\n- [`String.prototype.replaceAll`](https://github.com/tc39/proposal-string-replace-all) stage 1（ 现在是 stage 3 ） 提案\n- [`String.prototype.codePoints`](https://github.com/tc39/proposal-string-prototype-codepoints) stage 1 提案\n- [`Array.prototype.last(Item|Index)`](https://github.com/tc39-transfer/proposal-array-last) stage 1 提案\n- [`compositeKey` 和 `compositeSymbol` 方法](https://github.com/bmeck/proposal-richer-keys/tree/master/compositeKey) stage 1 提案\n- [`Number.fromString`](https://github.com/tc39/proposal-number-fromstring) stage 1 提案\n- [`Math.seededPRNG`](https://github.com/tc39/proposal-seeded-random) stage 1 提案\n- [`Promise.any` (合并的错误)](https://github.com/tc39/proposal-promise-any) stage 0（ 现在是 stage 3 ）提案\n\n一些提案的变化很大，`core-js` 也将相应的更新：\n\n- [`String.prototype.matchAll`](https://github.com/tc39/proposal-string-matchall) stage 3 提案\n- [Observable](https://github.com/tc39/proposal-observable) stage 1 提案\n\n\n#### web 标准\n\n许多有用的功能被添加到这个类别中。\n\n最重要的一个是 [`URL`](https://developer.mozilla.org/en-US/docs/Web/API/URL) 和 [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)。他是[最受欢迎的功能请求之一](https://github.com/zloirock/core-js/issues/117)。增加 `URL` 和 `URLSearchParams`，并保证他们最大限度的符合规范，保持源代码足够紧凑来支撑任何环境是 `core-js@3` 开发中[最困难的任务之一](https://github.com/zloirock/core-js/pull/454/files)。\n\n`core-js@3` 包函在 JavaScript 中创建微任务（ microtask ）的标准方法：[`queueMicrotask`](https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#microtask-queuing) 。`core-js@2` 提供了  `asap` 函数，提供了同样功能的老的提案。`queueMicrotask` 被定义在 HTML 标准中，它已经能够在现代浏览器比如 Chromium 或者 NodeJS 中使用。\n\n另一个受欢迎的功能请求是支持 [DOM 集合的 `.forEach` 方法](https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach)。由于 `core-js` 已经针对 DOM 集合迭代器做了 polyfill，为什么不给 `节点列表` 和 [`DOMTokenList`](https://developer.mozilla.org/zh-CN/docs/Web/API/DOMTokenList) 也增加 `.forEach` 呢？\n\n#### 移除过时的功能：\n\n- `Reflect.enumerate` 因为他已经从标准中移除了\n- `System.global` 和 `global` 现在他们已经被 `globalThis` 代替\n- `Array.prototype.flatten` 现在被 `Array.prototype.flat` 代替\n- `asap` 被 `queueMicrotask` 代替\n- `Error.isError` 被撤销很长时间了\n- `RegExp.escape` 很久之前被拒绝了\n- `Map.prototype.toJSON` 和 `Set.prototype.toJSON` 也是很久前被拒绝了\n- 不必要并且被错误添加的迭代器方法：`CSSRuleList`，`MediaList`，`StyleSheetList`。\n\n#### 不再有非标准、非提案的功能\n\n许多年前，我开始写一个库，他是我的 JavaScript 程序的核心：这个库包函 polyfills 和一些我需要的工具函数。一段时间后，这个库以 `core-js` 命名发布。我认为现在大多数 `core-js` 用户不需要非标准的 `core-js` 功能，他们大多已经在早期版本移除了，现在是时候将剩余部分从 `core-js` 中移除。从这个版本开始，`core-js` 可以被称为  polyfill 了。\n\n### 包、入口和模块名字\n\n一个 issue 里提了 `core-js` 包的很大（ ~2MB ），有很多重复文件。因为这个原因，`core-js` 分成了 3 个包：\n- [`core-js`](https://www.npmjs.com/package/core-js) 定义全局的 polyfills。（ ~500KB，[压缩并且 gzipped 处理后 40KB](https://bundlephobia.com/result?p=core-js@3.0.0-beta.20) ）\n- [`core-js-pure`](https://www.npmjs.com/package/core-js-pure)，提供了不污染全局变量的 polyfills。它和 `core-js@2` 中的 `core-js/library` 相当。（~440KB）\n- [`core-js-bundle`](https://www.npmjs.com/package/core-js-bundle)：定义了全局填充的打包版本\n\n`core-js` 的早期版本中，稳定的 ECMAScript 功能和 ECMAScript 提案的 polyfill 模块化需要分别加 `es6.` 和 `es7.` 前缀。这是在 2014 年做的决定，那时将 ES6 之后的所有功能都视为 ES7。在 `core-js@3` 中所有稳定的 ECMAScript 功能都增加 `es.` 前缀，ECMAScript 提案增加 `esnext.` 前缀。\n\n几乎所有的 CommonJS 入口都改变了。`core-js@3` 相比于 `core-js@2` 有更多的入口：这带来的最大限度的灵活性，使你能够仅仅引入你的应用需要的依赖。\n\n这里是一些例子关于如何使用新的入口：\n\n```js\n// 使用 `core-js` 全部功能打补丁：\nimport \"core-js\";\n// 仅仅使用稳定的 `core-js` 功能 - ES 和 web 标准：\nimport \"core-js/stable\";\n// 仅仅使用稳定的 ES 功能\nimport \"core-js/es\";\n\n// 如果你想用 `Set` 的补丁\n// 所有 `Set`- ES 提案中，相关的功能：\nimport \"core-js/features/set\";\n// 稳定的 `Set` ES 功能和来自web标准的功能\n// （DOM 集合迭代器）\nimport \"core-js/stable/set\";\n// 只有 `Set` 所需的稳定的 ES 功能\nimport \"core-js/es/set\";\n// 与上面一致，但不会污染全局命名空间\nimport Set from \"core-js-pure/features/set\";\nimport Set from \"core-js-pure/stable/set\";\nimport Set from \"core-js-pure/es/set\";\n\n\n// 仅仅为需要的方法打补丁\nimport \"core-js/feature/set/intersection\";\nimport \"core-js/stable/queque-microtask\";\nimport \"core-js/es/array/from\";\n\n// 为 reflect metadata 提案打补丁\nimport \"core-js/proposals/reflect-metadata\";\n// 为所有 stage 2+ 的提案打补丁\nimport \"core-js/stage/2\";\n```\n\n### 其他重要的变化\n\n`core-js` polyfill 能够 [配置侵入等级](https://github.com/zloirock/core-js/blob/master/README.md#configurable-level-of-aggressiveness)。如果你认为有些情境 `core-js` 功能检测侵入性太强，原生实现对你来说已经足够，或者一个错误的实现没有被 `core-js` 检测到，你可以修改 `core-js` 的默认行为。\n\n如果无法安装规范的每个细节实现某个功能，`core-js` 增加了一个 `.sham` 属性，例如，IE11中 `Symbol.sham` 是 `true`。\n\n不再有 LiveScript! 当我开始写 `core-js` 时，我主要使用的是 [LiveScript](http://livescript.net/) ；一段时间后，我用 JavaScript 重写了全部的 polyfills 。在 `core-js@2` 中测试和帮助的工具函数仍然使用 LiveScript ：它是非常有趣的像 CoffeeScript 一样的语言，有强大的语法糖使你能够写非常紧凑的代码，但是它几乎已经死了。除此之外，它也是为 `core-js` 贡献的屏障，因为大多数 `core-js` 用户不知道这个语言。`core-js@3` 测试和工具函数使用现代 ES 语法：它将成为为 `core-js` 贡献的好时机🙂。\n\n对于大多数用户，为了优化 `core-js` 导入，我建议使用 [babel](#Babel)。当然，有些情况下 [`core-js-builder`](http://npmjs.com/package/core-js-builder) 仍然有用。现在它支持 `target` 参数，使用带有目标引擎的[`browserslist`](https://github.com/browserslist/browserslist) 查询 - 你能够创建一个 bundle，仅仅包含目标引擎需要的 polyfills。对于这种情况，我做了 [`core-js-compat`](https://www.npmjs.com/package/core-js-compat)，更多关于它的信息，你能够从 [这篇文章的 `@babel/preset-env` 部分](#babelpreset-env)了解到。\n\n---\n\n这仅仅是冰山一角，更多的变化在内部。更多关于 `core-js` 变化可以在 [changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md#300) 中找到。\n\n## Babel\n\n正如上文提到的，`babel` 和 `core-js` 是紧密集成的：`babel` 提供了优化 `core-js` 优化导入的可能性。`core-js@3` 开发中很重要的一部分是改进 `core-js` 相关的 `babel` 功能（看[这个PR](https://github.com/babel/babel/pull/7646)）。这些变化在 [Babel 7.4.0](https://babeljs.io/blog/2019/03/19/7.4.0) 发布了。\n\n### babel/polyfill\n\n[`@babel/polyfill`](https://babeljs.io/docs/en/next/babel-polyfill.html) 是一个包裹的包，里面仅仅包含 `core-js` 稳定版的引入（在Babel 6 中也包含提案）和 `regenerator-runtime/runtime`，用来转译 generators 和 async 函数。这个包没有提供从 `core-js@2` 到 `core-js@3` 平滑升级路径：因为这个原因，决定弃用 `@babel/polyfill` 代之以分别引入需要的 `core-js` 和 `regenerator-runtime` 。\n\n原来\n```js\nimport \"@babel/polyfill\";\n```\n\n现在使用两行代替：\n\n```js\nimport \"core-js/stable\";\nimport \"regenerator-runtime/runtime\";\n```\n\n别忘记直接安装这两个依赖！\n\n```js\nnpm i --save core-js regenerator-runtime\n```\n\n### @babe/preset-env\n\n[`@babel/preset-env`](https://babeljs.io/docs/en/next/babel-preset-env#usebuiltins) 有两种不同的模式，通过 `useBuiltIns` 选项：`entry` 和 `usage` 优化 `core-js`的导入。\n\nBabel 7.4.0 引入了两种模式的共同更改，以及每种模式的特定的修改。\n\n由于现在 `@babel/preset-env` 支持 `core-js@2` 和 `core-js@3`，因此 `useBuiltIns` 需要新的选项 -- `corejs`，这个选项用来定义使用 `core-js` 的版本（`corejs: 2` 或者 `corejs: 3`）。如果没有设置，`corejs: 2` 是默认值并且会有警告提示。\n\n为了使 babel 支持将来的次要版本中引入的 `core-js` 的新功能，你可以在项目中定义明确的次要版本号。例如，你想使用 `core-js@3.1` 使用这个版本的新特性，你可以设置 `corejs` 选项为 `3.1`：`corejs: '3.1'` 或者 `corejs: {version: '3.1'}`。\n\n`@babel/preset-env` 最重要的一个功能就是提供不同浏览器支持特性的数据来源，用来确定是否需要 `core-js` 填充某些内容。 [`caniuse`](https://caniuse.com/)，[`mdn`](https://developer.mozilla.org/en-US/) 和 [`compat-table`](http://kangax.github.io/compat-table/es6/) 是很好的教育资源，但是并不意味着他们能够作为数据源被开发者使用：只有 `compat-table` 包函好的 ES 相关数据集，它被 `@babel/preset-env` 使用，但是仍有些限制：\n\n- 它包含的数据仅仅关于 ECMAScript 特性和提案，和 web 平台特性例如 `setImmediate` 或者 DOM 集合迭代器没有关系。所以直到现在，`@babel/preset-env` 仍然通过 `core-js` 添加全部的 web 平台特性即使他们已经支持了。\n- 它不包含任何浏览器（甚至是严重的）bug 信息：例如，上文提到的在 Safari 12 中 `Array#reverse`，但是 `compat-table` 并没有将它标记为不支持。另一方面，`core-js` 已经修复了这个错误实现，但是因为 `compat-table` 关系，并不能使用它。\n- 它仅包函一些基础的、简单的测试，没有检查功能在真实环境下是否可以正常工作。例如，老版本 Safari 的破坏的迭代器没有 `.next` 方法，但是 `compat-table` 表明 Safari 支持，因为它用 `typeof` 方法检测迭代器方法返回了 `\"function\"`。一些像 typed arrays 的功能几乎没有覆盖。\n\n- `compat-table` 不是为了向工具提供数据而设计的。我是 `compat-table` 的维护者之一，但是[其他的维护者反对为维护这个功能](https://github.com/kangax/compat-table/pull/1312)。\n\n因为这个原因，我创建了 [`core-js-compat`](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat)：它提供了对于不同浏览器 `core-js` 模块的必要性数据。当使用 `core-js@3` 时，`@babel/preset-env` 将使用新的包取代 `compat-table`。[请帮助我们测试并提供缺少的引擎的数据的映射关系！](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md#updating-core-js-compat-data)😊。\n\n在 Babel 7.3 之前，`@babel/preset-env` 有一些与 polyfills 注入顺序有关的问题。从 7.4.0开始，`@babel/preset-env` 只按推荐顺序增加需要的 polyfills 。\n\n#### `useBuiltIns: entry` with `corejs: 3`\n\n当使用这个选项时，`@babel/preset-env` 代替直接引用 `core-js` 而是引入目标环境特定需要的模块。\n\n在这个变化前，`@babel/preset` 仅替换 `import '@babel/polyfill'` 和 `import 'core-js'`，他们是同义词用来 polyfill 所有稳定的 JavaScript 特性。\n\n现在 `@babel/polyfill` 弃用了，当 `corejs` 设置为 3 时 `@babel/preset-env` 不会转译他。\n\n`core-js@3` 中等价替换 `@babel/polyfill` 是\n\n```js\nimport \"core-js/stable\";\nimport \"regenerator-runtime/runtime\";\n```\n\n当目标浏览器是 `chrome 72` 时，上面的内容将被 `@babel/preset-env` 转换为\n```js\nimport \"core-js/modules/es.array.unscopables.flat\";\nimport \"core-js/modules/es.array.unscopaables.flat-map\";\nimport \"core-js/modules/es.object.from-entries\";\nimport \"core-js/modules/web.immediate\";\n```\n\n当目标浏览器是 `chrome 73`（它完全支持 ES2019 标准库），他将变为很少的引入：\n```js\nimport \"core-js/modules/web.immediate\";\n```\n\n自从 `@babel/polyfill` 被弃用，转而使用分开的 `core-js` 和 `regenerator-runtime`，我们能够优化 `regenerator-runtime` 的导入。因为这个原因，如果目标浏览器原生支持 generators ，那么 `regenerator-runtime` 的导入将从源代码中移除。\n\n现在，设置 `useBuiltIns: entry` 模式的 `@babel/preset-env` 编译所有能够获得的 `core-js` 入口和他们的组合。这意味着你能够自定义，通过使用不同的 `core-js` 入口，它将根据的目标环境优化。\n\n例如，目标环境是 `chrome 72`，\n\n```js\nimport \"core-js/es\";\nimport \"core-js/proposals/set-methods\";\nimport \"core-js/features/set/map\";\n```\n\n将被替换为\n\n```js\nimport \"core-js/modules/es.array.unscopables.flat\";\nimport \"core-js/modules/es.array.unscopables.flat-map\";\nimport \"core-js/modules/es.object.from-entries\";\nimport \"core-js/modules/esnext.set.difference\";\nimport \"core-js/modules/esnext.set.intersection\";\nimport \"core-js/modules/esnext.set.is-disjoint-from\";\nimport \"core-js/modules/esnext.set.is-subset-of\";\nimport \"core-js/modules/esnext.set.is-superset-of\";\nimport \"core-js/modules/esnext.set.map\";\nimport \"core-js/modules/esnext.set.symmetric-difference\";\nimport \"core-js/modules/esnext.set.union\";\n```\n\n#### `useBuiltIns: usage` with `corejs: 3`\n\n当使用这个选项时，`@babel/preset-env` 在每个文件的开头引入目标环境不支持、仅在当前文件中使用的 polyfills。\n\n例如，\n```js\nconst set = new Set([1, 2, 3]);\n[1, 2, 3].includes(2);\n```\n\n当目标环境是老的浏览器例如 `ie 11`，将转换为\n```js\nimport \"core-js/modules/es.array.includes\";\nimport \"core-js/modules/es.array.iterator\";\nimport \"core-js/modules/es.object.to-string\";\nimport \"core-js/modules/es.set\";\n\nconst set = new Set([1, 2, 3]);\n[1, 2, 3].includes(2);\n```\n\n当目标是 `chrome 72` 时不需要导入，因为这个环境需要 polyfills：\n```js\nconst set = new Set([1, 2, 3]);\n[1, 2, 3].includes(2);\n```\n\nBabel 7.3 之前，`useBuiltIns: usage` 不稳定且不是足够可靠：许多 polyfills 不包函，并且添加了许多不是必须依赖的 polyfills。在 Babel 7.4 中，我尝试使它理解每种可能的使用模式。\n\n在属性访问器、对象解构、`in` 操作符、全局对象属性访问方面，我改进了确定使用哪个 polyfills 的技术。\n\n`@babel/preset-env` 现在注入语法特性所需的 polyfills：使用 `for-of` 时的迭代器，解构、扩展运算符和 `yield` 委托；使用动态 `import` 时的 promises，异步函数和 generators，等。\n\nBabel 7.4 支持注入提案 polyfills。默认，`@babel/preset-env` 不会注入他们，但是你能够通过 `proposals` 标志设置：`corejs: { version: 3, proposals: true }`。\n\n### @babel/runtime\n\n当使用 `core-js@3` 时， [`@babel/transform-runtime`](https://babeljs.io/docs/en/next/babel-plugin-transform-runtime#corejs) 现在通过 `core-js-pure`（`core-js`的一个版本，不会污染全局变量） 注入 polyfills。\n\n通过将 `@babel/transform-runtime` 设置 `corejs: 3` 选项和创建 `@babel/runtime-corejs3` 包，已经将 `core-js@3` 和 `@babel/runtime` 集成在一起。但是这将带来什么好处呢？\n\n`@babel/runtime` 的一个受欢迎的 issue 是：不支持实例方法。从 `@babel/runtime-corejs3` 开始，这个问题已经解决。例如，\n\n```js\narray.includes(something);\n```\n\n将被编译为\n\n```js\nimport _includesInstanceProperty from \"@babel/runtime-corejs3/core-js-stable/instance/includes\";\n\n_includesInstanceProperty(array).call(array, something);\n```\n\n另一个值得关注的变化是支持 ECMAScript 提案。默认情况下的，`@babel/plugin-transform-runtime` 不会为提案注入 polyfills 并使用不包含提案的入口。但是正如你在 `@babel/preset-env` 中做的那样，你可以设置 `proposals` 标志去开启：`corejs: { version: 3, proposals: true }`。\n\n没有 `proposals` 标志，\n\n```js\nnew Set([1, 2, 3, 2, 1]);\nstring.matchAll(/something/g);\n```\n\n将被编译为：\n```js\nimport _Set from \"@babel/runtime-corejs/core-js-stable/set\";\n\nnew _Set([1, 2, 3, 2, 1]);\nstring.matchAll(/something/g);\n```\n\n当设置 `proposals` 后，将变为：\n\n```js\nimport _Set from \"@babel/runtime-corejs3/core-js/set\";\nimport _matchAllInstanceProperty from \"@babel/runtime-corejs/core-js/instance/match-all\";\n\nnew _Set([1, 2, 3, 2, 1]);\n_matchAllInstanceProperty(string).call(string, /something/g);\n```\n\n有些老的问题已经被修复了。例如，下面这种流行的模式在 `@babel/runtime-corejs2` 不工作，但是在 `@babel/runtime-corejs3` 被支持。\n\n```js\nmyArrayLikeObject[Symbol.iterator] = Array.prototype[Symbol.iterator];\n```\n\n尽管 `@babel/runtime` 早期版本不支持实例方法，但是使用一些自定义的帮助函数能够支持迭代（`[Symbol.iterator]()` 和他的presence）。之前不支持提取 `[Symbol.iterator]` 方法，但是现在支持了。\n\n作为意外收获，`@babel/runtime` 现在支持IE8-，但是有些限制，例如，IE8- 不支持访问器、模块转换应该用松散的方式，`regenerator-runtime`（内部使用 ES5+ 实现）需要通过这个插件转译。\n\n## 畅享未来\n\n做了许多工作，但是 `core-js` 距离完美还很远。这个库和工具将来应该如何改进？语言的变化将会如何影响它？\n\n### 老的引擎支持\n\n现在，`core-js` 试图去支持所有可能的引擎或者我们能够测试到的平台：甚至是IE8-，或者例如，早期版本的 Firefox。虽然它对某些用户有用，但是仅有一小部分使用 `core-js` 的开发者需要它。对于大多数用户，它将引起像包体积过大或者执行缓慢的问题。\n\n主要的问题源自于支持 ES3 引擎（首先是 IE8- ）：多数现代 ES 特性是基于 ES5，这些功能在老版本浏览器中均不可用。\n\n最大的缺失特性是属性描述符：当它缺失时，一些功能不能 polyfill，因为他们要么是访问器（像 `RegExp.prototype.flags` 或 `URL` 属性的 setters ）要么就是基于访问器（像 typed array polyfill）。为了解决这个不足，我们需要使用不同的解决方法（例如，保持 `Set.prototype.size` 更新）。维护这些解决方法有时很痛苦，移除他们将极大的简化许多 polyfills。\n\n然而，描述符仅仅是问题的一部分。ES5 标准库包含了很多其他特性，他们被认为是现代 JavaScript 的基础：`Object.create`，`Object.getPrototypeOf`，`Array.prototype.forEach`，`Function.prototype.bind`，等等。和多数现代特性不同，`core-js` 内部依赖他们并且[为了实现一个简单的现代函数，`core-js` 需要加载其中一些\"建筑模块\"的实现](https://github.com/babel/babel/pull/7646#discussion_r179333093)。对于想要创建一个足够小的构建包和仅仅想要引入部分 `core-js` 的用户来说，这是个问题。\n\n在一些国家 IE8 仍很流行，但是为了让 web 向前发展，浏览器到了某些时候就应该消失了。 `IE8` 在 2009 年 3 月 19 日发布，到今天已经 10 年了。IE6 已经 18 岁了：几个月前新版的 `core-js` 已经不再测试 IE6 了。\n\n在 `core-js@4` 我们应该舍弃 IE8- 和其他不知道 ES5 的引擎。\n\n### ECMAScript 模块\n\n`core-js` 使用 `CommonJS` 模块规范。长期以来，他是最受欢迎的 JavaScript 模块规范，但是现在 ECMAScript 提供了他自己的模块规范。许多引擎已经支持它了。一些构建工具（像 rollup ）基于它，其他的构建工具提供它作为 `CommonJS` 的替代。这意味提供了一个可选择的使用 ESMAScript 模块规范版本的 `core-js` 行得通。\n\n### 支持 web 标准扩展？\n\n `core-js` 当前专注在 ECMAScript 支持，但是也支持少量的跨平台以及和 ECMAScript 紧密联系的 web 标准功能。为 web 标准添加像 `fetch` 的这种的 polyfill 是受欢迎的功能请求。\n\n `core-js` 没有增加他们的主要原因是，他们将严重的增加构建包大小并且将强制 `core-js` 用户载入他们可能用不到的功能。现在 `core-js` 是最大限度的模块化，用户能够仅选择他们需要的功能，这就像 `@babel/preset-env` 和 `@babel/runtime` 能够帮助用户去减少没用到和不必要的 polyfills。\n\n现在是时候重新审视这个决定了？\n\n### 针对目标环境的 `@babel/runtime`\n\n目前，我们不能像对 `@babel/preset-env` 那样为 `@babel/runtime` 设置目标加环境。这意味即使目标是现代浏览器， `@babel/runtime` 也将注所有可能的 polyfills：这不必要的增加了最终构建包的大小。\n\n现在 `core-js-compat` 包函全部必要数据，将来，可以在 `@babel/runtime` 中添加对目标环境的编译支持，并且在 `@babel/preset-env` 中添加 `useBuiltIns: runtime` 选项。\n\n### 更好的优化 polyfill 加载\n\n正如上面解释的，Babel 插件给了我们不同的方式去优化 `core-js` 的使用，但是他并不完美：我们可以改进他们。\n\n通过 `useBuiltIns: usage` 选项，`@babe/preset-env` 能够做的比之前更好，但是针对一些不寻常的例子他们仍然会失败：当代码不能被静态分析。针对这个问题，我们需要为库开发者寻找一个方式去确定哪种 polyfill 是他们的库需要的，而不是直接载入他们：某种元数据 -- 将在创建最终构建包时注入 polyfill。\n\n另一个针对 `useBuiltIns: usage` 的问题是重复的 polyfills 导入。`useBuiltIns: usage` 能够在每个文件中注入许多 `core-js` 的导入。但如果我们的项目有数千个文件或者即使十分之一会怎么样呢？这种情况下，与导入 `core-js` 自身相比，导入 `core-js/...` 将有更多代码行：我们需要一种方式去收集所有的导入到一个文件中，这样才能够删除重复的。\n\n几乎每一个需要支持像 `IE11` 浏览器的 `@babel/preset-env` 用户都为每个浏览器使用同一个构建包。这意味着完全支持 ES2019 的现代浏览器将加载不必要的、仅仅是 IE11 需要的 polyfills。当然，我们可以为不同的浏览器创建不同的构建包来使用，例如，`type=module` /\n`nomodules` 属性：一个构建包给支持模块化的现代浏览器，另一个给传统浏览器。不幸的是，这不是针对这个问题的完整的解决方案：基于用户代理打包目标浏览器需要的 polyfill 的服务非常有用。我们已经有了一个 - [`polyfill-service`](https://github.com/Financial-Times/polyfill-service)。尽管很有趣也很流行，但是 polyfill 的质量还有很多不足。它不像几年前那么差：项目团队积极工作去改变它，但是如果你想用他们匹配原生实现，我不建议你通过这个项目使用 polyfill。许多年前我尝试通过这个项目将 `core-js` 作为 polyfill 的源，但是这不可能。因为 `polyfill-service` 依赖文件嵌套而不是模块化（就像 `core-js` 发布后的前几个月 😊）。\n\n像这样一个集成了一个很棒的 polyfill 源 -- `core-js` 的服务，通过像 Babel 的 `useBuiltIns: usage` 选项，静态分析源代码真的能够引起我们对于 polyfill 思考方式的革命。\n\n### 来自 TC39 的新功能预案和 `core-js` 可能的问题\n\nTC39 一直在努力工作去改进 ECMAScript：你可以通过查看 `core-js` 中实现所有新提案查看进度。然而，我认为有些新的提案功能在 polyfill 或者转译时可能引起严重的问题。关于这个足够可以写一篇新的文章，但是我将尝试在这总结一下我的想法。\n\n#### 标准库提案，stage 1\n\n现在，TC39 考虑给 ECMAScript 增加[内置模块](https://github.com/tc39/proposal-javascript-standard-library)：一个模块化的标准库。它将成为 JavaScript 的最佳补充，而 `core-js` 是它可以被 polyfill 的最佳位置。根据 `@babel/preset-env` 和 `@babel/runtime` 用到的技术，理论上我们可以通过一种简单的方式注入内置模块需要的 polyfill。然而，这个提案的当前版本会导致一些严重问题，这些问题并没有使其简单明了。\n\n内置模块的 polyfill，[根据作者的提案](https://github.com/tc39/proposal-javascript-standard-library/issues/2)，仅仅意味着退回到分层 API 或者 导入 maps。这表明如果原生模块缺失，它将能够通过提供的 url 载入一个polyfill。这绝对不是 polyfill 需要的，并且它与 `core-js` 的架构以及其他流行的 polyfill 都不兼容。导入 maps 不应该是 polyfill 内置模块的唯一方式。\n\n我们通过一个特定前缀使用 ES 模块语法就能够得到内置模块。这个语法在语言的早期版本并没有对等的 - 转译模块不可能在现在浏览器中与未转译的交互 - 这会导致包分发的问题。\n\n更进一步讲，他将异步工作。对于功能检测这是个严重的问题 - 当你要检测一个功能并且加载 polyfill 时脚本不会等待 - 功能检测应该同步的做。\n\n[在没有转译和 polyfill 的情况下第一次实现内置模块](https://developers.google.com/web/updates/2019/03/kv-storage)。如果没有修改，在当前的 `core-js` 格式下内置模块将不可能 polyfill。建议的 polyfill 方式将使开发变得严重复杂。\n\n这个标准库的问题能够通过添加一个新的全局变量解决（这将是最后一个吗？）：一个内置模块的注册表将允许异步的设置和获取，例如：\n\n```js\nStandardLibraryRegistry.get(moduleName);\nStandardLibraryRegistry.set(moduleName, value);\n```\n异步回调，比如分层API应该全局注册表之后使用。\n\n值得一提的是，它将简化将本地模块导入到老的语法的转换。\n\n#### 装饰器提案，新的迭代器语法，stage 2\n\n这个提案中的 [新迭代器](https://github.com/tc39/proposal-decorators)，他被很认真的重做了。装饰器定义不再是语法糖，就像内置模块，我们不能在老版本的语言中编写装饰器并将其用作原生装饰器。除此之外，装饰器不仅仅是普通的标识符 - 他们生活在平行的词汇范围内：这意味着已经编译的装饰器不能和原生装饰器交互。\n\n提案作者建议使用未编译的装饰器发布包，让包的使用者选择去编译他们的依赖。然而，在不同的情况下是不可能的。当他们被添加到 JS 标准库时，这个方法将阻止 `core-js` polyfill 新的内置装饰器。\n\n装饰器应该是在某些东西上应用功能的一种方法，他们应该仅仅是包裹的语法糖。为什么要复杂化呢？\n\n---\n\n如果引入的一个语言功能不是从根本上是新的，在语言的早期版本什么不应该实现是可以选择的，我们能够转译或者 polyfill 它，被转译或者 polyfill 的代码应该能够和支持这个功能的浏览器原生交互。\n\n我希望根据提案作者和委员会的智慧，这些提案能够被采纳，这样才能够合理的转译或者 polyfill 他们。\n\n---\n\n如果你对 `core-js` 项目感兴趣，或者你在你日常工作中使用它，你可以成为 [OpenCollective](https://opencollective.com/core-js#sponsor) 或者 [Patreon](https://www.patreon.com/zloirock) 捐赠者。`core-js` 的背后不是一个公司：他的将来要靠你。\n\n---\n\n[这里](https://github.com/zloirock/core-js/discussions/963) 可以评论这篇文章。\n\n[Denis Pushkarev](https://github.com/zloirock)，2019年3月19日，感谢 [Nicolò Ribaudo](https://github.com/nicolo-ribaudo) 编辑。\n"
  },
  {
    "path": "docs/zh_CN/2023-02-14-so-whats-next.md",
    "content": "<p align=\"center\"><img alt=\"core-js\" src=\"https://user-images.githubusercontent.com/2213682/146607186-8e13ddef-26a4-4ebf-befd-5aac9d77c090.png\" /></p>\n\n# 那么，接下来是什么？（So, what's next?）\n\n##### 翻译：卫剑钒  (微信公众号:man-mind)\n\n嗨，我是(**[@zloirock](https://github.com/zloirock)**)，一个全职开源开发者。我不喜欢写长帖子，但似乎是时候写了。\n\n最初，这篇文章应该是一篇关于开发core-js最新主要版本和关于其路线图的帖子（它被移到了后半部分），然而，由于最近的事件，它变成了一篇关于许多不同事情的长篇帖子......我他妈的累了（I'm fucking tired）。自由和开源软件从根本上被玩坏了。我可以默默地停止做这件事，但我想给开源最后一次机会。\n\n<details>\n<summary><b>🔻 点击查看如何提供帮助 🔻</b></summary>\n\n如果你或你的公司以这样或那样的方式使用`core-js`，并且你对你的供应链质量感兴趣，请支持这个项目:\n\n- [**Open Collective**](https://opencollective.com/core-js)\n- [**Patreon**](https://patreon.com/zloirock)\n- [**Boosty**](https://boosty.to/zloirock)\n- **Bitcoin ( bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz )**\n- [**支付宝**](https://user-images.githubusercontent.com/2213682/219464783-c17ad329-17ce-4795-82a7-f609493345ed.png)\n\n**如果你能在 Web 标准和开源方面提供一份好工作，请写信给我。**\n</details>\n\n\n## 什么是[`core-js`](https://github.com/zloirock/core-js)？\n\n- 它是JavaScript标准库中最受欢迎和最通用的polyfill，它支持最新的ECMAScript标准和提案，从古老的ES5功能到[iterator helpers](https://github.com/tc39/proposal-iterator-helpers))等前沿功能，以及与ECMAScript密切相关的Web平台功能，如structuredClone。\n\n- 它是最复杂、最全面的polyfill项目。在发布这篇文章时，core-js包含大约5000个具有不同复杂程度的polyfill模块，从Object.hasOwn或Array.prototype.at到URL、Promise或Symbol，这些模块旨在协同工作。使用不同的架构，它们每个都可以是一个单独的包——虽然，可能有人并不喜欢这样。\n\n- 它做到了最大程度的模块化——你可以轻松（甚至自动）选择仅加载你将使用的功能。它可以在不污染全局命名空间的情况下使用（有人称这种用例为“ponyfill”）。\n\n- 它专为与工具集成而设计，并为此提供了所需的一切。例如，@babel/preset-env，@babel/transform-runtime，以及类似的SWC功能，这些都是基于core-js的。\n\n- 它是开发人员多年来每天在开发过程中使用现代ECMAScript功能的主要原因之一，但大多数开发人员只是不知道他们之所以有这种可能性，是因为core-js，因为他们间接使用core-js，因为它是由他们的transpilers/框架/中间包（如babel-polyfill）提供的。\n\n- 它不是一个框架或库，开发人员需要了解框架和库的API，定期查看文档，或者至少记住他或她正在使用它。而对于core-js而言，即便开发人员直接使用它——也只是一些导入行或配置中的一些行（在大多数情况下——会配置错误，因为几乎没有人阅读文档），之后，他们忘记了core-js，只是使用由core-js提供的Web标准的功能——但有时这是他们使用最多的JS标准库。\n\n##### 译者注：为了理解本文，读者需要知道`polyfill`的含义。polyfill是填充物的意思，是指在一种材料中填充另一种材料，比如用玻璃胶填充混凝土表面的裂缝，达到光滑平整的效果；再如填充在玩具或沙发中，让被填充物更温暖舒适。在JavaScript 语境中，polyfill意味着用于向旧版浏览器添加其并不支持的JavaScript 新版标准的功能。通常，polyfill 是一种 JavaScript 库或代码，它可以检测当前环境的功能支持，并在缺少的情况下提供相应的实现。\n\n\n[core-js总共有90亿次NPM下载以及每月2.5亿次NPM下载](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-bundle&from=2014-11-18), GitHub上有1900万个仓库依赖它([global](https://github.com/zloirock/core-js/network/dependents?package_id=UGFja2FnZS00ODk5NjgyNDU%3D)和[pure](https://github.com/zloirock/core-js/network/dependents?package_id=UGFja2FnZS00MjYyOTI0Ng%3D%3D)），这是很大的数字，但并不能直观展示core-js的真正传播。让我们用其他方式查看一下。\n\n我写了个[简单的脚本](https://github.com/zloirock/core-js/blob/master/scripts/usage/usage.mjs)，通过Alexa顶级网站列表检查core-js的使用情况。我们可以知道core-js的应用情况（以及各网站所使用的版本）。\n\n<p align=\"center\"><img alt=\"usage\" src=\"https://user-images.githubusercontent.com/2213682/218452738-859e7420-6376-44ec-addd-e91e4bcdec1d.png\" /></p>\n\n在TOP 1000网站上运行这个脚本，**我检测到[52%](https://gist.github.com/zloirock/7ad972bba4b21596a4037ea2d87616f6)的测试网站对core-js的使用情况**。由于每天情况并不太一样（列表、网站等不是常数），结果可能会有百分之几的差异。然而，这只是使用现代浏览器对网站主页的粗略检测，很多使用并没有测出来，**如果手动检查，会发现使用量增加百分之几十**。例如，上面截图中某些网站没有被脚本发现使用了core-js，但去他们主页手工看一下就会发现他们也用了（`请耐心点`，在下面的一系列屏幕截图之后，就没有这么多图片了）：\n\n<p align=\"center\"><img alt=\"whatsapp\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/153953087-8e3891aa-f00a-4882-a338-f4cc7496581b.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"linkedin\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/190879234-30c15dbb-cd5e-4056-8f32-2eac67ef9e89.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"netflix\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/213377001-2af36bac-0577-4e34-a4fc-a49ca06e9f04.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"qq\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/213378031-57496cb0-b6b6-4cc8-9656-f126820db26f.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"ebay\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/213379258-eba54efb-1c65-451a-91af-9f9978ece5a7.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"apple\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/161145359-812efe4c-33c9-4905-96b9-fef23d2d969e.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"fandom\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/218451581-5cae922c-f782-4e44-8385-a443ef0f8232.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"pornhub\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/174662177-5767c34b-f347-4045-96da-5b0783a1345b.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"paypal\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/218453759-d15fc6c4-4246-479d-aea6-b9123ecb59a2.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"binance\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/213380797-70a61338-2152-4642-b0e7-affebe2c3b71.png\" /></p>\n\n---\n<p align=\"center\"><img alt=\"spotify\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/213381068-fb73821f-3cfa-4f37-9096-305587c16ef8.png\" /></p>\n\n**通过这样的手动检查，你可以在前100个网站的75-80%的网站上找到core-js**，而检测脚本只在55-60%的网站上找到它。当然，在较大的样本中，百分比会下降。\n\n[Wappalyzer](https://www.wappalyzer.com/technologies/javascript-libraries/)使用浏览器插件检测一个网站使用的技术（包括core-js），在他们之前的统计数据中，能够看到很有趣的结果，但现在他们的网站上，所有最受欢迎的技术的公开结果，最多也就只显示500万之多。基于Wappalyzer结果的统计[数据](https://almanac.httparchive.org/en/2022/javascript#library-usage)，在800万个移动页面和500万个桌面页面中，有41%和44%显示使用了core-js。[Built With显示前10000个网站中有54%使用了core-js](https://trends.builtwith.com/javascript/core-js)（我不确定其检测的完整性）。\n\n无论如何，我们可以自信地说，**大多数热门网站都在使用core-js**。即使core-js没有在大公司的主要网站上使用，肯定也用在了他们的其他项目上。\n\n还有什么JS库在网站更流行？不是[React](https://trends.builtwith.com/javascript/React)、[Lodash](https://trends.builtwith.com/javascript/lodash)或任何其他人们经常谈及的库或框架，我能确定的只有[“又老又好”的jQuery](https://trends.builtwith.com/javascript/jQuery)。\n\ncore-js不仅仅是在网站的前端——它几乎在所有使用JavaScript的地方——我认为这从来没有被认真统计过。\n\n<p align=\"center\"><img alt=\"github\" src=\"https://user-images.githubusercontent.com/2213682/211223204-ec62ea94-1df8-4a91-a9b2-4e85aef24677.png\" /></p>\n\n然而，由于上述原因，**[几乎没有人记得他或她使用了core-js](https://2022.stateofjs.com/en-US/other-tools)**。\n\n我为什么要发表此文？不是为了展示我有多酷，而是为了展示一切有多糟糕。请继续读。\n\n---\n\n## 让我们从一张流行的xkcd图片开始下一部分\n\n[<p align=\"center\"><img alt=\"xkcd\" src=\"https://user-images.githubusercontent.com/2213682/113476934-c70f0900-94a8-11eb-8723-d080f129a449.png\" /></p>](https://xkcd.com/2347/)\n\n##### 译者注：图片来自：https://xkcd.com/2347/\n\n### 缘起\n\n2012年，我把我的开发栈切换到了全栈JavaScript。当时JavaScript仍然太原始——IE仍然比其他任何东西都更受欢迎，ES3时代的浏览器仍然占据了Web的主要部分，最新的NodeJS版本是0.7——它才刚刚开始。JavaScript 仍然不适用于编写严肃的应用程序，开发人员用 CoffeeScript 语言转译器，解决了JavaScript所缺乏的语法糖问题，用 Underscore 等解决了 Javascript 缺乏标准库的问题。 然而，他们并不是标准，随着时间的推移，这些语言和库连同使用它们的项目一起过时了。因此，我满怀希望地期待即将到来的ECMAScript Harmony 6标准。\n\n旧 JavaScript 引擎仍然流行，用户并不着急，还没有什么机会放弃它们，即使新的 ECMAScript 标准有着快速和可靠的优点，想让 JavaScript 引擎支持这个新标准，也要等很多年。但可以使用一些工具尝试使用新标准，让转译器（这个词不像现在这么流行）和标准库来解决语法和 polyfill 的问题。当时，这些工具包才刚刚出现。\n\n那时，ECMAScript 转译器开始流行并发展迅速。而与此同时，polyfill 几乎没有根据用户和实际项目的需求而发展。它们不是模块化的，并可能带来全局命名空间污染——它们不适合做库。它们不是单一复合体——而是需要用多个来自不同作者的不同的 polyfill 库，并以某种方式使它们工作在一起——在某些情况下，这几乎是不可能的。太多必要的基本语言功能都还没有实现。\n\n为了解决这些问题，2012年底，我开始研究一个后来被称为core-js的项目，一开始仅仅是为了我自己的需要。为了让所有JS开发人员的生活更轻松，2014年11月，我开源发布了core-js。**也许这是我一生中最大的错误。**\n\n由于我不是唯一一个面临这些问题的人，几个月后，core-js已经成为JavaScript标准库polyfill的事实标准。core-js被集成到Babel（当时叫`6to5`）中，它在core-js发布前几个月就出现了——上面谈及的一些问题也是该项目所致力解决的。core-js开始作为`6to5/polyfill`分发，后来更名为babel-polyfill。经过几个月的合作、品牌重塑和演化后，babel-runtime出现了，又几个月后，core-js被集成到其关键框架中。\n\n### 保障整个Web的兼容性\n\n**我没有宣传自己，也没有宣传这个项目。这是第二个错误。** core-js没有网站或社交媒体帐户，只有GitHub。我没有在会议上谈论它。我几乎没有写任何关于它的帖子。我只是在制作一个非常有用的东西，并使之成为现代开发栈的一部分，对此我很高兴。我给了开发人员一个机会，让他们使用最现代和真正必要的JavaScript功能，而不需要等待多年（等它们在所有引擎中实现），并且无需考虑兼容性和错误。人们开始使用它，项目的传播呈指数级增长，很快，它已经在百分之几十的热门网站上使用。\n\n##### `译者注：注意，上面这段是作者最后悔的部分。`\n\n然而，这只是所需工作的开始，之后跟随的是常年的辛勤工作。我几乎每天都花几个小时在core-js和相关项目（主要是Babel和[compat-table](https://kangax.github.io/compat-table/es2016plus/)）的维护上。\n\n![github](https://user-images.githubusercontent.com/2213682/218516268-6ec765a5-50df-4d45-971f-3c3fc4aba7a1.png)\n\ncore-js不是一个只有几十行代码的库，这种库你写完就可以忘掉它。与绝大多数库不同，它与Web的状态息息相关。它对JavaScript标准或提案的任何更改、任何JS引擎新发布、任何JS引擎中新的bug要做出反应。ECMAScript ~~6~~ 2015之后跟着的是新提案、新版本的ECMAScript、新的非ECMAScript Web标准、新引擎和新工具等。项目的演变、改进以及对Web当前状态的适配从未停止过——几乎所有这些工作，对普通用户来说，仍然是看不见的。\n\n越来越多的工作需要我做。\n\n长期以来，我试图以不同的方式为core-js找到维护者或至少是持续的贡献者，但所有尝试都失败了。几乎每个JS开发人员都间接使用core-js，他们知道babel-polyfill、babel-runtime，他们知道自己所用的框架里已经polyfill了所必需的功能，但几乎没有人知道core-js。在一些提到core-js的关于polyfill的帖子中，它被称为“`一个小库`”。这不是一个时髦的被广泛讨论的项目，如果它做得很好，为什么要帮助维护它呢？随着时间的推移，我失去了希望，但我觉得我对社区有责任，所以我被迫继续独自工作。\n\n几年后，全职工作和`FOSS`（`译者注：FOSS即自由和开放源码软件`）几乎变得不可能——没有人愿意为你在工作时间致力于FOSS而付钱，仅仅用非工作时间是不够的，有时，core-js需要完全沉浸式的开发，而且是几周的时间。我认为社区需要适当的polyfill，而钱并不是我的第一任务。\n\n我辞去了一份高薪工作，并且拒绝了一些非常好的职位选择，因为在这些职位上，我不能投入足够的时间从事开源。我开始全职从事开源工作，没有人给我付钱。我希望或早或晚，我能找到一份可以完全致力于开源和Web标准的工作。我定期通过短期合同赚取在FOSS上生活和工作所需的钱。我回到了俄罗斯，在那里可以用相对较少的钱获得体面的生活水准。**我又犯了一个错——正如你将在下面看到的，钱其实很重要。**\n\n---\n\n直到2019年4月，大约一年半时间，我没有分心干任何别的，我把所有时间都致力于core-js@3，[并从根本上改进了Babel的polyfill工具](https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md)，这是工具集（toolkit）生成的基础，现在几乎到处都在使用。\n\n## 事故\n\n坏事发生在core-js@3发布3周后。一个四月的晚上，凌晨3点，我开车回家。两个穿着深色衣服的醉酒的18岁女孩决定以**爬**的方式穿过一条光线很差的高速公路——其中一个躺在路上，另一个坐着并拽着第一个，她们并不在人行道上——而是直接在我的车轮下。目击者就是这么说的。我绝对没有机会看到他们。还有一名目击者说，在事故发生之前，她们只是在路上开玩笑地打闹。这并没什么不寻常，这是俄罗斯。其中一个女孩死了，另一个女孩进了医院。然而，即使在这种情况下，根据俄罗斯的仲裁惯例，如果司机不是议员或类似什么人的儿子，他几乎总是被判有罪——他必须要看到并预测一切，行人不负任何责任。我可能会在监狱里呆很长时间，如果我没有记错，检察官要求判我7年。\n\n不入狱的唯一方法是与“受害者”和解——这是此类事故后的标准做法——并且还要有一名好律师。在事故发生后的几周内，我收到了“受害者”亲属当时以汇率计算的总额约为8万美元的资金索赔。律师也需要一大笔钱。\n\n对于一个好的软件工程师来说，也许这不是一笔不可思议的钱，但是，正如我上面所写的，我长期全职在core-js@3版本上工作。没有人为这项工作付钱给我，我之前就已经花尽了所有的财务储备，所以，我没有那么多钱，也没有办法找到所需的钱。我的时间不多了。\n\n## 筹钱\n\n那时，core-js的使用几乎和现在一样广泛。正如我上面所写，我为core-js寻找了很长时间的贡献者，但没有任何成功。然而，core-js是一个应该积极维护的项目，它不能一直冻结。我的长期监禁不仅会给我带来问题——而且也会给core-js带来死亡，给每个使用它的人带来问题——有一半的Web都在用它。考虑一下令人头疼的[公交车因素](https://en.wikipedia.org/wiki/Bus_factor)。\n\n##### 译者注：`公交车因素`是指这样的问题：一个项目里的关键人员如果突然被公交车撞了，项目会怎么样？\n\n在事件发生几个月前，我开始筹集资金来支持core-js开发（主要发布在GitHub的README中和NPM上）。结果是......57美元/月。这就是全职工作以确保整个Web兼容性的“合理回报”。\n\n于是我决定做一个小实验——向core-js用户寻求帮助——如果没人维护core-js，他们将首先遭受痛苦。我在core-js安装后添加了一条消息：\n\n![postinstall](https://user-images.githubusercontent.com/2213682/153024428-28b8102c-ce08-461c-af99-d0417dc7d2cd.png)\n\n##### 译者注：上面这段提示主要是向用户请求资金捐助，给出了两个捐助网站，并在最后一句说：“core-js的作者正在找一个好工作。”\n\n我知道我无法从捐款中获得所需的钱，但是，每一美元都很重要。我添加了一条求职消息，以便有机会获得捐赠之外的钱。我想，NPM安装日志中的几行帮助请求（如果需要，可以隐藏）是可以接受的。我最初想的是在几周内删除这条消息，但一切都偏离了计划。**我对人的看法是有多错......**\n\n### 恨\n\n当然，我知道有人不希望在他们的控制台中看到帮助请求，但我收到的恨意简直淹没了我的房顶，每天有数百条消息、帖子和评论，都在表达他们的恨意。所有这些都可以简化为：\n\n<p align=\"center\"><img alt=\"get-rid\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/154875165-2b144651-5769-4f8e-9072-3a1a03bfe164.png\" /></p>\n\n##### 译者注：标题翻译：让这个SB zloirock和他的core-js库去死吧\n\n这远远不是我所见过的最搞笑的事——如果我愿意，我能收集到[大量这种风格的“恨开源”评论](https://github.com/samdark/opensource-hate)——但我不会这样，我的生活中已经足够多负面东西了。\n\n**开发人员喜欢使用免费的开源软件——免费，效果好。他们对背后数千小时的开发不感兴趣，他们对项目背后那个真人的问题和需求不感兴趣。他们认为，提及这些就是对他们个人空间的侵犯，甚至是对他们个人的冒犯。对他们来说，这些开源项目，就是一些齿轮，应该自动耦合，不应该有任何噪音，也不应该要他们参与。**\n\n因此，成千上万的开发人员侮辱我，并声称我无权向他们寻求任何形式的帮助。我的帮助请求如此冒犯了他们，以至于他们开始要求限制我对仓库和包的访问，并要求将它们转移到其他人那里，就像曾经对[left-pad](https://arstechnica.com/information-technology/2016/03/rage-quit-coder-unpublished-17-lines-of-javascript-and-broke-the-internet/)那样。他们中几乎没有人了解core-js的作用和规模，当然，也没有人想维护它——它应该由“社区”和其他人来维护。我看到所有这些仇恨，为了不被他们影响，我没有删除安装包的请求帮助信息，本来我只想让它存在几周。\n\n**求助于那些用core-js赚大钱的大公司？那可几乎是每家大公司。让我们稍微改一下这条[旧推文](https://twitter.com/AdamRackis/status/931195056479965185)：**\n\n> 公司：“我们想使用SQL Server 企业版”\n\n> MS：“这需要25万美元+2万美元/月”\n\n> 公司：“好的！”\n\n> ...\n\n> 公司：“我们想使用core-js”\n\n>  core-js：“简单，执行npm i core-js 就可以了”\n\n> 公司：“酷！”\n\n> core-js：“你想在经济上做出贡献吗？”\n\n> 公司：“哈哈，不”\n\n##### 译者注：这条旧推文是@AdamRackis于2017年11月17日发布的，里面原先写的是Babel，在此文中改为core-js\n\n几个月后，厌倦了用户的投诉，NPM推出了[npm fund](https://docs.npmjs.com/cli/v6/commands/npm-fund)——这不是解决问题的办法，这只是摆脱这些投诉的一种方式。你多久会敲一下npm fund？你多久会向npm fund中的人捐款？你会先看到谁并支持他？是core-js还是维护着十几个单行库（并且相互依赖）的人？npm fund为NPM的未来步骤提供了完美的理由（请往下阅读）。\n\n在9个月内，数千名开发人员，包括重度依赖core-js的项目开发人员，了解了我的状况——但没有人提出要维护core-js。几个月内，我与一些依赖core-js的重要项目的维护人员进行了交谈，但没有取得任何成功——他们没有必要的时间资源。因此，我不得不要求一些与FOSS社区无关的朋友（起初是[@slowcheetah](https://github.com/slowcheetah)，感谢他的帮助）替代我，至少尝试解决那些比较重大的issue，在我重获自由之前。\n\n---\n\n有个别用户和小公司支持了core-js——我非常感谢他们。然而，9个月内筹集的资金仅为所需资金的1/4左右，你们知道，我需要8万美元解决困境，而且应该是在几周之内。\n\n就在这段时间，不管怎么样，每天core-js的下载量几乎翻了一番。\n\n2020年1月，我进了监狱。\n\n### 出狱\n\n我不想说太多关于监狱的事，我也不想记住那些。那是在一家化工厂的奴隶般劳动，在那里我的健康严重受损，我24/7和毒贩、小偷和杀手们在一起，共渡了难忘的时光，而且，还无法访问互联网和计算机。\n\n大约10个月后，我被提前释放了。\n\n---\n\n我看到了数十篇文章、数百篇帖子和数千条评论，其中许多评论的本质，大概就是这样的：\n\n<p align=\"center\"><img alt=\"reddit\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/218419779-d61c9e39-c8c1-412b-83aa-eb1b12d2e760.png\" /></p>\n\n##### 译者注：上面这段话的翻译：这家伙是个大混蛋。他绝对是我在 Github 上遇到的最糟糕的维护者，无人能及。不知道他因什么进了监狱，但我很高兴看到他离开这里。\n\n他们到底认为我做错了什么？是的，我犯了上面所说错。我看到一些人支持开发core-js，看到许多issue，问题和消息——但比那些恶评要少。与此同时，core-js变得更受欢迎，已经达到了和现在一样的使用比例。\n\n### 继续，保障整个Web的兼容性\n\n出狱后，我像以前一样回到了core-js维护。而且，我完全不再被合同和任何其他工作分散注意力，我只是在core-js上工作。core-js在融资平台上有一些钱——虽然不多，比我全职从事core-js之前收到的少很多倍——但对我来说，这足以维持生活。**这是一种降级。我全职开源，为了让世界变得更美好......**我不考虑事故遗留下来的数万美元的诉讼，我也不考虑我的未来，我只是想Web有更美好的未来。当然，我希望一些公司能给我提供一个职位，让我有机会从事Web标准工作，并赞助我在polyfill和FOSS方面的工作。\n\n在接下来的两年里，[我在core-js工作方面取得了很多成就](https://github.com/zloirock/core-js/compare/0943d43e98aca9ea7b23cdd23ab8b7f3901d04f1...master)，几乎和前8年一样多。仍然是core-js@3——但要好得多。然而，changelog以及之前的diff只反映了一小部分已完成的工作。**几乎所有的工作都在暗处，普通用户看不到。**\n\n这些工作包括JS标准和建议方面的基本工作，作为它的连带后果，考虑到我的辛勤工作，以及我反馈和建议后的变化，我认为一些ECMAScript提案——许多已成为语言一部分——是我的成就，也是提案拥护者的成就；这些工作包括core-js和引擎及其错误跟踪器的调错工作；这些工作包括在数百乃至数千个环境中持续自动或手动/构建/测试以确保标准库在任何地方的正常运行并收集兼容数据。core-js兼容数据，从一开始仅仅是几天内制作的原型，变成了一个具有外部和内部工具的详尽数据集；这些工作包括对项目中正在开发的许多功能的设计和原型制作；这些工作还有更多，更多。\n\n---\n\n如上所述，core-js存在于大多数流行的网站中，它提供了一个几乎完整的JavaScript标准库，并修复了不正确的实现。使用core-js打开的网页多于Safari和Firefox打开的网页。因此，从某种角度来看，core-js可以被称为最受欢迎的JavaScript运行时之一。\n\n在开发core-js时，我是几乎所有现代和未来JavaScript标准库功能的第一个实现者，几乎所有功能都有我的反馈，并根据这些功能进行了修复。core-js是实验ECMAScript提案的最佳场地。在非常多的情况下，提案收到的反馈，都是用户在尝试了提案的实验性core-js之后提交的。\n\nJavaScript的最佳前进方式是TC39和core-js的合作。TC39邀请Babel等项目的成员担任专家，却不找我。我经常看到TC39成员忽视我或core-js，甚至故意制造障碍，他们甚至毫不避讳这点：\n\n##### 译者注：TC39则是ECMA为ES专门组织的技术委员会（Technical Committee），39这个数字用来标记旗下的技术委员会。TC39的成员由各个主流浏览器厂商的代表构成。\n\n\n<p align=\"center\"><img alt=\"shu\" width=\"600\" src=\"https://user-images.githubusercontent.com/2213682/140033052-46e53b0c-e1bc-4c84-a1f4-3511d7de604a.png\" /></p>\n\n##### 上图文字翻译：真正的困难是我现在拒绝与core-js的作者接触\n\n---\n\n<p align=\"center\"><img alt=\"lj\" width=\"800\" src=\"https://user-images.githubusercontent.com/2213682/217476089-604b1629-73a8-4715-9276-a601004f0947.png\" /></p>\n\n##### 上图文字翻译：polyfill从来没有也从来不会决定提案如何运作，所以我不知道为什么这个问题一直被提起。\n\n---\n\n一段时间后，NPM表达了它的“支持”。在2020年底发布的npm@7中，作为npm fund的逻辑延续，控制台禁用了安装后脚本（post-install scripts）的输出。结果是可以预期的，人们不再能看到资金请求，同时，几乎没有人使用npm fund，所以core-js赞助者的数量开始下降。NPM可真够“支持”我的，它不仅通过分发我的作品来赚钱，而且它自己也在用core-js :-)\n\n<p align=\"center\"><img alt=\"npm\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/218333796-18bee93f-64e7-4257-8ddd-d16fc4f05989.png\" /></p>\n\n##### 译者注：这张图表明了NPM网站也在用core-js\n\n此外，另一个因素也在发挥作用。“`质量越高，支持越少`”，这个库维护得很好吗？几乎没有什么处于打开状态的错误报告吧？当有错误时，会立即得到修复吗？这库给了我们几乎所有想要的东西了吧？是吧？那么，我们为什么要支持这个库的维护呢？支持维护者的成本不会停留在表面——对于大多数开发人员和公司来说，它仍然只是“`一个小库`”。许多以前还赞助core-js的人，后来都停止了。\n\ncore-js代码包含我的版权。正如你在这篇文章前面看到的，core-js出现在大约一半的网站上。经常性地，有人在有害网站或应用的源代码中发现它——他们不知道什么是core-js，他们的技术水平甚至不足以发现它。当这种情况发生时，警察会打电话威胁我，甚至有人试图勒索我。大多数时候，这一点都不好笑。\n\n美国和加拿大记者多次联系我，因为他们在美国新闻和政府网站上发现了core-js。当他们弄明白的时候，他们非常失望，失望于我不是一个干涉美国选举的邪恶的俄罗斯黑客。\n\n无休止的仇恨流随着时间的推移略有减少，但仍然有。大部分内容从GitHub issues或Twitter Threads转移到我的邮件或IM。今天，一位开发人员给我写了一条消息，他称我是开发人员社区的寄生虫，说我的core-js到处蔓延传播，没有一点屁用，但却赚了很多钱。他称我和[Hans Reiser](https://en.wikipedia.org/wiki/Hans_Reiser)是同样的杀人犯，买通了法官，逃脱了惩罚。他希望我和我所有的亲戚都死。这没有什么不寻常的，我每个月都会收到几条这样的消息。去年，又补充了一种，说我是一个“俄罗斯法西斯主义者”。\n\n### 关于战争说几句\n\n**开源应该脱离政治。**\n\n我不想在两种邪恶之间做出选择。我不会对此发表更详细的评论，边境两边都有我身边的人，他们可能会因此而受罪。\n\n让我提醒你我上面写过的内容：我回到了俄罗斯，因为在那里，可以用相对较少的钱获得体面的生活水平，并专注于FOSS，而不是赚钱。现在我不能离开俄罗斯，因为在事故发生后，我有数万美元的未决诉讼，在还清它们之前，我被禁止离开这个国家。\n\n\n### 你猜猜core-js每个月能收到多少钱？\n\n当我开始全职维护core-js时，没有被合同和任何其他工作分心，**我每月收到的钱大约为2500美元——比我通常的全职工作少4～5倍。**记住，这是一种降级，为了让Web变得更好，为了让issues和bugs减少到零，为了制作最高质量的产品，这可是几乎每个人都在用的东西......项目将得到足够多的赞助，对吧？对吧？\n\n几个月后，每月收入**下降到约1700美元**（至少我觉得是这么多），通过Tidelift是1000美元，通过Open Collective是600美元，通过Patreon是100美元。除了订阅式的每月捐款，还会有一些一次性捐款（平均每月可能为100美元）。\n\nCrypto？通过加密钱包请求捐款是很流行的。然而，一直以来，加密钱包上只收到了2笔总额约为200美元的转账，最后一次是在一年多前。GitHub赞助商？它在俄罗斯不可用，所以从来没有过。PayPal？这是禁止俄罗斯人使用的，当它可用时，core-js在这段时间里收到了大约60美元。补助金？我申请了很多补助金——所有申请都被忽略了。\n\n**在这些捐赠中，[Bower](https://bower.io/)作为另一个FOSS社区，提供了主要部分：每月400美元。我也非常感谢[所有其他赞助商](https://opencollective.com/core-js#section-contributors)：由于您的捐款，我仍在为这个项目工作。**\n\n然而，在这个列表中，没有一家大公司，或者至少没有一家是前1000名网站列表中的公司。老实说，目前支持者名单上主要是个人，少数是小公司，他们每月支付几美元。\n\n如果有人说他们不知道core-js需要资金......拜托，我经常看到[这样的表情包](https://www.reddit.com/r/ProgrammerHumor/comments/fbfb2o/thank_you_for_using_corejs/)：\n\n<p align=\"center\"><img alt=\"sanders\" width=\"400\" src=\"https://user-images.githubusercontent.com/2213682/218325687-08d58543-4b88-4a39-a0de-420bd325450f.png\" /></p>\n\n#####译者注：此图来自reddit网站的r/ programmerHumor版块，用来讽刺作者在core-js安装后请求捐款。\n\n---\n\n一年前，Tidelift不再给我寄钱了。他们说，由于政治局势，他们使用的Hyperwallet不再供俄罗斯人使用（但上个月我试图更新一些个人数据时，它又可以使用了），为了安全起见，他们会把我的钱存放在他们那边。在过去的几个月里，我试图把这笔钱存入银行或Hyperwallet账户，但收到回复说，他们会尝试做些事情（听起来很棒，不是吗？）。去年年底以来，他们干脆停止回复电子邮件。现在，我只有这个：\n\n![tidelift](https://user-images.githubusercontent.com/2213682/217650273-548d123d-4ee4-4beb-ad5b-631c55e612a6.png)\n\n##### 信件主要内容翻译：Denis你好，对于延误回复深表歉意。不幸的是，如果您在Hyperwallet中的账户被冻结，我们将无法向您付款，因此我们将终止您和我们之间的协议并立即生效。如果您能够解冻您的Hyperwallet帐户，请告诉我们，我们可以重新建立关系。（这是Tidelift给core-js作者Denis的邮件）\n\n**Tidelift以如此有趣的方式，让我知道我的收入减少了，今年我的工作收入不是每月1800美元，而是每月800美元。**当然，没有对后续电子邮件的回复。然而，他们的网站显示，我仍然在收到钱。\n\n<p align=\"center\"><img alt=\"tidelift\" width=\"500\" src=\"https://user-images.githubusercontent.com/2213682/218159794-1ea53543-a8ff-463a-ad36-dc900a34b7c8.png\" /></p>\n\n##### 译者注：从截图中可以看出，同样地，Tidelift网站也使用了core-js\n\n我想知道，通过这个网站支持其供应链的公司，对这种骗局将如何反应。\n\n---\n\n同一天，在OpenCollective上，我看到每月订阅的捐赠从大约600美元减少到大约300美元。显然，Bower的财务储备已经耗尽了。**`这意味着这个月我总共会得到大约400美元。`**\n\n在之前的几个月里，我测量了在core-js上工作需要多少时间。结果大约是......**每月250小时**——远远超过连休息日都没有的全职工作的时长，这使得我不可能有“真正的”全职工作或者为任何合同工作。250小时400美元......**每小时工作的报酬不到2美元，前一年多一点：每小时4美元。**是的，几个月来，我确实花了更少的时间在这个项目上，但没有太大变化。\n\n这就是确保整个Web兼容性的当前价格。加上没有保险或社会保障。\n\n**收入增长和职业发展都很棒，对吧？**\n\n##### 译者注：注意在本文中，denis经常使用反讽手法。\n\n我想你很了解主要IT公司的高级软件工程师的报酬是多少。我收到了许多类似的报价，然而，它们与core-js的正确工作不兼容。\n\n在经常受到的威胁、指责、命令和侮辱中，我经常会得到类似“停止乞讨，去工作，你这个懒惰的人。立即删除你的乞讨信息——我不想看到它们。”有趣的是，至少其中一些人每年获得超过30万美元（我很确信这点，因为我与他们的同事交谈过），而（由于他们的工作性质）core-js每月为他们节省了许多小时的工作。\n\n\n### 一切都改变了\n\n当我开始研究core-js时，我独自一人。现在我有一个家庭了。一年多前，我成了我儿子的父亲。现在我必须为他提供体面的生活水平。\n\n![son](https://user-images.githubusercontent.com/2213682/208297825-7f98a8e2-088e-47d3-95a6-a853077296b3.png)\n\n我有一个妻子，有时她想要一双新鞋，或一个包，或一个新的iPhone，或一个Apple Watch。我的父母已经到了需要我有力支持他们的年龄。\n\n很明显，我不可能用我从core-js维护中获得的钱来正常地支持一个家庭，我的财政状况走到头了。\n\n我越来越经常听到这样的责备：“放弃你的开源，你这是纵容自己，请回到正常的工作。谁谁谁只做了一年程序员，他对开源几乎一无所知，他每天只工作几个小时，已经赚的是你的好几倍。”\n\n# 没有了\n\n我他妈的累了（I'm damn tired. ）。我喜欢开源和core-js。但我这样做是为了谁，为了什么？让我们总结一下上述内容。\n\n- 自2014年以来，我一直在确保零兼容性问题，我为Web世界提供web平台的前沿功能；我大部分时间都在为此而工作，而我所赚的钱甚至不足以购买食物。\n- 我看不到任何感激之情，而是来自开发人员的巨大仇恨，我可简化了他们的生活啊。\n- 通过使用core-js而节省并赚取数百万美元的公司，所做的只是忽略core-js的资金请求。\n- 即便在我危急的情况下，在面对我的请求时，他们中的大多数，不是帮助，而是忽视或憎恨。\n- 那些标准开发人员和浏览器开发人员，不是和我合作以共同致力于JavaScript的美好未来，而是给我设置障碍，逼得我和他们斗争。\n\n---\n\n恨我的人，我并不在乎。如果我在乎，我早就离开开源了。\n\n我可以容忍与标准开发人员缺乏正常的互动。这意味着用户将来会遇到问题，而且，当 Web 崩溃时，标准开发人员自己也会遇到问题。\n\n\n\n\n**不管怎样，钱很重要。**我已经受够了以牺牲我和家人的福祉为代价而资助公司。我应该有能力确保我的家人、我的儿子有一个光明的未来。\n\ncore-js的工作几乎占据了我所有的时间，超过了全职工作日的时间。这项工作确保了大多数热门网站的正常运行，这项工作应该得到适当的报酬。我不会继续免费工作，也不会以每小时2美元的价格工作。我愿意继续以每小时至少80美元的价格为项目工作。[这正是eslint团队成员的收费标准](https://eslint.org/blog/2022/02/paying-contributors-sponsoring-projects/#paying-team-members-per-hour)。如果开源工作需要，我准备还清我的诉讼并离开俄罗斯——虽然，这并不便宜。\n\n---\n\n我经常看到这样的评论：\n\n<p align=\"center\"><img alt=\"core-js approach\" width=\"600\" src=\"https://user-images.githubusercontent.com/2213682/136879465-88b3d349-6a1a-442e-bb78-fb20916a4679.png\" /></p>\n\n##### 图片内容翻译：Zach Leatherman说：“认真想想这个：如果有人试图勒索开源怎么办：‘这个项目需要每月____美元的捐款，否则将停止维护，没有更新，没有bug修复或安全补丁。这是个很好的项目——如果它发生了什么事，那真是太遗憾了。’”Matt Mink说：“听起来core-js就是这么干的。”\n\n好的，伙计们，如果你们想要这个——我就给你这个。\n\n---\n\n**根据你们的反馈，core-js将很快实施以下方式之一：**\n\n- **给我适当的资金支持**\n\n  我希望，至少在阅读了这篇文章后，大企业、小公司和开发人员会考虑其开发栈的可持续性，并适当地支持core-js开发。在这种情况下，core-js将得到适当的维护，我将能够专注于添加新的功能。\n\n  我现在的工作规模已经达到了顶峰，我一个人已经不能支撑了——我在体力上已经不能继续。一些工作，比如改善测试覆盖范围或文档，这不难，但需要很多时间，这不是志愿者想做的那种工作——我不记得有任何PR是关于改进现有功能的测试覆盖范围的。因此，在付费的基础上吸引至少一两个开发人员（至少是学生，当然最好有更高水平）是有意义的。\n\n  考虑到其他维护人员的参与和其他费用，我认为目前每月大约3万美元就足够了。更多的钱，就会有更好的产品、更快的开发、更少的时间。我一个全职工作在core-js上当然可以，但不像团队那样有成效。\n\n- **我被一家公司雇用，在那里我将能够从事开源和Web标准的工作**\n\n  这将给我继续工作所需的资源。\n\n- **core-js将会成为一个商业项目，如果得不到适当的用户支持**\n\n  以当前的core-js包创建商业模式是有问题的，因此新的core-js版本很可能会改变许可证。免费版本的功能将受到限制，所有额外的功能都将付费。core-js将继续发展，在该项目范围内，将创建许多新工具以确保Web兼容性。当然，这将大大减少core-js的传播，并将给许多开发人员带来问题，然而，即使是一些付费客户也足够了，我的家人将有钱支付账单。\n\n- **core-js缓慢的死亡，如果你们并不需要它**\n\n  我对商业项目有很多想法，我有很多好的工作机会——所有这些都需要时间，而我把时间都给了core-js维护。这并不意味着我会立即完全停止维护core-js，我只会按捐款金额的多少，来决定我干多少。如果它们处于当前水平，那我每月只会干几个小时，而不是像现在这样数投入百个小时。该项目将停止增长——也许小错误将被修复，兼容性数据将被更新——但不会更多了。一段时间后，core-js将变得毫无用处，并会死亡。\n\n**我仍然希望是第一种结果，因为core-js是现代数字基础设施的关键组成部分之一，但看看现在和过去，我正在为其他选择做准备。**\n\n## 我提前回答一些我经常看到的愤怒的评论，这些评论肯定会在这篇文章之后出现：\n\n- **没问题，我们会固定依赖core-js的某个版本（pin the core-js dependency）。**\n\n  与大多数项目不同，core-js应该保持跟上最新前沿（bleeding edge），最新的core-js能让你使用最新的JavaScript技术，而不用考虑引擎的兼容性和错误。你可以固定在某个core-js版本，也许头一年或两年，你不会遇到严重的问题。之后，问题就出现了——你用的polyfill会变得过时，但仍然存在于你的捆绑包中，变成一个无用的压舱石。你将无法使用JS语言的新功能，并将在JS引擎中面对新错误。\n\n- **这是开源的，我们将分叉（fork）它，滚开。**\n\n  我经常看到这样的评论，有人甚至试图用分叉吓唬我。我已经说过太多次了，**如果有人能分叉并正确维护core-js，我会很高兴**——在没有人维护的情况下，分叉有什么意义呢。现在我根本没有看到任何人试图为core-js添加一些重要的东西，或者至少定期做出贡献。项目应该跟进每个新的JavaScript引擎版本，更新兼容性数据，修复或至少考虑每个引擎的每个新错误（无论多大的错误），查看并实现每个可能的新的JavaScript功能，最大限度地正确执行，测试并考虑每个现代引擎或老引擎的每个版本的具体细节。这是一项艰苦的工作，你准备好了吗，并且有所需的知识和时间吗？举个例子，当我在监狱里时，Babel说他们搞不定：\n\n  <p align=\"center\"><img alt=\"babel\" width=\"800\" src=\"https://user-images.githubusercontent.com/2213682/154870832-36318fdd-c5a0-45ce-aaed-2d50371a2976.png\" /></p>\n\n\n##### 图片文字翻译：nicolo-ribaudo在2020年3月15日说：“我是Babel的维护者，我们大概率不会fork core-js，因为我们没有足够的资源维护它。”\n\n- **我们不需要core-js，有许多替代项目可用。**\n\n  我没有抱着你不放。你说的替代品在哪里？当然，core-js不是JavaScript标准库的唯一polyfill，但所有其他项目的使用率都比core-js少[几十](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=es6-shim&from=2014-11-18)[倍](https://user-images.githubusercontent.com/2213682/205467964-2dfcce78-5cdf-4f4f-b0d6-e37c02e1bf01.png)，这并不奇怪——所有这些项目都只提供了core-js功能的一小部分，它们不够合适和复杂，它们可使用的场景非常有限，它们不能以如此简单的方式正确集成到你的项目中，并且还存在很多严重问题。如果真的有合适的替代品，我早就停止在core-js上工作了。\n\n- **我们可以放弃IE支持，所以我们不再需要polyfill。**\n\n  正如我在上面写的那样，我没有抱着你。在某些情况下，真的不需要polyfill，你可以不用它们，但IE只是一小部分问题——即便在IE时代也是这样。当然，你不用IE的话，polyfill不会给你带来在IE8中支持ES6这样的功能。但即使是最现代的引擎，也没有实现最现代的JavaScript功能。即使是最现代的引擎，也有错误。你确定你和你的团队完全了解你们应用所支持的所有引擎的所有限制，并且可以绕过它们吗？我有时都会忘记一些很怪的地方和缺失的特性。\n\n- **你是个混蛋，我们会把你从FOSS社区中开除。**\n\n  是的，你是对的。我真是个混蛋，让你有机会在现实生活中使用现代JavaScript功能，我这个混蛋多年来一直在解决你的跨引擎兼容性问题，并且比任何人都为此做出了更多的牺牲。我真是个混蛋，只想让他的儿子吃饱，只希望他的家人有足够的钱来支付账单，我这个混蛋的家人不应该需要任何东西。上面我说的，可能真的会让我离开FOSS而拥抱商业，让我们拭目以待吧。\n\n---\n\n现在，让我们从负面因素转到这篇文章的后半部分，我们将讨论如何让core-js做的更好以及polyfill的一般性问题。\n\n# 路线图\n\nJavaScript、浏览器和Web开发正在以惊人的速度发展。所有浏览器需要所有core-js模块的时代已经一去不复返了。最新的浏览器具有良好的标准支持，在常见的用例中，它们只需要一定比例的core-js模块来提供最新的语言功能和错误修复。一些公司已经放弃了对最近再次“埋葬”的IE11的支持。然而，即使没有IE，旧浏览器也会一直存在，现代浏览器中也会发生错误，新的语言功能将定期出现，无论如何，它们都会延迟出现在浏览器中；因此，如果我们想在开发中使用现代JS并尽量减少可能的问题，polyfill会长期留在我们身边，它们应该继续发展。\n\n在这里，我将（几乎）不写任何关于添加新的或改进现有特定polyfill的内容（当然，这是core-js开发的主要部分之一），让我们谈谈其他一些关键事情，而不关注小事。如果决定将core-js做成商业项目，路线图是应该讨论的。\n\n我正试图保持core-js尽可能紧凑，它应该遵循的主要原则是在现代Web中发挥最大作用——客户端不应加载任何不必要的polyfill，polyfill应该最大限度地紧凑和优化。当前，最大的core-js（针对早期提案）捆绑大小[约为220KB缩小，压缩后70KB](https://bundlephobia.com/package/core-js)——它不是一个小包，它挺大——它就像jQuery、LoDash、Axios加起来一样大——原因是该包几乎涵盖了该语言的整个标准库。core-js每个组件的大小比同类可用替代品的大小少若干倍。你可以只加载所使用的core-js功能，在最小情况下，捆绑大小可以减少到几K；正确使用时，通常是几十K——然而，还有一些东西需要考虑，[大多数页面包含比整个core-js捆绑包更大的图片](https://almanac.httparchive.org/en/2022/media#bytesizes)，大多数用户的互联网速度为几十Mbps，那么为什么还要这么关注core-js的大小？\n\n我不想详细重复关于[“JavaScript的成本”](https://medium.com/dev-channel/the-cost-of-javascript-84009f51e99e)这种旧帖子，在那里你可以阅读为什么添加JS会增加用户开始与页面交互的时间，而不是添加类似大小的图片——它不仅是下载，它还解析、编译、评估脚本，它阻止了页面渲染。\n\n\n在太多地方，移动互联网并不完美，它们还停留3G甚至2G。在3G的情况下，下载一个完整的core-js可能需要几秒钟。然而，页面经常包含多个core-js和许多其他重复的polyfill。一些（主要是移动互联网）互联网提供商的“无限”数据套餐非常有限，用户用了几G字节之后，网速就会降到几Kbps。连接速度还受很多其他因素受限。\n\n页面加载速度就等于收入。\n\n<p align=\"center\"><img alt=\"conversion\" width=\"600\" src=\"https://user-images.githubusercontent.com/2213682/217910389-7320a726-890d-4f34-a941-f51a069f01a1.png\" /></p>\n\n> 插图来自谷歌[随机搜索的一个帖子](https://medium.com/@vikigreen/impact-of-slow-page-load-time-on-website-performance-40d5c9ce568a)\n\n由于polyfill的新增或改进，core-js的大小不断增长。这也是一些大型polyfill所遇到的问题，在core-js中添加Intl、Temporal和其他一些功能，捆绑的大小将增加十几倍，达到几兆字节。\n\ncore-js的杀手级功能之一是，它可以通过使用Babel、SWC或手动方式进行优化，虽然，现在的方法只能解决部分问题。为了正确解决这些问题，现代Web需要新一代的工具包，该工具包可以简单地集成到当前的开发堆栈中。在某些情况下，正如你将在下面看到的，这个工具包可以帮助使你的网页变得甚至比没有core-js更小。\n\n我已经在[“**关于core-js@3、Babel和对未来的展望**”](https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#look-into-the-future)中写了其中一些内容，但这些只是原始的想法。现在他们正处于实验甚至实施阶段。\n由于该项目的未来不确定，在这里写下任何具体日期是没有意义的，我不保证所有这些都会很快完成，但这值得我们努力去做。\n\n\n\n\n---\n\n### 新的主版本（major version）\n\ncore-js@3大约4年前发布——已经很久了。对我来说，添加一些突破性更改并将新版本标记为major版本并不是一个大问题（相比之下，确保向后兼容则是一个挑战）——但这对用户来说是个大问题。\n\n目前，大约25%的core-js下载是严重过时的core-js@2。许多用户想将其更新到core-js@3，但由于他们的依赖项使用core-js@2，他们仍然使用过时的版本来避免多个副本（我在GitHub上看到了太多项目有此类问题）。太频繁的重大更新将使此类情况更加恶化。\n\n然而，最好不要痴迷于与旧版本的兼容性。core-js包含太多没有删掉的东西，仅仅是出于保持兼容性。**而缺乏一些长期需要的突破性变化将对未来产生负面影响。**从标准、生态系统和Web的变化以及遗留物（legacy）的积累情况来看，最好每2-3年发布一个新的major版本。\n\n如果需要好几年的开发，才能出来一个新版本让大家看到他们想要的一切，这对用户是不可接受的。core-js遵循[SemVer](https://semver.org/)，首先发布一个新的major版本，内含一些突破性变化（部分叙述如下），大多数新功能在minor版本中添加。在这种情况下，新版本可能需要大约2-3个月的全职工作，它会比上一个版本小，这将是core-js第一次变小 :-)\n\n### 关于core-js包\n\n### 放弃严重过时的引擎支持\n\nIE死了。然而，还有人用——出于许多不同的原因，有人仍然被迫制作或维护在IE中工作的网站，core.js是让他们生活更轻松的主要工具之一。\n\n现在，core-js试图支持所有可能的引擎和平台，甚至ES3和IE8-（译者注：IE8-代表IE8及更早的版本）。但只有一小部分使用core-js的开发人员需要这个，IE8-浏览器的占有率约为0.1%。对于更多其他用户来说，继续支持IE8-就意味着——更大的捆绑和更慢的执行。\n\n主要问题来自对ES3引擎的支持：大多数现代ES功能都基于ES5，而ES5在旧引擎中不可用。一些功能（如getter/setter）不能被polyfill，因此一些polyfill（如类型数组）根本无法在IE8-中工作。另一些功能需要很复杂的变通办法。真正可以polyfill的只是一些简单的功能，捆绑包中core-js大小的主要部分是ES5方法的实现（在polyfill的大量功能中，它只占百分之几，所以这个问题与精简捆绑包有关）。\n\n即便简单地将ES5功能的fallback替换为直接使用原生功能，也会将core-js捆绑的大小减少2倍以上。重新设计架构后，它将进一步减少。\n\nIE9-10浏览器的占比也很小了——目前，同样的0.1%。但是，如果core-js还在支持其他一些过时的浏览器，考虑放弃对IE9-10的支持是没有意义的，他们的问题和限制是类似的，甚至前者还更多。例如Android 4.4.4——总共占比约为1%。将标准提高到ES5之上是一个困难的决定，因为还要对一些非浏览器引擎提供支持。然而，即使将来放弃对IE11支持，也不会像现在放弃IE8-带来那么多好处。\n\n### ECMAScript模块和现代语法\n\n目前，core-js使用CommonJS模块。长期以来，这是最受欢迎的JavaScript模块格式，但现在ECMAScript提供了自己的模块格式，它已经非常受欢迎，几乎在任何地方都支持。例如，Deno，像浏览器一样，它不支持CommonJS，但支持ES。core-js应该在不久的将来有一个ECMAScript模块版本。但是，ECMAScript模块仅在NodeJS的现代版本中受支持，core-js 应该可以在较老的NodeJS版本中工作，而无需转译或打包。[Electron仍然不支持它](https://github.com/electron/electron/issues/21457)，因此现在立刻干掉core-js的CommonJS版本是有问题的。\n\n现代语法的其他方面并不那么明显。目前，core-js使用ES3语法。最初，这是为了最大程度优化，因为它无论如何都应该预先转译为旧语法。但这只是最初的情况，现在，core-js 库无法在用户环境中正确转译，并且在转译器配置中应该被忽略。为什么？让我们以Babel转换为例看看：\n\n- 转换的很大一部分依赖于现代的内置，例如，使用@@iterator协议的转换——但Symbol.iterator、迭代器和所有其他相关内置都是在core-js中实现的，在core-js加载之前不存在。\n\n- 另一个问题是使用注入core-js polyfill的方式转译core-js。显然，我们无法将polyfill注入到它们实现的地方，因为这会导致循环依赖。\n\n- 对core-js的一些其他转换会破坏其内部结构 - 例如，[typeof的转换](https://babeljs.io/docs/en/babel-plugin-transform-typeof-symbol)（将有助于支持polyfill后的symbol）会破坏Symbol的polyfill。\n\n然而，在polyfill代码中使用现代语法可以显著提高源代码的可读性，并且有助于减少大小，在某些情况下还可以提高性能（如果在现代引擎中捆绑polyfill）。所以，现在是时候考虑将core-js重写为现代语法了，为了让它能够正常转译，需要使用变通手法，并为不同用例发布不同语法的版本，以解决上述问题。\n\n### Web标准的polyfill\n\n我已经考虑很长时间了，想为 core-js 添加尽可能多的 Web 标准支持(不仅仅是 ECMAScript 以及与其密切相关的特性)。首先，是关于[最小通用 Web 平台 API](https://common-min-api.proposal.wintercg.org/#index) （[它是什么?](https://blog.cloudflare.com/introducing-the-wintercg/)）的尚未实现功能，但不仅限于此。最好是有一个牢靠的polyfill项目，可以用于尽可能多的开发案例，而不仅仅是ECMAScript。目前，浏览器中支持 Web 标准的情况比支持现代 ECMAScript 特性的情况要糟糕得多。\n\n将Web标准polyfill添加到core-js的主要障碍之一，是捆绑包的大小显著增加，但我认为，使用目前仅加载所需polyfill的技术，以及下面我将描述的技术，我们可以将Web标准的polyfill添加到core-js中。\n\n但主要问题是它不应该是一个幼稚的polyfill，如我之前所述，现在，在绝大多数情况下，ECMAScript 功能的正确性并不算太差，但对于Web 平台的功能就没有这么好了。例如，最近添加的[structuredClone polyfill](https://github.com/zloirock/core-js#structuredclone)。在实现它时，考虑到依赖关系，我遇到了数百种不同的JavaScript引擎错误，但我不记得在添加新的ECMAScript功能时看到过这种情况。 因为这个原因，为了一个简单的方法，本应该可以在几个小时内完成的工作（包括解决所有issue和添加所需功能），却持续了几个月。对于polyfill，如果做得不好，还不如不做。适当的测试、polyfill填充和确保跨平台兼容性的 Web 平台功能，比我在 ECMAScript polyfill 上花费的资源更多。因此，仅在我有这样的资源时，才会开始向 core-js 添加尽可能多的 Web 标准支持。\n\n---\n\n### 更有趣的新方法\n\n有人会问它为什么处于这个位置。像转译器这样的工具与core-js项目有什么关系？core-js只是一个polyfill，转译器那些工具由其他人编写和维护的。有一次我也认为，用一个好的API编写一个伟大的项目，解释它的可能性就足够了，当它流行起来时，它将获得一个生态，并有着适当的第三方工具。然而，多年来，我意识到，如果你不这样做，或者不控制你自己，这种情况就不会发生。\n\n例如，多年来，实例方法无法通过Babel runtime进行polyfill，我解释了太多次如何操作。在实际的项目中，通过preset-env来polyfill是不可行的，因为所需的polyfill的检测不完整，以及兼容性数据来源不够好，我从一开始就解释了这一点。由于这些问题，我被迫[在2018-2019年几乎完全重写这些工具，并发布在core-js@3版本中](https://github.com/babel/babel/pull/7646)，之后我们获得了现在这种基于静态分析的polyfill注入工具。\n\n我相信，如果没有在core-js范围内使用如下的方法，它根本无法正常工作。\n\n---\n\n为了避免与以下文本相关的一些问题：core-js的工具将挪动（move）到作用域包——像core-js-builder和core-js-compat等工具将分别成为@core-js/builder和@core-js/compat。\n\n### 不仅仅是Babel：转译器和模块捆绑器的插件\n\n目前，一些用户被迫使用Babel，只是因为需要自动注入及优化所需的polyfill。Babel的[preset-env](https://babeljs.io/docs/en/babel-preset-env#usebuiltins)和[runtime](https://babeljs.io/docs/en/babel-plugin-transform-runtime#core-js-aliasing)通过静态分析优化core-js的使用，这是唯一足够好且众所周知的方法。从历史上看，它之所以能这样，是因为我帮助Babel进行polyfill。但这并不意味着Babel是唯一或最好的干这事的地方。\n\nBabel只是众多转译器之一。TypeScript是另一个流行的选项。其他转译器现在越来越受欢迎，例如[SWC](https://swc.rs/)（它已经包含[一个自动polyfill/core-js优化的工具](https://swc.rs/docs/configuration/supported-browsers)，但仍然不够完美）。然而，我们为什么要谈论转译器？捆绑器和webpack或[esbuild](https://esbuild.github.io/)（也包含集成的转译器）等工具对polyfill的优化更有兴趣。[rome](https://rome.tools/)已经发展了几年，还没有准备好，但它的概念看起来很有希望。\n\n位于转译层的基于静态分析的自动polyfill有这么一个主要问题：不是捆绑包中的所有文件都会被转译——例如，依赖项。如果你的一些依赖项需要现代内置功能的polyfill，但你没有在用户空间代码中使用此内置功能，则polyfill不会被添加到捆绑包中。不必要的polyfill导入也不会从你的依赖项中删除（见下文）。将自动polyfill从转译层移动到捆绑器层，可以解决这个问题。\n\n当然，与Babel相比，编写或使用此类插件在很多地方是比较困难的。例如，[如果没有一些额外的工具，你无法在TypeScript中使用插件进行自定义转换](https://github.com/microsoft/TypeScript/issues/14419)。然而，有意愿的地方就有办法(where there's a will there's a way)。\n\ncore-js的自动polyfill/优化不应该仅在Babel中可用。虽然core-js项目也不可能为所有转译器和捆绑器编写和维护插件，但可以做这些事情：\n\n- 改进core-js（@core-js/compat）提供的数据以及用于第三方项目集成的工具，它们应该是全面的。例如，“内置定义”仍然在Babel一侧，导致它们在其他项目中的重用存在问题。\n\n- 由于一些工具已经提供了core-js集成，因此帮助他们也是有意义的，而不仅仅是Babel。\n\n- 为core-js项目范围内的一些重要工具编写和维护插件是有意义的。哪个？我们拭目以待。\n\n### polyfill收集器\n\n上面解释了文件层上基于静态分析的自动polyfill（usage polyfilling mode of Babel preset-env）的问题，但这不是唯一的问题。让我们谈谈其他的。\n\n你的依赖项可能有自己的core-js依赖，它们可能与你在项目根部使用的core-js版本不兼容，直接将core-js导入到你的依赖项可能会导致损坏。\n\n项目通常包含多个入口点、多个捆绑包，在某些情况下，将所有core-js模块移动到一个块（chunk）可能会有问题，并可能导致每个捆绑包中core-js重复。\n\n我已经在前面发布了[core-js使用统计数据](https://gist.github.com/zloirock/7331cec2a1ba74feae09e64584ec5d0e)。在许多情况下，你可以看到core-js的重复——而且它只在应用程序的第一个加载页面上。有时它甚至像我们在彭博网站上看到的那样：\n\n<p align=\"center\"><img alt=\"bloomberg\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/218467140-c475482c-24b0-4420-b510-32f6e2a15743.png\" /></p>\n\n[前段时间，这个数字甚至更高](https://user-images.githubusercontent.com/2213682/115339234-87e1f700-a1ce-11eb-853c-8b93b7fc5657.png)。当然，通常的网站不会拥有这么多不同版本的core-js，但有多个core-js确实很常见，大约一半的用了core-js的网站都这样。为了防止这种情况，**需要一个新的解决方案，在一个地方从项目的所有入口点、捆绑包和依赖项收集所有的polyfill。**\n\n让我们称这个工具为 @core-js/collector。这个工具应该接收一个入口点或入口点列表，并使用 preset-env 中所使用的静态分析技术，但是，该工具不应该转换代码或注入任何内容，而是检查完整的依赖树，并返回所需的core-js模块的完整列表。作为一项需求，它应该可以很简单地集成到当前开发栈中。一种可能的方式是在插件中创建一个新的polyfill模式，称为“collected” - 它将允许在一个地方加载应用程序的所有收集的polyfill，并删除不必要的polyfill（见下文）。\n\n### 删除不必要的第三方polyfill\n\n作为一个例子，一个很典型的情况是：在一个网站上看到多个具有相同功能的Promise polyfill副本，例如你只加载了一个来自core-js的Promise polyfill，但是一些依赖项会自己加载Promise polyfill，例如来自另一个core-js副本，或是来自es6-promise、promise-polyfill、es6-promise-polyfill、native-promise-only等等。然而，对于这些ES6 Promise，core-js已经完全实现了，而且大多数浏览器都不需要对Promise进行polyfill。由于这种重复，使得捆绑包中所有polyfill的大小会膨胀到几兆字节。\n\n##### 译者注：Promise是一种用于处理异步操作的对象，它可以让异步的代码变得更加易于阅读和维护。\n\n这可能不是一个很好的例证，其他例子可能会更好，但既然上面我们开始谈论彭博网站，让我们再看看这个网站。我们无法访问源代码，但是我们有像[bundlescanner.com](https://bundlescanner.com/website/bloomberg.com/europe/all)这样很棒的工具（我希望彭博团队能尽快修复它，那时数据就不会是这样了）。\n\n<p align=\"center\"><img alt=\"bundlescanner\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/181242201-ec16dd17-f4dd-4706-abf5-36e764c72e22.png\" /></p>\n\n从实践上讲，这种分析不是一件简单的工作，该工具只能检测到大约一半的库代码。然而，除了450K字节的core-js外，我们还看到数百K字节的其他polyfill——许多es6-promise、promise-polyfill、whatwg-fetch的副本（由于前面所述的原因，core-js仍然没有polyfill它）、string.prototype.codepointat、object-assign（这是ponyfill，下一节会讲到它们）、array-find-index等。\n\n但是有多少polyfill没有检测到？这个网站加载的所有polyfill的大小是多少？看起来有几兆字节。然而，即使是非常旧的浏览器，最多一百K字节就足够了......这种情况并不特别——这太常见了。\n\n由于许多polyfill仅包含core-js功能的子集，在@core-js/compat的范围内，我们能通过收集数据，判断一个第三方polyfill模块是否必要，如果此功能包含在core-js中，转译器（transpiler）或捆绑器（bundler）插件将删除此模块的导入或将其替换为适当core-js模块的导入。\n\n同样的方法可以应用于摆脱对旧core-js版本的依赖。\n\n### 纯版本polyfill/ponyfill的全球化\n\n另一个更常见的问题是来自全局（global）和纯（pure）core-js版本的polyfill的重复。纯core-js / babel-runtime旨在用于库的代码中，因此如果你使用全局版本的core-js而且你的依赖项也加载了一些不带全局命名空间污染的core-js副本，那么这是一种正常情况。它们使用不同的内部结构，但它们之间共享类似的代码是有问题的。\n\n我正考虑在转译器或捆绑器插件中解决这个问题，与前一个类似（但当然，更复杂一点）——我们可以将纯版本的导入替换为全局版本导入，并删除目标引擎中不必要的 polyfill。\n\n这也可以应用于那些第三方 ponyfills或过时库，他们所实现的功能在JS标准库中已经可用了。例如，has包的使用可以替换为Object.hasOwn，left-pad替换为String.prototype.padStart，somelodash方法替换为相关的现代内置JS方法等。\n\n### 服务\n\n在IE11、iOS Safari 14.8以及最新的Firefox中加载相同的polyfill是错误的——在现代浏览器中加载了太多的死代码。一个流行的模式是使用2个捆绑包：为“现代”浏览器加载支持本地模块的 \\<script type=\"module\"\\> ，而对于不支持本地模块的过时浏览器，则加载 \\<script nomodule\\> （实践中有些困难）。例如，Lighthouse可以检测到一些不需要的polyfill案例，[让我们检查一下长期受苦的彭博网站](https://googlechrome.github.io/lighthouse/viewer/?psiurl=https://www.bloomberg.com/europe&strategy=mobile&category=performance)：\n\n<p align=\"center\"><img alt=\"lighthouse\" width=\"720\" src=\"https://user-images.githubusercontent.com/2213682/148652288-bd6e452a-f6ba-417d-8972-9d98d2f715a4.png\" /></p>\n\nLighthouse检测出所有资源仅约200KB，0.56秒。但该网站包含大约几兆字节的polyfill。[Lighthouse只检测出不到一半的应检测内容](https://github.com/GoogleChrome/lighthouse/issues/13440)，但即把它能检测的都检测出来，它也只是所有加载的polyfill的一小部分。其余的在哪里？现代浏览器真的需要它们吗？问题是，本地模块支持的下限太低——在这种情况下，“现代”浏览器仍将需要旧版IE所需的大多数polyfill，以提供稳定的JS功能。因此，部分polyfill显示在“未使用JavaScript”部分中，需要6.41s，另外的部分根本没有显示......\n\n从我开始写core-js的一开始，我就一直在考虑创建一个Web服务，为浏览器提供所需的polyfill服务。\n\n未提供此类服务是core-js落后于另一个项目的唯一方面。[polyfill-service](https://cdnjs.cloudflare.com/polyfill/)就基于这一概念，这是一个很牛的服务。这个项目的主要问题是，服务很牛，但是用了糟糕的polyfill。这个项目只是polyfill了core-js提供的ECMAScript功能的一小部分，大多数polyfill是第三方的，他们并不是为一起工作而设计的，太多polyfill没有正确遵循规范，或者太粗糙，或者使用起来很危险（例如，[WeakMap看样子是在一步步实现规范](https://github.com/Financial-Times/polyfill-library/blob/554248173eae7554ef0a7776549d2901f02a7d51/polyfill/WeakMap/polyfill.js)，但缺乏一些特别手段，使其导致内存泄漏和线性访问时间，这就不太好了，还有更多其他问题——它不是在IE11这类引擎中修补、修复和重用本地实现，而是不接受可迭代参数，[这使得WeakMap将会被完全替换](https://github.com/Financial-Times/polyfill-library/blob/554248173eae7554ef0a7776549d2901f02a7d51/polyfill/WeakMap/detect.js)）。一些优秀的开发人员时不时尝试修复这个问题，但是polyfill本身拥有的时间实在是太少了，因此它还远远达不到可被推荐的地步。\n\n\n以适当的形式创建这样的服务需要制作和维护许多新组件。我独自一人从事core-js开发，项目没有得到任何公司的必要支持，开发纯粹是建立在热情之上，我需要资金来养活自己和家人，所以我没有时间和其他资源去开发它。然而，在其他任务范围内，我已经制作了一些必需的组件，与一些用户的讨论让我相信，创建一个最大限度简化的服务，然后在你自己的服务器上运行它就足够了。\n\n我们已经拥有了最好的polyfill集、适当的兼容性数据以及可以为目标浏览器创建捆绑包的构建器。前面提到的@core-js/collector可以用来做优化——仅获取所需的模块子集、转译器/捆绑器的插件——删除不必要的polyfill。仅仅是缺少一个用于用户代理规范化的工具和一个将这些组件绑定在一起的服务，让我们称它为@core-js/service。\n\n#### 在一个完美的世界里，它应该是什么样子？\n\n- 捆绑你的项目。捆绑器端的插件会从你的依赖项中删除所有polyfill导入（包括第三方的，没有全局污染的）。你的捆绑包将不包含任何polyfill。\n- 运行@core-js/service。当你运行它时，@core-js/collector会检查你的所有前端代码库、所有入口点，包括依赖项，并收集所有必需的polyfill的列表。\n- 用户加载一个页面，并向服务请求polyfill捆绑包。服务为客户端提供了一个为目标浏览器编译的捆绑包，其中包含所需的polyfill子集并使用所允许的语法。\n\n这样，使用这种工具，现代浏览器如果自身够用，将根本不加载polyfill，旧浏览器将只加载所需的优化后的polyfill。\n\n---\n\n以上大部分内容都是关于如何将发送给客户端的polyfill最小化——这些只是core-js范围内想要实现东西的一小部分，如果你明白做到这一点需要大量的工作，而且它可以显著改善Web开发，那就足够了。它是否会真的被做出来，以及它是FOSS的还是商业的，取决于你。\n\n\n\n# 结论\n\n这是我最后一次尝试将core-js保留为具有适当质量和功能水平的免费开源项目。这是最后一次传递信息：在开源的另一边有真实的人，他有家庭需要养活，有问题需要解决。\n\n如果你或你的公司以这样或那样的方式使用core-js，并且对你的供应链质量感兴趣，请支持本项目：\n\n- [**Open Collective**](https://opencollective.com/core-js)\n- [**Patreon**](https://patreon.com/zloirock)\n- [**Boosty**](https://boosty.to/zloirock)\n- **Bitcoin （bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz）**\n- [**支付宝**](https://user-images.githubusercontent.com/2213682/219464783-c17ad329-17ce-4795-82a7-f609493345ed.png)\n\n\n\n**如果你能在Web标准和开源方面提供一份好工作，请联系我。**\n\n---\n\n**请随时在[此issue帖子](https://github.com/zloirock/core-js/issues/1179)中添加评论:**\n\n**[Denis Pushkarev](https://github.com/zloirock)，2023年2月14日**\n\n\n##### 翻译｜卫剑钒 (微信公众号:man-mind)\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"version\": \"3.49.0\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/zloirock/core-js.git\"\n  },\n  \"homepage\": \"https://core-js.io\",\n  \"license\": \"MIT\",\n  \"author\": {\n    \"name\": \"Denis Pushkarev\",\n    \"email\": \"zloirock@zloirock.ru\",\n    \"url\": \"http://zloirock.ru\"\n  },\n  \"workspaces\": [\n    \"./packages/*\"\n  ],\n  \"scripts\": {\n    \"zxi\": \"zx scripts/zxi.mjs\",\n    \"prepare\": \"npm run zxi scripts/prepare.mjs\",\n    \"prepare-monorepo\": \"node scripts/prepare-monorepo.mjs\",\n    \"build-compat\": \"npm run zxi scripts/build-compat/index.mjs\",\n    \"build-website\": \"npm run zxi time website/index.mjs\",\n    \"build-website-local\": \"npm run zxi time website/build-local.mjs\",\n    \"bundle\": \"run-s bundle-package bundle-tests\",\n    \"bundle-package\": \"npm run zxi time scripts/bundle-package/bundle-package.mjs\",\n    \"bundle-tests\": \"npm run zxi time cd scripts/bundle-tests/bundle-tests.mjs\",\n    \"check\": \"run-s check-v8-protectors check-unused-modules check-mapping check-dependencies\",\n    \"check-actions\": \"npm run zxi time scripts/check-actions/check-actions.mjs\",\n    \"check-dependencies\": \"npm run zxi time scripts/check-dependencies/check-dependencies.mjs\",\n    \"check-mapping\": \"npm run zxi time scripts/check-compat-data-mapping.mjs\",\n    \"check-unused-modules\": \"npm run zxi scripts/check-unused-modules.mjs\",\n    \"check-v8-protectors\": \"node --trace-protector-invalidation packages/core-js\",\n    \"codespell\": \"npm run zxi time tests/codespell/runner.mjs\",\n    \"compat-bun\": \"bun tests/compat/bun-runner.js\",\n    \"compat-deno\": \"deno run --allow-read tests/compat/deno-runner.mjs\",\n    \"compat-hermes\": \"npm run zxi tests/compat/hermes-adapter.mjs\",\n    \"compat-node\": \"node tests/compat/node-runner\",\n    \"compat-rhino\": \"npm run zxi tests/compat/rhino-adapter.mjs\",\n    \"lint\": \"run-s prepare lint-raw\",\n    \"lint-raw\": \"run-s test-eslint test-type-definitions bundle-package test-publint\",\n    \"test\": \"run-s prepare test-raw\",\n    \"test-raw\": \"run-s lint-raw bundle-tests test-unit test-promises test-observables test-entries test-compat-data test-compat-tools test-builder check\",\n    \"test-eslint\": \"npm run zxi time tests/eslint/runner.mjs\",\n    \"test-publint\": \"npm run zxi time tests/publint/runner.mjs\",\n    \"test-unit\": \"run-s test-unit-karma test-unit-node test-unit-bun\",\n    \"test-unit-karma\": \"npm run zxi time cd tests/unit-karma/runner.mjs\",\n    \"test-unit-node\": \"npm run zxi time tests/unit-node/runner.mjs\",\n    \"test-unit-bun\": \"npm run zxi time cd tests/unit-bun/runner.mjs\",\n    \"test-promises\": \"npm run zxi time cd tests/promises/runner.mjs\",\n    \"test-observables\": \"npm run zxi time cd tests/observables/runner.mjs\",\n    \"test-entries\": \"npm run zxi tests/entries/index.mjs\",\n    \"test-builder\": \"npm run zxi tests/builder/builder.mjs\",\n    \"test-compat-data\": \"npm run zxi tests/compat-data/index.mjs\",\n    \"test-compat-tools\": \"npm run zxi tests/compat-tools/index.mjs\",\n    \"test-type-definitions\": \"npm run zxi time cd tests/type-definitions/runner.mjs\",\n    \"test262\": \"npm run zxi time cd tests/test262/runner.mjs\",\n    \"refresh\": \"UPDATE_DEPENDENCIES=1 npm run prepare-monorepo && npm run test-raw\",\n    \"refresh-safe\": \"npm run prepare-monorepo && npm run test-raw\",\n    \"downloads\": \"npm run zxi scripts/downloads-by-versions.mjs\",\n    \"usage\": \"npm run zxi scripts/usage/usage.mjs\",\n    \"update-version\": \"npm run zxi scripts/update-version.mjs\",\n    \"publish\": \"npm publish --workspaces\",\n    \"c\": \"npm run check\",\n    \"p\": \"npm run prepare-monorepo\",\n    \"r\": \"npm run refresh\",\n    \"rs\": \"npm run refresh-safe\",\n    \"u\": \"npm run update-version\"\n  },\n  \"devDependencies\": {\n    \"@babel/core\": \"^7.29.0\",\n    \"@babel/plugin-transform-arrow-functions\": \"^7.27.1\",\n    \"@babel/plugin-transform-block-scoped-functions\": \"^7.27.1\",\n    \"@babel/plugin-transform-block-scoping\": \"^7.28.6\",\n    \"@babel/plugin-transform-classes\": \"^7.28.6\",\n    \"@babel/plugin-transform-class-properties\": \"^7.28.6\",\n    \"@babel/plugin-transform-class-static-block\": \"^7.28.6\",\n    \"@babel/plugin-transform-computed-properties\": \"^7.28.6\",\n    \"@babel/plugin-transform-destructuring\": \"^7.28.5\",\n    \"@babel/plugin-transform-duplicate-named-capturing-groups-regex\": \"^7.29.0\",\n    \"@babel/plugin-transform-explicit-resource-management\": \"^7.28.6\",\n    \"@babel/plugin-transform-exponentiation-operator\": \"^7.28.6\",\n    \"@babel/plugin-transform-for-of\": \"^7.27.1\",\n    \"@babel/plugin-transform-literals\": \"^7.27.1\",\n    \"@babel/plugin-transform-logical-assignment-operators\": \"^7.28.6\",\n    \"@babel/plugin-transform-member-expression-literals\": \"^7.27.1\",\n    \"@babel/plugin-transform-modules-commonjs\": \"^7.28.6\",\n    \"@babel/plugin-transform-new-target\": \"^7.27.1\",\n    \"@babel/plugin-transform-nullish-coalescing-operator\": \"^7.28.6\",\n    \"@babel/plugin-transform-numeric-separator\": \"^7.28.6\",\n    \"@babel/plugin-transform-object-rest-spread\": \"^7.28.6\",\n    \"@babel/plugin-transform-object-super\": \"^7.27.1\",\n    \"@babel/plugin-transform-optional-catch-binding\": \"^7.28.6\",\n    \"@babel/plugin-transform-optional-chaining\": \"^7.28.6\",\n    \"@babel/plugin-transform-parameters\": \"^7.27.7\",\n    \"@babel/plugin-transform-private-methods\": \"^7.28.6\",\n    \"@babel/plugin-transform-private-property-in-object\": \"^7.28.6\",\n    \"@babel/plugin-transform-property-literals\": \"^7.27.1\",\n    \"@babel/plugin-transform-regenerator\": \"^7.29.0\",\n    \"@babel/plugin-transform-regexp-modifiers\": \"^7.28.6\",\n    \"@babel/plugin-transform-reserved-words\": \"^7.27.1\",\n    \"@babel/plugin-transform-shorthand-properties\": \"^7.27.1\",\n    \"@babel/plugin-transform-spread\": \"^7.28.6\",\n    \"@babel/plugin-transform-template-literals\": \"^7.27.1\",\n    \"@babel/plugin-transform-unicode-regex\": \"^7.27.1\",\n    \"konan\": \"^2.1.1\",\n    \"npm-run-all2\": \"^8.0.4\",\n    \"semver\": \"^7.7.4\",\n    \"zx\": \"^8.8.5\"\n  }\n}\n"
  },
  {
    "path": "packages/core-js/.npmignore",
    "content": "node_modules/\n*.log\n.*\n"
  },
  {
    "path": "packages/core-js/README.md",
    "content": "![logo](https://user-images.githubusercontent.com/2213682/146607186-8e13ddef-26a4-4ebf-befd-5aac9d77c090.png)\n\n<div align=\"center\">\n\n[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js.svg)](https://www.npmjs.com/package/core-js) [![core-js downloads](https://img.shields.io/npm/dm/core-js.svg?label=npm%20i%20core-js)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18)\n\n</div>\n\n**I highly recommend reading this: [So, what's next?](https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md)**\n---\n\n> [`core-js`](https://core-js.io) is a modular standard library for JavaScript. Includes polyfills for ECMAScript up to 2026: [promises](https://core-js.io/docs/features/ecmascript/promise), [symbols](https://core-js.io/docs/features/ecmascript/symbol), [collections](https://core-js.io/docs/features/ecmascript/collections), [iterators](https://core-js.io/docs/features/ecmascript/iterator), [typed arrays](https://core-js.io/docs/features/ecmascript/typed-arrays), many other features, ECMAScript proposals, some cross-platform WHATWG / W3C features and proposals like [`URL`](https://core-js.io/docs/features/web-standards/url-and-urlsearchparams). You can load only required features or use it without global namespace pollution.\n\n## Raising funds\n\n`core-js` isn't backed by a company, so the future of this project depends on you. Become a sponsor or a backer if you are interested in `core-js`: [**Open Collective**](https://opencollective.com/core-js), [**Patreon**](https://patreon.com/zloirock), [**Boosty**](https://boosty.to/zloirock), **Bitcoin ( bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz )**, [**Alipay**](https://user-images.githubusercontent.com/2213682/219464783-c17ad329-17ce-4795-82a7-f609493345ed.png).\n\n---\n\n<a href=\"https://opencollective.com/core-js/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/0/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/1/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/2/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/3/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/4/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/5/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/6/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/7/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/8/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/9/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/10/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/10/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/11/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/11/avatar.svg\"></a>\n\n---\n\n<a href=\"https://opencollective.com/core-js#backers\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/backers.svg?width=890\"></a>\n\n---\n\n[*Example of usage*](https://tinyurl.com/28zqjbun):\n```js\nimport 'core-js/actual';\n\nPromise.try(() => 42).then(it => console.log(it)); // => 42\n\nArray.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\n[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n*You can load only required features*:\n```js\nimport 'core-js/actual/promise';\nimport 'core-js/actual/set';\nimport 'core-js/actual/iterator';\nimport 'core-js/actual/array/from';\nimport 'core-js/actual/array/flat-map';\nimport 'core-js/actual/structured-clone';\n\nPromise.try(() => 42).then(it => console.log(it)); // => 42\n\nArray.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\n[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n*Or use it without global namespace pollution*:\n```js\nimport Promise from 'core-js-pure/actual/promise';\nimport Set from 'core-js-pure/actual/set';\nimport Iterator from 'core-js-pure/actual/iterator';\nimport from from 'core-js-pure/actual/array/from';\nimport flatMap from 'core-js-pure/actual/array/flat-map';\nimport structuredClone from 'core-js-pure/actual/structured-clone';\n\nPromise.try(() => 42).then(it => console.log(it)); // => 42\n\nfrom(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\nflatMap([1, 2], it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n**It's a global version (first 2 examples), for more info see [`core-js` documentation](https://core-js.io).**\n"
  },
  {
    "path": "packages/core-js/actual/README.md",
    "content": "This folder contains entry points for all `core-js` features with dependencies. It's the recommended way for usage only required features.\n"
  },
  {
    "path": "packages/core-js/actual/aggregate-error.js",
    "content": "'use strict';\nvar parent = require('../stable/aggregate-error');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/at.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/concat.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/concat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/copy-within.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/copy-within');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/entries.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/every.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/fill.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/fill');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/filter.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/find-index.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/find-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/find-last-index.js",
    "content": "'use strict';\nrequire('../../modules/esnext.array.find-last-index');\nvar parent = require('../../stable/array/find-last-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/find-last.js",
    "content": "'use strict';\nrequire('../../modules/esnext.array.find-last');\nvar parent = require('../../stable/array/find-last');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/find.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/flat-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/flat.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/flat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/for-each.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/from-async.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/from-async');\nrequire('../../modules/esnext.array.from-async');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/from.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/from');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/group-by-to-map.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/esnext.array.group-by-to-map');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'groupByToMap');\n"
  },
  {
    "path": "packages/core-js/actual/array/group-by.js",
    "content": "'use strict';\nrequire('../../modules/esnext.array.group-by');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'groupBy');\n"
  },
  {
    "path": "packages/core-js/actual/array/group-to-map.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/esnext.array.group-to-map');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'groupToMap');\n"
  },
  {
    "path": "packages/core-js/actual/array/group.js",
    "content": "'use strict';\nrequire('../../modules/esnext.array.group');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'group');\n"
  },
  {
    "path": "packages/core-js/actual/array/includes.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/index-of.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/array');\nrequire('../../modules/esnext.array.from-async');\nrequire('../../modules/esnext.array.group');\nrequire('../../modules/esnext.array.group-to-map');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.array.find-last');\nrequire('../../modules/esnext.array.find-last-index');\nrequire('../../modules/esnext.array.group-by');\nrequire('../../modules/esnext.array.group-by-to-map');\nrequire('../../modules/esnext.array.to-reversed');\nrequire('../../modules/esnext.array.to-sorted');\nrequire('../../modules/esnext.array.to-spliced');\nrequire('../../modules/esnext.array.with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/is-array.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/is-array');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/iterator.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/join.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/join');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/keys.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/last-index-of.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/last-index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/map.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/of.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/push.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/push');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/reduce-right.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/reduce-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/reduce.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/reverse.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/reverse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/slice.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/some.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/sort.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/sort');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/splice.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/splice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/to-reversed.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/to-reversed');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.array.to-reversed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/to-sorted.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/to-sorted');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.array.to-sorted');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/to-spliced.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/to-spliced');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.array.to-spliced');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/unshift.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/unshift');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/values.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/at.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/concat.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/concat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/copy-within.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/copy-within');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/entries.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/every.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/fill.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/fill');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/filter.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/find-index.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/find-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/find-last-index.js",
    "content": "'use strict';\nrequire('../../../modules/esnext.array.find-last-index');\nvar parent = require('../../../stable/array/virtual/find-last-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/find-last.js",
    "content": "'use strict';\nrequire('../../../modules/esnext.array.find-last');\nvar parent = require('../../../stable/array/virtual/find-last');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/find.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/flat-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/flat.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/flat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/for-each.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/group-by-to-map.js",
    "content": "'use strict';\nrequire('../../../modules/es.map');\nrequire('../../../modules/es.object.to-string');\nrequire('../../../modules/esnext.array.group-by-to-map');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'groupByToMap');\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/group-by.js",
    "content": "'use strict';\nrequire('../../../modules/esnext.array.group-by');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'groupBy');\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/group-to-map.js",
    "content": "'use strict';\nrequire('../../../modules/es.map');\nrequire('../../../modules/es.object.to-string');\nrequire('../../../modules/esnext.array.group-to-map');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'groupToMap');\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/group.js",
    "content": "'use strict';\nrequire('../../../modules/esnext.array.group');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'group');\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/includes.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/index-of.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/index.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual');\nrequire('../../../modules/es.map');\nrequire('../../../modules/es.object.to-string');\nrequire('../../../modules/esnext.array.group');\nrequire('../../../modules/esnext.array.group-to-map');\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.array.find-last');\nrequire('../../../modules/esnext.array.find-last-index');\nrequire('../../../modules/esnext.array.group-by');\nrequire('../../../modules/esnext.array.group-by-to-map');\nrequire('../../../modules/esnext.array.to-reversed');\nrequire('../../../modules/esnext.array.to-sorted');\nrequire('../../../modules/esnext.array.to-spliced');\nrequire('../../../modules/esnext.array.with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/iterator.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/join.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/join');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/keys.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/last-index-of.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/last-index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/map.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/push.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/push');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/reduce-right.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/reduce-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/reduce.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/reverse.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/reverse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/slice.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/some.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/sort.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/sort');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/splice.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/splice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/to-reversed.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/to-reversed');\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.array.to-reversed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/to-sorted.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/to-sorted');\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.array.to-sorted');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/to-spliced.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/to-spliced');\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.array.to-spliced');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/unshift.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/unshift');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/values.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/virtual/with.js",
    "content": "'use strict';\nvar parent = require('../../../stable/array/virtual/with');\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.array.with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array/with.js",
    "content": "'use strict';\nvar parent = require('../../stable/array/with');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.array.with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array-buffer/constructor.js",
    "content": "'use strict';\nvar parent = require('../../stable/array-buffer/constructor');\nrequire('../../modules/esnext.array-buffer.detached');\nrequire('../../modules/esnext.array-buffer.transfer');\nrequire('../../modules/esnext.array-buffer.transfer-to-fixed-length');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array-buffer/detached.js",
    "content": "'use strict';\nvar parent = require('../../stable/array-buffer/detached');\nrequire('../../modules/esnext.array-buffer.detached');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array-buffer/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/array-buffer');\nrequire('../../modules/esnext.array-buffer.detached');\nrequire('../../modules/esnext.array-buffer.transfer');\nrequire('../../modules/esnext.array-buffer.transfer-to-fixed-length');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array-buffer/is-view.js",
    "content": "'use strict';\nvar parent = require('../../stable/array-buffer/is-view');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array-buffer/slice.js",
    "content": "'use strict';\nvar parent = require('../../stable/array-buffer/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array-buffer/transfer-to-fixed-length.js",
    "content": "'use strict';\nvar parent = require('../../stable/array-buffer/transfer-to-fixed-length');\nrequire('../../modules/esnext.array-buffer.transfer-to-fixed-length');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/array-buffer/transfer.js",
    "content": "'use strict';\nvar parent = require('../../stable/array-buffer/transfer');\nrequire('../../modules/esnext.array-buffer.transfer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/async-disposable-stack/constructor.js",
    "content": "'use strict';\nvar parent = require('../../stable/async-disposable-stack/constructor');\nrequire('../../modules/esnext.suppressed-error.constructor');\nrequire('../../modules/esnext.async-disposable-stack.constructor');\nrequire('../../modules/esnext.async-iterator.async-dispose');\nrequire('../../modules/esnext.iterator.dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/async-disposable-stack/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/async-disposable-stack');\nrequire('../../modules/esnext.suppressed-error.constructor');\nrequire('../../modules/esnext.async-disposable-stack.constructor');\nrequire('../../modules/esnext.async-iterator.async-dispose');\nrequire('../../modules/esnext.iterator.dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/async-dispose.js",
    "content": "'use strict';\nrequire('../../stable/async-iterator/async-dispose');\nrequire('../../modules/esnext.async-iterator.async-dispose');\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/drop.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.drop');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'drop');\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/every.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.every');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'every');\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/filter.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.filter');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'filter');\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/find.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.find');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'find');\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/flat-map.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.flat-map');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'flatMap');\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/for-each.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.for-each');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'forEach');\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/from.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.drop');\nrequire('../../modules/esnext.async-iterator.every');\nrequire('../../modules/esnext.async-iterator.filter');\nrequire('../../modules/esnext.async-iterator.find');\nrequire('../../modules/esnext.async-iterator.flat-map');\nrequire('../../modules/esnext.async-iterator.for-each');\nrequire('../../modules/esnext.async-iterator.from');\nrequire('../../modules/esnext.async-iterator.map');\nrequire('../../modules/esnext.async-iterator.reduce');\nrequire('../../modules/esnext.async-iterator.some');\nrequire('../../modules/esnext.async-iterator.take');\nrequire('../../modules/esnext.async-iterator.to-array');\nrequire('../../modules/web.dom-collections.iterator');\n\nvar path = require('../../internals/path');\n\nmodule.exports = path.AsyncIterator.from;\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/index.js",
    "content": "'use strict';\nrequire('../../stable/async-iterator');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.async-dispose');\nrequire('../../modules/esnext.async-iterator.drop');\nrequire('../../modules/esnext.async-iterator.every');\nrequire('../../modules/esnext.async-iterator.filter');\nrequire('../../modules/esnext.async-iterator.find');\nrequire('../../modules/esnext.async-iterator.flat-map');\nrequire('../../modules/esnext.async-iterator.for-each');\nrequire('../../modules/esnext.async-iterator.from');\nrequire('../../modules/esnext.async-iterator.map');\nrequire('../../modules/esnext.async-iterator.reduce');\nrequire('../../modules/esnext.async-iterator.some');\nrequire('../../modules/esnext.async-iterator.take');\nrequire('../../modules/esnext.async-iterator.to-array');\nrequire('../../modules/web.dom-collections.iterator');\n\nvar path = require('../../internals/path');\n\nmodule.exports = path.AsyncIterator;\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/map.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.map');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'map');\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/reduce.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.reduce');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'reduce');\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/some.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.some');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'some');\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/take.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.take');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'take');\n"
  },
  {
    "path": "packages/core-js/actual/async-iterator/to-array.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.to-array');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'toArray');\n"
  },
  {
    "path": "packages/core-js/actual/atob.js",
    "content": "'use strict';\nvar parent = require('../stable/atob');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/btoa.js",
    "content": "'use strict';\nvar parent = require('../stable/btoa');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/clear-immediate.js",
    "content": "'use strict';\nvar parent = require('../stable/clear-immediate');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/data-view/get-float16.js",
    "content": "'use strict';\nvar parent = require('../../stable/data-view/get-float16');\nrequire('../../modules/esnext.data-view.get-float16');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/data-view/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/data-view');\nrequire('../../modules/esnext.data-view.get-float16');\nrequire('../../modules/esnext.data-view.set-float16');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/data-view/set-float16.js",
    "content": "'use strict';\nvar parent = require('../../stable/data-view/set-float16');\nrequire('../../modules/esnext.data-view.set-float16');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/date/get-year.js",
    "content": "'use strict';\nvar parent = require('../../stable/date/get-year');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/date/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/date');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/date/now.js",
    "content": "'use strict';\nvar parent = require('../../stable/date/now');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/date/set-year.js",
    "content": "'use strict';\nvar parent = require('../../stable/date/set-year');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/date/to-gmt-string.js",
    "content": "'use strict';\nvar parent = require('../../stable/date/to-gmt-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/date/to-iso-string.js",
    "content": "'use strict';\nvar parent = require('../../stable/date/to-iso-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/date/to-json.js",
    "content": "'use strict';\nvar parent = require('../../stable/date/to-json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/date/to-primitive.js",
    "content": "'use strict';\nvar parent = require('../../stable/date/to-primitive');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/date/to-string.js",
    "content": "'use strict';\nvar parent = require('../../stable/date/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/disposable-stack/constructor.js",
    "content": "'use strict';\nvar parent = require('../../stable/disposable-stack/constructor');\nrequire('../../modules/esnext.suppressed-error.constructor');\nrequire('../../modules/esnext.disposable-stack.constructor');\nrequire('../../modules/esnext.iterator.dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/disposable-stack/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/disposable-stack');\nrequire('../../modules/esnext.suppressed-error.constructor');\nrequire('../../modules/esnext.disposable-stack.constructor');\nrequire('../../modules/esnext.iterator.dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/dom-collections/for-each.js",
    "content": "'use strict';\nvar parent = require('../../stable/dom-collections/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/dom-collections/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/dom-collections');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/dom-collections/iterator.js",
    "content": "'use strict';\nvar parent = require('../../stable/dom-collections/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/dom-exception/constructor.js",
    "content": "'use strict';\nvar parent = require('../../stable/dom-exception/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/dom-exception/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/dom-exception');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/dom-exception/to-string-tag.js",
    "content": "'use strict';\nvar parent = require('../../stable/dom-exception/to-string-tag');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/error/constructor.js",
    "content": "'use strict';\nvar parent = require('../../stable/error/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/error/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/error');\nrequire('../../modules/es.object.create');\nrequire('../../modules/esnext.error.is-error');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/error/is-error.js",
    "content": "'use strict';\nvar parent = require('../../stable/error/is-error');\nrequire('../../modules/esnext.error.is-error');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/error/to-string.js",
    "content": "'use strict';\nvar parent = require('../../stable/error/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/escape.js",
    "content": "'use strict';\nvar parent = require('../stable/escape');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/function/bind.js",
    "content": "'use strict';\nvar parent = require('../../stable/function/bind');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/function/has-instance.js",
    "content": "'use strict';\nvar parent = require('../../stable/function/has-instance');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/function/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/function');\nrequire('../../modules/esnext.function.metadata');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/function/metadata.js",
    "content": "'use strict';\nrequire('../../modules/esnext.function.metadata');\n\nmodule.exports = null;\n"
  },
  {
    "path": "packages/core-js/actual/function/name.js",
    "content": "'use strict';\nvar parent = require('../../stable/function/name');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/function/virtual/bind.js",
    "content": "'use strict';\nvar parent = require('../../../stable/function/virtual/bind');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/function/virtual/index.js",
    "content": "'use strict';\nvar parent = require('../../../stable/function/virtual');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/get-iterator-method.js",
    "content": "'use strict';\nvar parent = require('../stable/get-iterator-method');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/get-iterator.js",
    "content": "'use strict';\nvar parent = require('../stable/get-iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/global-this.js",
    "content": "'use strict';\nvar parent = require('../stable/global-this');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/index.js",
    "content": "'use strict';\nrequire('../stable');\nrequire('../stage/3');\n\nmodule.exports = require('../internals/path');\n"
  },
  {
    "path": "packages/core-js/actual/instance/at.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/bind.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/bind');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/code-point-at.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/code-point-at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/concat.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/concat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/copy-within.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/copy-within');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/ends-with.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/ends-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/entries.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/every.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/fill.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/fill');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/filter.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/find-index.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/find-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/find-last-index.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/find-last-index');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.findLastIndex;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.findLastIndex) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/actual/instance/find-last.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/find-last');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.findLast;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.findLast) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/actual/instance/find.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/flags.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/flags');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/flat-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/flat.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/flat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/for-each.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/group-by-to-map.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/group-by-to-map');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.groupByToMap;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.groupByToMap) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/actual/instance/group-by.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/group-by');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.groupBy;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.groupBy) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/actual/instance/group-to-map.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/group-to-map');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.groupToMap;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.groupToMap) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/actual/instance/group.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/group');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.group;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.group) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/actual/instance/includes.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/index-of.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/is-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/is-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/keys.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/last-index-of.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/last-index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/map.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/match-all.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/match-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/pad-end.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/pad-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/pad-start.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/pad-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/push.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/push');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/reduce-right.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/reduce-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/reduce.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/repeat.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/repeat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/replace-all.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/reverse.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/reverse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/slice.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/some.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/sort.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/sort');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/splice.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/splice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/starts-with.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/starts-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/to-reversed.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/to-reversed');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.toReversed;\n  return (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.toReversed)) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/actual/instance/to-sorted.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/to-sorted');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.toSorted;\n  return (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.toSorted)) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/actual/instance/to-spliced.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/to-spliced');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.toSpliced;\n  return (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.toSpliced)) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/actual/instance/to-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/to-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/trim-end.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/trim-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/trim-left.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/trim-left');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/trim-right.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/trim-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/trim-start.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/trim-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/trim.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/trim');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/unshift.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/unshift');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/values.js",
    "content": "'use strict';\nvar parent = require('../../stable/instance/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/instance/with.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/with');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it['with'];\n  return (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype['with'])) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/actual/is-iterable.js",
    "content": "'use strict';\nvar parent = require('../stable/is-iterable');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/concat.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/concat');\nrequire('../../modules/esnext.iterator.concat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/dispose.js",
    "content": "'use strict';\nrequire('../../modules/esnext.iterator.dispose');\n"
  },
  {
    "path": "packages/core-js/actual/iterator/drop.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/drop');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.drop');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/every.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/every');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/filter.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/filter');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/find.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/find');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/flat-map');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.flat-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/for-each.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/for-each');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/from.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/from');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.dispose');\nrequire('../../modules/esnext.iterator.drop');\nrequire('../../modules/esnext.iterator.every');\nrequire('../../modules/esnext.iterator.filter');\nrequire('../../modules/esnext.iterator.find');\nrequire('../../modules/esnext.iterator.flat-map');\nrequire('../../modules/esnext.iterator.for-each');\nrequire('../../modules/esnext.iterator.from');\nrequire('../../modules/esnext.iterator.map');\nrequire('../../modules/esnext.iterator.reduce');\nrequire('../../modules/esnext.iterator.some');\nrequire('../../modules/esnext.iterator.take');\nrequire('../../modules/esnext.iterator.to-array');\nrequire('../../modules/esnext.iterator.to-async');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator');\nrequire('../../modules/es.object.create');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.concat');\nrequire('../../modules/esnext.iterator.dispose');\nrequire('../../modules/esnext.iterator.drop');\nrequire('../../modules/esnext.iterator.every');\nrequire('../../modules/esnext.iterator.filter');\nrequire('../../modules/esnext.iterator.find');\nrequire('../../modules/esnext.iterator.flat-map');\nrequire('../../modules/esnext.iterator.for-each');\nrequire('../../modules/esnext.iterator.from');\nrequire('../../modules/esnext.iterator.map');\nrequire('../../modules/esnext.iterator.reduce');\nrequire('../../modules/esnext.iterator.some');\nrequire('../../modules/esnext.iterator.take');\nrequire('../../modules/esnext.iterator.to-array');\nrequire('../../modules/esnext.iterator.to-async');\nrequire('../../modules/esnext.iterator.zip');\nrequire('../../modules/esnext.iterator.zip-keyed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/map.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/map');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/reduce.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/reduce');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/some.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/some');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/take.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/take');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.take');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/to-array.js",
    "content": "'use strict';\nvar parent = require('../../stable/iterator/to-array');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.to-array');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/iterator/to-async.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.iterator.constructor');\n// TODO: Drop from `core-js@4`\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.to-async');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'toAsync');\n"
  },
  {
    "path": "packages/core-js/actual/iterator/zip-keyed.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.create');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.drop');\nrequire('../../modules/es.iterator.every');\nrequire('../../modules/es.iterator.filter');\nrequire('../../modules/es.iterator.find');\nrequire('../../modules/es.iterator.flat-map');\nrequire('../../modules/es.iterator.for-each');\nrequire('../../modules/es.iterator.map');\nrequire('../../modules/es.iterator.reduce');\nrequire('../../modules/es.iterator.some');\nrequire('../../modules/es.iterator.take');\nrequire('../../modules/es.iterator.to-array');\nrequire('../../modules/es.reflect.own-keys');\nrequire('../../modules/esnext.iterator.zip-keyed');\nrequire('../../modules/web.dom-collections.iterator');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'zipKeyed');\n"
  },
  {
    "path": "packages/core-js/actual/iterator/zip.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.drop');\nrequire('../../modules/es.iterator.every');\nrequire('../../modules/es.iterator.filter');\nrequire('../../modules/es.iterator.find');\nrequire('../../modules/es.iterator.flat-map');\nrequire('../../modules/es.iterator.for-each');\nrequire('../../modules/es.iterator.map');\nrequire('../../modules/es.iterator.reduce');\nrequire('../../modules/es.iterator.some');\nrequire('../../modules/es.iterator.take');\nrequire('../../modules/es.iterator.to-array');\nrequire('../../modules/esnext.iterator.zip');\nrequire('../../modules/web.dom-collections.iterator');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'zip');\n"
  },
  {
    "path": "packages/core-js/actual/json/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/json');\nrequire('../../modules/esnext.json.is-raw-json');\nrequire('../../modules/esnext.json.parse');\nrequire('../../modules/esnext.json.raw-json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/json/is-raw-json.js",
    "content": "'use strict';\nvar parent = require('../../stable/json/is-raw-json');\nrequire('../../modules/esnext.json.is-raw-json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/json/parse.js",
    "content": "'use strict';\nvar parent = require('../../stable/json/parse');\nrequire('../../modules/esnext.json.parse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/json/raw-json.js",
    "content": "'use strict';\nvar parent = require('../../stable/json/raw-json');\nrequire('../../modules/es.json.stringify');\nrequire('../../modules/esnext.json.raw-json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/json/stringify.js",
    "content": "'use strict';\nvar parent = require('../../stable/json/stringify');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/json/to-string-tag.js",
    "content": "'use strict';\nvar parent = require('../../stable/json/to-string-tag');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/map/get-or-insert-computed.js",
    "content": "'use strict';\nvar parent = require('../../stable/map/get-or-insert-computed');\nrequire('../../modules/esnext.map.get-or-insert-computed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/map/get-or-insert.js",
    "content": "'use strict';\nvar parent = require('../../stable/map/get-or-insert');\nrequire('../../modules/esnext.map.get-or-insert');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/map/group-by.js",
    "content": "'use strict';\nvar parent = require('../../stable/map/group-by');\nrequire('../../modules/esnext.map.group-by');\nrequire('../../modules/esnext.map.get-or-insert');\nrequire('../../modules/esnext.map.get-or-insert-computed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/map/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/map');\nrequire('../../modules/esnext.map.get-or-insert');\nrequire('../../modules/esnext.map.get-or-insert-computed');\nrequire('../../modules/esnext.map.group-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/acosh.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/acosh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/asinh.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/asinh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/atanh.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/atanh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/cbrt.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/cbrt');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/clz32.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/clz32');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/cosh.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/cosh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/expm1.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/expm1');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/f16round.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/f16round');\nrequire('../../modules/esnext.math.f16round');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/fround.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/fround');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/hypot.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/hypot');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/imul.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/imul');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/math');\nrequire('../../modules/esnext.math.f16round');\nrequire('../../modules/esnext.math.sum-precise');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/log10.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/log10');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/log1p.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/log1p');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/log2.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/log2');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/sign.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/sign');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/sinh.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/sinh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/sum-precise.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/sum-precise');\nrequire('../../modules/esnext.math.sum-precise');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/tanh.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/tanh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/to-string-tag.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/to-string-tag');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/math/trunc.js",
    "content": "'use strict';\nvar parent = require('../../stable/math/trunc');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/constructor.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/epsilon.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/epsilon');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/number');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/is-finite.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/is-finite');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/is-integer.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/is-integer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/is-nan.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/is-nan');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/is-safe-integer.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/is-safe-integer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/max-safe-integer.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/max-safe-integer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/min-safe-integer.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/min-safe-integer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/parse-float.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/parse-float');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/parse-int.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/parse-int');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/to-exponential.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/to-exponential');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/to-fixed.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/to-fixed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/to-precision.js",
    "content": "'use strict';\nvar parent = require('../../stable/number/to-precision');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/virtual/index.js",
    "content": "'use strict';\nvar parent = require('../../../stable/number/virtual');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/virtual/to-exponential.js",
    "content": "'use strict';\nvar parent = require('../../../stable/number/virtual/to-exponential');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/virtual/to-fixed.js",
    "content": "'use strict';\nvar parent = require('../../../stable/number/virtual/to-fixed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/number/virtual/to-precision.js",
    "content": "'use strict';\nvar parent = require('../../../stable/number/virtual/to-precision');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/assign.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/assign');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/create.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/create');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/define-getter.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/define-getter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/define-properties.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/define-properties');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/define-property.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/define-property');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/define-setter.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/define-setter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/entries.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/freeze.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/freeze');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/from-entries.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/from-entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/get-own-property-descriptor.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/get-own-property-descriptor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/get-own-property-descriptors.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/get-own-property-descriptors');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/get-own-property-names.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/get-own-property-names');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/get-own-property-symbols.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/get-own-property-symbols');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/get-prototype-of.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/get-prototype-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/group-by.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/group-by');\nrequire('../../modules/esnext.object.group-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/has-own.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/has-own');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/object');\nrequire('../../modules/esnext.object.group-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/is-extensible.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/is-extensible');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/is-frozen.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/is-frozen');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/is-sealed.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/is-sealed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/is.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/is');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/keys.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/lookup-getter.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/lookup-getter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/lookup-setter.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/lookup-setter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/prevent-extensions.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/prevent-extensions');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/proto.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/proto');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/seal.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/seal');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/set-prototype-of.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/set-prototype-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/to-string.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/object/values.js",
    "content": "'use strict';\nvar parent = require('../../stable/object/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/parse-float.js",
    "content": "'use strict';\nvar parent = require('../stable/parse-float');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/parse-int.js",
    "content": "'use strict';\nvar parent = require('../stable/parse-int');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/promise/all-settled.js",
    "content": "'use strict';\nvar parent = require('../../stable/promise/all-settled');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/promise/any.js",
    "content": "'use strict';\nvar parent = require('../../stable/promise/any');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/promise/finally.js",
    "content": "'use strict';\nvar parent = require('../../stable/promise/finally');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/promise/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/promise');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.promise.try');\nrequire('../../modules/esnext.promise.with-resolvers');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/promise/try.js",
    "content": "'use strict';\nvar parent = require('../../stable/promise/try');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.promise.try');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/promise/with-resolvers.js",
    "content": "'use strict';\nvar parent = require('../../stable/promise/with-resolvers');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.promise.with-resolvers');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/queue-microtask.js",
    "content": "'use strict';\nvar parent = require('../stable/queue-microtask');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/apply.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/apply');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/construct.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/construct');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/define-property.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/define-property');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/delete-property.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/delete-property');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/get-own-property-descriptor.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/get-own-property-descriptor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/get-prototype-of.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/get-prototype-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/get.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/get');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/has.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/has');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/is-extensible.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/is-extensible');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/own-keys.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/own-keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/prevent-extensions.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/prevent-extensions');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/set-prototype-of.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/set-prototype-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/set.js",
    "content": "'use strict';\nvar parent = require('../../stable/reflect/set');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/reflect/to-string-tag.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.to-string-tag');\n\nmodule.exports = 'Reflect';\n"
  },
  {
    "path": "packages/core-js/actual/regexp/constructor.js",
    "content": "'use strict';\nvar parent = require('../../stable/regexp/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/regexp/dot-all.js",
    "content": "'use strict';\nvar parent = require('../../stable/regexp/dot-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/regexp/escape.js",
    "content": "'use strict';\nvar parent = require('../../stable/regexp/escape');\nrequire('../../modules/esnext.regexp.escape');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/regexp/flags.js",
    "content": "'use strict';\nvar parent = require('../../stable/regexp/flags');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/regexp/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/regexp');\nrequire('../../modules/esnext.regexp.escape');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/regexp/match.js",
    "content": "'use strict';\nvar parent = require('../../stable/regexp/match');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/regexp/replace.js",
    "content": "'use strict';\nvar parent = require('../../stable/regexp/replace');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/regexp/search.js",
    "content": "'use strict';\nvar parent = require('../../stable/regexp/search');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/regexp/split.js",
    "content": "'use strict';\nvar parent = require('../../stable/regexp/split');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/regexp/sticky.js",
    "content": "'use strict';\nvar parent = require('../../stable/regexp/sticky');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/regexp/test.js",
    "content": "'use strict';\nvar parent = require('../../stable/regexp/test');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/regexp/to-string.js",
    "content": "'use strict';\nvar parent = require('../../stable/regexp/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/self.js",
    "content": "'use strict';\nvar parent = require('../stable/self');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/set/difference.js",
    "content": "'use strict';\nvar parent = require('../../stable/set/difference');\nrequire('../../modules/esnext.set.difference.v2');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/set/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/set');\nrequire('../../modules/esnext.set.difference.v2');\nrequire('../../modules/esnext.set.intersection.v2');\nrequire('../../modules/esnext.set.is-disjoint-from.v2');\nrequire('../../modules/esnext.set.is-subset-of.v2');\nrequire('../../modules/esnext.set.is-superset-of.v2');\nrequire('../../modules/esnext.set.symmetric-difference.v2');\nrequire('../../modules/esnext.set.union.v2');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/set/intersection.js",
    "content": "'use strict';\nvar parent = require('../../stable/set/intersection');\nrequire('../../modules/esnext.set.intersection.v2');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/set/is-disjoint-from.js",
    "content": "'use strict';\nvar parent = require('../../stable/set/is-disjoint-from');\nrequire('../../modules/esnext.set.is-disjoint-from.v2');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/set/is-subset-of.js",
    "content": "'use strict';\nvar parent = require('../../stable/set/is-subset-of');\nrequire('../../modules/esnext.set.is-subset-of.v2');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/set/is-superset-of.js",
    "content": "'use strict';\nvar parent = require('../../stable/set/is-superset-of');\nrequire('../../modules/esnext.set.is-superset-of.v2');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/set/symmetric-difference.js",
    "content": "'use strict';\nvar parent = require('../../stable/set/symmetric-difference');\nrequire('../../modules/esnext.set.symmetric-difference.v2');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/set/union.js",
    "content": "'use strict';\nvar parent = require('../../stable/set/union');\nrequire('../../modules/esnext.set.union.v2');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/set-immediate.js",
    "content": "'use strict';\nvar parent = require('../stable/set-immediate');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/set-interval.js",
    "content": "'use strict';\nvar parent = require('../stable/set-interval');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/set-timeout.js",
    "content": "'use strict';\nvar parent = require('../stable/set-timeout');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/anchor.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/anchor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/at.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/big.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/big');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/blink.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/blink');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/bold.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/bold');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/code-point-at.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/code-point-at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/ends-with.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/ends-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/fixed.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/fixed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/fontcolor.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/fontcolor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/fontsize.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/fontsize');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/from-code-point.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/from-code-point');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/includes.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/string');\n\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.string.is-well-formed');\nrequire('../../modules/esnext.string.to-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/is-well-formed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.string.is-well-formed');\n\nvar parent = require('../../stable/string/is-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/italics.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/italics');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/iterator.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/link.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/link');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/match-all.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/match-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/match.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/match');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/pad-end.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/pad-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/pad-start.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/pad-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/raw.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/raw');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/repeat.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/repeat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/replace-all.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/replace.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/replace');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/search.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/search');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/small.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/small');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/split.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/split');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/starts-with.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/starts-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/strike.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/strike');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/sub.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/sub');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/substr.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/substr');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/sup.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/sup');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/to-well-formed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.string.to-well-formed');\n\nvar parent = require('../../stable/string/to-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/trim-end.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/trim-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/trim-left.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/trim-left');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/trim-right.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/trim-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/trim-start.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/trim-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/trim.js",
    "content": "'use strict';\nvar parent = require('../../stable/string/trim');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/anchor.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/anchor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/at.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/big.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/big');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/blink.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/blink');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/bold.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/bold');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/code-point-at.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/code-point-at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/ends-with.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/ends-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/fixed.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/fixed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/fontcolor.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/fontcolor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/fontsize.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/fontsize');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/includes.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/index.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual');\n\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.string.is-well-formed');\nrequire('../../../modules/esnext.string.to-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/is-well-formed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.string.is-well-formed');\n\nvar parent = require('../../../stable/string/virtual/is-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/italics.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/italics');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/iterator.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/link.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/link');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/match-all.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/match-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/pad-end.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/pad-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/pad-start.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/pad-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/repeat.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/repeat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/replace-all.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/small.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/small');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/starts-with.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/starts-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/strike.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/strike');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/sub.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/sub');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/substr.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/substr');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/sup.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/sup');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/to-well-formed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.string.to-well-formed');\n\nvar parent = require('../../../stable/string/virtual/to-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/trim-end.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/trim-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/trim-left.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/trim-left');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/trim-right.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/trim-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/trim-start.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/trim-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/string/virtual/trim.js",
    "content": "'use strict';\nvar parent = require('../../../stable/string/virtual/trim');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/structured-clone.js",
    "content": "'use strict';\nvar parent = require('../stable/structured-clone');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/suppressed-error.js",
    "content": "'use strict';\nvar parent = require('../stable/suppressed-error');\nrequire('../modules/esnext.suppressed-error.constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/async-dispose.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/async-dispose');\nrequire('../../modules/esnext.symbol.async-dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/async-iterator.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/async-iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/description.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/description');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/dispose.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/dispose');\nrequire('../../modules/esnext.symbol.dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/for.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/for');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/has-instance.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/has-instance');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol');\n\nrequire('../../modules/esnext.function.metadata');\nrequire('../../modules/esnext.symbol.async-dispose');\nrequire('../../modules/esnext.symbol.dispose');\nrequire('../../modules/esnext.symbol.metadata');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/is-concat-spreadable.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/is-concat-spreadable');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/iterator.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/key-for.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/key-for');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/match-all.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/match-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/match.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/match');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/metadata.js",
    "content": "'use strict';\nrequire('../../modules/esnext.function.metadata');\nrequire('../../modules/esnext.symbol.metadata');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('metadata');\n"
  },
  {
    "path": "packages/core-js/actual/symbol/replace.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/replace');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/search.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/search');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/species.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/species');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/split.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/split');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/to-primitive.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/to-primitive');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/to-string-tag.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/to-string-tag');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/symbol/unscopables.js",
    "content": "'use strict';\nvar parent = require('../../stable/symbol/unscopables');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/at.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/copy-within.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/copy-within');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/entries.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/every.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/fill.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/fill');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/filter.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/find-index.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/find-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/find-last-index.js",
    "content": "'use strict';\nrequire('../../modules/esnext.typed-array.find-last-index');\nvar parent = require('../../stable/typed-array/find-last-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/find-last.js",
    "content": "'use strict';\nrequire('../../modules/esnext.typed-array.find-last');\nvar parent = require('../../stable/typed-array/find-last');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/find.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/float32-array.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/float32-array');\nrequire('../../actual/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/float64-array.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/float64-array');\nrequire('../../actual/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/for-each.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/from-base64.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/from-base64');\nrequire('../../modules/esnext.uint8-array.from-base64');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/from-hex.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/from-hex');\nrequire('../../modules/esnext.uint8-array.from-hex');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/from.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/from');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/includes.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/index-of.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.uint8-array.from-base64');\nrequire('../../modules/esnext.uint8-array.from-hex');\nrequire('../../modules/esnext.uint8-array.set-from-base64');\nrequire('../../modules/esnext.uint8-array.set-from-hex');\nrequire('../../modules/esnext.uint8-array.to-base64');\nrequire('../../modules/esnext.uint8-array.to-hex');\nrequire('../../modules/esnext.typed-array.find-last');\nrequire('../../modules/esnext.typed-array.find-last-index');\nrequire('../../modules/esnext.typed-array.to-reversed');\nrequire('../../modules/esnext.typed-array.to-sorted');\nrequire('../../modules/esnext.typed-array.to-spliced');\nrequire('../../modules/esnext.typed-array.with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/int16-array.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/int16-array');\nrequire('../../actual/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/int32-array.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/int32-array');\nrequire('../../actual/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/int8-array.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/int8-array');\nrequire('../../actual/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/iterator.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/join.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/join');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/keys.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/last-index-of.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/last-index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/map.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/methods.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/methods');\nrequire('../../modules/esnext.uint8-array.from-base64');\nrequire('../../modules/esnext.uint8-array.from-hex');\nrequire('../../modules/esnext.uint8-array.set-from-base64');\nrequire('../../modules/esnext.uint8-array.set-from-hex');\nrequire('../../modules/esnext.uint8-array.to-base64');\nrequire('../../modules/esnext.uint8-array.to-hex');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.typed-array.find-last');\nrequire('../../modules/esnext.typed-array.find-last-index');\nrequire('../../modules/esnext.typed-array.to-reversed');\nrequire('../../modules/esnext.typed-array.to-sorted');\nrequire('../../modules/esnext.typed-array.to-spliced');\nrequire('../../modules/esnext.typed-array.with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/of.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/reduce-right.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/reduce-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/reduce.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/reverse.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/reverse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/set-from-base64.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/set-from-base64');\nrequire('../../modules/esnext.uint8-array.set-from-base64');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/set-from-hex.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/set-from-hex');\nrequire('../../modules/esnext.uint8-array.set-from-hex');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/set.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/set');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/slice.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/some.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/sort.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/sort');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/subarray.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/subarray');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/to-base64.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/to-base64');\nrequire('../../modules/esnext.uint8-array.to-base64');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/to-hex.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/to-hex');\nrequire('../../modules/esnext.uint8-array.to-hex');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/to-locale-string.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/to-locale-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/to-reversed.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/to-reversed');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.typed-array.to-reversed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/to-sorted.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/to-sorted');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.typed-array.to-sorted');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/to-spliced.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.typed-array.to-spliced');\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/to-string.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/uint16-array.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/uint16-array');\nrequire('../../actual/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/uint32-array.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/uint32-array');\nrequire('../../actual/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/uint8-array.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/uint8-array');\nrequire('../../actual/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/uint8-clamped-array.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/uint8-clamped-array');\nrequire('../../actual/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/values.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/typed-array/with.js",
    "content": "'use strict';\nvar parent = require('../../stable/typed-array/with');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.typed-array.with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/unescape.js",
    "content": "'use strict';\nvar parent = require('../stable/unescape');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/url/can-parse.js",
    "content": "'use strict';\nvar parent = require('../../stable/url/can-parse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/url/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/url');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/url/parse.js",
    "content": "'use strict';\nvar parent = require('../../stable/url/parse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/url/to-json.js",
    "content": "'use strict';\nvar parent = require('../../stable/url/to-json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/url-search-params/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/url-search-params');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/weak-map/get-or-insert-computed.js",
    "content": "'use strict';\nvar parent = require('../../stable/weak-map/get-or-insert-computed');\nrequire('../../modules/esnext.weak-map.get-or-insert-computed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/weak-map/get-or-insert.js",
    "content": "'use strict';\nvar parent = require('../../stable/weak-map/get-or-insert');\nrequire('../../modules/esnext.weak-map.get-or-insert');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/weak-map/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/weak-map');\nrequire('../../modules/esnext.weak-map.get-or-insert');\nrequire('../../modules/esnext.weak-map.get-or-insert-computed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/actual/weak-set/index.js",
    "content": "'use strict';\nvar parent = require('../../stable/weak-set');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/configurator.js",
    "content": "'use strict';\nvar hasOwn = require('./internals/has-own-property');\nvar isArray = require('./internals/is-array');\nvar isForced = require('./internals/is-forced');\nvar shared = require('./internals/shared-store');\n\nvar data = isForced.data;\nvar normalize = isForced.normalize;\nvar USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';\nvar ASYNC_ITERATOR_PROTOTYPE = 'AsyncIteratorPrototype';\n\nvar setAggressivenessLevel = function (object, constant) {\n  if (isArray(object)) for (var i = 0; i < object.length; i++) data[normalize(object[i])] = constant;\n};\n\nmodule.exports = function (options) {\n  if (options && typeof options == 'object') {\n    setAggressivenessLevel(options.useNative, isForced.NATIVE);\n    setAggressivenessLevel(options.usePolyfill, isForced.POLYFILL);\n    setAggressivenessLevel(options.useFeatureDetection, null);\n    if (hasOwn(options, USE_FUNCTION_CONSTRUCTOR)) {\n      shared[USE_FUNCTION_CONSTRUCTOR] = !!options[USE_FUNCTION_CONSTRUCTOR];\n    }\n    if (hasOwn(options, ASYNC_ITERATOR_PROTOTYPE)) {\n      shared[ASYNC_ITERATOR_PROTOTYPE] = options[ASYNC_ITERATOR_PROTOTYPE];\n    }\n  }\n};\n"
  },
  {
    "path": "packages/core-js/es/README.md",
    "content": "This folder contains entry points for [stable ECMAScript features](https://github.com/zloirock/core-js/#ecmascript) with dependencies.\n"
  },
  {
    "path": "packages/core-js/es/aggregate-error.js",
    "content": "'use strict';\nrequire('../modules/es.error.cause');\nrequire('../modules/es.aggregate-error');\nrequire('../modules/es.aggregate-error.cause');\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.string.iterator');\nvar path = require('../internals/path');\n\nmodule.exports = path.AggregateError;\n"
  },
  {
    "path": "packages/core-js/es/array/at.js",
    "content": "'use strict';\nrequire('../../modules/es.array.at');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'at');\n"
  },
  {
    "path": "packages/core-js/es/array/concat.js",
    "content": "'use strict';\nrequire('../../modules/es.array.concat');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'concat');\n"
  },
  {
    "path": "packages/core-js/es/array/copy-within.js",
    "content": "'use strict';\nrequire('../../modules/es.array.copy-within');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'copyWithin');\n"
  },
  {
    "path": "packages/core-js/es/array/entries.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'entries');\n"
  },
  {
    "path": "packages/core-js/es/array/every.js",
    "content": "'use strict';\nrequire('../../modules/es.array.every');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'every');\n"
  },
  {
    "path": "packages/core-js/es/array/fill.js",
    "content": "'use strict';\nrequire('../../modules/es.array.fill');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'fill');\n"
  },
  {
    "path": "packages/core-js/es/array/filter.js",
    "content": "'use strict';\nrequire('../../modules/es.array.filter');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'filter');\n"
  },
  {
    "path": "packages/core-js/es/array/find-index.js",
    "content": "'use strict';\nrequire('../../modules/es.array.find-index');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'findIndex');\n"
  },
  {
    "path": "packages/core-js/es/array/find-last-index.js",
    "content": "'use strict';\nrequire('../../modules/es.array.find-last-index');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'findLastIndex');\n"
  },
  {
    "path": "packages/core-js/es/array/find-last.js",
    "content": "'use strict';\nrequire('../../modules/es.array.find-last');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'findLast');\n"
  },
  {
    "path": "packages/core-js/es/array/find.js",
    "content": "'use strict';\nrequire('../../modules/es.array.find');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'find');\n"
  },
  {
    "path": "packages/core-js/es/array/flat-map.js",
    "content": "'use strict';\nrequire('../../modules/es.array.flat-map');\nrequire('../../modules/es.array.unscopables.flat-map');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'flatMap');\n"
  },
  {
    "path": "packages/core-js/es/array/flat.js",
    "content": "'use strict';\nrequire('../../modules/es.array.flat');\nrequire('../../modules/es.array.unscopables.flat');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'flat');\n"
  },
  {
    "path": "packages/core-js/es/array/for-each.js",
    "content": "'use strict';\nrequire('../../modules/es.array.for-each');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'forEach');\n"
  },
  {
    "path": "packages/core-js/es/array/from-async.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.array.from-async');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.fromAsync;\n"
  },
  {
    "path": "packages/core-js/es/array/from.js",
    "content": "'use strict';\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n"
  },
  {
    "path": "packages/core-js/es/array/includes.js",
    "content": "'use strict';\nrequire('../../modules/es.array.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'includes');\n"
  },
  {
    "path": "packages/core-js/es/array/index-of.js",
    "content": "'use strict';\nrequire('../../modules/es.array.index-of');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'indexOf');\n"
  },
  {
    "path": "packages/core-js/es/array/index.js",
    "content": "'use strict';\nrequire('../../modules/es.array.from');\nrequire('../../modules/es.array.is-array');\nrequire('../../modules/es.array.of');\nrequire('../../modules/es.array.at');\nrequire('../../modules/es.array.concat');\nrequire('../../modules/es.array.copy-within');\nrequire('../../modules/es.array.every');\nrequire('../../modules/es.array.fill');\nrequire('../../modules/es.array.filter');\nrequire('../../modules/es.array.find');\nrequire('../../modules/es.array.find-index');\nrequire('../../modules/es.array.find-last');\nrequire('../../modules/es.array.find-last-index');\nrequire('../../modules/es.array.flat');\nrequire('../../modules/es.array.flat-map');\nrequire('../../modules/es.array.for-each');\nrequire('../../modules/es.array.includes');\nrequire('../../modules/es.array.index-of');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.array.from-async');\nrequire('../../modules/es.array.join');\nrequire('../../modules/es.array.last-index-of');\nrequire('../../modules/es.array.map');\nrequire('../../modules/es.array.push');\nrequire('../../modules/es.array.reduce');\nrequire('../../modules/es.array.reduce-right');\nrequire('../../modules/es.array.reverse');\nrequire('../../modules/es.array.slice');\nrequire('../../modules/es.array.some');\nrequire('../../modules/es.array.sort');\nrequire('../../modules/es.array.species');\nrequire('../../modules/es.array.splice');\nrequire('../../modules/es.array.to-reversed');\nrequire('../../modules/es.array.to-sorted');\nrequire('../../modules/es.array.to-spliced');\nrequire('../../modules/es.array.unscopables.flat');\nrequire('../../modules/es.array.unscopables.flat-map');\nrequire('../../modules/es.array.unshift');\nrequire('../../modules/es.array.with');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.promise');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array;\n"
  },
  {
    "path": "packages/core-js/es/array/is-array.js",
    "content": "'use strict';\nrequire('../../modules/es.array.is-array');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.isArray;\n"
  },
  {
    "path": "packages/core-js/es/array/iterator.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'values');\n"
  },
  {
    "path": "packages/core-js/es/array/join.js",
    "content": "'use strict';\nrequire('../../modules/es.array.join');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'join');\n"
  },
  {
    "path": "packages/core-js/es/array/keys.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'keys');\n"
  },
  {
    "path": "packages/core-js/es/array/last-index-of.js",
    "content": "'use strict';\nrequire('../../modules/es.array.last-index-of');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'lastIndexOf');\n"
  },
  {
    "path": "packages/core-js/es/array/map.js",
    "content": "'use strict';\nrequire('../../modules/es.array.map');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'map');\n"
  },
  {
    "path": "packages/core-js/es/array/of.js",
    "content": "'use strict';\nrequire('../../modules/es.array.of');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.of;\n"
  },
  {
    "path": "packages/core-js/es/array/push.js",
    "content": "'use strict';\nrequire('../../modules/es.array.push');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'push');\n"
  },
  {
    "path": "packages/core-js/es/array/reduce-right.js",
    "content": "'use strict';\nrequire('../../modules/es.array.reduce-right');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'reduceRight');\n"
  },
  {
    "path": "packages/core-js/es/array/reduce.js",
    "content": "'use strict';\nrequire('../../modules/es.array.reduce');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'reduce');\n"
  },
  {
    "path": "packages/core-js/es/array/reverse.js",
    "content": "'use strict';\nrequire('../../modules/es.array.reverse');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'reverse');\n"
  },
  {
    "path": "packages/core-js/es/array/slice.js",
    "content": "'use strict';\nrequire('../../modules/es.array.slice');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'slice');\n"
  },
  {
    "path": "packages/core-js/es/array/some.js",
    "content": "'use strict';\nrequire('../../modules/es.array.some');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'some');\n"
  },
  {
    "path": "packages/core-js/es/array/sort.js",
    "content": "'use strict';\nrequire('../../modules/es.array.sort');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'sort');\n"
  },
  {
    "path": "packages/core-js/es/array/splice.js",
    "content": "'use strict';\nrequire('../../modules/es.array.splice');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'splice');\n"
  },
  {
    "path": "packages/core-js/es/array/to-reversed.js",
    "content": "'use strict';\nrequire('../../modules/es.array.to-reversed');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'toReversed');\n"
  },
  {
    "path": "packages/core-js/es/array/to-sorted.js",
    "content": "'use strict';\nrequire('../../modules/es.array.sort');\nrequire('../../modules/es.array.to-sorted');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'toSorted');\n"
  },
  {
    "path": "packages/core-js/es/array/to-spliced.js",
    "content": "'use strict';\nrequire('../../modules/es.array.to-spliced');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'toSpliced');\n"
  },
  {
    "path": "packages/core-js/es/array/unshift.js",
    "content": "'use strict';\nrequire('../../modules/es.array.unshift');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'unshift');\n"
  },
  {
    "path": "packages/core-js/es/array/values.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'values');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/at.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.at');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'at');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/concat.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.concat');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'concat');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/copy-within.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.copy-within');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'copyWithin');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/entries.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.iterator');\nrequire('../../../modules/es.object.to-string');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'entries');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/every.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.every');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'every');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/fill.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.fill');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'fill');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/filter.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.filter');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'filter');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/find-index.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.find-index');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'findIndex');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/find-last-index.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.find-last-index');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'findLastIndex');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/find-last.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.find-last');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'findLast');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/find.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.find');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'find');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/flat-map.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.flat-map');\nrequire('../../../modules/es.array.unscopables.flat-map');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'flatMap');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/flat.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.flat');\nrequire('../../../modules/es.array.unscopables.flat');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'flat');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/for-each.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.for-each');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'forEach');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/includes.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.includes');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'includes');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/index-of.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.index-of');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'indexOf');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/index.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.at');\nrequire('../../../modules/es.array.concat');\nrequire('../../../modules/es.array.copy-within');\nrequire('../../../modules/es.array.every');\nrequire('../../../modules/es.array.fill');\nrequire('../../../modules/es.array.filter');\nrequire('../../../modules/es.array.find');\nrequire('../../../modules/es.array.find-index');\nrequire('../../../modules/es.array.find-last');\nrequire('../../../modules/es.array.find-last-index');\nrequire('../../../modules/es.array.flat');\nrequire('../../../modules/es.array.flat-map');\nrequire('../../../modules/es.array.for-each');\nrequire('../../../modules/es.array.includes');\nrequire('../../../modules/es.array.index-of');\nrequire('../../../modules/es.array.iterator');\nrequire('../../../modules/es.array.join');\nrequire('../../../modules/es.array.last-index-of');\nrequire('../../../modules/es.array.map');\nrequire('../../../modules/es.array.push');\nrequire('../../../modules/es.array.reduce');\nrequire('../../../modules/es.array.reduce-right');\nrequire('../../../modules/es.array.reverse');\nrequire('../../../modules/es.array.slice');\nrequire('../../../modules/es.array.some');\nrequire('../../../modules/es.array.sort');\nrequire('../../../modules/es.array.species');\nrequire('../../../modules/es.array.splice');\nrequire('../../../modules/es.array.to-reversed');\nrequire('../../../modules/es.array.to-sorted');\nrequire('../../../modules/es.array.to-spliced');\nrequire('../../../modules/es.array.unscopables.flat');\nrequire('../../../modules/es.array.unscopables.flat-map');\nrequire('../../../modules/es.array.unshift');\nrequire('../../../modules/es.array.with');\nrequire('../../../modules/es.object.to-string');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/iterator.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.iterator');\nrequire('../../../modules/es.object.to-string');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'values');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/join.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.join');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'join');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/keys.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.iterator');\nrequire('../../../modules/es.object.to-string');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'keys');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/last-index-of.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.last-index-of');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'lastIndexOf');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/map.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.map');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'map');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/push.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.push');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'push');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/reduce-right.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.reduce-right');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'reduceRight');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/reduce.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.reduce');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'reduce');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/reverse.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.reverse');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'reverse');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/slice.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.slice');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'slice');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/some.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.some');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'some');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/sort.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.sort');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'sort');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/splice.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.splice');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'splice');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/to-reversed.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.to-reversed');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'toReversed');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/to-sorted.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.sort');\nrequire('../../../modules/es.array.to-sorted');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'toSorted');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/to-spliced.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.to-spliced');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'toSpliced');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/unshift.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.unshift');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'unshift');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/values.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.iterator');\nrequire('../../../modules/es.object.to-string');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'values');\n"
  },
  {
    "path": "packages/core-js/es/array/virtual/with.js",
    "content": "'use strict';\nrequire('../../../modules/es.array.with');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'with');\n"
  },
  {
    "path": "packages/core-js/es/array/with.js",
    "content": "'use strict';\nrequire('../../modules/es.array.with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'with');\n"
  },
  {
    "path": "packages/core-js/es/array-buffer/constructor.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.array-buffer.detached');\nrequire('../../modules/es.array-buffer.transfer');\nrequire('../../modules/es.array-buffer.transfer-to-fixed-length');\nrequire('../../modules/es.object.to-string');\nvar path = require('../../internals/path');\n\nmodule.exports = path.ArrayBuffer;\n"
  },
  {
    "path": "packages/core-js/es/array-buffer/detached.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.array-buffer.detached');\n"
  },
  {
    "path": "packages/core-js/es/array-buffer/index.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.is-view');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.data-view');\nrequire('../../modules/es.array-buffer.detached');\nrequire('../../modules/es.array-buffer.transfer');\nrequire('../../modules/es.array-buffer.transfer-to-fixed-length');\nrequire('../../modules/es.object.to-string');\nvar path = require('../../internals/path');\n\nmodule.exports = path.ArrayBuffer;\n"
  },
  {
    "path": "packages/core-js/es/array-buffer/is-view.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.is-view');\nvar path = require('../../internals/path');\n\nmodule.exports = path.ArrayBuffer.isView;\n"
  },
  {
    "path": "packages/core-js/es/array-buffer/slice.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.slice');\n"
  },
  {
    "path": "packages/core-js/es/array-buffer/transfer-to-fixed-length.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.data-view');\nrequire('../../modules/es.array-buffer.transfer-to-fixed-length');\n"
  },
  {
    "path": "packages/core-js/es/array-buffer/transfer.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.data-view');\nrequire('../../modules/es.array-buffer.transfer');\n"
  },
  {
    "path": "packages/core-js/es/async-disposable-stack/constructor.js",
    "content": "'use strict';\nrequire('../../modules/es.error.cause');\nrequire('../../modules/es.error.to-string');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.suppressed-error.constructor');\nrequire('../../modules/es.async-disposable-stack.constructor');\nrequire('../../modules/es.async-iterator.async-dispose');\nrequire('../../modules/es.iterator.dispose');\nvar path = require('../../internals/path');\n\nmodule.exports = path.AsyncDisposableStack;\n"
  },
  {
    "path": "packages/core-js/es/async-disposable-stack/index.js",
    "content": "'use strict';\nrequire('../../modules/es.error.cause');\nrequire('../../modules/es.error.to-string');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.suppressed-error.constructor');\nrequire('../../modules/es.async-disposable-stack.constructor');\nrequire('../../modules/es.async-iterator.async-dispose');\nrequire('../../modules/es.iterator.dispose');\nvar path = require('../../internals/path');\n\nmodule.exports = path.AsyncDisposableStack;\n"
  },
  {
    "path": "packages/core-js/es/async-iterator/async-dispose.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.async-iterator.async-dispose');\n"
  },
  {
    "path": "packages/core-js/es/async-iterator/index.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.async-iterator.async-dispose');\n"
  },
  {
    "path": "packages/core-js/es/data-view/get-float16.js",
    "content": "'use strict';\nrequire('../../modules/es.data-view.get-float16');\n"
  },
  {
    "path": "packages/core-js/es/data-view/index.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.data-view');\nrequire('../../modules/es.data-view.get-float16');\nrequire('../../modules/es.data-view.set-float16');\nrequire('../../modules/es.object.to-string');\nvar path = require('../../internals/path');\n\nmodule.exports = path.DataView;\n"
  },
  {
    "path": "packages/core-js/es/data-view/set-float16.js",
    "content": "'use strict';\nrequire('../../modules/es.data-view.set-float16');\n"
  },
  {
    "path": "packages/core-js/es/date/get-year.js",
    "content": "'use strict';\nrequire('../../modules/es.date.get-year');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Date', 'getYear');\n"
  },
  {
    "path": "packages/core-js/es/date/index.js",
    "content": "'use strict';\nrequire('../../modules/es.date.get-year');\nrequire('../../modules/es.date.now');\nrequire('../../modules/es.date.set-year');\nrequire('../../modules/es.date.to-gmt-string');\nrequire('../../modules/es.date.to-iso-string');\nrequire('../../modules/es.date.to-json');\nrequire('../../modules/es.date.to-string');\nrequire('../../modules/es.date.to-primitive');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Date;\n"
  },
  {
    "path": "packages/core-js/es/date/now.js",
    "content": "'use strict';\nrequire('../../modules/es.date.now');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Date.now;\n"
  },
  {
    "path": "packages/core-js/es/date/set-year.js",
    "content": "'use strict';\nrequire('../../modules/es.date.set-year');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Date', 'setYear');\n"
  },
  {
    "path": "packages/core-js/es/date/to-gmt-string.js",
    "content": "'use strict';\nrequire('../../modules/es.date.to-gmt-string');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Date', 'toGMTString');\n"
  },
  {
    "path": "packages/core-js/es/date/to-iso-string.js",
    "content": "'use strict';\nrequire('../../modules/es.date.to-iso-string');\nrequire('../../modules/es.date.to-json');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Date', 'toISOString');\n"
  },
  {
    "path": "packages/core-js/es/date/to-json.js",
    "content": "'use strict';\nrequire('../../modules/es.date.to-json');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Date', 'toJSON');\n"
  },
  {
    "path": "packages/core-js/es/date/to-primitive.js",
    "content": "'use strict';\nrequire('../../modules/es.date.to-primitive');\nvar uncurryThis = require('../../internals/function-uncurry-this');\nvar toPrimitive = require('../../internals/date-to-primitive');\n\nmodule.exports = uncurryThis(toPrimitive);\n"
  },
  {
    "path": "packages/core-js/es/date/to-string.js",
    "content": "'use strict';\nrequire('../../modules/es.date.to-string');\nvar uncurryThis = require('../../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis(Date.prototype.toString);\n"
  },
  {
    "path": "packages/core-js/es/disposable-stack/constructor.js",
    "content": "'use strict';\nrequire('../../modules/es.error.cause');\nrequire('../../modules/es.error.to-string');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.suppressed-error.constructor');\nrequire('../../modules/es.disposable-stack.constructor');\nrequire('../../modules/es.iterator.dispose');\nvar path = require('../../internals/path');\n\nmodule.exports = path.DisposableStack;\n"
  },
  {
    "path": "packages/core-js/es/disposable-stack/index.js",
    "content": "'use strict';\nrequire('../../modules/es.error.cause');\nrequire('../../modules/es.error.to-string');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.suppressed-error.constructor');\nrequire('../../modules/es.disposable-stack.constructor');\nrequire('../../modules/es.iterator.dispose');\nvar path = require('../../internals/path');\n\nmodule.exports = path.DisposableStack;\n"
  },
  {
    "path": "packages/core-js/es/error/constructor.js",
    "content": "'use strict';\nrequire('../../modules/es.error.cause');\nvar path = require('../../internals/path');\n\nmodule.exports = path;\n"
  },
  {
    "path": "packages/core-js/es/error/index.js",
    "content": "'use strict';\nrequire('../../modules/es.error.cause');\nrequire('../../modules/es.error.is-error');\nrequire('../../modules/es.error.to-string');\nvar path = require('../../internals/path');\n\nmodule.exports = path;\n"
  },
  {
    "path": "packages/core-js/es/error/is-error.js",
    "content": "'use strict';\nrequire('../../modules/es.object.create');\nrequire('../../modules/es.error.is-error');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Error.isError;\n"
  },
  {
    "path": "packages/core-js/es/error/to-string.js",
    "content": "'use strict';\nrequire('../../modules/es.error.to-string');\nvar toString = require('../../internals/error-to-string');\n\nmodule.exports = toString;\n"
  },
  {
    "path": "packages/core-js/es/escape.js",
    "content": "'use strict';\nrequire('../modules/es.escape');\nvar path = require('../internals/path');\n\nmodule.exports = path.escape;\n"
  },
  {
    "path": "packages/core-js/es/function/bind.js",
    "content": "'use strict';\nrequire('../../modules/es.function.bind');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Function', 'bind');\n"
  },
  {
    "path": "packages/core-js/es/function/has-instance.js",
    "content": "'use strict';\nrequire('../../modules/es.function.has-instance');\nvar wellKnownSymbol = require('../../internals/well-known-symbol');\n\nmodule.exports = Function[wellKnownSymbol('hasInstance')];\n"
  },
  {
    "path": "packages/core-js/es/function/index.js",
    "content": "'use strict';\nrequire('../../modules/es.function.bind');\nrequire('../../modules/es.function.name');\nrequire('../../modules/es.function.has-instance');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Function;\n"
  },
  {
    "path": "packages/core-js/es/function/name.js",
    "content": "'use strict';\nrequire('../../modules/es.function.name');\n"
  },
  {
    "path": "packages/core-js/es/function/virtual/bind.js",
    "content": "'use strict';\nrequire('../../../modules/es.function.bind');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Function', 'bind');\n"
  },
  {
    "path": "packages/core-js/es/function/virtual/index.js",
    "content": "'use strict';\nrequire('../../../modules/es.function.bind');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Function');\n"
  },
  {
    "path": "packages/core-js/es/get-iterator-method.js",
    "content": "'use strict';\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.string.iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = getIteratorMethod;\n"
  },
  {
    "path": "packages/core-js/es/get-iterator.js",
    "content": "'use strict';\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.string.iterator');\nvar getIterator = require('../internals/get-iterator');\n\nmodule.exports = getIterator;\n"
  },
  {
    "path": "packages/core-js/es/global-this.js",
    "content": "'use strict';\nrequire('../modules/es.global-this');\n\nmodule.exports = require('../internals/global-this');\n"
  },
  {
    "path": "packages/core-js/es/instance/at.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar arrayMethod = require('../array/virtual/at');\nvar stringMethod = require('../string/virtual/at');\n\nvar ArrayPrototype = Array.prototype;\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.at;\n  if (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.at)) return arrayMethod;\n  if (typeof it == 'string' || it === StringPrototype || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.at)) {\n    return stringMethod;\n  } return own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/bind.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../function/virtual/bind');\n\nvar FunctionPrototype = Function.prototype;\n\nmodule.exports = function (it) {\n  var own = it.bind;\n  return it === FunctionPrototype || (isPrototypeOf(FunctionPrototype, it) && own === FunctionPrototype.bind) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/code-point-at.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/code-point-at');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.codePointAt;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.codePointAt) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/concat.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/concat');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.concat;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.concat) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/copy-within.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/copy-within');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.copyWithin;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.copyWithin) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/ends-with.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/ends-with');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.endsWith;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.endsWith) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/entries.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/entries');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.entries;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.entries) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/every.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/every');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.every;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.every) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/fill.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/fill');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.fill;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.fill) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/filter.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/filter');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.filter;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.filter) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/find-index.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/find-index');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.findIndex;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.findIndex) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/find-last-index.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/find-last-index');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.findLastIndex;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.findLastIndex) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/find-last.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/find-last');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.findLast;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.findLast) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/find.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/find');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.find;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.find) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/flags.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar flags = require('../regexp/flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (it) {\n  return (it === RegExpPrototype || isPrototypeOf(RegExpPrototype, it)) ? flags(it) : it.flags;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/flat-map.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/flat-map');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.flatMap;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.flatMap) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/flat.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/flat');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.flat;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.flat) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/for-each.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/for-each');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.forEach;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.forEach) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/includes.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar arrayMethod = require('../array/virtual/includes');\nvar stringMethod = require('../string/virtual/includes');\n\nvar ArrayPrototype = Array.prototype;\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.includes;\n  if (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.includes)) return arrayMethod;\n  if (typeof it == 'string' || it === StringPrototype || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.includes)) {\n    return stringMethod;\n  } return own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/index-of.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/index-of');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.indexOf;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.indexOf) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/is-well-formed.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/is-well-formed');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.isWellFormed;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.isWellFormed) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/keys.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/keys');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.keys;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.keys) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/last-index-of.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/last-index-of');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.lastIndexOf;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.lastIndexOf) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/map.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/map');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.map;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.map) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/match-all.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/match-all');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.matchAll;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.matchAll) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/pad-end.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/pad-end');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.padEnd;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.padEnd) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/pad-start.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/pad-start');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.padStart;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.padStart) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/push.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/push');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.push;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.push) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/reduce-right.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/reduce-right');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.reduceRight;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.reduceRight) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/reduce.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/reduce');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.reduce;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.reduce) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/repeat.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/repeat');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.repeat;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.repeat) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/replace-all.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/replace-all');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.replaceAll;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.replaceAll) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/reverse.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/reverse');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.reverse;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.reverse) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/slice.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/slice');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.slice;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.slice) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/some.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/some');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.some;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.some) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/sort.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/sort');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.sort;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.sort) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/splice.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/splice');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.splice;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.splice) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/starts-with.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/starts-with');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.startsWith;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.startsWith) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/to-reversed.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/to-reversed');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.toReversed;\n  return (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.toReversed)) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/to-sorted.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/to-sorted');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.toSorted;\n  return (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.toSorted)) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/to-spliced.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/to-spliced');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.toSpliced;\n  return (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.toSpliced)) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/to-well-formed.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/to-well-formed');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.toWellFormed;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.toWellFormed) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/trim-end.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/trim-end');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.trimEnd;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.trimEnd) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/trim-left.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/trim-left');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.trimLeft;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.trimLeft) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/trim-right.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/trim-right');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.trimRight;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.trimRight) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/trim-start.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/trim-start');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.trimStart;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.trimStart) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/trim.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/trim');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.trim;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.trim) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/unshift.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/unshift');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.unshift;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.unshift) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/values.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/values');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.values;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.values) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/instance/with.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/with');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it['with'];\n  return (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype['with'])) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/es/is-iterable.js",
    "content": "'use strict';\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.string.iterator');\nvar isIterable = require('../internals/is-iterable');\n\nmodule.exports = isIterable;\n"
  },
  {
    "path": "packages/core-js/es/iterator/concat.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.drop');\nrequire('../../modules/es.iterator.every');\nrequire('../../modules/es.iterator.filter');\nrequire('../../modules/es.iterator.find');\nrequire('../../modules/es.iterator.flat-map');\nrequire('../../modules/es.iterator.for-each');\nrequire('../../modules/es.iterator.map');\nrequire('../../modules/es.iterator.reduce');\nrequire('../../modules/es.iterator.some');\nrequire('../../modules/es.iterator.take');\nrequire('../../modules/es.iterator.to-array');\nrequire('../../modules/es.iterator.concat');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Iterator.concat;\n"
  },
  {
    "path": "packages/core-js/es/iterator/dispose.js",
    "content": "'use strict';\nrequire('../../modules/es.iterator.dispose');\n"
  },
  {
    "path": "packages/core-js/es/iterator/drop.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.drop');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'drop');\n"
  },
  {
    "path": "packages/core-js/es/iterator/every.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.every');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'every');\n"
  },
  {
    "path": "packages/core-js/es/iterator/filter.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.filter');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'filter');\n"
  },
  {
    "path": "packages/core-js/es/iterator/find.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.find');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'find');\n"
  },
  {
    "path": "packages/core-js/es/iterator/flat-map.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.flat-map');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'flatMap');\n"
  },
  {
    "path": "packages/core-js/es/iterator/for-each.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.for-each');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'forEach');\n"
  },
  {
    "path": "packages/core-js/es/iterator/from.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.drop');\nrequire('../../modules/es.iterator.every');\nrequire('../../modules/es.iterator.filter');\nrequire('../../modules/es.iterator.find');\nrequire('../../modules/es.iterator.flat-map');\nrequire('../../modules/es.iterator.for-each');\nrequire('../../modules/es.iterator.from');\nrequire('../../modules/es.iterator.map');\nrequire('../../modules/es.iterator.reduce');\nrequire('../../modules/es.iterator.some');\nrequire('../../modules/es.iterator.take');\nrequire('../../modules/es.iterator.to-array');\n\nvar path = require('../../internals/path');\n\nmodule.exports = path.Iterator.from;\n"
  },
  {
    "path": "packages/core-js/es/iterator/index.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.concat');\nrequire('../../modules/es.iterator.dispose');\nrequire('../../modules/es.iterator.drop');\nrequire('../../modules/es.iterator.every');\nrequire('../../modules/es.iterator.filter');\nrequire('../../modules/es.iterator.find');\nrequire('../../modules/es.iterator.flat-map');\nrequire('../../modules/es.iterator.for-each');\nrequire('../../modules/es.iterator.from');\nrequire('../../modules/es.iterator.map');\nrequire('../../modules/es.iterator.reduce');\nrequire('../../modules/es.iterator.some');\nrequire('../../modules/es.iterator.take');\nrequire('../../modules/es.iterator.to-array');\n\nvar path = require('../../internals/path');\n\nmodule.exports = path.Iterator;\n"
  },
  {
    "path": "packages/core-js/es/iterator/map.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.map');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'map');\n"
  },
  {
    "path": "packages/core-js/es/iterator/reduce.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.reduce');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'reduce');\n"
  },
  {
    "path": "packages/core-js/es/iterator/some.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.some');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'some');\n"
  },
  {
    "path": "packages/core-js/es/iterator/take.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.take');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'take');\n"
  },
  {
    "path": "packages/core-js/es/iterator/to-array.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.to-array');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'toArray');\n"
  },
  {
    "path": "packages/core-js/es/json/index.js",
    "content": "'use strict';\nrequire('../../modules/es.object.create');\nrequire('../../modules/es.object.freeze');\nrequire('../../modules/es.object.keys');\nrequire('../../modules/es.date.to-json');\nrequire('../../modules/es.json.is-raw-json');\nrequire('../../modules/es.json.parse');\nrequire('../../modules/es.json.raw-json');\nrequire('../../modules/es.json.stringify');\nrequire('../../modules/es.json.to-string-tag');\nvar path = require('../../internals/path');\n\n// eslint-disable-next-line es/no-json -- safe\nmodule.exports = path.JSON || (path.JSON = { stringify: JSON.stringify });\n"
  },
  {
    "path": "packages/core-js/es/json/is-raw-json.js",
    "content": "'use strict';\nrequire('../../modules/es.json.is-raw-json');\nvar path = require('../../internals/path');\n\nmodule.exports = path.JSON.isRawJSON;\n"
  },
  {
    "path": "packages/core-js/es/json/parse.js",
    "content": "'use strict';\nrequire('../../modules/es.object.keys');\nrequire('../../modules/es.json.parse');\nvar path = require('../../internals/path');\n\nmodule.exports = path.JSON.parse;\n"
  },
  {
    "path": "packages/core-js/es/json/raw-json.js",
    "content": "'use strict';\nrequire('../../modules/es.object.create');\nrequire('../../modules/es.object.freeze');\nrequire('../../modules/es.json.raw-json');\nvar path = require('../../internals/path');\n\nmodule.exports = path.JSON.rawJSON;\n"
  },
  {
    "path": "packages/core-js/es/json/stringify.js",
    "content": "'use strict';\nrequire('../../modules/es.date.to-json');\nrequire('../../modules/es.json.stringify');\nvar path = require('../../internals/path');\nvar apply = require('../../internals/function-apply');\n\n// eslint-disable-next-line es/no-json -- safe\nif (!path.JSON) path.JSON = { stringify: JSON.stringify };\n\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nmodule.exports = function stringify(it, replacer, space) {\n  return apply(path.JSON.stringify, null, arguments);\n};\n"
  },
  {
    "path": "packages/core-js/es/json/to-string-tag.js",
    "content": "'use strict';\nrequire('../../modules/es.json.to-string-tag');\n\nmodule.exports = 'JSON';\n"
  },
  {
    "path": "packages/core-js/es/map/get-or-insert-computed.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/es.map.get-or-insert-computed');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'getOrInsertComputed');\n"
  },
  {
    "path": "packages/core-js/es/map/get-or-insert.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/es.map.get-or-insert');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'getOrInsert');\n"
  },
  {
    "path": "packages/core-js/es/map/group-by.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.map');\nrequire('../../modules/es.map.group-by');\nrequire('../../modules/es.map.get-or-insert');\nrequire('../../modules/es.map.get-or-insert-computed');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map.groupBy;\n"
  },
  {
    "path": "packages/core-js/es/map/index.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.map');\nrequire('../../modules/es.map.group-by');\nrequire('../../modules/es.map.get-or-insert');\nrequire('../../modules/es.map.get-or-insert-computed');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map;\n"
  },
  {
    "path": "packages/core-js/es/math/acosh.js",
    "content": "'use strict';\nrequire('../../modules/es.math.acosh');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.acosh;\n"
  },
  {
    "path": "packages/core-js/es/math/asinh.js",
    "content": "'use strict';\nrequire('../../modules/es.math.asinh');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.asinh;\n"
  },
  {
    "path": "packages/core-js/es/math/atanh.js",
    "content": "'use strict';\nrequire('../../modules/es.math.atanh');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.atanh;\n"
  },
  {
    "path": "packages/core-js/es/math/cbrt.js",
    "content": "'use strict';\nrequire('../../modules/es.math.cbrt');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.cbrt;\n"
  },
  {
    "path": "packages/core-js/es/math/clz32.js",
    "content": "'use strict';\nrequire('../../modules/es.math.clz32');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.clz32;\n"
  },
  {
    "path": "packages/core-js/es/math/cosh.js",
    "content": "'use strict';\nrequire('../../modules/es.math.cosh');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.cosh;\n"
  },
  {
    "path": "packages/core-js/es/math/expm1.js",
    "content": "'use strict';\nrequire('../../modules/es.math.expm1');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.expm1;\n"
  },
  {
    "path": "packages/core-js/es/math/f16round.js",
    "content": "'use strict';\nrequire('../../modules/es.math.f16round');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.f16round;\n"
  },
  {
    "path": "packages/core-js/es/math/fround.js",
    "content": "'use strict';\nrequire('../../modules/es.math.fround');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.fround;\n"
  },
  {
    "path": "packages/core-js/es/math/hypot.js",
    "content": "'use strict';\nrequire('../../modules/es.math.hypot');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.hypot;\n"
  },
  {
    "path": "packages/core-js/es/math/imul.js",
    "content": "'use strict';\nrequire('../../modules/es.math.imul');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.imul;\n"
  },
  {
    "path": "packages/core-js/es/math/index.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.math.acosh');\nrequire('../../modules/es.math.asinh');\nrequire('../../modules/es.math.atanh');\nrequire('../../modules/es.math.cbrt');\nrequire('../../modules/es.math.clz32');\nrequire('../../modules/es.math.cosh');\nrequire('../../modules/es.math.expm1');\nrequire('../../modules/es.math.fround');\nrequire('../../modules/es.math.f16round');\nrequire('../../modules/es.math.hypot');\nrequire('../../modules/es.math.imul');\nrequire('../../modules/es.math.log10');\nrequire('../../modules/es.math.log1p');\nrequire('../../modules/es.math.log2');\nrequire('../../modules/es.math.sign');\nrequire('../../modules/es.math.sinh');\nrequire('../../modules/es.math.sum-precise');\nrequire('../../modules/es.math.tanh');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.math.trunc');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math;\n"
  },
  {
    "path": "packages/core-js/es/math/log10.js",
    "content": "'use strict';\nrequire('../../modules/es.math.log10');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.log10;\n"
  },
  {
    "path": "packages/core-js/es/math/log1p.js",
    "content": "'use strict';\nrequire('../../modules/es.math.log1p');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.log1p;\n"
  },
  {
    "path": "packages/core-js/es/math/log2.js",
    "content": "'use strict';\nrequire('../../modules/es.math.log2');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.log2;\n"
  },
  {
    "path": "packages/core-js/es/math/sign.js",
    "content": "'use strict';\nrequire('../../modules/es.math.sign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.sign;\n"
  },
  {
    "path": "packages/core-js/es/math/sinh.js",
    "content": "'use strict';\nrequire('../../modules/es.math.sinh');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.sinh;\n"
  },
  {
    "path": "packages/core-js/es/math/sum-precise.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.math.sum-precise');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.sumPrecise;\n"
  },
  {
    "path": "packages/core-js/es/math/tanh.js",
    "content": "'use strict';\nrequire('../../modules/es.math.tanh');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.tanh;\n"
  },
  {
    "path": "packages/core-js/es/math/to-string-tag.js",
    "content": "'use strict';\nrequire('../../modules/es.math.to-string-tag');\n\nmodule.exports = 'Math';\n"
  },
  {
    "path": "packages/core-js/es/math/trunc.js",
    "content": "'use strict';\nrequire('../../modules/es.math.trunc');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.trunc;\n"
  },
  {
    "path": "packages/core-js/es/number/constructor.js",
    "content": "'use strict';\nrequire('../../modules/es.number.constructor');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number;\n"
  },
  {
    "path": "packages/core-js/es/number/epsilon.js",
    "content": "'use strict';\nrequire('../../modules/es.number.epsilon');\n\nmodule.exports = Math.pow(2, -52);\n"
  },
  {
    "path": "packages/core-js/es/number/index.js",
    "content": "'use strict';\nrequire('../../modules/es.number.constructor');\nrequire('../../modules/es.number.epsilon');\nrequire('../../modules/es.number.is-finite');\nrequire('../../modules/es.number.is-integer');\nrequire('../../modules/es.number.is-nan');\nrequire('../../modules/es.number.is-safe-integer');\nrequire('../../modules/es.number.max-safe-integer');\nrequire('../../modules/es.number.min-safe-integer');\nrequire('../../modules/es.number.parse-float');\nrequire('../../modules/es.number.parse-int');\nrequire('../../modules/es.number.to-exponential');\nrequire('../../modules/es.number.to-fixed');\nrequire('../../modules/es.number.to-precision');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number;\n"
  },
  {
    "path": "packages/core-js/es/number/is-finite.js",
    "content": "'use strict';\nrequire('../../modules/es.number.is-finite');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isFinite;\n"
  },
  {
    "path": "packages/core-js/es/number/is-integer.js",
    "content": "'use strict';\nrequire('../../modules/es.number.is-integer');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isInteger;\n"
  },
  {
    "path": "packages/core-js/es/number/is-nan.js",
    "content": "'use strict';\nrequire('../../modules/es.number.is-nan');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isNaN;\n"
  },
  {
    "path": "packages/core-js/es/number/is-safe-integer.js",
    "content": "'use strict';\nrequire('../../modules/es.number.is-safe-integer');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isSafeInteger;\n"
  },
  {
    "path": "packages/core-js/es/number/max-safe-integer.js",
    "content": "'use strict';\nrequire('../../modules/es.number.max-safe-integer');\n\nmodule.exports = 0x1FFFFFFFFFFFFF;\n"
  },
  {
    "path": "packages/core-js/es/number/min-safe-integer.js",
    "content": "'use strict';\nrequire('../../modules/es.number.min-safe-integer');\n\nmodule.exports = -0x1FFFFFFFFFFFFF;\n"
  },
  {
    "path": "packages/core-js/es/number/parse-float.js",
    "content": "'use strict';\nrequire('../../modules/es.number.parse-float');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.parseFloat;\n"
  },
  {
    "path": "packages/core-js/es/number/parse-int.js",
    "content": "'use strict';\nrequire('../../modules/es.number.parse-int');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.parseInt;\n"
  },
  {
    "path": "packages/core-js/es/number/to-exponential.js",
    "content": "'use strict';\nrequire('../../modules/es.number.to-exponential');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Number', 'toExponential');\n"
  },
  {
    "path": "packages/core-js/es/number/to-fixed.js",
    "content": "'use strict';\nrequire('../../modules/es.number.to-fixed');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Number', 'toFixed');\n"
  },
  {
    "path": "packages/core-js/es/number/to-precision.js",
    "content": "'use strict';\nrequire('../../modules/es.number.to-precision');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Number', 'toPrecision');\n"
  },
  {
    "path": "packages/core-js/es/number/virtual/index.js",
    "content": "'use strict';\nrequire('../../../modules/es.number.to-exponential');\nrequire('../../../modules/es.number.to-fixed');\nrequire('../../../modules/es.number.to-precision');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Number');\n"
  },
  {
    "path": "packages/core-js/es/number/virtual/to-exponential.js",
    "content": "'use strict';\nrequire('../../../modules/es.number.to-exponential');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Number', 'toExponential');\n"
  },
  {
    "path": "packages/core-js/es/number/virtual/to-fixed.js",
    "content": "'use strict';\nrequire('../../../modules/es.number.to-fixed');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Number', 'toFixed');\n"
  },
  {
    "path": "packages/core-js/es/number/virtual/to-precision.js",
    "content": "'use strict';\nrequire('../../../modules/es.number.to-precision');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Number', 'toPrecision');\n"
  },
  {
    "path": "packages/core-js/es/object/assign.js",
    "content": "'use strict';\nrequire('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n"
  },
  {
    "path": "packages/core-js/es/object/create.js",
    "content": "'use strict';\nrequire('../../modules/es.object.create');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nmodule.exports = function create(P, D) {\n  return Object.create(P, D);\n};\n"
  },
  {
    "path": "packages/core-js/es/object/define-getter.js",
    "content": "'use strict';\nrequire('../../modules/es.object.define-getter');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Object', '__defineGetter__');\n"
  },
  {
    "path": "packages/core-js/es/object/define-properties.js",
    "content": "'use strict';\nrequire('../../modules/es.object.define-properties');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar $defineProperties = module.exports = function defineProperties(T, D) {\n  return Object.defineProperties(T, D);\n};\n\nif (Object.defineProperties.sham) $defineProperties.sham = true;\n"
  },
  {
    "path": "packages/core-js/es/object/define-property.js",
    "content": "'use strict';\nrequire('../../modules/es.object.define-property');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar $defineProperty = module.exports = function defineProperty(it, key, desc) {\n  return Object.defineProperty(it, key, desc);\n};\n\nif (Object.defineProperty.sham) $defineProperty.sham = true;\n"
  },
  {
    "path": "packages/core-js/es/object/define-setter.js",
    "content": "'use strict';\nrequire('../../modules/es.object.define-setter');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Object', '__defineSetter__');\n"
  },
  {
    "path": "packages/core-js/es/object/entries.js",
    "content": "'use strict';\nrequire('../../modules/es.object.entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.entries;\n"
  },
  {
    "path": "packages/core-js/es/object/freeze.js",
    "content": "'use strict';\nrequire('../../modules/es.object.freeze');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.freeze;\n"
  },
  {
    "path": "packages/core-js/es/object/from-entries.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.from-entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.fromEntries;\n"
  },
  {
    "path": "packages/core-js/es/object/get-own-property-descriptor.js",
    "content": "'use strict';\nrequire('../../modules/es.object.get-own-property-descriptor');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar $getOwnPropertyDescriptor = module.exports = function getOwnPropertyDescriptor(it, key) {\n  return Object.getOwnPropertyDescriptor(it, key);\n};\n\nif (Object.getOwnPropertyDescriptor.sham) $getOwnPropertyDescriptor.sham = true;\n"
  },
  {
    "path": "packages/core-js/es/object/get-own-property-descriptors.js",
    "content": "'use strict';\nrequire('../../modules/es.object.get-own-property-descriptors');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.getOwnPropertyDescriptors;\n"
  },
  {
    "path": "packages/core-js/es/object/get-own-property-names.js",
    "content": "'use strict';\nrequire('../../modules/es.object.get-own-property-names');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nmodule.exports = function getOwnPropertyNames(it) {\n  return Object.getOwnPropertyNames(it);\n};\n"
  },
  {
    "path": "packages/core-js/es/object/get-own-property-symbols.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.getOwnPropertySymbols;\n"
  },
  {
    "path": "packages/core-js/es/object/get-prototype-of.js",
    "content": "'use strict';\nrequire('../../modules/es.object.get-prototype-of');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.getPrototypeOf;\n"
  },
  {
    "path": "packages/core-js/es/object/group-by.js",
    "content": "'use strict';\nrequire('../../modules/es.object.create');\nrequire('../../modules/es.object.group-by');\n\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.groupBy;\n"
  },
  {
    "path": "packages/core-js/es/object/has-own.js",
    "content": "'use strict';\nrequire('../../modules/es.object.has-own');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.hasOwn;\n"
  },
  {
    "path": "packages/core-js/es/object/index.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.object.assign');\nrequire('../../modules/es.object.create');\nrequire('../../modules/es.object.define-property');\nrequire('../../modules/es.object.define-properties');\nrequire('../../modules/es.object.entries');\nrequire('../../modules/es.object.freeze');\nrequire('../../modules/es.object.from-entries');\nrequire('../../modules/es.object.get-own-property-descriptor');\nrequire('../../modules/es.object.get-own-property-descriptors');\nrequire('../../modules/es.object.get-own-property-names');\nrequire('../../modules/es.object.get-prototype-of');\nrequire('../../modules/es.object.group-by');\nrequire('../../modules/es.object.has-own');\nrequire('../../modules/es.object.is');\nrequire('../../modules/es.object.is-extensible');\nrequire('../../modules/es.object.is-frozen');\nrequire('../../modules/es.object.is-sealed');\nrequire('../../modules/es.object.keys');\nrequire('../../modules/es.object.prevent-extensions');\nrequire('../../modules/es.object.proto');\nrequire('../../modules/es.object.seal');\nrequire('../../modules/es.object.set-prototype-of');\nrequire('../../modules/es.object.values');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.object.define-getter');\nrequire('../../modules/es.object.define-setter');\nrequire('../../modules/es.object.lookup-getter');\nrequire('../../modules/es.object.lookup-setter');\nrequire('../../modules/es.json.to-string-tag');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.reflect.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object;\n"
  },
  {
    "path": "packages/core-js/es/object/is-extensible.js",
    "content": "'use strict';\nrequire('../../modules/es.object.is-extensible');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.isExtensible;\n"
  },
  {
    "path": "packages/core-js/es/object/is-frozen.js",
    "content": "'use strict';\nrequire('../../modules/es.object.is-frozen');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.isFrozen;\n"
  },
  {
    "path": "packages/core-js/es/object/is-sealed.js",
    "content": "'use strict';\nrequire('../../modules/es.object.is-sealed');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.isSealed;\n"
  },
  {
    "path": "packages/core-js/es/object/is.js",
    "content": "'use strict';\nrequire('../../modules/es.object.is');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.is;\n"
  },
  {
    "path": "packages/core-js/es/object/keys.js",
    "content": "'use strict';\nrequire('../../modules/es.object.keys');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.keys;\n"
  },
  {
    "path": "packages/core-js/es/object/lookup-getter.js",
    "content": "'use strict';\nrequire('../../modules/es.object.lookup-getter');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Object', '__lookupGetter__');\n"
  },
  {
    "path": "packages/core-js/es/object/lookup-setter.js",
    "content": "'use strict';\nrequire('../../modules/es.object.lookup-setter');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Object', '__lookupSetter__');\n"
  },
  {
    "path": "packages/core-js/es/object/prevent-extensions.js",
    "content": "'use strict';\nrequire('../../modules/es.object.prevent-extensions');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.preventExtensions;\n"
  },
  {
    "path": "packages/core-js/es/object/proto.js",
    "content": "'use strict';\nrequire('../../modules/es.object.proto');\n"
  },
  {
    "path": "packages/core-js/es/object/seal.js",
    "content": "'use strict';\nrequire('../../modules/es.object.seal');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.seal;\n"
  },
  {
    "path": "packages/core-js/es/object/set-prototype-of.js",
    "content": "'use strict';\nrequire('../../modules/es.object.set-prototype-of');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.setPrototypeOf;\n"
  },
  {
    "path": "packages/core-js/es/object/to-string.js",
    "content": "'use strict';\nrequire('../../modules/es.json.to-string-tag');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.reflect.to-string-tag');\nvar classof = require('../../internals/classof');\n\nmodule.exports = function (it) {\n  return '[object ' + classof(it) + ']';\n};\n"
  },
  {
    "path": "packages/core-js/es/object/values.js",
    "content": "'use strict';\nrequire('../../modules/es.object.values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.values;\n"
  },
  {
    "path": "packages/core-js/es/parse-float.js",
    "content": "'use strict';\nrequire('../modules/es.parse-float');\nvar path = require('../internals/path');\n\nmodule.exports = path.parseFloat;\n"
  },
  {
    "path": "packages/core-js/es/parse-int.js",
    "content": "'use strict';\nrequire('../modules/es.parse-int');\nvar path = require('../internals/path');\n\nmodule.exports = path.parseInt;\n"
  },
  {
    "path": "packages/core-js/es/promise/all-settled.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.string.iterator');\nvar call = require('../../internals/function-call');\nvar isCallable = require('../../internals/is-callable');\nvar path = require('../../internals/path');\n\nvar Promise = path.Promise;\nvar $allSettled = Promise.allSettled;\n\nmodule.exports = function allSettled(iterable) {\n  return call($allSettled, isCallable(this) ? this : Promise, iterable);\n};\n"
  },
  {
    "path": "packages/core-js/es/promise/any.js",
    "content": "'use strict';\nrequire('../../modules/es.aggregate-error');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.string.iterator');\nvar call = require('../../internals/function-call');\nvar isCallable = require('../../internals/is-callable');\nvar path = require('../../internals/path');\n\nvar Promise = path.Promise;\nvar $any = Promise.any;\n\nmodule.exports = function any(iterable) {\n  return call($any, isCallable(this) ? this : Promise, iterable);\n};\n"
  },
  {
    "path": "packages/core-js/es/promise/finally.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.finally');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Promise', 'finally');\n"
  },
  {
    "path": "packages/core-js/es/promise/index.js",
    "content": "'use strict';\nrequire('../../modules/es.aggregate-error');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.promise.try');\nrequire('../../modules/es.promise.with-resolvers');\nrequire('../../modules/es.promise.finally');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n"
  },
  {
    "path": "packages/core-js/es/promise/try.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.try');\nvar apply = require('../../internals/function-apply');\nvar isCallable = require('../../internals/is-callable');\nvar path = require('../../internals/path');\n\nvar Promise = path.Promise;\nvar $try = Promise['try'];\n\n// eslint-disable-next-line no-unused-vars -- required for arity\nmodule.exports = { 'try': function (callbackfn /* , ...args */) {\n  return apply($try, isCallable(this) ? this : Promise, arguments);\n} }['try'];\n"
  },
  {
    "path": "packages/core-js/es/promise/with-resolvers.js",
    "content": "'use strict';\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.with-resolvers');\nvar call = require('../../internals/function-call');\nvar isCallable = require('../../internals/is-callable');\nvar path = require('../../internals/path');\n\nvar Promise = path.Promise;\nvar promiseWithResolvers = Promise.withResolvers;\n\nmodule.exports = function withResolvers() {\n  return call(promiseWithResolvers, isCallable(this) ? this : Promise);\n};\n"
  },
  {
    "path": "packages/core-js/es/reflect/apply.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.apply');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.apply;\n"
  },
  {
    "path": "packages/core-js/es/reflect/construct.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.construct');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.construct;\n"
  },
  {
    "path": "packages/core-js/es/reflect/define-property.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.define-property');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.defineProperty;\n"
  },
  {
    "path": "packages/core-js/es/reflect/delete-property.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.delete-property');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.deleteProperty;\n"
  },
  {
    "path": "packages/core-js/es/reflect/get-own-property-descriptor.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.get-own-property-descriptor');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.getOwnPropertyDescriptor;\n"
  },
  {
    "path": "packages/core-js/es/reflect/get-prototype-of.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.get-prototype-of');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.getPrototypeOf;\n"
  },
  {
    "path": "packages/core-js/es/reflect/get.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.get');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.get;\n"
  },
  {
    "path": "packages/core-js/es/reflect/has.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.has');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.has;\n"
  },
  {
    "path": "packages/core-js/es/reflect/index.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.reflect.apply');\nrequire('../../modules/es.reflect.construct');\nrequire('../../modules/es.reflect.define-property');\nrequire('../../modules/es.reflect.delete-property');\nrequire('../../modules/es.reflect.get');\nrequire('../../modules/es.reflect.get-own-property-descriptor');\nrequire('../../modules/es.reflect.get-prototype-of');\nrequire('../../modules/es.reflect.has');\nrequire('../../modules/es.reflect.is-extensible');\nrequire('../../modules/es.reflect.own-keys');\nrequire('../../modules/es.reflect.prevent-extensions');\nrequire('../../modules/es.reflect.set');\nrequire('../../modules/es.reflect.set-prototype-of');\nrequire('../../modules/es.reflect.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect;\n"
  },
  {
    "path": "packages/core-js/es/reflect/is-extensible.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.is-extensible');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.isExtensible;\n"
  },
  {
    "path": "packages/core-js/es/reflect/own-keys.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.own-keys');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.ownKeys;\n"
  },
  {
    "path": "packages/core-js/es/reflect/prevent-extensions.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.prevent-extensions');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.preventExtensions;\n"
  },
  {
    "path": "packages/core-js/es/reflect/set-prototype-of.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.set-prototype-of');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.setPrototypeOf;\n"
  },
  {
    "path": "packages/core-js/es/reflect/set.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.set');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.set;\n"
  },
  {
    "path": "packages/core-js/es/reflect/to-string-tag.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.reflect.to-string-tag');\n\nmodule.exports = 'Reflect';\n"
  },
  {
    "path": "packages/core-js/es/regexp/constructor.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.constructor');\nrequire('../../modules/es.regexp.dot-all');\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.regexp.sticky');\n\nmodule.exports = RegExp;\n"
  },
  {
    "path": "packages/core-js/es/regexp/dot-all.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.constructor');\nrequire('../../modules/es.regexp.dot-all');\nrequire('../../modules/es.regexp.exec');\n\nmodule.exports = function (it) {\n  return it.dotAll;\n};\n"
  },
  {
    "path": "packages/core-js/es/regexp/escape.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.escape');\nvar path = require('../../internals/path');\n\nmodule.exports = path.RegExp.escape;\n"
  },
  {
    "path": "packages/core-js/es/regexp/flags.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.flags');\nvar getRegExpFlags = require('../../internals/regexp-get-flags');\n\nmodule.exports = getRegExpFlags;\n"
  },
  {
    "path": "packages/core-js/es/regexp/index.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.constructor');\nrequire('../../modules/es.regexp.escape');\nrequire('../../modules/es.regexp.to-string');\nrequire('../../modules/es.regexp.dot-all');\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.regexp.flags');\nrequire('../../modules/es.regexp.sticky');\nrequire('../../modules/es.regexp.test');\nrequire('../../modules/es.string.match');\nrequire('../../modules/es.string.replace');\nrequire('../../modules/es.string.search');\nrequire('../../modules/es.string.split');\n"
  },
  {
    "path": "packages/core-js/es/regexp/match.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.string.match');\nvar call = require('../../internals/function-call');\nvar wellKnownSymbol = require('../../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (it, str) {\n  return call(RegExp.prototype[MATCH], it, str);\n};\n"
  },
  {
    "path": "packages/core-js/es/regexp/replace.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.string.replace');\nvar call = require('../../internals/function-call');\nvar wellKnownSymbol = require('../../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\n\nmodule.exports = function (it, str, replacer) {\n  return call(RegExp.prototype[REPLACE], it, str, replacer);\n};\n"
  },
  {
    "path": "packages/core-js/es/regexp/search.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.string.search');\nvar call = require('../../internals/function-call');\nvar wellKnownSymbol = require('../../internals/well-known-symbol');\n\nvar SEARCH = wellKnownSymbol('search');\n\nmodule.exports = function (it, str) {\n  return call(RegExp.prototype[SEARCH], it, str);\n};\n"
  },
  {
    "path": "packages/core-js/es/regexp/split.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.string.split');\nvar call = require('../../internals/function-call');\nvar wellKnownSymbol = require('../../internals/well-known-symbol');\n\nvar SPLIT = wellKnownSymbol('split');\n\nmodule.exports = function (it, str, limit) {\n  return call(RegExp.prototype[SPLIT], it, str, limit);\n};\n"
  },
  {
    "path": "packages/core-js/es/regexp/sticky.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.constructor');\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.regexp.sticky');\n\nmodule.exports = function (it) {\n  return it.sticky;\n};\n"
  },
  {
    "path": "packages/core-js/es/regexp/test.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.regexp.test');\nvar uncurryThis = require('../../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis(/./.test);\n"
  },
  {
    "path": "packages/core-js/es/regexp/to-string.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.to-string');\nvar uncurryThis = require('../../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis(/./.toString);\n"
  },
  {
    "path": "packages/core-js/es/set/difference.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/es.set.difference.v2');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'difference');\n"
  },
  {
    "path": "packages/core-js/es/set/index.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.set');\nrequire('../../modules/es.set.difference.v2');\nrequire('../../modules/es.set.intersection.v2');\nrequire('../../modules/es.set.is-disjoint-from.v2');\nrequire('../../modules/es.set.is-subset-of.v2');\nrequire('../../modules/es.set.is-superset-of.v2');\nrequire('../../modules/es.set.symmetric-difference.v2');\nrequire('../../modules/es.set.union.v2');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set;\n"
  },
  {
    "path": "packages/core-js/es/set/intersection.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/es.set.intersection.v2');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'intersection');\n"
  },
  {
    "path": "packages/core-js/es/set/is-disjoint-from.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/es.set.is-disjoint-from.v2');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'isDisjointFrom');\n"
  },
  {
    "path": "packages/core-js/es/set/is-subset-of.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/es.set.is-subset-of.v2');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'isSubsetOf');\n"
  },
  {
    "path": "packages/core-js/es/set/is-superset-of.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/es.set.is-superset-of.v2');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'isSupersetOf');\n"
  },
  {
    "path": "packages/core-js/es/set/symmetric-difference.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/es.set.symmetric-difference.v2');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'symmetricDifference');\n"
  },
  {
    "path": "packages/core-js/es/set/union.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/es.set.union.v2');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'union');\n"
  },
  {
    "path": "packages/core-js/es/string/anchor.js",
    "content": "'use strict';\nrequire('../../modules/es.string.anchor');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'anchor');\n"
  },
  {
    "path": "packages/core-js/es/string/at.js",
    "content": "'use strict';\nrequire('../../modules/es.string.at-alternative');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'at');\n"
  },
  {
    "path": "packages/core-js/es/string/big.js",
    "content": "'use strict';\nrequire('../../modules/es.string.big');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'big');\n"
  },
  {
    "path": "packages/core-js/es/string/blink.js",
    "content": "'use strict';\nrequire('../../modules/es.string.blink');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'blink');\n"
  },
  {
    "path": "packages/core-js/es/string/bold.js",
    "content": "'use strict';\nrequire('../../modules/es.string.bold');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'bold');\n"
  },
  {
    "path": "packages/core-js/es/string/code-point-at.js",
    "content": "'use strict';\nrequire('../../modules/es.string.code-point-at');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'codePointAt');\n"
  },
  {
    "path": "packages/core-js/es/string/ends-with.js",
    "content": "'use strict';\nrequire('../../modules/es.string.ends-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'endsWith');\n"
  },
  {
    "path": "packages/core-js/es/string/fixed.js",
    "content": "'use strict';\nrequire('../../modules/es.string.fixed');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'fixed');\n"
  },
  {
    "path": "packages/core-js/es/string/fontcolor.js",
    "content": "'use strict';\nrequire('../../modules/es.string.fontcolor');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'fontcolor');\n"
  },
  {
    "path": "packages/core-js/es/string/fontsize.js",
    "content": "'use strict';\nrequire('../../modules/es.string.fontsize');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'fontsize');\n"
  },
  {
    "path": "packages/core-js/es/string/from-code-point.js",
    "content": "'use strict';\nrequire('../../modules/es.string.from-code-point');\nvar path = require('../../internals/path');\n\nmodule.exports = path.String.fromCodePoint;\n"
  },
  {
    "path": "packages/core-js/es/string/includes.js",
    "content": "'use strict';\nrequire('../../modules/es.string.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'includes');\n"
  },
  {
    "path": "packages/core-js/es/string/index.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.string.from-code-point');\nrequire('../../modules/es.string.raw');\nrequire('../../modules/es.string.code-point-at');\nrequire('../../modules/es.string.at-alternative');\nrequire('../../modules/es.string.ends-with');\nrequire('../../modules/es.string.includes');\nrequire('../../modules/es.string.is-well-formed');\nrequire('../../modules/es.string.match');\nrequire('../../modules/es.string.match-all');\nrequire('../../modules/es.string.pad-end');\nrequire('../../modules/es.string.pad-start');\nrequire('../../modules/es.string.repeat');\nrequire('../../modules/es.string.replace');\nrequire('../../modules/es.string.replace-all');\nrequire('../../modules/es.string.search');\nrequire('../../modules/es.string.split');\nrequire('../../modules/es.string.starts-with');\nrequire('../../modules/es.string.substr');\nrequire('../../modules/es.string.to-well-formed');\nrequire('../../modules/es.string.trim');\nrequire('../../modules/es.string.trim-start');\nrequire('../../modules/es.string.trim-end');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.string.anchor');\nrequire('../../modules/es.string.big');\nrequire('../../modules/es.string.blink');\nrequire('../../modules/es.string.bold');\nrequire('../../modules/es.string.fixed');\nrequire('../../modules/es.string.fontcolor');\nrequire('../../modules/es.string.fontsize');\nrequire('../../modules/es.string.italics');\nrequire('../../modules/es.string.link');\nrequire('../../modules/es.string.small');\nrequire('../../modules/es.string.strike');\nrequire('../../modules/es.string.sub');\nrequire('../../modules/es.string.sup');\nvar path = require('../../internals/path');\n\nmodule.exports = path.String;\n"
  },
  {
    "path": "packages/core-js/es/string/is-well-formed.js",
    "content": "'use strict';\nrequire('../../modules/es.string.is-well-formed');\n\nmodule.exports = require('../../internals/entry-unbind')('String', 'isWellFormed');\n"
  },
  {
    "path": "packages/core-js/es/string/italics.js",
    "content": "'use strict';\nrequire('../../modules/es.string.italics');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'italics');\n"
  },
  {
    "path": "packages/core-js/es/string/iterator.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nvar uncurryThis = require('../../internals/function-uncurry-this');\nvar Iterators = require('../../internals/iterators');\n\nmodule.exports = uncurryThis(Iterators.String);\n"
  },
  {
    "path": "packages/core-js/es/string/link.js",
    "content": "'use strict';\nrequire('../../modules/es.string.link');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'link');\n"
  },
  {
    "path": "packages/core-js/es/string/match-all.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.string.match-all');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'matchAll');\n"
  },
  {
    "path": "packages/core-js/es/string/match.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.string.match');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'match');\n"
  },
  {
    "path": "packages/core-js/es/string/pad-end.js",
    "content": "'use strict';\nrequire('../../modules/es.string.pad-end');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padEnd');\n"
  },
  {
    "path": "packages/core-js/es/string/pad-start.js",
    "content": "'use strict';\nrequire('../../modules/es.string.pad-start');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padStart');\n"
  },
  {
    "path": "packages/core-js/es/string/raw.js",
    "content": "'use strict';\nrequire('../../modules/es.string.raw');\nvar path = require('../../internals/path');\n\nmodule.exports = path.String.raw;\n"
  },
  {
    "path": "packages/core-js/es/string/repeat.js",
    "content": "'use strict';\nrequire('../../modules/es.string.repeat');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'repeat');\n"
  },
  {
    "path": "packages/core-js/es/string/replace-all.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.string.replace');\nrequire('../../modules/es.string.replace-all');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'replaceAll');\n"
  },
  {
    "path": "packages/core-js/es/string/replace.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.string.replace');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'replace');\n"
  },
  {
    "path": "packages/core-js/es/string/search.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.string.search');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'search');\n"
  },
  {
    "path": "packages/core-js/es/string/small.js",
    "content": "'use strict';\nrequire('../../modules/es.string.small');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'small');\n"
  },
  {
    "path": "packages/core-js/es/string/split.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.string.split');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'split');\n"
  },
  {
    "path": "packages/core-js/es/string/starts-with.js",
    "content": "'use strict';\nrequire('../../modules/es.string.starts-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'startsWith');\n"
  },
  {
    "path": "packages/core-js/es/string/strike.js",
    "content": "'use strict';\nrequire('../../modules/es.string.strike');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'strike');\n"
  },
  {
    "path": "packages/core-js/es/string/sub.js",
    "content": "'use strict';\nrequire('../../modules/es.string.sub');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'sub');\n"
  },
  {
    "path": "packages/core-js/es/string/substr.js",
    "content": "'use strict';\nrequire('../../modules/es.string.substr');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'substr');\n"
  },
  {
    "path": "packages/core-js/es/string/sup.js",
    "content": "'use strict';\nrequire('../../modules/es.string.sup');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'sup');\n"
  },
  {
    "path": "packages/core-js/es/string/to-well-formed.js",
    "content": "'use strict';\nrequire('../../modules/es.string.to-well-formed');\n\nmodule.exports = require('../../internals/entry-unbind')('String', 'toWellFormed');\n"
  },
  {
    "path": "packages/core-js/es/string/trim-end.js",
    "content": "'use strict';\nrequire('../../modules/es.string.trim-end');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'trimRight');\n"
  },
  {
    "path": "packages/core-js/es/string/trim-left.js",
    "content": "'use strict';\nrequire('../../modules/es.string.trim-start');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'trimLeft');\n"
  },
  {
    "path": "packages/core-js/es/string/trim-right.js",
    "content": "'use strict';\nrequire('../../modules/es.string.trim-end');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'trimRight');\n"
  },
  {
    "path": "packages/core-js/es/string/trim-start.js",
    "content": "'use strict';\nrequire('../../modules/es.string.trim-start');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'trimLeft');\n"
  },
  {
    "path": "packages/core-js/es/string/trim.js",
    "content": "'use strict';\nrequire('../../modules/es.string.trim');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'trim');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/anchor.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.anchor');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'anchor');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/at.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.at-alternative');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'at');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/big.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.big');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'big');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/blink.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.blink');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'blink');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/bold.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.bold');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'bold');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/code-point-at.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.code-point-at');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'codePointAt');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/ends-with.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.ends-with');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'endsWith');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/fixed.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.fixed');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'fixed');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/fontcolor.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.fontcolor');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'fontcolor');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/fontsize.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.fontsize');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'fontsize');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/includes.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.includes');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'includes');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/index.js",
    "content": "'use strict';\nrequire('../../../modules/es.object.to-string');\nrequire('../../../modules/es.regexp.exec');\nrequire('../../../modules/es.string.at-alternative');\nrequire('../../../modules/es.string.code-point-at');\nrequire('../../../modules/es.string.ends-with');\nrequire('../../../modules/es.string.includes');\nrequire('../../../modules/es.string.match');\nrequire('../../../modules/es.string.match-all');\nrequire('../../../modules/es.string.pad-end');\nrequire('../../../modules/es.string.pad-start');\nrequire('../../../modules/es.string.repeat');\nrequire('../../../modules/es.string.replace');\nrequire('../../../modules/es.string.replace-all');\nrequire('../../../modules/es.string.search');\nrequire('../../../modules/es.string.split');\nrequire('../../../modules/es.string.starts-with');\nrequire('../../../modules/es.string.substr');\nrequire('../../../modules/es.string.trim');\nrequire('../../../modules/es.string.trim-start');\nrequire('../../../modules/es.string.trim-end');\nrequire('../../../modules/es.string.iterator');\nrequire('../../../modules/es.string.anchor');\nrequire('../../../modules/es.string.big');\nrequire('../../../modules/es.string.blink');\nrequire('../../../modules/es.string.bold');\nrequire('../../../modules/es.string.fixed');\nrequire('../../../modules/es.string.fontcolor');\nrequire('../../../modules/es.string.fontsize');\nrequire('../../../modules/es.string.italics');\nrequire('../../../modules/es.string.link');\nrequire('../../../modules/es.string.small');\nrequire('../../../modules/es.string.strike');\nrequire('../../../modules/es.string.sub');\nrequire('../../../modules/es.string.sup');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('String');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/is-well-formed.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.is-well-formed');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'isWellFormed');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/italics.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.italics');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'italics');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/iterator.js",
    "content": "'use strict';\nrequire('../../../modules/es.object.to-string');\nrequire('../../../modules/es.string.iterator');\nvar Iterators = require('../../../internals/iterators');\n\nmodule.exports = Iterators.String;\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/link.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.link');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'link');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/match-all.js",
    "content": "'use strict';\nrequire('../../../modules/es.object.to-string');\nrequire('../../../modules/es.regexp.exec');\nrequire('../../../modules/es.string.match-all');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'matchAll');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/pad-end.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.pad-end');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'padEnd');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/pad-start.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.pad-start');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'padStart');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/repeat.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.repeat');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'repeat');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/replace-all.js",
    "content": "'use strict';\nrequire('../../../modules/es.regexp.exec');\nrequire('../../../modules/es.string.replace');\nrequire('../../../modules/es.string.replace-all');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'replaceAll');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/small.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.small');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'small');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/starts-with.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.starts-with');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'startsWith');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/strike.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.strike');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'strike');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/sub.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.sub');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'sub');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/substr.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.substr');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'substr');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/sup.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.sup');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'sup');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/to-well-formed.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.to-well-formed');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'toWellFormed');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/trim-end.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.trim-end');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'trimRight');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/trim-left.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.trim-start');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'trimLeft');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/trim-right.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.trim-end');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'trimRight');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/trim-start.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.trim-start');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'trimLeft');\n"
  },
  {
    "path": "packages/core-js/es/string/virtual/trim.js",
    "content": "'use strict';\nrequire('../../../modules/es.string.trim');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'trim');\n"
  },
  {
    "path": "packages/core-js/es/suppressed-error.js",
    "content": "'use strict';\nrequire('../modules/es.error.cause');\nrequire('../modules/es.error.to-string');\nrequire('../modules/es.suppressed-error.constructor');\nvar path = require('../internals/path');\n\nmodule.exports = path.SuppressedError;\n"
  },
  {
    "path": "packages/core-js/es/symbol/async-dispose.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol.async-dispose');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('asyncDispose');\n"
  },
  {
    "path": "packages/core-js/es/symbol/async-iterator.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol.async-iterator');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('asyncIterator');\n"
  },
  {
    "path": "packages/core-js/es/symbol/description.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol.description');\n"
  },
  {
    "path": "packages/core-js/es/symbol/dispose.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol.dispose');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('dispose');\n"
  },
  {
    "path": "packages/core-js/es/symbol/for.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol['for'];\n"
  },
  {
    "path": "packages/core-js/es/symbol/has-instance.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.function.has-instance');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('hasInstance');\n"
  },
  {
    "path": "packages/core-js/es/symbol/index.js",
    "content": "'use strict';\nrequire('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-dispose');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.dispose');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.json.to-string-tag');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.reflect.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n"
  },
  {
    "path": "packages/core-js/es/symbol/is-concat-spreadable.js",
    "content": "'use strict';\nrequire('../../modules/es.array.concat');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('isConcatSpreadable');\n"
  },
  {
    "path": "packages/core-js/es/symbol/iterator.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.symbol.iterator');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('iterator');\n"
  },
  {
    "path": "packages/core-js/es/symbol/key-for.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol.keyFor;\n"
  },
  {
    "path": "packages/core-js/es/symbol/match-all.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.string.match-all');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('matchAll');\n"
  },
  {
    "path": "packages/core-js/es/symbol/match.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.string.match');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('match');\n"
  },
  {
    "path": "packages/core-js/es/symbol/replace.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.string.replace');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('replace');\n"
  },
  {
    "path": "packages/core-js/es/symbol/search.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.string.search');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('search');\n"
  },
  {
    "path": "packages/core-js/es/symbol/species.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol.species');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('species');\n"
  },
  {
    "path": "packages/core-js/es/symbol/split.js",
    "content": "'use strict';\nrequire('../../modules/es.regexp.exec');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.string.split');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('split');\n"
  },
  {
    "path": "packages/core-js/es/symbol/to-primitive.js",
    "content": "'use strict';\nrequire('../../modules/es.date.to-primitive');\nrequire('../../modules/es.symbol.to-primitive');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('toPrimitive');\n"
  },
  {
    "path": "packages/core-js/es/symbol/to-string-tag.js",
    "content": "'use strict';\nrequire('../../modules/es.json.to-string-tag');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.reflect.to-string-tag');\nrequire('../../modules/es.symbol.to-string-tag');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('toStringTag');\n"
  },
  {
    "path": "packages/core-js/es/symbol/unscopables.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol.unscopables');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('unscopables');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/at.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.at');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/copy-within.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.copy-within');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/entries.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.typed-array.iterator');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/every.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.every');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/fill.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.fill');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/filter.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.filter');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/find-index.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.find-index');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/find-last-index.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.find-last-index');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/find-last.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.find-last');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/find.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.find');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/float32-array.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.typed-array.float32-array');\nrequire('./methods');\nvar global = require('../../internals/global-this');\n\nmodule.exports = global.Float32Array;\n"
  },
  {
    "path": "packages/core-js/es/typed-array/float64-array.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.typed-array.float64-array');\nrequire('./methods');\nvar global = require('../../internals/global-this');\n\nmodule.exports = global.Float64Array;\n"
  },
  {
    "path": "packages/core-js/es/typed-array/for-each.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.for-each');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/from-base64.js",
    "content": "'use strict';\nrequire('../../modules/es.uint8-array.from-base64');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/from-hex.js",
    "content": "'use strict';\nrequire('../../modules/es.uint8-array.from-hex');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/from.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.from');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/includes.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.includes');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/index-of.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.index-of');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/index.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.int8-array');\nrequire('../../modules/es.typed-array.uint8-array');\nrequire('../../modules/es.typed-array.uint8-clamped-array');\nrequire('../../modules/es.typed-array.int16-array');\nrequire('../../modules/es.typed-array.uint16-array');\nrequire('../../modules/es.typed-array.int32-array');\nrequire('../../modules/es.typed-array.uint32-array');\nrequire('../../modules/es.typed-array.float32-array');\nrequire('../../modules/es.typed-array.float64-array');\nrequire('./methods');\n\nmodule.exports = require('../../internals/global-this');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/int16-array.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.typed-array.int16-array');\nrequire('./methods');\nvar global = require('../../internals/global-this');\n\nmodule.exports = global.Int16Array;\n"
  },
  {
    "path": "packages/core-js/es/typed-array/int32-array.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.typed-array.int32-array');\nrequire('./methods');\nvar global = require('../../internals/global-this');\n\nmodule.exports = global.Int32Array;\n"
  },
  {
    "path": "packages/core-js/es/typed-array/int8-array.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.typed-array.int8-array');\nrequire('./methods');\nvar global = require('../../internals/global-this');\n\nmodule.exports = global.Int8Array;\n"
  },
  {
    "path": "packages/core-js/es/typed-array/iterator.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.typed-array.iterator');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/join.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.join');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/keys.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.typed-array.iterator');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/last-index-of.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.last-index-of');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/map.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.map');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/methods.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.typed-array.from');\nrequire('../../modules/es.typed-array.of');\nrequire('../../modules/es.typed-array.at');\nrequire('../../modules/es.typed-array.copy-within');\nrequire('../../modules/es.typed-array.every');\nrequire('../../modules/es.typed-array.fill');\nrequire('../../modules/es.typed-array.filter');\nrequire('../../modules/es.typed-array.find');\nrequire('../../modules/es.typed-array.find-index');\nrequire('../../modules/es.typed-array.find-last');\nrequire('../../modules/es.typed-array.find-last-index');\nrequire('../../modules/es.typed-array.for-each');\nrequire('../../modules/es.typed-array.includes');\nrequire('../../modules/es.typed-array.index-of');\nrequire('../../modules/es.typed-array.join');\nrequire('../../modules/es.typed-array.last-index-of');\nrequire('../../modules/es.typed-array.map');\nrequire('../../modules/es.typed-array.reduce');\nrequire('../../modules/es.typed-array.reduce-right');\nrequire('../../modules/es.typed-array.reverse');\nrequire('../../modules/es.typed-array.set');\nrequire('../../modules/es.typed-array.slice');\nrequire('../../modules/es.typed-array.some');\nrequire('../../modules/es.typed-array.sort');\nrequire('../../modules/es.typed-array.subarray');\nrequire('../../modules/es.typed-array.to-locale-string');\nrequire('../../modules/es.typed-array.to-string');\nrequire('../../modules/es.typed-array.to-reversed');\nrequire('../../modules/es.typed-array.to-sorted');\nrequire('../../modules/es.typed-array.with');\nrequire('../../modules/es.typed-array.iterator');\nrequire('../../modules/es.uint8-array.from-base64');\nrequire('../../modules/es.uint8-array.from-hex');\nrequire('../../modules/es.uint8-array.set-from-base64');\nrequire('../../modules/es.uint8-array.set-from-hex');\nrequire('../../modules/es.uint8-array.to-base64');\nrequire('../../modules/es.uint8-array.to-hex');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/of.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.of');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/reduce-right.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.reduce-right');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/reduce.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.reduce');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/reverse.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.reverse');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/set-from-base64.js",
    "content": "'use strict';\nrequire('../../modules/es.uint8-array.set-from-base64');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/set-from-hex.js",
    "content": "'use strict';\nrequire('../../modules/es.uint8-array.set-from-hex');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/set.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.set');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/slice.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.slice');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/some.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.some');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/sort.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.sort');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/subarray.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.subarray');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/to-base64.js",
    "content": "'use strict';\nrequire('../../modules/es.uint8-array.to-base64');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/to-hex.js",
    "content": "'use strict';\nrequire('../../modules/es.uint8-array.to-hex');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/to-locale-string.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.to-locale-string');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/to-reversed.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.to-reversed');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/to-sorted.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.sort');\nrequire('../../modules/es.typed-array.to-sorted');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/to-string.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.to-string');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/uint16-array.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.typed-array.uint16-array');\nrequire('./methods');\nvar global = require('../../internals/global-this');\n\nmodule.exports = global.Uint16Array;\n"
  },
  {
    "path": "packages/core-js/es/typed-array/uint32-array.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.typed-array.uint32-array');\nrequire('./methods');\nvar global = require('../../internals/global-this');\n\nmodule.exports = global.Uint32Array;\n"
  },
  {
    "path": "packages/core-js/es/typed-array/uint8-array.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.typed-array.uint8-array');\nrequire('./methods');\nvar global = require('../../internals/global-this');\n\nmodule.exports = global.Uint8Array;\n"
  },
  {
    "path": "packages/core-js/es/typed-array/uint8-clamped-array.js",
    "content": "'use strict';\nrequire('../../modules/es.array-buffer.constructor');\nrequire('../../modules/es.array-buffer.slice');\nrequire('../../modules/es.typed-array.uint8-clamped-array');\nrequire('./methods');\nvar global = require('../../internals/global-this');\n\nmodule.exports = global.Uint8ClampedArray;\n"
  },
  {
    "path": "packages/core-js/es/typed-array/values.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.typed-array.iterator');\n"
  },
  {
    "path": "packages/core-js/es/typed-array/with.js",
    "content": "'use strict';\nrequire('../../modules/es.typed-array.with');\n"
  },
  {
    "path": "packages/core-js/es/unescape.js",
    "content": "'use strict';\nrequire('../modules/es.unescape');\nvar path = require('../internals/path');\n\nmodule.exports = path.unescape;\n"
  },
  {
    "path": "packages/core-js/es/weak-map/get-or-insert-computed.js",
    "content": "'use strict';\nrequire('../../modules/es.weak-map');\nrequire('../../modules/es.weak-map.get-or-insert-computed');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('WeakMap', 'getOrInsertComputed');\n"
  },
  {
    "path": "packages/core-js/es/weak-map/get-or-insert.js",
    "content": "'use strict';\nrequire('../../modules/es.weak-map');\nrequire('../../modules/es.weak-map.get-or-insert');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('WeakMap', 'getOrInsert');\n"
  },
  {
    "path": "packages/core-js/es/weak-map/index.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.weak-map');\nrequire('../../modules/es.weak-map.get-or-insert');\nrequire('../../modules/es.weak-map.get-or-insert-computed');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakMap;\n"
  },
  {
    "path": "packages/core-js/es/weak-set/index.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.weak-set');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakSet;\n"
  },
  {
    "path": "packages/core-js/full/README.md",
    "content": "This folder contains entry points for all `core-js` features with dependencies. It's the recommended way for usage only required features.\n"
  },
  {
    "path": "packages/core-js/full/aggregate-error.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nrequire('../modules/esnext.aggregate-error');\n\nvar parent = require('../actual/aggregate-error');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/at.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/at');\n\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.array.at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/concat.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/concat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/copy-within.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/copy-within');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/entries.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/every.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/fill.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/fill');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/filter-out.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.array.filter-out');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'filterOut');\n"
  },
  {
    "path": "packages/core-js/full/array/filter-reject.js",
    "content": "'use strict';\nrequire('../../modules/esnext.array.filter-reject');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'filterReject');\n"
  },
  {
    "path": "packages/core-js/full/array/filter.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/find-index.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/find-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/find-last-index.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/find-last-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/find-last.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/find-last');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/find.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/flat-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/flat.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/flat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/for-each.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/from-async.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/from-async');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/from.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/from');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/group-by-to-map.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/group-by-to-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/group-by.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/group-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/group-to-map.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/group-to-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/group.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/group');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/includes.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/index-of.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/array');\nrequire('../../modules/es.map');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.array.at');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.array.filter-out');\nrequire('../../modules/esnext.array.filter-reject');\nrequire('../../modules/esnext.array.is-template-object');\nrequire('../../modules/esnext.array.last-item');\nrequire('../../modules/esnext.array.last-index');\nrequire('../../modules/esnext.array.unique-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/is-array.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/is-array');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/is-template-object.js",
    "content": "'use strict';\nrequire('../../modules/esnext.array.is-template-object');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.isTemplateObject;\n"
  },
  {
    "path": "packages/core-js/full/array/iterator.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/join.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/join');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/keys.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/last-index-of.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/last-index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/last-index.js",
    "content": "'use strict';\nrequire('../../modules/esnext.array.last-index');\n"
  },
  {
    "path": "packages/core-js/full/array/last-item.js",
    "content": "'use strict';\nrequire('../../modules/esnext.array.last-item');\n"
  },
  {
    "path": "packages/core-js/full/array/map.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/of.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/push.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/push');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/reduce-right.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/reduce-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/reduce.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/reverse.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/reverse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/slice.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/some.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/sort.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/sort');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/splice.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/splice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/to-reversed.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/to-reversed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/to-sorted.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/to-sorted');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/to-spliced.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/to-spliced');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/unique-by.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.array.unique-by');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'uniqueBy');\n"
  },
  {
    "path": "packages/core-js/full/array/unshift.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/unshift');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/values.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/at.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/at');\n\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.array.at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/concat.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/concat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/copy-within.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/copy-within');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/entries.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/every.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/fill.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/fill');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/filter-out.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.array.filter-out');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'filterOut');\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/filter-reject.js",
    "content": "'use strict';\nrequire('../../../modules/esnext.array.filter-reject');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'filterReject');\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/filter.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/find-index.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/find-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/find-last-index.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/find-last-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/find-last.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/find-last');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/find.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/flat-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/flat.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/flat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/for-each.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/group-by-to-map.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/group-by-to-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/group-by.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/group-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/group-to-map.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/group-to-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/group.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/group');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/includes.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/index-of.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/index.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual');\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.array.at');\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.array.filter-out');\nrequire('../../../modules/esnext.array.filter-reject');\nrequire('../../../modules/esnext.array.unique-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/iterator.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/join.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/join');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/keys.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/last-index-of.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/last-index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/map.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/push.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/push');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/reduce-right.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/reduce-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/reduce.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/reverse.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/reverse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/slice.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/some.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/sort.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/sort');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/splice.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/splice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/to-reversed.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/to-reversed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/to-sorted.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/to-sorted');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/to-spliced.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/to-spliced');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/unique-by.js",
    "content": "'use strict';\nrequire('../../../modules/es.map');\nrequire('../../../modules/esnext.array.unique-by');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'uniqueBy');\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/unshift.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/unshift');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/values.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/virtual/with.js",
    "content": "'use strict';\nvar parent = require('../../../actual/array/virtual/with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array/with.js",
    "content": "'use strict';\nvar parent = require('../../actual/array/with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array-buffer/constructor.js",
    "content": "'use strict';\nvar parent = require('../../actual/array-buffer/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array-buffer/detached.js",
    "content": "'use strict';\nvar parent = require('../../actual/array-buffer/detached');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array-buffer/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/array-buffer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array-buffer/is-view.js",
    "content": "'use strict';\nvar parent = require('../../actual/array-buffer/is-view');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array-buffer/slice.js",
    "content": "'use strict';\nvar parent = require('../../actual/array-buffer/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array-buffer/transfer-to-fixed-length.js",
    "content": "'use strict';\nvar parent = require('../../actual/array-buffer/transfer-to-fixed-length');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/array-buffer/transfer.js",
    "content": "'use strict';\nvar parent = require('../../actual/array-buffer/transfer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-disposable-stack/constructor.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-disposable-stack/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-disposable-stack/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-disposable-stack');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/as-indexed-pairs.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.as-indexed-pairs');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'asIndexedPairs');\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/async-dispose.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/async-dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/drop.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/drop');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/every.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/filter.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/find.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/flat-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/for-each.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/from.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/from');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.async-iterator.as-indexed-pairs');\nrequire('../../modules/esnext.async-iterator.indexed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/indexed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.async-iterator.constructor');\nrequire('../../modules/esnext.async-iterator.indexed');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('AsyncIterator', 'indexed');\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/map.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/reduce.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/some.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/take.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/take');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/async-iterator/to-array.js",
    "content": "'use strict';\nvar parent = require('../../actual/async-iterator/to-array');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/atob.js",
    "content": "'use strict';\nvar parent = require('../actual/atob');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/bigint/index.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/esnext.bigint.range');\nvar BigInt = require('../../internals/path').BigInt;\n\nmodule.exports = BigInt;\n"
  },
  {
    "path": "packages/core-js/full/bigint/range.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/esnext.bigint.range');\nvar BigInt = require('../../internals/path').BigInt;\n\nmodule.exports = BigInt && BigInt.range;\n"
  },
  {
    "path": "packages/core-js/full/btoa.js",
    "content": "'use strict';\nvar parent = require('../actual/btoa');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/clear-immediate.js",
    "content": "'use strict';\nvar parent = require('../actual/clear-immediate');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/composite-key.js",
    "content": "'use strict';\nrequire('../modules/esnext.composite-key');\nvar path = require('../internals/path');\n\nmodule.exports = path.compositeKey;\n"
  },
  {
    "path": "packages/core-js/full/composite-symbol.js",
    "content": "'use strict';\nrequire('../modules/es.symbol');\nrequire('../modules/esnext.composite-symbol');\nvar path = require('../internals/path');\n\nmodule.exports = path.compositeSymbol;\n"
  },
  {
    "path": "packages/core-js/full/data-view/get-float16.js",
    "content": "'use strict';\nvar parent = require('../../actual/data-view/get-float16');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/data-view/get-uint8-clamped.js",
    "content": "'use strict';\nrequire('../../modules/esnext.data-view.get-uint8-clamped');\n"
  },
  {
    "path": "packages/core-js/full/data-view/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/data-view');\nrequire('../../modules/esnext.data-view.get-uint8-clamped');\nrequire('../../modules/esnext.data-view.set-uint8-clamped');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/data-view/set-float16.js",
    "content": "'use strict';\nvar parent = require('../../actual/data-view/set-float16');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/data-view/set-uint8-clamped.js",
    "content": "'use strict';\nrequire('../../modules/esnext.data-view.set-uint8-clamped');\n"
  },
  {
    "path": "packages/core-js/full/date/get-year.js",
    "content": "'use strict';\nvar parent = require('../../actual/date/get-year');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/date/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/date');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/date/now.js",
    "content": "'use strict';\nvar parent = require('../../actual/date/now');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/date/set-year.js",
    "content": "'use strict';\nvar parent = require('../../actual/date/set-year');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/date/to-gmt-string.js",
    "content": "'use strict';\nvar parent = require('../../actual/date/to-gmt-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/date/to-iso-string.js",
    "content": "'use strict';\nvar parent = require('../../actual/date/to-iso-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/date/to-json.js",
    "content": "'use strict';\nvar parent = require('../../actual/date/to-json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/date/to-primitive.js",
    "content": "'use strict';\nvar parent = require('../../actual/date/to-primitive');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/date/to-string.js",
    "content": "'use strict';\nvar parent = require('../../actual/date/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/disposable-stack/constructor.js",
    "content": "'use strict';\nvar parent = require('../../actual/disposable-stack/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/disposable-stack/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/disposable-stack');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/dom-collections/for-each.js",
    "content": "'use strict';\nvar parent = require('../../actual/dom-collections/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/dom-collections/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/dom-collections');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/dom-collections/iterator.js",
    "content": "'use strict';\nvar parent = require('../../actual/dom-collections/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/dom-exception/constructor.js",
    "content": "'use strict';\nvar parent = require('../../actual/dom-exception/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/dom-exception/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/dom-exception');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/dom-exception/to-string-tag.js",
    "content": "'use strict';\nvar parent = require('../../actual/dom-exception/to-string-tag');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/error/constructor.js",
    "content": "'use strict';\nvar parent = require('../../actual/error/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/error/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/error');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/error/is-error.js",
    "content": "'use strict';\nvar parent = require('../../actual/error/is-error');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/error/to-string.js",
    "content": "'use strict';\nvar parent = require('../../actual/error/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/escape.js",
    "content": "'use strict';\nvar parent = require('../actual/escape');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/function/bind.js",
    "content": "'use strict';\nvar parent = require('../../actual/function/bind');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/function/demethodize.js",
    "content": "'use strict';\nrequire('../../modules/esnext.function.demethodize');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Function', 'demethodize');\n"
  },
  {
    "path": "packages/core-js/full/function/has-instance.js",
    "content": "'use strict';\nvar parent = require('../../actual/function/has-instance');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/function/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/function');\nrequire('../../modules/esnext.function.demethodize');\nrequire('../../modules/esnext.function.is-callable');\nrequire('../../modules/esnext.function.is-constructor');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.function.un-this');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/function/is-callable.js",
    "content": "'use strict';\nrequire('../../modules/esnext.function.is-callable');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Function.isCallable;\n"
  },
  {
    "path": "packages/core-js/full/function/is-constructor.js",
    "content": "'use strict';\nrequire('../../modules/esnext.function.is-constructor');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Function.isConstructor;\n"
  },
  {
    "path": "packages/core-js/full/function/metadata.js",
    "content": "'use strict';\nvar parent = require('../../actual/function/metadata');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/function/name.js",
    "content": "'use strict';\nvar parent = require('../../actual/function/name');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/function/un-this.js",
    "content": "'use strict';\nrequire('../../modules/esnext.function.un-this');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Function', 'unThis');\n"
  },
  {
    "path": "packages/core-js/full/function/virtual/bind.js",
    "content": "'use strict';\nvar parent = require('../../../actual/function/virtual/bind');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/function/virtual/demethodize.js",
    "content": "'use strict';\nrequire('../../../modules/esnext.function.demethodize');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Function', 'demethodize');\n"
  },
  {
    "path": "packages/core-js/full/function/virtual/index.js",
    "content": "'use strict';\nvar parent = require('../../../actual/function/virtual');\nrequire('../../../modules/esnext.function.demethodize');\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.function.un-this');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/function/virtual/un-this.js",
    "content": "'use strict';\nrequire('../../../modules/esnext.function.un-this');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Function', 'unThis');\n"
  },
  {
    "path": "packages/core-js/full/get-iterator-method.js",
    "content": "'use strict';\nvar parent = require('../actual/get-iterator-method');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/get-iterator.js",
    "content": "'use strict';\nvar parent = require('../actual/get-iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/global-this.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nrequire('../modules/esnext.global-this');\n\nvar parent = require('../actual/global-this');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/at.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar arrayMethod = require('../array/virtual/at');\nvar stringMethod = require('../string/virtual/at');\n\nvar ArrayPrototype = Array.prototype;\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.at;\n  if (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.at)) return arrayMethod;\n  if (typeof it == 'string' || it === StringPrototype || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.at)) {\n    return stringMethod;\n  } return own;\n};\n"
  },
  {
    "path": "packages/core-js/full/instance/bind.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/bind');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/clamp.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar numberMethod = require('../number/virtual/clamp');\n\nvar NumberPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var ownProperty = it.clamp;\n  // eslint-disable-next-line es/no-nonstandard-string-prototype-properties -- safe\n  if (typeof it == 'number' || it === NumberPrototype || (isPrototypeOf(NumberPrototype, it) && ownProperty === NumberPrototype.clamp)) {\n    return numberMethod;\n  }\n  return ownProperty;\n};\n"
  },
  {
    "path": "packages/core-js/full/instance/code-point-at.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/code-point-at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/code-points.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/code-points');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n  var own = it.codePoints;\n  return typeof it == 'string' || it === StringPrototype\n    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.codePoints) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/full/instance/concat.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/concat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/copy-within.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/copy-within');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/demethodize.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../function/virtual/demethodize');\n\nvar FunctionPrototype = Function.prototype;\n\nmodule.exports = function (it) {\n  var own = it.demethodize;\n  return it === FunctionPrototype || (isPrototypeOf(FunctionPrototype, it) && own === FunctionPrototype.demethodize) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/full/instance/ends-with.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/ends-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/entries.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/every.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/fill.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/fill');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/filter-out.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/filter-out');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.filterOut;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.filterOut) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/full/instance/filter-reject.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/filter-reject');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.filterReject;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.filterReject) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/full/instance/filter.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/find-index.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/find-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/find-last-index.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/find-last-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/find-last.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/find-last');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/find.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/flags.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/flags');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/flat-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/flat.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/flat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/for-each.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/group-by-to-map.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/group-by-to-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/group-by.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/group-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/group-to-map.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/group-to-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/group.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/group');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/includes.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/index-of.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/is-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/is-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/keys.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/last-index-of.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/last-index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/map.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/match-all.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.string.match-all');\n\nvar parent = require('../../actual/instance/match-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/pad-end.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/pad-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/pad-start.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/pad-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/push.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/push');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/reduce-right.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/reduce-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/reduce.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/repeat.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/repeat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/replace-all.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.string.replace-all');\n\nvar parent = require('../../actual/instance/replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/reverse.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/reverse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/slice.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/some.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/sort.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/sort');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/splice.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/splice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/starts-with.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/starts-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/to-reversed.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/to-reversed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/to-sorted.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/to-sorted');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/to-spliced.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/to-spliced');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/to-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/to-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/trim-end.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/trim-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/trim-left.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/trim-left');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/trim-right.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/trim-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/trim-start.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/trim-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/trim.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/trim');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/un-this.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../function/virtual/un-this');\n\nvar FunctionPrototype = Function.prototype;\n\nmodule.exports = function (it) {\n  var own = it.unThis;\n  return it === FunctionPrototype || (isPrototypeOf(FunctionPrototype, it) && own === FunctionPrototype.unThis) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/full/instance/unique-by.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/unique-by');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n  var own = it.uniqueBy;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.uniqueBy) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/full/instance/unshift.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/unshift');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/values.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/instance/with.js",
    "content": "'use strict';\nvar parent = require('../../actual/instance/with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/is-iterable.js",
    "content": "'use strict';\nvar parent = require('../actual/is-iterable');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/as-indexed-pairs.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.as-indexed-pairs');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'asIndexedPairs');\n\n"
  },
  {
    "path": "packages/core-js/full/iterator/chunks.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/esnext.iterator.chunks');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'chunks');\n"
  },
  {
    "path": "packages/core-js/full/iterator/concat.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/concat');\nrequire('../../modules/esnext.iterator.chunks');\nrequire('../../modules/esnext.iterator.sliding');\nrequire('../../modules/esnext.iterator.windows');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/dispose.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/drop.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/drop');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/every.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/filter.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/find.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/flat-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/for-each.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/from.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/from');\nrequire('../../modules/esnext.iterator.chunks');\nrequire('../../modules/esnext.iterator.sliding');\nrequire('../../modules/esnext.iterator.windows');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator');\nrequire('../../modules/esnext.iterator.chunks');\nrequire('../../modules/esnext.iterator.range');\nrequire('../../modules/esnext.iterator.windows');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.iterator.as-indexed-pairs');\nrequire('../../modules/esnext.iterator.indexed');\nrequire('../../modules/esnext.iterator.sliding');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/indexed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.indexed');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'indexed');\n\n"
  },
  {
    "path": "packages/core-js/full/iterator/map.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/range.js",
    "content": "'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/es.iterator.drop');\nrequire('../../modules/es.iterator.every');\nrequire('../../modules/es.iterator.filter');\nrequire('../../modules/es.iterator.find');\nrequire('../../modules/es.iterator.flat-map');\nrequire('../../modules/es.iterator.for-each');\nrequire('../../modules/es.iterator.map');\nrequire('../../modules/es.iterator.reduce');\nrequire('../../modules/es.iterator.some');\nrequire('../../modules/es.iterator.take');\nrequire('../../modules/es.iterator.to-array');\nrequire('../../modules/esnext.iterator.chunks');\n// TODO: drop from core-js@4\nrequire('../../modules/esnext.iterator.constructor');\nrequire('../../modules/esnext.iterator.range');\nrequire('../../modules/esnext.iterator.sliding');\nrequire('../../modules/esnext.iterator.windows');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Iterator.range;\n"
  },
  {
    "path": "packages/core-js/full/iterator/reduce.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/sliding.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/esnext.iterator.sliding');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'sliding');\n"
  },
  {
    "path": "packages/core-js/full/iterator/some.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/take.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/take');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/to-array.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/to-array');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/to-async.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/to-async');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/windows.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.iterator.constructor');\nrequire('../../modules/esnext.iterator.windows');\n\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Iterator', 'windows');\n"
  },
  {
    "path": "packages/core-js/full/iterator/zip-keyed.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/zip-keyed');\nrequire('../../modules/esnext.iterator.chunks');\nrequire('../../modules/esnext.iterator.sliding');\nrequire('../../modules/esnext.iterator.windows');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/iterator/zip.js",
    "content": "'use strict';\nvar parent = require('../../actual/iterator/zip');\nrequire('../../modules/esnext.iterator.chunks');\nrequire('../../modules/esnext.iterator.sliding');\nrequire('../../modules/esnext.iterator.windows');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/json/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/json/is-raw-json.js",
    "content": "'use strict';\nvar parent = require('../../actual/json/is-raw-json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/json/parse.js",
    "content": "'use strict';\nvar parent = require('../../actual/json/parse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/json/raw-json.js",
    "content": "'use strict';\nvar parent = require('../../actual/json/raw-json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/json/stringify.js",
    "content": "'use strict';\nvar parent = require('../../actual/json/stringify');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/json/to-string-tag.js",
    "content": "'use strict';\nvar parent = require('../../actual/json/to-string-tag');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/map/delete-all.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.delete-all');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'deleteAll');\n"
  },
  {
    "path": "packages/core-js/full/map/emplace.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.emplace');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'emplace');\n"
  },
  {
    "path": "packages/core-js/full/map/every.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.every');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'every');\n"
  },
  {
    "path": "packages/core-js/full/map/filter.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.filter');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'filter');\n"
  },
  {
    "path": "packages/core-js/full/map/find-key.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.find-key');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'findKey');\n"
  },
  {
    "path": "packages/core-js/full/map/find.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.find');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'find');\n"
  },
  {
    "path": "packages/core-js/full/map/from.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.map');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.map.from');\nrequire('../../modules/esnext.map.delete-all');\nrequire('../../modules/esnext.map.emplace');\nrequire('../../modules/esnext.map.every');\nrequire('../../modules/esnext.map.filter');\nrequire('../../modules/esnext.map.find');\nrequire('../../modules/esnext.map.find-key');\nrequire('../../modules/esnext.map.get-or-insert');\nrequire('../../modules/esnext.map.get-or-insert-computed');\nrequire('../../modules/esnext.map.includes');\nrequire('../../modules/esnext.map.key-of');\nrequire('../../modules/esnext.map.map-keys');\nrequire('../../modules/esnext.map.map-values');\nrequire('../../modules/esnext.map.merge');\nrequire('../../modules/esnext.map.reduce');\nrequire('../../modules/esnext.map.some');\nrequire('../../modules/esnext.map.update');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map.from;\n"
  },
  {
    "path": "packages/core-js/full/map/get-or-insert-computed.js",
    "content": "'use strict';\nvar parent = require('../../actual/map/get-or-insert-computed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/map/get-or-insert.js",
    "content": "'use strict';\nvar parent = require('../../actual/map/get-or-insert');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/map/group-by.js",
    "content": "'use strict';\nvar parent = require('../../actual/map/group-by');\nrequire('../../modules/esnext.map.delete-all');\nrequire('../../modules/esnext.map.emplace');\nrequire('../../modules/esnext.map.every');\nrequire('../../modules/esnext.map.filter');\nrequire('../../modules/esnext.map.find');\nrequire('../../modules/esnext.map.find-key');\nrequire('../../modules/esnext.map.get-or-insert');\nrequire('../../modules/esnext.map.get-or-insert-computed');\nrequire('../../modules/esnext.map.includes');\nrequire('../../modules/esnext.map.key-of');\nrequire('../../modules/esnext.map.map-keys');\nrequire('../../modules/esnext.map.map-values');\nrequire('../../modules/esnext.map.merge');\nrequire('../../modules/esnext.map.reduce');\nrequire('../../modules/esnext.map.some');\nrequire('../../modules/esnext.map.update');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/map/includes.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'includes');\n"
  },
  {
    "path": "packages/core-js/full/map/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/map');\nrequire('../../modules/esnext.map.from');\nrequire('../../modules/esnext.map.of');\nrequire('../../modules/esnext.map.key-by');\nrequire('../../modules/esnext.map.delete-all');\nrequire('../../modules/esnext.map.emplace');\nrequire('../../modules/esnext.map.every');\nrequire('../../modules/esnext.map.filter');\nrequire('../../modules/esnext.map.find');\nrequire('../../modules/esnext.map.find-key');\nrequire('../../modules/esnext.map.includes');\nrequire('../../modules/esnext.map.get-or-insert');\nrequire('../../modules/esnext.map.get-or-insert-computed');\nrequire('../../modules/esnext.map.key-of');\nrequire('../../modules/esnext.map.map-keys');\nrequire('../../modules/esnext.map.map-values');\nrequire('../../modules/esnext.map.merge');\nrequire('../../modules/esnext.map.reduce');\nrequire('../../modules/esnext.map.some');\nrequire('../../modules/esnext.map.update');\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.map.upsert');\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.map.update-or-insert');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/map/key-by.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.key-by');\nrequire('../../modules/esnext.map.delete-all');\nrequire('../../modules/esnext.map.emplace');\nrequire('../../modules/esnext.map.every');\nrequire('../../modules/esnext.map.filter');\nrequire('../../modules/esnext.map.find');\nrequire('../../modules/esnext.map.find-key');\nrequire('../../modules/esnext.map.get-or-insert');\nrequire('../../modules/esnext.map.get-or-insert-computed');\nrequire('../../modules/esnext.map.includes');\nrequire('../../modules/esnext.map.key-of');\nrequire('../../modules/esnext.map.map-keys');\nrequire('../../modules/esnext.map.map-values');\nrequire('../../modules/esnext.map.merge');\nrequire('../../modules/esnext.map.reduce');\nrequire('../../modules/esnext.map.some');\nrequire('../../modules/esnext.map.update');\nvar call = require('../../internals/function-call');\nvar isCallable = require('../../internals/is-callable');\nvar path = require('../../internals/path');\n\nvar Map = path.Map;\nvar mapKeyBy = Map.keyBy;\n\nmodule.exports = function keyBy(source, iterable, keyDerivative) {\n  return call(mapKeyBy, isCallable(this) ? this : Map, source, iterable, keyDerivative);\n};\n"
  },
  {
    "path": "packages/core-js/full/map/key-of.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.key-of');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'keyOf');\n"
  },
  {
    "path": "packages/core-js/full/map/map-keys.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.map-keys');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'mapKeys');\n"
  },
  {
    "path": "packages/core-js/full/map/map-values.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.map-values');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'mapValues');\n"
  },
  {
    "path": "packages/core-js/full/map/merge.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.merge');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'merge');\n"
  },
  {
    "path": "packages/core-js/full/map/of.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.of');\nrequire('../../modules/esnext.map.delete-all');\nrequire('../../modules/esnext.map.emplace');\nrequire('../../modules/esnext.map.every');\nrequire('../../modules/esnext.map.filter');\nrequire('../../modules/esnext.map.find');\nrequire('../../modules/esnext.map.find-key');\nrequire('../../modules/esnext.map.get-or-insert');\nrequire('../../modules/esnext.map.get-or-insert-computed');\nrequire('../../modules/esnext.map.includes');\nrequire('../../modules/esnext.map.key-of');\nrequire('../../modules/esnext.map.map-keys');\nrequire('../../modules/esnext.map.map-values');\nrequire('../../modules/esnext.map.merge');\nrequire('../../modules/esnext.map.reduce');\nrequire('../../modules/esnext.map.some');\nrequire('../../modules/esnext.map.update');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map.of;\n"
  },
  {
    "path": "packages/core-js/full/map/reduce.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.reduce');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'reduce');\n"
  },
  {
    "path": "packages/core-js/full/map/some.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.some');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'some');\n"
  },
  {
    "path": "packages/core-js/full/map/update-or-insert.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.update-or-insert');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'updateOrInsert');\n"
  },
  {
    "path": "packages/core-js/full/map/update.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.update');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'update');\n"
  },
  {
    "path": "packages/core-js/full/map/upsert.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.map.upsert');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Map', 'upsert');\n"
  },
  {
    "path": "packages/core-js/full/math/acosh.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/acosh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/asinh.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/asinh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/atanh.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/atanh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/cbrt.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/cbrt');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/clamp.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.math.clamp');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.clamp;\n"
  },
  {
    "path": "packages/core-js/full/math/clz32.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/clz32');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/cosh.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/cosh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/deg-per-rad.js",
    "content": "'use strict';\nrequire('../../modules/esnext.math.deg-per-rad');\n\nmodule.exports = Math.PI / 180;\n"
  },
  {
    "path": "packages/core-js/full/math/degrees.js",
    "content": "'use strict';\nrequire('../../modules/esnext.math.degrees');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.degrees;\n"
  },
  {
    "path": "packages/core-js/full/math/expm1.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/expm1');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/f16round.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/f16round');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/fround.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/fround');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/fscale.js",
    "content": "'use strict';\nrequire('../../modules/esnext.math.fscale');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.fscale;\n"
  },
  {
    "path": "packages/core-js/full/math/hypot.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/hypot');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/iaddh.js",
    "content": "'use strict';\nrequire('../../modules/esnext.math.iaddh');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.iaddh;\n"
  },
  {
    "path": "packages/core-js/full/math/imul.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/imul');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/imulh.js",
    "content": "'use strict';\nrequire('../../modules/esnext.math.imulh');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.imulh;\n"
  },
  {
    "path": "packages/core-js/full/math/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/math');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.math.clamp');\nrequire('../../modules/esnext.math.deg-per-rad');\nrequire('../../modules/esnext.math.degrees');\nrequire('../../modules/esnext.math.fscale');\nrequire('../../modules/esnext.math.rad-per-deg');\nrequire('../../modules/esnext.math.radians');\nrequire('../../modules/esnext.math.scale');\nrequire('../../modules/esnext.math.seeded-prng');\nrequire('../../modules/esnext.math.signbit');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.math.iaddh');\nrequire('../../modules/esnext.math.isubh');\nrequire('../../modules/esnext.math.imulh');\nrequire('../../modules/esnext.math.umulh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/isubh.js",
    "content": "'use strict';\nrequire('../../modules/esnext.math.isubh');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.isubh;\n"
  },
  {
    "path": "packages/core-js/full/math/log10.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/log10');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/log1p.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/log1p');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/log2.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/log2');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/rad-per-deg.js",
    "content": "'use strict';\nrequire('../../modules/esnext.math.rad-per-deg');\n\nmodule.exports = 180 / Math.PI;\n"
  },
  {
    "path": "packages/core-js/full/math/radians.js",
    "content": "'use strict';\nrequire('../../modules/esnext.math.radians');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.radians;\n"
  },
  {
    "path": "packages/core-js/full/math/scale.js",
    "content": "'use strict';\nrequire('../../modules/esnext.math.scale');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.scale;\n"
  },
  {
    "path": "packages/core-js/full/math/seeded-prng.js",
    "content": "'use strict';\nrequire('../../modules/esnext.math.seeded-prng');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.seededPRNG;\n"
  },
  {
    "path": "packages/core-js/full/math/sign.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/sign');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/signbit.js",
    "content": "'use strict';\nrequire('../../modules/esnext.math.signbit');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.signbit;\n"
  },
  {
    "path": "packages/core-js/full/math/sinh.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/sinh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/sum-precise.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/sum-precise');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/tanh.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/tanh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/to-string-tag.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/to-string-tag');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/trunc.js",
    "content": "'use strict';\nvar parent = require('../../actual/math/trunc');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/math/umulh.js",
    "content": "'use strict';\nrequire('../../modules/esnext.math.umulh');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.umulh;\n"
  },
  {
    "path": "packages/core-js/full/number/clamp.js",
    "content": "'use strict';\nrequire('../../modules/esnext.number.clamp');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Number', 'clamp');\n"
  },
  {
    "path": "packages/core-js/full/number/constructor.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/epsilon.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/epsilon');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/from-string.js",
    "content": "'use strict';\nrequire('../../modules/esnext.number.from-string');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.fromString;\n"
  },
  {
    "path": "packages/core-js/full/number/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/number');\n\nmodule.exports = parent;\n\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/esnext.number.clamp');\nrequire('../../modules/esnext.number.from-string');\nrequire('../../modules/esnext.number.range');\n"
  },
  {
    "path": "packages/core-js/full/number/is-finite.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/is-finite');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/is-integer.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/is-integer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/is-nan.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/is-nan');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/is-safe-integer.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/is-safe-integer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/max-safe-integer.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/max-safe-integer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/min-safe-integer.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/min-safe-integer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/parse-float.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/parse-float');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/parse-int.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/parse-int');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/range.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/esnext.number.range');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.range;\n"
  },
  {
    "path": "packages/core-js/full/number/to-exponential.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/to-exponential');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/to-fixed.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/to-fixed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/to-precision.js",
    "content": "'use strict';\nvar parent = require('../../actual/number/to-precision');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/virtual/clamp.js",
    "content": "'use strict';\nrequire('../../../modules/esnext.number.clamp');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Number', 'clamp');\n"
  },
  {
    "path": "packages/core-js/full/number/virtual/index.js",
    "content": "'use strict';\nvar parent = require('../../../actual/number/virtual');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/virtual/to-exponential.js",
    "content": "'use strict';\nvar parent = require('../../../actual/number/virtual/to-exponential');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/virtual/to-fixed.js",
    "content": "'use strict';\nvar parent = require('../../../actual/number/virtual/to-fixed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/number/virtual/to-precision.js",
    "content": "'use strict';\nvar parent = require('../../../actual/number/virtual/to-precision');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/assign.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/assign');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/create.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/create');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/define-getter.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/define-getter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/define-properties.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/define-properties');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/define-property.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/define-property');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/define-setter.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/define-setter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/entries.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/freeze.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/freeze');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/from-entries.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/from-entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/get-own-property-descriptor.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/get-own-property-descriptor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/get-own-property-descriptors.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/get-own-property-descriptors');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/get-own-property-names.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/get-own-property-names');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/get-own-property-symbols.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/get-own-property-symbols');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/get-prototype-of.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/get-prototype-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/group-by.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/group-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/has-own.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/has-own');\n\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.object.has-own');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/object');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.object.has-own');\nrequire('../../modules/esnext.object.iterate-entries');\nrequire('../../modules/esnext.object.iterate-keys');\nrequire('../../modules/esnext.object.iterate-values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/is-extensible.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/is-extensible');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/is-frozen.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/is-frozen');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/is-sealed.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/is-sealed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/is.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/is');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/iterate-entries.js",
    "content": "'use strict';\nrequire('../../modules/esnext.object.iterate-entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.iterateEntries;\n"
  },
  {
    "path": "packages/core-js/full/object/iterate-keys.js",
    "content": "'use strict';\nrequire('../../modules/esnext.object.iterate-keys');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.iterateKeys;\n"
  },
  {
    "path": "packages/core-js/full/object/iterate-values.js",
    "content": "'use strict';\nrequire('../../modules/esnext.object.iterate-values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.iterateValues;\n"
  },
  {
    "path": "packages/core-js/full/object/keys.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/lookup-getter.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/lookup-getter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/lookup-setter.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/lookup-setter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/prevent-extensions.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/prevent-extensions');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/proto.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/proto');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/seal.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/seal');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/set-prototype-of.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/set-prototype-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/to-string.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/object/values.js",
    "content": "'use strict';\nvar parent = require('../../actual/object/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/observable/index.js",
    "content": "'use strict';\nrequire('../../modules/esnext.observable');\nrequire('../../modules/esnext.symbol.observable');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Observable;\n"
  },
  {
    "path": "packages/core-js/full/parse-float.js",
    "content": "'use strict';\nvar parent = require('../actual/parse-float');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/parse-int.js",
    "content": "'use strict';\nvar parent = require('../actual/parse-int');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/promise/all-settled.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.promise.all-settled');\n\nvar parent = require('../../actual/promise/all-settled');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/promise/any.js",
    "content": "'use strict';\nvar parent = require('../../actual/promise/any');\n\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.aggregate-error');\nrequire('../../modules/esnext.promise.any');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/promise/finally.js",
    "content": "'use strict';\nvar parent = require('../../actual/promise/finally');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/promise/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/promise');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.aggregate-error');\nrequire('../../modules/esnext.promise.all-settled');\nrequire('../../modules/esnext.promise.any');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/promise/try.js",
    "content": "'use strict';\nvar parent = require('../../actual/promise/try');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/promise/with-resolvers.js",
    "content": "'use strict';\nvar parent = require('../../actual/promise/with-resolvers');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/queue-microtask.js",
    "content": "'use strict';\nvar parent = require('../actual/queue-microtask');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/apply.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/apply');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/construct.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/construct');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/define-metadata.js",
    "content": "'use strict';\nrequire('../../modules/esnext.reflect.define-metadata');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.defineMetadata;\n"
  },
  {
    "path": "packages/core-js/full/reflect/define-property.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/define-property');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/delete-metadata.js",
    "content": "'use strict';\nrequire('../../modules/esnext.reflect.delete-metadata');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.deleteMetadata;\n"
  },
  {
    "path": "packages/core-js/full/reflect/delete-property.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/delete-property');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/get-metadata-keys.js",
    "content": "'use strict';\nrequire('../../modules/esnext.reflect.get-metadata-keys');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.getMetadataKeys;\n"
  },
  {
    "path": "packages/core-js/full/reflect/get-metadata.js",
    "content": "'use strict';\nrequire('../../modules/esnext.reflect.get-metadata');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.getMetadata;\n"
  },
  {
    "path": "packages/core-js/full/reflect/get-own-metadata-keys.js",
    "content": "'use strict';\nrequire('../../modules/esnext.reflect.get-own-metadata-keys');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.getOwnMetadataKeys;\n"
  },
  {
    "path": "packages/core-js/full/reflect/get-own-metadata.js",
    "content": "'use strict';\nrequire('../../modules/esnext.reflect.get-own-metadata');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.getOwnMetadata;\n"
  },
  {
    "path": "packages/core-js/full/reflect/get-own-property-descriptor.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/get-own-property-descriptor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/get-prototype-of.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/get-prototype-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/get.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/get');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/has-metadata.js",
    "content": "'use strict';\nrequire('../../modules/esnext.reflect.has-metadata');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.hasMetadata;\n"
  },
  {
    "path": "packages/core-js/full/reflect/has-own-metadata.js",
    "content": "'use strict';\nrequire('../../modules/esnext.reflect.has-own-metadata');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.hasOwnMetadata;\n"
  },
  {
    "path": "packages/core-js/full/reflect/has.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/has');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect');\nrequire('../../modules/esnext.reflect.define-metadata');\nrequire('../../modules/esnext.reflect.delete-metadata');\nrequire('../../modules/esnext.reflect.get-metadata');\nrequire('../../modules/esnext.reflect.get-metadata-keys');\nrequire('../../modules/esnext.reflect.get-own-metadata');\nrequire('../../modules/esnext.reflect.get-own-metadata-keys');\nrequire('../../modules/esnext.reflect.has-metadata');\nrequire('../../modules/esnext.reflect.has-own-metadata');\nrequire('../../modules/esnext.reflect.metadata');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/is-extensible.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/is-extensible');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/metadata.js",
    "content": "'use strict';\nrequire('../../modules/esnext.reflect.metadata');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.metadata;\n"
  },
  {
    "path": "packages/core-js/full/reflect/own-keys.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/own-keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/prevent-extensions.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/prevent-extensions');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/set-prototype-of.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/set-prototype-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/set.js",
    "content": "'use strict';\nvar parent = require('../../actual/reflect/set');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/reflect/to-string-tag.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.to-string-tag');\n\nmodule.exports = 'Reflect';\n"
  },
  {
    "path": "packages/core-js/full/regexp/constructor.js",
    "content": "'use strict';\nvar parent = require('../../actual/regexp/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/regexp/dot-all.js",
    "content": "'use strict';\nvar parent = require('../../actual/regexp/dot-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/regexp/escape.js",
    "content": "'use strict';\nvar parent = require('../../actual/regexp/escape');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/regexp/flags.js",
    "content": "'use strict';\nvar parent = require('../../actual/regexp/flags');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/regexp/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/regexp');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/regexp/match.js",
    "content": "'use strict';\nvar parent = require('../../actual/regexp/match');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/regexp/replace.js",
    "content": "'use strict';\nvar parent = require('../../actual/regexp/replace');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/regexp/search.js",
    "content": "'use strict';\nvar parent = require('../../actual/regexp/search');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/regexp/split.js",
    "content": "'use strict';\nvar parent = require('../../actual/regexp/split');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/regexp/sticky.js",
    "content": "'use strict';\nvar parent = require('../../actual/regexp/sticky');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/regexp/test.js",
    "content": "'use strict';\nvar parent = require('../../actual/regexp/test');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/regexp/to-string.js",
    "content": "'use strict';\nvar parent = require('../../actual/regexp/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/self.js",
    "content": "'use strict';\nvar parent = require('../actual/self');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/set/add-all.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/esnext.set.add-all');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'addAll');\n"
  },
  {
    "path": "packages/core-js/full/set/delete-all.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/esnext.set.delete-all');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'deleteAll');\n"
  },
  {
    "path": "packages/core-js/full/set/difference.js",
    "content": "'use strict';\nrequire('../../actual/set/difference');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.set.difference');\nrequire('../../modules/web.dom-collections.iterator');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'difference');\n"
  },
  {
    "path": "packages/core-js/full/set/every.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/esnext.set.every');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'every');\n"
  },
  {
    "path": "packages/core-js/full/set/filter.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/esnext.set.filter');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'filter');\n"
  },
  {
    "path": "packages/core-js/full/set/find.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/esnext.set.find');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'find');\n"
  },
  {
    "path": "packages/core-js/full/set/from.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.set');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.set.from');\nrequire('../../modules/esnext.set.add-all');\nrequire('../../modules/esnext.set.delete-all');\nrequire('../../modules/esnext.set.difference.v2');\nrequire('../../modules/esnext.set.every');\nrequire('../../modules/esnext.set.filter');\nrequire('../../modules/esnext.set.find');\nrequire('../../modules/esnext.set.join');\nrequire('../../modules/esnext.set.intersection.v2');\nrequire('../../modules/esnext.set.is-disjoint-from.v2');\nrequire('../../modules/esnext.set.is-subset-of.v2');\nrequire('../../modules/esnext.set.is-superset-of.v2');\nrequire('../../modules/esnext.set.map');\nrequire('../../modules/esnext.set.reduce');\nrequire('../../modules/esnext.set.some');\nrequire('../../modules/esnext.set.symmetric-difference.v2');\nrequire('../../modules/esnext.set.union.v2');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set.from;\n"
  },
  {
    "path": "packages/core-js/full/set/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/set');\nrequire('../../modules/esnext.set.from');\nrequire('../../modules/esnext.set.of');\nrequire('../../modules/esnext.set.add-all');\nrequire('../../modules/esnext.set.delete-all');\nrequire('../../modules/esnext.set.every');\nrequire('../../modules/esnext.set.difference');\nrequire('../../modules/esnext.set.filter');\nrequire('../../modules/esnext.set.find');\nrequire('../../modules/esnext.set.intersection');\nrequire('../../modules/esnext.set.is-disjoint-from');\nrequire('../../modules/esnext.set.is-subset-of');\nrequire('../../modules/esnext.set.is-superset-of');\nrequire('../../modules/esnext.set.join');\nrequire('../../modules/esnext.set.map');\nrequire('../../modules/esnext.set.reduce');\nrequire('../../modules/esnext.set.some');\nrequire('../../modules/esnext.set.symmetric-difference');\nrequire('../../modules/esnext.set.union');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/set/intersection.js",
    "content": "'use strict';\nrequire('../../actual/set/intersection');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.set.intersection');\nrequire('../../modules/web.dom-collections.iterator');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'intersection');\n"
  },
  {
    "path": "packages/core-js/full/set/is-disjoint-from.js",
    "content": "'use strict';\nrequire('../../actual/set/is-disjoint-from');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.set.is-disjoint-from');\nrequire('../../modules/web.dom-collections.iterator');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'isDisjointFrom');\n"
  },
  {
    "path": "packages/core-js/full/set/is-subset-of.js",
    "content": "'use strict';\nrequire('../../actual/set/is-subset-of');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.set.is-subset-of');\nrequire('../../modules/web.dom-collections.iterator');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'isSubsetOf');\n"
  },
  {
    "path": "packages/core-js/full/set/is-superset-of.js",
    "content": "'use strict';\nrequire('../../actual/set/is-superset-of');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.set.is-superset-of');\nrequire('../../modules/web.dom-collections.iterator');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'isSupersetOf');\n"
  },
  {
    "path": "packages/core-js/full/set/join.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/esnext.set.join');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'join');\n"
  },
  {
    "path": "packages/core-js/full/set/map.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/esnext.set.map');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'map');\n"
  },
  {
    "path": "packages/core-js/full/set/of.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.set');\nrequire('../../modules/esnext.set.of');\nrequire('../../modules/esnext.set.add-all');\nrequire('../../modules/esnext.set.delete-all');\nrequire('../../modules/esnext.set.difference.v2');\nrequire('../../modules/esnext.set.every');\nrequire('../../modules/esnext.set.filter');\nrequire('../../modules/esnext.set.find');\nrequire('../../modules/esnext.set.join');\nrequire('../../modules/esnext.set.intersection.v2');\nrequire('../../modules/esnext.set.is-disjoint-from.v2');\nrequire('../../modules/esnext.set.is-subset-of.v2');\nrequire('../../modules/esnext.set.is-superset-of.v2');\nrequire('../../modules/esnext.set.map');\nrequire('../../modules/esnext.set.reduce');\nrequire('../../modules/esnext.set.some');\nrequire('../../modules/esnext.set.symmetric-difference.v2');\nrequire('../../modules/esnext.set.union.v2');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set.of;\n"
  },
  {
    "path": "packages/core-js/full/set/reduce.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/esnext.set.reduce');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'reduce');\n"
  },
  {
    "path": "packages/core-js/full/set/some.js",
    "content": "'use strict';\nrequire('../../modules/es.set');\nrequire('../../modules/esnext.set.some');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'some');\n"
  },
  {
    "path": "packages/core-js/full/set/symmetric-difference.js",
    "content": "'use strict';\nrequire('../../actual/set/symmetric-difference');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.set.symmetric-difference');\nrequire('../../modules/web.dom-collections.iterator');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'symmetricDifference');\n"
  },
  {
    "path": "packages/core-js/full/set/union.js",
    "content": "'use strict';\nrequire('../../actual/set/union');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.set.union');\nrequire('../../modules/web.dom-collections.iterator');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Set', 'union');\n"
  },
  {
    "path": "packages/core-js/full/set-immediate.js",
    "content": "'use strict';\nvar parent = require('../actual/set-immediate');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/set-interval.js",
    "content": "'use strict';\nvar parent = require('../actual/set-interval');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/set-timeout.js",
    "content": "'use strict';\nvar parent = require('../actual/set-timeout');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/anchor.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/anchor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/at.js",
    "content": "'use strict';\nrequire('../../actual/string/at');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.string.at');\n\nmodule.exports = require('../../internals/entry-unbind')('String', 'at');\n"
  },
  {
    "path": "packages/core-js/full/string/big.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/big');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/blink.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/blink');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/bold.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/bold');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/code-point-at.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/code-point-at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/code-points.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/esnext.string.code-points');\n\nmodule.exports = require('../../internals/entry-unbind')('String', 'codePoints');\n"
  },
  {
    "path": "packages/core-js/full/string/cooked.js",
    "content": "'use strict';\nrequire('../../modules/esnext.string.cooked');\nvar path = require('../../internals/path');\n\nmodule.exports = path.String.cooked;\n"
  },
  {
    "path": "packages/core-js/full/string/dedent.js",
    "content": "'use strict';\nrequire('../../modules/es.string.from-code-point');\nrequire('../../modules/es.weak-map');\nrequire('../../modules/esnext.string.dedent');\nvar path = require('../../internals/path');\n\nmodule.exports = path.String.dedent;\n"
  },
  {
    "path": "packages/core-js/full/string/ends-with.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/ends-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/fixed.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/fixed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/fontcolor.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/fontcolor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/fontsize.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/fontsize');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/from-code-point.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/from-code-point');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/includes.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/string');\nrequire('../../modules/es.weak-map');\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.string.at');\nrequire('../../modules/esnext.string.cooked');\nrequire('../../modules/esnext.string.code-points');\nrequire('../../modules/esnext.string.dedent');\nrequire('../../modules/esnext.string.match-all');\nrequire('../../modules/esnext.string.replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/is-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/is-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/italics.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/italics');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/iterator.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/link.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/link');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/match-all.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.string.match-all');\n\nvar parent = require('../../actual/string/match-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/match.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/match');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/pad-end.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/pad-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/pad-start.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/pad-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/raw.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/raw');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/repeat.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/repeat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/replace-all.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.string.replace-all');\n\nvar parent = require('../../actual/string/replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/replace.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/replace');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/search.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/search');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/small.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/small');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/split.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/split');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/starts-with.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/starts-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/strike.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/strike');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/sub.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/sub');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/substr.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/substr');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/sup.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/sup');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/to-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/to-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/trim-end.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/trim-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/trim-left.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/trim-left');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/trim-right.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/trim-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/trim-start.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/trim-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/trim.js",
    "content": "'use strict';\nvar parent = require('../../actual/string/trim');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/anchor.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/anchor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/at.js",
    "content": "'use strict';\nrequire('../../../actual/string/virtual/at');\n// TODO: Remove from `core-js@4`\nrequire('../../../modules/esnext.string.at');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'at');\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/big.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/big');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/blink.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/blink');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/bold.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/bold');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/code-point-at.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/code-point-at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/code-points.js",
    "content": "'use strict';\nrequire('../../../modules/es.object.to-string');\nrequire('../../../modules/esnext.string.code-points');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'codePoints');\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/ends-with.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/ends-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/fixed.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/fixed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/fontcolor.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/fontcolor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/fontsize.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/fontsize');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/includes.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/index.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual');\n// TODO: remove from `core-js@4`\nrequire('../../../modules/esnext.string.at');\nrequire('../../../modules/esnext.string.code-points');\n// TODO: remove from `core-js@4`\nrequire('../../../modules/esnext.string.match-all');\nrequire('../../../modules/esnext.string.replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/is-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/is-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/italics.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/italics');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/iterator.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/link.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/link');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/match-all.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nrequire('../../../modules/esnext.string.match-all');\n\nvar parent = require('../../../actual/string/virtual/match-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/pad-end.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/pad-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/pad-start.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/pad-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/repeat.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/repeat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/replace-all.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nrequire('../../../modules/esnext.string.replace-all');\n\nvar parent = require('../../../actual/string/virtual/replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/small.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/small');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/starts-with.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/starts-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/strike.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/strike');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/sub.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/sub');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/substr.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/substr');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/sup.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/sup');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/to-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/to-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/trim-end.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/trim-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/trim-left.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/trim-left');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/trim-right.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/trim-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/trim-start.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/trim-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/string/virtual/trim.js",
    "content": "'use strict';\nvar parent = require('../../../actual/string/virtual/trim');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/structured-clone.js",
    "content": "'use strict';\nvar parent = require('../actual/structured-clone');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/suppressed-error.js",
    "content": "'use strict';\nvar parent = require('../actual/suppressed-error');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/async-dispose.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/async-dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/async-iterator.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/async-iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/custom-matcher.js",
    "content": "'use strict';\nrequire('../../modules/esnext.symbol.custom-matcher');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('customMatcher');\n"
  },
  {
    "path": "packages/core-js/full/symbol/description.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol.description');\n"
  },
  {
    "path": "packages/core-js/full/symbol/dispose.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/for.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/for');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/has-instance.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/has-instance');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol');\nrequire('../../modules/esnext.symbol.is-registered-symbol');\nrequire('../../modules/esnext.symbol.is-well-known-symbol');\nrequire('../../modules/esnext.symbol.custom-matcher');\nrequire('../../modules/esnext.symbol.observable');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.symbol.is-registered');\nrequire('../../modules/esnext.symbol.is-well-known');\nrequire('../../modules/esnext.symbol.matcher');\nrequire('../../modules/esnext.symbol.metadata-key');\nrequire('../../modules/esnext.symbol.pattern-match');\nrequire('../../modules/esnext.symbol.replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/is-concat-spreadable.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/is-concat-spreadable');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/is-registered-symbol.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol');\nrequire('../../modules/esnext.symbol.is-registered-symbol');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol.isRegisteredSymbol;\n"
  },
  {
    "path": "packages/core-js/full/symbol/is-registered.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol');\nrequire('../../modules/esnext.symbol.is-registered');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol.isRegistered;\n"
  },
  {
    "path": "packages/core-js/full/symbol/is-well-known-symbol.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol');\nrequire('../../modules/esnext.symbol.is-well-known-symbol');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol.isWellKnownSymbol;\n"
  },
  {
    "path": "packages/core-js/full/symbol/is-well-known.js",
    "content": "'use strict';\nrequire('../../modules/es.symbol');\nrequire('../../modules/esnext.symbol.is-well-known');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol.isWellKnown;\n"
  },
  {
    "path": "packages/core-js/full/symbol/iterator.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/key-for.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/key-for');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/match-all.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/match-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/match.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/match');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/matcher.js",
    "content": "'use strict';\nrequire('../../modules/esnext.symbol.matcher');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('matcher');\n"
  },
  {
    "path": "packages/core-js/full/symbol/metadata-key.js",
    "content": "'use strict';\nrequire('../../modules/esnext.symbol.metadata-key');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('metadataKey');\n"
  },
  {
    "path": "packages/core-js/full/symbol/metadata.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/metadata');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/observable.js",
    "content": "'use strict';\nrequire('../../modules/esnext.symbol.observable');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('observable');\n"
  },
  {
    "path": "packages/core-js/full/symbol/pattern-match.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.symbol.pattern-match');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('patternMatch');\n"
  },
  {
    "path": "packages/core-js/full/symbol/replace-all.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.symbol.replace-all');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('replaceAll');\n"
  },
  {
    "path": "packages/core-js/full/symbol/replace.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/replace');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/search.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/search');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/species.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/species');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/split.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/split');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/to-primitive.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/to-primitive');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/to-string-tag.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/to-string-tag');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/symbol/unscopables.js",
    "content": "'use strict';\nvar parent = require('../../actual/symbol/unscopables');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/at.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/at');\n\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.typed-array.at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/copy-within.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/copy-within');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/entries.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/every.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/fill.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/fill');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/filter-out.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.typed-array.filter-out');\n"
  },
  {
    "path": "packages/core-js/full/typed-array/filter-reject.js",
    "content": "'use strict';\nrequire('../../modules/esnext.typed-array.filter-reject');\n"
  },
  {
    "path": "packages/core-js/full/typed-array/filter.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/find-index.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/find-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/find-last-index.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/find-last-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/find-last.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/find-last');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/find.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/float32-array.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/float32-array');\nrequire('../../full/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/float64-array.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/float64-array');\nrequire('../../full/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/for-each.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/from-async.js",
    "content": "'use strict';\nrequire('../../modules/esnext.typed-array.from-async');\n"
  },
  {
    "path": "packages/core-js/full/typed-array/from-base64.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/from-base64');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/from-hex.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/from-hex');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/from.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/from');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/group-by.js",
    "content": "'use strict';\nrequire('../../modules/esnext.typed-array.group-by');\n"
  },
  {
    "path": "packages/core-js/full/typed-array/includes.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/index-of.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array');\nrequire('../../modules/es.map');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.typed-array.from-async');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.typed-array.at');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.typed-array.filter-out');\nrequire('../../modules/esnext.typed-array.filter-reject');\nrequire('../../modules/esnext.typed-array.group-by');\nrequire('../../modules/esnext.typed-array.unique-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/int16-array.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/int16-array');\nrequire('../../full/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/int32-array.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/int32-array');\nrequire('../../full/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/int8-array.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/int8-array');\nrequire('../../full/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/iterator.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/join.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/join');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/keys.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/last-index-of.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/last-index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/map.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/methods.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/methods');\nrequire('../../modules/es.map');\nrequire('../../modules/es.promise');\nrequire('../../modules/esnext.typed-array.from-async');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.typed-array.at');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.typed-array.filter-out');\nrequire('../../modules/esnext.typed-array.filter-reject');\nrequire('../../modules/esnext.typed-array.group-by');\nrequire('../../modules/esnext.typed-array.unique-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/of.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/reduce-right.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/reduce-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/reduce.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/reverse.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/reverse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/set-from-base64.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/set-from-base64');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/set-from-hex.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/set-from-hex');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/set.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/set');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/slice.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/some.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/sort.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/sort');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/subarray.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/subarray');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/to-base64.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/to-base64');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/to-hex.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/to-hex');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/to-locale-string.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/to-locale-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/to-reversed.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/to-reversed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/to-sorted.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/to-sorted');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/to-spliced.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar parent = require('../../actual/typed-array/to-spliced');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/to-string.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/uint16-array.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/uint16-array');\nrequire('../../full/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/uint32-array.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/uint32-array');\nrequire('../../full/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/uint8-array.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/uint8-array');\nrequire('../../full/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/uint8-clamped-array.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/uint8-clamped-array');\nrequire('../../full/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/unique-by.js",
    "content": "'use strict';\nrequire('../../modules/es.map');\nrequire('../../modules/esnext.typed-array.unique-by');\n"
  },
  {
    "path": "packages/core-js/full/typed-array/values.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/typed-array/with.js",
    "content": "'use strict';\nvar parent = require('../../actual/typed-array/with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/unescape.js",
    "content": "'use strict';\nvar parent = require('../actual/unescape');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/url/can-parse.js",
    "content": "'use strict';\nvar parent = require('../../actual/url/can-parse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/url/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/url');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/url/parse.js",
    "content": "'use strict';\nvar parent = require('../../actual/url/parse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/url/to-json.js",
    "content": "'use strict';\nvar parent = require('../../actual/url/to-json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/url-search-params/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/url-search-params');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/weak-map/delete-all.js",
    "content": "'use strict';\nrequire('../../modules/es.weak-map');\nrequire('../../modules/esnext.weak-map.delete-all');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('WeakMap', 'deleteAll');\n"
  },
  {
    "path": "packages/core-js/full/weak-map/emplace.js",
    "content": "'use strict';\nrequire('../../modules/es.weak-map');\nrequire('../../modules/esnext.weak-map.emplace');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('WeakMap', 'emplace');\n"
  },
  {
    "path": "packages/core-js/full/weak-map/from.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.weak-map');\nrequire('../../modules/esnext.weak-map.from');\nrequire('../../modules/esnext.weak-map.delete-all');\nrequire('../../modules/esnext.weak-map.emplace');\nrequire('../../modules/esnext.weak-map.get-or-insert');\nrequire('../../modules/esnext.weak-map.get-or-insert-computed');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakMap.from;\n"
  },
  {
    "path": "packages/core-js/full/weak-map/get-or-insert-computed.js",
    "content": "'use strict';\nvar parent = require('../../actual/weak-map/get-or-insert-computed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/weak-map/get-or-insert.js",
    "content": "'use strict';\nvar parent = require('../../actual/weak-map/get-or-insert');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/weak-map/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/weak-map');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.weak-map.from');\nrequire('../../modules/esnext.weak-map.of');\nrequire('../../modules/esnext.weak-map.emplace');\nrequire('../../modules/esnext.weak-map.get-or-insert');\nrequire('../../modules/esnext.weak-map.get-or-insert-computed');\nrequire('../../modules/esnext.weak-map.delete-all');\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.weak-map.upsert');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/weak-map/of.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.weak-map');\nrequire('../../modules/esnext.weak-map.of');\nrequire('../../modules/esnext.weak-map.delete-all');\nrequire('../../modules/esnext.weak-map.emplace');\nrequire('../../modules/esnext.weak-map.get-or-insert');\nrequire('../../modules/esnext.weak-map.get-or-insert-computed');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakMap.of;\n"
  },
  {
    "path": "packages/core-js/full/weak-map/upsert.js",
    "content": "'use strict';\nrequire('../../modules/es.weak-map');\nrequire('../../modules/esnext.weak-map.upsert');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('WeakMap', 'upsert');\n"
  },
  {
    "path": "packages/core-js/full/weak-set/add-all.js",
    "content": "'use strict';\nrequire('../../modules/es.weak-set');\nrequire('../../modules/esnext.weak-set.add-all');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('WeakSet', 'addAll');\n"
  },
  {
    "path": "packages/core-js/full/weak-set/delete-all.js",
    "content": "'use strict';\nrequire('../../modules/es.weak-set');\nrequire('../../modules/esnext.weak-set.delete-all');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('WeakSet', 'deleteAll');\n"
  },
  {
    "path": "packages/core-js/full/weak-set/from.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.weak-set');\nrequire('../../modules/esnext.weak-set.from');\nrequire('../../modules/esnext.weak-set.add-all');\nrequire('../../modules/esnext.weak-set.delete-all');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakSet.from;\n"
  },
  {
    "path": "packages/core-js/full/weak-set/index.js",
    "content": "'use strict';\nvar parent = require('../../actual/weak-set');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/esnext.weak-set.add-all');\nrequire('../../modules/esnext.weak-set.delete-all');\nrequire('../../modules/esnext.weak-set.from');\nrequire('../../modules/esnext.weak-set.of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/full/weak-set/of.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.weak-set');\nrequire('../../modules/esnext.weak-set.of');\nrequire('../../modules/esnext.weak-set.add-all');\nrequire('../../modules/esnext.weak-set.delete-all');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakSet.of;\n"
  },
  {
    "path": "packages/core-js/index.js",
    "content": "'use strict';\nmodule.exports = require('./full');\n"
  },
  {
    "path": "packages/core-js/internals/README.md",
    "content": "This folder contains internal parts of `core-js` like helpers.\n"
  },
  {
    "path": "packages/core-js/internals/a-callable.js",
    "content": "'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n"
  },
  {
    "path": "packages/core-js/internals/a-constructor.js",
    "content": "'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n  if (isConstructor(argument)) return argument;\n  throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n"
  },
  {
    "path": "packages/core-js/internals/a-data-view.js",
    "content": "'use strict';\nvar classof = require('../internals/classof');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'DataView') return argument;\n  throw new $TypeError('Argument is not a DataView');\n};\n"
  },
  {
    "path": "packages/core-js/internals/a-map.js",
    "content": "'use strict';\nvar has = require('../internals/map-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[MapData]])\nmodule.exports = function (it) {\n  has(it);\n  return it;\n};\n"
  },
  {
    "path": "packages/core-js/internals/a-number.js",
    "content": "'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (typeof argument == 'number') return argument;\n  throw new $TypeError('Argument is not a number');\n};\n"
  },
  {
    "path": "packages/core-js/internals/a-possible-prototype.js",
    "content": "'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (isPossiblePrototype(argument)) return argument;\n  throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n"
  },
  {
    "path": "packages/core-js/internals/a-set.js",
    "content": "'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n  has(it);\n  return it;\n};\n"
  },
  {
    "path": "packages/core-js/internals/a-string.js",
    "content": "'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (typeof argument == 'string') return argument;\n  throw new $TypeError('Argument is not a string');\n};\n"
  },
  {
    "path": "packages/core-js/internals/a-weak-key.js",
    "content": "'use strict';\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\n\nvar weakmap = new WeakMapHelpers.WeakMap();\nvar set = WeakMapHelpers.set;\nvar remove = WeakMapHelpers.remove;\n\nmodule.exports = function (key) {\n  set(weakmap, key, 1);\n  remove(weakmap, key);\n  return key;\n};\n"
  },
  {
    "path": "packages/core-js/internals/a-weak-map.js",
    "content": "'use strict';\nvar has = require('../internals/weak-map-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[WeakMapData]])\nmodule.exports = function (it) {\n  has(it);\n  return it;\n};\n"
  },
  {
    "path": "packages/core-js/internals/a-weak-set.js",
    "content": "'use strict';\nvar has = require('../internals/weak-set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[WeakSetData]])\nmodule.exports = function (it) {\n  has(it);\n  return it;\n};\n"
  },
  {
    "path": "packages/core-js/internals/add-disposable-resource.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar bind = require('../internals/function-bind-context');\nvar anObject = require('../internals/an-object');\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar DISPOSE = wellKnownSymbol('dispose');\n\nvar push = uncurryThis([].push);\n\n// `GetDisposeMethod` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-getdisposemethod\nvar getDisposeMethod = function (V, hint) {\n  if (hint === 'async-dispose') {\n    var method = getMethod(V, ASYNC_DISPOSE);\n    if (method !== undefined) return method;\n    method = getMethod(V, DISPOSE);\n    if (method === undefined) return method;\n    return function () {\n      var O = this;\n      var Promise = getBuiltIn('Promise');\n      return new Promise(function (resolve) {\n        call(method, O);\n        resolve(undefined);\n      });\n    };\n  } return getMethod(V, DISPOSE);\n};\n\n// `CreateDisposableResource` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-createdisposableresource\nvar createDisposableResource = function (V, hint, method) {\n  if (arguments.length < 3 && !isNullOrUndefined(V)) {\n    method = aCallable(getDisposeMethod(anObject(V), hint));\n  }\n\n  return method === undefined ? function () {\n    return undefined;\n  } : bind(method, V);\n};\n\n// `AddDisposableResource` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-adddisposableresource\nmodule.exports = function (disposable, V, hint, method) {\n  var resource;\n  if (arguments.length < 4) {\n    // When `V`` is either `null` or `undefined` and hint is `async-dispose`,\n    // we record that the resource was evaluated to ensure we will still perform an `Await` when resources are later disposed.\n    if (isNullOrUndefined(V) && hint === 'sync-dispose') return;\n    resource = createDisposableResource(V, hint);\n  } else {\n    resource = createDisposableResource(undefined, hint, method);\n  }\n\n  push(disposable.stack, resource);\n};\n"
  },
  {
    "path": "packages/core-js/internals/add-to-unscopables.js",
    "content": "'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n  defineProperty(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n"
  },
  {
    "path": "packages/core-js/internals/advance-string-index.js",
    "content": "'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? charAt(S, index).length || 1 : 1);\n};\n"
  },
  {
    "path": "packages/core-js/internals/an-instance.js",
    "content": "'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n  if (isPrototypeOf(Prototype, it)) return it;\n  throw new $TypeError('Incorrect invocation');\n};\n"
  },
  {
    "path": "packages/core-js/internals/an-object-or-undefined.js",
    "content": "'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (argument === undefined || isObject(argument)) return argument;\n  throw new $TypeError($String(argument) + ' is not an object or undefined');\n};\n"
  },
  {
    "path": "packages/core-js/internals/an-object.js",
    "content": "'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw new $TypeError($String(argument) + ' is not an object');\n};\n"
  },
  {
    "path": "packages/core-js/internals/an-uint8-array.js",
    "content": "'use strict';\nvar classof = require('../internals/classof');\n\nvar $TypeError = TypeError;\n\n// Perform ? RequireInternalSlot(argument, [[TypedArrayName]])\n// If argument.[[TypedArrayName]] is not \"Uint8Array\", throw a TypeError exception\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Uint8Array') return argument;\n  throw new $TypeError('Argument is not an Uint8Array');\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-buffer-basic-detection.js",
    "content": "'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n"
  },
  {
    "path": "packages/core-js/internals/array-buffer-byte-length.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar TypeError = globalThis.TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n  if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');\n  return O.byteLength;\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-buffer-is-detached.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar DataView = globalThis.DataView;\n\nmodule.exports = function (O) {\n  if (!NATIVE_ARRAY_BUFFER || arrayBufferByteLength(O) !== 0) return false;\n  try {\n    // eslint-disable-next-line no-new -- thrower\n    new DataView(O);\n    return false;\n  } catch (error) {\n    return true;\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-buffer-non-extensible.js",
    "content": "'use strict';\n// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n  if (typeof ArrayBuffer == 'function') {\n    var buffer = new ArrayBuffer(8);\n    // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n    if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/internals/array-buffer-not-detached.js",
    "content": "'use strict';\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n  if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');\n  return it;\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-buffer-transfer.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\nvar detachTransferable = require('../internals/detach-transferable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar DataView = globalThis.DataView;\nvar max = Math.max;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n  var byteLength = arrayBufferByteLength(arrayBuffer);\n  var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n  var fixedLength = !isResizable || !isResizable(arrayBuffer);\n  var newBuffer;\n  notDetached(arrayBuffer);\n  if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n    arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n    if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n  }\n  if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n    newBuffer = slice(arrayBuffer, 0, newByteLength);\n  } else {\n    var options = preserveResizability && !fixedLength && maxByteLength\n      ? { maxByteLength: max(newByteLength, maxByteLength(arrayBuffer)) }\n      : undefined;\n    newBuffer = new ArrayBuffer(newByteLength, options);\n    var a = new DataView(arrayBuffer);\n    var b = new DataView(newBuffer);\n    var copyLength = min(newByteLength, byteLength);\n    for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n  }\n  if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n  return newBuffer;\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-buffer-view-core.js",
    "content": "'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = globalThis.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = globalThis.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n  BigInt64Array: 8,\n  BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return klass === 'DataView'\n    || hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n  var proto = getPrototypeOf(it);\n  if (!isObject(proto)) return;\n  var state = getInternalState(proto);\n  return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n  throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = globalThis[ARRAY];\n    if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n      delete TypedArrayConstructor.prototype[KEY];\n    } catch (error) {\n      // old WebKit bug - some methods are non-configurable\n      try {\n        TypedArrayConstructor.prototype[KEY] = property;\n      } catch (error2) { /* empty */ }\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n  }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = globalThis[ARRAY];\n      if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n        delete TypedArrayConstructor[KEY];\n      } catch (error) { /* empty */ }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = globalThis[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      defineBuiltIn(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  Constructor = globalThis[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n  else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n  Constructor = globalThis[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow -- safe\n  TypedArray = function TypedArray() {\n    throw new TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQUIRED = true;\n  defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n    configurable: true,\n    get: function () {\n      return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n    }\n  });\n  for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) {\n    createNonEnumerableProperty(globalThis[NAME].prototype, TYPED_ARRAY_TAG, NAME);\n  }\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  getTypedArrayConstructor: getTypedArrayConstructor,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-buffer.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toIndex = require('../internals/to-index');\nvar fround = require('../internals/math-fround');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER);\nvar getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW);\nvar setInternalState = InternalStateModule.set;\nvar NativeArrayBuffer = globalThis[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = globalThis[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = globalThis.Array;\nvar RangeError = globalThis.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n  return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n  return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n  return packIEEE754(fround(number), 23, 4);\n};\n\nvar packFloat64 = function (number) {\n  return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key, getInternalState) {\n  defineBuiltInAccessor(Constructor[PROTOTYPE], key, {\n    configurable: true,\n    get: function () {\n      return getInternalState(this)[key];\n    }\n  });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n  var store = getInternalDataViewState(view);\n  var intIndex = toIndex(index);\n  var boolIsLittleEndian = !!isLittleEndian;\n  if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX);\n  var bytes = store.bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = arraySlice(bytes, start, start + count);\n  return boolIsLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n  var store = getInternalDataViewState(view);\n  var intIndex = toIndex(index);\n  var pack = conversion(+value);\n  var boolIsLittleEndian = !!isLittleEndian;\n  if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX);\n  var bytes = store.bytes;\n  var start = intIndex + store.byteOffset;\n  for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n  $ArrayBuffer = function ArrayBuffer(length) {\n    anInstance(this, ArrayBufferPrototype);\n    var byteLength = toIndex(length);\n    setInternalState(this, {\n      type: ARRAY_BUFFER,\n      bytes: fill(Array(byteLength), 0),\n      byteLength: byteLength\n    });\n    if (!DESCRIPTORS) {\n      this.byteLength = byteLength;\n      this.detached = false;\n    }\n  };\n\n  ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n  $DataView = function DataView(buffer, byteOffset, byteLength) {\n    anInstance(this, DataViewPrototype);\n    anInstance(buffer, ArrayBufferPrototype);\n    var bufferState = getInternalArrayBufferState(buffer);\n    var bufferLength = bufferState.byteLength;\n    var offset = toIntegerOrInfinity(byteOffset);\n    if (offset < 0 || offset > bufferLength) throw new RangeError('Wrong offset');\n    byteLength = byteLength === undefined ? bufferLength - offset : toIndex(byteLength);\n    if (offset + byteLength > bufferLength) throw new RangeError(WRONG_LENGTH);\n    setInternalState(this, {\n      type: DATA_VIEW,\n      buffer: buffer,\n      byteLength: byteLength,\n      byteOffset: offset,\n      bytes: bufferState.bytes\n    });\n    if (!DESCRIPTORS) {\n      this.buffer = buffer;\n      this.byteLength = byteLength;\n      this.byteOffset = offset;\n    }\n  };\n\n  DataViewPrototype = $DataView[PROTOTYPE];\n\n  if (DESCRIPTORS) {\n    addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState);\n    addGetter($DataView, 'buffer', getInternalDataViewState);\n    addGetter($DataView, 'byteLength', getInternalDataViewState);\n    addGetter($DataView, 'byteOffset', getInternalDataViewState);\n  }\n\n  defineBuiltIns(DataViewPrototype, {\n    getInt8: function getInt8(byteOffset) {\n      return get(this, 1, byteOffset)[0] << 24 >> 24;\n    },\n    getUint8: function getUint8(byteOffset) {\n      return get(this, 1, byteOffset)[0];\n    },\n    getInt16: function getInt16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false);\n      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n    },\n    getUint16: function getUint16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false);\n      return bytes[1] << 8 | bytes[0];\n    },\n    getInt32: function getInt32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false));\n    },\n    getUint32: function getUint32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0;\n    },\n    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23);\n    },\n    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52);\n    },\n    setInt8: function setInt8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);\n    },\n    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);\n    },\n    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);\n    },\n    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);\n    },\n    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false);\n    },\n    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n      set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false);\n    }\n  });\n} else {\n  var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n  /* eslint-disable no-new, sonarjs/inconsistent-function-call -- required for testing */\n  if (!fails(function () {\n    NativeArrayBuffer(1);\n  }) || !fails(function () {\n    new NativeArrayBuffer(-1);\n  }) || fails(function () {\n    new NativeArrayBuffer();\n    new NativeArrayBuffer(1.5);\n    new NativeArrayBuffer(NaN);\n    return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n  })) {\n    /* eslint-enable no-new, sonarjs/inconsistent-function-call -- required for testing */\n    $ArrayBuffer = function ArrayBuffer(length) {\n      anInstance(this, ArrayBufferPrototype);\n      return inheritIfRequired(new NativeArrayBuffer(toIndex(length)), this, $ArrayBuffer);\n    };\n\n    $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n    ArrayBufferPrototype.constructor = $ArrayBuffer;\n\n    copyConstructorProperties($ArrayBuffer, NativeArrayBuffer);\n  } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n    createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n  }\n\n  // WebKit bug - the same parent prototype for typed arrays and data view\n  if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n    setPrototypeOf(DataViewPrototype, ObjectPrototype);\n  }\n\n  // iOS Safari 7.x bug\n  var testView = new $DataView(new $ArrayBuffer(2));\n  var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n  testView.setInt8(0, 2147483648);\n  testView.setInt8(1, 2147483649);\n  if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {\n    setInt8: function setInt8(byteOffset, value) {\n      $setInt8(this, byteOffset, value << 24 >> 24);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      $setInt8(this, byteOffset, value << 24 >> 24);\n    }\n  }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n  ArrayBuffer: $ArrayBuffer,\n  DataView: $DataView\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-copy-within.js",
    "content": "'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n  var O = toObject(this);\n  var len = lengthOfArrayLike(O);\n  var to = toAbsoluteIndex(target, len);\n  var from = toAbsoluteIndex(start, len);\n  var end = arguments.length > 2 ? arguments[2] : undefined;\n  var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n  var inc = 1;\n  if (from < to && to < from + count) {\n    inc = -1;\n    from += count - 1;\n    to += count - 1;\n  }\n  while (count-- > 0) {\n    if (from in O) O[to] = O[from];\n    else deletePropertyOrThrow(O, to);\n    to += inc;\n    from += inc;\n  } return O;\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-fill.js",
    "content": "'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n// eslint-disable-next-line es/no-array-prototype-fill -- fallback included\nmodule.exports = [].fill || function fill(value /* , start = 0, end = @length */) {\n  var O = toObject(this);\n  var length = lengthOfArrayLike(O);\n  var argumentsLength = arguments.length;\n  var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n  var end = argumentsLength > 2 ? arguments[2] : undefined;\n  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n  while (endPos > index) O[index++] = value;\n  return O;\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-for-each.js",
    "content": "'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n"
  },
  {
    "path": "packages/core-js/internals/array-from-async.js",
    "content": "'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isConstructor = require('../internals/is-constructor');\nvar getAsyncIterator = require('../internals/get-async-iterator');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar getMethod = require('../internals/get-method');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getBuiltInPrototypeMethod = require('../internals/get-built-in-prototype-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar toArray = require('../internals/async-iterator-iteration').toArray;\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar arrayIterator = uncurryThis(getBuiltInPrototypeMethod('Array', 'values'));\nvar arrayIteratorNext = uncurryThis(arrayIterator([]).next);\n\nvar safeArrayIterator = function () {\n  return new SafeArrayIterator(this);\n};\n\nvar SafeArrayIterator = function (O) {\n  this.iterator = arrayIterator(O);\n};\n\nSafeArrayIterator.prototype.next = function () {\n  return arrayIteratorNext(this.iterator);\n};\n\n// `Array.fromAsync` method implementation\n// https://github.com/tc39/proposal-array-from-async\nmodule.exports = function fromAsync(items /* , mapfn = undefined, thisArg = undefined */) {\n  var C = this;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n  return new (getBuiltIn('Promise'))(function (resolve) {\n    if (mapfn !== undefined) mapfn = bind(mapfn, thisArg);\n    var usingAsyncIterator = getMethod(items, ASYNC_ITERATOR);\n    var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(items) || safeArrayIterator;\n    var A = isConstructor(C) ? new C() : [];\n    var iterator = usingAsyncIterator\n      ? getAsyncIterator(items, usingAsyncIterator)\n      : new AsyncFromSyncIterator(getIteratorDirect(getIterator(items, usingSyncIterator)));\n    resolve(toArray(iterator, mapfn, A));\n  });\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-from-constructor-and-list.js",
    "content": "'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list, $length) {\n  var index = 0;\n  var length = arguments.length > 2 ? $length : lengthOfArrayLike(list);\n  var result = new Constructor(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-from.js",
    "content": "'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar setArrayLength = require('../internals/array-set-length');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var IS_CONSTRUCTOR = isConstructor(this);\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n  var O = toObject(arrayLike);\n  var iteratorMethod = getIteratorMethod(O);\n  var index = 0;\n  var length, result, step, iterator, next, value;\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n    result = IS_CONSTRUCTOR ? new this() : [];\n    iterator = getIterator(O, iteratorMethod);\n    next = iterator.next;\n    for (;!(step = call(next, iterator)).done; index++) {\n      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n      try {\n        createProperty(result, index, value);\n      } catch (error) {\n        iteratorClose(iterator, 'throw', error);\n      }\n    }\n  } else {\n    length = lengthOfArrayLike(O);\n    result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n    for (;length > index; index++) {\n      value = mapping ? mapfn(O[index], index) : O[index];\n      createProperty(result, index, value);\n    }\n  }\n  setArrayLength(result, index);\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-group-to-map.js",
    "content": "'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar Map = MapHelpers.Map;\nvar mapGet = MapHelpers.get;\nvar mapHas = MapHelpers.has;\nvar mapSet = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// `Array.prototype.groupToMap` method\n// https://github.com/tc39/proposal-array-grouping\nmodule.exports = function groupToMap(callbackfn /* , thisArg */) {\n  var O = toObject(this);\n  var self = IndexedObject(O);\n  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  var map = new Map();\n  var length = lengthOfArrayLike(self);\n  var index = 0;\n  var key, value;\n  for (;length > index; index++) {\n    value = self[index];\n    key = boundFunction(value, index, O);\n    if (mapHas(map, key)) push(mapGet(map, key), value);\n    else mapSet(map, key, [value]);\n  } return map;\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-group.js",
    "content": "'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar objectCreate = require('../internals/object-create');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar $Array = Array;\nvar push = uncurryThis([].push);\n\nmodule.exports = function ($this, callbackfn, that, specificConstructor) {\n  var O = toObject($this);\n  var self = IndexedObject(O);\n  var boundFunction = bind(callbackfn, that);\n  var target = objectCreate(null);\n  var length = lengthOfArrayLike(self);\n  var index = 0;\n  var Constructor, key, value;\n  for (;length > index; index++) {\n    value = self[index];\n    key = toPropertyKey(boundFunction(value, index, O));\n    // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys\n    // but since it's a `null` prototype object, we can safely use `in`\n    if (key in target) push(target[key], value);\n    else target[key] = [value];\n  }\n  // TODO: Remove this block from `core-js@4`\n  if (specificConstructor) {\n    Constructor = specificConstructor(O);\n    if (Constructor !== $Array) {\n      for (key in target) target[key] = arrayFromConstructorAndList(Constructor, target[key]);\n    }\n  } return target;\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-includes.js",
    "content": "'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = lengthOfArrayLike(O);\n    if (length === 0) return !IS_INCLUDES && -1;\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el !== el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value !== value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-iteration-from-last.js",
    "content": "'use strict';\nvar bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_FIND_LAST_INDEX = TYPE === 1;\n  return function ($this, callbackfn, that) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var index = lengthOfArrayLike(self);\n    var boundFunction = bind(callbackfn, that);\n    var value, result;\n    while (index-- > 0) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (result) switch (TYPE) {\n        case 0: return value; // findLast\n        case 1: return index; // findLastIndex\n      }\n    }\n    return IS_FIND_LAST_INDEX ? -1 : undefined;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.findLast` method\n  // https://github.com/tc39/proposal-array-find-from-last\n  findLast: createMethod(0),\n  // `Array.prototype.findLastIndex` method\n  // https://github.com/tc39/proposal-array-find-from-last\n  findLastIndex: createMethod(1)\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-iteration.js",
    "content": "'use strict';\nvar bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE === 1;\n  var IS_FILTER = TYPE === 2;\n  var IS_SOME = TYPE === 3;\n  var IS_EVERY = TYPE === 4;\n  var IS_FIND_INDEX = TYPE === 6;\n  var IS_FILTER_REJECT = TYPE === 7;\n  var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var length = lengthOfArrayLike(self);\n    var boundFunction = bind(callbackfn, that);\n    var index = 0;\n    var resIndex = 0;\n    var target = IS_MAP ? arraySpeciesCreate($this, length) : IS_FILTER || IS_FILTER_REJECT ? arraySpeciesCreate($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) createProperty(target, index, result);    // map\n        else if (result) switch (TYPE) {\n          case 3: return true;                                // some\n          case 5: return value;                               // find\n          case 6: return index;                               // findIndex\n          case 2: createProperty(target, resIndex++, value);  // filter\n        } else switch (TYPE) {\n          case 4: return false;                               // every\n          case 7: createProperty(target, resIndex++, value);  // filterReject\n        }\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.es/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.es/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.es/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.es/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.es/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.es/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6),\n  // `Array.prototype.filterReject` method\n  // https://github.com/tc39/proposal-array-filtering\n  filterReject: createMethod(7)\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-last-index-of.js",
    "content": "'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n  // convert -0 to +0\n  if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n  var O = toIndexedObject(this);\n  var length = lengthOfArrayLike(O);\n  if (length === 0) return -1;\n  var index = length - 1;\n  if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n  if (index < 0) index = length + index;\n  for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n  return -1;\n} : $lastIndexOf;\n"
  },
  {
    "path": "packages/core-js/internals/array-method-has-species-support.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  // We can't use this feature detection in V8 since it causes\n  // deoptimization and serious performance degradation\n  // https://github.com/zloirock/core-js/issues/677\n  return V8_VERSION >= 51 || !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-method-is-strict.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n  var method = [][METHOD_NAME];\n  return !!method && fails(function () {\n    // eslint-disable-next-line no-useless-call -- required for testing\n    method.call(null, argument || function () { return 1; }, 1);\n  });\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-reduce.js",
    "content": "'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\nvar REDUCE_EMPTY = 'Reduce of empty array with no initial value';\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n  return function (that, callbackfn, argumentsLength, memo) {\n    var O = toObject(that);\n    var self = IndexedObject(O);\n    var length = lengthOfArrayLike(O);\n    aCallable(callbackfn);\n    if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY);\n    var index = IS_RIGHT ? length - 1 : 0;\n    var i = IS_RIGHT ? -1 : 1;\n    if (argumentsLength < 2) while (true) {\n      if (index in self) {\n        memo = self[index];\n        index += i;\n        break;\n      }\n      index += i;\n      if (IS_RIGHT ? index < 0 : length <= index) {\n        throw new $TypeError(REDUCE_EMPTY);\n      }\n    }\n    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n      memo = callbackfn(memo, self[index], index, O);\n    }\n    return memo;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.reduce` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduce\n  left: createMethod(false),\n  // `Array.prototype.reduceRight` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n  right: createMethod(true)\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-set-length.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n  // makes no sense without proper strict mode support\n  if (this !== undefined) return true;\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).length = 1;\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n  if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n    throw new $TypeError('Cannot set read only .length');\n  } return O.length = length;\n} : function (O, length) {\n  return O.length = length;\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-slice.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n"
  },
  {
    "path": "packages/core-js/internals/array-sort.js",
    "content": "'use strict';\nvar arraySlice = require('../internals/array-slice');\n\nvar floor = Math.floor;\n\nvar sort = function (array, comparefn) {\n  var length = array.length;\n\n  if (length < 8) {\n    // insertion sort\n    var i = 1;\n    var element, j;\n\n    while (i < length) {\n      j = i;\n      element = array[i];\n      while (j && comparefn(array[j - 1], element) > 0) {\n        array[j] = array[--j];\n      }\n      if (j !== i++) array[j] = element;\n    }\n  } else {\n    // merge sort\n    var middle = floor(length / 2);\n    var left = sort(arraySlice(array, 0, middle), comparefn);\n    var right = sort(arraySlice(array, middle), comparefn);\n    var llength = left.length;\n    var rlength = right.length;\n    var lindex = 0;\n    var rindex = 0;\n\n    while (lindex < llength || rindex < rlength) {\n      array[lindex + rindex] = (lindex < llength && rindex < rlength)\n        ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n        : lindex < llength ? left[lindex++] : right[rindex++];\n    }\n  }\n\n  return array;\n};\n\nmodule.exports = sort;\n"
  },
  {
    "path": "packages/core-js/internals/array-species-constructor.js",
    "content": "'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return C === undefined ? $Array : C;\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-species-create.js",
    "content": "'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n"
  },
  {
    "path": "packages/core-js/internals/array-unique-by.js",
    "content": "'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar createProperty = require('../internals/create-property');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapSet = MapHelpers.set;\n\n// `Array.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\nmodule.exports = function uniqueBy(resolver) {\n  var that = toObject(this);\n  var length = lengthOfArrayLike(that);\n  var result = [];\n  var map = new Map();\n  var resolverFunction = !isNullOrUndefined(resolver) ? aCallable(resolver) : function (value) {\n    return value;\n  };\n  var index, item, key;\n  for (index = 0; index < length; index++) {\n    item = that[index];\n    key = resolverFunction(item);\n    if (!mapHas(map, key)) mapSet(map, key, item);\n  }\n  index = 0;\n  iterate(map, function (value) {\n    createProperty(result, index++, value);\n  });\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/async-from-sync-iterator.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalStateModule = require('../internals/internal-state');\nvar iteratorClose = require('../internals/iterator-close');\nvar getBuiltIn = require('../internals/get-built-in');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar Promise = getBuiltIn('Promise');\n\nvar ASYNC_FROM_SYNC_ITERATOR = 'AsyncFromSyncIterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ASYNC_FROM_SYNC_ITERATOR);\n\nvar asyncFromSyncIteratorContinuation = function (result, resolve, reject, syncIterator, closeOnRejection) {\n  var done = result.done;\n  Promise.resolve(result.value).then(function (value) {\n    resolve(createIterResultObject(value, done));\n  }, function (error) {\n    if (!done && closeOnRejection) {\n      try {\n        iteratorClose(syncIterator, 'throw', error);\n      } catch (error2) {\n        error = error2;\n      }\n    }\n\n    reject(error);\n  });\n};\n\nvar AsyncFromSyncIterator = function AsyncIterator(iteratorRecord) {\n  iteratorRecord.type = ASYNC_FROM_SYNC_ITERATOR;\n  setInternalState(this, iteratorRecord);\n};\n\nAsyncFromSyncIterator.prototype = defineBuiltIns(create(AsyncIteratorPrototype), {\n  next: function next() {\n    var state = getInternalState(this);\n    var hasValue = arguments.length > 0;\n    var value = hasValue ? arguments[0] : undefined;\n    return new Promise(function (resolve, reject) {\n      var result = anObject(hasValue ? call(state.next, state.iterator, value) : call(state.next, state.iterator));\n      asyncFromSyncIteratorContinuation(result, resolve, reject, state.iterator, true);\n    });\n  },\n  'return': function () {\n    var state = getInternalState(this);\n    var iterator = state.iterator;\n    var hasValue = arguments.length > 0;\n    var value = hasValue ? arguments[0] : undefined;\n    return new Promise(function (resolve, reject) {\n      var $return = getMethod(iterator, 'return');\n      if ($return === undefined) return resolve(createIterResultObject(value, true));\n      var result = anObject(hasValue ? call($return, iterator, value) : call($return, iterator));\n      asyncFromSyncIteratorContinuation(result, resolve, reject, iterator);\n    });\n  },\n  'throw': function () {\n    var state = getInternalState(this);\n    var iterator = state.iterator;\n    var hasValue = arguments.length > 0;\n    var value = hasValue ? arguments[0] : undefined;\n    return new Promise(function (resolve, reject) {\n      var $throw = getMethod(iterator, 'throw');\n      if ($throw === undefined) {\n        try {\n          iteratorClose(iterator, 'normal');\n        } catch (error) {\n          return reject(error);\n        }\n        return reject(new TypeError('The iterator does not provide a throw method'));\n      }\n      var result = anObject(hasValue ? call($throw, iterator, value) : call($throw, iterator));\n      asyncFromSyncIteratorContinuation(result, resolve, reject, iterator, true);\n    });\n  }\n});\n\nmodule.exports = AsyncFromSyncIterator;\n"
  },
  {
    "path": "packages/core-js/internals/async-iterator-close.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, method, argument, reject) {\n  try {\n    var returnMethod = getMethod(iterator, 'return');\n    if (returnMethod) {\n      return getBuiltIn('Promise').resolve(call(returnMethod, iterator)).then(function (result) {\n        try {\n          if (method !== reject) anObject(result);\n        } catch (error3) {\n          reject(error3);\n          return;\n        }\n        method(argument);\n      }, function (error) {\n        method === reject ? method(argument) : reject(error);\n      });\n    }\n  } catch (error2) {\n    // the original error (`argument`) takes priority over `return()` errors\n    return method === reject ? reject(argument) : reject(error2);\n  } method(argument);\n};\n"
  },
  {
    "path": "packages/core-js/internals/async-iterator-create-proxy.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar perform = require('../internals/perform');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar Promise = getBuiltIn('Promise');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ASYNC_ITERATOR_HELPER = 'AsyncIteratorHelper';\nvar WRAP_FOR_VALID_ASYNC_ITERATOR = 'WrapForValidAsyncIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createAsyncIteratorProxyPrototype = function (IS_ITERATOR) {\n  var IS_GENERATOR = !IS_ITERATOR;\n  var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ASYNC_ITERATOR : ASYNC_ITERATOR_HELPER);\n\n  var getStateOrEarlyExit = function (that) {\n    var stateCompletion = perform(function () {\n      return getInternalState(that);\n    });\n\n    var stateError = stateCompletion.error;\n    var state = stateCompletion.value;\n\n    if (stateError || (IS_GENERATOR && state.done)) {\n      return { exit: true, value: stateError ? Promise.reject(state) : Promise.resolve(createIterResultObject(undefined, true)) };\n    } return { exit: false, value: state };\n  };\n\n  return defineBuiltIns(create(AsyncIteratorPrototype), {\n    next: function next() {\n      var stateCompletion = getStateOrEarlyExit(this);\n      var state = stateCompletion.value;\n      if (stateCompletion.exit) return state;\n      var handlerCompletion = perform(function () {\n        return anObject(state.nextHandler(Promise));\n      });\n      var handlerError = handlerCompletion.error;\n      var value = handlerCompletion.value;\n      if (handlerError) state.done = true;\n      return handlerError ? Promise.reject(value) : Promise.resolve(value);\n    },\n    'return': function () {\n      var stateCompletion = getStateOrEarlyExit(this);\n      var state = stateCompletion.value;\n      if (stateCompletion.exit) return state;\n      state.done = true;\n      var iterator = state.iterator;\n      var inner = state.inner;\n      var returnMethod, result;\n      var closeOuterIterator = function () {\n        var completion = perform(function () {\n          return getMethod(iterator, 'return');\n        });\n        returnMethod = result = completion.value;\n        if (completion.error) return Promise.reject(result);\n        if (returnMethod === undefined) return Promise.resolve(createIterResultObject(undefined, true));\n        completion = perform(function () {\n          return call(returnMethod, iterator);\n        });\n        result = completion.value;\n        if (completion.error) return Promise.reject(result);\n        return IS_ITERATOR ? Promise.resolve(result) : Promise.resolve(result).then(function (resolved) {\n          anObject(resolved);\n          return createIterResultObject(undefined, true);\n        });\n      };\n\n      var closeAndReject = function (error) {\n        return closeOuterIterator().then(function () {\n          throw error;\n        }, function () {\n          throw error;\n        });\n      };\n\n      if (inner) {\n        var innerIterator = inner.iterator;\n        var innerReturn;\n        var completion = perform(function () {\n          innerReturn = getMethod(innerIterator, 'return');\n          if (innerReturn) return call(innerReturn, innerIterator);\n        });\n        if (completion.error) return closeAndReject(completion.value);\n        if (innerReturn) {\n          return Promise.resolve(completion.value).then(function (innerResult) {\n            try {\n              anObject(innerResult);\n            } catch (error) {\n              return closeAndReject(error);\n            }\n            return closeOuterIterator();\n          }, closeAndReject);\n        }\n      }\n\n      return closeOuterIterator();\n    }\n  });\n};\n\nvar WrapForValidAsyncIteratorPrototype = createAsyncIteratorProxyPrototype(true);\nvar AsyncIteratorHelperPrototype = createAsyncIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(AsyncIteratorHelperPrototype, TO_STRING_TAG, 'Async Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n  var AsyncIteratorProxy = function AsyncIterator(record, state) {\n    if (state) {\n      state.iterator = record.iterator;\n      state.next = record.next;\n    } else state = record;\n    state.type = IS_ITERATOR ? WRAP_FOR_VALID_ASYNC_ITERATOR : ASYNC_ITERATOR_HELPER;\n    state.nextHandler = nextHandler;\n    state.counter = 0;\n    state.done = false;\n    setInternalState(this, state);\n  };\n\n  AsyncIteratorProxy.prototype = IS_ITERATOR ? WrapForValidAsyncIteratorPrototype : AsyncIteratorHelperPrototype;\n\n  return AsyncIteratorProxy;\n};\n"
  },
  {
    "path": "packages/core-js/internals/async-iterator-indexed.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar map = require('../internals/async-iterator-map');\n\nvar callback = function (value, counter) {\n  return [counter, value];\n};\n\n// `AsyncIterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function indexed() {\n  return call(map, this, callback);\n};\n"
  },
  {
    "path": "packages/core-js/internals/async-iterator-iteration.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-async-iterator-helpers\n// https://github.com/tc39/proposal-array-from-async\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createProperty = require('../internals/create-property');\nvar setArrayLength = require('../internals/array-set-length');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar createMethod = function (TYPE) {\n  var IS_TO_ARRAY = TYPE === 0;\n  var IS_FOR_EACH = TYPE === 1;\n  var IS_EVERY = TYPE === 2;\n  var IS_SOME = TYPE === 3;\n  return function (object, fn, target) {\n    anObject(object);\n    var MAPPING = fn !== undefined;\n    if (MAPPING || !IS_TO_ARRAY) aCallable(fn);\n    var record = getIteratorDirect(object);\n    var Promise = getBuiltIn('Promise');\n    var iterator = record.iterator;\n    var next = record.next;\n    var counter = 0;\n\n    return new Promise(function (resolve, reject) {\n      var ifAbruptCloseAsyncIterator = function (error) {\n        closeAsyncIteration(iterator, reject, error, reject);\n      };\n\n      var loop = function () {\n        try {\n          try {\n            doesNotExceedSafeInteger(counter);\n          } catch (error5) {\n            return ifAbruptCloseAsyncIterator(error5);\n          }\n          Promise.resolve(anObject(call(next, iterator))).then(function (step) {\n            try {\n              if (anObject(step).done) {\n                if (IS_TO_ARRAY) {\n                  setArrayLength(target, counter);\n                  resolve(target);\n                } else resolve(IS_SOME ? false : IS_EVERY || undefined);\n              } else {\n                var value = step.value;\n                try {\n                  if (MAPPING) {\n                    var index = counter++;\n                    var result = fn(value, index);\n\n                    var handler = function ($result) {\n                      if (IS_FOR_EACH) {\n                        loop();\n                      } else if (IS_EVERY) {\n                        $result ? loop() : closeAsyncIteration(iterator, resolve, false, reject);\n                      } else if (IS_TO_ARRAY) {\n                        try {\n                          createProperty(target, index, $result);\n                          loop();\n                        } catch (error4) { ifAbruptCloseAsyncIterator(error4); }\n                      } else {\n                        $result ? closeAsyncIteration(iterator, resolve, IS_SOME || value, reject) : loop();\n                      }\n                    };\n\n                    if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n                    else handler(result);\n                  } else {\n                    createProperty(target, counter++, value);\n                    loop();\n                  }\n                } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n              }\n            } catch (error2) { reject(error2); }\n          }, reject);\n        } catch (error) { reject(error); }\n      };\n\n      loop();\n    });\n  };\n};\n\nmodule.exports = {\n  // `AsyncIterator.prototype.toArray` / `Array.fromAsync` methods\n  toArray: createMethod(0),\n  // `AsyncIterator.prototype.forEach` method\n  forEach: createMethod(1),\n  // `AsyncIterator.prototype.every` method\n  every: createMethod(2),\n  // `AsyncIterator.prototype.some` method\n  some: createMethod(3),\n  // `AsyncIterator.prototype.find` method\n  find: createMethod(4)\n};\n"
  },
  {
    "path": "packages/core-js/internals/async-iterator-map.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n  var state = this;\n  var iterator = state.iterator;\n  var mapper = state.mapper;\n\n  return new Promise(function (resolve, reject) {\n    var doneAndReject = function (error) {\n      state.done = true;\n      reject(error);\n    };\n\n    var ifAbruptCloseAsyncIterator = function (error) {\n      closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n    };\n\n    try {\n      Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n        try {\n          if (anObject(step).done) {\n            state.done = true;\n            resolve(createIterResultObject(undefined, true));\n          } else {\n            var value = step.value;\n            try {\n              var result = mapper(value, state.counter++);\n\n              var handler = function (mapped) {\n                resolve(createIterResultObject(mapped, false));\n              };\n\n              if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n              else handler(result);\n            } catch (error2) { ifAbruptCloseAsyncIterator(error2); }\n          }\n        } catch (error) { doneAndReject(error); }\n      }, doneAndReject);\n    } catch (error) { doneAndReject(error); }\n  });\n});\n\n// `AsyncIterator.prototype.map` method\n// https://github.com/tc39/proposal-async-iterator-helpers\nmodule.exports = function map(mapper) {\n  anObject(this);\n  aCallable(mapper);\n  return new AsyncIteratorProxy(getIteratorDirect(this), {\n    mapper: mapper\n  });\n};\n"
  },
  {
    "path": "packages/core-js/internals/async-iterator-prototype.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared-store');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar AsyncIterator = globalThis.AsyncIterator;\nvar PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype;\nvar AsyncIteratorPrototype, prototype;\n\nif (PassedAsyncIteratorPrototype) {\n  AsyncIteratorPrototype = PassedAsyncIteratorPrototype;\n} else if (isCallable(AsyncIterator)) {\n  AsyncIteratorPrototype = AsyncIterator.prototype;\n} else if (shared[USE_FUNCTION_CONSTRUCTOR] || globalThis[USE_FUNCTION_CONSTRUCTOR]) {\n  try {\n    // eslint-disable-next-line no-new-func -- we have no alternatives without usage of modern syntax\n    prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));\n    if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;\n  } catch (error) { /* empty */ }\n}\n\nif (!AsyncIteratorPrototype) AsyncIteratorPrototype = {};\nelse if (IS_PURE) AsyncIteratorPrototype = create(AsyncIteratorPrototype);\n\nif (!isCallable(AsyncIteratorPrototype[ASYNC_ITERATOR])) {\n  defineBuiltIn(AsyncIteratorPrototype, ASYNC_ITERATOR, function () {\n    return this;\n  });\n}\n\nmodule.exports = AsyncIteratorPrototype;\n"
  },
  {
    "path": "packages/core-js/internals/async-iterator-wrap.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\n\nmodule.exports = createAsyncIteratorProxy(function () {\n  return call(this.next, this.iterator);\n}, true);\n"
  },
  {
    "path": "packages/core-js/internals/base64-map.js",
    "content": "'use strict';\nvar commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nvar base64Alphabet = commonAlphabet + '+/';\nvar base64UrlAlphabet = commonAlphabet + '-_';\n\nvar inverse = function (characters) {\n  // TODO: use `Object.create(null)` in `core-js@4`\n  var result = {};\n  var index = 0;\n  for (; index < 64; index++) result[characters.charAt(index)] = index;\n  return result;\n};\n\nmodule.exports = {\n  i2c: base64Alphabet,\n  c2i: inverse(base64Alphabet),\n  i2cUrl: base64UrlAlphabet,\n  c2iUrl: inverse(base64UrlAlphabet)\n};\n"
  },
  {
    "path": "packages/core-js/internals/call-with-safe-iteration-closing.js",
    "content": "'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  } catch (error) {\n    iteratorClose(iterator, 'throw', error);\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/caller.js",
    "content": "'use strict';\nmodule.exports = function (methodName, numArgs) {\n  return numArgs === 1 ? function (object, arg) {\n    return object[methodName](arg);\n  } : function (object, arg1, arg2) {\n    return object[methodName](arg1, arg2);\n  };\n};\n"
  },
  {
    "path": "packages/core-js/internals/check-correctness-of-iteration.js",
    "content": "'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  try {\n    if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n"
  },
  {
    "path": "packages/core-js/internals/classof-raw.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n  return stringSlice(toString(it), 8, -1);\n};\n"
  },
  {
    "path": "packages/core-js/internals/classof.js",
    "content": "'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/collection-from.js",
    "content": "'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar bind = require('../internals/function-bind-context');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar iterate = require('../internals/iterate');\n\nmodule.exports = function (C, adder, ENTRY) {\n  return function from(source /* , mapFn, thisArg */) {\n    var O = toObject(source);\n    var length = arguments.length;\n    var mapFn = length > 1 ? arguments[1] : undefined;\n    var mapping = mapFn !== undefined;\n    var boundFunction = mapping ? bind(mapFn, length > 2 ? arguments[2] : undefined) : undefined;\n    var result = new C();\n    var n = 0;\n    iterate(O, function (nextItem) {\n      var entry = mapping ? boundFunction(nextItem, n++) : nextItem;\n      if (ENTRY) adder(result, anObject(entry)[0], entry[1]);\n      else adder(result, entry);\n    });\n    return result;\n  };\n};\n"
  },
  {
    "path": "packages/core-js/internals/collection-of.js",
    "content": "'use strict';\nvar anObject = require('../internals/an-object');\n\n// https://tc39.github.io/proposal-setmap-offrom/\nmodule.exports = function (C, adder, ENTRY) {\n  return function of() {\n    var result = new C();\n    var length = arguments.length;\n    for (var index = 0; index < length; index++) {\n      var entry = arguments[index];\n      if (ENTRY) adder(result, anObject(entry)[0], entry[1]);\n      else adder(result, entry);\n    } return result;\n  };\n};\n"
  },
  {
    "path": "packages/core-js/internals/collection-strong.js",
    "content": "'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var Constructor = wrapper(function (that, iterable) {\n      anInstance(that, Prototype);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        index: create(null),\n        first: null,\n        last: null,\n        size: 0\n      });\n      if (!DESCRIPTORS) that.size = 0;\n      if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n    });\n\n    var Prototype = Constructor.prototype;\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var entry = getEntry(that, key);\n      var previous, index;\n      // change existing entry\n      if (entry) {\n        entry.value = value;\n      // create new entry\n      } else {\n        state.last = entry = {\n          index: index = fastKey(key, true),\n          key: key,\n          value: value,\n          previous: previous = state.last,\n          next: null,\n          removed: false\n        };\n        if (!state.first) state.first = entry;\n        if (previous) previous.next = entry;\n        if (DESCRIPTORS) state.size++;\n        else that.size++;\n        // add to index\n        if (index !== 'F') state.index[index] = entry;\n      } return that;\n    };\n\n    var getEntry = function (that, key) {\n      var state = getInternalState(that);\n      // fast case\n      var index = fastKey(key);\n      var entry;\n      if (index !== 'F') return state.index[index];\n      // frozen object case\n      for (entry = state.first; entry; entry = entry.next) {\n        if (entry.key === key) return entry;\n      }\n    };\n\n    defineBuiltIns(Prototype, {\n      // `{ Map, Set }.prototype.clear()` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.clear\n      // https://tc39.es/ecma262/#sec-set.prototype.clear\n      clear: function clear() {\n        var that = this;\n        var state = getInternalState(that);\n        var entry = state.first;\n        while (entry) {\n          entry.removed = true;\n          if (entry.previous) entry.previous = entry.previous.next = null;\n          entry = entry.next;\n        }\n        state.first = state.last = null;\n        state.index = create(null);\n        if (DESCRIPTORS) state.size = 0;\n        else that.size = 0;\n      },\n      // `{ Map, Set }.prototype.delete(key)` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.delete\n      // https://tc39.es/ecma262/#sec-set.prototype.delete\n      'delete': function (key) {\n        var that = this;\n        var state = getInternalState(that);\n        var entry = getEntry(that, key);\n        if (entry) {\n          var next = entry.next;\n          var prev = entry.previous;\n          delete state.index[entry.index];\n          entry.removed = true;\n          if (prev) prev.next = next;\n          if (next) next.previous = prev;\n          if (state.first === entry) state.first = next;\n          if (state.last === entry) state.last = prev;\n          if (DESCRIPTORS) state.size--;\n          else that.size--;\n        } return !!entry;\n      },\n      // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.foreach\n      // https://tc39.es/ecma262/#sec-set.prototype.foreach\n      forEach: function forEach(callbackfn /* , that = undefined */) {\n        var state = getInternalState(this);\n        var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n        var entry;\n        while (entry = entry ? entry.next : state.first) {\n          boundFunction(entry.value, entry.key, this);\n          // revert to the last existing entry\n          while (entry && entry.removed) entry = entry.previous;\n        }\n      },\n      // `{ Map, Set}.prototype.has(key)` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.has\n      // https://tc39.es/ecma262/#sec-set.prototype.has\n      has: function has(key) {\n        return !!getEntry(this, key);\n      }\n    });\n\n    defineBuiltIns(Prototype, IS_MAP ? {\n      // `Map.prototype.get(key)` method\n      // https://tc39.es/ecma262/#sec-map.prototype.get\n      get: function get(key) {\n        var entry = getEntry(this, key);\n        return entry && entry.value;\n      },\n      // `Map.prototype.set(key, value)` method\n      // https://tc39.es/ecma262/#sec-map.prototype.set\n      set: function set(key, value) {\n        return define(this, key === 0 ? 0 : key, value);\n      }\n    } : {\n      // `Set.prototype.add(value)` method\n      // https://tc39.es/ecma262/#sec-set.prototype.add\n      add: function add(value) {\n        return define(this, value = value === 0 ? 0 : value, value);\n      }\n    });\n    if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n      configurable: true,\n      get: function () {\n        return getInternalState(this).size;\n      }\n    });\n    return Constructor;\n  },\n  setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n    var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n    var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n    var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n    // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n    // https://tc39.es/ecma262/#sec-map.prototype.entries\n    // https://tc39.es/ecma262/#sec-map.prototype.keys\n    // https://tc39.es/ecma262/#sec-map.prototype.values\n    // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n    // https://tc39.es/ecma262/#sec-set.prototype.entries\n    // https://tc39.es/ecma262/#sec-set.prototype.keys\n    // https://tc39.es/ecma262/#sec-set.prototype.values\n    // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n    defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n      setInternalState(this, {\n        type: ITERATOR_NAME,\n        target: iterated,\n        state: getInternalCollectionState(iterated),\n        kind: kind,\n        last: null\n      });\n    }, function () {\n      var state = getInternalIteratorState(this);\n      var kind = state.kind;\n      var entry = state.last;\n      // revert to the last existing entry\n      while (entry && entry.removed) entry = entry.previous;\n      // get next entry\n      if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n        // or finish the iteration\n        state.target = null;\n        return createIterResultObject(undefined, true);\n      }\n      // return step by kind\n      if (kind === 'keys') return createIterResultObject(entry.key, false);\n      if (kind === 'values') return createIterResultObject(entry.value, false);\n      return createIterResultObject([entry.key, entry.value], false);\n    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n    // `{ Map, Set }.prototype[@@species]` accessors\n    // https://tc39.es/ecma262/#sec-get-map-@@species\n    // https://tc39.es/ecma262/#sec-get-set-@@species\n    setSpecies(CONSTRUCTOR_NAME);\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/collection-weak.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n  return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n  this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n  return find(store.entries, function (it) {\n    return it[0] === key;\n  });\n};\n\nUncaughtFrozenStore.prototype = {\n  get: function (key) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) return entry[1];\n  },\n  has: function (key) {\n    return !!findUncaughtFrozen(this, key);\n  },\n  set: function (key, value) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) entry[1] = value;\n    else this.entries.push([key, value]);\n  },\n  'delete': function (key) {\n    var index = findIndex(this.entries, function (it) {\n      return it[0] === key;\n    });\n    if (~index) splice(this.entries, index, 1);\n    return !!~index;\n  }\n};\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var Constructor = wrapper(function (that, iterable) {\n      anInstance(that, Prototype);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        id: id++,\n        frozen: null\n      });\n      if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n    });\n\n    var Prototype = Constructor.prototype;\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var data = getWeakData(anObject(key), true);\n      if (data === true) uncaughtFrozenStore(state).set(key, value);\n      else data[state.id] = value;\n      return that;\n    };\n\n    defineBuiltIns(Prototype, {\n      // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n      // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n      'delete': function (key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n        return data && hasOwn(data, state.id) && delete data[state.id];\n      },\n      // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n      // https://tc39.es/ecma262/#sec-weakset.prototype.has\n      has: function has(key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state).has(key);\n        return data && hasOwn(data, state.id);\n      }\n    });\n\n    defineBuiltIns(Prototype, IS_MAP ? {\n      // `WeakMap.prototype.get(key)` method\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n      get: function get(key) {\n        var state = getInternalState(this);\n        if (isObject(key)) {\n          var data = getWeakData(key);\n          if (data === true) return uncaughtFrozenStore(state).get(key);\n          if (data) return data[state.id];\n        }\n      },\n      // `WeakMap.prototype.set(key, value)` method\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n      set: function set(key, value) {\n        return define(this, key, value);\n      }\n    } : {\n      // `WeakSet.prototype.add(value)` method\n      // https://tc39.es/ecma262/#sec-weakset.prototype.add\n      add: function add(value) {\n        return define(this, value, true);\n      }\n    });\n\n    return Constructor;\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/collection.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n  var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n  var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var NativeConstructor = globalThis[CONSTRUCTOR_NAME];\n  var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n  var Constructor = NativeConstructor;\n  var exported = {};\n\n  var fixMethod = function (KEY) {\n    var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n    defineBuiltIn(NativePrototype, KEY,\n      KEY === 'add' ? function add(value) {\n        uncurriedNativeMethod(this, value === 0 ? 0 : value);\n        return this;\n      } : KEY === 'delete' ? function (key) {\n        return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n      } : KEY === 'get' ? function get(key) {\n        return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n      } : KEY === 'has' ? function has(key) {\n        return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n      } : function set(key, value) {\n        uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n        return this;\n      }\n    );\n  };\n\n  var REPLACE = isForced(\n    CONSTRUCTOR_NAME,\n    !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n      new NativeConstructor().entries().next();\n    }))\n  );\n\n  if (REPLACE) {\n    // create collection constructor\n    Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n    InternalMetadataModule.enable();\n  } else if (isForced(CONSTRUCTOR_NAME, true)) {\n    var instance = new Constructor();\n    // early implementations not supports chaining\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance;\n    // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n    // most early implementations doesn't supports iterables, most modern - not close it correctly\n    // eslint-disable-next-line no-new -- required for testing\n    var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n    // for early implementations -0 and +0 not the same\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      // V8 ~ Chromium 42- fails only with 5+ elements\n      var $instance = new NativeConstructor();\n      var index = 5;\n      while (index--) $instance[ADDER](index, index);\n      return !$instance.has(-0);\n    });\n\n    if (!ACCEPT_ITERABLES) {\n      Constructor = wrapper(function (dummy, iterable) {\n        anInstance(dummy, NativePrototype);\n        var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n        if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n        return that;\n      });\n      Constructor.prototype = NativePrototype;\n      NativePrototype.constructor = Constructor;\n    }\n\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n    // weak collections should not contains .clear method\n    if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n  }\n\n  exported[CONSTRUCTOR_NAME] = Constructor;\n  $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported);\n\n  setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n  if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n  return Constructor;\n};\n"
  },
  {
    "path": "packages/core-js/internals/composite-key.js",
    "content": "'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.map');\nrequire('../modules/es.weak-map');\nvar getBuiltIn = require('../internals/get-built-in');\nvar create = require('../internals/object-create');\nvar isObject = require('../internals/is-object');\n\nvar $Object = Object;\nvar $TypeError = TypeError;\nvar Map = getBuiltIn('Map');\nvar WeakMap = getBuiltIn('WeakMap');\n\nvar Node = function () {\n  // keys\n  this.object = null;\n  this.symbol = null;\n  // child nodes\n  this.primitives = null;\n  this.objectsByIndex = create(null);\n};\n\nNode.prototype.get = function (key, initializer) {\n  return this[key] || (this[key] = initializer());\n};\n\nNode.prototype.next = function (i, it, IS_OBJECT) {\n  var store = IS_OBJECT\n    ? this.objectsByIndex[i] || (this.objectsByIndex[i] = new WeakMap())\n    : this.primitives || (this.primitives = new Map());\n  var entry = store.get(it);\n  if (!entry) store.set(it, entry = new Node());\n  return entry;\n};\n\nvar root = new Node();\n\nmodule.exports = function () {\n  var active = root;\n  var length = arguments.length;\n  var i, it;\n  // for prevent leaking, start from objects\n  for (i = 0; i < length; i++) {\n    if (isObject(it = arguments[i])) active = active.next(i, it, true);\n  }\n  if (this === $Object && active === root) throw new $TypeError('Composite keys must contain a non-primitive component');\n  for (i = 0; i < length; i++) {\n    if (!isObject(it = arguments[i])) active = active.next(i, it, false);\n  } return active;\n};\n"
  },
  {
    "path": "packages/core-js/internals/copy-constructor-properties.js",
    "content": "'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n      defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n    }\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/correct-is-regexp-logic.js",
    "content": "'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n  var regexp = /./;\n  try {\n    '/./'[METHOD_NAME](regexp);\n  } catch (error1) {\n    try {\n      regexp[MATCH] = false;\n      return '/./'[METHOD_NAME](regexp);\n    } catch (error2) { /* empty */ }\n  } return false;\n};\n"
  },
  {
    "path": "packages/core-js/internals/correct-prototype-getter.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n"
  },
  {
    "path": "packages/core-js/internals/create-html.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n  var S = toString(requireObjectCoercible(string));\n  var p1 = '<' + tag;\n  if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '&quot;') + '\"';\n  return p1 + '>' + S + '</' + tag + '>';\n};\n"
  },
  {
    "path": "packages/core-js/internals/create-iter-result-object.js",
    "content": "'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n  return { value: value, done: done };\n};\n"
  },
  {
    "path": "packages/core-js/internals/create-non-enumerable-property.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n"
  },
  {
    "path": "packages/core-js/internals/create-property-descriptor.js",
    "content": "'use strict';\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n"
  },
  {
    "path": "packages/core-js/internals/create-property.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n  else object[key] = value;\n};\n"
  },
  {
    "path": "packages/core-js/internals/date-to-iso-string.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar padStart = require('../internals/string-pad').start;\n\nvar $RangeError = RangeError;\nvar $isFinite = isFinite;\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar nativeDateToISOString = DatePrototype.toISOString;\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\nvar getUTCDate = uncurryThis(DatePrototype.getUTCDate);\nvar getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear);\nvar getUTCHours = uncurryThis(DatePrototype.getUTCHours);\nvar getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds);\nvar getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes);\nvar getUTCMonth = uncurryThis(DatePrototype.getUTCMonth);\nvar getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds);\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n  return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n  nativeDateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n  if (!$isFinite(thisTimeValue(this))) throw new $RangeError('Invalid time value');\n  var date = this;\n  var year = getUTCFullYear(date);\n  var milliseconds = getUTCMilliseconds(date);\n  var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n  return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n    '-' + padStart(getUTCMonth(date) + 1, 2, 0) +\n    '-' + padStart(getUTCDate(date), 2, 0) +\n    'T' + padStart(getUTCHours(date), 2, 0) +\n    ':' + padStart(getUTCMinutes(date), 2, 0) +\n    ':' + padStart(getUTCSeconds(date), 2, 0) +\n    '.' + padStart(milliseconds, 3, 0) +\n    'Z';\n} : nativeDateToISOString;\n"
  },
  {
    "path": "packages/core-js/internals/date-to-primitive.js",
    "content": "'use strict';\nvar anObject = require('../internals/an-object');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\nvar $TypeError = TypeError;\n\n// `Date.prototype[@@toPrimitive](hint)` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nmodule.exports = function (hint) {\n  anObject(this);\n  if (hint === 'string' || hint === 'default') hint = 'string';\n  else if (hint !== 'number') throw new $TypeError('Incorrect hint');\n  return ordinaryToPrimitive(this, hint);\n};\n"
  },
  {
    "path": "packages/core-js/internals/define-built-in-accessor.js",
    "content": "'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n  if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n  if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n  return defineProperty.f(target, name, descriptor);\n};\n"
  },
  {
    "path": "packages/core-js/internals/define-built-in.js",
    "content": "'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n  if (!options) options = {};\n  var simple = options.enumerable;\n  var name = options.name !== undefined ? options.name : key;\n  if (isCallable(value)) makeBuiltIn(value, name, options);\n  if (options.global) {\n    if (simple) O[key] = value;\n    else defineGlobalProperty(key, value);\n  } else {\n    try {\n      if (!options.unsafe) delete O[key];\n      else if (O[key]) simple = true;\n    } catch (error) { /* empty */ }\n    if (simple) O[key] = value;\n    else definePropertyModule.f(O, key, {\n      value: value,\n      enumerable: false,\n      configurable: !options.nonConfigurable,\n      writable: !options.nonWritable\n    });\n  } return O;\n};\n"
  },
  {
    "path": "packages/core-js/internals/define-built-ins.js",
    "content": "'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) defineBuiltIn(target, key, src[key], options);\n  return target;\n};\n"
  },
  {
    "path": "packages/core-js/internals/define-global-property.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n  try {\n    defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n  } catch (error) {\n    globalThis[key] = value;\n  } return value;\n};\n"
  },
  {
    "path": "packages/core-js/internals/delete-property-or-throw.js",
    "content": "'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n  if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n"
  },
  {
    "path": "packages/core-js/internals/descriptors.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n"
  },
  {
    "path": "packages/core-js/internals/detach-transferable.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n  detach = function (transferable) {\n    structuredClone(transferable, { transfer: [transferable] });\n  };\n} else if ($ArrayBuffer) try {\n  if (!$MessageChannel) {\n    WorkerThreads = getBuiltInNodeModule('worker_threads');\n    if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n  }\n\n  if ($MessageChannel) {\n    channel = new $MessageChannel();\n    buffer = new $ArrayBuffer(2);\n\n    $detach = function (transferable) {\n      channel.port1.postMessage(null, [transferable]);\n    };\n\n    if (buffer.byteLength === 2) {\n      $detach(buffer);\n      if (buffer.byteLength === 0) detach = $detach;\n    }\n  }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n"
  },
  {
    "path": "packages/core-js/internals/document-create-element.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n"
  },
  {
    "path": "packages/core-js/internals/does-not-exceed-safe-integer.js",
    "content": "'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n  if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded');\n  return it;\n};\n"
  },
  {
    "path": "packages/core-js/internals/dom-exception-constants.js",
    "content": "'use strict';\nmodule.exports = {\n  IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n  DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n  HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n  WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n  InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n  NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n  NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n  NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n  NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n  InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n  InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n  SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n  InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n  NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n  InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n  ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n  TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n  SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n  NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n  AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n  URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n  QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n  TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n  InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n  DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n"
  },
  {
    "path": "packages/core-js/internals/dom-iterables.js",
    "content": "'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n"
  },
  {
    "path": "packages/core-js/internals/dom-token-list-prototype.js",
    "content": "'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n"
  },
  {
    "path": "packages/core-js/internals/entry-unbind.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n  return uncurryThis(globalThis[CONSTRUCTOR].prototype[METHOD]);\n};\n"
  },
  {
    "path": "packages/core-js/internals/entry-virtual.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = function (CONSTRUCTOR) {\n  return globalThis[CONSTRUCTOR].prototype;\n};\n"
  },
  {
    "path": "packages/core-js/internals/enum-bug-keys.js",
    "content": "'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n"
  },
  {
    "path": "packages/core-js/internals/environment-ff-version.js",
    "content": "'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n"
  },
  {
    "path": "packages/core-js/internals/environment-is-ie-or-edge.js",
    "content": "'use strict';\nvar UA = require('../internals/environment-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n"
  },
  {
    "path": "packages/core-js/internals/environment-is-ios-pebble.js",
    "content": "'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n"
  },
  {
    "path": "packages/core-js/internals/environment-is-ios.js",
    "content": "'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && /applewebkit/i.test(userAgent);\n"
  },
  {
    "path": "packages/core-js/internals/environment-is-node.js",
    "content": "'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n"
  },
  {
    "path": "packages/core-js/internals/environment-is-webos-webkit.js",
    "content": "'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n"
  },
  {
    "path": "packages/core-js/internals/environment-user-agent.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n"
  },
  {
    "path": "packages/core-js/internals/environment-v8-version.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = +match[1];\n  }\n}\n\nmodule.exports = version;\n"
  },
  {
    "path": "packages/core-js/internals/environment-webkit-version.js",
    "content": "'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n"
  },
  {
    "path": "packages/core-js/internals/environment.js",
    "content": "'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n  return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n  if (userAgentStartsWith('Bun/')) return 'BUN';\n  if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n  if (userAgentStartsWith('Deno/')) return 'DENO';\n  if (userAgentStartsWith('Node.js/')) return 'NODE';\n  if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n  if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n  if (classof(globalThis.process) === 'process') return 'NODE';\n  if (globalThis.window && globalThis.document) return 'BROWSER';\n  return 'REST';\n})();\n"
  },
  {
    "path": "packages/core-js/internals/error-stack-clear.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable, sonarjs/slow-regex -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n  if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n    while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n  } return stack;\n};\n"
  },
  {
    "path": "packages/core-js/internals/error-stack-install.js",
    "content": "'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\n// eslint-disable-next-line es/no-nonstandard-error-properties -- safe\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n  if (ERROR_STACK_INSTALLABLE) {\n    if (captureStackTrace) captureStackTrace(error, C);\n    else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/error-stack-installable.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n  var error = new Error('a');\n  if (!('stack' in error)) return true;\n  // eslint-disable-next-line es/no-object-defineproperty -- safe\n  Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n  return error.stack !== 7;\n});\n"
  },
  {
    "path": "packages/core-js/internals/error-to-string.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n  if (DESCRIPTORS) {\n    // Chrome 32- incorrectly call accessor\n    // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe\n    var object = Object.create(Object.defineProperty({}, 'name', { get: function () {\n      return this === object;\n    } }));\n    if (nativeErrorToString.call(object) !== 'true') return true;\n  }\n  // FF10- does not properly handle non-strings\n  return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n    // IE8 does not properly handle defaults\n    || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n  var O = anObject(this);\n  var name = normalizeStringArgument(O.name, 'Error');\n  var message = normalizeStringArgument(O.message);\n  return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n"
  },
  {
    "path": "packages/core-js/internals/export.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target         - name of the target object\n  options.global         - target is the global object\n  options.stat           - export as static methods of target\n  options.proto          - export as prototype methods of target\n  options.real           - real prototype method for the `pure` version\n  options.forced         - export even if the native feature is available\n  options.bind           - bind methods to the target, required for the `pure` version\n  options.wrap           - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe         - use the simple assignment of property instead of delete + defineProperty\n  options.sham           - add a flag to not completely full polyfills\n  options.enumerable     - export as enumerable property\n  options.dontCallGetSet - prevent calling a getter on target\n  options.name           - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = globalThis;\n  } else if (STATIC) {\n    target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n  } else {\n    target = globalThis[TARGET] && globalThis[TARGET].prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.dontCallGetSet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty == typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    defineBuiltIn(target, key, sourceProperty, options);\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/fails.js",
    "content": "'use strict';\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/fix-regexp-well-known-symbol-logic.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n  var SYMBOL = wellKnownSymbol(KEY);\n\n  var DELEGATES_TO_SYMBOL = !fails(function () {\n    // String methods call symbol-named RegExp methods\n    var O = {};\n    // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) !== 7;\n  });\n\n  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n    // Symbol-named RegExp methods call .exec\n    var execCalled = false;\n    var re = /a/;\n\n    if (KEY === 'split') {\n      // We can't use real regex here since it causes deoptimization\n      // and serious performance degradation in V8\n      // https://github.com/zloirock/core-js/issues/306\n      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n      // a new one. We need to return the patched regex when creating the new one.\n      var constructor = {};\n      // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n      constructor[SPECIES] = function () { return re; };\n      re = { constructor: constructor, flags: '' };\n      // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n      re[SYMBOL] = /./[SYMBOL];\n    }\n\n    re.exec = function () {\n      execCalled = true;\n      return null;\n    };\n\n    re[SYMBOL]('');\n    return !execCalled;\n  });\n\n  if (\n    !DELEGATES_TO_SYMBOL ||\n    !DELEGATES_TO_EXEC ||\n    FORCED\n  ) {\n    var nativeRegExpMethod = /./[SYMBOL];\n    var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n      var $exec = regexp.exec;\n      if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n        if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n          // The native String method already delegates to @@method (this\n          // polyfilled function), leasing to infinite recursion.\n          // We avoid it by directly calling the native @@method method.\n          return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) };\n        }\n        return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n      }\n      return { done: false };\n    });\n\n    defineBuiltIn(String.prototype, KEY, methods[0]);\n    defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n  }\n\n  if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n"
  },
  {
    "path": "packages/core-js/internals/flatten-into-array.js",
    "content": "'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar bind = require('../internals/function-bind-context');\nvar createProperty = require('../internals/create-property');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.es/ecma262/#sec-flattenintoarray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n  var targetIndex = start;\n  var sourceIndex = 0;\n  var mapFn = mapper ? bind(mapper, thisArg) : false;\n  var element, elementLen;\n\n  while (sourceIndex < sourceLen) {\n    if (sourceIndex in source) {\n      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n      if (depth > 0 && isArray(element)) {\n        elementLen = lengthOfArrayLike(element);\n        targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n      } else {\n        doesNotExceedSafeInteger(targetIndex + 1);\n        createProperty(target, targetIndex, element);\n      }\n\n      targetIndex++;\n    }\n    sourceIndex++;\n  }\n  return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n"
  },
  {
    "path": "packages/core-js/internals/freezing.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n  return Object.isExtensible(Object.preventExtensions({}));\n});\n"
  },
  {
    "path": "packages/core-js/internals/function-apply.js",
    "content": "'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n  return call.apply(apply, arguments);\n});\n"
  },
  {
    "path": "packages/core-js/internals/function-bind-context.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n  aCallable(fn);\n  return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n"
  },
  {
    "path": "packages/core-js/internals/function-bind-native.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-function-prototype-bind -- safe\n  var test = function () { /* empty */ }.bind();\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n"
  },
  {
    "path": "packages/core-js/internals/function-bind.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n  if (!hasOwn(factories, argsLength)) {\n    var list = [];\n    var i = 0;\n    for (; i < argsLength; i++) list[i] = 'a[' + i + ']';\n    factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n  } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n  var F = aCallable(this);\n  var Prototype = F.prototype;\n  var partArgs = arraySlice(arguments, 1);\n  var boundFunction = function bound(/* args... */) {\n    var args = concat(partArgs, arraySlice(arguments));\n    return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n  };\n  if (isObject(Prototype)) boundFunction.prototype = Prototype;\n  return boundFunction;\n};\n"
  },
  {
    "path": "packages/core-js/internals/function-call.js",
    "content": "'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n"
  },
  {
    "path": "packages/core-js/internals/function-demethodize.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function demethodize() {\n  return uncurryThis(aCallable(this));\n};\n"
  },
  {
    "path": "packages/core-js/internals/function-name.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && function something() { /* empty */ }.name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n  EXISTS: EXISTS,\n  PROPER: PROPER,\n  CONFIGURABLE: CONFIGURABLE\n};\n"
  },
  {
    "path": "packages/core-js/internals/function-uncurry-this-accessor.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n  try {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n  } catch (error) { /* empty */ }\n};\n"
  },
  {
    "path": "packages/core-js/internals/function-uncurry-this-clause.js",
    "content": "'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n  // Nashorn bug:\n  //   https://github.com/zloirock/core-js/issues/1128\n  //   https://github.com/zloirock/core-js/issues/1130\n  if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n"
  },
  {
    "path": "packages/core-js/internals/function-uncurry-this.js",
    "content": "'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n  return function () {\n    return call.apply(fn, arguments);\n  };\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-alphabet-option.js",
    "content": "'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (options) {\n  var alphabet = options && options.alphabet;\n  if (alphabet === undefined || alphabet === 'base64' || alphabet === 'base64url') return alphabet || 'base64';\n  throw new $TypeError('Incorrect `alphabet` option');\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-async-iterator-flattenable.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\n\nmodule.exports = function (obj) {\n  var object = anObject(obj);\n  var alreadyAsync = true;\n  var method = getMethod(object, ASYNC_ITERATOR);\n  var iterator;\n  if (!isCallable(method)) {\n    method = getIteratorMethod(object);\n    alreadyAsync = false;\n  }\n  if (method !== undefined) {\n    iterator = call(method, object);\n  } else {\n    iterator = object;\n    alreadyAsync = true;\n  }\n  anObject(iterator);\n  return getIteratorDirect(alreadyAsync ? iterator : new AsyncFromSyncIterator(getIteratorDirect(iterator)));\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-async-iterator.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar anObject = require('../internals/an-object');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\n\nmodule.exports = function (it, usingIterator) {\n  var method = arguments.length < 2 ? getMethod(it, ASYNC_ITERATOR) : usingIterator;\n  return method ? anObject(call(method, it)) : new AsyncFromSyncIterator(getIteratorDirect(getIterator(it)));\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-built-in-node-module.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar IS_NODE = require('../internals/environment-is-node');\n\nmodule.exports = function (name) {\n  if (IS_NODE) {\n    try {\n      return globalThis.process.getBuiltinModule(name);\n    } catch (error) { /* empty */ }\n    try {\n      // eslint-disable-next-line no-new-func -- safe\n      return Function('return require(\"' + name + '\")')();\n    } catch (error) { /* empty */ }\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-built-in-prototype-method.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n  var Constructor = globalThis[CONSTRUCTOR];\n  var Prototype = Constructor && Constructor.prototype;\n  return Prototype && Prototype[METHOD];\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-built-in.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n  return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-iterator-direct.js",
    "content": "'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/ecma262/#sec-getiteratordirect\nmodule.exports = function (obj) {\n  return {\n    iterator: obj,\n    next: obj.next,\n    done: false\n  };\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-iterator-flattenable.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (obj, stringHandling) {\n  if (!stringHandling || typeof obj !== 'string') anObject(obj);\n  var method = getIteratorMethod(obj);\n  return getIteratorDirect(anObject(method !== undefined ? call(method, obj) : obj));\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-iterator-method.js",
    "content": "'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n    || getMethod(it, '@@iterator')\n    || Iterators[classof(it)];\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-iterator-record.js",
    "content": "'use strict';\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nmodule.exports = function (argument) {\n  return getIteratorDirect(getIterator(argument));\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-iterator.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n  var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n  if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n  throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-method.js",
    "content": "'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-mode-option.js",
    "content": "'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (options) {\n  var mode = options && options.mode;\n  if (mode === undefined || mode === 'shortest' || mode === 'longest' || mode === 'strict') return mode || 'shortest';\n  throw new $TypeError('Incorrect `mode` option');\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-set-record.js",
    "content": "'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n  this.set = set;\n  this.size = max(intSize, 0);\n  this.has = aCallable(set.has);\n  this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n  getIterator: function () {\n    return getIteratorDirect(anObject(call(this.keys, this.set)));\n  },\n  includes: function (it) {\n    return call(this.has, this.set, it);\n  }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n  anObject(obj);\n  var numSize = +obj.size;\n  // NOTE: If size is undefined, then numSize will be NaN\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n  var intSize = toIntegerOrInfinity(numSize);\n  if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n  return new SetRecord(obj, intSize);\n};\n"
  },
  {
    "path": "packages/core-js/internals/get-substitution.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n  var tailPos = position + matched.length;\n  var m = captures.length;\n  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n  if (namedCaptures !== undefined) {\n    namedCaptures = toObject(namedCaptures);\n    symbols = SUBSTITUTION_SYMBOLS;\n  }\n  return replace(replacement, symbols, function (match, ch) {\n    var capture;\n    switch (charAt(ch, 0)) {\n      case '$': return '$';\n      case '&': return matched;\n      case '`': return stringSlice(str, 0, position);\n      case \"'\": return stringSlice(str, tailPos);\n      case '<':\n        capture = namedCaptures[stringSlice(ch, 1, -1)];\n        break;\n      default: // \\d\\d?\n        var n = +ch;\n        if (n === 0) return match;\n        if (n > m) {\n          var f = floor(n / 10);\n          if (f === 0) return match;\n          if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n          return match;\n        }\n        capture = captures[n - 1];\n    }\n    return capture === undefined ? '' : capture;\n  });\n};\n"
  },
  {
    "path": "packages/core-js/internals/global-this.js",
    "content": "'use strict';\nvar check = function (it) {\n  return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  check(typeof this == 'object' && this) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n"
  },
  {
    "path": "packages/core-js/internals/has-own-property.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n"
  },
  {
    "path": "packages/core-js/internals/hidden-keys.js",
    "content": "'use strict';\nmodule.exports = {};\n"
  },
  {
    "path": "packages/core-js/internals/host-report-errors.js",
    "content": "'use strict';\nmodule.exports = function (a, b) {\n  try {\n    // eslint-disable-next-line no-console -- safe\n    arguments.length === 1 ? console.error(a) : console.error(a, b);\n  } catch (error) { /* empty */ }\n};\n"
  },
  {
    "path": "packages/core-js/internals/html.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n"
  },
  {
    "path": "packages/core-js/internals/ie8-dom-define.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a !== 7;\n});\n"
  },
  {
    "path": "packages/core-js/internals/ieee754.js",
    "content": "'use strict';\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar $Array = Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n  var buffer = $Array(bytes);\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n  var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n  var index = 0;\n  var exponent, mantissa, c;\n  number = abs(number);\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (number !== number || number === Infinity) {\n    // eslint-disable-next-line no-self-compare -- NaN check\n    mantissa = number !== number ? 1 : 0;\n    exponent = eMax;\n  } else {\n    exponent = floor(log(number) / LN2);\n    c = pow(2, -exponent);\n    if (number * c < 1) {\n      exponent--;\n      c *= 2;\n    }\n    if (exponent + eBias >= 1) {\n      number += rt / c;\n    } else {\n      number += rt * pow(2, 1 - eBias);\n    }\n    if (number * c >= 2) {\n      exponent++;\n      c /= 2;\n    }\n    if (exponent + eBias >= eMax) {\n      mantissa = 0;\n      exponent = eMax;\n    } else if (exponent + eBias >= 1) {\n      mantissa = (number * c - 1) * pow(2, mantissaLength);\n      exponent += eBias;\n    } else {\n      mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n      exponent = 0;\n    }\n  }\n  while (mantissaLength >= 8) {\n    buffer[index++] = mantissa & 255;\n    mantissa /= 256;\n    mantissaLength -= 8;\n  }\n  exponent = exponent << mantissaLength | mantissa;\n  exponentLength += mantissaLength;\n  while (exponentLength > 0) {\n    buffer[index++] = exponent & 255;\n    exponent /= 256;\n    exponentLength -= 8;\n  }\n  buffer[index - 1] |= sign * 128;\n  return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n  var bytes = buffer.length;\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var nBits = exponentLength - 7;\n  var index = bytes - 1;\n  var sign = buffer[index--];\n  var exponent = sign & 127;\n  var mantissa;\n  sign >>= 7;\n  while (nBits > 0) {\n    exponent = exponent * 256 + buffer[index--];\n    nBits -= 8;\n  }\n  mantissa = exponent & (1 << -nBits) - 1;\n  exponent >>= -nBits;\n  nBits += mantissaLength;\n  while (nBits > 0) {\n    mantissa = mantissa * 256 + buffer[index--];\n    nBits -= 8;\n  }\n  if (exponent === 0) {\n    exponent = 1 - eBias;\n  } else if (exponent === eMax) {\n    return mantissa ? NaN : sign ? -Infinity : Infinity;\n  } else {\n    mantissa += pow(2, mantissaLength);\n    exponent -= eBias;\n  } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n  pack: pack,\n  unpack: unpack\n};\n"
  },
  {
    "path": "packages/core-js/internals/indexed-object.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n"
  },
  {
    "path": "packages/core-js/internals/inherit-if-required.js",
    "content": "'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    isCallable(NewTarget = dummy.constructor) &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n"
  },
  {
    "path": "packages/core-js/internals/inspect-source.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n  store.inspectSource = function (it) {\n    return functionToString(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n"
  },
  {
    "path": "packages/core-js/internals/install-error-cause.js",
    "content": "'use strict';\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/ecma262/#sec-installerrorcause\nmodule.exports = function (O, options) {\n  if (isObject(options) && 'cause' in options) {\n    createNonEnumerableProperty(O, 'cause', options.cause);\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/internal-metadata.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n  defineProperty(it, METADATA, { value: {\n    objectID: 'O' + id++, // object ID\n    weakData: {}          // weak collections IDs\n  } });\n};\n\nvar fastKey = function (it, create) {\n  // return a primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!hasOwn(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMetadata(it);\n  // return object ID\n  } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n  if (!hasOwn(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMetadata(it);\n  // return the store of weak collections IDs\n  } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n  return it;\n};\n\nvar enable = function () {\n  meta.enable = function () { /* empty */ };\n  REQUIRED = true;\n  var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n  var splice = uncurryThis([].splice);\n  var test = {};\n  // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n  test[METADATA] = 1;\n\n  // prevent exposing of metadata key\n  if (getOwnPropertyNames(test).length) {\n    getOwnPropertyNamesModule.f = function (it) {\n      var result = getOwnPropertyNames(it);\n      for (var i = 0, length = result.length; i < length; i++) {\n        if (result[i] === METADATA) {\n          splice(result, i, 1);\n          break;\n        }\n      } return result;\n    };\n\n    $({ target: 'Object', stat: true, forced: true }, {\n      getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n    });\n  }\n};\n\nvar meta = module.exports = {\n  enable: enable,\n  fastKey: fastKey,\n  getWeakData: getWeakData,\n  onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n"
  },
  {
    "path": "packages/core-js/internals/internal-state.js",
    "content": "'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  /* eslint-disable no-self-assign -- prototype methods protection */\n  store.get = store.get;\n  store.has = store.has;\n  store.set = store.set;\n  /* eslint-enable no-self-assign -- prototype methods protection */\n  set = function (it, metadata) {\n    if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    store.set(it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return store.get(it) || {};\n  };\n  has = function (it) {\n    return store.has(it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return hasOwn(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return hasOwn(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-array-iterator-method.js",
    "content": "'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-array.js",
    "content": "'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n  return classof(argument) === 'Array';\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-big-int-array.js",
    "content": "'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n  var klass = classof(it);\n  return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-callable.js",
    "content": "'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n  return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n  return typeof argument == 'function';\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-constructor.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n  if (!isCallable(argument)) return false;\n  try {\n    construct(noop, [], argument);\n    return true;\n  } catch (error) {\n    return false;\n  }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n  if (!isCallable(argument)) return false;\n  switch (classof(argument)) {\n    case 'AsyncFunction':\n    case 'GeneratorFunction':\n    case 'AsyncGeneratorFunction': return false;\n  }\n  try {\n    // we can't check .prototype since constructors produced by .bind haven't it\n    // `Function#toString` throws on some built-it function in some legacy engines\n    // (for example, `DOMQuad` and similar in FF41-)\n    return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n  } catch (error) {\n    return true;\n  }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n  var called;\n  return isConstructorModern(isConstructorModern.call)\n    || !isConstructorModern(Object)\n    || !isConstructorModern(function () { called = true; })\n    || called;\n}) ? isConstructorLegacy : isConstructorModern;\n"
  },
  {
    "path": "packages/core-js/internals/is-data-descriptor.js",
    "content": "'use strict';\nvar hasOwn = require('../internals/has-own-property');\n\nmodule.exports = function (descriptor) {\n  return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-forced.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value === POLYFILL ? true\n    : value === NATIVE ? false\n    : isCallable(detection) ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n"
  },
  {
    "path": "packages/core-js/internals/is-integral-number.js",
    "content": "'use strict';\nvar isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n  return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-iterable.js",
    "content": "'use strict';\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar $Object = Object;\n\nmodule.exports = function (it) {\n  if (isNullOrUndefined(it)) return false;\n  var O = $Object(it);\n  return O[ITERATOR] !== undefined\n    || '@@iterator' in O\n    || hasOwn(Iterators, classof(O));\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-null-or-undefined.js",
    "content": "'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n  return it === null || it === undefined;\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-object.js",
    "content": "'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-possible-prototype.js",
    "content": "'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n  return isObject(argument) || argument === null;\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-pure.js",
    "content": "'use strict';\nmodule.exports = false;\n"
  },
  {
    "path": "packages/core-js/internals/is-raw-json.js",
    "content": "'use strict';\nvar isObject = require('../internals/is-object');\nvar getInternalState = require('../internals/internal-state').get;\n\nmodule.exports = function isRawJSON(O) {\n  if (!isObject(O)) return false;\n  var state = getInternalState(O);\n  return !!state && state.type === 'RawJSON';\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-regexp.js",
    "content": "'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n"
  },
  {
    "path": "packages/core-js/internals/is-symbol.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  var $Symbol = getBuiltIn('Symbol');\n  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterate-simple.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n  var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n  var next = record.next;\n  var step, result;\n  while (!(step = call(next, iterator)).done) {\n    result = fn(step.value);\n    if (result !== undefined) return result;\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterate.js",
    "content": "'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n  var that = options && options.that;\n  var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n  var IS_RECORD = !!(options && options.IS_RECORD);\n  var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n  var INTERRUPTED = !!(options && options.INTERRUPTED);\n  var fn = bind(unboundFunction, that);\n  var iterator, iterFn, index, length, result, next, step;\n\n  var stop = function (condition) {\n    var $iterator = iterator;\n    iterator = undefined;\n    if ($iterator) iteratorClose($iterator, 'normal');\n    return new Result(true, condition);\n  };\n\n  var callFn = function (value) {\n    if (AS_ENTRIES) {\n      anObject(value);\n      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n    } return INTERRUPTED ? fn(value, stop) : fn(value);\n  };\n\n  if (IS_RECORD) {\n    iterator = iterable.iterator;\n  } else if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n        result = callFn(iterable[index]);\n        if (result && isPrototypeOf(ResultPrototype, result)) return result;\n      } return new Result(false);\n    }\n    iterator = getIterator(iterable, iterFn);\n  }\n\n  next = IS_RECORD ? iterable.next : iterator.next;\n  while (!(step = call(next, iterator)).done) {\n    // `IteratorValue` errors should propagate without closing the iterator\n    var value = step.value;\n    try {\n      result = callFn(value);\n    } catch (error) {\n      if (iterator) iteratorClose(iterator, 'throw', error);\n      else throw error;\n    }\n    if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n  } return new Result(false);\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterator-close-all.js",
    "content": "'use strict';\nvar iteratorClose = require('../internals/iterator-close');\n\nmodule.exports = function (iters, kind, value) {\n  for (var i = iters.length - 1; i >= 0; i--) {\n    if (iters[i] === undefined) continue;\n    try {\n      value = iteratorClose(iters[i].iterator, kind, value);\n    } catch (error) {\n      kind = 'throw';\n      value = error;\n    }\n  }\n  if (kind === 'throw') throw value;\n  return value;\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterator-close.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n  var innerResult, innerError;\n  anObject(iterator);\n  try {\n    innerResult = getMethod(iterator, 'return');\n    if (!innerResult) {\n      if (kind === 'throw') throw value;\n      return value;\n    }\n    innerResult = call(innerResult, iterator);\n  } catch (error) {\n    innerError = true;\n    innerResult = error;\n  }\n  if (kind === 'throw') throw value;\n  if (innerError) throw innerResult;\n  anObject(innerResult);\n  return value;\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterator-create-constructor.js",
    "content": "'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterator-create-proxy.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorCloseAll = require('../internals/iterator-close-all');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar NORMAL = 'normal';\nvar THROW = 'throw';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n  var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n  return defineBuiltIns(create(IteratorPrototype), {\n    next: function next() {\n      var state = getInternalState(this);\n      // for simplification:\n      //   for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`\n      //   for `%IteratorHelperPrototype%.next` - just a value\n      if (IS_ITERATOR) return state.nextHandler();\n      if (state.done) return createIterResultObject(undefined, true);\n      try {\n        var result = state.nextHandler();\n        return state.returnHandlerResult ? result : createIterResultObject(result, state.done);\n      } catch (error) {\n        state.done = true;\n        throw error;\n      }\n    },\n    'return': function () {\n      var state = getInternalState(this);\n      var iterator = state.iterator;\n      var done = state.done;\n      state.done = true;\n      if (IS_ITERATOR) {\n        var returnMethod = getMethod(iterator, 'return');\n        return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n      }\n      if (done) return createIterResultObject(undefined, true);\n      if (state.inner) try {\n        iteratorClose(state.inner.iterator, NORMAL);\n      } catch (error) {\n        return iteratorClose(iterator, THROW, error);\n      }\n      if (state.openIters) try {\n        iteratorCloseAll(state.openIters, NORMAL);\n      } catch (error) {\n        if (iterator) return iteratorClose(iterator, THROW, error);\n        throw error;\n      }\n      if (iterator) iteratorClose(iterator, NORMAL);\n      return createIterResultObject(undefined, true);\n    }\n  });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {\n  var IteratorProxy = function Iterator(record, state) {\n    if (state) {\n      state.iterator = record.iterator;\n      state.next = record.next;\n    } else state = record;\n    state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n    state.returnHandlerResult = !!RETURN_HANDLER_RESULT;\n    state.nextHandler = nextHandler;\n    state.counter = 0;\n    state.done = false;\n    setInternalState(this, state);\n  };\n\n  IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n  return IteratorProxy;\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterator-define.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    }\n\n    return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n          defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n  if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n      createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n    } else {\n      INCORRECT_VALUES_NAME = true;\n      defaultIterator = function values() { return call(nativeIterator, this); };\n    }\n  }\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n  }\n  Iterators[NAME] = defaultIterator;\n\n  return methods;\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterator-helper-throws-on-invalid-iterator.js",
    "content": "'use strict';\n// Should throw an error on invalid iterator\n// https://issues.chromium.org/issues/336839115\nmodule.exports = function (methodName, argument) {\n  // eslint-disable-next-line es/no-iterator -- required for testing\n  var method = typeof Iterator == 'function' && Iterator.prototype[methodName];\n  if (method) try {\n    method.call({ next: null }, argument).next();\n  } catch (error) {\n    return true;\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterator-helper-without-closing-on-early-error.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\n\n// https://github.com/tc39/ecma262/pull/3467\nmodule.exports = function (METHOD_NAME, ExpectedError) {\n  var Iterator = globalThis.Iterator;\n  var IteratorPrototype = Iterator && Iterator.prototype;\n  var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];\n\n  var CLOSED = false;\n\n  if (method) try {\n    method.call({\n      next: function () { return { done: true }; },\n      'return': function () { CLOSED = true; }\n    }, -1);\n  } catch (error) {\n    // https://bugs.webkit.org/show_bug.cgi?id=291195\n    if (!(error instanceof ExpectedError)) CLOSED = false;\n  }\n\n  if (!CLOSED) return method;\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterator-indexed.js",
    "content": "'use strict';\nrequire('../modules/es.iterator.map');\nvar call = require('../internals/function-call');\nvar map = require('../internals/iterators-core').IteratorPrototype.map;\n\nvar callback = function (value, counter) {\n  return [counter, value];\n};\n\n// `Iterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function indexed() {\n  return call(map, this, callback);\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterator-window.js",
    "content": "'use strict';\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar push = uncurryThis([].push);\nvar slice = uncurryThis([].slice);\nvar ALLOW_PARTIAL = 'allow-partial';\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var next = this.next;\n  var buffer = this.buffer;\n  var windowSize = this.windowSize;\n  var allowPartial = this.allowPartial;\n  var result, done;\n  while (true) {\n    result = anObject(call(next, iterator));\n    done = this.done = !!result.done;\n    if (allowPartial && done && buffer.length && buffer.length < windowSize) return createIterResultObject(slice(buffer, 0), false);\n    if (done) return createIterResultObject(undefined, true);\n\n    if (buffer.length === windowSize) this.buffer = buffer = slice(buffer, 1);\n    push(buffer, result.value);\n    if (buffer.length === windowSize) return createIterResultObject(slice(buffer, 0), false);\n  }\n}, false, true);\n\n// `Iterator.prototype.windows` and obsolete `Iterator.prototype.sliding` methods\n// https://github.com/tc39/proposal-iterator-chunking\nmodule.exports = function (O, windowSize, undersized) {\n  anObject(O);\n  if (typeof windowSize != 'number' || !windowSize || windowSize >>> 0 !== windowSize) {\n    return iteratorClose(O, 'throw', new $RangeError('`windowSize` must be integer in [1, 2^32-1]'));\n  }\n  if (undersized !== undefined && undersized !== 'only-full' && undersized !== ALLOW_PARTIAL) {\n    return iteratorClose(O, 'throw', new $TypeError('Incorrect `undersized` argument'));\n  }\n  return new IteratorProxy(getIteratorDirect(O), {\n    windowSize: windowSize,\n    buffer: [],\n    allowPartial: undersized === ALLOW_PARTIAL\n  });\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterator-zip.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorCloseAll = require('../internals/iterator-close-all');\n\nvar $TypeError = TypeError;\nvar slice = uncurryThis([].slice);\nvar push = uncurryThis([].push);\nvar ITERATOR_IS_EXHAUSTED = 'Iterator is exhausted';\nvar THROW = 'throw';\n\n// eslint-disable-next-line max-statements -- specification case\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterCount = this.iterCount;\n  if (!iterCount) {\n    this.done = true;\n    return;\n  }\n  var openIters = this.openIters;\n  var iters = this.iters;\n  var padding = this.padding;\n  var mode = this.mode;\n  var finishResults = this.finishResults;\n\n  var results = [];\n  var result, done;\n  for (var i = 0; i < iterCount; i++) {\n    var iter = iters[i];\n    if (iter === null) {\n      result = padding[i];\n    } else {\n      try {\n        result = anObject(call(iter.next, iter.iterator));\n        done = result.done;\n        result = result.value;\n      } catch (error) {\n        openIters[i] = undefined;\n        return iteratorCloseAll(openIters, THROW, error);\n      }\n      if (done) {\n        openIters[i] = undefined;\n        this.openItersCount--;\n        if (mode === 'shortest') {\n          this.done = true;\n          return iteratorCloseAll(openIters, 'normal', undefined);\n        }\n        if (mode === 'strict') {\n          if (i) {\n            return iteratorCloseAll(openIters, THROW, new $TypeError(ITERATOR_IS_EXHAUSTED));\n          }\n\n          var open, openDone;\n          for (var k = 1; k < iterCount; k++) {\n            // eslint-disable-next-line max-depth -- specification case\n            try {\n              open = anObject(call(iters[k].next, iters[k].iterator));\n              openDone = open.done;\n              open = open.value;\n            } catch (error) {\n              openIters[k] = undefined;\n              return iteratorCloseAll(openIters, THROW, error);\n            }\n            // eslint-disable-next-line max-depth -- specification case\n            if (openDone) {\n              openIters[k] = undefined;\n              this.openItersCount--;\n            } else {\n              return iteratorCloseAll(openIters, THROW, new $TypeError(ITERATOR_IS_EXHAUSTED));\n            }\n          }\n          this.done = true;\n          return;\n        }\n        if (!this.openItersCount) {\n          this.done = true;\n          return;\n        }\n        iters[i] = null;\n        result = padding[i];\n      }\n    }\n    push(results, result);\n  }\n\n  return finishResults ? finishResults(results) : results;\n});\n\nmodule.exports = function (iters, mode, padding, finishResults) {\n  var iterCount = iters.length;\n  return new IteratorProxy({\n    iters: iters,\n    iterCount: iterCount,\n    openIters: slice(iters, 0),\n    openItersCount: iterCount,\n    mode: mode,\n    padding: padding,\n    finishResults: finishResults\n  });\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterators-core.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n  var test = {};\n  // FF44- legacy iterators case\n  return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n  defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n    return this;\n  });\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n"
  },
  {
    "path": "packages/core-js/internals/iterators.js",
    "content": "'use strict';\nmodule.exports = {};\n"
  },
  {
    "path": "packages/core-js/internals/length-of-array-like.js",
    "content": "'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n  return toLength(obj.length);\n};\n"
  },
  {
    "path": "packages/core-js/internals/make-built-in.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n  return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n  if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n    name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n  }\n  if (options && options.getter) name = 'get ' + name;\n  if (options && options.setter) name = 'set ' + name;\n  if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n    if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n    else value.name = name;\n  }\n  if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n    defineProperty(value, 'length', { value: options.arity });\n  }\n  try {\n    if (options && hasOwn(options, 'constructor') && options.constructor) {\n      if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n    // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n    } else if (value.prototype) value.prototype = undefined;\n  } catch (error) { /* empty */ }\n  var state = enforceInternalState(value);\n  if (!hasOwn(state, 'source')) {\n    state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n  } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n  return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n"
  },
  {
    "path": "packages/core-js/internals/map-helpers.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n  // eslint-disable-next-line es/no-map -- safe\n  Map: Map,\n  set: uncurryThis(MapPrototype.set),\n  get: uncurryThis(MapPrototype.get),\n  has: uncurryThis(MapPrototype.has),\n  remove: uncurryThis(MapPrototype['delete']),\n  proto: MapPrototype\n};\n"
  },
  {
    "path": "packages/core-js/internals/map-iterate.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar Map = MapHelpers.Map;\nvar MapPrototype = MapHelpers.proto;\nvar forEach = uncurryThis(MapPrototype.forEach);\nvar entries = uncurryThis(MapPrototype.entries);\nvar next = entries(new Map()).next;\n\nmodule.exports = function (map, fn, interruptible) {\n  return interruptible ? iterateSimple({ iterator: entries(map), next: next }, function (entry) {\n    return fn(entry[1], entry[0]);\n  }) : forEach(map, fn);\n};\n"
  },
  {
    "path": "packages/core-js/internals/map-upsert.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\n\nvar $TypeError = TypeError;\n\n// `Map.prototype.upsert` method\n// https://github.com/tc39/proposal-upsert\nmodule.exports = function upsert(key, updateFn /* , insertFn */) {\n  var map = anObject(this);\n  var get = aCallable(map.get);\n  var has = aCallable(map.has);\n  var set = aCallable(map.set);\n  var insertFn = arguments.length > 2 ? arguments[2] : undefined;\n  var value;\n  if (!isCallable(updateFn) && !isCallable(insertFn)) {\n    throw new $TypeError('At least one callback required');\n  }\n  if (call(has, map, key)) {\n    value = call(get, map, key);\n    if (isCallable(updateFn)) {\n      value = updateFn(value);\n      call(set, map, key, value);\n    }\n  } else if (isCallable(insertFn)) {\n    value = insertFn();\n    call(set, map, key, value);\n  } return value;\n};\n"
  },
  {
    "path": "packages/core-js/internals/math-clamp.js",
    "content": "'use strict';\nvar aNumber = require('../internals/a-number');\n\nvar $min = Math.min;\nvar $max = Math.max;\n\nmodule.exports = function clamp(value, min, max) {\n  return $min($max(aNumber(value), aNumber(min)), aNumber(max));\n};\n"
  },
  {
    "path": "packages/core-js/internals/math-expm1.js",
    "content": "'use strict';\n// eslint-disable-next-line es/no-math-expm1 -- safe\nvar $expm1 = Math.expm1;\nvar exp = Math.exp;\n\n// `Math.expm1` method implementation\n// https://tc39.es/ecma262/#sec-math.expm1\nmodule.exports = (!$expm1\n  // Old FF bug\n  // eslint-disable-next-line no-loss-of-precision -- required for old engines\n  || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n  // Tor Browser bug\n  || $expm1(-2e-17) !== -2e-17\n) ? function expm1(x) {\n  var n = +x;\n  return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1;\n} : $expm1;\n"
  },
  {
    "path": "packages/core-js/internals/math-float-round.js",
    "content": "'use strict';\nvar sign = require('../internals/math-sign');\nvar roundTiesToEven = require('../internals/math-round-ties-to-even');\n\nvar abs = Math.abs;\n\nvar EPSILON = 2.220446049250313e-16; // Number.EPSILON\n\nmodule.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) {\n  var n = +x;\n  var absolute = abs(n);\n  var s = sign(n);\n  if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON;\n  var a = (1 + FLOAT_EPSILON / EPSILON) * absolute;\n  var result = a - (a - absolute);\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity;\n  return s * result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/math-fround.js",
    "content": "'use strict';\nvar floatRound = require('../internals/math-float-round');\n\nvar FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23;\nvar FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104\nvar FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126;\n\n// `Math.fround` method implementation\n// https://tc39.es/ecma262/#sec-math.fround\n// eslint-disable-next-line es/no-math-fround -- safe\nmodule.exports = Math.fround || function fround(x) {\n  return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE);\n};\n"
  },
  {
    "path": "packages/core-js/internals/math-log10.js",
    "content": "'use strict';\nvar log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// eslint-disable-next-line es/no-math-log10 -- safe\nmodule.exports = Math.log10 || function log10(x) {\n  return log(x) * LOG10E;\n};\n"
  },
  {
    "path": "packages/core-js/internals/math-log1p.js",
    "content": "'use strict';\nvar log = Math.log;\n\n// `Math.log1p` method implementation\n// https://tc39.es/ecma262/#sec-math.log1p\n// eslint-disable-next-line es/no-math-log1p -- safe\nmodule.exports = Math.log1p || function log1p(x) {\n  var n = +x;\n  return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n);\n};\n"
  },
  {
    "path": "packages/core-js/internals/math-log2.js",
    "content": "'use strict';\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n// eslint-disable-next-line es/no-math-log2 -- safe\nmodule.exports = Math.log2 || function log2(x) {\n  return log(x) / LN2;\n};\n"
  },
  {
    "path": "packages/core-js/internals/math-round-ties-to-even.js",
    "content": "'use strict';\nvar EPSILON = 2.220446049250313e-16; // Number.EPSILON\nvar INVERSE_EPSILON = 1 / EPSILON;\n\nmodule.exports = function (n) {\n  return n + INVERSE_EPSILON - INVERSE_EPSILON;\n};\n"
  },
  {
    "path": "packages/core-js/internals/math-scale.js",
    "content": "'use strict';\n// `Math.scale` method implementation\n// https://rwaldron.github.io/proposal-math-extensions/\nmodule.exports = function scale(x, inLow, inHigh, outLow, outHigh) {\n  var nx = +x;\n  var nInLow = +inLow;\n  var nInHigh = +inHigh;\n  var nOutLow = +outLow;\n  var nOutHigh = +outHigh;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (nx !== nx || nInLow !== nInLow || nInHigh !== nInHigh || nOutLow !== nOutLow || nOutHigh !== nOutHigh) return NaN;\n  if (nx === Infinity || nx === -Infinity) return nx;\n  return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow;\n};\n"
  },
  {
    "path": "packages/core-js/internals/math-sign.js",
    "content": "'use strict';\n// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n  var n = +x;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return n === 0 || n !== n ? n : n < 0 ? -1 : 1;\n};\n"
  },
  {
    "path": "packages/core-js/internals/math-trunc.js",
    "content": "'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n  var n = +x;\n  return (n > 0 ? floor : ceil)(n);\n};\n"
  },
  {
    "path": "packages/core-js/internals/microtask.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/environment-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/environment-is-webos-webkit');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n  var queue = new Queue();\n\n  var flush = function () {\n    var parent, fn;\n    if (IS_NODE && (parent = process.domain)) parent.exit();\n    while (fn = queue.get()) try {\n      fn();\n    } catch (error) {\n      if (queue.head) notify();\n      throw error;\n    }\n    if (parent) parent.enter();\n  };\n\n  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n  // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n  if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n    toggle = true;\n    node = document.createTextNode('');\n    new MutationObserver(flush).observe(node, { characterData: true });\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    promise = Promise.resolve(undefined);\n    // workaround of WebKit ~ iOS Safari 10.1 bug\n    promise.constructor = Promise;\n    then = bind(promise.then, promise);\n    notify = function () {\n      then(flush);\n    };\n  // Node.js without promises\n  } else if (IS_NODE) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessage\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    // `webpack` dev server bug on IE global methods - use bind(fn, global)\n    macrotask = bind(macrotask, globalThis);\n    notify = function () {\n      macrotask(flush);\n    };\n  }\n\n  microtask = function (fn) {\n    if (!queue.head) notify();\n    queue.add(fn);\n  };\n}\n\nmodule.exports = microtask;\n"
  },
  {
    "path": "packages/core-js/internals/native-raw-json.js",
    "content": "'use strict';\n/* eslint-disable es/no-json -- safe */\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  var unsafeInt = '9007199254740993';\n  // eslint-disable-next-line es/no-json-rawjson -- feature detection\n  var raw = JSON.rawJSON(unsafeInt);\n  // eslint-disable-next-line es/no-json-israwjson -- feature detection\n  return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;\n});\n"
  },
  {
    "path": "packages/core-js/internals/new-promise-capability.js",
    "content": "'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aCallable(resolve);\n  this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n"
  },
  {
    "path": "packages/core-js/internals/normalize-string-argument.js",
    "content": "'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n  return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n"
  },
  {
    "path": "packages/core-js/internals/not-a-nan.js",
    "content": "'use strict';\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (it === it) return it;\n  throw new $RangeError('NaN is not allowed');\n};\n"
  },
  {
    "path": "packages/core-js/internals/not-a-regexp.js",
    "content": "'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n  if (isRegExp(it)) {\n    throw new $TypeError(\"The method doesn't accept regular expressions\");\n  } return it;\n};\n"
  },
  {
    "path": "packages/core-js/internals/number-is-finite.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar globalIsFinite = globalThis.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n  return typeof it == 'number' && globalIsFinite(it);\n};\n"
  },
  {
    "path": "packages/core-js/internals/number-parse-float.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar $parseFloat = globalThis.parseFloat;\nvar Symbol = globalThis.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n  // MS Edge 18- broken with boxed symbols\n  || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n  var trimmedString = trim(toString(string));\n  var result = $parseFloat(trimmedString);\n  return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result;\n} : $parseFloat;\n"
  },
  {
    "path": "packages/core-js/internals/number-parse-int.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = globalThis.parseInt;\nvar Symbol = globalThis.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n  // MS Edge 18- broken with boxed symbols\n  || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n  var S = trim(toString(string));\n  return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n"
  },
  {
    "path": "packages/core-js/internals/numeric-range-iterator.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-iterator.range\nvar InternalStateModule = require('../internals/internal-state');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar INCORRECT_RANGE = 'Incorrect Iterator.range arguments';\nvar NUMERIC_RANGE_ITERATOR = 'NumericRangeIterator';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(NUMERIC_RANGE_ITERATOR);\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\n\nvar $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (start !== start || end !== end) {\n    throw new $RangeError(INCORRECT_RANGE);\n  }\n  // TODO: Drop the first `typeof` check after removing legacy methods in `core-js@4`\n  if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) {\n    throw new $TypeError(INCORRECT_RANGE);\n  }\n  if (start === Infinity || start === -Infinity) {\n    throw new $RangeError(INCORRECT_RANGE);\n  }\n  var ifIncrease = end > start;\n  var inclusiveEnd = false;\n  var step;\n  if (isNullOrUndefined(option)) {\n    step = undefined;\n  } else if (isObject(option)) {\n    step = option.step;\n    inclusiveEnd = !!option.inclusive;\n  } else if (typeof option == type) {\n    step = option;\n  } else {\n    throw new $TypeError(INCORRECT_RANGE);\n  }\n  if (isNullOrUndefined(step)) {\n    step = ifIncrease ? one : -one;\n  }\n  if (typeof step != type) {\n    throw new $TypeError(INCORRECT_RANGE);\n  }\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (step !== step || step === Infinity || step === -Infinity || (step === zero && start !== end)) {\n    throw new $RangeError(INCORRECT_RANGE);\n  }\n  var hitsEnd = end > start !== step > zero;\n  setInternalState(this, {\n    type: NUMERIC_RANGE_ITERATOR,\n    start: start,\n    end: end,\n    step: step,\n    inclusive: inclusiveEnd,\n    hitsEnd: hitsEnd,\n    currentCount: zero,\n    zero: zero\n  });\n  if (!DESCRIPTORS) {\n    this.start = start;\n    this.end = end;\n    this.step = step;\n    this.inclusive = inclusiveEnd;\n  }\n}, NUMERIC_RANGE_ITERATOR, function next() {\n  var state = getInternalState(this);\n  if (state.hitsEnd) return createIterResultObject(undefined, true);\n  var start = state.start;\n  var end = state.end;\n  var step = state.step;\n  var currentYieldingValue = start + (step * state.currentCount++);\n  if (currentYieldingValue === end) state.hitsEnd = true;\n  var inclusiveEnd = state.inclusive;\n  var endCondition;\n  if (end > start) {\n    endCondition = inclusiveEnd ? currentYieldingValue > end : currentYieldingValue >= end;\n  } else {\n    endCondition = inclusiveEnd ? end > currentYieldingValue : end >= currentYieldingValue;\n  }\n  if (endCondition) {\n    state.hitsEnd = true;\n    return createIterResultObject(undefined, true);\n  } return createIterResultObject(currentYieldingValue, false);\n});\n\nvar addGetter = function (key) {\n  defineBuiltInAccessor($RangeIterator.prototype, key, {\n    get: function () {\n      return getInternalState(this)[key];\n    },\n    set: function () { /* empty */ },\n    configurable: true,\n    enumerable: false\n  });\n};\n\nif (DESCRIPTORS) {\n  addGetter('start');\n  addGetter('end');\n  addGetter('inclusive');\n  addGetter('step');\n}\n\nmodule.exports = $RangeIterator;\n"
  },
  {
    "path": "packages/core-js/internals/object-assign.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n  // should have correct order of operations (Edge bug)\n  if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n    enumerable: true,\n    get: function () {\n      defineProperty(this, 'b', {\n        value: 3,\n        enumerable: false\n      });\n    }\n  }), { b: 2 })).b !== 1) return true;\n  // should work with symbols and should have deterministic property order (V8 bug)\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line es/no-symbol -- safe\n  var symbol = Symbol('assign detection');\n  var alphabet = 'abcdefghijklmnopqrst';\n  A[symbol] = 7;\n  // eslint-disable-next-line es/no-array-prototype-foreach -- safe\n  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n  return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n  var T = toObject(target);\n  var argumentsLength = arguments.length;\n  var index = 1;\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  var propertyIsEnumerable = propertyIsEnumerableModule.f;\n  while (argumentsLength > index) {\n    var S = IndexedObject(arguments[index++]);\n    var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n    }\n  } return T;\n} : $assign;\n"
  },
  {
    "path": "packages/core-js/internals/object-create.js",
    "content": "'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n  activeXDocument = null;\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    activeXDocument = new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = typeof document != 'undefined'\n    ? document.domain && activeXDocument\n      ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n      : NullProtoObjectViaIFrame()\n    : NullProtoObjectViaActiveX(activeXDocument); // WSH\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n"
  },
  {
    "path": "packages/core-js/internals/object-define-properties.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var props = toIndexedObject(Properties);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n  return O;\n};\n"
  },
  {
    "path": "packages/core-js/internals/object-define-property.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n    var current = $getOwnPropertyDescriptor(O, P);\n    if (current && current[WRITABLE]) {\n      O[P] = Attributes.value;\n      Attributes = {\n        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n        writable: false\n      };\n    }\n  } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n"
  },
  {
    "path": "packages/core-js/internals/object-get-own-property-descriptor.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPropertyKey(P);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n"
  },
  {
    "path": "packages/core-js/internals/object-get-own-property-names-external.js",
    "content": "'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return $getOwnPropertyNames(it);\n  } catch (error) {\n    return arraySlice(windowNames);\n  }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && classof(it) === 'Window'\n    ? getWindowNames(it)\n    : $getOwnPropertyNames(toIndexedObject(it));\n};\n"
  },
  {
    "path": "packages/core-js/internals/object-get-own-property-names.js",
    "content": "'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n"
  },
  {
    "path": "packages/core-js/internals/object-get-own-property-symbols.js",
    "content": "'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n"
  },
  {
    "path": "packages/core-js/internals/object-get-prototype-of.js",
    "content": "'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n  var object = toObject(O);\n  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n  var constructor = object.constructor;\n  if (isCallable(constructor) && object instanceof constructor) {\n    return constructor.prototype;\n  } return object instanceof $Object ? ObjectPrototype : null;\n};\n"
  },
  {
    "path": "packages/core-js/internals/object-is-extensible.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n  if (!isObject(it)) return false;\n  if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n  return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n"
  },
  {
    "path": "packages/core-js/internals/object-is-prototype-of.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n"
  },
  {
    "path": "packages/core-js/internals/object-iterator.js",
    "content": "'use strict';\nvar InternalStateModule = require('../internals/internal-state');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar hasOwn = require('../internals/has-own-property');\nvar objectKeys = require('../internals/object-keys');\nvar toObject = require('../internals/to-object');\n\nvar OBJECT_ITERATOR = 'Object Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(OBJECT_ITERATOR);\n\nmodule.exports = createIteratorConstructor(function ObjectIterator(source, mode) {\n  var object = toObject(source);\n  setInternalState(this, {\n    type: OBJECT_ITERATOR,\n    mode: mode,\n    object: object,\n    keys: objectKeys(object),\n    index: 0\n  });\n}, 'Object', function next() {\n  var state = getInternalState(this);\n  var keys = state.keys;\n  while (true) {\n    if (keys === null || state.index >= keys.length) {\n      state.object = state.keys = null;\n      return createIterResultObject(undefined, true);\n    }\n    var key = keys[state.index++];\n    var object = state.object;\n    if (!hasOwn(object, key)) continue;\n    switch (state.mode) {\n      case 'keys': return createIterResultObject(key, false);\n      case 'values': return createIterResultObject(object[key], false);\n    } /* entries */ return createIterResultObject([key, object[key]], false);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/internals/object-keys-internal.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (hasOwn(O, key = names[i++])) {\n    ~indexOf(result, key) || push(result, key);\n  }\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/object-keys.js",
    "content": "'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n"
  },
  {
    "path": "packages/core-js/internals/object-property-is-enumerable.js",
    "content": "'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n"
  },
  {
    "path": "packages/core-js/internals/object-prototype-accessors-forced.js",
    "content": "'use strict';\n/* eslint-disable no-undef, no-useless-call, sonarjs/no-reference-error -- required for testing */\n/* eslint-disable es/no-legacy-object-prototype-accessor-methods -- required for testing */\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\n// Forced replacement object prototype accessors methods\nmodule.exports = IS_PURE || !fails(function () {\n  // This feature detection crashes old WebKit\n  // https://github.com/zloirock/core-js/issues/232\n  if (WEBKIT && WEBKIT < 535) return;\n  var key = Math.random();\n  // In FF throws only define methods\n  __defineSetter__.call(null, key, function () { /* empty */ });\n  delete globalThis[key];\n});\n"
  },
  {
    "path": "packages/core-js/internals/object-set-prototype-of.js",
    "content": "'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n    setter(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    requireObjectCoercible(O);\n    aPossiblePrototype(proto);\n    if (!isObject(O)) return O;\n    if (CORRECT_SETTER) setter(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n"
  },
  {
    "path": "packages/core-js/internals/object-to-array.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-create -- safe\n  var O = Object.create(null);\n  O[2] = 2;\n  return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n  return function (it) {\n    var O = toIndexedObject(it);\n    var keys = objectKeys(O);\n    var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n    var length = keys.length;\n    var i = 0;\n    var result = [];\n    var key;\n    while (length > i) {\n      key = keys[i++];\n      if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n        push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n      }\n    }\n    return result;\n  };\n};\n\nmodule.exports = {\n  // `Object.entries` method\n  // https://tc39.es/ecma262/#sec-object.entries\n  entries: createMethod(true),\n  // `Object.values` method\n  // https://tc39.es/ecma262/#sec-object.values\n  values: createMethod(false)\n};\n"
  },
  {
    "path": "packages/core-js/internals/object-to-string.js",
    "content": "'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n  return '[object ' + classof(this) + ']';\n};\n"
  },
  {
    "path": "packages/core-js/internals/ordinary-to-primitive.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n  var fn, val;\n  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  throw new $TypeError(\"Can't convert object to primitive value\");\n};\n"
  },
  {
    "path": "packages/core-js/internals/own-keys.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n"
  },
  {
    "path": "packages/core-js/internals/parse-json-string.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\n\nvar $SyntaxError = SyntaxError;\nvar $parseInt = parseInt;\nvar fromCharCode = String.fromCharCode;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar codePoints = {\n  '\\\\\"': '\"',\n  '\\\\\\\\': '\\\\',\n  '\\\\/': '/',\n  '\\\\b': '\\b',\n  '\\\\f': '\\f',\n  '\\\\n': '\\n',\n  '\\\\r': '\\r',\n  '\\\\t': '\\t'\n};\n\nvar IS_4_HEX_DIGITS = /^[\\da-f]{4}$/i;\n// eslint-disable-next-line regexp/no-control-character -- safe\nvar IS_C0_CONTROL_CODE = /^[\\u0000-\\u001F]$/;\n\nmodule.exports = function (source, i) {\n  var unterminated = true;\n  var value = '';\n  while (i < source.length) {\n    var chr = at(source, i);\n    if (chr === '\\\\') {\n      var twoChars = slice(source, i, i + 2);\n      if (hasOwn(codePoints, twoChars)) {\n        value += codePoints[twoChars];\n        i += 2;\n      } else if (twoChars === '\\\\u') {\n        i += 2;\n        var fourHexDigits = slice(source, i, i + 4);\n        if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i);\n        value += fromCharCode($parseInt(fourHexDigits, 16));\n        i += 4;\n      } else throw new $SyntaxError('Unknown escape sequence: \"' + twoChars + '\"');\n    } else if (chr === '\"') {\n      unterminated = false;\n      i++;\n      break;\n    } else {\n      if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i);\n      value += chr;\n      i++;\n    }\n  }\n  if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i);\n  return { value: value, end: i };\n};\n"
  },
  {
    "path": "packages/core-js/internals/path.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis;\n"
  },
  {
    "path": "packages/core-js/internals/perform.js",
    "content": "'use strict';\nmodule.exports = function (exec) {\n  try {\n    return { error: false, value: exec() };\n  } catch (error) {\n    return { error: true, value: error };\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/promise-constructor-detection.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ENVIRONMENT = require('../internals/environment');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n  var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n  var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\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 (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n  // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n  if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['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 || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n    // Detect correctness of subclassing with @@species support\n    var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n    var FakePromise = function (exec) {\n      exec(function () { /* empty */ }, function () { /* empty */ });\n    };\n    var constructor = promise.constructor = {};\n    constructor[SPECIES] = FakePromise;\n    SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n    if (!SUBCLASSING) return true;\n  // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n  } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n  CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n  REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n  SUBCLASSING: SUBCLASSING\n};\n"
  },
  {
    "path": "packages/core-js/internals/promise-native-constructor.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis.Promise;\n"
  },
  {
    "path": "packages/core-js/internals/promise-resolve.js",
    "content": "'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n"
  },
  {
    "path": "packages/core-js/internals/promise-statics-incorrect-iteration.js",
    "content": "'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n  NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n"
  },
  {
    "path": "packages/core-js/internals/proxy-accessor.js",
    "content": "'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n  key in Target || defineProperty(Target, key, {\n    configurable: true,\n    get: function () { return Source[key]; },\n    set: function (it) { Source[key] = it; }\n  });\n};\n"
  },
  {
    "path": "packages/core-js/internals/queue.js",
    "content": "'use strict';\nvar Queue = function () {\n  this.head = null;\n  this.tail = null;\n};\n\nQueue.prototype = {\n  add: function (item) {\n    var entry = { item: item, next: null };\n    var tail = this.tail;\n    if (tail) tail.next = entry;\n    else this.head = entry;\n    this.tail = entry;\n  },\n  get: function () {\n    var entry = this.head;\n    if (entry) {\n      var next = this.head = entry.next;\n      if (next === null) this.tail = null;\n      return entry.item;\n    }\n  }\n};\n\nmodule.exports = Queue;\n"
  },
  {
    "path": "packages/core-js/internals/reflect-metadata.js",
    "content": "'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.map');\nrequire('../modules/es.weak-map');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar shared = require('../internals/shared');\n\nvar Map = getBuiltIn('Map');\nvar WeakMap = getBuiltIn('WeakMap');\nvar push = uncurryThis([].push);\n\nvar metadata = shared('metadata');\nvar store = metadata.store || (metadata.store = new WeakMap());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n  var targetMetadata = store.get(target);\n  if (!targetMetadata) {\n    if (!create) return;\n    store.set(target, targetMetadata = new Map());\n  }\n  var keyMetadata = targetMetadata.get(targetKey);\n  if (!keyMetadata) {\n    if (!create) return;\n    targetMetadata.set(targetKey, keyMetadata = new Map());\n  } return keyMetadata;\n};\n\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n  var metadataMap = getOrCreateMetadataMap(O, P, false);\n  return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\n\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n  var metadataMap = getOrCreateMetadataMap(O, P, false);\n  return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\n\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n  getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\n\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n  var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n  var keys = [];\n  if (metadataMap) metadataMap.forEach(function (_, key) { push(keys, key); });\n  return keys;\n};\n\nvar toMetadataKey = function (it) {\n  return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\n\nmodule.exports = {\n  store: store,\n  getMap: getOrCreateMetadataMap,\n  has: ordinaryHasOwnMetadata,\n  get: ordinaryGetOwnMetadata,\n  set: ordinaryDefineOwnMetadata,\n  keys: ordinaryOwnMetadataKeys,\n  toKey: toMetadataKey\n};\n"
  },
  {
    "path": "packages/core-js/internals/regexp-exec-abstract.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (isCallable(exec)) {\n    var result = call(exec, R, S);\n    if (result !== null) anObject(result);\n    return result;\n  }\n  if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n  throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n"
  },
  {
    "path": "packages/core-js/internals/regexp-exec.js",
    "content": "'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/;\n  var re2 = /b*/g;\n  call(nativeExec, re1, 'a');\n  call(nativeExec, re2, 'a');\n  return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nvar setGroups = function (re, groups) {\n  var object = re.groups = create(null);\n  for (var i = 0; i < groups.length; i++) {\n    var group = groups[i];\n    object[group[0]] = re[group[1]];\n  }\n};\n\nif (PATCH) {\n  patchedExec = function exec(string) {\n    var re = this;\n    var state = getInternalState(re);\n    var str = toString(string);\n    var raw = state.raw;\n    var result, reCopy, lastIndex;\n\n    if (raw) {\n      raw.lastIndex = re.lastIndex;\n      result = call(patchedExec, raw, str);\n      re.lastIndex = raw.lastIndex;\n\n      if (result && state.groups) setGroups(result, state.groups);\n\n      return result;\n    }\n\n    var groups = state.groups;\n    var sticky = UNSUPPORTED_Y && re.sticky;\n    var flags = call(regexpFlags, re);\n    var source = re.source;\n    var charsAdded = 0;\n    var strCopy = str;\n\n    if (sticky) {\n      flags = replace(flags, 'y', '');\n      if (indexOf(flags, 'g') === -1) {\n        flags += 'g';\n      }\n\n      strCopy = stringSlice(str, re.lastIndex);\n      // Support anchored sticky behavior.\n      var prevChar = re.lastIndex > 0 && charAt(str, re.lastIndex - 1);\n      if (re.lastIndex > 0 &&\n        (!re.multiline || re.multiline && prevChar !== '\\n' && prevChar !== '\\r' && prevChar !== '\\u2028' && prevChar !== '\\u2029')) {\n        source = '(?: (?:' + source + '))';\n        strCopy = ' ' + strCopy;\n        charsAdded++;\n      }\n      // ^(? + rx + ) is needed, in combination with some str slicing, to\n      // simulate the 'y' flag.\n      reCopy = new RegExp('^(?:' + source + ')', flags);\n    }\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n    var match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n    if (sticky) {\n      if (match) {\n        match.input = str;\n        match[0] = stringSlice(match[0], charsAdded);\n        match.index = re.lastIndex;\n        re.lastIndex += match[0].length;\n      } else re.lastIndex = 0;\n    } else if (UPDATES_LAST_INDEX_WRONG && match) {\n      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n      call(nativeReplace, match[0], reCopy, function () {\n        for (var i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    if (match && groups) setGroups(match, groups);\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n"
  },
  {
    "path": "packages/core-js/internals/regexp-flags-detection.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = globalThis.RegExp;\n\nvar FLAGS_GETTER_IS_CORRECT = !fails(function () {\n  var INDICES_SUPPORT = true;\n  try {\n    RegExp('.', 'd');\n  } catch (error) {\n    INDICES_SUPPORT = false;\n  }\n\n  var O = {};\n  // modern V8 bug\n  var calls = '';\n  var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n  var addGetter = function (key, chr) {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty(O, key, { get: function () {\n      calls += chr;\n      return true;\n    } });\n  };\n\n  var pairs = {\n    dotAll: 's',\n    global: 'g',\n    ignoreCase: 'i',\n    multiline: 'm',\n    sticky: 'y'\n  };\n\n  if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n  for (var key in pairs) addGetter(key, pairs[key]);\n\n  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n  var result = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(O);\n\n  return result !== expected || calls !== expected;\n});\n\nmodule.exports = { correct: FLAGS_GETTER_IS_CORRECT };\n"
  },
  {
    "path": "packages/core-js/internals/regexp-flags.js",
    "content": "'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.hasIndices) result += 'd';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.unicodeSets) result += 'v';\n  if (that.sticky) result += 'y';\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/regexp-get-flags.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlagsDetection = require('../internals/regexp-flags-detection');\nvar regExpFlagsGetterImplementation = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = regExpFlagsDetection.correct ? function (it) {\n  return it.flags;\n} : function (it) {\n  return (!regExpFlagsDetection.correct && isPrototypeOf(RegExpPrototype, it) && !hasOwn(it, 'flags'))\n    ? call(regExpFlagsGetterImplementation, it)\n    : it.flags;\n};\n"
  },
  {
    "path": "packages/core-js/internals/regexp-sticky-helpers.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n  var re = $RegExp('a', 'y');\n  re.lastIndex = 2;\n  return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n  return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n  var re = $RegExp('^r', 'gy');\n  re.lastIndex = 2;\n  return re.exec('str') !== null;\n});\n\nmodule.exports = {\n  BROKEN_CARET: BROKEN_CARET,\n  MISSED_STICKY: MISSED_STICKY,\n  UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n"
  },
  {
    "path": "packages/core-js/internals/regexp-unsupported-dot-all.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n  var re = $RegExp('.', 's');\n  return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n"
  },
  {
    "path": "packages/core-js/internals/regexp-unsupported-ncg.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n  var re = $RegExp('(?<a>b)', 'g');\n  return re.exec('b').groups.a !== 'b' ||\n    'b'.replace(re, '$<a>c') !== 'bc';\n});\n"
  },
  {
    "path": "packages/core-js/internals/require-object-coercible.js",
    "content": "'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n  return it;\n};\n"
  },
  {
    "path": "packages/core-js/internals/safe-get-built-in.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n  if (!DESCRIPTORS) return globalThis[name];\n  var descriptor = getOwnPropertyDescriptor(globalThis, name);\n  return descriptor && descriptor.value;\n};\n"
  },
  {
    "path": "packages/core-js/internals/same-value-zero.js",
    "content": "'use strict';\n// `SameValueZero` abstract operation\n// https://tc39.es/ecma262/#sec-samevaluezero\nmodule.exports = function (x, y) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return x === y || x !== x && y !== y;\n};\n"
  },
  {
    "path": "packages/core-js/internals/same-value.js",
    "content": "'use strict';\n// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y;\n};\n"
  },
  {
    "path": "packages/core-js/internals/schedulers-fix.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENVIRONMENT = require('../internals/environment');\nvar USER_AGENT = require('../internals/environment-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = globalThis.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENVIRONMENT === 'BUN' && (function () {\n  var version = globalThis.Bun.version.split('.');\n  return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n  var firstParamIndex = hasTimeArg ? 2 : 1;\n  return WRAP ? function (handler, timeout /* , ...arguments */) {\n    var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n    var fn = isCallable(handler) ? handler : Function(handler);\n    var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n    var callback = boundArgs ? function () {\n      apply(fn, this, params);\n    } : fn;\n    return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n  } : scheduler;\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-clone.js",
    "content": "'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n  var result = new Set();\n  iterate(set, function (it) {\n    add(result, it);\n  });\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-difference.js",
    "content": "'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\nmodule.exports = function difference(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  var result = clone(O);\n  if (size(result) <= otherRec.size) iterateSet(result, function (e) {\n    if (otherRec.includes(e)) remove(result, e);\n  });\n  else iterateSimple(otherRec.getIterator(), function (e) {\n    if (has(result, e)) remove(result, e);\n  });\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-helpers.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n  // eslint-disable-next-line es/no-set -- safe\n  Set: Set,\n  add: uncurryThis(SetPrototype.add),\n  has: uncurryThis(SetPrototype.has),\n  remove: uncurryThis(SetPrototype['delete']),\n  proto: SetPrototype\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-intersection.js",
    "content": "'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\nmodule.exports = function intersection(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  var result = new Set();\n\n  if (size(O) > otherRec.size) {\n    iterateSimple(otherRec.getIterator(), function (e) {\n      if (has(O, e)) add(result, e);\n    });\n  } else {\n    iterateSet(O, function (e) {\n      if (otherRec.includes(e)) add(result, e);\n    });\n  }\n\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-is-disjoint-from.js",
    "content": "'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\nmodule.exports = function isDisjointFrom(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n    if (otherRec.includes(e)) return false;\n  }, true) !== false;\n  var iterator = otherRec.getIterator();\n  return iterateSimple(iterator, function (e) {\n    if (has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);\n  }) !== false;\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-is-subset-of.js",
    "content": "'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\nmodule.exports = function isSubsetOf(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) > otherRec.size) return false;\n  return iterate(O, function (e) {\n    if (!otherRec.includes(e)) return false;\n  }, true) !== false;\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-is-superset-of.js",
    "content": "'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\nmodule.exports = function isSupersetOf(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) < otherRec.size) return false;\n  var iterator = otherRec.getIterator();\n  return iterateSimple(iterator, function (e) {\n    if (!has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);\n  }) !== false;\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-iterate.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n  return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-method-accept-set-like.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n  return {\n    size: size,\n    has: function () {\n      return false;\n    },\n    keys: function () {\n      return {\n        next: function () {\n          return { done: true };\n        }\n      };\n    }\n  };\n};\n\nvar createSetLikeWithInfinitySize = function (size) {\n  return {\n    size: size,\n    has: function () {\n      return true;\n    },\n    keys: function () {\n      throw new Error('e');\n    }\n  };\n};\n\nmodule.exports = function (name, callback) {\n  var Set = getBuiltIn('Set');\n  try {\n    new Set()[name](createSetLike(0));\n    try {\n      // late spec change, early WebKit ~ Safari 17 implementation does not pass it\n      // https://github.com/tc39/proposal-set-methods/pull/88\n      // also covered engines with\n      // https://bugs.webkit.org/show_bug.cgi?id=272679\n      new Set()[name](createSetLike(-1));\n      return false;\n    } catch (error2) {\n      if (!callback) return true;\n      // early V8 implementation bug\n      // https://issues.chromium.org/issues/351332634\n      try {\n        new Set()[name](createSetLikeWithInfinitySize(-Infinity));\n        return false;\n      } catch (error) {\n        var set = new Set([1, 2]);\n        return callback(set[name](createSetLikeWithInfinitySize(Infinity)));\n      }\n    }\n  } catch (error) {\n    return false;\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-method-get-keys-before-cloning-detection.js",
    "content": "'use strict';\n// Should get iterator record of a set-like object before cloning this\n// https://bugs.webkit.org/show_bug.cgi?id=289430\nmodule.exports = function (METHOD_NAME) {\n  try {\n    // eslint-disable-next-line es/no-set -- needed for test\n    var baseSet = new Set();\n    var setLike = {\n      size: 0,\n      has: function () { return true; },\n      keys: function () {\n        // eslint-disable-next-line es/no-object-defineproperty -- needed for test\n        return Object.defineProperty({}, 'next', {\n          get: function () {\n            baseSet.clear();\n            baseSet.add(4);\n            return function () {\n              return { done: true };\n            };\n          }\n        });\n      }\n    };\n    var result = baseSet[METHOD_NAME](setLike);\n\n    return result.size === 1 && result.values().next().value === 4;\n  } catch (error) {\n    return false;\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-size.js",
    "content": "'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n  return set.size;\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-species.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineBuiltInAccessor(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-symmetric-difference.js",
    "content": "'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\nmodule.exports = function symmetricDifference(other) {\n  var O = aSet(this);\n  var keysIter = getSetRecord(other).getIterator();\n  var result = clone(O);\n  iterateSimple(keysIter, function (e) {\n    if (has(O, e)) remove(result, e);\n    else add(result, e);\n  });\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-to-string-tag.js",
    "content": "'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n  if (target && !STATIC) target = target.prototype;\n  if (target && !hasOwn(target, TO_STRING_TAG)) {\n    defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/set-union.js",
    "content": "'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\nmodule.exports = function union(other) {\n  var O = aSet(this);\n  var keysIter = getSetRecord(other).getIterator();\n  var result = clone(O);\n  iterateSimple(keysIter, function (it) {\n    add(result, it);\n  });\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/shared-key.js",
    "content": "'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n"
  },
  {
    "path": "packages/core-js/internals/shared-store.js",
    "content": "'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n  version: '3.49.0',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',\n  license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE',\n  source: 'https://github.com/zloirock/core-js'\n});\n"
  },
  {
    "path": "packages/core-js/internals/shared.js",
    "content": "'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n  return store[key] || (store[key] = value || {});\n};\n"
  },
  {
    "path": "packages/core-js/internals/species-constructor.js",
    "content": "'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n"
  },
  {
    "path": "packages/core-js/internals/string-cooked.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\nvar push = uncurryThis([].push);\nvar join = uncurryThis([].join);\n\n// `String.cooked` method\n// https://tc39.es/proposal-string-cooked/\nmodule.exports = function cooked(template /* , ...substitutions */) {\n  var cookedTemplate = toIndexedObject(template);\n  var literalSegments = lengthOfArrayLike(cookedTemplate);\n  if (!literalSegments) return '';\n  var argumentsLength = arguments.length;\n  var elements = [];\n  var i = 0;\n  while (true) {\n    var nextVal = cookedTemplate[i++];\n    if (nextVal === undefined) throw new $TypeError('Incorrect template');\n    push(elements, toString(nextVal));\n    if (i === literalSegments) return join(elements, '');\n    if (i < argumentsLength) push(elements, toString(arguments[i]));\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/string-html-forced.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    var test = ''[METHOD_NAME]('\"');\n    return test !== test.toLowerCase() || test.split('\"').length > 3;\n  });\n};\n"
  },
  {
    "path": "packages/core-js/internals/string-multibyte.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = toString(requireObjectCoercible($this));\n    var position = toIntegerOrInfinity(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = charCodeAt(S, position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING\n          ? charAt(S, position)\n          : first\n        : CONVERT_TO_STRING\n          ? stringSlice(S, position, position + 2)\n          : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n"
  },
  {
    "path": "packages/core-js/internals/string-pad-webkit-bug.js",
    "content": "'use strict';\n// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n"
  },
  {
    "path": "packages/core-js/internals/string-pad.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n  return function ($this, maxLength, fillString) {\n    var S = toString(requireObjectCoercible($this));\n    var intMaxLength = toLength(maxLength);\n    var stringLength = S.length;\n    if (intMaxLength <= stringLength) return S;\n    var fillStr = fillString === undefined ? ' ' : toString(fillString);\n    var fillLen, stringFiller;\n    if (fillStr === '') return S;\n    fillLen = intMaxLength - stringLength;\n    stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n    if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n    return IS_END ? S + stringFiller : stringFiller + S;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.padStart` method\n  // https://tc39.es/ecma262/#sec-string.prototype.padstart\n  start: createMethod(false),\n  // `String.prototype.padEnd` method\n  // https://tc39.es/ecma262/#sec-string.prototype.padend\n  end: createMethod(true)\n};\n"
  },
  {
    "path": "packages/core-js/internals/string-parse.js",
    "content": "'use strict';\n// adapted from https://github.com/jridgewell/string-dedent\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar fromCharCode = String.fromCharCode;\nvar fromCodePoint = getBuiltIn('String', 'fromCodePoint');\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar ZERO_CODE = 48;\nvar NINE_CODE = 57;\nvar LOWER_A_CODE = 97;\nvar LOWER_F_CODE = 102;\nvar UPPER_A_CODE = 65;\nvar UPPER_F_CODE = 70;\n\nvar isDigit = function (str, index) {\n  var c = charCodeAt(str, index);\n  return c >= ZERO_CODE && c <= NINE_CODE;\n};\n\nvar parseHex = function (str, index, end) {\n  if (end > str.length || index >= end) return -1;\n  var n = 0;\n  for (; index < end; index++) {\n    var c = hexToInt(charCodeAt(str, index));\n    if (c === -1) return -1;\n    n = n * 16 + c;\n  }\n  return n;\n};\n\nvar hexToInt = function (c) {\n  if (c >= ZERO_CODE && c <= NINE_CODE) return c - ZERO_CODE;\n  if (c >= LOWER_A_CODE && c <= LOWER_F_CODE) return c - LOWER_A_CODE + 10;\n  if (c >= UPPER_A_CODE && c <= UPPER_F_CODE) return c - UPPER_A_CODE + 10;\n  return -1;\n};\n\nmodule.exports = function (raw) {\n  var out = '';\n  var start = 0;\n  // We need to find every backslash escape sequence, and cook the escape into a real char.\n  var i = 0;\n  var n;\n  while ((i = stringIndexOf(raw, '\\\\', i)) > -1) {\n    out += stringSlice(raw, start, i);\n    // If the backslash is the last char of the string, then it was an invalid sequence.\n    // This can't actually happen in a tagged template literal, but could happen if you manually\n    // invoked the tag with an array.\n    if (++i === raw.length) return;\n    var next = charAt(raw, i++);\n    switch (next) {\n      // Escaped control codes need to be individually processed.\n      case 'b':\n        out += '\\b';\n        break;\n      case 't':\n        out += '\\t';\n        break;\n      case 'n':\n        out += '\\n';\n        break;\n      case 'v':\n        out += '\\v';\n        break;\n      case 'f':\n        out += '\\f';\n        break;\n      case 'r':\n        out += '\\r';\n        break;\n      // Escaped line terminators just skip the char.\n      case '\\r':\n        // Treat `\\r\\n` as a single terminator.\n        if (i < raw.length && charAt(raw, i) === '\\n') ++i;\n      // break omitted\n      case '\\n':\n      case '\\u2028':\n      case '\\u2029':\n        break;\n      // `\\0` is a null control char, but `\\0` followed by another digit is an illegal octal escape.\n      case '0':\n        if (isDigit(raw, i)) return;\n        out += '\\0';\n        break;\n      // Hex escapes must contain 2 hex chars.\n      case 'x':\n        n = parseHex(raw, i, i + 2);\n        if (n === -1) return;\n        i += 2;\n        out += fromCharCode(n);\n        break;\n      // Unicode escapes contain either 4 chars, or an unlimited number between `{` and `}`.\n      // The hex value must not overflow 0x10FFFF.\n      case 'u':\n        if (i < raw.length && charAt(raw, i) === '{') {\n          var end = stringIndexOf(raw, '}', ++i);\n          if (end === -1) return;\n          n = parseHex(raw, i, end);\n          i = end + 1;\n        } else {\n          n = parseHex(raw, i, i + 4);\n          i += 4;\n        }\n        if (n === -1 || n > 0x10FFFF) return;\n        out += fromCodePoint(n);\n        break;\n      default:\n        if (isDigit(next, 0)) return;\n        out += next;\n    }\n    start = i;\n  }\n  return out + stringSlice(raw, start);\n};\n"
  },
  {
    "path": "packages/core-js/internals/string-punycode-to-ascii.js",
    "content": "'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n  var output = [];\n  var counter = 0;\n  var length = string.length;\n  while (counter < length) {\n    var value = charCodeAt(string, counter++);\n    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n      // It's a high surrogate, and there is a next character.\n      var extra = charCodeAt(string, counter++);\n      if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n        push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n      } else {\n        // It's an unmatched surrogate; only append this code unit, in case the\n        // next code unit is the high surrogate of a surrogate pair.\n        push(output, value);\n        counter--;\n      }\n    } else {\n      push(output, value);\n    }\n  }\n  return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n  //  0..25 map to ASCII a..z or A..Z\n  // 26..35 map to ASCII 0..9\n  return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n  var k = 0;\n  delta = firstTime ? floor(delta / damp) : delta >> 1;\n  delta += floor(delta / numPoints);\n  while (delta > baseMinusTMin * tMax >> 1) {\n    delta = floor(delta / baseMinusTMin);\n    k += base;\n  }\n  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n  var output = [];\n\n  // Convert the input in UCS-2 to an array of Unicode code points.\n  input = ucs2decode(input);\n\n  // Cache the length.\n  var inputLength = input.length;\n\n  // Initialize the state.\n  var n = initialN;\n  var delta = 0;\n  var bias = initialBias;\n  var i, currentValue;\n\n  // Handle the basic code points.\n  for (i = 0; i < input.length; i++) {\n    currentValue = input[i];\n    if (currentValue < 0x80) {\n      push(output, fromCharCode(currentValue));\n    }\n  }\n\n  var basicLength = output.length; // number of basic code points.\n  var handledCPCount = basicLength; // number of code points that have been handled;\n\n  // Finish the basic string with a delimiter unless it's empty.\n  if (basicLength) {\n    push(output, delimiter);\n  }\n\n  // Main encoding loop:\n  while (handledCPCount < inputLength) {\n    // All non-basic code points < n have been handled already. Find the next larger one:\n    var m = maxInt;\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue >= n && currentValue < m) {\n        m = currentValue;\n      }\n    }\n\n    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n    var handledCPCountPlusOne = handledCPCount + 1;\n    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n      throw new $RangeError(OVERFLOW_ERROR);\n    }\n\n    delta += (m - n) * handledCPCountPlusOne;\n    n = m;\n\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue < n && ++delta > maxInt) {\n        throw new $RangeError(OVERFLOW_ERROR);\n      }\n      if (currentValue === n) {\n        // Represent delta as a generalized variable-length integer.\n        var q = delta;\n        var k = base;\n        while (true) {\n          var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n          if (q < t) break;\n          var qMinusT = q - t;\n          var baseMinusT = base - t;\n          push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n          q = floor(qMinusT / baseMinusT);\n          k += base;\n        }\n\n        push(output, fromCharCode(digitToBasic(q)));\n        bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n        delta = 0;\n        handledCPCount++;\n      }\n    }\n\n    delta++;\n    n++;\n  }\n  return join(output, '');\n};\n\nmodule.exports = function (input) {\n  var encoded = [];\n  var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n  var i, label;\n  for (i = 0; i < labels.length; i++) {\n    label = labels[i];\n    push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n  }\n  return join(encoded, '.');\n};\n"
  },
  {
    "path": "packages/core-js/internals/string-repeat.js",
    "content": "'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\nvar floor = Math.floor;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n  var str = toString(requireObjectCoercible(this));\n  var result = '';\n  var n = toIntegerOrInfinity(count);\n  if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');\n  for (;n > 0; (n = floor(n / 2)) && (str += str)) if (n % 2) result += str;\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/string-trim-end.js",
    "content": "'use strict';\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimEnd, trimRight }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// https://tc39.es/ecma262/#String.prototype.trimright\nmodule.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() {\n  return $trimEnd(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimEnd;\n"
  },
  {
    "path": "packages/core-js/internals/string-trim-forced.js",
    "content": "'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    return !!whitespaces[METHOD_NAME]()\n      || non[METHOD_NAME]() !== non\n      || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n  });\n};\n"
  },
  {
    "path": "packages/core-js/internals/string-trim-start.js",
    "content": "'use strict';\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimStart, trimLeft }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\nmodule.exports = forcedStringTrimMethod('trimStart') ? function trimStart() {\n  return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n"
  },
  {
    "path": "packages/core-js/internals/string-trim.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n  return function ($this) {\n    var string = toString(requireObjectCoercible($this));\n    if (TYPE & 1) string = replace(string, ltrim, '');\n    if (TYPE & 2) string = replace(string, rtrim, '$1');\n    return string;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.{ trimLeft, trimStart }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n  start: createMethod(1),\n  // `String.prototype.{ trimRight, trimEnd }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimend\n  end: createMethod(2),\n  // `String.prototype.trim` method\n  // https://tc39.es/ecma262/#sec-string.prototype.trim\n  trim: createMethod(3)\n};\n"
  },
  {
    "path": "packages/core-js/internals/structured-clone-proper-transfer.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/environment-v8-version');\nvar ENVIRONMENT = require('../internals/environment');\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n  // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n  var buffer = new ArrayBuffer(8);\n  var clone = structuredClone(buffer, { transfer: [buffer] });\n  return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n"
  },
  {
    "path": "packages/core-js/internals/symbol-constructor-detection.js",
    "content": "'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol('symbol detection');\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n  // of course, fail.\n  return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n"
  },
  {
    "path": "packages/core-js/internals/symbol-define-to-primitive.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n  var Symbol = getBuiltIn('Symbol');\n  var SymbolPrototype = Symbol && Symbol.prototype;\n  var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n  var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n  if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n    // `Symbol.prototype[@@toPrimitive]` method\n    // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n    // eslint-disable-next-line no-unused-vars -- required for .length\n    defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n      return call(valueOf, this);\n    }, { arity: 1 });\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/symbol-is-registered.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Symbol = getBuiltIn('Symbol');\nvar keyFor = Symbol.keyFor;\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\nmodule.exports = Symbol.isRegisteredSymbol || function isRegisteredSymbol(value) {\n  try {\n    return keyFor(thisSymbolValue(value)) !== undefined;\n  } catch (error) {\n    return false;\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/symbol-is-well-known.js",
    "content": "'use strict';\nvar shared = require('../internals/shared');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isSymbol = require('../internals/is-symbol');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Symbol = getBuiltIn('Symbol');\nvar $isWellKnownSymbol = Symbol.isWellKnownSymbol;\nvar getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\nvar WellKnownSymbolsStore = shared('wks');\n\nfor (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {\n  // some old engines throws on access to some keys like `arguments` or `caller`\n  try {\n    var symbolKey = symbolKeys[i];\n    if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);\n  } catch (error) { /* empty */ }\n}\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\nmodule.exports = function isWellKnownSymbol(value) {\n  if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true;\n  try {\n    var symbol = thisSymbolValue(value);\n    for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {\n      // eslint-disable-next-line eqeqeq -- polyfilled symbols case\n      if (WellKnownSymbolsStore[keys[j]] == symbol) return true;\n    }\n  } catch (error) { /* empty */ }\n  return false;\n};\n"
  },
  {
    "path": "packages/core-js/internals/symbol-registry-detection.js",
    "content": "'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n"
  },
  {
    "path": "packages/core-js/internals/task.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n  // Deno throws a ReferenceError on `location` access without `--location` flag\n  $location = globalThis.location;\n});\n\nvar run = function (id) {\n  if (hasOwn(queue, id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\n\nvar eventListener = function (event) {\n  run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n  // old engines have not location.origin\n  globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(handler) {\n    validateArgumentsLength(arguments.length, 1);\n    var fn = isCallable(handler) ? handler : Function(handler);\n    var args = arraySlice(arguments, 1);\n    queue[++counter] = function () {\n      apply(fn, undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (IS_NODE) {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  // except iOS - https://github.com/zloirock/core-js/issues/624\n  } else if (MessageChannel && !IS_IOS) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = eventListener;\n    defer = bind(port.postMessage, port);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (\n    globalThis.addEventListener &&\n    isCallable(globalThis.postMessage) &&\n    !globalThis.importScripts &&\n    $location && $location.protocol !== 'file:' &&\n    !fails(globalPostMessageDefer)\n  ) {\n    defer = globalPostMessageDefer;\n    globalThis.addEventListener('message', eventListener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n"
  },
  {
    "path": "packages/core-js/internals/this-number-value.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.1.valueOf);\n"
  },
  {
    "path": "packages/core-js/internals/to-absolute-index.js",
    "content": "'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toIntegerOrInfinity(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-big-int.js",
    "content": "'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n  var prim = toPrimitive(argument, 'number');\n  if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n  // eslint-disable-next-line es/no-bigint -- safe\n  return BigInt(prim);\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-index.js",
    "content": "'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toIntegerOrInfinity(it);\n  var length = toLength(number);\n  if (number !== length) throw new $RangeError('Wrong length or index');\n  return length;\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-indexed-object.js",
    "content": "'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-integer-or-infinity.js",
    "content": "'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n  var number = +argument;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return number !== number || number === 0 ? 0 : trunc(number);\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-length.js",
    "content": "'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  var len = toIntegerOrInfinity(argument);\n  return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-object.js",
    "content": "'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return $Object(requireObjectCoercible(argument));\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-offset.js",
    "content": "'use strict';\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n  var offset = toPositiveInteger(it);\n  if (offset % BYTES) throw new $RangeError('Wrong offset');\n  return offset;\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-positive-integer.js",
    "content": "'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n  var result = toIntegerOrInfinity(it);\n  if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-primitive.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n  if (!isObject(input) || isSymbol(input)) return input;\n  var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n  var result;\n  if (exoticToPrim) {\n    if (pref === undefined) pref = 'default';\n    result = call(exoticToPrim, input, pref);\n    if (!isObject(result) || isSymbol(result)) return result;\n    throw new $TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-property-key.js",
    "content": "'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n  var key = toPrimitive(argument, 'string');\n  return isSymbol(key) ? key : key + '';\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-set-like.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isIterable = require('../internals/is-iterable');\nvar isObject = require('../internals/is-object');\n\nvar Set = getBuiltIn('Set');\n\nvar isSetLike = function (it) {\n  return isObject(it)\n    && typeof it.size == 'number'\n    && isCallable(it.has)\n    && isCallable(it.keys);\n};\n\n// fallback old -> new set methods proposal arguments\nmodule.exports = function (it) {\n  if (isSetLike(it)) return it;\n  return isIterable(it) ? new Set(it) : it;\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-string-tag-support.js",
    "content": "'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n"
  },
  {
    "path": "packages/core-js/internals/to-string.js",
    "content": "'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n  return $String(argument);\n};\n"
  },
  {
    "path": "packages/core-js/internals/to-uint8-clamped.js",
    "content": "'use strict';\nvar floor = Math.floor;\n\n// https://tc39.es/ecma262/#sec-touint8clamp\nmodule.exports = function (it) {\n  var number = +it;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (number !== number || number <= 0) return 0;\n  if (number >= 0xFF) return 0xFF;\n  var f = floor(number);\n  if (f + 0.5 < number) return f + 1;\n  if (number < f + 0.5) return f;\n  // round-half-to-even (banker's rounding)\n  return f % 2 === 0 ? f : f + 1;\n};\n"
  },
  {
    "path": "packages/core-js/internals/try-to-string.js",
    "content": "'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n  try {\n    return $String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n"
  },
  {
    "path": "packages/core-js/internals/typed-array-constructor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toUint8Clamped = require('../internals/to-uint8-clamped');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar enforceInternalState = InternalStateModule.enforce;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar RangeError = globalThis.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar addGetter = function (it, key) {\n  defineBuiltInAccessor(it, key, {\n    configurable: true,\n    get: function () {\n      return getInternalState(this)[key];\n    }\n  });\n};\n\nvar isArrayBuffer = function (it) {\n  var klass;\n  return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) === 'ArrayBuffer' || klass === 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n  return isTypedArray(target)\n    && !isSymbol(key)\n    && key in target\n    && isIntegralNumber(+key)\n    && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n  key = toPropertyKey(key);\n  return isTypedArrayIndex(target, key)\n    ? createPropertyDescriptor(2, target[key])\n    : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n  key = toPropertyKey(key);\n  if (isTypedArrayIndex(target, key)\n    && isObject(descriptor)\n    && hasOwn(descriptor, 'value')\n    && !hasOwn(descriptor, 'get')\n    && !hasOwn(descriptor, 'set')\n    // TODO: add validation descriptor w/o calling accessors\n    && !descriptor.configurable\n    && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n    && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n  ) {\n    target[key] = descriptor.value;\n    return target;\n  } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n  if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n    getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n    definePropertyModule.f = wrappedDefineProperty;\n    addGetter(TypedArrayPrototype, 'buffer');\n    addGetter(TypedArrayPrototype, 'byteOffset');\n    addGetter(TypedArrayPrototype, 'byteLength');\n    addGetter(TypedArrayPrototype, 'length');\n  }\n\n  $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n    getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n    defineProperty: wrappedDefineProperty\n  });\n\n  module.exports = function (TYPE, wrapper, CLAMPED) {\n    var BYTES = TYPE.match(/\\d+/)[0] / 8;\n    var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n    var GETTER = 'get' + TYPE;\n    var SETTER = 'set' + TYPE;\n    var NativeTypedArrayConstructor = globalThis[CONSTRUCTOR_NAME];\n    var TypedArrayConstructor = NativeTypedArrayConstructor;\n    var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n    var exported = {};\n\n    var getter = function (that, index) {\n      var data = getInternalState(that);\n      return data.view[GETTER](index * BYTES + data.byteOffset, true);\n    };\n\n    var setter = function (that, index, value) {\n      var data = getInternalState(that);\n      data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true);\n    };\n\n    var addElement = function (that, index) {\n      nativeDefineProperty(that, index, {\n        get: function () {\n          return getter(this, index);\n        },\n        set: function (value) {\n          return setter(this, index, value);\n        },\n        enumerable: true\n      });\n    };\n\n    if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n      TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n        anInstance(that, TypedArrayConstructorPrototype);\n        var index = 0;\n        var byteOffset = 0;\n        var buffer, byteLength, length;\n        if (!isObject(data)) {\n          length = toIndex(data);\n          byteLength = length * BYTES;\n          buffer = new ArrayBuffer(byteLength);\n        } else if (isArrayBuffer(data)) {\n          buffer = data;\n          byteOffset = toOffset(offset, BYTES);\n          var $len = data.byteLength;\n          if ($length === undefined) {\n            if ($len % BYTES) throw new RangeError(WRONG_LENGTH);\n            byteLength = $len - byteOffset;\n            if (byteLength < 0) throw new RangeError(WRONG_LENGTH);\n          } else {\n            byteLength = toIndex($length) * BYTES;\n            if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH);\n          }\n          length = byteLength / BYTES;\n        } else if (isTypedArray(data)) {\n          return arrayFromConstructorAndList(TypedArrayConstructor, data);\n        } else {\n          return call(typedArrayFrom, TypedArrayConstructor, data);\n        }\n        setInternalState(that, {\n          buffer: buffer,\n          byteOffset: byteOffset,\n          byteLength: byteLength,\n          length: length,\n          view: new DataView(buffer)\n        });\n        while (index < length) addElement(that, index++);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n    } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n      TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n        anInstance(dummy, TypedArrayConstructorPrototype);\n        return inheritIfRequired(function () {\n          if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n          if (isArrayBuffer(data)) return $length !== undefined\n            ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n            : typedArrayOffset !== undefined\n              ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n              : new NativeTypedArrayConstructor(data);\n          if (isTypedArray(data)) return arrayFromConstructorAndList(TypedArrayConstructor, data);\n          return call(typedArrayFrom, TypedArrayConstructor, data);\n        }(), dummy, TypedArrayConstructor);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n        if (!(key in TypedArrayConstructor)) {\n          createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n        }\n      });\n      TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n    }\n\n    if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n    }\n\n    enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor;\n\n    if (TYPED_ARRAY_TAG) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n    }\n\n    var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor;\n\n    exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n    $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported);\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n      createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    setSpecies(CONSTRUCTOR_NAME);\n  };\n} else module.exports = function () { /* empty */ };\n"
  },
  {
    "path": "packages/core-js/internals/typed-array-constructors-require-wrappers.js",
    "content": "'use strict';\n/* eslint-disable no-new, sonarjs/inconsistent-function-call -- required for testing */\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar Int8Array = globalThis.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n  Int8Array(1);\n}) || !fails(function () {\n  new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n  new Int8Array();\n  new Int8Array(null);\n  new Int8Array(1.5);\n  new Int8Array(iterable);\n}, true) || fails(function () {\n  // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n  return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n"
  },
  {
    "path": "packages/core-js/internals/typed-array-from-same-type-and-list.js",
    "content": "'use strict';\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar getTypedArrayConstructor = require('../internals/array-buffer-view-core').getTypedArrayConstructor;\n\nmodule.exports = function (instance, list) {\n  return arrayFromConstructorAndList(getTypedArrayConstructor(instance), list);\n};\n"
  },
  {
    "path": "packages/core-js/internals/typed-array-from.js",
    "content": "'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\nvar toBigInt = require('../internals/to-big-int');\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n  var C = aConstructor(this);\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  if (mapping) aCallable(mapfn);\n  var O = toObject(source);\n  var iteratorMethod = getIteratorMethod(O);\n  var i, length, result, thisIsBigIntArray, value, step, iterator, next;\n  if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n    iterator = getIterator(O, iteratorMethod);\n    next = iterator.next;\n    O = [];\n    while (!(step = call(next, iterator)).done) {\n      O.push(step.value);\n    }\n  }\n  if (mapping && argumentsLength > 2) {\n    mapfn = bind(mapfn, arguments[2]);\n  }\n  length = lengthOfArrayLike(O);\n  result = new (aTypedArrayConstructor(C))(length);\n  thisIsBigIntArray = isBigIntArray(result);\n  for (i = 0; length > i; i++) {\n    value = mapping ? mapfn(O[i], i) : O[i];\n    // FF30- typed arrays doesn't properly convert objects to typed array values\n    result[i] = thisIsBigIntArray ? toBigInt(value) : +value;\n  }\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js/internals/uid.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n"
  },
  {
    "path": "packages/core-js/internals/uint8-from-base64.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObjectOrUndefined = require('../internals/an-object-or-undefined');\nvar aString = require('../internals/a-string');\nvar hasOwn = require('../internals/has-own-property');\nvar base64Map = require('../internals/base64-map');\nvar getAlphabetOption = require('../internals/get-alphabet-option');\nvar notDetached = require('../internals/array-buffer-not-detached');\n\nvar base64Alphabet = base64Map.c2i;\nvar base64UrlAlphabet = base64Map.c2iUrl;\n\nvar SyntaxError = globalThis.SyntaxError;\nvar TypeError = globalThis.TypeError;\nvar at = uncurryThis(''.charAt);\n\nvar skipAsciiWhitespace = function (string, index) {\n  var length = string.length;\n  for (;index < length; index++) {\n    var chr = at(string, index);\n    if (chr !== ' ' && chr !== '\\t' && chr !== '\\n' && chr !== '\\f' && chr !== '\\r') break;\n  } return index;\n};\n\nvar decodeBase64Chunk = function (chunk, alphabet, throwOnExtraBits) {\n  var chunkLength = chunk.length;\n\n  if (chunkLength < 4) {\n    chunk += chunkLength === 2 ? 'AA' : 'A';\n  }\n\n  var triplet = (alphabet[at(chunk, 0)] << 18)\n    + (alphabet[at(chunk, 1)] << 12)\n    + (alphabet[at(chunk, 2)] << 6)\n    + alphabet[at(chunk, 3)];\n\n  var chunkBytes = [\n    (triplet >> 16) & 255,\n    (triplet >> 8) & 255,\n    triplet & 255\n  ];\n\n  if (chunkLength === 2) {\n    if (throwOnExtraBits && chunkBytes[1] !== 0) {\n      throw new SyntaxError('Extra bits');\n    }\n    return [chunkBytes[0]];\n  }\n\n  if (chunkLength === 3) {\n    if (throwOnExtraBits && chunkBytes[2] !== 0) {\n      throw new SyntaxError('Extra bits');\n    }\n    return [chunkBytes[0], chunkBytes[1]];\n  }\n\n  return chunkBytes;\n};\n\nvar writeBytes = function (bytes, elements, written) {\n  var elementsLength = elements.length;\n  for (var index = 0; index < elementsLength; index++) {\n    bytes[written + index] = elements[index];\n  }\n  return written + elementsLength;\n};\n\n/* eslint-disable max-statements, max-depth -- TODO */\nmodule.exports = function (string, options, into, maxLength) {\n  aString(string);\n  anObjectOrUndefined(options);\n  var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n  var lastChunkHandling = options ? options.lastChunkHandling : undefined;\n\n  if (lastChunkHandling === undefined) lastChunkHandling = 'loose';\n\n  if (lastChunkHandling !== 'loose' && lastChunkHandling !== 'strict' && lastChunkHandling !== 'stop-before-partial') {\n    throw new TypeError('Incorrect `lastChunkHandling` option');\n  }\n\n  if (into) notDetached(into.buffer);\n\n  var stringLength = string.length;\n  var bytes = into || [];\n  var written = 0;\n  var read = 0;\n  var chunk = '';\n  var index = 0;\n\n  if (maxLength) while (true) {\n    index = skipAsciiWhitespace(string, index);\n    if (index === stringLength) {\n      if (chunk.length > 0) {\n        if (lastChunkHandling === 'stop-before-partial') {\n          break;\n        }\n        if (lastChunkHandling === 'loose') {\n          if (chunk.length === 1) {\n            throw new SyntaxError('Malformed padding: exactly one additional character');\n          }\n          written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n        } else {\n          throw new SyntaxError('Missing padding');\n        }\n      }\n      read = stringLength;\n      break;\n    }\n    var chr = at(string, index);\n    ++index;\n    if (chr === '=') {\n      if (chunk.length < 2) {\n        throw new SyntaxError('Padding is too early');\n      }\n      index = skipAsciiWhitespace(string, index);\n      if (chunk.length === 2) {\n        if (index === stringLength) {\n          if (lastChunkHandling === 'stop-before-partial') {\n            break;\n          }\n          throw new SyntaxError('Malformed padding: only one =');\n        }\n        if (at(string, index) === '=') {\n          ++index;\n          index = skipAsciiWhitespace(string, index);\n        }\n      }\n      if (index < stringLength) {\n        throw new SyntaxError('Unexpected character after padding');\n      }\n      written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, lastChunkHandling === 'strict'), written);\n      read = stringLength;\n      break;\n    }\n    if (!hasOwn(alphabet, chr)) {\n      throw new SyntaxError('Unexpected character');\n    }\n    var remainingBytes = maxLength - written;\n    if (remainingBytes === 1 && chunk.length === 2 || remainingBytes === 2 && chunk.length === 3) {\n      // special case: we can fit exactly the number of bytes currently represented by chunk, so we were just checking for `=`\n      break;\n    }\n\n    chunk += chr;\n    if (chunk.length === 4) {\n      written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n      chunk = '';\n      read = index;\n      if (written === maxLength) {\n        break;\n      }\n    }\n  }\n\n  return { bytes: bytes, read: read, written: written };\n};\n"
  },
  {
    "path": "packages/core-js/internals/uint8-from-hex.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = globalThis.Uint8Array;\nvar SyntaxError = globalThis.SyntaxError;\nvar min = Math.min;\nvar stringMatch = uncurryThis(''.match);\n\nmodule.exports = function (string, into) {\n  var stringLength = string.length;\n  if (stringLength % 2 !== 0) throw new SyntaxError('String should be an even number of characters');\n  var maxLength = into ? min(into.length, stringLength / 2) : stringLength / 2;\n  var bytes = into || new Uint8Array(maxLength);\n  var segments = stringMatch(string, /.{2}/g);\n  var written = 0;\n  for (; written < maxLength; written++) {\n    var result = +('0x' + segments[written] + '0');\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (result !== result) {\n      throw new SyntaxError('String should only contain hex characters');\n    }\n    bytes[written] = result >> 4;\n  }\n  return { bytes: bytes, read: written << 1 };\n};\n"
  },
  {
    "path": "packages/core-js/internals/url-constructor-detection.js",
    "content": "'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n  var url = new URL('b?a=1&b=2&c=3', 'https://a');\n  var params = url.searchParams;\n  var params2 = new URLSearchParams('a=1&a=2&b=3');\n  var result = '';\n  url.pathname = 'c%20d';\n  params.forEach(function (value, key) {\n    params['delete']('b');\n    result += key + value;\n  });\n  params2['delete']('a', 2);\n  // `undefined` case is a Chromium 117 bug\n  // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n  params2['delete']('b', undefined);\n  return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n    || (!params.size && (IS_PURE || !DESCRIPTORS))\n    || !params.sort\n    || url.href !== 'https://a/c%20d?a=1&c=3'\n    || params.get('c') !== '3'\n    || String(new URLSearchParams('?a=1')) !== 'a=1'\n    || !params[ITERATOR]\n    // throws in Edge\n    || new URL('https://a@b').username !== 'a'\n    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n    // not punycoded in Edge\n    || new URL('https://тест').host !== 'xn--e1aybc'\n    // not escaped in Chrome 62-\n    || new URL('https://a#б').hash !== '#%D0%B1'\n    // fails in Chrome 66-\n    || result !== 'a1c3'\n    // throws in Safari\n    || new URL('https://x', undefined).host !== 'x';\n});\n"
  },
  {
    "path": "packages/core-js/internals/use-symbol-as-uid.js",
    "content": "'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n  !Symbol.sham &&\n  typeof Symbol.iterator == 'symbol';\n"
  },
  {
    "path": "packages/core-js/internals/v8-prototype-define-bug.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype !== 42;\n});\n"
  },
  {
    "path": "packages/core-js/internals/validate-arguments-length.js",
    "content": "'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n  if (passed < required) throw new $TypeError('Not enough arguments');\n  return passed;\n};\n"
  },
  {
    "path": "packages/core-js/internals/weak-map-basic-detection.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n"
  },
  {
    "path": "packages/core-js/internals/weak-map-helpers.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-weak-map -- safe\nvar WeakMapPrototype = WeakMap.prototype;\n\nmodule.exports = {\n  // eslint-disable-next-line es/no-weak-map -- safe\n  WeakMap: WeakMap,\n  set: uncurryThis(WeakMapPrototype.set),\n  get: uncurryThis(WeakMapPrototype.get),\n  has: uncurryThis(WeakMapPrototype.has),\n  remove: uncurryThis(WeakMapPrototype['delete'])\n};\n"
  },
  {
    "path": "packages/core-js/internals/weak-set-helpers.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-weak-set -- safe\nvar WeakSetPrototype = WeakSet.prototype;\n\nmodule.exports = {\n  // eslint-disable-next-line es/no-weak-set -- safe\n  WeakSet: WeakSet,\n  add: uncurryThis(WeakSetPrototype.add),\n  has: uncurryThis(WeakSetPrototype.has),\n  remove: uncurryThis(WeakSetPrototype['delete'])\n};\n"
  },
  {
    "path": "packages/core-js/internals/well-known-symbol-define.js",
    "content": "'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n  var Symbol = path.Symbol || (path.Symbol = {});\n  if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n    value: wrappedWellKnownSymbolModule.f(NAME)\n  });\n};\n"
  },
  {
    "path": "packages/core-js/internals/well-known-symbol-wrapped.js",
    "content": "'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n"
  },
  {
    "path": "packages/core-js/internals/well-known-symbol.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name)) {\n    WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n      ? Symbol[name]\n      : createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n"
  },
  {
    "path": "packages/core-js/internals/whitespaces.js",
    "content": "'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n  '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n"
  },
  {
    "path": "packages/core-js/internals/wrap-error-constructor-with-cause.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n  var STACK_TRACE_LIMIT = 'stackTraceLimit';\n  var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n  var path = FULL_NAME.split('.');\n  var ERROR_NAME = path[path.length - 1];\n  var OriginalError = getBuiltIn.apply(null, path);\n\n  if (!OriginalError) return;\n\n  var OriginalErrorPrototype = OriginalError.prototype;\n\n  // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n  if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n  if (!FORCED) return OriginalError;\n\n  var BaseError = getBuiltIn('Error');\n\n  var WrappedError = wrapper(function (a, b) {\n    var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n    var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n    if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n    installErrorStack(result, WrappedError, result.stack, 2);\n    if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n    if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n    return result;\n  });\n\n  WrappedError.prototype = OriginalErrorPrototype;\n\n  if (ERROR_NAME !== 'Error') {\n    if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n    else copyConstructorProperties(WrappedError, BaseError, { name: true });\n  } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n    proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n    proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n  }\n\n  copyConstructorProperties(WrappedError, OriginalError);\n\n  if (!IS_PURE) try {\n    // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n    if (OriginalErrorPrototype.name !== ERROR_NAME) {\n      createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n    }\n    OriginalErrorPrototype.constructor = WrappedError;\n  } catch (error) { /* empty */ }\n\n  return WrappedError;\n};\n"
  },
  {
    "path": "packages/core-js/modules/README.md",
    "content": "This folder contains implementations of polyfills. It's not recommended to include in your projects directly if you don't completely understand what are you doing.\n"
  },
  {
    "path": "packages/core-js/modules/es.aggregate-error.cause.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar fails = require('../internals/fails');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar AGGREGATE_ERROR = 'AggregateError';\nvar $AggregateError = getBuiltIn(AGGREGATE_ERROR);\n\nvar FORCED = !fails(function () {\n  return $AggregateError([1]).errors[0] !== 1;\n}) && fails(function () {\n  return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7;\n});\n\n// https://tc39.es/ecma262/#sec-aggregate-error\n$({ global: true, constructor: true, arity: 2, forced: FORCED }, {\n  AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) {\n    // eslint-disable-next-line no-unused-vars -- required for functions `.length`\n    return function AggregateError(errors, message) { return apply(init, this, arguments); };\n  }, FORCED, true)\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.aggregate-error.constructor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n  var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n  var that;\n  if (setPrototypeOf) {\n    that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n  } else {\n    that = isInstance ? this : create(AggregateErrorPrototype);\n    createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n  }\n  if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n  installErrorStack(that, $AggregateError, that.stack, 1);\n  if (arguments.length > 2) installErrorCause(that, arguments[2]);\n  var errorsArray = [];\n  iterate(errors, push, { that: errorsArray });\n  createNonEnumerableProperty(that, 'errors', errorsArray);\n  return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);\nelse copyConstructorProperties($AggregateError, $Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n  constructor: createPropertyDescriptor(1, $AggregateError),\n  message: createPropertyDescriptor(1, ''),\n  name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true, constructor: true, arity: 2 }, {\n  AggregateError: $AggregateError\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.aggregate-error.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');\n"
  },
  {
    "path": "packages/core-js/modules/es.array-buffer.constructor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = globalThis[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n  ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n"
  },
  {
    "path": "packages/core-js/modules/es.array-buffer.detached.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\n// `ArrayBuffer.prototype.detached` getter\n// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n  defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n    configurable: true,\n    get: function detached() {\n      return isDetached(this);\n    }\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.array-buffer.is-view.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\n\n// `ArrayBuffer.isView` method\n// https://tc39.es/ecma262/#sec-arraybuffer.isview\n$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n  isView: ArrayBufferViewCore.isView\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array-buffer.slice.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar DataViewPrototype = DataView.prototype;\nvar nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);\nvar getUint8 = uncurryThis(DataViewPrototype.getUint8);\nvar setUint8 = uncurryThis(DataViewPrototype.setUint8);\n\nvar INCORRECT_SLICE = fails(function () {\n  return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n  slice: function slice(start, end) {\n    if (nativeArrayBufferSlice && end === undefined) {\n      return nativeArrayBufferSlice(anObject(this), start); // FF fix\n    }\n    var length = anObject(this).byteLength;\n    var first = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    var result = new ArrayBuffer(toLength(fin - first));\n    var viewSource = new DataView(this);\n    var viewTarget = new DataView(result);\n    var index = 0;\n    while (first < fin) {\n      setUint8(viewTarget, index++, getUint8(viewSource, first++));\n    } return result;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array-buffer.transfer-to-fixed-length.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n  transferToFixedLength: function transferToFixedLength() {\n    return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array-buffer.transfer.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n  transfer: function transfer() {\n    return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.at.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.at` method\n// https://tc39.es/ecma262/#sec-array.prototype.at\n$({ target: 'Array', proto: true }, {\n  at: function at(index) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : O[k];\n  }\n});\n\naddToUnscopables('at');\n"
  },
  {
    "path": "packages/core-js/modules/es.array.concat.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar setArrayLength = require('../internals/array-set-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n  var array = [];\n  array[IS_CONCAT_SPREADABLE] = false;\n  return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n  if (!isObject(O)) return false;\n  var spreadable = O[IS_CONCAT_SPREADABLE];\n  return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  concat: function concat(arg) {\n    var O = toObject(this);\n    var A = arraySpeciesCreate(O, 0);\n    var n = 0;\n    var i, k, length, len, E;\n    for (i = -1, length = arguments.length; i < length; i++) {\n      E = i === -1 ? O : arguments[i];\n      if (isConcatSpreadable(E)) {\n        len = lengthOfArrayLike(E);\n        doesNotExceedSafeInteger(n + len);\n        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n      } else {\n        doesNotExceedSafeInteger(n + 1);\n        createProperty(A, n++, E);\n      }\n    }\n    setArrayLength(A, n);\n    return A;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.copy-within.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n  copyWithin: copyWithin\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n"
  },
  {
    "path": "packages/core-js/modules/es.array.every.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n  every: function every(callbackfn /* , thisArg */) {\n    return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.fill.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n  fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n"
  },
  {
    "path": "packages/core-js/modules/es.array.filter.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.find-index.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-findindex -- testing\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n  findIndex: function findIndex(callbackfn /* , that = undefined */) {\n    return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n"
  },
  {
    "path": "packages/core-js/modules/es.array.find-last-index.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findlastindex\n$({ target: 'Array', proto: true }, {\n  findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) {\n    return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\naddToUnscopables('findLastIndex');\n"
  },
  {
    "path": "packages/core-js/modules/es.array.find-last.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-array.prototype.findlast\n$({ target: 'Array', proto: true }, {\n  findLast: function findLast(callbackfn /* , that = undefined */) {\n    return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\naddToUnscopables('findLast');\n"
  },
  {
    "path": "packages/core-js/modules/es.array.find.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-find -- testing\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n  find: function find(callbackfn /* , that = undefined */) {\n    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n"
  },
  {
    "path": "packages/core-js/modules/es.array.flat-map.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n  flatMap: function flatMap(callbackfn /* , thisArg */) {\n    var O = toObject(this);\n    var sourceLen = lengthOfArrayLike(O);\n    var A;\n    aCallable(callbackfn);\n    A = arraySpeciesCreate(O, 0);\n    flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    return A;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.flat.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n  flat: function flat(/* depthArg = 1 */) {\n    var depthArg = arguments.length ? arguments[0] : undefined;\n    var O = toObject(this);\n    var sourceLen = lengthOfArrayLike(O);\n    var depthNum = depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg);\n    var A = arraySpeciesCreate(O, 0);\n    flattenIntoArray(A, O, O, sourceLen, 0, depthNum);\n    return A;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.for-each.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, {\n  forEach: forEach\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.from-async.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fromAsync = require('../internals/array-from-async');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-array-fromasync -- safe\nvar nativeFromAsync = Array.fromAsync;\n// https://bugs.webkit.org/show_bug.cgi?id=271703\nvar INCORRECT_CONSTRUCTURING = !nativeFromAsync || fails(function () {\n  var counter = 0;\n  nativeFromAsync.call(function () {\n    counter++;\n    return [];\n  }, { length: 0 });\n  return counter !== 1;\n});\n\n// `Array.fromAsync` method\n// https://tc39.es/ecma262/#sec-array.fromasync\n$({ target: 'Array', stat: true, forced: INCORRECT_CONSTRUCTURING }, {\n  fromAsync: fromAsync\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.from.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n  // eslint-disable-next-line es/no-array-from -- required for testing\n  Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n  from: from\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.includes.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n  // eslint-disable-next-line es/no-array-prototype-includes -- detection\n  return !Array(1).includes();\n});\n\n// Safari 26.4- bug\nvar BROKEN_ON_SPARSE_WITH_FROM_INDEX = fails(function () {\n  // eslint-disable-next-line no-sparse-arrays, es/no-array-prototype-includes -- detection\n  return [, 1].includes(undefined, 1);\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE || BROKEN_ON_SPARSE_WITH_FROM_INDEX }, {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n"
  },
  {
    "path": "packages/core-js/modules/es.array.index-of.js",
    "content": "'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n    var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n    return NEGATIVE_ZERO\n      // convert -0 to +0\n      ? nativeIndexOf(this, searchElement, fromIndex) || 0\n      : $indexOf(this, searchElement, fromIndex);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.is-array.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n  isArray: isArray\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.iterator.js",
    "content": "'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = null;\n    return createIterResultObject(undefined, true);\n  }\n  switch (state.kind) {\n    case 'keys': return createIterResultObject(index, false);\n    case 'values': return createIterResultObject(target[index], false);\n  } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n  defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n"
  },
  {
    "path": "packages/core-js/modules/es.array.join.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject !== Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  join: function join(separator) {\n    return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.last-index-of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar lastIndexOf = require('../internals/array-last-index-of');\n\n// `Array.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\n// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing\n$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {\n  lastIndexOf: lastIndexOf\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.map.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  map: function map(callbackfn /* , thisArg */) {\n    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isConstructor = require('../internals/is-constructor');\nvar createProperty = require('../internals/create-property');\nvar setArrayLength = require('../internals/array-set-length');\n\nvar $Array = Array;\n\nvar ISNT_GENERIC = fails(function () {\n  function F() { /* empty */ }\n  // eslint-disable-next-line es/no-array-of -- safe\n  return !($Array.of.call(F) instanceof F);\n});\n\n// `Array.of` method\n// https://tc39.es/ecma262/#sec-array.of\n// WebKit Array.of isn't generic\n$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {\n  of: function of(/* ...args */) {\n    var index = 0;\n    var argumentsLength = arguments.length;\n    var result = new (isConstructor(this) ? this : $Array)(argumentsLength);\n    while (argumentsLength > index) createProperty(result, index, arguments[index++]);\n    setArrayLength(result, argumentsLength);\n    return result;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.push.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n  return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).push();\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  push: function push(item) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var argCount = arguments.length;\n    doesNotExceedSafeInteger(len + argCount);\n    for (var i = 0; i < argCount; i++) {\n      O[len] = arguments[i];\n      len++;\n    }\n    setArrayLength(O, len);\n    return len;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.reduce-right.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight');\n\n// `Array.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n    return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.reduce.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    var length = arguments.length;\n    return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.reverse.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n  reverse: function reverse() {\n    // eslint-disable-next-line no-self-assign -- dirty hack\n    if (isArray(this)) this.length = this.length;\n    return nativeReverse(this);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.slice.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar setArrayLength = require('../internals/array-set-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  slice: function slice(start, end) {\n    var O = toIndexedObject(this);\n    var length = lengthOfArrayLike(O);\n    var k = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n    var Constructor, result, n;\n    if (isArray(O)) {\n      Constructor = O.constructor;\n      // cross-realm fallback\n      if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n        Constructor = undefined;\n      } else if (isObject(Constructor)) {\n        Constructor = Constructor[SPECIES];\n        if (Constructor === null) Constructor = undefined;\n      }\n      if (Constructor === $Array || Constructor === undefined) {\n        return nativeSlice(O, k, fin);\n      }\n    }\n    result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n    setArrayLength(result, n);\n    return result;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.some.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n  some: function some(callbackfn /* , thisArg */) {\n    return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.sort.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/environment-ff-version');\nvar IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');\nvar V8 = require('../internals/environment-v8-version');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n  test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n  test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n  // feature detection can be too slow, so check engines versions\n  if (V8) return V8 < 70;\n  if (FF && FF > 3) return;\n  if (IE_OR_EDGE) return true;\n  if (WEBKIT) return WEBKIT < 603;\n\n  var result = '';\n  var code, chr, value, index;\n\n  // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n  for (code = 65; code < 76; code++) {\n    chr = String.fromCharCode(code);\n\n    switch (code) {\n      case 66: case 69: case 70: case 72: value = 3; break;\n      case 68: case 71: value = 4; break;\n      default: value = 2;\n    }\n\n    for (index = 0; index < 47; index++) {\n      test.push({ k: chr + index, v: value });\n    }\n  }\n\n  test.sort(function (a, b) { return b.v - a.v; });\n\n  for (index = 0; index < test.length; index++) {\n    chr = test[index].k.charAt(0);\n    if (result.charAt(result.length - 1) !== chr) result += chr;\n  }\n\n  return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n  return function (x, y) {\n    if (y === undefined) return -1;\n    if (x === undefined) return 1;\n    if (comparefn !== undefined) return +comparefn(x, y) || 0;\n    var xString = toString(x);\n    var yString = toString(y);\n    return xString === yString ? 0 : xString > yString ? 1 : -1;\n  };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  sort: function sort(comparefn) {\n    if (comparefn !== undefined) aCallable(comparefn);\n\n    var array = toObject(this);\n\n    if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n    var items = [];\n    var arrayLength = lengthOfArrayLike(array);\n    var itemsLength, index;\n\n    for (index = 0; index < arrayLength; index++) {\n      if (index in array) push(items, array[index]);\n    }\n\n    internalSort(items, getSortCompare(comparefn));\n\n    itemsLength = lengthOfArrayLike(items);\n    index = 0;\n\n    while (index < itemsLength) array[index] = items[index++];\n    while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n    return array;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.species.js",
    "content": "'use strict';\nvar setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.es/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n"
  },
  {
    "path": "packages/core-js/modules/es.array.splice.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  splice: function splice(start, deleteCount /* , ...items */) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var actualStart = toAbsoluteIndex(start, len);\n    var argumentsLength = arguments.length;\n    var insertCount, actualDeleteCount, A, k, from, to;\n    if (argumentsLength === 0) {\n      insertCount = actualDeleteCount = 0;\n    } else if (argumentsLength === 1) {\n      insertCount = 0;\n      actualDeleteCount = len - actualStart;\n    } else {\n      insertCount = argumentsLength - 2;\n      actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n    }\n    doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n    A = arraySpeciesCreate(O, actualDeleteCount);\n    for (k = 0; k < actualDeleteCount; k++) {\n      from = actualStart + k;\n      if (from in O) createProperty(A, k, O[from]);\n    }\n    setArrayLength(A, actualDeleteCount);\n    if (insertCount < actualDeleteCount) {\n      for (k = actualStart; k < len - actualDeleteCount; k++) {\n        from = k + actualDeleteCount;\n        to = k + insertCount;\n        if (from in O) O[to] = O[from];\n        else deletePropertyOrThrow(O, to);\n      }\n      for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n    } else if (insertCount > actualDeleteCount) {\n      for (k = len - actualDeleteCount; k > actualStart; k--) {\n        from = k + actualDeleteCount - 1;\n        to = k + insertCount - 1;\n        if (from in O) O[to] = O[from];\n        else deletePropertyOrThrow(O, to);\n      }\n    }\n    for (k = 0; k < insertCount; k++) {\n      O[k + actualStart] = arguments[k + 2];\n    }\n    setArrayLength(O, len - actualDeleteCount + insertCount);\n    return A;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.to-reversed.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar $Array = Array;\n\n// `Array.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-array.prototype.toreversed\n$({ target: 'Array', proto: true }, {\n  toReversed: function toReversed() {\n    var O = toIndexedObject(this);\n    var len = lengthOfArrayLike(O);\n    var A = new $Array(len);\n    var k = 0;\n    for (; k < len; k++) createProperty(A, k, O[len - k - 1]);\n    return A;\n  }\n});\n\naddToUnscopables('toReversed');\n"
  },
  {
    "path": "packages/core-js/modules/es.array.to-sorted.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar getBuiltInPrototypeMethod = require('../internals/get-built-in-prototype-method');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar $Array = Array;\nvar sort = uncurryThis(getBuiltInPrototypeMethod('Array', 'sort'));\n\n// `Array.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-array.prototype.tosorted\n$({ target: 'Array', proto: true }, {\n  toSorted: function toSorted(compareFn) {\n    if (compareFn !== undefined) aCallable(compareFn);\n    var O = toIndexedObject(this);\n    var A = arrayFromConstructorAndList($Array, O);\n    return sort(A, compareFn);\n  }\n});\n\naddToUnscopables('toSorted');\n"
  },
  {
    "path": "packages/core-js/modules/es.array.to-spliced.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.toSpliced` method\n// https://tc39.es/ecma262/#sec-array.prototype.tospliced\n$({ target: 'Array', proto: true }, {\n  toSpliced: function toSpliced(start, deleteCount /* , ...items */) {\n    var O = toIndexedObject(this);\n    var len = lengthOfArrayLike(O);\n    var actualStart = toAbsoluteIndex(start, len);\n    var argumentsLength = arguments.length;\n    var k = 0;\n    var insertCount, actualDeleteCount, newLen, A;\n    if (argumentsLength === 0) {\n      insertCount = actualDeleteCount = 0;\n    } else if (argumentsLength === 1) {\n      insertCount = 0;\n      actualDeleteCount = len - actualStart;\n    } else {\n      insertCount = argumentsLength - 2;\n      actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n    }\n    newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n    A = $Array(newLen);\n\n    for (; k < actualStart; k++) createProperty(A, k, O[k]);\n    for (; k < actualStart + insertCount; k++) createProperty(A, k, arguments[k - actualStart + 2]);\n    for (; k < newLen; k++) createProperty(A, k, O[k + actualDeleteCount - insertCount]);\n\n    return A;\n  }\n});\n\naddToUnscopables('toSpliced');\n"
  },
  {
    "path": "packages/core-js/modules/es.array.unscopables.flat-map.js",
    "content": "'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n"
  },
  {
    "path": "packages/core-js/modules/es.array.unscopables.flat.js",
    "content": "'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n"
  },
  {
    "path": "packages/core-js/modules/es.array.unshift.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).unshift();\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  unshift: function unshift(item) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var argCount = arguments.length;\n    if (argCount) {\n      doesNotExceedSafeInteger(len + argCount);\n      var k = len;\n      while (k--) {\n        var to = k + argCount;\n        if (k in O) O[to] = O[k];\n        else deletePropertyOrThrow(O, to);\n      }\n      for (var j = 0; j < argCount; j++) {\n        O[j] = arguments[j];\n      }\n    } return setArrayLength(O, len + argCount);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.array.with.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar $RangeError = RangeError;\n\n// Firefox bug\nvar INCORRECT_EXCEPTION_ON_COERCION_FAIL = (function () {\n  try {\n    // eslint-disable-next-line es/no-array-prototype-with, no-throw-literal -- needed for testing\n    []['with']({ valueOf: function () { throw 4; } }, null);\n  } catch (error) {\n    return error !== 4;\n  }\n})();\n\n// `Array.prototype.with` method\n// https://tc39.es/ecma262/#sec-array.prototype.with\n$({ target: 'Array', proto: true, forced: INCORRECT_EXCEPTION_ON_COERCION_FAIL }, {\n  'with': function (index, value) {\n    var O = toIndexedObject(this);\n    var len = lengthOfArrayLike(O);\n    var relativeIndex = toIntegerOrInfinity(index);\n    var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n    if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n    var A = new $Array(len);\n    var k = 0;\n    for (; k < len; k++) createProperty(A, k, k === actualIndex ? value : O[k]);\n    return A;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.async-disposable-stack.constructor.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-async-explicit-resource-management\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aCallable = require('../internals/a-callable');\nvar anInstance = require('../internals/an-instance');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar addDisposableResource = require('../internals/add-disposable-resource');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar Promise = getBuiltIn('Promise');\nvar SuppressedError = getBuiltIn('SuppressedError');\nvar $ReferenceError = ReferenceError;\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar ASYNC_DISPOSABLE_STACK = 'AsyncDisposableStack';\nvar setInternalState = InternalStateModule.set;\nvar getAsyncDisposableStackInternalState = InternalStateModule.getterFor(ASYNC_DISPOSABLE_STACK);\n\nvar HINT = 'async-dispose';\nvar DISPOSED = 'disposed';\nvar PENDING = 'pending';\n\nvar getPendingAsyncDisposableStackInternalState = function (stack) {\n  var internalState = getAsyncDisposableStackInternalState(stack);\n  if (internalState.state === DISPOSED) throw new $ReferenceError(ASYNC_DISPOSABLE_STACK + ' already disposed');\n  return internalState;\n};\n\nvar $AsyncDisposableStack = function AsyncDisposableStack() {\n  setInternalState(anInstance(this, AsyncDisposableStackPrototype), {\n    type: ASYNC_DISPOSABLE_STACK,\n    state: PENDING,\n    stack: []\n  });\n\n  if (!DESCRIPTORS) this.disposed = false;\n};\n\nvar AsyncDisposableStackPrototype = $AsyncDisposableStack.prototype;\n\ndefineBuiltIns(AsyncDisposableStackPrototype, {\n  disposeAsync: function disposeAsync() {\n    var asyncDisposableStack = this;\n    return new Promise(function (resolve, reject) {\n      var internalState = getAsyncDisposableStackInternalState(asyncDisposableStack);\n      if (internalState.state === DISPOSED) return resolve(undefined);\n      internalState.state = DISPOSED;\n      if (!DESCRIPTORS) asyncDisposableStack.disposed = true;\n      var stack = internalState.stack;\n      var i = stack.length;\n      var thrown = false;\n      var suppressed;\n\n      var handleError = function (result) {\n        if (thrown) {\n          suppressed = new SuppressedError(result, suppressed);\n        } else {\n          thrown = true;\n          suppressed = result;\n        }\n\n        loop();\n      };\n\n      var loop = function () {\n        if (i) {\n          var disposeMethod = stack[--i];\n          stack[i] = null;\n          try {\n            Promise.resolve(disposeMethod()).then(loop, handleError);\n          } catch (error) {\n            handleError(error);\n          }\n        } else {\n          internalState.stack = null;\n          thrown ? reject(suppressed) : resolve(undefined);\n        }\n      };\n\n      loop();\n    });\n  },\n  use: function use(value) {\n    addDisposableResource(getPendingAsyncDisposableStackInternalState(this), value, HINT);\n    return value;\n  },\n  adopt: function adopt(value, onDispose) {\n    var internalState = getPendingAsyncDisposableStackInternalState(this);\n    aCallable(onDispose);\n    addDisposableResource(internalState, undefined, HINT, function () {\n      return onDispose(value);\n    });\n    return value;\n  },\n  defer: function defer(onDispose) {\n    var internalState = getPendingAsyncDisposableStackInternalState(this);\n    aCallable(onDispose);\n    addDisposableResource(internalState, undefined, HINT, onDispose);\n  },\n  move: function move() {\n    var internalState = getPendingAsyncDisposableStackInternalState(this);\n    var newAsyncDisposableStack = new $AsyncDisposableStack();\n    getAsyncDisposableStackInternalState(newAsyncDisposableStack).stack = internalState.stack;\n    internalState.stack = [];\n    internalState.state = DISPOSED;\n    if (!DESCRIPTORS) this.disposed = true;\n    return newAsyncDisposableStack;\n  }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(AsyncDisposableStackPrototype, 'disposed', {\n  configurable: true,\n  get: function disposed() {\n    return getAsyncDisposableStackInternalState(this).state === DISPOSED;\n  }\n});\n\ndefineBuiltIn(AsyncDisposableStackPrototype, ASYNC_DISPOSE, AsyncDisposableStackPrototype.disposeAsync, { name: 'disposeAsync' });\ndefineBuiltIn(AsyncDisposableStackPrototype, TO_STRING_TAG, ASYNC_DISPOSABLE_STACK, { nonWritable: true });\n\n// https://github.com/tc39/proposal-explicit-resource-management/issues/256\n// can't be detected synchronously\nvar SYNC_DISPOSE_RETURNING_PROMISE_RESOLUTION_BUG = V8_VERSION && V8_VERSION < 136;\n\n$({ global: true, constructor: true, forced: SYNC_DISPOSE_RETURNING_PROMISE_RESOLUTION_BUG }, {\n  AsyncDisposableStack: $AsyncDisposableStack\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.async-iterator.async-dispose.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-async-explicit-resource-management\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar Promise = getBuiltIn('Promise');\n\nif (!hasOwn(AsyncIteratorPrototype, ASYNC_DISPOSE)) {\n  defineBuiltIn(AsyncIteratorPrototype, ASYNC_DISPOSE, function () {\n    var O = this;\n    return new Promise(function (resolve, reject) {\n      var $return = getMethod(O, 'return');\n      if ($return) {\n        Promise.resolve(call($return, O)).then(function () {\n          resolve(undefined);\n        }, reject);\n      } else resolve(undefined);\n    });\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.data-view.constructor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\n\n// `DataView` constructor\n// https://tc39.es/ecma262/#sec-dataview-constructor\n$({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, {\n  DataView: ArrayBufferModule.DataView\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.data-view.get-float16.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar pow = Math.pow;\n\nvar EXP_MASK16 = 31; // 2 ** 5 - 1\nvar SIGNIFICAND_MASK16 = 1023; // 2 ** 10 - 1\nvar MIN_SUBNORMAL16 = pow(2, -24); // 2 ** -10 * 2 ** -14\nvar SIGNIFICAND_DENOM16 = 0.0009765625; // 2 ** -10\n\nvar unpackFloat16 = function (bytes) {\n  var sign = bytes >>> 15;\n  var exponent = bytes >>> 10 & EXP_MASK16;\n  var significand = bytes & SIGNIFICAND_MASK16;\n  if (exponent === EXP_MASK16) return significand === 0 ? sign === 0 ? Infinity : -Infinity : NaN;\n  if (exponent === 0) return significand * (sign === 0 ? MIN_SUBNORMAL16 : -MIN_SUBNORMAL16);\n  return pow(2, exponent - 15) * (sign === 0 ? 1 + significand * SIGNIFICAND_DENOM16 : -1 - significand * SIGNIFICAND_DENOM16);\n};\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar getUint16 = uncurryThis(DataView.prototype.getUint16);\n\n// `DataView.prototype.getFloat16` method\n// https://tc39.es/ecma262/#sec-dataview.prototype.getfloat16\n$({ target: 'DataView', proto: true }, {\n  getFloat16: function getFloat16(byteOffset /* , littleEndian */) {\n    return unpackFloat16(getUint16(this, byteOffset, arguments.length > 1 ? arguments[1] : false));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.data-view.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.data-view.constructor');\n"
  },
  {
    "path": "packages/core-js/modules/es.data-view.set-float16.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aDataView = require('../internals/a-data-view');\nvar toIndex = require('../internals/to-index');\n// TODO: Replace with module dependency in `core-js@4`\nvar log2 = require('../internals/math-log2');\nvar roundTiesToEven = require('../internals/math-round-ties-to-even');\n\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar MIN_INFINITY16 = 65520; // (2 - 2 ** -11) * 2 ** 15\nvar MIN_NORMAL16 = 0.000061005353927612305; // (1 - 2 ** -11) * 2 ** -14\nvar REC_MIN_SUBNORMAL16 = 16777216; // 2 ** 10 * 2 ** 14\nvar REC_SIGNIFICAND_DENOM16 = 1024; // 2 ** 10;\n\nvar packFloat16 = function (value) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (value !== value) return 0x7E00; // NaN\n  if (value === 0) return (1 / value === -Infinity) << 15; // +0 or -0\n\n  var neg = value < 0;\n  if (neg) value = -value;\n  if (value >= MIN_INFINITY16) return neg << 15 | 0x7C00; // Infinity\n  if (value < MIN_NORMAL16) return neg << 15 | roundTiesToEven(value * REC_MIN_SUBNORMAL16); // subnormal\n\n  // normal\n  var exponent = floor(log2(value));\n  if (exponent === -15) {\n    // we round from a value between 2 ** -15 * (1 + 1022/1024) (the largest subnormal) and 2 ** -14 * (1 + 0/1024) (the smallest normal)\n    // to the latter (former impossible because of the subnormal check above)\n    return neg << 15 | REC_SIGNIFICAND_DENOM16;\n  }\n  var significand = roundTiesToEven((value * pow(2, -exponent) - 1) * REC_SIGNIFICAND_DENOM16);\n  if (significand === REC_SIGNIFICAND_DENOM16) {\n    // we round from a value between 2 ** n * (1 + 1023/1024) and 2 ** (n + 1) * (1 + 0/1024) to the latter\n    return neg << 15 | exponent + 16 << 10;\n  }\n  return neg << 15 | exponent + 15 << 10 | significand;\n};\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar setUint16 = uncurryThis(DataView.prototype.setUint16);\n\n// `DataView.prototype.setFloat16` method\n// https://tc39.es/ecma262/#sec-dataview.prototype.setfloat16\n$({ target: 'DataView', proto: true }, {\n  setFloat16: function setFloat16(byteOffset, value /* , littleEndian */) {\n    setUint16(\n      aDataView(this),\n      toIndex(byteOffset),\n      packFloat16(+value),\n      arguments.length > 2 ? arguments[2] : false\n    );\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.date.get-year.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\n// IE8- non-standard case\nvar FORCED = fails(function () {\n  // eslint-disable-next-line es/no-date-prototype-getyear-setyear -- detection\n  return new Date(16e11).getYear() !== 120;\n});\n\nvar getFullYear = uncurryThis(Date.prototype.getFullYear);\n\n// `Date.prototype.getYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.getyear\n$({ target: 'Date', proto: true, forced: FORCED }, {\n  getYear: function getYear() {\n    return getFullYear(this) - 1900;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.date.now.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Date = Date;\nvar thisTimeValue = uncurryThis($Date.prototype.getTime);\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n  now: function now() {\n    return thisTimeValue(new $Date());\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.date.set-year.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar DatePrototype = Date.prototype;\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\nvar setFullYear = uncurryThis(DatePrototype.setFullYear);\n\n// `Date.prototype.setYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.setyear\n$({ target: 'Date', proto: true }, {\n  setYear: function setYear(year) {\n    // validate\n    thisTimeValue(this);\n    var y = +year;\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (y !== y) return setFullYear(this, y);\n    var yi = toIntegerOrInfinity(y);\n    var yyyy = yi >= 0 && yi <= 99 ? yi + 1900 : yi;\n    return setFullYear(this, yyyy);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.date.to-gmt-string.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Date.prototype.toGMTString` method\n// https://tc39.es/ecma262/#sec-date.prototype.togmtstring\n$({ target: 'Date', proto: true }, {\n  toGMTString: Date.prototype.toUTCString\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.date.to-iso-string.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar toISOString = require('../internals/date-to-iso-string');\n\n// `Date.prototype.toISOString` method\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit has a broken implementations\n$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {\n  toISOString: toISOString\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.date.to-json.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n  return new Date(NaN).toJSON() !== null\n    || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.es/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  toJSON: function toJSON(key) {\n    var O = toObject(this);\n    var pv = toPrimitive(O, 'number');\n    return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.date.to-primitive.js",
    "content": "'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nif (!hasOwn(DatePrototype, TO_PRIMITIVE)) {\n  defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.date.to-string.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = uncurryThis(DatePrototype[TO_STRING]);\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (String(new Date(NaN)) !== INVALID_DATE) {\n  defineBuiltIn(DatePrototype, TO_STRING, function toString() {\n    var value = thisTimeValue(this);\n    // eslint-disable-next-line no-self-compare -- NaN check\n    return value === value ? nativeDateToString(this) : INVALID_DATE;\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.disposable-stack.constructor.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-explicit-resource-management\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aCallable = require('../internals/a-callable');\nvar anInstance = require('../internals/an-instance');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar addDisposableResource = require('../internals/add-disposable-resource');\n\nvar SuppressedError = getBuiltIn('SuppressedError');\nvar $ReferenceError = ReferenceError;\n\nvar DISPOSE = wellKnownSymbol('dispose');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar DISPOSABLE_STACK = 'DisposableStack';\nvar setInternalState = InternalStateModule.set;\nvar getDisposableStackInternalState = InternalStateModule.getterFor(DISPOSABLE_STACK);\n\nvar HINT = 'sync-dispose';\nvar DISPOSED = 'disposed';\nvar PENDING = 'pending';\n\nvar getPendingDisposableStackInternalState = function (stack) {\n  var internalState = getDisposableStackInternalState(stack);\n  if (internalState.state === DISPOSED) throw new $ReferenceError(DISPOSABLE_STACK + ' already disposed');\n  return internalState;\n};\n\nvar $DisposableStack = function DisposableStack() {\n  setInternalState(anInstance(this, DisposableStackPrototype), {\n    type: DISPOSABLE_STACK,\n    state: PENDING,\n    stack: []\n  });\n\n  if (!DESCRIPTORS) this.disposed = false;\n};\n\nvar DisposableStackPrototype = $DisposableStack.prototype;\n\ndefineBuiltIns(DisposableStackPrototype, {\n  dispose: function dispose() {\n    var internalState = getDisposableStackInternalState(this);\n    if (internalState.state === DISPOSED) return;\n    internalState.state = DISPOSED;\n    if (!DESCRIPTORS) this.disposed = true;\n    var stack = internalState.stack;\n    var i = stack.length;\n    var thrown = false;\n    var suppressed;\n    while (i) {\n      var disposeMethod = stack[--i];\n      stack[i] = null;\n      try {\n        disposeMethod();\n      } catch (errorResult) {\n        if (thrown) {\n          suppressed = new SuppressedError(errorResult, suppressed);\n        } else {\n          thrown = true;\n          suppressed = errorResult;\n        }\n      }\n    }\n    internalState.stack = null;\n    if (thrown) throw suppressed;\n  },\n  use: function use(value) {\n    addDisposableResource(getPendingDisposableStackInternalState(this), value, HINT);\n    return value;\n  },\n  adopt: function adopt(value, onDispose) {\n    var internalState = getPendingDisposableStackInternalState(this);\n    aCallable(onDispose);\n    addDisposableResource(internalState, undefined, HINT, function () {\n      onDispose(value);\n    });\n    return value;\n  },\n  defer: function defer(onDispose) {\n    var internalState = getPendingDisposableStackInternalState(this);\n    aCallable(onDispose);\n    addDisposableResource(internalState, undefined, HINT, onDispose);\n  },\n  move: function move() {\n    var internalState = getPendingDisposableStackInternalState(this);\n    var newDisposableStack = new $DisposableStack();\n    getDisposableStackInternalState(newDisposableStack).stack = internalState.stack;\n    internalState.stack = [];\n    internalState.state = DISPOSED;\n    if (!DESCRIPTORS) this.disposed = true;\n    return newDisposableStack;\n  }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(DisposableStackPrototype, 'disposed', {\n  configurable: true,\n  get: function disposed() {\n    return getDisposableStackInternalState(this).state === DISPOSED;\n  }\n});\n\ndefineBuiltIn(DisposableStackPrototype, DISPOSE, DisposableStackPrototype.dispose, { name: 'dispose' });\ndefineBuiltIn(DisposableStackPrototype, TO_STRING_TAG, DISPOSABLE_STACK, { nonWritable: true });\n\n$({ global: true, constructor: true }, {\n  DisposableStack: $DisposableStack\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.error.cause.js",
    "content": "'use strict';\n/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = globalThis[WEB_ASSEMBLY];\n\n// eslint-disable-next-line es/no-error-cause -- feature detection\nvar FORCED = new Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  var O = {};\n  // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n  $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  if (WebAssembly && WebAssembly[ERROR_NAME]) {\n    var O = {};\n    // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n    O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n    $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n  }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\nexportGlobalErrorCauseWrapper('Error', function (init) {\n  return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n  return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n  return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n  return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n  return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n  return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n  return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n  return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n  return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n  return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.error.is-error.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof');\nvar fails = require('../internals/fails');\n\nvar ERROR = 'Error';\nvar DOM_EXCEPTION = 'DOMException';\n// eslint-disable-next-line es/no-object-setprototypeof, no-proto -- safe\nvar PROTOTYPE_SETTING_AVAILABLE = Object.setPrototypeOf || {}.__proto__;\n\nvar DOMException = getBuiltIn(DOM_EXCEPTION);\nvar $Error = Error;\n// eslint-disable-next-line es/no-error-iserror -- safe\nvar $isError = $Error.isError;\n\nvar FORCED = !$isError || !PROTOTYPE_SETTING_AVAILABLE || fails(function () {\n  // Bun, isNativeError-based implementations, some buggy structuredClone-based implementations, etc.\n  // https://github.com/oven-sh/bun/issues/15821\n  return (DOMException && !$isError(new DOMException(DOM_EXCEPTION))) ||\n    // structuredClone-based implementations\n    // eslint-disable-next-line es/no-error-cause -- detection\n    !$isError(new $Error(ERROR, { cause: function () { /* empty */ } })) ||\n    // instanceof-based and FF Error#stack-based implementations\n    $isError(getBuiltIn('Object', 'create')($Error.prototype));\n});\n\n// `Error.isError` method\n// https://tc39.es/ecma262/#sec-error.iserror\n$({ target: 'Error', stat: true, sham: true, forced: FORCED }, {\n  isError: function isError(arg) {\n    if (!isObject(arg)) return false;\n    var tag = classof(arg);\n    return tag === ERROR || tag === DOM_EXCEPTION;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.error.to-string.js",
    "content": "'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar errorToString = require('../internals/error-to-string');\n\nvar ErrorPrototype = Error.prototype;\n\n// `Error.prototype.toString` method fix\n// https://tc39.es/ecma262/#sec-error.prototype.tostring\nif (ErrorPrototype.toString !== errorToString) {\n  defineBuiltIn(ErrorPrototype, 'toString', errorToString);\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.escape.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar exec = uncurryThis(/./.exec);\nvar numberToString = uncurryThis(1.1.toString);\nvar toUpperCase = uncurryThis(''.toUpperCase);\n\nvar raw = /[\\w*+\\-./@]/;\n\nvar hex = function (code, length) {\n  var result = numberToString(code, 16);\n  while (result.length < length) result = '0' + result;\n  return result;\n};\n\n// `escape` method\n// https://tc39.es/ecma262/#sec-escape-string\n$({ global: true }, {\n  escape: function escape(string) {\n    var str = toString(string);\n    var result = '';\n    var length = str.length;\n    var index = 0;\n    var chr, code;\n    while (index < length) {\n      chr = charAt(str, index++);\n      if (exec(raw, chr)) {\n        result += chr;\n      } else {\n        code = charCodeAt(chr, 0);\n        if (code < 256) {\n          result += '%' + toUpperCase(hex(code, 2));\n        } else {\n          result += '%u' + toUpperCase(hex(code, 4));\n        }\n      }\n    } return result;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.function.bind.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\n$({ target: 'Function', proto: true, forced: Function.bind !== bind }, {\n  bind: bind\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.function.has-instance.js",
    "content": "'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar definePropertyModule = require('../internals/object-define-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar makeBuiltIn = require('../internals/make-built-in');\n\nvar HAS_INSTANCE = wellKnownSymbol('hasInstance');\nvar FunctionPrototype = Function.prototype;\n\n// `Function.prototype[@@hasInstance]` method\n// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance\nif (!(HAS_INSTANCE in FunctionPrototype)) {\n  definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) {\n    if (!isCallable(this) || !isObject(O)) return false;\n    var P = this.prototype;\n    return isObject(P) ? isPrototypeOf(P, O) : O instanceof this;\n  }, HAS_INSTANCE) });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.function.name.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n  defineBuiltInAccessor(FunctionPrototype, NAME, {\n    configurable: true,\n    get: function () {\n      try {\n        return regExpExec(nameRE, functionToString(this))[1];\n      } catch (error) {\n        return '';\n      }\n    }\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.global-this.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true, forced: globalThis.globalThis !== globalThis }, {\n  globalThis: globalThis\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.concat.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar IS_PURE = require('../internals/is-pure');\n\nvar $Array = Array;\n\nvar IteratorProxy = createIteratorProxy(function () {\n  while (true) {\n    var iterator = this.iterator;\n    if (!iterator) {\n      var iterableIndex = this.nextIterableIndex++;\n      var iterables = this.iterables;\n      if (iterableIndex >= iterables.length) {\n        this.done = true;\n        return;\n      }\n      var entry = iterables[iterableIndex];\n      this.iterables[iterableIndex] = null;\n      iterator = this.iterator = anObject(call(entry.method, entry.iterable));\n      this.next = iterator.next;\n    }\n    var result = anObject(call(this.next, iterator));\n    if (result.done) {\n      this.iterator = null;\n      this.next = null;\n      continue;\n    }\n    return result.value;\n  }\n});\n\n// `Iterator.concat` method\n// https://tc39.es/ecma262/#sec-iterator.concat\n$({ target: 'Iterator', stat: true, forced: IS_PURE }, {\n  concat: function concat() {\n    var length = arguments.length;\n    var iterables = $Array(length);\n    for (var index = 0; index < length; index++) {\n      var item = anObject(arguments[index]);\n      iterables[index] = {\n        iterable: item,\n        method: aCallable(getIteratorMethod(item))\n      };\n    }\n    return new IteratorProxy({\n      iterables: iterables,\n      nextIterableIndex: 0,\n      iterator: null,\n      next: null\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.constructor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = globalThis[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n  || !isCallable(NativeIterator)\n  || NativeIterator.prototype !== IteratorPrototype\n  // FF44- non-standard `Iterator` passes previous tests\n  || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n  anInstance(this, IteratorPrototype);\n  if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n  if (DESCRIPTORS) {\n    defineBuiltInAccessor(IteratorPrototype, key, {\n      configurable: true,\n      get: function () {\n        return value;\n      },\n      set: function (replacement) {\n        anObject(this);\n        if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n        if (hasOwn(this, key)) this[key] = replacement;\n        else createProperty(this, key, replacement);\n      }\n    });\n  } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n  defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://tc39.es/ecma262/#sec-iterator\n$({ global: true, constructor: true, forced: FORCED }, {\n  Iterator: IteratorConstructor\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.dispose.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-explicit-resource-management\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar getMethod = require('../internals/get-method');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\n\nvar DISPOSE = wellKnownSymbol('dispose');\n\nif (!hasOwn(IteratorPrototype, DISPOSE)) {\n  defineBuiltIn(IteratorPrototype, DISPOSE, function () {\n    var $return = getMethod(this, 'return');\n    if ($return) call($return, this);\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.drop.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar iteratorClose = require('../internals/iterator-close');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('drop', 0);\nvar dropWithoutClosingOnEarlyError = !IS_PURE && !DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n  && iteratorHelperWithoutClosingOnEarlyError('drop', RangeError);\n\nvar FORCED = IS_PURE || DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR || dropWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var next = this.next;\n  var result, done;\n  while (this.remaining) {\n    this.remaining--;\n    result = anObject(call(next, iterator));\n    done = this.done = !!result.done;\n    if (done) return;\n  }\n  result = anObject(call(next, iterator));\n  done = this.done = !!result.done;\n  if (!done) return result.value;\n});\n\n// `Iterator.prototype.drop` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.drop\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n  drop: function drop(limit) {\n    anObject(this);\n    var remaining;\n    try {\n      remaining = toPositiveInteger(notANaN(+limit));\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (dropWithoutClosingOnEarlyError) return call(dropWithoutClosingOnEarlyError, this, remaining);\n\n    return new IteratorProxy(getIteratorDirect(this), {\n      remaining: remaining\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.every.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar everyWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('every', TypeError);\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEarlyError }, {\n  every: function every(predicate) {\n    anObject(this);\n    try {\n      aCallable(predicate);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (everyWithoutClosingOnEarlyError) return call(everyWithoutClosingOnEarlyError, this, predicate);\n\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return !iterate(record, function (value, stop) {\n      if (!predicate(value, counter++)) return stop();\n    }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.filter.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar IS_PURE = require('../internals/is-pure');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('filter', function () { /* empty */ });\nvar filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR\n  && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);\n\nvar FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var predicate = this.predicate;\n  var next = this.next;\n  var result, done, value;\n  while (true) {\n    result = anObject(call(next, iterator));\n    done = this.done = !!result.done;\n    if (done) return;\n    value = result.value;\n    if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n  }\n});\n\n// `Iterator.prototype.filter` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.filter\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n  filter: function filter(predicate) {\n    anObject(this);\n    try {\n      aCallable(predicate);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate);\n\n    return new IteratorProxy(getIteratorDirect(this), {\n      predicate: predicate\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.find.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar findWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('find', TypeError);\n\n// `Iterator.prototype.find` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.find\n$({ target: 'Iterator', proto: true, real: true, forced: findWithoutClosingOnEarlyError }, {\n  find: function find(predicate) {\n    anObject(this);\n    try {\n      aCallable(predicate);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (findWithoutClosingOnEarlyError) return call(findWithoutClosingOnEarlyError, this, predicate);\n\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return iterate(record, function (value, stop) {\n      if (predicate(value, counter++)) return stop(value);\n    }, { IS_RECORD: true, INTERRUPTED: true }).result;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.flat-map.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorClose = require('../internals/iterator-close');\nvar IS_PURE = require('../internals/is-pure');\nvar iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\n// Should not throw an error for an iterator without `return` method. Fixed in Safari 26.2\n// https://bugs.webkit.org/show_bug.cgi?id=297532\nfunction throwsOnIteratorWithoutReturn() {\n  try {\n    // eslint-disable-next-line es/no-map, es/no-iterator, es/no-iterator-prototype-flatmap -- required for testing\n    var it = Iterator.prototype.flatMap.call(new Map([[4, 5]]).entries(), function (v) { return v; });\n    it.next();\n    it['return']();\n  } catch (error) {\n    return true;\n  }\n}\n\nvar FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE\n  && !iteratorHelperThrowsOnInvalidIterator('flatMap', function () { /* empty */ });\nvar flatMapWithoutClosingOnEarlyError = !IS_PURE && !FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n  && iteratorHelperWithoutClosingOnEarlyError('flatMap', TypeError);\n\nvar FORCED = IS_PURE || FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || flatMapWithoutClosingOnEarlyError\n  || throwsOnIteratorWithoutReturn();\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var mapper = this.mapper;\n  var result, inner;\n\n  while (true) {\n    if (inner = this.inner) try {\n      result = anObject(call(inner.next, inner.iterator));\n      if (!result.done) return result.value;\n      this.inner = null;\n    } catch (error) { iteratorClose(iterator, 'throw', error); }\n\n    result = anObject(call(this.next, iterator));\n\n    if (this.done = !!result.done) return;\n\n    try {\n      this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false);\n    } catch (error) { iteratorClose(iterator, 'throw', error); }\n  }\n});\n\n// `Iterator.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.flatmap\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n  flatMap: function flatMap(mapper) {\n    anObject(this);\n    try {\n      aCallable(mapper);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (flatMapWithoutClosingOnEarlyError) return call(flatMapWithoutClosingOnEarlyError, this, mapper);\n\n    return new IteratorProxy(getIteratorDirect(this), {\n      mapper: mapper,\n      inner: null\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.for-each.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar forEachWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('forEach', TypeError);\n\n// `Iterator.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.foreach\n$({ target: 'Iterator', proto: true, real: true, forced: forEachWithoutClosingOnEarlyError }, {\n  forEach: function forEach(fn) {\n    anObject(this);\n    try {\n      aCallable(fn);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (forEachWithoutClosingOnEarlyError) return call(forEachWithoutClosingOnEarlyError, this, fn);\n\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    iterate(record, function (value) {\n      fn(value, counter++);\n    }, { IS_RECORD: true });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.from.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar IS_PURE = require('../internals/is-pure');\n\nvar FORCED = IS_PURE || function () {\n  // Should not throw when an underlying iterator's `return` method is null\n  // https://bugs.webkit.org/show_bug.cgi?id=288714\n  try {\n    // eslint-disable-next-line es/no-iterator -- required for testing\n    Iterator.from({ 'return': null })['return']();\n  } catch (error) {\n    return true;\n  }\n}();\n\nvar IteratorProxy = createIteratorProxy(function () {\n  return call(this.next, this.iterator);\n}, true);\n\n// `Iterator.from` method\n// https://tc39.es/ecma262/#sec-iterator.from\n$({ target: 'Iterator', stat: true, forced: FORCED }, {\n  from: function from(O) {\n    var iteratorRecord = getIteratorFlattenable(typeof O == 'string' ? toObject(O) : O, true);\n    return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator)\n      ? iteratorRecord.iterator\n      : new IteratorProxy(iteratorRecord);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.map.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });\nvar mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n  && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);\n\nvar FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var result = anObject(call(this.next, iterator));\n  var done = this.done = !!result.done;\n  if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.map\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n  map: function map(mapper) {\n    anObject(this);\n    try {\n      aCallable(mapper);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);\n\n    return new IteratorProxy(getIteratorDirect(this), {\n      mapper: mapper\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.reduce.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\nvar apply = require('../internals/function-apply');\nvar fails = require('../internals/fails');\n\nvar $TypeError = TypeError;\n\n// https://bugs.webkit.org/show_bug.cgi?id=291651\nvar FAILS_ON_INITIAL_UNDEFINED = fails(function () {\n  // eslint-disable-next-line es/no-iterator-prototype-reduce, es/no-array-prototype-keys, array-callback-return -- required for testing\n  [].keys().reduce(function () { /* empty */ }, undefined);\n});\n\nvar reduceWithoutClosingOnEarlyError = !FAILS_ON_INITIAL_UNDEFINED && iteratorHelperWithoutClosingOnEarlyError('reduce', $TypeError);\n\n// `Iterator.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.reduce\n$({ target: 'Iterator', proto: true, real: true, forced: FAILS_ON_INITIAL_UNDEFINED || reduceWithoutClosingOnEarlyError }, {\n  reduce: function reduce(reducer /* , initialValue */) {\n    anObject(this);\n    try {\n      aCallable(reducer);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    var noInitial = arguments.length < 2;\n    var accumulator = noInitial ? undefined : arguments[1];\n    if (reduceWithoutClosingOnEarlyError) {\n      return apply(reduceWithoutClosingOnEarlyError, this, noInitial ? [reducer] : [reducer, accumulator]);\n    }\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    iterate(record, function (value) {\n      if (noInitial) {\n        noInitial = false;\n        accumulator = value;\n      } else {\n        accumulator = reducer(accumulator, value, counter);\n      }\n      counter++;\n    }, { IS_RECORD: true });\n    if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n    return accumulator;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.some.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar someWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('some', TypeError);\n\n// `Iterator.prototype.some` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.some\n$({ target: 'Iterator', proto: true, real: true, forced: someWithoutClosingOnEarlyError }, {\n  some: function some(predicate) {\n    anObject(this);\n    try {\n      aCallable(predicate);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (someWithoutClosingOnEarlyError) return call(someWithoutClosingOnEarlyError, this, predicate);\n\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return iterate(record, function (value, stop) {\n      if (predicate(value, counter++)) return stop();\n    }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.take.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\nvar IS_PURE = require('../internals/is-pure');\n\nvar TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('take', 1);\nvar takeWithoutClosingOnEarlyError = !IS_PURE && !TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR\n  && iteratorHelperWithoutClosingOnEarlyError('take', RangeError);\n\nvar FORCED = IS_PURE || TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR || takeWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  if (!this.remaining--) {\n    this.done = true;\n    return iteratorClose(iterator, 'normal', undefined);\n  }\n  var result = anObject(call(this.next, iterator));\n  var done = this.done = !!result.done;\n  if (!done) return result.value;\n});\n\n// `Iterator.prototype.take` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.take\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n  take: function take(limit) {\n    anObject(this);\n    var remaining;\n    try {\n      remaining = toPositiveInteger(notANaN(+limit));\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (takeWithoutClosingOnEarlyError) return call(takeWithoutClosingOnEarlyError, this, remaining);\n\n    return new IteratorProxy(getIteratorDirect(this), {\n      remaining: remaining\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.iterator.to-array.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar createProperty = require('../internals/create-property');\nvar iterate = require('../internals/iterate');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.toArray` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.toarray\n$({ target: 'Iterator', proto: true, real: true }, {\n  toArray: function toArray() {\n    var result = [];\n    var index = 0;\n    iterate(getIteratorDirect(anObject(this)), function (element) {\n      createProperty(result, index++, element);\n    }, { IS_RECORD: true });\n    return result;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.json.is-raw-json.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\nvar isRawJSON = require('../internals/is-raw-json');\n\n// `JSON.isRawJSON` method\n// https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {\n  isRawJSON: isRawJSON\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.json.parse.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar parseJSONString = require('../internals/parse-json-string');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar JSON = globalThis.JSON;\nvar Number = globalThis.Number;\nvar SyntaxError = globalThis.SyntaxError;\nvar nativeParse = JSON && JSON.parse;\nvar enumerableOwnProperties = getBuiltIn('Object', 'keys');\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar IS_DIGIT = /^\\d$/;\nvar IS_NON_ZERO_DIGIT = /^[1-9]$/;\nvar IS_NUMBER_START = /^[\\d-]$/;\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\nvar PRIMITIVE = 0;\nvar OBJECT = 1;\n\nvar $parse = function (source, reviver) {\n  source = toString(source);\n  var context = new Context(source, 0, '');\n  var root = context.parse();\n  var value = root.value;\n  var endIndex = context.skip(IS_WHITESPACE, root.end);\n  if (endIndex < source.length) {\n    throw new SyntaxError('Unexpected extra character: \"' + at(source, endIndex) + '\" after the parsed data at: ' + endIndex);\n  }\n  return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;\n};\n\nvar internalize = function (holder, name, reviver, node) {\n  var val = holder[name];\n  var unmodified = node && val === node.value;\n  var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};\n  var elementRecordsLen, keys, len, i, P;\n  if (isObject(val)) {\n    var nodeIsArray = isArray(val);\n    var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};\n    if (nodeIsArray) {\n      elementRecordsLen = nodes.length;\n      len = lengthOfArrayLike(val);\n      for (i = 0; i < len; i++) {\n        internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));\n      }\n    } else {\n      keys = enumerableOwnProperties(val);\n      len = lengthOfArrayLike(keys);\n      for (i = 0; i < len; i++) {\n        P = keys[i];\n        internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));\n      }\n    }\n  }\n  return call(reviver, holder, name, val, context);\n};\n\nvar internalizeProperty = function (object, key, value) {\n  if (DESCRIPTORS) {\n    var descriptor = getOwnPropertyDescriptor(object, key);\n    if (descriptor && !descriptor.configurable) return;\n  }\n  if (value === undefined) delete object[key];\n  else createProperty(object, key, value);\n};\n\nvar Node = function (value, end, source, nodes) {\n  this.value = value;\n  this.end = end;\n  this.source = source;\n  this.nodes = nodes;\n};\n\nvar Context = function (source, index) {\n  this.source = source;\n  this.index = index;\n};\n\n// https://www.json.org/json-en.html\nContext.prototype = {\n  fork: function (nextIndex) {\n    return new Context(this.source, nextIndex);\n  },\n  parse: function () {\n    var source = this.source;\n    var i = this.skip(IS_WHITESPACE, this.index);\n    var fork = this.fork(i);\n    var chr = at(source, i);\n    if (exec(IS_NUMBER_START, chr)) return fork.number();\n    switch (chr) {\n      case '{':\n        return fork.object();\n      case '[':\n        return fork.array();\n      case '\"':\n        return fork.string();\n      case 't':\n        return fork.keyword(true);\n      case 'f':\n        return fork.keyword(false);\n      case 'n':\n        return fork.keyword(null);\n    } throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n  },\n  node: function (type, value, start, end, nodes) {\n    return new Node(value, end, type ? null : slice(this.source, start, end), nodes);\n  },\n  object: function () {\n    var source = this.source;\n    var i = this.index + 1;\n    var expectKeypair = false;\n    var object = {};\n    var nodes = {};\n    var closed = false;\n    while (i < source.length) {\n      i = this.until(['\"', '}'], i);\n      if (at(source, i) === '}' && !expectKeypair) {\n        i++;\n        closed = true;\n        break;\n      }\n      // Parsing the key\n      var result = this.fork(i).string();\n      var key = result.value;\n      i = result.end;\n      i = this.until([':'], i) + 1;\n      // Parsing value\n      i = this.skip(IS_WHITESPACE, i);\n      result = this.fork(i).parse();\n      createProperty(nodes, key, result);\n      createProperty(object, key, result.value);\n      i = this.until([',', '}'], result.end);\n      var chr = at(source, i);\n      if (chr === ',') {\n        expectKeypair = true;\n        i++;\n      } else if (chr === '}') {\n        i++;\n        closed = true;\n        break;\n      }\n    }\n    if (!closed) throw new SyntaxError('Unterminated object at: ' + i);\n    return this.node(OBJECT, object, this.index, i, nodes);\n  },\n  array: function () {\n    var source = this.source;\n    var i = this.index + 1;\n    var expectElement = false;\n    var array = [];\n    var nodes = [];\n    var closed = false;\n    while (i < source.length) {\n      i = this.skip(IS_WHITESPACE, i);\n      if (at(source, i) === ']' && !expectElement) {\n        i++;\n        closed = true;\n        break;\n      }\n      var result = this.fork(i).parse();\n      push(nodes, result);\n      push(array, result.value);\n      i = this.until([',', ']'], result.end);\n      if (at(source, i) === ',') {\n        expectElement = true;\n        i++;\n      } else if (at(source, i) === ']') {\n        i++;\n        closed = true;\n        break;\n      }\n    }\n    if (!closed) throw new SyntaxError('Unterminated array at: ' + i);\n    return this.node(OBJECT, array, this.index, i, nodes);\n  },\n  string: function () {\n    var index = this.index;\n    var parsed = parseJSONString(this.source, this.index + 1);\n    return this.node(PRIMITIVE, parsed.value, index, parsed.end);\n  },\n  number: function () {\n    var source = this.source;\n    var startIndex = this.index;\n    var i = startIndex;\n    if (at(source, i) === '-') i++;\n    if (at(source, i) === '0') i++;\n    else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, i + 1);\n    else throw new SyntaxError('Failed to parse number at: ' + i);\n    if (at(source, i) === '.') {\n      var fractionStartIndex = i + 1;\n      i = this.skip(IS_DIGIT, fractionStartIndex);\n      if (fractionStartIndex === i) throw new SyntaxError(\"Failed to parse number's fraction at: \" + i);\n    }\n    if (at(source, i) === 'e' || at(source, i) === 'E') {\n      i++;\n      if (at(source, i) === '+' || at(source, i) === '-') i++;\n      var exponentStartIndex = i;\n      i = this.skip(IS_DIGIT, i);\n      if (exponentStartIndex === i) throw new SyntaxError(\"Failed to parse number's exponent value at: \" + i);\n    }\n    return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);\n  },\n  keyword: function (value) {\n    var keyword = '' + value;\n    var index = this.index;\n    var endIndex = index + keyword.length;\n    if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);\n    return this.node(PRIMITIVE, value, index, endIndex);\n  },\n  skip: function (regex, i) {\n    var source = this.source;\n    for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;\n    return i;\n  },\n  until: function (array, i) {\n    i = this.skip(IS_WHITESPACE, i);\n    var chr = at(this.source, i);\n    for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;\n    throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n  }\n};\n\nvar NO_SOURCE_SUPPORT = fails(function () {\n  var unsafeInt = '9007199254740993';\n  var source;\n  nativeParse(unsafeInt, function (key, value, context) {\n    source = context.source;\n  });\n  return source !== unsafeInt;\n});\n\nvar PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {\n  // Safari 9 bug\n  return 1 / nativeParse('-0 \\t') !== -Infinity;\n});\n\n// `JSON.parse` method\n// https://tc39.es/ecma262/#sec-json.parse\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {\n  parse: function parse(text, reviver) {\n    return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.json.raw-json.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar createProperty = require('../internals/create-property');\nvar setInternalState = require('../internals/internal-state').set;\n\nvar $SyntaxError = SyntaxError;\nvar parse = getBuiltIn('JSON', 'parse');\nvar create = getBuiltIn('Object', 'create');\nvar freeze = getBuiltIn('Object', 'freeze');\nvar at = uncurryThis(''.charAt);\n\nvar ERROR_MESSAGE = 'Unacceptable as raw JSON';\n\nvar isWhitespace = function (it) {\n  return it === ' ' || it === '\\t' || it === '\\n' || it === '\\r';\n};\n\n// `JSON.rawJSON` method\n// https://tc39.es/proposal-json-parse-with-source/#sec-json.rawjson\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {\n  rawJSON: function rawJSON(text) {\n    var jsonString = toString(text);\n    if (jsonString === '' || isWhitespace(at(jsonString, 0)) || isWhitespace(at(jsonString, jsonString.length - 1))) {\n      throw new $SyntaxError(ERROR_MESSAGE);\n    }\n    var parsed = parse(jsonString);\n    if (typeof parsed == 'object' && parsed !== null) throw new $SyntaxError(ERROR_MESSAGE);\n    var obj = create(null);\n    setInternalState(obj, { type: 'RawJSON' });\n    createProperty(obj, 'rawJSON', jsonString);\n    return FREEZING ? freeze(obj) : obj;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.json.stringify.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isRawJSON = require('../internals/is-raw-json');\nvar isSymbol = require('../internals/is-symbol');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\nvar arraySlice = require('../internals/array-slice');\nvar parseJSONString = require('../internals/parse-json-string');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar slice = uncurryThis(''.slice);\nvar push = uncurryThis([].push);\nvar numberToString = uncurryThis(1.1.toString);\n\nvar surrogates = /[\\uD800-\\uDFFF]/g;\nvar leadingSurrogates = /^[\\uD800-\\uDBFF]$/;\nvar trailingSurrogates = /^[\\uDC00-\\uDFFF]$/;\n\nvar MARK = uid();\nvar MARK_LENGTH = MARK.length;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n  var symbol = getBuiltIn('Symbol')('stringify detection');\n  // MS Edge converts symbol values to JSON as {}\n  return $stringify([symbol]) !== '[null]'\n    // WebKit converts symbol values to JSON as null\n    || $stringify({ a: symbol }) !== '{}'\n    // V8 throws on boxed symbols\n    || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n  return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n    || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithProperSymbolsConversion = WRONG_SYMBOLS_CONVERSION ? function (it, replacer) {\n  var args = arraySlice(arguments);\n  var $replacer = getReplacerFunction(replacer);\n  if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n  args[1] = function (key, value) {\n    // some old implementations (like WebKit) could pass numbers as keys\n    if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n    if (!isSymbol(value)) return value;\n  };\n  return apply($stringify, null, args);\n} : $stringify;\n\nvar fixIllFormedJSON = function (match, offset, string) {\n  var prev = charAt(string, offset - 1);\n  var next = charAt(string, offset + 1);\n  if (\n    (exec(leadingSurrogates, match) && !exec(trailingSurrogates, next)) ||\n    (exec(trailingSurrogates, match) && !exec(leadingSurrogates, prev))\n  ) {\n    return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n  } return match;\n};\n\nvar getReplacerFunction = function (replacer) {\n  if (isCallable(replacer)) return replacer;\n  if (!isArray(replacer)) return;\n  var rawLength = replacer.length;\n  var keys = [];\n  for (var i = 0; i < rawLength; i++) {\n    var element = replacer[i];\n    if (typeof element == 'string') push(keys, element);\n    else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n  }\n  var keysLength = keys.length;\n  var root = true;\n  return function (key, value) {\n    if (root) {\n      root = false;\n      return value;\n    }\n    if (isArray(this)) return value;\n    for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n  };\n};\n\n// `JSON.stringify` method\n// https://tc39.es/ecma262/#sec-json.stringify\n// https://github.com/tc39/proposal-json-parse-with-source\nif ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE || !NATIVE_RAW_JSON }, {\n  stringify: function stringify(text, replacer, space) {\n    var replacerFunction = getReplacerFunction(replacer);\n    var rawStrings = [];\n\n    var json = stringifyWithProperSymbolsConversion(text, function (key, value) {\n      // some old implementations (like WebKit) could pass numbers as keys\n      var v = isCallable(replacerFunction) ? call(replacerFunction, this, $String(key), value) : value;\n      return !NATIVE_RAW_JSON && isRawJSON(v) ? MARK + (push(rawStrings, v.rawJSON) - 1) : v;\n    }, space);\n\n    if (typeof json != 'string') return json;\n\n    if (ILL_FORMED_UNICODE) json = replace(json, surrogates, fixIllFormedJSON);\n\n    if (NATIVE_RAW_JSON) return json;\n\n    var result = '';\n    var length = json.length;\n\n    for (var i = 0; i < length; i++) {\n      var chr = charAt(json, i);\n      if (chr === '\"') {\n        var end = parseJSONString(json, ++i).end - 1;\n        var string = slice(json, i, end);\n        result += slice(string, 0, MARK_LENGTH) === MARK\n          ? rawStrings[slice(string, MARK_LENGTH)]\n          : '\"' + string + '\"';\n        i = end;\n      } else result += chr;\n    }\n\n    return result;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.json.to-string-tag.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(globalThis.JSON, 'JSON', true);\n"
  },
  {
    "path": "packages/core-js/modules/es.map.constructor.js",
    "content": "'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n  return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n"
  },
  {
    "path": "packages/core-js/modules/es.map.get-or-insert-computed.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsertComputed` method\n// https://tc39.es/ecma262/#sec-map.prototype.getorinsertcomputed\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n  getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n    var hasKey = has(this, key);\n    aCallable(callbackfn);\n    if (hasKey) return get(this, key);\n    // CanonicalizeKeyedCollectionKey\n    if (key === 0 && 1 / key === -Infinity) key = 0;\n    var value = callbackfn(key);\n    set(this, key, value);\n    return value;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.map.get-or-insert.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsert` method\n// https://tc39.es/ecma262/#sec-map.prototype.getorinsert\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n  getOrInsert: function getOrInsert(key, value) {\n    if (has(this, key)) return get(this, key);\n    set(this, key, value);\n    return value;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.map.group-by.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar iterate = require('../internals/iterate');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\nvar fails = require('../internals/fails');\n\nvar Map = MapHelpers.Map;\nvar has = MapHelpers.has;\nvar get = MapHelpers.get;\nvar set = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// https://bugs.webkit.org/show_bug.cgi?id=271524\nvar DOES_NOT_WORK_WITH_PRIMITIVES = IS_PURE || fails(function () {\n  return Map.groupBy('ab', function (it) {\n    return it;\n  }).get('a').length !== 1;\n});\n\n// `Map.groupBy` method\n// https://tc39.es/ecma262/#sec-map.groupby\n$({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES }, {\n  groupBy: function groupBy(items, callbackfn) {\n    requireObjectCoercible(items);\n    aCallable(callbackfn);\n    var map = new Map();\n    var k = 0;\n    iterate(items, function (value) {\n      var key = callbackfn(value, k++);\n      if (!has(map, key)) set(map, key, [value]);\n      else push(get(map, key), value);\n    });\n    return map;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.map.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n"
  },
  {
    "path": "packages/core-js/modules/es.math.acosh.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// eslint-disable-next-line es/no-math-acosh -- required for testing\nvar $acosh = Math.acosh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n\nvar FORCED = !$acosh\n  // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n  || Math.floor($acosh(Number.MAX_VALUE)) !== 710\n  // Tor Browser bug: Math.acosh(Infinity) -> NaN\n  || $acosh(Infinity) !== Infinity;\n\n// `Math.acosh` method\n// https://tc39.es/ecma262/#sec-math.acosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  acosh: function acosh(x) {\n    var n = +x;\n    return n < 1 ? NaN : n > 94906265.62425156\n      ? log(n) + LN2\n      : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.asinh.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-asinh -- required for testing\nvar $asinh = Math.asinh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n// sqrt(2 ** 53) - prevent n * n overflow\nvar SQRT_2_POW_53 = 94906265.62425156;\n\nfunction asinh(x) {\n  var n = +x;\n  return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : n > SQRT_2_POW_53 ? log(n) + LN2 : log(n + sqrt(n * n + 1));\n}\n\nvar FORCED = !($asinh && 1 / $asinh(0) > 0);\n\n// `Math.asinh` method\n// https://tc39.es/ecma262/#sec-math.asinh\n// Tor Browser bug: Math.asinh(0) -> -0\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  asinh: asinh\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.atanh.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// eslint-disable-next-line es/no-math-atanh -- required for testing\nvar $atanh = Math.atanh;\n\nvar FORCED = !($atanh && 1 / $atanh(-0) < 0);\n\n// `Math.atanh` method\n// https://tc39.es/ecma262/#sec-math.atanh\n// Tor Browser bug: Math.atanh(-0) -> 0\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  atanh: function atanh(x) {\n    var n = +x;\n    return n === 0 ? n : log1p(2 * n / (1 - n)) / 2;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.cbrt.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.es/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n  cbrt: function cbrt(x) {\n    var n = +x;\n    return sign(n) * pow(abs(n), 1 / 3);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.clz32.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\nvar floor = Math.floor;\nvar log = Math.log;\nvar LOG2E = Math.LOG2E;\n\n// `Math.clz32` method\n// https://tc39.es/ecma262/#sec-math.clz32\n$({ target: 'Math', stat: true }, {\n  clz32: function clz32(x) {\n    var n = x >>> 0;\n    return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.cosh.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// eslint-disable-next-line es/no-math-cosh -- required for testing\nvar $cosh = Math.cosh;\nvar abs = Math.abs;\nvar E = Math.E;\n\nvar FORCED = !$cosh || $cosh(710) === Infinity;\n\n// `Math.cosh` method\n// https://tc39.es/ecma262/#sec-math.cosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  cosh: function cosh(x) {\n    var t = expm1(abs(x) - 1) + 1;\n    return (t + 1 / (t * E * E)) * (E / 2);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.expm1.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// `Math.expm1` method\n// https://tc39.es/ecma262/#sec-math.expm1\n// eslint-disable-next-line es/no-math-expm1 -- required for testing\n$({ target: 'Math', stat: true, forced: expm1 !== Math.expm1 }, { expm1: expm1 });\n"
  },
  {
    "path": "packages/core-js/modules/es.math.f16round.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar floatRound = require('../internals/math-float-round');\n\nvar FLOAT16_EPSILON = 0.0009765625;\nvar FLOAT16_MAX_VALUE = 65504;\nvar FLOAT16_MIN_VALUE = 6.103515625e-05;\n\n// `Math.f16round` method\n// https://tc39.es/ecma262/#sec-math.f16round\n$({ target: 'Math', stat: true }, {\n  f16round: function f16round(x) {\n    return floatRound(x, FLOAT16_EPSILON, FLOAT16_MAX_VALUE, FLOAT16_MIN_VALUE);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.fround.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fround = require('../internals/math-fround');\n\n// `Math.fround` method\n// https://tc39.es/ecma262/#sec-math.fround\n$({ target: 'Math', stat: true }, { fround: fround });\n"
  },
  {
    "path": "packages/core-js/modules/es.math.hypot.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  hypot: function hypot(value1, value2) {\n    var sum = 0;\n    var i = 0;\n    var aLen = arguments.length;\n    var larg = 0;\n    var arg, div;\n    while (i < aLen) {\n      arg = abs(arguments[i++]);\n      if (larg < arg) {\n        div = larg / arg;\n        sum = sum * div * div + 1;\n        larg = arg;\n      } else if (arg > 0) {\n        div = arg / larg;\n        sum += div * div;\n      } else sum += arg;\n    }\n    return larg === Infinity ? Infinity : larg * sqrt(sum);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.imul.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-math-imul -- required for testing\nvar $imul = Math.imul;\n\nvar FORCED = fails(function () {\n  return $imul(0xFFFFFFFF, 5) !== -5 || $imul.length !== 2;\n});\n\n// `Math.imul` method\n// https://tc39.es/ecma262/#sec-math.imul\n// some WebKit versions fails with big numbers, some has wrong arity\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  imul: function imul(x, y) {\n    var UINT16 = 0xFFFF;\n    var xn = +x;\n    var yn = +y;\n    var xl = UINT16 & xn;\n    var yl = UINT16 & yn;\n    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.log10.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar log10 = require('../internals/math-log10');\n\n// `Math.log10` method\n// https://tc39.es/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n  log10: log10\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.log1p.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// `Math.log1p` method\n// https://tc39.es/ecma262/#sec-math.log1p\n$({ target: 'Math', stat: true }, { log1p: log1p });\n"
  },
  {
    "path": "packages/core-js/modules/es.math.log2.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar log2 = require('../internals/math-log2');\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n  log2: log2\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.sign.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n  sign: sign\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.sinh.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar expm1 = require('../internals/math-expm1');\n\nvar abs = Math.abs;\nvar exp = Math.exp;\nvar E = Math.E;\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line es/no-math-sinh -- required for testing\n  return Math.sinh(-2e-17) !== -2e-17;\n});\n\n// `Math.sinh` method\n// https://tc39.es/ecma262/#sec-math.sinh\n// V8 near Chromium 38 has a problem with very small numbers\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  sinh: function sinh(x) {\n    var n = +x;\n    return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.sum-precise.js",
    "content": "'use strict';\n// based on Shewchuk's algorithm for exactly floating point addition\n// adapted from https://github.com/tc39/proposal-math-sum/blob/3513d58323a1ae25560e8700aa5294500c6c9287/polyfill/polyfill.mjs\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterate = require('../internals/iterate');\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar $Infinity = Infinity;\nvar $NaN = NaN;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar push = uncurryThis([].push);\n\nvar POW_2_1023 = pow(2, 1023);\nvar MAX_SAFE_INTEGER = pow(2, 53) - 1; // 2 ** 53 - 1 === 9007199254740991\nvar MAX_DOUBLE = Number.MAX_VALUE; // 2 ** 1024 - 2 ** (1023 - 52) === 1.79769313486231570815e+308\nvar MAX_ULP = pow(2, 971); // 2 ** (1023 - 52) === 1.99584030953471981166e+292\n\nvar NOT_A_NUMBER = {};\nvar MINUS_INFINITY = {};\nvar PLUS_INFINITY = {};\nvar MINUS_ZERO = {};\nvar FINITE = {};\n\n// prerequisite: abs(x) >= abs(y)\nvar twosum = function (x, y) {\n  var hi = x + y;\n  var lo = y - (hi - x);\n  return { hi: hi, lo: lo };\n};\n\n// `Math.sumPrecise` method\n// https://tc39.es/ecma262/#sec-math.sumprecise\n$({ target: 'Math', stat: true }, {\n  // eslint-disable-next-line max-statements -- ok\n  sumPrecise: function sumPrecise(items) {\n    var numbers = [];\n    var count = 0;\n    var state = MINUS_ZERO;\n\n    iterate(items, function (n) {\n      if (++count > MAX_SAFE_INTEGER) throw new $RangeError('Maximum allowed index exceeded');\n      if (typeof n != 'number') throw new $TypeError('Value is not a number');\n      if (state !== NOT_A_NUMBER) {\n        // eslint-disable-next-line no-self-compare -- NaN check\n        if (n !== n) state = NOT_A_NUMBER;\n        else if (n === $Infinity) state = state === MINUS_INFINITY ? NOT_A_NUMBER : PLUS_INFINITY;\n        else if (n === -$Infinity) state = state === PLUS_INFINITY ? NOT_A_NUMBER : MINUS_INFINITY;\n        else if ((n !== 0 || (1 / n) === $Infinity) && (state === MINUS_ZERO || state === FINITE)) {\n          state = FINITE;\n          push(numbers, n);\n        }\n      }\n    });\n\n    switch (state) {\n      case NOT_A_NUMBER: return $NaN;\n      case MINUS_INFINITY: return -$Infinity;\n      case PLUS_INFINITY: return $Infinity;\n      case MINUS_ZERO: return -0;\n    }\n\n    var partials = [];\n    var overflow = 0; // conceptually 2 ** 1024 times this value; the final partial is biased by this amount\n    var x, y, sum, hi, lo, tmp;\n\n    for (var i = 0; i < numbers.length; i++) {\n      x = numbers[i];\n      var actuallyUsedPartials = 0;\n      for (var j = 0; j < partials.length; j++) {\n        y = partials[j];\n        if (abs(x) < abs(y)) {\n          tmp = x;\n          x = y;\n          y = tmp;\n        }\n        sum = twosum(x, y);\n        hi = sum.hi;\n        lo = sum.lo;\n        if (abs(hi) === $Infinity) {\n          var sign = hi === $Infinity ? 1 : -1;\n          overflow += sign;\n\n          x = (x - (sign * POW_2_1023)) - (sign * POW_2_1023);\n          if (abs(x) < abs(y)) {\n            tmp = x;\n            x = y;\n            y = tmp;\n          }\n          sum = twosum(x, y);\n          hi = sum.hi;\n          lo = sum.lo;\n        }\n        if (lo !== 0) partials[actuallyUsedPartials++] = lo;\n        x = hi;\n      }\n      partials.length = actuallyUsedPartials;\n      if (x !== 0) push(partials, x);\n    }\n\n    // compute the exact sum of partials, stopping once we lose precision\n    var n = partials.length - 1;\n    hi = 0;\n    lo = 0;\n\n    if (overflow !== 0) {\n      var next = n >= 0 ? partials[n] : 0;\n      n--;\n      if (abs(overflow) > 1 || (overflow > 0 && next > 0) || (overflow < 0 && next < 0)) {\n        return overflow > 0 ? $Infinity : -$Infinity;\n      }\n      // here we actually have to do the arithmetic\n      // drop a factor of 2 so we can do it without overflow\n      // assert(abs(overflow) === 1)\n      sum = twosum(overflow * POW_2_1023, next / 2);\n      hi = sum.hi;\n      lo = sum.lo;\n      lo *= 2;\n      if (abs(2 * hi) === $Infinity) {\n        // rounding to the maximum value\n        if (hi > 0) {\n          return (hi === POW_2_1023 && lo === -(MAX_ULP / 2) && n >= 0 && partials[n] < 0) ? MAX_DOUBLE : $Infinity;\n        } return (hi === -POW_2_1023 && lo === (MAX_ULP / 2) && n >= 0 && partials[n] > 0) ? -MAX_DOUBLE : -$Infinity;\n      }\n\n      if (lo !== 0) {\n        partials[++n] = lo;\n        lo = 0;\n      }\n\n      hi *= 2;\n    }\n\n    while (n >= 0) {\n      sum = twosum(hi, partials[n--]);\n      hi = sum.hi;\n      lo = sum.lo;\n      if (lo !== 0) break;\n    }\n\n    if (n >= 0 && ((lo < 0 && partials[n] < 0) || (lo > 0 && partials[n] > 0))) {\n      y = lo * 2;\n      x = hi + y;\n      if (y === x - hi) hi = x;\n    }\n\n    return hi;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.tanh.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar exp = Math.exp;\n\n// `Math.tanh` method\n// https://tc39.es/ecma262/#sec-math.tanh\n$({ target: 'Math', stat: true }, {\n  tanh: function tanh(x) {\n    var n = +x;\n    var a = expm1(n);\n    var b = expm1(-n);\n    return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.math.to-string-tag.js",
    "content": "'use strict';\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n"
  },
  {
    "path": "packages/core-js/modules/es.math.trunc.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar trunc = require('../internals/math-trunc');\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n  trunc: trunc\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.number.constructor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = globalThis[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = globalThis.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n  var primValue = toPrimitive(value, 'number');\n  return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n  var it = toPrimitive(argument, 'number');\n  var first, third, radix, maxCode, digits, length, index, code;\n  if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number');\n  if (typeof it == 'string' && it.length > 2) {\n    it = trim(it);\n    first = charCodeAt(it, 0);\n    if (first === 43 || first === 45) {\n      third = charCodeAt(it, 2);\n      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n    } else if (first === 48) {\n      switch (charCodeAt(it, 1)) {\n        // fast equal of /^0b[01]+$/i\n        case 66:\n        case 98:\n          radix = 2;\n          maxCode = 49;\n          break;\n        // fast equal of /^0o[0-7]+$/i\n        case 79:\n        case 111:\n          radix = 8;\n          maxCode = 55;\n          break;\n        default:\n          return +it;\n      }\n      digits = stringSlice(it, 2);\n      length = digits.length;\n      for (index = 0; index < length; index++) {\n        code = charCodeAt(digits, index);\n        // parseInt parses a string to a first unavailable symbol\n        // but ToNumber should return NaN if a string contains unavailable symbols\n        if (code < 48 || code > maxCode) return NaN;\n      } return parseInt(digits, radix);\n    }\n  } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n  // includes check on 1..constructor(foo) case\n  return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n  var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n  return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n  Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n  for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n    // ES3:\n    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n    // ES2015 (in case, if modules with ES2015 Number statics required before):\n    'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n    // ESNext\n    'fromString,range'\n  ).split(','), j = 0, key; keys.length > j; j++) {\n    if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n      defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n    }\n  }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n"
  },
  {
    "path": "packages/core-js/modules/es.number.epsilon.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.es/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n  EPSILON: Math.pow(2, -52)\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.number.is-finite.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n"
  },
  {
    "path": "packages/core-js/modules/es.number.is-integer.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\n// `Number.isInteger` method\n// https://tc39.es/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n  isInteger: isIntegralNumber\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.number.is-nan.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n  isNaN: function isNaN(number) {\n    // eslint-disable-next-line no-self-compare -- NaN check\n    return number !== number;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.number.is-safe-integer.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.es/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n  isSafeInteger: function isSafeInteger(number) {\n    return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.number.max-safe-integer.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n  MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.number.min-safe-integer.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n  MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.number.parse-float.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.es/ecma262/#sec-number.parseFloat\n// eslint-disable-next-line es/no-number-parsefloat -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, {\n  parseFloat: parseFloat\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.number.parse-int.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.es/ecma262/#sec-number.parseint\n// eslint-disable-next-line es/no-number-parseint -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, {\n  parseInt: parseInt\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.number.to-exponential.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar log10 = require('../internals/math-log10');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar $isFinite = isFinite;\nvar abs = Math.abs;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar round = Math.round;\nvar nativeToExponential = uncurryThis(1.1.toExponential);\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\n\nvar POW_10_308 = pow(10, 308);\n\n// Edge 17-\nvar ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11'\n  // IE11- && Edge 14-\n  && nativeToExponential(1.255, 2) === '1.25e+0'\n  // FF86-, V8 ~ Chrome 49-50\n  && nativeToExponential(12345, 3) === '1.235e+4'\n  // FF86-, V8 ~ Chrome 49-50\n  && nativeToExponential(25, 0) === '3e+1';\n\n// IE8-\nvar throwsOnInfinityFraction = function () {\n  return fails(function () {\n    nativeToExponential(1, Infinity);\n  }) && fails(function () {\n    nativeToExponential(1, -Infinity);\n  });\n};\n\n// Safari <11 && FF <50\nvar properNonFiniteThisCheck = function () {\n  return !fails(function () {\n    nativeToExponential(Infinity, Infinity);\n    nativeToExponential(NaN, Infinity);\n  });\n};\n\nvar FORCED = !ROUNDS_PROPERLY || !throwsOnInfinityFraction() || !properNonFiniteThisCheck();\n\n// `Number.prototype.toExponential` method\n// https://tc39.es/ecma262/#sec-number.prototype.toexponential\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  toExponential: function toExponential(fractionDigits) {\n    var x = thisNumberValue(this);\n    if (fractionDigits === undefined) return nativeToExponential(x);\n    var f = toIntegerOrInfinity(fractionDigits);\n    if (!$isFinite(x)) return String(x);\n    // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n    if (f < 0 || f > 20) throw new $RangeError('Incorrect fraction digits');\n    if (ROUNDS_PROPERLY) return nativeToExponential(x, f);\n    var s = '';\n    var m, e, c, d, l, n, xScaled;\n    if (x < 0) {\n      s = '-';\n      x = -x;\n    }\n    if (x === 0) {\n      e = 0;\n      m = repeat('0', f + 1);\n    } else {\n      // TODO: improve accuracy with big fraction digits\n      l = log10(x);\n      e = floor(l);\n      // compute x / pow(10, e - f) and round, avoiding underflow/overflow\n      if (f - e >= 308) {\n        // pow(10, e - f) would underflow to a subnormal or zero; split computation\n        xScaled = x * POW_10_308 * pow(10, f - e - 308);\n      } else {\n        xScaled = x / pow(10, e - f);\n      }\n      n = round(xScaled);\n      // correct tie-breaking: round half up\n      // avoids `2 * x` overflow for values near MAX_VALUE\n      if (xScaled - n >= 0.5) {\n        n += 1;\n      }\n      if (n >= pow(10, f + 1)) {\n        n /= 10;\n        e += 1;\n      }\n      m = $String(n);\n    }\n    if (f !== 0) {\n      m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1);\n    }\n    if (e === 0) {\n      c = '+';\n      d = '0';\n    } else {\n      c = e > 0 ? '+' : '-';\n      d = $String(abs(e));\n    }\n    m += 'e' + c + d;\n    return s + m;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.number.to-fixed.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar nativeToFixed = uncurryThis(1.1.toFixed);\n\nvar pow = function (x, n, acc) {\n  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n  var n = 0;\n  var x2 = x;\n  while (x2 >= 4096) {\n    n += 12;\n    x2 /= 4096;\n  }\n  while (x2 >= 2) {\n    n += 1;\n    x2 /= 2;\n  } return n;\n};\n\nvar multiply = function (data, n, c) {\n  var index = -1;\n  var c2 = c;\n  while (++index < 6) {\n    c2 += n * data[index];\n    data[index] = c2 % 1e7;\n    c2 = floor(c2 / 1e7);\n  }\n};\n\nvar divide = function (data, n) {\n  var index = 6;\n  var c = 0;\n  while (--index >= 0) {\n    c += data[index];\n    data[index] = floor(c / n);\n    c = (c % n) * 1e7;\n  }\n};\n\nvar dataToString = function (data) {\n  var index = 6;\n  var s = '';\n  while (--index >= 0) {\n    if (s !== '' || index === 0 || data[index] !== 0) {\n      var t = $String(data[index]);\n      s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n    }\n  } return s;\n};\n\nvar FORCED = fails(function () {\n  return nativeToFixed(0.00008, 3) !== '0.000' ||\n    nativeToFixed(0.9, 0) !== '1' ||\n    nativeToFixed(1.255, 2) !== '1.25' ||\n    nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n  // V8 ~ Android 4.3-\n  nativeToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  toFixed: function toFixed(fractionDigits) {\n    var number = thisNumberValue(this);\n    var fractDigits = toIntegerOrInfinity(fractionDigits);\n    var data = [0, 0, 0, 0, 0, 0];\n    var sign = '';\n    var result = '0';\n    var e, z, j, k;\n\n    // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n    if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits');\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (number !== number) return 'NaN';\n    if (number <= -1e21 || number >= 1e21) return $String(number);\n    if (number < 0) {\n      sign = '-';\n      number = -number;\n    }\n    if (number > 1e-21) {\n      e = log(number * pow(2, 69, 1)) - 69;\n      z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n      z *= 0x10000000000000;\n      e = 52 - e;\n      if (e > 0) {\n        multiply(data, 0, z);\n        j = fractDigits;\n        while (j >= 7) {\n          multiply(data, 1e7, 0);\n          j -= 7;\n        }\n        multiply(data, pow(10, j, 1), 0);\n        j = e - 1;\n        while (j >= 23) {\n          divide(data, 1 << 23);\n          j -= 23;\n        }\n        divide(data, 1 << j);\n        multiply(data, 1, 1);\n        divide(data, 2);\n        result = dataToString(data);\n      } else {\n        multiply(data, 0, z);\n        multiply(data, 1 << -e, 0);\n        result = dataToString(data) + repeat('0', fractDigits);\n      }\n    }\n    if (fractDigits > 0) {\n      k = result.length;\n      result = sign + (k <= fractDigits\n        ? '0.' + repeat('0', fractDigits - k) + result\n        : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n    } else {\n      result = sign + result;\n    } return result;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.number.to-precision.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar thisNumberValue = require('../internals/this-number-value');\n\nvar nativeToPrecision = uncurryThis(1.1.toPrecision);\n\nvar FORCED = fails(function () {\n  // IE7-\n  return nativeToPrecision(1, undefined) !== '1';\n}) || !fails(function () {\n  // V8 ~ Android 4.3-\n  nativeToPrecision({});\n});\n\n// `Number.prototype.toPrecision` method\n// https://tc39.es/ecma262/#sec-number.prototype.toprecision\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  toPrecision: function toPrecision(precision) {\n    return precision === undefined\n      ? nativeToPrecision(thisNumberValue(this))\n      : nativeToPrecision(thisNumberValue(this), precision);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.assign.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n  assign: assign\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.create.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n  create: create\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.define-getter.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __defineGetter__: function __defineGetter__(P, getter) {\n      definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true });\n    }\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.object.define-properties.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties').f;\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, {\n  defineProperties: defineProperties\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.define-property.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n  defineProperty: defineProperty\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.define-setter.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __defineSetter__: function __defineSetter__(P, setter) {\n      definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true });\n    }\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.object.entries.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n  entries: function entries(O) {\n    return $entries(O);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.freeze.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  freeze: function freeze(it) {\n    return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.from-entries.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://tc39.es/ecma262/#sec-object.fromentries\n$({ target: 'Object', stat: true }, {\n  fromEntries: function fromEntries(iterable) {\n    var obj = {};\n    iterate(iterable, function (k, v) {\n      createProperty(obj, k, v);\n    }, { AS_ENTRIES: true });\n    return obj;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.get-own-property-descriptor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); });\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n    return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.get-own-property-descriptors.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n    var O = toIndexedObject(object);\n    var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n    var keys = ownKeys(O);\n    var result = {};\n    var index = 0;\n    var key, descriptor;\n    while (keys.length > index) {\n      descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n      if (descriptor !== undefined) createProperty(result, key, descriptor);\n    }\n    return result;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.get-own-property-names.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  getOwnPropertyNames: getOwnPropertyNames\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.get-own-property-symbols.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n    return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.get-prototype-of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(it) {\n    return nativeGetPrototypeOf(toObject(it));\n  }\n});\n\n"
  },
  {
    "path": "packages/core-js/modules/es.object.group-by.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createProperty = require('../internals/create-property');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toPropertyKey = require('../internals/to-property-key');\nvar iterate = require('../internals/iterate');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-groupby -- testing\nvar nativeGroupBy = Object.groupBy;\nvar create = getBuiltIn('Object', 'create');\nvar push = uncurryThis([].push);\n\n// https://bugs.webkit.org/show_bug.cgi?id=271524\nvar DOES_NOT_WORK_WITH_PRIMITIVES = !nativeGroupBy || fails(function () {\n  return nativeGroupBy('ab', function (it) {\n    return it;\n  }).a.length !== 1;\n});\n\n// `Object.groupBy` method\n// https://tc39.es/ecma262/#sec-object.groupby\n$({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, {\n  groupBy: function groupBy(items, callbackfn) {\n    requireObjectCoercible(items);\n    aCallable(callbackfn);\n    var obj = create(null);\n    var k = 0;\n    iterate(items, function (value) {\n      var key = toPropertyKey(callbackfn(value, k++));\n      // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys\n      // but since it's a `null` prototype object, we can safely use `in`\n      if (key in obj) push(obj[key], value);\n      else createProperty(obj, key, [value]);\n    });\n    return obj;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.has-own.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\n\n// `Object.hasOwn` method\n// https://tc39.es/ecma262/#sec-object.hasown\n$({ target: 'Object', stat: true }, {\n  hasOwn: hasOwn\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.is-extensible.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\n// eslint-disable-next-line es/no-object-isextensible -- safe\n$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, {\n  isExtensible: $isExtensible\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.is-frozen.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar $isFrozen = Object.isFrozen;\n\nvar FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.es/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FORCED }, {\n  isFrozen: function isFrozen(it) {\n    if (!isObject(it)) return true;\n    if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true;\n    return $isFrozen ? $isFrozen(it) : false;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.is-sealed.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar $isSealed = Object.isSealed;\n\nvar FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isSealed(1); });\n\n// `Object.isSealed` method\n// https://tc39.es/ecma262/#sec-object.issealed\n$({ target: 'Object', stat: true, forced: FORCED }, {\n  isSealed: function isSealed(it) {\n    if (!isObject(it)) return true;\n    if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true;\n    return $isSealed ? $isSealed(it) : false;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.is.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n  is: is\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.keys.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  keys: function keys(it) {\n    return nativeKeys(toObject(it));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.lookup-getter.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __lookupGetter__: function __lookupGetter__(P) {\n      var O = toObject(this);\n      var key = toPropertyKey(P);\n      var desc;\n      do {\n        if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;\n      } while (O = getPrototypeOf(O));\n    }\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.object.lookup-setter.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __lookupSetter__: function __lookupSetter__(P) {\n      var O = toObject(this);\n      var key = toPropertyKey(P);\n      var desc;\n      do {\n        if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;\n      } while (O = getPrototypeOf(O));\n    }\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.object.prevent-extensions.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-preventextensions -- safe\nvar $preventExtensions = Object.preventExtensions;\nvar FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); });\n\n// `Object.preventExtensions` method\n// https://tc39.es/ecma262/#sec-object.preventextensions\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  preventExtensions: function preventExtensions(it) {\n    return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.proto.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isObject = require('../internals/is-object');\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\nvar toObject = require('../internals/to-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nvar getPrototypeOf = Object.getPrototypeOf;\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nvar setPrototypeOf = Object.setPrototypeOf;\nvar ObjectPrototype = Object.prototype;\nvar PROTO = '__proto__';\n\n// `Object.prototype.__proto__` accessor\n// https://tc39.es/ecma262/#sec-object.prototype.__proto__\nif (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try {\n  defineBuiltInAccessor(ObjectPrototype, PROTO, {\n    configurable: true,\n    get: function __proto__() {\n      return getPrototypeOf(toObject(this));\n    },\n    set: function __proto__(proto) {\n      var O = requireObjectCoercible(this);\n      if (isPossiblePrototype(proto) && isObject(O)) {\n        setPrototypeOf(O, proto);\n      }\n    }\n  });\n} catch (error) { /* empty */ }\n"
  },
  {
    "path": "packages/core-js/modules/es.object.seal.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-seal -- safe\nvar $seal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { $seal(1); });\n\n// `Object.seal` method\n// https://tc39.es/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  seal: function seal(it) {\n    return $seal && isObject(it) ? $seal(onFreeze(it)) : it;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.set-prototype-of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n  setPrototypeOf: setPrototypeOf\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.object.to-string.js",
    "content": "'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n  defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.object.values.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n  values: function values(O) {\n    return $values(O);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.parse-float.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat !== $parseFloat }, {\n  parseFloat: $parseFloat\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.parse-int.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt !== $parseInt }, {\n  parseInt: $parseInt\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.promise.all-settled.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n  allSettled: function allSettled(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aCallable(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        remaining++;\n        call(promiseResolve, C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'fulfilled', value: value };\n          --remaining || resolve(values);\n        }, function (error) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'rejected', reason: error };\n          --remaining || resolve(values);\n        });\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.promise.all.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aCallable(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        remaining++;\n        call($promiseResolve, 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});\n"
  },
  {
    "path": "packages/core-js/modules/es.promise.any.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n  any: function any(iterable) {\n    var C = this;\n    var AggregateError = getBuiltIn('AggregateError');\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aCallable(C.resolve);\n      var errors = [];\n      var counter = 0;\n      var remaining = 1;\n      var alreadyResolved = false;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyRejected = false;\n        remaining++;\n        call(promiseResolve, C, promise).then(function (value) {\n          if (alreadyRejected || alreadyResolved) return;\n          alreadyResolved = true;\n          resolve(value);\n        }, function (error) {\n          if (alreadyRejected || alreadyResolved) return;\n          alreadyRejected = true;\n          errors[index] = error;\n          --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n        });\n      });\n      --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.promise.catch.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n  'catch': function (onRejected) {\n    return this.then(undefined, onRejected);\n  }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n  var method = getBuiltIn('Promise').prototype['catch'];\n  if (NativePromisePrototype['catch'] !== method) {\n    defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n  }\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.promise.constructor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/environment-is-node');\nvar globalThis = require('../internals/global-this');\nvar path = require('../internals/path');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n  var value = state.value;\n  var ok = state.state === FULFILLED;\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(new TypeError('Promise-chain cycle'));\n      } else if (then = isThenable(result)) {\n        call(then, 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\nvar notify = function (state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  microtask(function () {\n    var reactions = state.reactions;\n    var reaction;\n    while (reaction = reactions.get()) {\n      callReaction(reaction, state);\n    }\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    globalThis.dispatchEvent(event);\n  } else event = { promise: promise, reason: reason };\n  if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n  call(task, globalThis, 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  call(task, globalThis, 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 new 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          call(then, 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_PROMISE_CONSTRUCTOR) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromisePrototype);\n    aCallable(executor);\n    call(Internal, this);\n    var state = getInternalPromiseState(this);\n    try {\n      executor(bind(internalResolve, state), bind(internalReject, state));\n    } catch (error) {\n      internalReject(state, error);\n    }\n  };\n\n  PromisePrototype = PromiseConstructor.prototype;\n\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: new Queue(),\n      rejection: false,\n      state: PENDING,\n      value: null\n    });\n  };\n\n  // `Promise.prototype.then` method\n  // https://tc39.es/ecma262/#sec-promise.prototype.then\n  Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n    var state = getInternalPromiseState(this);\n    var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n    state.parent = true;\n    reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n    reaction.fail = isCallable(onRejected) && onRejected;\n    reaction.domain = IS_NODE ? process.domain : undefined;\n    if (state.state === PENDING) state.reactions.add(reaction);\n    else microtask(function () {\n      callReaction(reaction, state);\n    });\n    return reaction.promise;\n  });\n\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalPromiseState(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\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n\n  if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n    nativeThen = NativePromisePrototype.then;\n\n    if (!NATIVE_PROMISE_SUBCLASSING) {\n      // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n      defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n        var that = this;\n        return new PromiseConstructor(function (resolve, reject) {\n          call(nativeThen, that, resolve, reject);\n        }).then(onFulfilled, onRejected);\n      // https://github.com/zloirock/core-js/issues/640\n      }, { unsafe: true });\n    }\n\n    // make `.constructor === Promise` work for native promise-based APIs\n    try {\n      delete NativePromisePrototype.constructor;\n    } catch (error) { /* empty */ }\n\n    // make `instanceof Promise` work for native promise-based APIs\n    if (setPrototypeOf) {\n      setPrototypeOf(NativePromisePrototype, PromisePrototype);\n    }\n  }\n}\n\n// `Promise` constructor\n// https://tc39.es/ecma262/#sec-promise-executor\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n  Promise: PromiseConstructor\n});\n\nPromiseWrapper = path.Promise;\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n"
  },
  {
    "path": "packages/core-js/modules/es.promise.finally.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n  // eslint-disable-next-line unicorn/no-thenable -- required for testing\n  NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n  'finally': function (onFinally) {\n    var C = speciesConstructor(this, getBuiltIn('Promise'));\n    var isFunction = isCallable(onFinally);\n    return this.then(\n      isFunction ? function (x) {\n        return promiseResolve(C, onFinally()).then(function () { return x; });\n      } : onFinally,\n      isFunction ? function (e) {\n        return promiseResolve(C, onFinally()).then(function () { throw e; });\n      } : onFinally\n    );\n  }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n  var method = getBuiltIn('Promise').prototype['finally'];\n  if (NativePromisePrototype['finally'] !== method) {\n    defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n  }\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.promise.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n"
  },
  {
    "path": "packages/core-js/modules/es.promise.race.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aCallable(C.resolve);\n      iterate(iterable, function (promise) {\n        call($promiseResolve, C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.promise.reject.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n  reject: function reject(r) {\n    var capability = newPromiseCapabilityModule.f(this);\n    var capabilityReject = capability.reject;\n    capabilityReject(r);\n    return capability.promise;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.promise.resolve.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n  resolve: function resolve(x) {\n    return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.promise.try.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar slice = require('../internals/array-slice');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar aCallable = require('../internals/a-callable');\nvar perform = require('../internals/perform');\n\nvar Promise = globalThis.Promise;\n\nvar ACCEPT_ARGUMENTS = false;\n// Avoiding the use of polyfills of the previous iteration of this proposal\n// that does not accept arguments of the callback\nvar FORCED = !Promise || !Promise['try'] || perform(function () {\n  Promise['try'](function (argument) {\n    ACCEPT_ARGUMENTS = argument === 8;\n  }, 8);\n}).error || !ACCEPT_ARGUMENTS;\n\n// `Promise.try` method\n// https://tc39.es/ecma262/#sec-promise.try\n$({ target: 'Promise', stat: true, forced: FORCED }, {\n  'try': function (callbackfn /* , ...args */) {\n    var args = arguments.length > 1 ? slice(arguments, 1) : [];\n    var promiseCapability = newPromiseCapabilityModule.f(this);\n    var result = perform(function () {\n      return apply(aCallable(callbackfn), undefined, args);\n    });\n    (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n    return promiseCapability.promise;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.promise.with-resolvers.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://tc39.es/ecma262/#sec-promise.withResolvers\n$({ target: 'Promise', stat: true }, {\n  withResolvers: function withResolvers() {\n    var promiseCapability = newPromiseCapabilityModule.f(this);\n    return {\n      promise: promiseCapability.promise,\n      resolve: promiseCapability.resolve,\n      reject: promiseCapability.reject\n    };\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.apply.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar functionApply = require('../internals/function-apply');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n  // eslint-disable-next-line es/no-reflect -- required for testing\n  Reflect.apply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.es/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n  apply: function apply(target, thisArgument, argumentsList) {\n    return functionApply(aCallable(target), thisArgument, anObject(argumentsList));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.construct.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n  function F() { /* empty */ }\n  return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n  nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n  construct: function construct(Target, args /* , newTarget */) {\n    aConstructor(Target);\n    var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n    anObject(args);\n    if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n    if (Target === newTarget) {\n      // w/o altered newTarget, optimization for 0-4 arguments\n      switch (args.length) {\n        case 0: return new Target();\n        case 1: return new Target(args[0]);\n        case 2: return new Target(args[0], args[1]);\n        case 3: return new Target(args[0], args[1], args[2]);\n        case 4: return new Target(args[0], args[1], args[2], args[3]);\n      }\n      // w/o altered newTarget, lot of arguments case\n      var $args = [null];\n      apply(push, $args, args);\n      return new (apply(bind, Target, $args))();\n    }\n    // with altered newTarget, not support built-in constructors\n    var proto = newTarget.prototype;\n    var instance = create(isObject(proto) ? proto : ObjectPrototype);\n    var result = apply(Target, instance, args);\n    return isObject(result) ? result : instance;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.define-property.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar isCallable = require('../internals/is-callable');\nvar fails = require('../internals/fails');\n\nvar $TypeError = TypeError;\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\nvar ERROR_INSTEAD_OF_FALSE = fails(function () {\n  // eslint-disable-next-line es/no-reflect -- required for testing\n  Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });\n});\n\n// `Reflect.defineProperty` method\n// https://tc39.es/ecma262/#sec-reflect.defineproperty\n$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {\n  defineProperty: function defineProperty(target, propertyKey, attributes) {\n    anObject(target);\n    var key = toPropertyKey(propertyKey);\n    var get, set;\n    anObject(attributes);\n    // propagate `ToPropertyDescriptor` errors instead of catching them\n    if (('get' in attributes || 'set' in attributes) && (\n      ('get' in attributes && !isCallable(get = attributes.get) && get !== undefined) ||\n      ('set' in attributes && !isCallable(set = attributes.set) && set !== undefined) ||\n      ('value' in attributes || 'writable' in attributes)\n    )) throw new $TypeError('Invalid property descriptor');\n    try {\n      definePropertyModule.f(target, key, attributes);\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.delete-property.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toPropertyKey = require('../internals/to-property-key');\n\n// `Reflect.deleteProperty` method\n// https://tc39.es/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n  deleteProperty: function deleteProperty(target, propertyKey) {\n    anObject(target);\n    var key = toPropertyKey(propertyKey);\n    var descriptor = getOwnPropertyDescriptor(target, key);\n    return descriptor && !descriptor.configurable ? false : delete target[key];\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.get-own-property-descriptor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\n// `Reflect.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor\n$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n    return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.get-prototype-of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(target) {\n    return objectGetPrototypeOf(anObject(target));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.get.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar toPropertyKey = require('../internals/to-property-key');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nvar $get = function (target, propertyKey, receiver) {\n  if (anObject(target) === receiver) return target[propertyKey];\n  var descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n  if (descriptor) return isDataDescriptor(descriptor)\n    ? descriptor.value\n    : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n  var prototype = getPrototypeOf(target);\n  if (isObject(prototype)) return $get(prototype, propertyKey, receiver);\n};\n\n$({ target: 'Reflect', stat: true }, {\n  get: function get(target, propertyKey /* , receiver */) {\n    return $get(anObject(target), toPropertyKey(propertyKey), arguments.length < 3 ? target : arguments[2]);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.has.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Reflect.has` method\n// https://tc39.es/ecma262/#sec-reflect.has\n$({ target: 'Reflect', stat: true }, {\n  has: function has(target, propertyKey) {\n    return propertyKey in target;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.is-extensible.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Reflect.isExtensible` method\n// https://tc39.es/ecma262/#sec-reflect.isextensible\n$({ target: 'Reflect', stat: true }, {\n  isExtensible: function isExtensible(target) {\n    anObject(target);\n    return $isExtensible(target);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.own-keys.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.es/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n  ownKeys: ownKeys\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.prevent-extensions.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar anObject = require('../internals/an-object');\nvar FREEZING = require('../internals/freezing');\n\n// `Reflect.preventExtensions` method\n// https://tc39.es/ecma262/#sec-reflect.preventextensions\n$({ target: 'Reflect', stat: true, sham: !FREEZING }, {\n  preventExtensions: function preventExtensions(target) {\n    anObject(target);\n    try {\n      var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');\n      if (objectPreventExtensions) objectPreventExtensions(target);\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.set-prototype-of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\nvar objectSetPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Reflect.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.setprototypeof\nif (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {\n  setPrototypeOf: function setPrototypeOf(target, proto) {\n    anObject(target);\n    aPossiblePrototype(proto);\n    try {\n      objectSetPrototypeOf(target, proto);\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.set.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar fails = require('../internals/fails');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toPropertyKey = require('../internals/to-property-key');\n\n// `Reflect.set` method\n// https://tc39.es/ecma262/#sec-reflect.set\nvar $set = function (target, propertyKey, V, receiver) {\n  var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n  var existingDescriptor, prototype, setter;\n  if (!ownDescriptor) {\n    if (isObject(prototype = getPrototypeOf(target))) {\n      return $set(prototype, propertyKey, V, receiver);\n    }\n    ownDescriptor = createPropertyDescriptor(0);\n  }\n  if (isDataDescriptor(ownDescriptor)) {\n    if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n    if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n      if (!isDataDescriptor(existingDescriptor) || existingDescriptor.writable === false) return false;\n      definePropertyModule.f(receiver, propertyKey, { value: V });\n    } else try {\n      definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n    } catch (error) {\n      return false;\n    }\n  } else {\n    setter = ownDescriptor.set;\n    if (setter === undefined) return false;\n    call(setter, receiver, V);\n  } return true;\n};\n\n// MS Edge 17-18 Reflect.set allows setting the property to object\n// with non-writable property on the prototype\nvar MS_EDGE_BUG = fails(function () {\n  var Constructor = function () { /* empty */ };\n  var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true });\n  // eslint-disable-next-line es/no-reflect -- required for testing\n  return Reflect.set(Constructor.prototype, 'a', 1, object) !== false;\n});\n\n$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {\n  set: function set(target, propertyKey, V /* , receiver */) {\n    return $set(anObject(target), toPropertyKey(propertyKey), V, arguments.length < 4 ? target : arguments[3]);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.reflect.to-string-tag.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(globalThis.Reflect, 'Reflect', true);\n"
  },
  {
    "path": "packages/core-js/modules/es.regexp.constructor.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = globalThis.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = globalThis.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n  (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n    re2[MATCH] = false;\n    // RegExp constructor can alter flags and IsRegExp works correct with @@match\n    // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n    return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';\n  }));\n\nvar handleDotAll = function (string) {\n  var length = string.length;\n  var index = 0;\n  var result = '';\n  var brackets = false;\n  var chr;\n  for (; index < length; index++) {\n    chr = charAt(string, index);\n    if (chr === '\\\\') {\n      result += chr + charAt(string, ++index);\n      continue;\n    }\n    if (!brackets && chr === '.') {\n      result += '[\\\\s\\\\S]';\n    } else {\n      if (chr === '[') {\n        brackets = true;\n      } else if (chr === ']') {\n        brackets = false;\n      } result += chr;\n    }\n  } return result;\n};\n\nvar handleNCG = function (string) {\n  var length = string.length;\n  var index = 0;\n  var result = '';\n  var named = [];\n  var names = create(null);\n  var brackets = false;\n  var ncg = false;\n  var groupid = 0;\n  var groupname = '';\n  var chr;\n  for (; index < length; index++) {\n    chr = charAt(string, index);\n    if (chr === '\\\\') {\n      chr += charAt(string, ++index);\n      // use `\\x5c` for escaped backslash to avoid corruption by `\\k<name>` to `\\N` replacement below\n      if (!ncg && charAt(chr, 1) === '\\\\') {\n        result += '\\\\x5c';\n        continue;\n      }\n    } else if (chr === ']') {\n      brackets = false;\n    } else if (!brackets) switch (true) {\n      case chr === '[':\n        brackets = true;\n        break;\n      case chr === '(':\n        result += chr;\n        if (exec(IS_NCG, stringSlice(string, index + 1))) {\n          index += 2;\n          ncg = true;\n          groupid++;\n        } else if (charAt(string, index + 1) !== '?') {\n          groupid++;\n        }\n        continue;\n      case chr === '>' && ncg:\n        if (groupname === '' || hasOwn(names, groupname)) {\n          throw new SyntaxError('Invalid capture group name');\n        }\n        names[groupname] = true;\n        named[named.length] = [groupname, groupid];\n        ncg = false;\n        groupname = '';\n        continue;\n    }\n    if (ncg) groupname += chr;\n    else result += chr;\n  }\n  // convert `\\k<name>` backreferences to numbered backreferences\n  for (var ni = 0; ni < named.length; ni++) {\n    var backref = '\\\\k<' + named[ni][0] + '>';\n    var numRef = '\\\\' + named[ni][1];\n    while (stringIndexOf(result, backref) > -1) {\n      result = replace(result, backref, numRef);\n    }\n  } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n  var RegExpWrapper = function RegExp(pattern, flags) {\n    var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n    var patternIsRegExp = isRegExp(pattern);\n    var flagsAreUndefined = flags === undefined;\n    var groups = [];\n    var rawPattern = pattern;\n    var rawFlags, dotAll, sticky, handled, result, state;\n\n    if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n      return pattern;\n    }\n\n    if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n      pattern = pattern.source;\n      if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n    }\n\n    pattern = pattern === undefined ? '' : toString(pattern);\n    flags = flags === undefined ? '' : toString(flags);\n    rawPattern = pattern;\n\n    if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n      dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n      if (dotAll) flags = replace(flags, /s/g, '');\n    }\n\n    rawFlags = flags;\n\n    if (MISSED_STICKY && 'sticky' in re1) {\n      sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n      if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n    }\n\n    if (UNSUPPORTED_NCG) {\n      handled = handleNCG(pattern);\n      pattern = handled[0];\n      groups = handled[1];\n    }\n\n    result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n    if (dotAll || sticky || groups.length) {\n      state = enforceInternalState(result);\n      if (dotAll) {\n        state.dotAll = true;\n        state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n      }\n      if (sticky) state.sticky = true;\n      if (groups.length) state.groups = groups;\n    }\n\n    if (pattern !== rawPattern) try {\n      // fails in old engines, but we have no alternatives for unsupported regex syntax\n      createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n    } catch (error) { /* empty */ }\n\n    return result;\n  };\n\n  for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n    proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n  }\n\n  RegExpPrototype.constructor = RegExpWrapper;\n  RegExpWrapper.prototype = RegExpPrototype;\n  defineBuiltIn(globalThis, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n"
  },
  {
    "path": "packages/core-js/modules/es.regexp.dot-all.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n  defineBuiltInAccessor(RegExpPrototype, 'dotAll', {\n    configurable: true,\n    get: function dotAll() {\n      if (this === RegExpPrototype) return;\n      // We can't use InternalStateModule.getterFor because\n      // we don't add metadata for regexps created by a literal.\n      if (classof(this) === 'RegExp') {\n        return !!getInternalState(this).dotAll;\n      }\n      throw new $TypeError('Incompatible receiver, RegExp required');\n    }\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.regexp.escape.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aString = require('../internals/a-string');\nvar hasOwn = require('../internals/has-own-property');\nvar padStart = require('../internals/string-pad').start;\nvar WHITESPACES = require('../internals/whitespaces');\n\nvar $Array = Array;\nvar $escape = RegExp.escape;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar numberToString = uncurryThis(1.1.toString);\nvar join = uncurryThis([].join);\nvar FIRST_DIGIT_OR_ASCII = /^[0-9a-z]/i;\nvar SYNTAX_SOLIDUS = /^[$()*+./?[\\\\\\]^{|}]/;\nvar OTHER_PUNCTUATORS_AND_WHITESPACES = RegExp('^[!\"#%&\\',\\\\-:;<=>@`~' + WHITESPACES + ']');\nvar exec = uncurryThis(FIRST_DIGIT_OR_ASCII.exec);\n\nvar ControlEscape = {\n  '\\u0009': 't',\n  '\\u000A': 'n',\n  '\\u000B': 'v',\n  '\\u000C': 'f',\n  '\\u000D': 'r'\n};\n\nvar escapeChar = function (chr) {\n  var hex = numberToString(charCodeAt(chr, 0), 16);\n  return hex.length < 3 ? '\\\\x' + padStart(hex, 2, '0') : '\\\\u' + padStart(hex, 4, '0');\n};\n\n// Avoiding the use of polyfills of the previous iteration of this proposal\nvar FORCED = !$escape || $escape('ab') !== '\\\\x61b';\n\n// `RegExp.escape` method\n// https://tc39.es/ecma262/#sec-regexp.escape\n$({ target: 'RegExp', stat: true, forced: FORCED }, {\n  escape: function escape(S) {\n    aString(S);\n    var length = S.length;\n    var result = $Array(length);\n\n    for (var i = 0; i < length; i++) {\n      var chr = charAt(S, i);\n      if (i === 0 && exec(FIRST_DIGIT_OR_ASCII, chr)) {\n        result[i] = escapeChar(chr);\n      } else if (hasOwn(ControlEscape, chr)) {\n        result[i] = '\\\\' + ControlEscape[chr];\n      } else if (exec(SYNTAX_SOLIDUS, chr)) {\n        result[i] = '\\\\' + chr;\n      } else if (exec(OTHER_PUNCTUATORS_AND_WHITESPACES, chr)) {\n        result[i] = escapeChar(chr);\n      } else {\n        var charCode = charCodeAt(chr, 0);\n        // single UTF-16 code unit\n        if ((charCode & 0xF800) !== 0xD800) result[i] = chr;\n        // unpaired surrogate\n        else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = escapeChar(chr);\n        // surrogate pair\n        else {\n          result[i] = chr;\n          result[++i] = charAt(S, i);\n        }\n      }\n    }\n\n    return join(result, '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.regexp.exec.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n  exec: exec\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.regexp.flags.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlagsDetection = require('../internals/regexp-flags-detection');\nvar regExpFlagsGetterImplementation = require('../internals/regexp-flags');\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (DESCRIPTORS && !regExpFlagsDetection.correct) {\n  defineBuiltInAccessor(RegExp.prototype, 'flags', {\n    configurable: true,\n    get: regExpFlagsGetterImplementation\n  });\n\n  regExpFlagsDetection.correct = true;\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.regexp.sticky.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n  defineBuiltInAccessor(RegExpPrototype, 'sticky', {\n    configurable: true,\n    get: function sticky() {\n      if (this === RegExpPrototype) return;\n      // We can't use InternalStateModule.getterFor because\n      // we don't add metadata for regexps created by a literal.\n      if (classof(this) === 'RegExp') {\n        return !!getInternalState(this).sticky;\n      }\n      throw new $TypeError('Incompatible receiver, RegExp required');\n    }\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.regexp.test.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar toString = require('../internals/to-string');\n\nvar DELEGATES_TO_EXEC = function () {\n  var execCalled = false;\n  var re = /[ac]/;\n  re.exec = function () {\n    execCalled = true;\n    return /./.exec.apply(this, arguments);\n  };\n  return re.test('abc') === true && execCalled;\n}();\n\nvar nativeTest = /./.test;\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n  test: function (S) {\n    var R = anObject(this);\n    var string = toString(S);\n    var exec = R.exec;\n    if (!isCallable(exec)) return call(nativeTest, R, string);\n    var result = call(exec, R, string);\n    if (result === null) return false;\n    anObject(result);\n    return true;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.regexp.to-string.js",
    "content": "'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n  defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n    var R = anObject(this);\n    var pattern = $toString(R.source);\n    var flags = $toString(getRegExpFlags(R));\n    return '/' + pattern + '/' + flags;\n  }, { unsafe: true });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.set.constructor.js",
    "content": "'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n  return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n"
  },
  {
    "path": "packages/core-js/modules/es.set.difference.v2.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar fails = require('../internals/fails');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar SET_LIKE_INCORRECT_BEHAVIOR = !setMethodAcceptSetLike('difference', function (result) {\n  return result.size === 0;\n});\n\nvar FORCED = SET_LIKE_INCORRECT_BEHAVIOR || fails(function () {\n  // https://bugs.webkit.org/show_bug.cgi?id=288595\n  var setLike = {\n    size: 1,\n    has: function () { return true; },\n    keys: function () {\n      var index = 0;\n      return {\n        next: function () {\n          var done = index++ > 1;\n          if (baseSet.has(1)) baseSet.clear();\n          return { done: done, value: 2 };\n        }\n      };\n    }\n  };\n  // eslint-disable-next-line es/no-set -- testing\n  var baseSet = new Set([1, 2, 3, 4]);\n  // eslint-disable-next-line es/no-set-prototype-difference -- testing\n  return baseSet.difference(setLike).size !== 3;\n});\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n  difference: difference\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.set.intersection.v2.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {\n  return result.size === 2 && result.has(1) && result.has(2);\n}) || fails(function () {\n  // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing\n  return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n  intersection: intersection\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.set.is-disjoint-from.v2.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {\n  return !result;\n});\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n  isDisjointFrom: isDisjointFrom\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.set.is-subset-of.v2.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {\n  return result;\n});\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n  isSubsetOf: isSubsetOf\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.set.is-superset-of.v2.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {\n  return !result;\n});\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n  isSupersetOf: isSupersetOf\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.set.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n"
  },
  {
    "path": "packages/core-js/modules/es.set.symmetric-difference.v2.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodGetKeysBeforeCloning = require('../internals/set-method-get-keys-before-cloning-detection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference');\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n  symmetricDifference: symmetricDifference\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.set.union.v2.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodGetKeysBeforeCloning = require('../internals/set-method-get-keys-before-cloning-detection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning('union');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n  union: union\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.anchor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n  anchor: function anchor(name) {\n    return createHTML(this, 'a', 'name', name);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.at-alternative.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar charAt = uncurryThis(''.charAt);\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line es/no-string-prototype-at -- safe\n  return '𠮷'.at(-2) !== '\\uD842';\n});\n\n// `String.prototype.at` method\n// https://tc39.es/ecma262/#sec-string.prototype.at\n$({ target: 'String', proto: true, forced: FORCED }, {\n  at: function at(index) {\n    var S = toString(requireObjectCoercible(this));\n    var len = S.length;\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : charAt(S, k);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.big.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.big` method\n// https://tc39.es/ecma262/#sec-string.prototype.big\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {\n  big: function big() {\n    return createHTML(this, 'big', '', '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.blink.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.blink` method\n// https://tc39.es/ecma262/#sec-string.prototype.blink\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {\n  blink: function blink() {\n    return createHTML(this, 'blink', '', '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.bold.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.bold` method\n// https://tc39.es/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n  bold: function bold() {\n    return createHTML(this, 'b', '', '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.code-point-at.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.es/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n  codePointAt: function codePointAt(pos) {\n    return codeAt(this, pos);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.ends-with.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  endsWith: function endsWith(searchString /* , endPosition = @length */) {\n    var that = toString(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var search = toString(searchString);\n    var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n    var len = that.length;\n    var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n    return slice(that, end - search.length, end) === search;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.fixed.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n  fixed: function fixed() {\n    return createHTML(this, 'tt', '', '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.fontcolor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontcolor` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontcolor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {\n  fontcolor: function fontcolor(color) {\n    return createHTML(this, 'font', 'color', color);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.fontsize.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontsize` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n  fontsize: function fontsize(size) {\n    return createHTML(this, 'font', 'size', size);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.from-code-point.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar $RangeError = RangeError;\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\nvar join = uncurryThis([].join);\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  fromCodePoint: function fromCodePoint(x) {\n    var elements = [];\n    var length = arguments.length;\n    var i = 0;\n    var code;\n    while (length > i) {\n      code = +arguments[i];\n      if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point');\n      elements[i++] = code < 0x10000\n        ? fromCharCode(code)\n        : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);\n    } return join(elements, '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.includes.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~stringIndexOf(\n      toString(requireObjectCoercible(this)),\n      toString(notARegExp(searchString)),\n      arguments.length > 1 ? arguments[1] : undefined\n    );\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.is-well-formed.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `String.prototype.isWellFormed` method\n// https://tc39.es/ecma262/#sec-string.prototype.iswellformed\n$({ target: 'String', proto: true }, {\n  isWellFormed: function isWellFormed() {\n    var S = toString(requireObjectCoercible(this));\n    var length = S.length;\n    for (var i = 0; i < length; i++) {\n      var charCode = charCodeAt(S, i);\n      // single UTF-16 code unit\n      if ((charCode & 0xF800) !== 0xD800) continue;\n      // unpaired surrogate\n      if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false;\n    } return true;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.italics.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.italics` method\n// https://tc39.es/ecma262/#sec-string.prototype.italics\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {\n  italics: function italics() {\n    return createHTML(this, 'i', '', '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.iterator.js",
    "content": "'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: toString(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return createIterResultObject(undefined, true);\n  point = charAt(string, index);\n  state.index += point.length;\n  return createIterResultObject(point, false);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.link.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n  link: function link(url) {\n    return createHTML(this, 'a', 'href', url);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.match-all.js",
    "content": "'use strict';\n/* eslint-disable es/no-string-prototype-matchall -- safe */\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar isRegExp = require('../internals/is-regexp');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar InternalStateModule = require('../internals/internal-state');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar nativeMatchAll = uncurryThis(''.matchAll);\n\nvar WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {\n  nativeMatchAll('a', /./);\n});\n\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {\n  setInternalState(this, {\n    type: REGEXP_STRING_ITERATOR,\n    regexp: regexp,\n    string: string,\n    global: $global,\n    unicode: fullUnicode,\n    done: false\n  });\n}, REGEXP_STRING, function next() {\n  var state = getInternalState(this);\n  if (state.done) return createIterResultObject(undefined, true);\n  var R = state.regexp;\n  var S = state.string;\n  var match = regExpExec(R, S);\n  if (match === null) {\n    state.done = true;\n    return createIterResultObject(undefined, true);\n  }\n  if (state.global) {\n    if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n    return createIterResultObject(match, false);\n  }\n  state.done = true;\n  return createIterResultObject(match, false);\n});\n\nvar $matchAll = function (string) {\n  var R = anObject(this);\n  var S = toString(string);\n  var C = speciesConstructor(R, RegExp);\n  var flags = toString(getRegExpFlags(R));\n  var matcher, $global, fullUnicode;\n  matcher = new C(C === RegExp ? R.source : R, flags);\n  $global = !!~stringIndexOf(flags, 'g');\n  fullUnicode = !!~stringIndexOf(flags, 'u') || !!~stringIndexOf(flags, 'v');\n  matcher.lastIndex = toLength(R.lastIndex);\n  return new $RegExpStringIterator(matcher, S, $global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.matchall\n$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {\n  matchAll: function matchAll(regexp) {\n    var O = requireObjectCoercible(this);\n    var flags, S, matcher, rx;\n    if (isObject(regexp)) {\n      if (isRegExp(regexp)) {\n        flags = toString(requireObjectCoercible(getRegExpFlags(regexp)));\n        if (!~stringIndexOf(flags, 'g')) throw new $TypeError('`.matchAll` does not allow non-global regexes');\n      }\n      if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);\n      matcher = getMethod(regexp, MATCH_ALL);\n      if (matcher === undefined && IS_PURE && classof(regexp) === 'RegExp') matcher = $matchAll;\n      if (matcher) return call(matcher, regexp, O);\n    } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);\n    S = toString(O);\n    rx = new RegExp(regexp, 'g');\n    return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);\n  }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll);\n"
  },
  {
    "path": "packages/core-js/modules/es.string.match.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n  return [\n    // `String.prototype.match` method\n    // https://tc39.es/ecma262/#sec-string.prototype.match\n    function match(regexp) {\n      var O = requireObjectCoercible(this);\n      var matcher = isObject(regexp) ? getMethod(regexp, MATCH) : undefined;\n      return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n    },\n    // `RegExp.prototype[@@match]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n    function (string) {\n      var rx = anObject(this);\n      var S = toString(string);\n      var res = maybeCallNative(nativeMatch, rx, S);\n\n      if (res.done) return res.value;\n\n      var flags = toString(getRegExpFlags(rx));\n\n      if (!~stringIndexOf(flags, 'g')) return regExpExec(rx, S);\n\n      var fullUnicode = !!~stringIndexOf(flags, 'u') || !!~stringIndexOf(flags, 'v');\n      rx.lastIndex = 0;\n      var A = [];\n      var n = 0;\n      var result;\n      while ((result = regExpExec(rx, S)) !== null) {\n        var matchStr = toString(result[0]);\n        A[n] = matchStr;\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n        n++;\n      }\n      return n === 0 ? null : A;\n    }\n  ];\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.pad-end.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n    return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.pad-start.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n  padStart: function padStart(maxLength /* , fillString = ' ' */) {\n    return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.raw.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toObject = require('../internals/to-object');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar push = uncurryThis([].push);\nvar join = uncurryThis([].join);\n\n// `String.raw` method\n// https://tc39.es/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n  raw: function raw(template) {\n    var rawTemplate = toIndexedObject(toObject(template).raw);\n    var literalSegments = lengthOfArrayLike(rawTemplate);\n    if (!literalSegments) return '';\n    var argumentsLength = arguments.length;\n    var elements = [];\n    var i = 0;\n    while (true) {\n      push(elements, toString(rawTemplate[i++]));\n      if (i === literalSegments) return join(elements, '');\n      if (i < argumentsLength) push(elements, toString(arguments[i]));\n    }\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.repeat.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n  repeat: repeat\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.replace-all.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n  replaceAll: function replaceAll(searchValue, replaceValue) {\n    var O = requireObjectCoercible(this);\n    var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, position, replacement;\n    var endOfLastMatch = 0;\n    var result = '';\n    if (isObject(searchValue)) {\n      IS_REG_EXP = isRegExp(searchValue);\n      if (IS_REG_EXP) {\n        flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n        if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n      }\n      replacer = getMethod(searchValue, REPLACE);\n      if (replacer) return call(replacer, searchValue, O, replaceValue);\n      if (IS_PURE && IS_REG_EXP) return replace(toString(O), searchValue, replaceValue);\n    }\n    string = toString(O);\n    searchString = toString(searchValue);\n    functionalReplace = isCallable(replaceValue);\n    if (!functionalReplace) replaceValue = toString(replaceValue);\n    searchLength = searchString.length;\n    advanceBy = max(1, searchLength);\n    position = indexOf(string, searchString);\n    while (position !== -1) {\n      replacement = functionalReplace\n        ? toString(replaceValue(searchString, position, string))\n        : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n      result += stringSlice(string, endOfLastMatch, position) + replacement;\n      endOfLastMatch = position + searchLength;\n      position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy);\n    }\n    if (endOfLastMatch < string.length) {\n      result += stringSlice(string, endOfLastMatch);\n    }\n    return result;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.replace.js",
    "content": "'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n  return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n  // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n  return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n  if (/./[REPLACE]) {\n    return /./[REPLACE]('a', '$0') === '';\n  }\n  return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n  var re = /./;\n  re.exec = function () {\n    var result = [];\n    result.groups = { a: '7' };\n    return result;\n  };\n  // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n  return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n  return [\n    // `String.prototype.replace` method\n    // https://tc39.es/ecma262/#sec-string.prototype.replace\n    function replace(searchValue, replaceValue) {\n      var O = requireObjectCoercible(this);\n      var replacer = isObject(searchValue) ? getMethod(searchValue, REPLACE) : undefined;\n      return replacer\n        ? call(replacer, searchValue, O, replaceValue)\n        : call(nativeReplace, toString(O), searchValue, replaceValue);\n    },\n    // `RegExp.prototype[@@replace]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n    function (string, replaceValue) {\n      var rx = anObject(this);\n      var S = toString(string);\n\n      var functionalReplace = isCallable(replaceValue);\n      if (!functionalReplace) replaceValue = toString(replaceValue);\n      var flags = toString(getRegExpFlags(rx));\n\n      if (\n        typeof replaceValue == 'string' &&\n        !~stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) &&\n        !~stringIndexOf(replaceValue, '$<') &&\n        !~stringIndexOf(flags, 'y')\n      ) {\n        var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n        if (res.done) return res.value;\n      }\n\n      var global = !!~stringIndexOf(flags, 'g');\n      var fullUnicode;\n      if (global) {\n        fullUnicode = !!~stringIndexOf(flags, 'u') || !!~stringIndexOf(flags, 'v');\n        rx.lastIndex = 0;\n      }\n\n      var results = [];\n      var result;\n      while (true) {\n        result = regExpExec(rx, S);\n        if (result === null) break;\n\n        push(results, result);\n        if (!global) break;\n\n        var matchStr = toString(result[0]);\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n      }\n\n      var accumulatedResult = '';\n      var nextSourcePosition = 0;\n      for (var i = 0; i < results.length; i++) {\n        result = results[i];\n\n        var matched = toString(result[0]);\n        var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n        var captures = [];\n        var replacement;\n        // NOTE: This is equivalent to\n        //   captures = result.slice(1).map(maybeToString)\n        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n        for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n        var namedCaptures = result.groups;\n        if (functionalReplace) {\n          var replacerArgs = concat([matched], captures, position, S);\n          if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n          replacement = toString(apply(replaceValue, undefined, replacerArgs));\n        } else {\n          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n        }\n        if (position >= nextSourcePosition) {\n          accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n          nextSourcePosition = position + matched.length;\n        }\n      }\n\n      return accumulatedResult + stringSlice(S, nextSourcePosition);\n    }\n  ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n"
  },
  {
    "path": "packages/core-js/modules/es.string.search.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n  return [\n    // `String.prototype.search` method\n    // https://tc39.es/ecma262/#sec-string.prototype.search\n    function search(regexp) {\n      var O = requireObjectCoercible(this);\n      var searcher = isObject(regexp) ? getMethod(regexp, SEARCH) : undefined;\n      return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n    },\n    // `RegExp.prototype[@@search]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n    function (string) {\n      var rx = anObject(this);\n      var S = toString(string);\n      var res = maybeCallNative(nativeSearch, rx, S);\n\n      if (res.done) return res.value;\n\n      var previousLastIndex = rx.lastIndex;\n      if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n      var result = regExpExec(rx, S);\n      if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n      return result === null ? -1 : result.index;\n    }\n  ];\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.small.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n  small: function small() {\n    return createHTML(this, 'small', '', '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.split.js",
    "content": "'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n  // eslint-disable-next-line regexp/no-empty-group -- required for testing\n  var re = /(?:)/;\n  var originalExec = re.exec;\n  re.exec = function () { return originalExec.apply(this, arguments); };\n  var result = 'ab'.split(re);\n  return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n  // eslint-disable-next-line regexp/no-empty-group -- required for testing\n  'test'.split(/(?:)/, -1).length !== 4 ||\n  'ab'.split(/(?:ab)*/).length !== 2 ||\n  '.'.split(/(.?)(.?)/).length !== 4 ||\n  // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n  '.'.split(/()()/).length > 1 ||\n  ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n  var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n    return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n  } : nativeSplit;\n\n  return [\n    // `String.prototype.split` method\n    // https://tc39.es/ecma262/#sec-string.prototype.split\n    function split(separator, limit) {\n      var O = requireObjectCoercible(this);\n      var splitter = isObject(separator) ? getMethod(separator, SPLIT) : undefined;\n      return splitter\n        ? call(splitter, separator, O, limit)\n        : call(internalSplit, toString(O), separator, limit);\n    },\n    // `RegExp.prototype[@@split]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n    //\n    // NOTE: This cannot be properly polyfilled in engines that don't support\n    // the 'y' flag.\n    function (string, limit) {\n      var rx = anObject(this);\n      var S = toString(string);\n\n      if (!BUGGY) {\n        var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n        if (res.done) return res.value;\n      }\n\n      var C = speciesConstructor(rx, RegExp);\n      var flags = toString(getRegExpFlags(rx));\n      var unicodeMatching = !!~stringIndexOf(flags, 'u') || !!~stringIndexOf(flags, 'v');\n      if (UNSUPPORTED_Y) {\n        if (!~stringIndexOf(flags, 'g')) flags += 'g';\n      } else if (!~stringIndexOf(flags, 'y')) flags += 'y';\n      // ^(? + rx + ) is needed, in combination with some S slicing, to\n      // simulate the 'y' flag.\n      var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n      var p = 0;\n      var q = 0;\n      var A = [];\n      while (q < S.length) {\n        splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n        var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n        var e;\n        if (\n          z === null ||\n          (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n        ) {\n          q = advanceStringIndex(S, q, unicodeMatching);\n        } else {\n          push(A, stringSlice(S, p, q));\n          if (A.length === lim) return A;\n          for (var i = 1; i <= z.length - 1; i++) {\n            push(A, z[i]);\n            if (A.length === lim) return A;\n          }\n          q = p = e;\n        }\n      }\n      push(A, stringSlice(S, p));\n      return A;\n    }\n  ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n"
  },
  {
    "path": "packages/core-js/modules/es.string.starts-with.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\n    var that = toString(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var search = toString(searchString);\n    var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    return stringSlice(that, index, index + search.length) === search;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.strike.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.strike` method\n// https://tc39.es/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n  strike: function strike() {\n    return createHTML(this, 'strike', '', '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.sub.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.es/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n  sub: function sub() {\n    return createHTML(this, 'sub', '', '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.substr.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\nvar min = Math.min;\n\n// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing\nvar FORCED = !''.substr || 'ab'.substr(-1) !== 'b';\n\n// `String.prototype.substr` method\n// https://tc39.es/ecma262/#sec-string.prototype.substr\n$({ target: 'String', proto: true, forced: FORCED }, {\n  substr: function substr(start, length) {\n    var that = toString(requireObjectCoercible(this));\n    var size = that.length;\n    var intStart = toIntegerOrInfinity(start);\n    var finalStart = intStart < 0 ? max(size + intStart, 0) : min(intStart, size);\n    var intLength = length === undefined ? size : toIntegerOrInfinity(length);\n    if (intLength <= 0) return '';\n    var intEnd = min(finalStart + intLength, size);\n    return finalStart >= intEnd ? '' : stringSlice(that, finalStart, intEnd);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.sup.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sup` method\n// https://tc39.es/ecma262/#sec-string.prototype.sup\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {\n  sup: function sup() {\n    return createHTML(this, 'sup', '', '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.to-well-formed.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar $Array = Array;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\n// eslint-disable-next-line es/no-string-prototype-towellformed -- safe\nvar $toWellFormed = ''.toWellFormed;\nvar REPLACEMENT_CHARACTER = '\\uFFFD';\n\n// Safari bug\nvar TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () {\n  return call($toWellFormed, 1) !== '1';\n});\n\n// `String.prototype.toWellFormed` method\n// https://tc39.es/ecma262/#sec-string.prototype.towellformed\n$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, {\n  toWellFormed: function toWellFormed() {\n    var S = toString(requireObjectCoercible(this));\n    if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S);\n    var length = S.length;\n    var result = $Array(length);\n    for (var i = 0; i < length; i++) {\n      var charCode = charCodeAt(S, i);\n      // single UTF-16 code unit\n      if ((charCode & 0xF800) !== 0xD800) result[i] = charAt(S, i);\n      // unpaired surrogate\n      else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER;\n      // surrogate pair\n      else {\n        result[i] = charAt(S, i);\n        result[++i] = charAt(S, i);\n      }\n    } return join(result, '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.trim-end.js",
    "content": "'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-right');\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, {\n  trimEnd: trimEnd\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.trim-left.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimLeft` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimleft\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, {\n  trimLeft: trimStart\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.trim-right.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimRight` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, {\n  trimRight: trimEnd\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.trim-start.js",
    "content": "'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-left');\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, {\n  trimStart: trimStart\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.string.trim.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n  trim: function trim() {\n    return $trim(this);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.suppressed-error.constructor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorStack = require('../internals/error-stack-install');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar fails = require('../internals/fails');\nvar IS_PURE = require('../internals/is-pure');\n\nvar NativeSuppressedError = globalThis.SuppressedError;\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\n\n// https://github.com/oven-sh/bun/issues/9282\nvar WRONG_ARITY = !!NativeSuppressedError && NativeSuppressedError.length !== 3;\n\n// https://github.com/oven-sh/bun/issues/9283\nvar EXTRA_ARGS_SUPPORT = !!NativeSuppressedError && fails(function () {\n  return new NativeSuppressedError(1, 2, 3, { cause: 4 }).cause === 4;\n});\n\nvar PATCH = WRONG_ARITY || EXTRA_ARGS_SUPPORT;\n\nvar $SuppressedError = function SuppressedError(error, suppressed, message) {\n  var isInstance = isPrototypeOf(SuppressedErrorPrototype, this);\n  var that;\n  if (setPrototypeOf) {\n    that = PATCH && (!isInstance || getPrototypeOf(this) === SuppressedErrorPrototype)\n      ? new NativeSuppressedError()\n      : setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : SuppressedErrorPrototype);\n  } else {\n    that = isInstance ? this : create(SuppressedErrorPrototype);\n    createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n  }\n  if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n  installErrorStack(that, $SuppressedError, that.stack, 1);\n  createNonEnumerableProperty(that, 'error', error);\n  createNonEnumerableProperty(that, 'suppressed', suppressed);\n  return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($SuppressedError, $Error);\nelse copyConstructorProperties($SuppressedError, $Error, { name: true });\n\nvar SuppressedErrorPrototype = $SuppressedError.prototype = PATCH ? NativeSuppressedError.prototype : create($Error.prototype, {\n  constructor: createPropertyDescriptor(1, $SuppressedError),\n  message: createPropertyDescriptor(1, ''),\n  name: createPropertyDescriptor(1, 'SuppressedError')\n});\n\nif (PATCH && !IS_PURE) SuppressedErrorPrototype.constructor = $SuppressedError;\n\n// `SuppressedError` constructor\n// https://github.com/tc39/proposal-explicit-resource-management\n$({ global: true, constructor: true, arity: 3, forced: PATCH }, {\n  SuppressedError: $SuppressedError\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.async-dispose.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar Symbol = globalThis.Symbol;\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-async-explicit-resource-management\ndefineWellKnownSymbol('asyncDispose');\n\nif (Symbol) {\n  var descriptor = getOwnPropertyDescriptor(Symbol, 'asyncDispose');\n  // workaround of NodeJS 20.4 bug\n  // https://github.com/nodejs/node/issues/48699\n  // and incorrect descriptor from some transpilers and userland helpers\n  if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n    defineProperty(Symbol, 'asyncDispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n  }\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.async-iterator.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.constructor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = globalThis.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = globalThis.RangeError;\nvar TypeError = globalThis.TypeError;\nvar QObject = globalThis.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n  nativeDefineProperty(O, P, Attributes);\n  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n  } return O;\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n  return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n  })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n  var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n  setInternalState(symbol, {\n    type: SYMBOL,\n    tag: tag,\n    description: description\n  });\n  if (!DESCRIPTORS) symbol.description = description;\n  return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n  anObject(O);\n  var key = toPropertyKey(P);\n  anObject(Attributes);\n  if (hasOwn(AllSymbols, key)) {\n    // first definition - default non-enumerable; redefinition - preserve existing state\n    if (!('enumerable' in Attributes) ? !hasOwn(O, key) || (hasOwn(O, HIDDEN) && O[HIDDEN][key]) : !Attributes.enumerable) {\n      if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null)));\n      O[HIDDEN][key] = true;\n    } else {\n      if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n    } return setSymbolDescriptor(O, key, Attributes);\n  } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n  anObject(O);\n  var properties = toIndexedObject(Properties);\n  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n  $forEach(keys, function (key) {\n    if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n  });\n  return O;\n};\n\nvar $create = function create(O, Properties) {\n  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n  var P = toPropertyKey(V);\n  var enumerable = call(nativePropertyIsEnumerable, this, P);\n  if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n  return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n    ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n  var it = toIndexedObject(O);\n  var key = toPropertyKey(P);\n  if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n  var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n  if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n    descriptor.enumerable = true;\n  }\n  return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n  var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n  });\n  return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n      push(result, AllSymbols[key]);\n    }\n  });\n  return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n  $Symbol = function Symbol() {\n    if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n    var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n    var tag = uid(description);\n    var setter = function (value) {\n      var $this = this === undefined ? globalThis : this;\n      if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n      if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;\n      var descriptor = createPropertyDescriptor(1, value);\n      try {\n        setSymbolDescriptor($this, tag, descriptor);\n      } catch (error) {\n        if (!(error instanceof RangeError)) throw error;\n        fallbackDefineProperty($this, tag, descriptor);\n      }\n    };\n    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n    return wrap(tag, description);\n  };\n\n  SymbolPrototype = $Symbol[PROTOTYPE];\n\n  defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n    return getInternalState(this).tag;\n  });\n\n  defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n    return wrap(uid(description), description);\n  });\n\n  propertyIsEnumerableModule.f = $propertyIsEnumerable;\n  definePropertyModule.f = $defineProperty;\n  definePropertiesModule.f = $defineProperties;\n  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n  wrappedWellKnownSymbolModule.f = function (name) {\n    return wrap(wellKnownSymbol(name), name);\n  };\n\n  if (DESCRIPTORS) {\n    // https://tc39.es/ecma262/#sec-symbol.prototype.description\n    defineBuiltInAccessor(SymbolPrototype, 'description', {\n      configurable: true,\n      get: function description() {\n        return getInternalState(this).description;\n      }\n    });\n    if (!IS_PURE) {\n      defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n    }\n  }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n  Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n  defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n  useSetter: function () { USE_SETTER = true; },\n  useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n  // `Object.create` method\n  // https://tc39.es/ecma262/#sec-object.create\n  create: $create,\n  // `Object.defineProperty` method\n  // https://tc39.es/ecma262/#sec-object.defineproperty\n  defineProperty: $defineProperty,\n  // `Object.defineProperties` method\n  // https://tc39.es/ecma262/#sec-object.defineproperties\n  defineProperties: $defineProperties,\n  // `Object.getOwnPropertyDescriptor` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Object.getOwnPropertyNames` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertynames\n  getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.description.js",
    "content": "// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = globalThis.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n  // Safari 12 bug\n  NativeSymbol().description !== undefined\n)) {\n  var EmptyStringDescriptionStore = {};\n  // wrap Symbol constructor for correct work with undefined description\n  var SymbolWrapper = function Symbol() {\n    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n    var result = isPrototypeOf(SymbolPrototype, this)\n      // eslint-disable-next-line sonarjs/inconsistent-function-call -- ok\n      ? new NativeSymbol(description)\n      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n      : description === undefined ? NativeSymbol() : NativeSymbol(description);\n    if (description === '') EmptyStringDescriptionStore[result] = true;\n    return result;\n  };\n\n  copyConstructorProperties(SymbolWrapper, NativeSymbol);\n  // wrap Symbol.for for correct handling of empty string descriptions\n  var nativeFor = SymbolWrapper['for'];\n  SymbolWrapper['for'] = { 'for': function (key) {\n    var stringKey = toString(key);\n    var symbol = call(nativeFor, this, stringKey);\n    if (stringKey === '') EmptyStringDescriptionStore[symbol] = true;\n    return symbol;\n  } }['for'];\n  SymbolWrapper.prototype = SymbolPrototype;\n  SymbolPrototype.constructor = SymbolWrapper;\n\n  var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)';\n  var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n  var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n  var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n  var replace = uncurryThis(''.replace);\n  var stringSlice = uncurryThis(''.slice);\n\n  defineBuiltInAccessor(SymbolPrototype, 'description', {\n    configurable: true,\n    get: function description() {\n      var symbol = thisSymbolValue(this);\n      if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n      var string = symbolDescriptiveString(symbol);\n      var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n      return desc === '' ? undefined : desc;\n    }\n  });\n\n  $({ global: true, constructor: true, forced: true }, {\n    Symbol: SymbolWrapper\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.dispose.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar Symbol = globalThis.Symbol;\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n\nif (Symbol) {\n  var descriptor = getOwnPropertyDescriptor(Symbol, 'dispose');\n  // workaround of NodeJS 20.4 bug\n  // https://github.com/nodejs/node/issues/48699\n  // and incorrect descriptor from some transpilers and userland helpers\n  if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n    defineProperty(Symbol, 'dispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n  }\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.for.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n  'for': function (key) {\n    var string = toString(key);\n    if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n    var symbol = getBuiltIn('Symbol')(string);\n    StringToSymbolRegistry[string] = symbol;\n    SymbolToStringRegistry[symbol] = string;\n    return symbol;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.has-instance.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.is-concat-spreadable.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.iterator.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.key-for.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n    if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.match-all.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.match.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.replace.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.search.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.species.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.split.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.to-primitive.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.to-string-tag.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n"
  },
  {
    "path": "packages/core-js/modules/es.symbol.unscopables.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.at.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at\nexportTypedArrayMethod('at', function at(index) {\n  var O = aTypedArray(this);\n  var len = lengthOfArrayLike(O);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n  return (k < 0 || k >= len) ? undefined : O[k];\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.copy-within.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n  return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.every.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n  return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.fill.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\nvar toBigInt = require('../internals/to-big-int');\nvar classof = require('../internals/classof');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar slice = uncurryThis(''.slice);\n\n// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18\nvar CONVERSION_BUG = fails(function () {\n  var count = 0;\n  // eslint-disable-next-line es/no-typed-arrays -- safe\n  new Int8Array(2).fill({ valueOf: function () { return count++; } });\n  return count !== 1;\n});\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n  var length = arguments.length;\n  aTypedArray(this);\n  var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value;\n  return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);\n}, CONVERSION_BUG);\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.filter.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSameTypeAndList = require('../internals/typed-array-from-same-type-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n  var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  return fromSameTypeAndList(this, list);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.find-index.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n  return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.find-last-index.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n  return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.find-last.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n  return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.find.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n  return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.float32-array.js",
    "content": "'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n  return function Float32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.float64-array.js",
    "content": "'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n  return function Float64Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.for-each.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n  $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.from.js",
    "content": "'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.es/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.includes.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n  return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.index-of.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n  return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.int16-array.js",
    "content": "'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n  return function Int16Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.int32-array.js",
    "content": "'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n  return function Int32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.int8-array.js",
    "content": "'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n  return function Int8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.iterator.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = globalThis.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n  TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n  && TypedArrayPrototype.values\n  && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n  && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n  return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n  return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n  return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.join.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n  return $join(aTypedArray(this), separator);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.last-index-of.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n  var length = arguments.length;\n  return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.map.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar fromSameTypeAndList = require('../internals/typed-array-from-same-type-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n  var list = $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n  return fromSameTypeAndList(this, list);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.of.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.of` method\n// https://tc39.es/ecma262/#sec-%typedarray%.of\nexportTypedArrayStaticMethod('of', function of(/* ...items */) {\n  var index = 0;\n  var length = arguments.length;\n  var result = new (aTypedArrayConstructor(this))(length);\n  while (length > index) result[index] = arguments[index++];\n  return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.reduce-right.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n  var length = arguments.length;\n  return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.reduce.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n  var length = arguments.length;\n  return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.reverse.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n  var that = this;\n  var length = aTypedArray(that).length;\n  var middle = floor(length / 2);\n  var index = 0;\n  var value;\n  while (index < middle) {\n    value = that[index];\n    that[index++] = that[--length];\n    that[length] = value;\n  } return that;\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.set.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = globalThis.RangeError;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () {\n  // eslint-disable-next-line es/no-typed-arrays -- required for testing\n  var array = new Uint8ClampedArray(2);\n  call($set, array, { length: 1, 0: 3 }, 1);\n  return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n  var array = new Int8Array(2);\n  array.set(1);\n  array.set('2', 1);\n  return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n  aTypedArray(this);\n  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n  var src = toIndexedObject(arrayLike);\n  if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n  var length = this.length;\n  var len = lengthOfArrayLike(src);\n  var index = 0;\n  if (len + offset > length) throw new RangeError('Wrong length');\n  while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.slice.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line es/no-typed-arrays -- required for testing\n  new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n  var list = arraySlice(aTypedArray(this), start, end);\n  var C = getTypedArrayConstructor(this);\n  var index = 0;\n  var length = list.length;\n  var result = new C(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n}, FORCED);\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.some.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n  return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.sort.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/environment-ff-version');\nvar IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');\nvar V8 = require('../internals/environment-v8-version');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = globalThis.Uint16Array;\nvar nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () {\n  nativeSort(new Uint16Array(2), null);\n}) && fails(function () {\n  nativeSort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!nativeSort && !fails(function () {\n  // feature detection can be too slow, so check engines versions\n  if (V8) return V8 < 74;\n  if (FF) return FF < 67;\n  if (IE_OR_EDGE) return true;\n  if (WEBKIT) return WEBKIT < 602;\n\n  var array = new Uint16Array(516);\n  var expected = Array(516);\n  var index, mod;\n\n  for (index = 0; index < 516; index++) {\n    mod = index % 4;\n    array[index] = 515 - index;\n    expected[index] = index - 2 * mod + 3;\n  }\n\n  nativeSort(array, function (a, b) {\n    return (a / 4 | 0) - (b / 4 | 0);\n  });\n\n  for (index = 0; index < 516; index++) {\n    if (array[index] !== expected[index]) return true;\n  }\n});\n\nvar getSortCompare = function (comparefn) {\n  return function (x, y) {\n    if (comparefn !== undefined) return +comparefn(x, y) || 0;\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (y !== y) return x !== x ? 0 : -1;\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (x !== x) return 1;\n    if (x === 0 && y === 0) return 1 / x > 0 ? (1 / y > 0 ? 0 : 1) : (1 / y > 0 ? -1 : 0);\n    return x > y ? 1 : x < y ? -1 : 0;\n  };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n  if (comparefn !== undefined) aCallable(comparefn);\n  if (STABLE_SORT) return nativeSort(this, comparefn);\n\n  return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.subarray.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n  var O = aTypedArray(this);\n  var length = O.length;\n  var beginIndex = toAbsoluteIndex(begin, length);\n  var C = getTypedArrayConstructor(O);\n  return new C(\n    O.buffer,\n    O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n    toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n  );\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.to-locale-string.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = globalThis.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n  $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n  return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n  Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n  return apply(\n    $toLocaleString,\n    TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n    arraySlice(arguments)\n  );\n}, FORCED);\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.to-reversed.js",
    "content": "'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n  var O = aTypedArray(this);\n  var len = lengthOfArrayLike(O);\n  var A = new (getTypedArrayConstructor(O))(len);\n  var k = 0;\n  for (; k < len; k++) A[k] = O[len - k - 1];\n  return A;\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.to-sorted.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n  if (compareFn !== undefined) aCallable(compareFn);\n  var O = aTypedArray(this);\n  var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n  return sort(A, compareFn);\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.to-string.js",
    "content": "'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = globalThis.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n  arrayToString = function toString() {\n    return join(this);\n  };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.uint16-array.js",
    "content": "'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n  return function Uint16Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.uint32-array.js",
    "content": "'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n  return function Uint32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.uint8-array.js",
    "content": "'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n  return function Uint8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.uint8-clamped-array.js",
    "content": "'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n  return function Uint8ClampedArray(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n}, true);\n"
  },
  {
    "path": "packages/core-js/modules/es.typed-array.with.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar $RangeError = RangeError;\n\nvar PROPER_ORDER = function () {\n  try {\n    // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n    new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n  } catch (error) {\n    // some early implementations, like WebKit, does not follow the final semantic\n    // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n    return error === 8;\n  }\n}();\n\n// Bug in WebKit. It should truncate a negative fractional index to zero, but instead throws an error\nvar THROW_ON_NEGATIVE_FRACTIONAL_INDEX = PROPER_ORDER && function () {\n  try {\n    // eslint-disable-next-line es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n    new Int8Array(1)['with'](-0.5, 1);\n  } catch (error) {\n    return true;\n  }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n  var O = aTypedArray(this);\n  var len = lengthOfArrayLike(O);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n  var numericValue = isBigIntArray(O) ? toBigInt(value) : +value;\n  if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n  var A = new (getTypedArrayConstructor(O))(len);\n  var k = 0;\n  for (; k < len; k++) A[k] = k === actualIndex ? numericValue : O[k];\n  return A;\n} }['with'], !PROPER_ORDER || THROW_ON_NEGATIVE_FRACTIONAL_INDEX);\n"
  },
  {
    "path": "packages/core-js/modules/es.uint8-array.from-base64.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar $fromBase64 = require('../internals/uint8-from-base64');\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.fromBase64 || !function () {\n  // Webkit not throw an error on odd length string\n  try {\n    Uint8Array.fromBase64('a');\n    return;\n  } catch (error) { /* empty */ }\n  try {\n    Uint8Array.fromBase64('', null);\n  } catch (error) {\n    return true;\n  }\n}();\n\n// `Uint8Array.fromBase64` method\n// https://tc39.es/ecma262/#sec-uint8array.frombase64\nif (Uint8Array) $({ target: 'Uint8Array', stat: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n  fromBase64: function fromBase64(string /* , options */) {\n    var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, null, 0x1FFFFFFFFFFFFF);\n    return arrayFromConstructorAndList(Uint8Array, result.bytes);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.uint8-array.from-hex.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar aString = require('../internals/a-string');\nvar $fromHex = require('../internals/uint8-from-hex');\n\n// `Uint8Array.fromHex` method\n// https://tc39.es/ecma262/#sec-uint8array.fromhex\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', stat: true }, {\n  fromHex: function fromHex(string) {\n    return $fromHex(aString(string)).bytes;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.uint8-array.set-from-base64.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar $fromBase64 = require('../internals/uint8-from-base64');\nvar anUint8Array = require('../internals/an-uint8-array');\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.setFromBase64 || !function () {\n  var target = new Uint8Array([255, 255, 255, 255, 255]);\n  try {\n    target.setFromBase64('', null);\n    return;\n  } catch (error) { /* empty */ }\n  // Webkit not throw an error on odd length string\n  try {\n    target.setFromBase64('a');\n    return;\n  } catch (error) { /* empty */ }\n  try {\n    target.setFromBase64('MjYyZg===');\n  } catch (error) {\n    return target[0] === 50 && target[1] === 54 && target[2] === 50 && target[3] === 255 && target[4] === 255;\n  }\n}();\n\n// `Uint8Array.prototype.setFromBase64` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.setfrombase64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n  setFromBase64: function setFromBase64(string /* , options */) {\n    anUint8Array(this);\n\n    var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, this, this.length);\n\n    return { read: result.read, written: result.written };\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.uint8-array.set-from-hex.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar aString = require('../internals/a-string');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar $fromHex = require('../internals/uint8-from-hex');\n\n// Should not throw an error on length-tracking views over ResizableArrayBuffer\n// https://issues.chromium.org/issues/454630441\nfunction throwsOnLengthTrackingView() {\n  try {\n    // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- required for testing\n    var rab = new ArrayBuffer(16, { maxByteLength: 1024 });\n    // eslint-disable-next-line es/no-uint8array-prototype-setfromhex, es/no-typed-arrays -- required for testing\n    new Uint8Array(rab).setFromHex('cafed00d');\n  } catch (error) {\n    return true;\n  }\n}\n\n// `Uint8Array.prototype.setFromHex` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.setfromhex\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true, forced: throwsOnLengthTrackingView() }, {\n  setFromHex: function setFromHex(string) {\n    anUint8Array(this);\n    aString(string);\n    notDetached(this.buffer);\n    var read = $fromHex(string, this).read;\n    return { read: read, written: read / 2 };\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.uint8-array.to-base64.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObjectOrUndefined = require('../internals/an-object-or-undefined');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar base64Map = require('../internals/base64-map');\nvar getAlphabetOption = require('../internals/get-alphabet-option');\n\nvar base64Alphabet = base64Map.i2c;\nvar base64UrlAlphabet = base64Map.i2cUrl;\n\nvar charAt = uncurryThis(''.charAt);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toBase64 || !function () {\n  try {\n    var target = new Uint8Array();\n    target.toBase64(null);\n  } catch (error) {\n    return true;\n  }\n}();\n\n// `Uint8Array.prototype.toBase64` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.tobase64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n  toBase64: function toBase64(/* options */) {\n    var array = anUint8Array(this);\n    var options = arguments.length ? anObjectOrUndefined(arguments[0]) : undefined;\n    var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n    var omitPadding = !!options && !!options.omitPadding;\n    notDetached(this.buffer);\n\n    var result = '';\n    var i = 0;\n    var length = array.length;\n    var triplet;\n\n    var at = function (shift) {\n      return charAt(alphabet, (triplet >> (6 * shift)) & 63);\n    };\n\n    for (; i + 2 < length; i += 3) {\n      triplet = (array[i] << 16) + (array[i + 1] << 8) + array[i + 2];\n      result += at(3) + at(2) + at(1) + at(0);\n    }\n    if (i + 2 === length) {\n      triplet = (array[i] << 16) + (array[i + 1] << 8);\n      result += at(3) + at(2) + at(1) + (omitPadding ? '' : '=');\n    } else if (i + 1 === length) {\n      triplet = array[i] << 16;\n      result += at(3) + at(2) + (omitPadding ? '' : '==');\n    }\n\n    return result;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.uint8-array.to-hex.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar notDetached = require('../internals/array-buffer-not-detached');\n\nvar numberToString = uncurryThis(1.1.toString);\nvar join = uncurryThis([].join);\nvar $Array = Array;\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toHex || !(function () {\n  try {\n    var target = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]);\n    return target.toHex() === 'ffffffffffffffff';\n  } catch (error) {\n    return false;\n  }\n})();\n\n// `Uint8Array.prototype.toHex` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.tohex\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n  toHex: function toHex() {\n    anUint8Array(this);\n    notDetached(this.buffer);\n    var result = $Array(this.length);\n    for (var i = 0, length = this.length; i < length; i++) {\n      var hex = numberToString(this[i], 16);\n      result[i] = hex.length === 1 ? '0' + hex : hex;\n    }\n    return join(result, '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.unescape.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\n\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar stringSlice = uncurryThis(''.slice);\n\nvar hex2 = /^[\\da-f]{2}$/i;\nvar hex4 = /^[\\da-f]{4}$/i;\n\n// `unescape` method\n// https://tc39.es/ecma262/#sec-unescape-string\n$({ global: true }, {\n  unescape: function unescape(string) {\n    var str = toString(string);\n    var result = '';\n    var length = str.length;\n    var index = 0;\n    var chr, part;\n    while (index < length) {\n      chr = charAt(str, index++);\n      if (chr === '%') {\n        if (charAt(str, index) === 'u') {\n          part = stringSlice(str, index + 1, index + 5);\n          if (exec(hex4, part)) {\n            result += fromCharCode(parseInt(part, 16));\n            index += 5;\n            continue;\n          }\n        } else {\n          part = stringSlice(str, index, index + 2);\n          if (exec(hex2, part)) {\n            result += fromCharCode(parseInt(part, 16));\n            index += 2;\n            continue;\n          }\n        }\n      }\n      result += chr;\n    } return result;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.weak-map.constructor.js",
    "content": "'use strict';\nvar FREEZING = require('../internals/freezing');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar fails = require('../internals/fails');\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\n\nvar $Object = Object;\n// eslint-disable-next-line es/no-array-isarray -- safe\nvar isArray = Array.isArray;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = $Object.isExtensible;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = $Object.isFrozen;\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar isSealed = $Object.isSealed;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = $Object.freeze;\n// eslint-disable-next-line es/no-object-seal -- safe\nvar seal = $Object.seal;\n\nvar IS_IE11 = !globalThis.ActiveXObject && 'ActiveXObject' in globalThis;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n  return function WeakMap() {\n    return init(this, arguments.length ? arguments[0] : undefined);\n  };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\nvar WeakMapPrototype = $WeakMap.prototype;\nvar nativeSet = uncurryThis(WeakMapPrototype.set);\n\n// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them\nvar hasMSEdgeFreezingBug = function () {\n  return FREEZING && fails(function () {\n    var frozenArray = freeze([]);\n    nativeSet(new $WeakMap(), frozenArray, 1);\n    return !isFrozen(frozenArray);\n  });\n};\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP) if (IS_IE11) {\n  InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n  InternalMetadataModule.enable();\n  var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n  var nativeHas = uncurryThis(WeakMapPrototype.has);\n  var nativeGet = uncurryThis(WeakMapPrototype.get);\n  defineBuiltIns(WeakMapPrototype, {\n    'delete': function (key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeDelete(this, key) || state.frozen['delete'](key);\n      } return nativeDelete(this, key);\n    },\n    has: function has(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas(this, key) || state.frozen.has(key);\n      } return nativeHas(this, key);\n    },\n    get: function get(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n      } return nativeGet(this, key);\n    },\n    set: function set(key, value) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n      } else nativeSet(this, key, value);\n      return this;\n    }\n  });\n// Chakra Edge frozen keys fix\n} else if (hasMSEdgeFreezingBug()) {\n  defineBuiltIns(WeakMapPrototype, {\n    set: function set(key, value) {\n      var arrayIntegrityLevel;\n      if (isArray(key)) {\n        if (isFrozen(key)) arrayIntegrityLevel = freeze;\n        else if (isSealed(key)) arrayIntegrityLevel = seal;\n      }\n      nativeSet(this, key, value);\n      if (arrayIntegrityLevel) arrayIntegrityLevel(key);\n      return this;\n    }\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/es.weak-map.get-or-insert-computed.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aWeakMap = require('../internals/a-weak-map');\nvar aWeakKey = require('../internals/a-weak-key');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\nvar FORCED = IS_PURE || !function () {\n  try {\n    // eslint-disable-next-line es/no-weak-map, no-throw-literal -- testing\n    if (WeakMap.prototype.getOrInsertComputed) new WeakMap().getOrInsertComputed(1, function () { throw 1; });\n  } catch (error) {\n    // FF144 Nightly - Beta 3 bug\n    // https://bugzilla.mozilla.org/show_bug.cgi?id=1988369\n    return error instanceof TypeError;\n  }\n}();\n\n// `WeakMap.prototype.getOrInsertComputed` method\n// https://tc39.es/ecma262/#sec-weakmap.prototype.getorinsertcomputed\n$({ target: 'WeakMap', proto: true, real: true, forced: FORCED }, {\n  getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n    if (!IS_PURE) aWeakMap(this);\n    aWeakKey(key);\n    aCallable(callbackfn);\n    if (has(this, key)) return get(this, key);\n    var value = callbackfn(key);\n    set(this, key, value);\n    return value;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.weak-map.get-or-insert.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.getOrInsert` method\n// https://tc39.es/ecma262/#sec-weakmap.prototype.getorinsert\n$({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {\n  getOrInsert: function getOrInsert(key, value) {\n    if (has(this, key)) return get(this, key);\n    set(this, key, value);\n    return value;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/es.weak-map.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-map.constructor');\n"
  },
  {
    "path": "packages/core-js/modules/es.weak-set.constructor.js",
    "content": "'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n  return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n"
  },
  {
    "path": "packages/core-js/modules/es.weak-set.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-set.constructor');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.aggregate-error.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.aggregate-error');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array-buffer.detached.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array-buffer.detached');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array-buffer.transfer-to-fixed-length');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array-buffer.transfer.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array-buffer.transfer');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.at.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.at');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.filter-out.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.filterOut` method\n// https://github.com/tc39/proposal-array-filtering\n$({ target: 'Array', proto: true, forced: true }, {\n  filterOut: function filterOut(callbackfn /* , thisArg */) {\n    return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\naddToUnscopables('filterOut');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.filter-reject.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.filterReject` method\n// https://github.com/tc39/proposal-array-filtering\n$({ target: 'Array', proto: true, forced: true }, {\n  filterReject: function filterReject(callbackfn /* , thisArg */) {\n    return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\naddToUnscopables('filterReject');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.find-last-index.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.find-last-index');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.find-last.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.find-last');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.from-async.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.from-async');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.group-by-to-map.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar $groupToMap = require('../internals/array-group-to-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Array.prototype.groupByToMap` method\n// https://github.com/tc39/proposal-array-grouping\n// https://bugs.webkit.org/show_bug.cgi?id=236541\n$({ target: 'Array', proto: true, name: 'groupToMap', forced: IS_PURE || !arrayMethodIsStrict('groupByToMap') }, {\n  groupByToMap: $groupToMap\n});\n\naddToUnscopables('groupByToMap');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.group-by.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar $group = require('../internals/array-group');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\n// https://bugs.webkit.org/show_bug.cgi?id=236541\n$({ target: 'Array', proto: true, forced: !arrayMethodIsStrict('groupBy') }, {\n  groupBy: function groupBy(callbackfn /* , thisArg */) {\n    var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n    return $group(this, callbackfn, thisArg);\n  }\n});\n\naddToUnscopables('groupBy');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.group-to-map.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar $groupToMap = require('../internals/array-group-to-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Array.prototype.groupToMap` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Array', proto: true, forced: IS_PURE }, {\n  groupToMap: $groupToMap\n});\n\naddToUnscopables('groupToMap');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.group.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $group = require('../internals/array-group');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.group` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Array', proto: true }, {\n  group: function group(callbackfn /* , thisArg */) {\n    var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n    return $group(this, callbackfn, thisArg);\n  }\n});\n\naddToUnscopables('group');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.is-template-object.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = Object.isFrozen;\n\nvar isFrozenStringArray = function (array, allowUndefined) {\n  if (!isFrozen || !isArray(array) || !isFrozen(array)) return false;\n  var index = 0;\n  var length = array.length;\n  var element;\n  while (index < length) {\n    element = array[index++];\n    if (!(typeof element == 'string' || (allowUndefined && element === undefined))) {\n      return false;\n    }\n  } return length !== 0;\n};\n\n// `Array.isTemplateObject` method\n// https://github.com/tc39/proposal-array-is-template-object\n$({ target: 'Array', stat: true, sham: true, forced: true }, {\n  isTemplateObject: function isTemplateObject(value) {\n    if (!isFrozenStringArray(value, true)) return false;\n    var raw = value.raw;\n    return isFrozenStringArray(raw, false) && raw.length === value.length;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.last-index.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar DESCRIPTORS = require('../internals/descriptors');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\n// `Array.prototype.lastIndex` getter\n// https://github.com/tc39/proposal-array-last\nif (DESCRIPTORS) {\n  defineBuiltInAccessor(Array.prototype, 'lastIndex', {\n    configurable: true,\n    get: function lastIndex() {\n      var O = toObject(this);\n      var len = lengthOfArrayLike(O);\n      return len === 0 ? 0 : len - 1;\n    }\n  });\n\n  addToUnscopables('lastIndex');\n}\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.last-item.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar DESCRIPTORS = require('../internals/descriptors');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\n// `Array.prototype.lastIndex` accessor\n// https://github.com/tc39/proposal-array-last\nif (DESCRIPTORS) {\n  defineBuiltInAccessor(Array.prototype, 'lastItem', {\n    configurable: true,\n    get: function lastItem() {\n      var O = toObject(this);\n      var len = lengthOfArrayLike(O);\n      return len === 0 ? undefined : O[len - 1];\n    },\n    set: function lastItem(value) {\n      var O = toObject(this);\n      var len = lengthOfArrayLike(O);\n      return O[len === 0 ? 0 : len - 1] = value;\n    }\n  });\n\n  addToUnscopables('lastItem');\n}\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.to-reversed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.to-reversed');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.to-sorted.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.to-sorted');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.to-spliced.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.to-spliced');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.unique-by.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar uniqueBy = require('../internals/array-unique-by');\n\n// `Array.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\n$({ target: 'Array', proto: true, forced: true }, {\n  uniqueBy: uniqueBy\n});\n\naddToUnscopables('uniqueBy');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.array.with.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.with');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-disposable-stack.constructor.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.async-disposable-stack.constructor');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.as-indexed-pairs.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/async-iterator-indexed');\n\n// `AsyncIterator.prototype.asIndexedPairs` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'AsyncIterator', name: 'indexed', proto: true, real: true, forced: true }, {\n  asIndexedPairs: indexed\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.async-dispose.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.async-iterator.async-dispose');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.constructor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar anInstance = require('../internals/an-instance');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar IS_PURE = require('../internals/is-pure');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\n\nvar AsyncIteratorConstructor = function AsyncIterator() {\n  anInstance(this, AsyncIteratorPrototype);\n  if (getPrototypeOf(this) === AsyncIteratorPrototype) throw new $TypeError('Abstract class AsyncIterator not directly constructable');\n};\n\nAsyncIteratorConstructor.prototype = AsyncIteratorPrototype;\n\nif (!hasOwn(AsyncIteratorPrototype, TO_STRING_TAG)) {\n  createNonEnumerableProperty(AsyncIteratorPrototype, TO_STRING_TAG, 'AsyncIterator');\n}\n\nif (IS_PURE || !hasOwn(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPrototype.constructor === Object) {\n  createNonEnumerableProperty(AsyncIteratorPrototype, 'constructor', AsyncIteratorConstructor);\n}\n\n// `AsyncIterator` constructor\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ global: true, constructor: true, forced: IS_PURE }, {\n  AsyncIterator: AsyncIteratorConstructor\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.drop.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n  var state = this;\n\n  return new Promise(function (resolve, reject) {\n    var doneAndReject = function (error) {\n      state.done = true;\n      reject(error);\n    };\n\n    var loop = function () {\n      try {\n        Promise.resolve(anObject(call(state.next, state.iterator))).then(function (step) {\n          try {\n            if (anObject(step).done) {\n              state.done = true;\n              resolve(createIterResultObject(undefined, true));\n            } else if (state.remaining) {\n              state.remaining--;\n              loop();\n            } else resolve(createIterResultObject(step.value, false));\n          } catch (err) { doneAndReject(err); }\n        }, doneAndReject);\n      } catch (error) { doneAndReject(error); }\n    };\n\n    loop();\n  });\n});\n\n// `AsyncIterator.prototype.drop` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  drop: function drop(limit) {\n    anObject(this);\n    var remaining = toPositiveInteger(notANaN(+limit));\n    return new AsyncIteratorProxy(getIteratorDirect(this), {\n      remaining: remaining\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.every.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/async-iterator-iteration').every;\n\n// `AsyncIterator.prototype.every` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  every: function every(predicate) {\n    return $every(this, predicate);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.filter.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n  var state = this;\n  var iterator = state.iterator;\n  var predicate = state.predicate;\n\n  return new Promise(function (resolve, reject) {\n    var doneAndReject = function (error) {\n      state.done = true;\n      reject(error);\n    };\n\n    var ifAbruptCloseAsyncIterator = function (error) {\n      closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n    };\n\n    var loop = function () {\n      try {\n        Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n          try {\n            if (anObject(step).done) {\n              state.done = true;\n              resolve(createIterResultObject(undefined, true));\n            } else {\n              var value = step.value;\n              try {\n                var result = predicate(value, state.counter++);\n\n                var handler = function (selected) {\n                  selected ? resolve(createIterResultObject(value, false)) : loop();\n                };\n\n                if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n                else handler(result);\n              } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n            }\n          } catch (error2) { doneAndReject(error2); }\n        }, doneAndReject);\n      } catch (error) { doneAndReject(error); }\n    };\n\n    loop();\n  });\n});\n\n// `AsyncIterator.prototype.filter` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  filter: function filter(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    return new AsyncIteratorProxy(getIteratorDirect(this), {\n      predicate: predicate\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.find.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/async-iterator-iteration').find;\n\n// `AsyncIterator.prototype.find` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  find: function find(predicate) {\n    return $find(this, predicate);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.flat-map.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar getAsyncIteratorFlattenable = require('../internals/get-async-iterator-flattenable');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n  var state = this;\n  var iterator = state.iterator;\n  var mapper = state.mapper;\n\n  return new Promise(function (resolve, reject) {\n    var doneAndReject = function (error) {\n      state.done = true;\n      reject(error);\n    };\n\n    var ifAbruptCloseAsyncIterator = function (error) {\n      closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n    };\n\n    var outerLoop = function () {\n      try {\n        Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n          try {\n            if (anObject(step).done) {\n              state.done = true;\n              resolve(createIterResultObject(undefined, true));\n            } else {\n              var value = step.value;\n              try {\n                var result = mapper(value, state.counter++);\n\n                var handler = function (mapped) {\n                  try {\n                    state.inner = getAsyncIteratorFlattenable(mapped);\n                    innerLoop();\n                  } catch (error4) { ifAbruptCloseAsyncIterator(error4); }\n                };\n\n                if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n                else handler(result);\n              } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n            }\n          } catch (error2) { doneAndReject(error2); }\n        }, doneAndReject);\n      } catch (error) { doneAndReject(error); }\n    };\n\n    var innerLoop = function () {\n      var inner = state.inner;\n      if (inner) {\n        try {\n          Promise.resolve(anObject(call(inner.next, inner.iterator))).then(function (result) {\n            try {\n              if (anObject(result).done) {\n                state.inner = null;\n                outerLoop();\n              } else resolve(createIterResultObject(result.value, false));\n            } catch (error1) { ifAbruptCloseAsyncIterator(error1); }\n          }, ifAbruptCloseAsyncIterator);\n        } catch (error) { ifAbruptCloseAsyncIterator(error); }\n      } else outerLoop();\n    };\n\n    innerLoop();\n  });\n});\n\n// `AsyncIterator.prototype.flatMap` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  flatMap: function flatMap(mapper) {\n    anObject(this);\n    aCallable(mapper);\n    return new AsyncIteratorProxy(getIteratorDirect(this), {\n      mapper: mapper,\n      inner: null\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.for-each.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $forEach = require('../internals/async-iterator-iteration').forEach;\n\n// `AsyncIterator.prototype.forEach` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  forEach: function forEach(fn) {\n    return $forEach(this, fn);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.from.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getAsyncIteratorFlattenable = require('../internals/get-async-iterator-flattenable');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar WrapAsyncIterator = require('../internals/async-iterator-wrap');\n\n// `AsyncIterator.from` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', stat: true, forced: true }, {\n  from: function from(O) {\n    var iteratorRecord = getAsyncIteratorFlattenable(typeof O == 'string' ? toObject(O) : O);\n    return isPrototypeOf(AsyncIteratorPrototype, iteratorRecord.iterator)\n      ? iteratorRecord.iterator\n      : new WrapAsyncIterator(iteratorRecord);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.indexed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/async-iterator-indexed');\n\n// `AsyncIterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  indexed: indexed\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.map.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar map = require('../internals/async-iterator-map');\n\n// `AsyncIterator.prototype.map` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  map: map\n});\n\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.reduce.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar Promise = getBuiltIn('Promise');\nvar $TypeError = TypeError;\n\n// `AsyncIterator.prototype.reduce` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  reduce: function reduce(reducer /* , initialValue */) {\n    anObject(this);\n    aCallable(reducer);\n    var record = getIteratorDirect(this);\n    var iterator = record.iterator;\n    var next = record.next;\n    var noInitial = arguments.length < 2;\n    var accumulator = noInitial ? undefined : arguments[1];\n    var counter = 0;\n\n    return new Promise(function (resolve, reject) {\n      var ifAbruptCloseAsyncIterator = function (error) {\n        closeAsyncIteration(iterator, reject, error, reject);\n      };\n\n      var loop = function () {\n        try {\n          Promise.resolve(anObject(call(next, iterator))).then(function (step) {\n            try {\n              if (anObject(step).done) {\n                noInitial ? reject(new $TypeError('Reduce of empty iterator with no initial value')) : resolve(accumulator);\n              } else {\n                var value = step.value;\n                if (noInitial) {\n                  noInitial = false;\n                  accumulator = value;\n                  counter++;\n                  loop();\n                } else try {\n                  var result = reducer(accumulator, value, counter++);\n\n                  var handler = function ($result) {\n                    accumulator = $result;\n                    loop();\n                  };\n\n                  if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n                  else handler(result);\n                } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n              }\n            } catch (error2) { reject(error2); }\n          }, reject);\n        } catch (error) { reject(error); }\n      };\n\n      loop();\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.some.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/async-iterator-iteration').some;\n\n// `AsyncIterator.prototype.some` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  some: function some(predicate) {\n    return $some(this, predicate);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.take.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getMethod = require('../internals/get-method');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n  var state = this;\n  var iterator = state.iterator;\n  var returnMethod;\n\n  if (!state.remaining--) {\n    var resultDone = createIterResultObject(undefined, true);\n    state.done = true;\n    returnMethod = getMethod(iterator, 'return');\n    if (returnMethod !== undefined) {\n      return Promise.resolve(call(returnMethod, iterator)).then(function (result) {\n        anObject(result);\n        return resultDone;\n      });\n    }\n    return resultDone;\n  } return Promise.resolve(call(state.next, iterator)).then(function (step) {\n    if (anObject(step).done) {\n      state.done = true;\n      return createIterResultObject(undefined, true);\n    } return createIterResultObject(step.value, false);\n  }).then(null, function (error) {\n    state.done = true;\n    throw error;\n  });\n});\n\n// `AsyncIterator.prototype.take` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  take: function take(limit) {\n    anObject(this);\n    var remaining = toPositiveInteger(notANaN(+limit));\n    return new AsyncIteratorProxy(getIteratorDirect(this), {\n      remaining: remaining\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.async-iterator.to-array.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $toArray = require('../internals/async-iterator-iteration').toArray;\n\n// `AsyncIterator.prototype.toArray` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n  toArray: function toArray() {\n    return $toArray(this, undefined, []);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.bigint.range.js",
    "content": "'use strict';\n/* eslint-disable es/no-bigint -- safe */\nvar $ = require('../internals/export');\nvar NumericRangeIterator = require('../internals/numeric-range-iterator');\n\n// `BigInt.range` method\n// https://github.com/tc39/proposal-iterator.range\n// TODO: Remove from `core-js@4`\nif (typeof BigInt == 'function') {\n  $({ target: 'BigInt', stat: true, forced: true }, {\n    range: function range(start, end, option) {\n      return new NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1));\n    }\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/esnext.composite-key.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar apply = require('../internals/function-apply');\nvar getCompositeKeyNode = require('../internals/composite-key');\nvar getBuiltIn = require('../internals/get-built-in');\nvar create = require('../internals/object-create');\n\nvar $Object = Object;\n\nvar initializer = function () {\n  var freeze = getBuiltIn('Object', 'freeze');\n  return freeze ? freeze(create(null)) : create(null);\n};\n\n// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey\n$({ global: true, forced: true }, {\n  compositeKey: function compositeKey() {\n    return apply(getCompositeKeyNode, $Object, arguments).get('object', initializer);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.composite-symbol.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getCompositeKeyNode = require('../internals/composite-key');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\n\n// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey\n$({ global: true, forced: true }, {\n  compositeSymbol: function compositeSymbol() {\n    if (arguments.length === 1 && typeof arguments[0] == 'string') return getBuiltIn('Symbol')['for'](arguments[0]);\n    return apply(getCompositeKeyNode, null, arguments).get('symbol', getBuiltIn('Symbol'));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.data-view.get-float16.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.data-view.get-float16');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.data-view.get-uint8-clamped.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar getUint8 = uncurryThis(DataView.prototype.getUint8);\n\n// `DataView.prototype.getUint8Clamped` method\n// https://github.com/tc39/proposal-dataview-get-set-uint8clamped\n$({ target: 'DataView', proto: true, forced: true }, {\n  getUint8Clamped: function getUint8Clamped(byteOffset) {\n    return getUint8(this, byteOffset);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.data-view.set-float16.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.data-view.set-float16');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.data-view.set-uint8-clamped.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aDataView = require('../internals/a-data-view');\nvar toIndex = require('../internals/to-index');\nvar toUint8Clamped = require('../internals/to-uint8-clamped');\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar setUint8 = uncurryThis(DataView.prototype.setUint8);\n\n// `DataView.prototype.setUint8Clamped` method\n// https://github.com/tc39/proposal-dataview-get-set-uint8clamped\n$({ target: 'DataView', proto: true, forced: true }, {\n  setUint8Clamped: function setUint8Clamped(byteOffset, value) {\n    setUint8(\n      aDataView(this),\n      toIndex(byteOffset),\n      toUint8Clamped(value)\n    );\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.disposable-stack.constructor.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.disposable-stack.constructor');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.error.is-error.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.error.is-error');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.function.demethodize.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar demethodize = require('../internals/function-demethodize');\n\n// `Function.prototype.demethodize` method\n// https://github.com/js-choi/proposal-function-demethodize\n$({ target: 'Function', proto: true, forced: true }, {\n  demethodize: demethodize\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.function.is-callable.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar $isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar classRegExp = /^\\s*class\\b/;\nvar exec = uncurryThis(classRegExp.exec);\n\nvar isClassConstructor = function (argument) {\n  try {\n    // `Function#toString` throws on some built-it function in some legacy engines\n    // (for example, `DOMQuad` and similar in FF41-)\n    if (!DESCRIPTORS || !exec(classRegExp, inspectSource(argument))) return false;\n  } catch (error) { /* empty */ }\n  var prototype = getOwnPropertyDescriptor(argument, 'prototype');\n  return !!prototype && hasOwn(prototype, 'writable') && !prototype.writable;\n};\n\n// `Function.isCallable` method\n// https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md\n$({ target: 'Function', stat: true, sham: true, forced: true }, {\n  isCallable: function isCallable(argument) {\n    return $isCallable(argument) && !isClassConstructor(argument);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.function.is-constructor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isConstructor = require('../internals/is-constructor');\n\n// `Function.isConstructor` method\n// https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md\n$({ target: 'Function', stat: true, forced: true }, {\n  isConstructor: isConstructor\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.function.metadata.js",
    "content": "'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar METADATA = wellKnownSymbol('metadata');\nvar FunctionPrototype = Function.prototype;\n\n// Function.prototype[@@metadata]\n// https://github.com/tc39/proposal-decorator-metadata\nif (FunctionPrototype[METADATA] === undefined) {\n  defineProperty(FunctionPrototype, METADATA, {\n    value: null\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/esnext.function.un-this.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar demethodize = require('../internals/function-demethodize');\n\n// `Function.prototype.unThis` method\n// https://github.com/js-choi/proposal-function-demethodize\n// TODO: Remove from `core-js@4`\n$({ target: 'Function', proto: true, forced: true, name: 'demethodize' }, {\n  unThis: demethodize\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.global-this.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.global-this');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.as-indexed-pairs.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/iterator-indexed');\n\n// `Iterator.prototype.asIndexedPairs` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', name: 'indexed', proto: true, real: true, forced: true }, {\n  asIndexedPairs: indexed\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.chunks.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $RangeError = RangeError;\nvar push = uncurryThis([].push);\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var next = this.next;\n  var chunkSize = this.chunkSize;\n  var buffer = [];\n  var result, done;\n  while (true) {\n    result = anObject(call(next, iterator));\n    done = !!result.done;\n    if (done) {\n      if (buffer.length) return buffer;\n      this.done = true;\n      return;\n    }\n    push(buffer, result.value);\n    if (buffer.length === chunkSize) return buffer;\n  }\n});\n\n// `Iterator.prototype.chunks` method\n// https://github.com/tc39/proposal-iterator-chunking\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n  chunks: function chunks(chunkSize) {\n    var O = anObject(this);\n    if (typeof chunkSize != 'number' || !chunkSize || chunkSize >>> 0 !== chunkSize) {\n      return iteratorClose(O, 'throw', new $RangeError('chunkSize must be integer in [1, 2^32-1]'));\n    }\n    return new IteratorProxy(getIteratorDirect(O), {\n      chunkSize: chunkSize\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.concat.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.concat');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.constructor.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.constructor');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.dispose.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.dispose');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.drop.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.drop');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.every.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.every');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.filter.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.filter');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.find.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.find');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.flat-map.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.flat-map');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.for-each.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.for-each');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.from.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.from');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.indexed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/iterator-indexed');\n\n// `Iterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n  indexed: indexed\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.map.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.map');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.range.js",
    "content": "'use strict';\n/* eslint-disable es/no-bigint -- safe */\nvar $ = require('../internals/export');\nvar NumericRangeIterator = require('../internals/numeric-range-iterator');\n\nvar $TypeError = TypeError;\n\n// `Iterator.range` method\n// https://github.com/tc39/proposal-iterator.range\n$({ target: 'Iterator', stat: true, forced: true }, {\n  range: function range(start, end, option) {\n    if (typeof start == 'number') return new NumericRangeIterator(start, end, option, 'number', 0, 1);\n    if (typeof start == 'bigint') return new NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1));\n    throw new $TypeError('Incorrect Iterator.range arguments');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.reduce.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.reduce');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.sliding.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar iteratorWindow = require('../internals/iterator-window');\n\n// `Iterator.prototype.sliding` method\n// https://github.com/tc39/proposal-iterator-chunking\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n  sliding: function sliding(windowSize) {\n    return iteratorWindow(this, windowSize, 'allow-partial');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.some.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.some');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.take.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.take');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.to-array.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.to-array');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.to-async.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar WrapAsyncIterator = require('../internals/async-iterator-wrap');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.toAsync` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n  toAsync: function toAsync() {\n    return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(getIteratorDirect(anObject(this)))));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.windows.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar iteratorWindow = require('../internals/iterator-window');\n\n// `Iterator.prototype.windows` method\n// https://github.com/tc39/proposal-iterator-chunking\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n  windows: function windows(windowSize /* , undersized */) {\n    return iteratorWindow(this, windowSize, arguments.length < 2 ? undefined : arguments[1]);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.zip-keyed.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar anObjectOrUndefined = require('../internals/an-object-or-undefined');\nvar createProperty = require('../internals/create-property');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar getModeOption = require('../internals/get-mode-option');\nvar iteratorCloseAll = require('../internals/iterator-close-all');\nvar iteratorZip = require('../internals/iterator-zip');\nvar IS_PURE = require('../internals/is-pure');\n\nvar create = getBuiltIn('Object', 'create');\nvar ownKeys = getBuiltIn('Reflect', 'ownKeys');\nvar push = uncurryThis([].push);\nvar THROW = 'throw';\n\n// `Iterator.zipKeyed` method\n// https://github.com/tc39/proposal-joint-iteration\n$({ target: 'Iterator', stat: true, forced: IS_PURE }, {\n  zipKeyed: function zipKeyed(iterables /* , options */) {\n    anObject(iterables);\n    var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;\n    var mode = getModeOption(options);\n    var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;\n\n    var iters = [];\n    var padding = [];\n    var allKeys = ownKeys(iterables);\n    var keys = [];\n    var propertyIsEnumerable = propertyIsEnumerableModule.f;\n    var i, key, value;\n    for (i = 0; i < allKeys.length; i++) try {\n      key = allKeys[i];\n      if (!call(propertyIsEnumerable, iterables, key)) continue;\n      value = iterables[key];\n      if (value !== undefined) {\n        push(keys, key);\n        push(iters, getIteratorFlattenable(value, false));\n      }\n    } catch (error) {\n      return iteratorCloseAll(iters, THROW, error);\n    }\n\n    var iterCount = iters.length;\n    if (mode === 'longest') {\n      if (paddingOption === undefined) {\n        for (i = 0; i < iterCount; i++) push(padding, undefined);\n      } else {\n        for (i = 0; i < keys.length; i++) {\n          try {\n            value = paddingOption[keys[i]];\n          } catch (error) {\n            return iteratorCloseAll(iters, THROW, error);\n          }\n          push(padding, value);\n        }\n      }\n    }\n\n    return iteratorZip(iters, mode, padding, function (results) {\n      var obj = create(null);\n      for (var j = 0; j < iterCount; j++) {\n        createProperty(obj, keys[j], results[j]);\n      }\n      return obj;\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.iterator.zip.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar anObjectOrUndefined = require('../internals/an-object-or-undefined');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getIteratorRecord = require('../internals/get-iterator-record');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar getModeOption = require('../internals/get-mode-option');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorCloseAll = require('../internals/iterator-close-all');\nvar iteratorZip = require('../internals/iterator-zip');\nvar IS_PURE = require('../internals/is-pure');\n\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar THROW = 'throw';\n\n// `Iterator.zip` method\n// https://github.com/tc39/proposal-joint-iteration\n$({ target: 'Iterator', stat: true, forced: IS_PURE }, {\n  zip: function zip(iterables /* , options */) {\n    anObject(iterables);\n    var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;\n    var mode = getModeOption(options);\n    var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;\n\n    var iters = [];\n    var padding = [];\n    var inputIter = getIteratorRecord(iterables);\n    var iter, done, next;\n    while (!done) {\n      try {\n        next = anObject(call(inputIter.next, inputIter.iterator));\n        done = next.done;\n      } catch (error) {\n        return iteratorCloseAll(iters, THROW, error);\n      }\n      if (!done) {\n        try {\n          iter = getIteratorFlattenable(next.value, false);\n        } catch (error) {\n          return iteratorCloseAll(concat([inputIter], iters), THROW, error);\n        }\n        push(iters, iter);\n      }\n    }\n\n    var iterCount = iters.length;\n    var i, paddingDone, paddingIter;\n    if (mode === 'longest') {\n      if (paddingOption === undefined) {\n        for (i = 0; i < iterCount; i++) push(padding, undefined);\n      } else {\n        try {\n          paddingIter = getIteratorRecord(paddingOption);\n        } catch (error) {\n          return iteratorCloseAll(iters, THROW, error);\n        }\n        var usingIterator = true;\n        for (i = 0; i < iterCount; i++) {\n          if (usingIterator) {\n            try {\n              next = anObject(call(paddingIter.next, paddingIter.iterator));\n              paddingDone = next.done;\n              next = next.value;\n            } catch (error) {\n              return iteratorCloseAll(iters, THROW, error);\n            }\n            if (paddingDone) {\n              usingIterator = false;\n            } else {\n              push(padding, next);\n            }\n          } else {\n            push(padding, undefined);\n          }\n        }\n\n        if (usingIterator) {\n          try {\n            iteratorClose(paddingIter.iterator, 'normal');\n          } catch (error) {\n            return iteratorCloseAll(iters, THROW, error);\n          }\n        }\n      }\n    }\n\n    return iteratorZip(iters, mode, padding);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.json.is-raw-json.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.json.is-raw-json');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.json.parse.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.json.parse');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.json.raw-json.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.json.raw-json');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.delete-all.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar remove = require('../internals/map-helpers').remove;\n\n// `Map.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  deleteAll: function deleteAll(/* ...elements */) {\n    var collection = aMap(this);\n    var allDeleted = true;\n    var wasDeleted;\n    for (var k = 0, len = arguments.length; k < len; k++) {\n      wasDeleted = remove(collection, arguments[k]);\n      allDeleted = allDeleted && wasDeleted;\n    } return !!allDeleted;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.emplace.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.emplace` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  emplace: function emplace(key, handler) {\n    var map = aMap(this);\n    var value, inserted;\n    if (has(map, key)) {\n      value = get(map, key);\n      if ('update' in handler) {\n        value = handler.update(value, key, map);\n        set(map, key, value);\n      } return value;\n    }\n    inserted = handler.insert(key, map);\n    set(map, key, inserted);\n    return inserted;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.every.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.every` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  every: function every(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    return iterate(map, function (value, key) {\n      if (!boundFunction(value, key, map)) return false;\n    }, true) !== false;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.filter.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.filter` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var newMap = new Map();\n    iterate(map, function (value, key) {\n      if (boundFunction(value, key, map)) set(newMap, key, value);\n    });\n    return newMap;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.find-key.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.findKey` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  findKey: function findKey(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var result = iterate(map, function (value, key) {\n      if (boundFunction(value, key, map)) return { key: key };\n    }, true);\n    return result && result.key;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.find.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.find` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  find: function find(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var result = iterate(map, function (value, key) {\n      if (boundFunction(value, key, map)) return { value: value };\n    }, true);\n    return result && result.value;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.from.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar MapHelpers = require('../internals/map-helpers');\nvar createCollectionFrom = require('../internals/collection-from');\n\n// `Map.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\n$({ target: 'Map', stat: true, forced: true }, {\n  from: createCollectionFrom(MapHelpers.Map, MapHelpers.set, true)\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.get-or-insert-computed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.map.get-or-insert-computed');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.get-or-insert.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.map.get-or-insert');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.group-by.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.map.group-by');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.includes.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar sameValueZero = require('../internals/same-value-zero');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.includes` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  includes: function includes(searchElement) {\n    return iterate(aMap(this), function (value) {\n      if (sameValueZero(value, searchElement)) return true;\n    }, true) === true;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.key-by.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar isCallable = require('../internals/is-callable');\nvar aCallable = require('../internals/a-callable');\nvar Map = require('../internals/map-helpers').Map;\n\n// `Map.keyBy` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', stat: true, forced: true }, {\n  keyBy: function keyBy(iterable, keyDerivative) {\n    var C = isCallable(this) ? this : Map;\n    var newMap = new C();\n    aCallable(keyDerivative);\n    var setter = aCallable(newMap.set);\n    iterate(iterable, function (element) {\n      call(setter, newMap, keyDerivative(element), element);\n    });\n    return newMap;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.key-of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.keyOf` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  keyOf: function keyOf(searchElement) {\n    var result = iterate(aMap(this), function (value, key) {\n      if (value === searchElement) return { key: key };\n    }, true);\n    return result && result.key;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.map-keys.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.mapKeys` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  mapKeys: function mapKeys(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var newMap = new Map();\n    iterate(map, function (value, key) {\n      set(newMap, boundFunction(value, key, map), value);\n    });\n    return newMap;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.map-values.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.mapValues` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  mapValues: function mapValues(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var newMap = new Map();\n    iterate(map, function (value, key) {\n      set(newMap, key, boundFunction(value, key, map));\n    });\n    return newMap;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.merge.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/iterate');\nvar set = require('../internals/map-helpers').set;\n\n// `Map.prototype.merge` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, arity: 1, forced: true }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  merge: function merge(iterable /* ...iterables */) {\n    var map = aMap(this);\n    var argumentsLength = arguments.length;\n    var i = 0;\n    while (i < argumentsLength) {\n      iterate(arguments[i++], function (key, value) {\n        set(map, key, value);\n      }, { AS_ENTRIES: true });\n    }\n    return map;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar MapHelpers = require('../internals/map-helpers');\nvar createCollectionOf = require('../internals/collection-of');\n\n// `Map.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\n$({ target: 'Map', stat: true, forced: true }, {\n  of: createCollectionOf(MapHelpers.Map, MapHelpers.set, true)\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.reduce.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\nvar $TypeError = TypeError;\n\n// `Map.prototype.reduce` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    var map = aMap(this);\n    var noInitial = arguments.length < 2;\n    var accumulator = noInitial ? undefined : arguments[1];\n    aCallable(callbackfn);\n    iterate(map, function (value, key) {\n      if (noInitial) {\n        noInitial = false;\n        accumulator = value;\n      } else {\n        accumulator = callbackfn(accumulator, value, key, map);\n      }\n    });\n    if (noInitial) throw new $TypeError('Reduce of empty map with no initial value');\n    return accumulator;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.some.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.some` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  some: function some(callbackfn /* , thisArg */) {\n    var map = aMap(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    return iterate(map, function (value, key) {\n      if (boundFunction(value, key, map)) return true;\n    }, true) === true;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.update-or-insert.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.emplace`)\n// https://github.com/thumbsupep/proposal-upsert\n$({ target: 'Map', proto: true, real: true, name: 'upsert', forced: true }, {\n  updateOrInsert: upsert\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.update.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar $TypeError = TypeError;\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.update` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  update: function update(key, callback /* , thunk */) {\n    var map = aMap(this);\n    var length = arguments.length;\n    aCallable(callback);\n    var isPresentInMap = has(map, key);\n    if (!isPresentInMap && length < 3) {\n      throw new $TypeError('Updating absent value');\n    }\n    var value = isPresentInMap ? get(map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map);\n    set(map, key, callback(value, key, map));\n    return map;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.map.upsert.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `Map.prototype.upsert` method (replaced by `Map.prototype.emplace`)\n// https://github.com/thumbsupep/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n  upsert: upsert\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.clamp.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar clamp = require('../internals/math-clamp');\n\n// TODO: Remove from `core-js@4`\n// `Math.clamp` method\n// https://github.com/tc39/proposal-math-clamp\n$({ target: 'Math', stat: true, forced: true }, {\n  clamp: clamp\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.deg-per-rad.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Math.DEG_PER_RAD` constant\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, {\n  DEG_PER_RAD: Math.PI / 180\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.degrees.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\nvar RAD_PER_DEG = 180 / Math.PI;\n\n// `Math.degrees` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n  degrees: function degrees(radians) {\n    return radians * RAD_PER_DEG;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.f16round.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.math.f16round');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.fscale.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\nvar scale = require('../internals/math-scale');\nvar fround = require('../internals/math-fround');\n\n// `Math.fscale` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n  fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {\n    return fround(scale(x, inLow, inHigh, outLow, outHigh));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.iaddh.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Math.iaddh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n  iaddh: function iaddh(x0, x1, y0, y1) {\n    var $x0 = x0 >>> 0;\n    var $x1 = x1 >>> 0;\n    var $y0 = y0 >>> 0;\n    return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.imulh.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Math.imulh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n  imulh: function imulh(u, v) {\n    var UINT16 = 0xFFFF;\n    var $u = +u;\n    var $v = +v;\n    var u0 = $u & UINT16;\n    var v0 = $v & UINT16;\n    var u1 = $u >> 16;\n    var v1 = $v >> 16;\n    var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n    return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.isubh.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Math.isubh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n  isubh: function isubh(x0, x1, y0, y1) {\n    var $x0 = x0 >>> 0;\n    var $x1 = x1 >>> 0;\n    var $y0 = y0 >>> 0;\n    return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.rad-per-deg.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Math.RAD_PER_DEG` constant\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, {\n  RAD_PER_DEG: 180 / Math.PI\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.radians.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\nvar DEG_PER_RAD = Math.PI / 180;\n\n// `Math.radians` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n  radians: function radians(degrees) {\n    return degrees * DEG_PER_RAD;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.scale.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar scale = require('../internals/math-scale');\n\n// `Math.scale` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n  scale: scale\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.seeded-prng.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar numberIsFinite = require('../internals/number-is-finite');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar SEEDED_RANDOM = 'Seeded Random';\nvar SEEDED_RANDOM_GENERATOR = SEEDED_RANDOM + ' Generator';\nvar SEED_TYPE_ERROR = 'Math.seededPRNG() argument should have a \"seed\" field with a finite value.';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SEEDED_RANDOM_GENERATOR);\nvar $TypeError = TypeError;\n\nvar $SeededRandomGenerator = createIteratorConstructor(function SeededRandomGenerator(seed) {\n  setInternalState(this, {\n    type: SEEDED_RANDOM_GENERATOR,\n    seed: seed % 2147483647\n  });\n}, SEEDED_RANDOM, function next() {\n  var state = getInternalState(this);\n  var seed = state.seed = (state.seed * 1103515245 + 12345) % 2147483647;\n  return createIterResultObject((seed & 1073741823) / 1073741823, false);\n});\n\n// `Math.seededPRNG` method\n// https://github.com/tc39/proposal-seeded-random\n// based on https://github.com/tc39/proposal-seeded-random/blob/78b8258835b57fc2100d076151ab506bc3202ae6/demo.html\n$({ target: 'Math', stat: true, forced: true }, {\n  seededPRNG: function seededPRNG(it) {\n    var seed = anObject(it).seed;\n    if (!numberIsFinite(seed)) throw new $TypeError(SEED_TYPE_ERROR);\n    return new $SeededRandomGenerator(seed);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.signbit.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Math.signbit` method\n// https://github.com/tc39/proposal-Math.signbit\n$({ target: 'Math', stat: true, forced: true }, {\n  signbit: function signbit(x) {\n    var n = +x;\n    // eslint-disable-next-line no-self-compare -- NaN check\n    return n === n && n === 0 ? 1 / n === -Infinity : n < 0;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.sum-precise.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.math.sum-precise');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.math.umulh.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\n\n// `Math.umulh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n  umulh: function umulh(u, v) {\n    var UINT16 = 0xFFFF;\n    var $u = +u;\n    var $v = +v;\n    var u0 = $u & UINT16;\n    var v0 = $v & UINT16;\n    var u1 = $u >>> 16;\n    var v1 = $v >>> 16;\n    var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n    return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.number.clamp.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar $clamp = require('../internals/math-clamp');\nvar thisNumberValue = require('../internals/this-number-value');\n\n// `Number.prototype.clamp` method\n// https://github.com/tc39/proposal-math-clamp\n$({ target: 'Number', proto: true, forced: true }, {\n  clamp: function clamp(min, max) {\n    return $clamp(thisNumberValue(this), min, max);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.number.from-string.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar INVALID_NUMBER_REPRESENTATION = 'Invalid number representation';\nvar INVALID_RADIX = 'Invalid radix';\nvar $RangeError = RangeError;\nvar $SyntaxError = SyntaxError;\nvar $TypeError = TypeError;\nvar $parseInt = parseInt;\nvar pow = Math.pow;\nvar valid = /^[0-9a-z]+(\\.[0-9a-z]+)?$/;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar exec = uncurryThis(valid.exec);\nvar numberToString = uncurryThis(1.1.toString);\nvar stringSlice = uncurryThis(''.slice);\nvar split = uncurryThis(''.split);\n\nvar validDigitForRadix = function (string, R) {\n  for (var i = 0; i < string.length; i++) {\n    var code = charCodeAt(string, i);\n    // '.' is allowed\n    if (code === 0x2E) continue;\n    // '0'-'9' - digit value 0-9\n    if (code >= 0x30 && code <= 0x39) {\n      if (code - 0x30 >= R) return false;\n    // 'a'-'z' - digit value 10-35\n    } else if (code >= 0x61 && code <= 0x7A) {\n      if (code - 0x61 + 10 >= R) return false;\n    } else return false;\n  }\n  return true;\n};\n\n// `Number.fromString` method\n// https://github.com/tc39/proposal-number-fromstring\n$({ target: 'Number', stat: true, forced: true }, {\n  fromString: function fromString(string, radix) {\n    var sign = 1;\n    if (typeof string != 'string') throw new $TypeError(INVALID_NUMBER_REPRESENTATION);\n    if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n    if (charAt(string, 0) === '-') {\n      sign = -1;\n      string = stringSlice(string, 1);\n      if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n    }\n    var R = radix === undefined ? 10 : toIntegerOrInfinity(radix);\n    if (R < 2 || R > 36) throw new $RangeError(INVALID_RADIX);\n    if (!exec(valid, string) || !validDigitForRadix(string, R)) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n    var parts = split(string, '.');\n    var mathNum = $parseInt(parts[0], R);\n    if (parts.length > 1) mathNum += $parseInt(parts[1], R) / pow(R, parts[1].length);\n    if (R === 10) {\n      var compareString = string;\n      if (parts.length > 1) {\n        var fraction = parts[1];\n        while (fraction.length && charAt(fraction, fraction.length - 1) === '0') {\n          fraction = stringSlice(fraction, 0, -1);\n        }\n        compareString = fraction.length ? parts[0] + '.' + fraction : parts[0];\n      }\n      if (numberToString(mathNum, R) !== compareString) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n    }\n    return sign * mathNum;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.number.range.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar NumericRangeIterator = require('../internals/numeric-range-iterator');\n\n// `Number.range` method\n// https://github.com/tc39/proposal-iterator.range\n// TODO: Remove from `core-js@4`\n$({ target: 'Number', stat: true, forced: true }, {\n  range: function range(start, end, option) {\n    return new NumericRangeIterator(start, end, option, 'number', 0, 1);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.object.group-by.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.object.group-by');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.object.has-own.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.object.has-own');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.object.iterate-entries.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ObjectIterator = require('../internals/object-iterator');\n\n// `Object.iterateEntries` method\n// https://github.com/tc39/proposal-object-iteration\n$({ target: 'Object', stat: true, forced: true }, {\n  iterateEntries: function iterateEntries(object) {\n    return new ObjectIterator(object, 'entries');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.object.iterate-keys.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ObjectIterator = require('../internals/object-iterator');\n\n// `Object.iterateKeys` method\n// https://github.com/tc39/proposal-object-iteration\n$({ target: 'Object', stat: true, forced: true }, {\n  iterateKeys: function iterateKeys(object) {\n    return new ObjectIterator(object, 'keys');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.object.iterate-values.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ObjectIterator = require('../internals/object-iterator');\n\n// `Object.iterateValues` method\n// https://github.com/tc39/proposal-object-iteration\n$({ target: 'Object', stat: true, forced: true }, {\n  iterateValues: function iterateValues(object) {\n    return new ObjectIterator(object, 'values');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.observable.constructor.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-observable\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar $$OBSERVABLE = wellKnownSymbol('observable');\nvar OBSERVABLE = 'Observable';\nvar SUBSCRIPTION = 'Subscription';\nvar SUBSCRIPTION_OBSERVER = 'SubscriptionObserver';\nvar getterFor = InternalStateModule.getterFor;\nvar setInternalState = InternalStateModule.set;\nvar getObservableInternalState = getterFor(OBSERVABLE);\nvar getSubscriptionInternalState = getterFor(SUBSCRIPTION);\nvar getSubscriptionObserverInternalState = getterFor(SUBSCRIPTION_OBSERVER);\n\nvar SubscriptionState = function (observer) {\n  this.observer = anObject(observer);\n  this.cleanup = null;\n  this.subscriptionObserver = null;\n};\n\nSubscriptionState.prototype = {\n  type: SUBSCRIPTION,\n  clean: function () {\n    var cleanup = this.cleanup;\n    if (cleanup) {\n      this.cleanup = null;\n      try {\n        cleanup();\n      } catch (error) {\n        hostReportErrors(error);\n      }\n    }\n  },\n  close: function () {\n    if (!DESCRIPTORS) {\n      var subscription = this.facade;\n      var subscriptionObserver = this.subscriptionObserver;\n      subscription.closed = true;\n      if (subscriptionObserver) subscriptionObserver.closed = true;\n    } this.observer = null;\n  },\n  isClosed: function () {\n    return this.observer === null;\n  }\n};\n\nvar Subscription = function (observer, subscriber) {\n  var subscriptionState = setInternalState(this, new SubscriptionState(observer));\n  var start;\n  if (!DESCRIPTORS) this.closed = false;\n  try {\n    if (start = getMethod(observer, 'start')) call(start, observer, this);\n  } catch (error) {\n    hostReportErrors(error);\n  }\n  if (subscriptionState.isClosed()) return;\n  var subscriptionObserver = subscriptionState.subscriptionObserver = new SubscriptionObserver(subscriptionState);\n  try {\n    var cleanup = subscriber(subscriptionObserver);\n    var subscription = cleanup;\n    if (!isNullOrUndefined(cleanup)) subscriptionState.cleanup = isCallable(cleanup.unsubscribe)\n      ? function () { subscription.unsubscribe(); }\n      : aCallable(cleanup);\n  } catch (error) {\n    subscriptionObserver.error(error);\n    return;\n  } if (subscriptionState.isClosed()) subscriptionState.clean();\n};\n\nSubscription.prototype = defineBuiltIns({}, {\n  unsubscribe: function unsubscribe() {\n    var subscriptionState = getSubscriptionInternalState(this);\n    if (!subscriptionState.isClosed()) {\n      subscriptionState.close();\n      subscriptionState.clean();\n    }\n  }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(Subscription.prototype, 'closed', {\n  configurable: true,\n  get: function closed() {\n    return getSubscriptionInternalState(this).isClosed();\n  }\n});\n\nvar SubscriptionObserver = function (subscriptionState) {\n  setInternalState(this, {\n    type: SUBSCRIPTION_OBSERVER,\n    subscriptionState: subscriptionState\n  });\n  if (!DESCRIPTORS) this.closed = false;\n};\n\nSubscriptionObserver.prototype = defineBuiltIns({}, {\n  next: function next(value) {\n    var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n    if (!subscriptionState.isClosed()) {\n      var observer = subscriptionState.observer;\n      try {\n        var nextMethod = getMethod(observer, 'next');\n        if (nextMethod) call(nextMethod, observer, value);\n      } catch (error) {\n        hostReportErrors(error);\n      }\n    }\n  },\n  error: function error(value) {\n    var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n    if (!subscriptionState.isClosed()) {\n      var observer = subscriptionState.observer;\n      subscriptionState.close();\n      try {\n        var errorMethod = getMethod(observer, 'error');\n        if (errorMethod) call(errorMethod, observer, value);\n        else hostReportErrors(value);\n      } catch (err) {\n        hostReportErrors(err);\n      } subscriptionState.clean();\n    }\n  },\n  complete: function complete() {\n    var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n    if (!subscriptionState.isClosed()) {\n      var observer = subscriptionState.observer;\n      subscriptionState.close();\n      try {\n        var completeMethod = getMethod(observer, 'complete');\n        if (completeMethod) call(completeMethod, observer);\n      } catch (error) {\n        hostReportErrors(error);\n      } subscriptionState.clean();\n    }\n  }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(SubscriptionObserver.prototype, 'closed', {\n  configurable: true,\n  get: function closed() {\n    return getSubscriptionObserverInternalState(this).subscriptionState.isClosed();\n  }\n});\n\nvar $Observable = function Observable(subscriber) {\n  anInstance(this, ObservablePrototype);\n  setInternalState(this, {\n    type: OBSERVABLE,\n    subscriber: aCallable(subscriber)\n  });\n};\n\nvar ObservablePrototype = $Observable.prototype;\n\ndefineBuiltIns(ObservablePrototype, {\n  subscribe: function subscribe(observer) {\n    var length = arguments.length;\n    return new Subscription(isCallable(observer) ? {\n      next: observer,\n      error: length > 1 ? arguments[1] : undefined,\n      complete: length > 2 ? arguments[2] : undefined\n    } : isObject(observer) ? observer : {}, getObservableInternalState(this).subscriber);\n  }\n});\n\ndefineBuiltIn(ObservablePrototype, $$OBSERVABLE, function () { return this; });\n\n$({ global: true, constructor: true, forced: true }, {\n  Observable: $Observable\n});\n\nsetSpecies(OBSERVABLE);\n"
  },
  {
    "path": "packages/core-js/modules/esnext.observable.from.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isConstructor = require('../internals/is-constructor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar getMethod = require('../internals/get-method');\nvar iterate = require('../internals/iterate');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $$OBSERVABLE = wellKnownSymbol('observable');\n\n// `Observable.from` method\n// https://github.com/tc39/proposal-observable\n$({ target: 'Observable', stat: true, forced: true }, {\n  from: function from(x) {\n    var C = isConstructor(this) ? this : getBuiltIn('Observable');\n    var observableMethod = getMethod(anObject(x), $$OBSERVABLE);\n    if (observableMethod) {\n      var observable = anObject(call(observableMethod, x));\n      return observable.constructor === C ? observable : new C(function (observer) {\n        return observable.subscribe(observer);\n      });\n    }\n    var iteratorMethod = getIteratorMethod(x);\n    // validate that x is iterable synchronously during `from()` call\n    if (!iteratorMethod) getIterator(x);\n    return new C(function (observer) {\n      iterate(getIterator(x, iteratorMethod), function (it, stop) {\n        observer.next(it);\n        if (observer.closed) return stop();\n      }, { IS_ITERATOR: true, INTERRUPTED: true });\n      observer.complete();\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.observable.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/esnext.observable.constructor');\nrequire('../modules/esnext.observable.from');\nrequire('../modules/esnext.observable.of');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.observable.of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isConstructor = require('../internals/is-constructor');\n\nvar Array = getBuiltIn('Array');\n\n// `Observable.of` method\n// https://github.com/tc39/proposal-observable\n$({ target: 'Observable', stat: true, forced: true }, {\n  of: function of() {\n    var C = isConstructor(this) ? this : getBuiltIn('Observable');\n    var length = arguments.length;\n    var items = Array(length);\n    var index = 0;\n    while (index < length) items[index] = arguments[index++];\n    return new C(function (observer) {\n      for (var i = 0; i < length; i++) {\n        observer.next(items[i]);\n        if (observer.closed) return;\n      } observer.complete();\n    });\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.promise.all-settled.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.all-settled.js');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.promise.any.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.any');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.promise.try.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.try.js');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.promise.with-resolvers.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.with-resolvers');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.reflect.define-metadata.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar ordinaryDefineOwnMetadata = ReflectMetadataModule.set;\n\n// `Reflect.defineMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  defineMetadata: function defineMetadata(metadataKey, metadataValue, target /* , targetKey */) {\n    var targetKey = arguments.length < 4 ? undefined : toMetadataKey(arguments[3]);\n    ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), targetKey);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.reflect.delete-metadata.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar getOrCreateMetadataMap = ReflectMetadataModule.getMap;\nvar store = ReflectMetadataModule.store;\n\n// `Reflect.deleteMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n    var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n    if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n    if (metadataMap.size) return true;\n    var targetMetadata = store.get(target);\n    targetMetadata['delete'](targetKey);\n    return !!targetMetadata.size || store['delete'](target);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.reflect.get-metadata-keys.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar $arrayUniqueBy = require('../internals/array-unique-by');\n\nvar arrayUniqueBy = uncurryThis($arrayUniqueBy);\nvar concat = uncurryThis([].concat);\nvar ordinaryOwnMetadataKeys = ReflectMetadataModule.keys;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryMetadataKeys = function (O, P) {\n  var oKeys = ordinaryOwnMetadataKeys(O, P);\n  var parent = getPrototypeOf(O);\n  if (parent === null) return oKeys;\n  var pKeys = ordinaryMetadataKeys(parent, P);\n  return pKeys.length ? oKeys.length ? arrayUniqueBy(concat(oKeys, pKeys)) : pKeys : oKeys;\n};\n\n// `Reflect.getMetadataKeys` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n    var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]);\n    return ordinaryMetadataKeys(anObject(target), targetKey);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.reflect.get-metadata.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar ordinaryGetOwnMetadata = ReflectMetadataModule.get;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n  if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n  var parent = getPrototypeOf(O);\n  return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\n// `Reflect.getMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n    return ordinaryGetMetadata(metadataKey, anObject(target), targetKey);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.reflect.get-own-metadata-keys.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar ordinaryOwnMetadataKeys = ReflectMetadataModule.keys;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.getOwnMetadataKeys` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n    var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]);\n    return ordinaryOwnMetadataKeys(anObject(target), targetKey);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.reflect.get-own-metadata.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar ordinaryGetOwnMetadata = ReflectMetadataModule.get;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.getOwnMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n    return ordinaryGetOwnMetadata(metadataKey, anObject(target), targetKey);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.reflect.has-metadata.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n  if (hasOwn) return true;\n  var parent = getPrototypeOf(O);\n  return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\n// `Reflect.hasMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n    return ordinaryHasMetadata(metadataKey, anObject(target), targetKey);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.reflect.has-own-metadata.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.hasOwnMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n    return ordinaryHasOwnMetadata(metadataKey, anObject(target), targetKey);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.reflect.metadata.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar ordinaryDefineOwnMetadata = ReflectMetadataModule.set;\n\n// `Reflect.metadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n  metadata: function metadata(metadataKey, metadataValue) {\n    return function decorator(target, key) {\n      ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetadataKey(key));\n    };\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.regexp.escape.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.regexp.escape.js');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.add-all.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\n\n// `Set.prototype.addAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  addAll: function addAll(/* ...elements */) {\n    var set = aSet(this);\n    for (var k = 0, len = arguments.length; k < len; k++) {\n      add(set, arguments[k]);\n    } return set;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.delete-all.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aSet = require('../internals/a-set');\nvar remove = require('../internals/set-helpers').remove;\n\n// `Set.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  deleteAll: function deleteAll(/* ...elements */) {\n    var collection = aSet(this);\n    var allDeleted = true;\n    var wasDeleted;\n    for (var k = 0, len = arguments.length; k < len; k++) {\n      wasDeleted = remove(collection, arguments[k]);\n      allDeleted = allDeleted && wasDeleted;\n    } return !!allDeleted;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.difference.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $difference = require('../internals/set-difference');\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  difference: function difference(other) {\n    return call($difference, this, toSetLike(other));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.difference.v2.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.difference.v2');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.every.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.every` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  every: function every(callbackfn /* , thisArg */) {\n    var set = aSet(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    return iterate(set, function (value) {\n      if (!boundFunction(value, value, set)) return false;\n    }, true) !== false;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.filter.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\n// `Set.prototype.filter` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    var set = aSet(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var newSet = new Set();\n    iterate(set, function (value) {\n      if (boundFunction(value, value, set)) add(newSet, value);\n    });\n    return newSet;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.find.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.find` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  find: function find(callbackfn /* , thisArg */) {\n    var set = aSet(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var result = iterate(set, function (value) {\n      if (boundFunction(value, value, set)) return { value: value };\n    }, true);\n    return result && result.value;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.from.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar SetHelpers = require('../internals/set-helpers');\nvar createCollectionFrom = require('../internals/collection-from');\n\n// `Set.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\n$({ target: 'Set', stat: true, forced: true }, {\n  from: createCollectionFrom(SetHelpers.Set, SetHelpers.add, false)\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.intersection.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $intersection = require('../internals/set-intersection');\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  intersection: function intersection(other) {\n    return call($intersection, this, toSetLike(other));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.intersection.v2.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.intersection.v2');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.is-disjoint-from.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isDisjointFrom = require('../internals/set-is-disjoint-from');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  isDisjointFrom: function isDisjointFrom(other) {\n    return call($isDisjointFrom, this, toSetLike(other));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.is-disjoint-from.v2.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.is-disjoint-from.v2');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.is-subset-of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isSubsetOf = require('../internals/set-is-subset-of');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  isSubsetOf: function isSubsetOf(other) {\n    return call($isSubsetOf, this, toSetLike(other));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.is-subset-of.v2.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.is-subset-of.v2');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.is-superset-of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isSupersetOf = require('../internals/set-is-superset-of');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  isSupersetOf: function isSupersetOf(other) {\n    return call($isSupersetOf, this, toSetLike(other));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.is-superset-of.v2.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.is-superset-of.v2');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.join.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\nvar toString = require('../internals/to-string');\n\nvar arrayJoin = uncurryThis([].join);\nvar push = uncurryThis([].push);\n\n// `Set.prototype.join` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  join: function join(separator) {\n    var set = aSet(this);\n    var sep = separator === undefined ? ',' : toString(separator);\n    var array = [];\n    iterate(set, function (value) {\n      push(array, value);\n    });\n    return arrayJoin(array, sep);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.map.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\n// `Set.prototype.map` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  map: function map(callbackfn /* , thisArg */) {\n    var set = aSet(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var newSet = new Set();\n    iterate(set, function (value) {\n      add(newSet, boundFunction(value, value, set));\n    });\n    return newSet;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar SetHelpers = require('../internals/set-helpers');\nvar createCollectionOf = require('../internals/collection-of');\n\n// `Set.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\n$({ target: 'Set', stat: true, forced: true }, {\n  of: createCollectionOf(SetHelpers.Set, SetHelpers.add, false)\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.reduce.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\nvar $TypeError = TypeError;\n\n// `Set.prototype.reduce` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    var set = aSet(this);\n    var noInitial = arguments.length < 2;\n    var accumulator = noInitial ? undefined : arguments[1];\n    aCallable(callbackfn);\n    iterate(set, function (value) {\n      if (noInitial) {\n        noInitial = false;\n        accumulator = value;\n      } else {\n        accumulator = callbackfn(accumulator, value, value, set);\n      }\n    });\n    if (noInitial) throw new $TypeError('Reduce of empty set with no initial value');\n    return accumulator;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.some.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.some` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  some: function some(callbackfn /* , thisArg */) {\n    var set = aSet(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    return iterate(set, function (value) {\n      if (boundFunction(value, value, set)) return true;\n    }, true) === true;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.symmetric-difference.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $symmetricDifference = require('../internals/set-symmetric-difference');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  symmetricDifference: function symmetricDifference(other) {\n    return call($symmetricDifference, this, toSetLike(other));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.symmetric-difference.v2.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.symmetric-difference.v2');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.union.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $union = require('../internals/set-union');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n  union: function union(other) {\n    return call($union, this, toSetLike(other));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.set.union.v2.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.union.v2');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.string.at-alternative.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.at-alternative');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.string.at.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar charAt = require('../internals/string-multibyte').charAt;\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\n// `String.prototype.at` method\n// https://github.com/mathiasbynens/String.prototype.at\n$({ target: 'String', proto: true, forced: true }, {\n  at: function at(index) {\n    var S = toString(requireObjectCoercible(this));\n    var len = S.length;\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : charAt(S, k);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.string.code-points.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar StringMultibyteModule = require('../internals/string-multibyte');\n\nvar codeAt = StringMultibyteModule.codeAt;\nvar charAt = StringMultibyteModule.charAt;\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// TODO: unify with String#@@iterator\nvar $StringIterator = createIteratorConstructor(function StringIterator(string) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: string,\n    index: 0\n  });\n}, 'String', function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return createIterResultObject(undefined, true);\n  point = charAt(string, index);\n  state.index += point.length;\n  return createIterResultObject({ codePoint: codeAt(point, 0), position: index }, false);\n});\n\n// `String.prototype.codePoints` method\n// https://github.com/tc39/proposal-string-prototype-codepoints\n$({ target: 'String', proto: true, forced: true }, {\n  codePoints: function codePoints() {\n    return new $StringIterator(toString(requireObjectCoercible(this)));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.string.cooked.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar cooked = require('../internals/string-cooked');\n\n// `String.cooked` method\n// https://github.com/tc39/proposal-string-cooked\n$({ target: 'String', stat: true, forced: true }, {\n  cooked: cooked\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.string.dedent.js",
    "content": "'use strict';\nvar FREEZING = require('../internals/freezing');\nvar $ = require('../internals/export');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar apply = require('../internals/function-apply');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar isCallable = require('../internals/is-callable');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createArrayFromList = require('../internals/array-slice');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar cooked = require('../internals/string-cooked');\nvar parse = require('../internals/string-parse');\nvar whitespaces = require('../internals/whitespaces');\n\nvar DedentMap = new WeakMapHelpers.WeakMap();\nvar weakMapGet = WeakMapHelpers.get;\nvar weakMapHas = WeakMapHelpers.has;\nvar weakMapSet = WeakMapHelpers.set;\n\nvar $Array = Array;\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = Object.freeze || Object;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = Object.isFrozen;\nvar min = Math.min;\nvar charAt = uncurryThis(''.charAt);\nvar stringSlice = uncurryThis(''.slice);\nvar split = uncurryThis(''.split);\nvar exec = uncurryThis(/./.exec);\n\nvar NEW_LINE = /([\\n\\u2028\\u2029]|\\r\\n?)/g;\nvar LEADING_WHITESPACE = RegExp('^[' + whitespaces + ']*');\nvar NON_WHITESPACE = RegExp('[^' + whitespaces + ']');\nvar INVALID_TAG = 'Invalid tag';\nvar INVALID_OPENING_LINE = 'Invalid opening line';\nvar INVALID_CLOSING_LINE = 'Invalid closing line';\n\nvar dedentTemplateStringsArray = function (template) {\n  var rawInput = template.raw;\n  // https://github.com/tc39/proposal-string-dedent/issues/75\n  if (FREEZING && !isFrozen(rawInput)) throw new $TypeError('Raw template should be frozen');\n  if (weakMapHas(DedentMap, rawInput)) return weakMapGet(DedentMap, rawInput);\n  var raw = dedentStringsArray(rawInput);\n  var cookedArr = cookStrings(raw);\n  defineProperty(cookedArr, 'raw', {\n    value: freeze(raw)\n  });\n  freeze(cookedArr);\n  weakMapSet(DedentMap, rawInput, cookedArr);\n  return cookedArr;\n};\n\nvar dedentStringsArray = function (template) {\n  var t = toObject(template);\n  var length = lengthOfArrayLike(t);\n  var blocks = $Array(length);\n  var dedented = $Array(length);\n  var i = 0;\n  var lines, common, quasi, k;\n\n  if (!length) throw new $TypeError(INVALID_TAG);\n\n  for (; i < length; i++) {\n    var element = t[i];\n    if (typeof element == 'string') blocks[i] = split(element, NEW_LINE);\n    else throw new $TypeError(INVALID_TAG);\n  }\n\n  for (i = 0; i < length; i++) {\n    var lastSplit = i + 1 === length;\n    lines = blocks[i];\n    if (i === 0) {\n      if (lines.length === 1 || lines[0].length > 0) {\n        throw new $TypeError(INVALID_OPENING_LINE);\n      }\n      lines[1] = '';\n    }\n    if (lastSplit) {\n      if (lines.length === 1 || exec(NON_WHITESPACE, lines[lines.length - 1])) {\n        throw new $TypeError(INVALID_CLOSING_LINE);\n      }\n      lines[lines.length - 2] = '';\n      lines[lines.length - 1] = '';\n    }\n\n    for (var j = 2; j < lines.length; j += 2) {\n      var text = lines[j];\n      var lineContainsTemplateExpression = j + 1 === lines.length && !lastSplit;\n      var leading = exec(LEADING_WHITESPACE, text)[0];\n      if (!lineContainsTemplateExpression && leading.length === text.length) {\n        lines[j] = '';\n        continue;\n      }\n      common = commonLeadingIndentation(leading, common);\n    }\n  }\n\n  var count = common ? common.length : 0;\n\n  for (i = 0; i < length; i++) {\n    lines = blocks[i];\n    quasi = lines[0];\n    k = 1;\n    for (; k < lines.length; k += 2) {\n      quasi += lines[k] + stringSlice(lines[k + 1], count);\n    }\n    dedented[i] = quasi;\n  }\n\n  return dedented;\n};\n\nvar commonLeadingIndentation = function (a, b) {\n  if (b === undefined || a === b) return a;\n  var i = 0;\n  for (var len = min(a.length, b.length); i < len; i++) {\n    if (charAt(a, i) !== charAt(b, i)) break;\n  }\n  return stringSlice(a, 0, i);\n};\n\nvar cookStrings = function (raw) {\n  var i = 0;\n  var length = raw.length;\n  var result = $Array(length);\n  for (; i < length; i++) {\n    result[i] = parse(raw[i]);\n  } return result;\n};\n\nvar makeDedentTag = function (tag) {\n  return makeBuiltIn(function (template /* , ...substitutions */) {\n    var args = createArrayFromList(arguments);\n    args[0] = dedentTemplateStringsArray(anObject(template));\n    return apply(tag, this, args);\n  }, '');\n};\n\nvar cookedDedentTag = makeDedentTag(cooked);\n\n// `String.dedent` method\n// https://github.com/tc39/proposal-string-dedent\n$({ target: 'String', stat: true, forced: true }, {\n  dedent: function dedent(templateOrFn /* , ...substitutions */) {\n    anObject(templateOrFn);\n    if (isCallable(templateOrFn)) return makeDedentTag(templateOrFn);\n    return apply(cookedDedentTag, this, arguments);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.string.is-well-formed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.is-well-formed');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.string.match-all.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.match-all');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.string.replace-all.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.replace-all');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.string.to-well-formed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.to-well-formed');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.suppressed-error.constructor.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.suppressed-error.constructor');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.async-dispose.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.symbol.async-dispose');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.custom-matcher.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.customMatcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('customMatcher');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.dispose.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.symbol.dispose');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.is-registered-symbol.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true }, {\n  isRegisteredSymbol: isRegisteredSymbol\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.is-registered.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegistered` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, {\n  isRegistered: isRegisteredSymbol\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.is-well-known-symbol.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, forced: true }, {\n  isWellKnownSymbol: isWellKnownSymbol\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.is-well-known.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnown` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, name: 'isWellKnownSymbol', forced: true }, {\n  isWellKnown: isWellKnownSymbol\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.matcher.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('matcher');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.metadata-key.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadataKey` well-known symbol\n// https://github.com/tc39/proposal-decorator-metadata\ndefineWellKnownSymbol('metadataKey');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.metadata.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadata` well-known symbol\n// https://github.com/tc39/proposal-decorators\ndefineWellKnownSymbol('metadata');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.observable.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.pattern-match.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.symbol.replace-all.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\ndefineWellKnownSymbol('replaceAll');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.typed-array.at.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.typed-array.at');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.typed-array.filter-out.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar fromSameTypeAndList = require('../internals/typed-array-from-same-type-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filterOut` method\n// https://github.com/tc39/proposal-array-filtering\nexportTypedArrayMethod('filterOut', function filterOut(callbackfn /* , thisArg */) {\n  var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  return fromSameTypeAndList(this, list);\n}, true);\n"
  },
  {
    "path": "packages/core-js/modules/esnext.typed-array.filter-reject.js",
    "content": "'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar fromSameTypeAndList = require('../internals/typed-array-from-same-type-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filterReject` method\n// https://github.com/tc39/proposal-array-filtering\nexportTypedArrayMethod('filterReject', function filterReject(callbackfn /* , thisArg */) {\n  var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  return fromSameTypeAndList(this, list);\n}, true);\n"
  },
  {
    "path": "packages/core-js/modules/esnext.typed-array.find-last-index.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.typed-array.find-last-index');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.typed-array.find-last.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.typed-array.find-last');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.typed-array.from-async.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar getBuiltIn = require('../internals/get-built-in');\nvar aConstructor = require('../internals/a-constructor');\nvar arrayFromAsync = require('../internals/array-from-async');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.fromAsync` method\n// https://github.com/tc39/proposal-array-from-async\nexportTypedArrayStaticMethod('fromAsync', function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {\n  var C = this;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n  return new (getBuiltIn('Promise'))(function (resolve) {\n    aConstructor(C);\n    resolve(arrayFromAsync(asyncItems, mapfn, thisArg));\n  }).then(function (list) {\n    return arrayFromConstructorAndList(aTypedArrayConstructor(C), list);\n  });\n}, true);\n"
  },
  {
    "path": "packages/core-js/modules/esnext.typed-array.group-by.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $group = require('../internals/array-group');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\nexportTypedArrayMethod('groupBy', function groupBy(callbackfn /* , thisArg */) {\n  var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n  return $group(aTypedArray(this), callbackfn, thisArg, getTypedArrayConstructor);\n}, true);\n"
  },
  {
    "path": "packages/core-js/modules/esnext.typed-array.to-reversed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.typed-array.to-reversed');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.typed-array.to-sorted.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.typed-array.to-sorted');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.typed-array.to-spliced.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toBigInt = require('../internals/to-big-int');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar max = Math.max;\nvar min = Math.min;\n\n// `%TypedArray%.prototype.toSpliced` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toSpliced\nexportTypedArrayMethod('toSpliced', function toSpliced(start, deleteCount /* , ...items */) {\n  var O = aTypedArray(this);\n  var C = getTypedArrayConstructor(O);\n  var len = lengthOfArrayLike(O);\n  var actualStart = toAbsoluteIndex(start, len);\n  var argumentsLength = arguments.length;\n  var k = 0;\n  var insertCount, actualDeleteCount, thisIsBigIntArray, convertedItems, value, newLen, A;\n  if (argumentsLength === 0) {\n    insertCount = actualDeleteCount = 0;\n  } else if (argumentsLength === 1) {\n    insertCount = 0;\n    actualDeleteCount = len - actualStart;\n  } else {\n    actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n    insertCount = argumentsLength - 2;\n    if (insertCount) {\n      convertedItems = new C(insertCount);\n      thisIsBigIntArray = isBigIntArray(convertedItems);\n      for (var i = 2; i < argumentsLength; i++) {\n        value = arguments[i];\n        // FF30- typed arrays doesn't properly convert objects to typed array values\n        convertedItems[i - 2] = thisIsBigIntArray ? toBigInt(value) : +value;\n      }\n    }\n  }\n  newLen = len + insertCount - actualDeleteCount;\n  A = new C(newLen);\n\n  for (; k < actualStart; k++) A[k] = O[k];\n  for (; k < actualStart + insertCount; k++) A[k] = convertedItems[k - actualStart];\n  for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount];\n\n  return A;\n}, true);\n"
  },
  {
    "path": "packages/core-js/modules/esnext.typed-array.unique-by.js",
    "content": "'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar $arrayUniqueBy = require('../internals/array-unique-by');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar arrayUniqueBy = uncurryThis($arrayUniqueBy);\n\n// `%TypedArray%.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\nexportTypedArrayMethod('uniqueBy', function uniqueBy(resolver) {\n  aTypedArray(this);\n  return arrayFromConstructorAndList(getTypedArrayConstructor(this), arrayUniqueBy(this, resolver));\n}, true);\n"
  },
  {
    "path": "packages/core-js/modules/esnext.typed-array.with.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.typed-array.with');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.uint8-array.from-base64.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.uint8-array.from-base64');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.uint8-array.from-hex.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.uint8-array.from-hex');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.uint8-array.set-from-base64.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.uint8-array.set-from-base64');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.uint8-array.set-from-hex.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.uint8-array.set-from-hex');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.uint8-array.to-base64.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.uint8-array.to-base64');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.uint8-array.to-hex.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.uint8-array.to-hex');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.weak-map.delete-all.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aWeakMap = require('../internals/a-weak-map');\nvar remove = require('../internals/weak-map-helpers').remove;\n\n// `WeakMap.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n  deleteAll: function deleteAll(/* ...elements */) {\n    var collection = aWeakMap(this);\n    var allDeleted = true;\n    var wasDeleted;\n    for (var k = 0, len = arguments.length; k < len; k++) {\n      wasDeleted = remove(collection, arguments[k]);\n      allDeleted = allDeleted && wasDeleted;\n    } return !!allDeleted;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.weak-map.emplace.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aWeakMap = require('../internals/a-weak-map');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.emplace` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n  emplace: function emplace(key, handler) {\n    var map = aWeakMap(this);\n    var value, inserted;\n    if (has(map, key)) {\n      value = get(map, key);\n      if ('update' in handler) {\n        value = handler.update(value, key, map);\n        set(map, key, value);\n      } return value;\n    }\n    inserted = handler.insert(key, map);\n    set(map, key, inserted);\n    return inserted;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.weak-map.from.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar createCollectionFrom = require('../internals/collection-from');\n\n// `WeakMap.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\n$({ target: 'WeakMap', stat: true, forced: true }, {\n  from: createCollectionFrom(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true)\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.weak-map.get-or-insert-computed.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.weak-map.get-or-insert-computed');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.weak-map.get-or-insert.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.weak-map.get-or-insert');\n"
  },
  {
    "path": "packages/core-js/modules/esnext.weak-map.of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar createCollectionOf = require('../internals/collection-of');\n\n// `WeakMap.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\n$({ target: 'WeakMap', stat: true, forced: true }, {\n  of: createCollectionOf(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true)\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.weak-map.upsert.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `WeakMap.prototype.upsert` method (replaced by `WeakMap.prototype.emplace`)\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n  upsert: upsert\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.weak-set.add-all.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aWeakSet = require('../internals/a-weak-set');\nvar add = require('../internals/weak-set-helpers').add;\n\n// `WeakSet.prototype.addAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakSet', proto: true, real: true, forced: true }, {\n  addAll: function addAll(/* ...elements */) {\n    var set = aWeakSet(this);\n    for (var k = 0, len = arguments.length; k < len; k++) {\n      add(set, arguments[k]);\n    } return set;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.weak-set.delete-all.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar aWeakSet = require('../internals/a-weak-set');\nvar remove = require('../internals/weak-set-helpers').remove;\n\n// `WeakSet.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakSet', proto: true, real: true, forced: true }, {\n  deleteAll: function deleteAll(/* ...elements */) {\n    var collection = aWeakSet(this);\n    var allDeleted = true;\n    var wasDeleted;\n    for (var k = 0, len = arguments.length; k < len; k++) {\n      wasDeleted = remove(collection, arguments[k]);\n      allDeleted = allDeleted && wasDeleted;\n    } return !!allDeleted;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.weak-set.from.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar WeakSetHelpers = require('../internals/weak-set-helpers');\nvar createCollectionFrom = require('../internals/collection-from');\n\n// `WeakSet.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\n$({ target: 'WeakSet', stat: true, forced: true }, {\n  from: createCollectionFrom(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false)\n});\n"
  },
  {
    "path": "packages/core-js/modules/esnext.weak-set.of.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar WeakSetHelpers = require('../internals/weak-set-helpers');\nvar createCollectionOf = require('../internals/collection-of');\n\n// `WeakSet.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\n$({ target: 'WeakSet', stat: true, forced: true }, {\n  of: createCollectionOf(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false)\n});\n"
  },
  {
    "path": "packages/core-js/modules/web.atob.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar c2i = require('../internals/base64-map').c2i;\n\nvar disallowed = /[^\\d+/a-z]/i;\nvar whitespaces = /[\\t\\n\\f\\r ]+/g;\nvar finalEq = /[=]{1,2}$/;\n\nvar $atob = getBuiltIn('atob');\nvar $Array = Array;\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\nvar exec = uncurryThis(disallowed.exec);\n\nvar BASIC = !!$atob && !fails(function () {\n  return $atob('aGk=') !== 'hi';\n});\n\nvar NO_SPACES_IGNORE = BASIC && fails(function () {\n  return $atob(' ') !== '';\n});\n\nvar NO_ENCODING_CHECK = BASIC && !fails(function () {\n  $atob('a');\n});\n\nvar NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () {\n  $atob();\n});\n\nvar WRONG_ARITY = BASIC && $atob.length !== 1;\n\nvar FORCED = !BASIC || NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY;\n\n// `atob` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob\n$({ global: true, bind: true, enumerable: true, forced: FORCED }, {\n  atob: function atob(data) {\n    validateArgumentsLength(arguments.length, 1);\n    // `webpack` dev server bug on IE global methods - use call(fn, global, ...)\n    if (BASIC && !NO_SPACES_IGNORE && !NO_ENCODING_CHECK) return call($atob, globalThis, data);\n    var string = replace(toString(data), whitespaces, '');\n    var position = 0;\n    var bc = 0;\n    var length, chr, bs;\n    if (!(string.length & 3)) {\n      string = replace(string, finalEq, '');\n    }\n    length = string.length;\n    var lenmod = length & 3;\n    if (lenmod === 1 || exec(disallowed, string)) {\n      throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');\n    }\n    // (length >> 2) is equivalent for length / 4 floored; * 3 then multiplies the\n    // number of bytes for full quanta\n    // lenmod is length % 4; if there's 2 or 3 bytes it's 1 or 2 bytes of extra output\n    // respectively, so -1, however use a ternary to ensure 0 does not get -1 onto length\n    var output = new $Array((length >> 2) * 3 + (lenmod ? lenmod - 1 : 0));\n    var outputIndex = 0;\n    while (position < length) {\n      chr = charAt(string, position++);\n      bs = bc & 3 ? (bs << 6) + c2i[chr] : c2i[chr];\n      if (bc++ & 3) output[outputIndex++] = fromCharCode(255 & bs >> (-2 * bc & 6));\n    }\n    return join(output, '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/web.btoa.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar i2c = require('../internals/base64-map').i2c;\n\nvar $btoa = getBuiltIn('btoa');\nvar $Array = Array;\nvar join = uncurryThis([].join);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\nvar BASIC = !!$btoa && !fails(function () {\n  return $btoa('hi') !== 'aGk=';\n});\n\nvar NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () {\n  $btoa();\n});\n\nvar WRONG_ARG_CONVERSION = BASIC && fails(function () {\n  return $btoa(null) !== 'bnVsbA==';\n});\n\nvar WRONG_ARITY = BASIC && $btoa.length !== 1;\n\n// `btoa` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa\n$({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY }, {\n  btoa: function btoa(data) {\n    validateArgumentsLength(arguments.length, 1);\n    // `webpack` dev server bug on IE global methods - use call(fn, global, ...)\n    if (BASIC) return call($btoa, globalThis, toString(data));\n    var string = toString(data);\n    // (string.length + 2) / 3) and then truncating to integer\n    // does the ceil automatically.  << 2 will truncate the integer\n    // while also doing *4.  ceil(length / 3) quanta, 4 bytes output\n    // per quanta for base64.\n    var output = new $Array((string.length + 2) / 3 << 2);\n    var outputIndex = 0;\n    var position = 0;\n    var map = i2c;\n    var block, charCode;\n    while (charAt(string, position) || (map = '=', position % 1)) {\n      charCode = charCodeAt(string, position += 3 / 4);\n      if (charCode > 0xFF) {\n        throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError');\n      }\n      block = block << 8 | charCode;\n      output[outputIndex++] = charAt(map, 63 & block >> 8 - position % 1 * 8);\n    } return join(output, '');\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/web.clear-immediate.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar clearImmediate = require('../internals/task').clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: globalThis.clearImmediate !== clearImmediate }, {\n  clearImmediate: clearImmediate\n});\n"
  },
  {
    "path": "packages/core-js/modules/web.dom-collections.for-each.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n  // some Chrome versions have non-configurable methods on DOMTokenList\n  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n    createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n  } catch (error) {\n    CollectionPrototype.forEach = forEach;\n  }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  if (DOMIterables[COLLECTION_NAME]) {\n    handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype);\n  }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n"
  },
  {
    "path": "packages/core-js/modules/web.dom-collections.iterator.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n  if (CollectionPrototype) {\n    // some Chrome versions have non-configurable methods on DOMTokenList\n    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n    } catch (error) {\n      CollectionPrototype[ITERATOR] = ArrayValues;\n    }\n    setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\n    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n      // some Chrome versions have non-configurable methods on DOMTokenList\n      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n      } catch (error) {\n        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n      }\n    }\n  }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n"
  },
  {
    "path": "packages/core-js/modules/web.dom-exception.constructor.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n  try {\n    // NodeJS < 15.0 does not expose `MessageChannel` to global\n    var MessageChannel = getBuiltIn('MessageChannel') || getBuiltInNodeModule('worker_threads').MessageChannel;\n    // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe\n    new MessageChannel().port1.postMessage(new WeakMap());\n  } catch (error) {\n    if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor;\n  }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n  return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n  anInstance(this, DOMExceptionPrototype);\n  var argumentsLength = arguments.length;\n  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n  var code = codeFor(name);\n  setInternalState(this, {\n    type: DOM_EXCEPTION,\n    name: name,\n    message: message,\n    code: code\n  });\n  if (!DESCRIPTORS) {\n    this.name = name;\n    this.message = message;\n    this.code = code;\n  }\n  if (HAS_STACK) {\n    var error = new Error(message);\n    error.name = DOM_EXCEPTION;\n    defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n  }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n  return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n  return createGetterDescriptor(function () {\n    return getInternalState(this)[key];\n  });\n};\n\nif (DESCRIPTORS) {\n  // `DOMException.prototype.code` getter\n  defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));\n  // `DOMException.prototype.message` getter\n  defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));\n  // `DOMException.prototype.name` getter\n  defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));\n}\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n  return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n  return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n  return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n  || NativeDOMException[DATA_CLONE_ERR] !== 25\n  || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {\n  DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n  defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n  defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n    return codeFor(anObject(this).name);\n  }));\n}\n\n// `DOMException` constants\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n  var constant = DOMExceptionConstants[key];\n  var constantName = constant.s;\n  var descriptor = createPropertyDescriptor(6, constant.c);\n  if (!hasOwn(PolyfilledDOMException, constantName)) {\n    defineProperty(PolyfilledDOMException, constantName, descriptor);\n  }\n  if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n    defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n  }\n}\n"
  },
  {
    "path": "packages/core-js/modules/web.dom-exception.stack.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n  anInstance(this, DOMExceptionPrototype);\n  var argumentsLength = arguments.length;\n  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n  var that = new NativeDOMException(message, name);\n  var error = new Error(message);\n  error.name = DOM_EXCEPTION;\n  defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n  inheritIfRequired(that, this, $DOMException);\n  return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n  DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n  if (!IS_PURE) {\n    defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n  }\n\n  for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n    var constant = DOMExceptionConstants[key];\n    var constantName = constant.s;\n    if (!hasOwn(PolyfilledDOMException, constantName)) {\n      defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n    }\n  }\n}\n"
  },
  {
    "path": "packages/core-js/modules/web.dom-exception.to-string-tag.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\n// `DOMException.prototype[@@toStringTag]` property\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n"
  },
  {
    "path": "packages/core-js/modules/web.immediate.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.clear-immediate');\nrequire('../modules/web.set-immediate');\n"
  },
  {
    "path": "packages/core-js/modules/web.queue-microtask.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar microtask = require('../internals/microtask');\nvar aCallable = require('../internals/a-callable');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar fails = require('../internals/fails');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// Bun ~ 1.0.30 bug\n// https://github.com/oven-sh/bun/issues/9249\nvar WRONG_ARITY = fails(function () {\n  // getOwnPropertyDescriptor for prevent experimental warning in Node 11\n  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n  return DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1;\n});\n\n// `queueMicrotask` method\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n$({ global: true, enumerable: true, dontCallGetSet: true, forced: WRONG_ARITY }, {\n  queueMicrotask: function queueMicrotask(fn) {\n    validateArgumentsLength(arguments.length, 1);\n    microtask(aCallable(fn));\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/web.self.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar INCORRECT_VALUE = globalThis.self !== globalThis;\n\n// `self` getter\n// https://html.spec.whatwg.org/multipage/window-object.html#dom-self\ntry {\n  if (DESCRIPTORS) {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    var descriptor = Object.getOwnPropertyDescriptor(globalThis, 'self');\n    // some engines have `self`, but with incorrect descriptor\n    // https://github.com/denoland/deno/issues/15765\n    if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) {\n      defineBuiltInAccessor(globalThis, 'self', {\n        get: function self() {\n          return globalThis;\n        },\n        set: function self(value) {\n          if (this !== globalThis) throw new $TypeError('Illegal invocation');\n          defineProperty(globalThis, 'self', {\n            value: value,\n            writable: true,\n            configurable: true,\n            enumerable: true\n          });\n        },\n        configurable: true,\n        enumerable: true\n      });\n    }\n  } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, {\n    self: globalThis\n  });\n} catch (error) { /* empty */ }\n"
  },
  {
    "path": "packages/core-js/modules/web.set-immediate.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar setTask = require('../internals/task').set;\nvar schedulersFix = require('../internals/schedulers-fix');\n\n// https://github.com/oven-sh/bun/issues/1633\nvar setImmediate = globalThis.setImmediate ? schedulersFix(setTask, false) : setTask;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: globalThis.setImmediate !== setImmediate }, {\n  setImmediate: setImmediate\n});\n"
  },
  {
    "path": "packages/core-js/modules/web.set-interval.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setInterval = schedulersFix(globalThis.setInterval, true);\n\n// Bun / IE9- setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n$({ global: true, bind: true, forced: globalThis.setInterval !== setInterval }, {\n  setInterval: setInterval\n});\n"
  },
  {
    "path": "packages/core-js/modules/web.set-timeout.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setTimeout = schedulersFix(globalThis.setTimeout, true);\n\n// Bun / IE9- setTimeout additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n$({ global: true, bind: true, forced: globalThis.setTimeout !== setTimeout }, {\n  setTimeout: setTimeout\n});\n"
  },
  {
    "path": "packages/core-js/modules/web.structured-clone.js",
    "content": "'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar MapHelpers = require('../internals/map-helpers');\nvar SetHelpers = require('../internals/set-helpers');\nvar setIterate = require('../internals/set-iterate');\nvar detachTransferable = require('../internals/detach-transferable');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar Object = globalThis.Object;\nvar Array = globalThis.Array;\nvar Date = globalThis.Date;\nvar Error = globalThis.Error;\nvar TypeError = globalThis.TypeError;\nvar PerformanceMark = globalThis.PerformanceMark;\nvar DOMException = getBuiltIn('DOMException');\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapGet = MapHelpers.get;\nvar mapSet = MapHelpers.set;\nvar Set = SetHelpers.Set;\nvar setAdd = SetHelpers.add;\nvar setHas = SetHelpers.has;\nvar objectKeys = getBuiltIn('Object', 'keys');\nvar push = uncurryThis([].push);\nvar thisBooleanValue = uncurryThis(true.valueOf);\nvar thisNumberValue = uncurryThis(1.1.valueOf);\nvar thisStringValue = uncurryThis(''.valueOf);\nvar thisTimeValue = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n  return !fails(function () {\n    var set1 = new globalThis.Set([7]);\n    var set2 = structuredCloneImplementation(set1);\n    var number = structuredCloneImplementation(Object(7));\n    return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7;\n  }) && structuredCloneImplementation;\n};\n\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n  return !fails(function () {\n    var error = new $Error();\n    var test = structuredCloneImplementation({ a: error, b: error });\n    return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n  });\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n  return !fails(function () {\n    var test = structuredCloneImplementation(new globalThis.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n    return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3;\n  });\n};\n\n// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+\n// FF<103 and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// FF103 can clone errors, but `.stack` of clone is an empty string\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762\n// FF104+ fixed it on usual errors, but not on DOMExceptions\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321\n// Chrome <102 returns `null` if cloned object contains multiple references to one error\n// https://bugs.chromium.org/p/v8/issues/detail?id=12542\n// NodeJS implementation can't clone DOMExceptions\n// https://github.com/nodejs/node/issues/41038\n// only FF103+ supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = globalThis.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE\n  || !checkErrorsCloning(nativeStructuredClone, Error)\n  || !checkErrorsCloning(nativeStructuredClone, DOMException)\n  || !checkNewErrorsCloningSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Chrome returns `null` if cloned object contains multiple references to one error\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor\n// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive\n// and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of those implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n  return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n  throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, action) {\n  throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar tryNativeRestrictedStructuredClone = function (value, type) {\n  if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type);\n  return nativeRestrictedStructuredClone(value);\n};\n\nvar createDataTransfer = function () {\n  var dataTransfer;\n  try {\n    dataTransfer = new globalThis.DataTransfer();\n  } catch (error) {\n    try {\n      dataTransfer = new globalThis.ClipboardEvent('').clipboardData;\n    } catch (error2) { /* empty */ }\n  }\n  return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;\n};\n\nvar cloneBuffer = function (value, map, $type) {\n  if (mapHas(map, value)) return mapGet(map, value);\n\n  var type = $type || classof(value);\n  var clone, length, options, source, target, i;\n\n  if (type === 'SharedArrayBuffer') {\n    if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value);\n    // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n    else clone = value;\n  } else {\n    var DataView = globalThis.DataView;\n\n    // `ArrayBuffer#slice` is not available in IE10\n    // `ArrayBuffer#slice` and `DataView` are not available in old FF\n    if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer');\n    // detached buffers throws in `DataView` and `.slice`\n    try {\n      if (isCallable(value.slice) && !value.resizable) {\n        clone = value.slice(0);\n      } else {\n        length = value.byteLength;\n        options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined;\n        // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe\n        clone = new ArrayBuffer(length, options);\n        source = new DataView(value);\n        target = new DataView(clone);\n        for (i = 0; i < length; i++) {\n          target.setUint8(i, source.getUint8(i));\n        }\n      }\n    } catch (error) {\n      throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n    }\n  }\n\n  mapSet(map, value, clone);\n\n  return clone;\n};\n\nvar cloneView = function (value, type, offset, length, map) {\n  var C = globalThis[type];\n  // in some old engines like Safari 9, typeof C is 'object'\n  // on Uint8ClampedArray or some other constructors\n  if (!isObject(C)) throwUnpolyfillable(type);\n  return new C(cloneBuffer(value.buffer, map), offset, length);\n};\n\nvar structuredCloneInternal = function (value, map) {\n  if (isSymbol(value)) throwUncloneable('Symbol');\n  if (!isObject(value)) return value;\n  // effectively preserves circular references\n  if (map) {\n    if (mapHas(map, value)) return mapGet(map, value);\n  } else map = new Map();\n\n  var type = classof(value);\n  var C, name, cloned, dataTransfer, i, length, keys, key;\n\n  switch (type) {\n    case 'Array':\n      cloned = Array(lengthOfArrayLike(value));\n      break;\n    case 'Object':\n      cloned = {};\n      break;\n    case 'Map':\n      cloned = new Map();\n      break;\n    case 'Set':\n      cloned = new Set();\n      break;\n    case 'RegExp':\n      // in this block because of a Safari 14.1 bug\n      // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n      cloned = new RegExp(value.source, getRegExpFlags(value));\n      break;\n    case 'Error':\n      name = value.name;\n      switch (name) {\n        case 'AggregateError':\n          cloned = new (getBuiltIn(name))([]);\n          break;\n        case 'EvalError':\n        case 'RangeError':\n        case 'ReferenceError':\n        case 'SuppressedError':\n        case 'SyntaxError':\n        case 'TypeError':\n        case 'URIError':\n          cloned = new (getBuiltIn(name))();\n          break;\n        case 'CompileError':\n        case 'LinkError':\n        case 'RuntimeError':\n          cloned = new (getBuiltIn('WebAssembly', name))();\n          break;\n        default:\n          cloned = new Error();\n      }\n      break;\n    case 'DOMException':\n      cloned = new DOMException(value.message, value.name);\n      break;\n    case 'ArrayBuffer':\n    case 'SharedArrayBuffer':\n      cloned = cloneBuffer(value, map, type);\n      break;\n    case 'DataView':\n    case 'Int8Array':\n    case 'Uint8Array':\n    case 'Uint8ClampedArray':\n    case 'Int16Array':\n    case 'Uint16Array':\n    case 'Int32Array':\n    case 'Uint32Array':\n    case 'Float16Array':\n    case 'Float32Array':\n    case 'Float64Array':\n    case 'BigInt64Array':\n    case 'BigUint64Array':\n      length = type === 'DataView' ? value.byteLength : value.length;\n      cloned = cloneView(value, type, value.byteOffset, length, map);\n      break;\n    case 'DOMQuad':\n      try {\n        cloned = new DOMQuad(\n          structuredCloneInternal(value.p1, map),\n          structuredCloneInternal(value.p2, map),\n          structuredCloneInternal(value.p3, map),\n          structuredCloneInternal(value.p4, map)\n        );\n      } catch (error) {\n        cloned = tryNativeRestrictedStructuredClone(value, type);\n      }\n      break;\n    case 'File':\n      if (nativeRestrictedStructuredClone) try {\n        cloned = nativeRestrictedStructuredClone(value);\n        // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612\n        if (classof(cloned) !== type) cloned = undefined;\n      } catch (error) { /* empty */ }\n      if (!cloned) try {\n        cloned = new File([value], value.name, value);\n      } catch (error) { /* empty */ }\n      if (!cloned) throwUnpolyfillable(type);\n      break;\n    case 'FileList':\n      dataTransfer = createDataTransfer();\n      if (dataTransfer) {\n        for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n          dataTransfer.items.add(structuredCloneInternal(value[i], map));\n        }\n        cloned = dataTransfer.files;\n      } else cloned = tryNativeRestrictedStructuredClone(value, type);\n      break;\n    case 'ImageData':\n      // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n      try {\n        cloned = new ImageData(\n          structuredCloneInternal(value.data, map),\n          value.width,\n          value.height,\n          { colorSpace: value.colorSpace }\n        );\n      } catch (error) {\n        cloned = tryNativeRestrictedStructuredClone(value, type);\n      } break;\n    default:\n      if (nativeRestrictedStructuredClone) {\n        cloned = nativeRestrictedStructuredClone(value);\n      } else switch (type) {\n        case 'BigInt':\n          // can be a 3rd party polyfill\n          cloned = Object(value.valueOf());\n          break;\n        case 'Boolean':\n          cloned = Object(thisBooleanValue(value));\n          break;\n        case 'Number':\n          cloned = Object(thisNumberValue(value));\n          break;\n        case 'String':\n          cloned = Object(thisStringValue(value));\n          break;\n        case 'Date':\n          cloned = new Date(thisTimeValue(value));\n          break;\n        case 'Blob':\n          try {\n            cloned = value.slice(0, value.size, value.type);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'DOMPoint':\n        case 'DOMPointReadOnly':\n          C = globalThis[type];\n          try {\n            cloned = C.fromPoint\n              ? C.fromPoint(value)\n              : new C(value.x, value.y, value.z, value.w);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'DOMRect':\n        case 'DOMRectReadOnly':\n          C = globalThis[type];\n          try {\n            cloned = C.fromRect\n              ? C.fromRect(value)\n              : new C(value.x, value.y, value.width, value.height);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'DOMMatrix':\n        case 'DOMMatrixReadOnly':\n          C = globalThis[type];\n          try {\n            cloned = C.fromMatrix\n              ? C.fromMatrix(value)\n              : new C(value);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'AudioData':\n        case 'VideoFrame':\n          if (!isCallable(value.clone)) throwUnpolyfillable(type);\n          try {\n            cloned = value.clone();\n          } catch (error) {\n            throwUncloneable(type);\n          } break;\n        case 'CropTarget':\n        case 'CryptoKey':\n        case 'FileSystemDirectoryHandle':\n        case 'FileSystemFileHandle':\n        case 'FileSystemHandle':\n        case 'GPUCompilationInfo':\n        case 'GPUCompilationMessage':\n        case 'ImageBitmap':\n        case 'RTCCertificate':\n        case 'WebAssembly.Module':\n          throwUnpolyfillable(type);\n          // break omitted\n        default:\n          throwUncloneable(type);\n      }\n  }\n\n  mapSet(map, value, cloned);\n\n  switch (type) {\n    case 'Array':\n    case 'Object':\n      keys = objectKeys(value);\n      for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n        key = keys[i];\n        createProperty(cloned, key, structuredCloneInternal(value[key], map));\n      } break;\n    case 'Map':\n      value.forEach(function (v, k) {\n        mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n      });\n      break;\n    case 'Set':\n      value.forEach(function (v) {\n        setAdd(cloned, structuredCloneInternal(v, map));\n      });\n      break;\n    case 'Error':\n      createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n      if (hasOwn(value, 'cause')) {\n        createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n      }\n      if (name === 'AggregateError') {\n        cloned.errors = structuredCloneInternal(value.errors, map);\n      } else if (name === 'SuppressedError') {\n        cloned.error = structuredCloneInternal(value.error, map);\n        cloned.suppressed = structuredCloneInternal(value.suppressed, map);\n      } // break omitted\n    case 'DOMException':\n      if (ERROR_STACK_INSTALLABLE) {\n        createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n      }\n  }\n\n  return cloned;\n};\n\nvar tryToTransfer = function (rawTransfer, map) {\n  if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence');\n\n  var transfer = [];\n\n  iterate(rawTransfer, function (value) {\n    push(transfer, anObject(value));\n  });\n\n  var i = 0;\n  var length = lengthOfArrayLike(transfer);\n  var buffers = new Set();\n  var value, type, C, transferred, canvas, context;\n\n  while (i < length) {\n    value = transfer[i++];\n    type = classof(value);\n    transferred = undefined;\n\n    if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) {\n      throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n    }\n\n    if (type === 'ArrayBuffer') {\n      setAdd(buffers, value);\n      continue;\n    }\n\n    if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n      transferred = nativeStructuredClone(value, { transfer: [value] });\n    } else switch (type) {\n      case 'ImageBitmap':\n        C = globalThis.OffscreenCanvas;\n        if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n        try {\n          canvas = new C(value.width, value.height);\n          context = canvas.getContext('bitmaprenderer');\n          context.transferFromImageBitmap(value);\n          transferred = canvas.transferToImageBitmap();\n        } catch (error) { /* empty */ }\n        break;\n      case 'AudioData':\n      case 'VideoFrame':\n        if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n        try {\n          transferred = value.clone();\n          value.close();\n        } catch (error) { /* empty */ }\n        break;\n      case 'MediaSourceHandle':\n      case 'MessagePort':\n      case 'MIDIAccess':\n      case 'OffscreenCanvas':\n      case 'ReadableStream':\n      case 'RTCDataChannel':\n      case 'TransformStream':\n      case 'WebTransportReceiveStream':\n      case 'WebTransportSendStream':\n      case 'WritableStream':\n        throwUnpolyfillable(type, TRANSFERRING);\n    }\n\n    if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n\n    mapSet(map, value, transferred);\n  }\n\n  return buffers;\n};\n\nvar detachBuffers = function (buffers) {\n  setIterate(buffers, function (buffer) {\n    if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n      nativeStructuredClone(buffer, { transfer: [buffer] });\n    } else if (isCallable(buffer.transfer)) {\n      buffer.transfer();\n    } else if (detachTransferable) {\n      detachTransferable(buffer);\n    } else {\n      throwUnpolyfillable('ArrayBuffer', TRANSFERRING);\n    }\n  });\n};\n\n// `structuredClone` method\n// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone\n$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, {\n  structuredClone: function structuredClone(value /* , { transfer } */) {\n    var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;\n    var transfer = options ? options.transfer : undefined;\n    var map, buffers;\n\n    if (transfer !== undefined) {\n      map = new Map();\n      buffers = tryToTransfer(transfer, map);\n    }\n\n    var clone = structuredCloneInternal(value, map);\n\n    // since of an issue with cloning views of transferred buffers, we a forced to detach them later\n    // https://github.com/zloirock/core-js/issues/1265\n    if (buffers) detachBuffers(buffers);\n\n    return clone;\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/web.timers.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.set-interval');\nrequire('../modules/web.set-timeout');\n"
  },
  {
    "path": "packages/core-js/modules/web.url-search-params.constructor.js",
    "content": "'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.string.from-code-point');\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar TypeError = globalThis.TypeError;\nvar encodeURIComponent = globalThis.encodeURIComponent;\nvar fromCharCode = String.fromCharCode;\nvar fromCodePoint = getBuiltIn('String', 'fromCodePoint');\nvar $parseInt = parseInt;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar plus = /\\+/g;\nvar FALLBACK_REPLACER = '\\uFFFD';\nvar VALID_HEX = /^[0-9a-f]+$/i;\n\nvar parseHexOctet = function (string, start) {\n  var substr = stringSlice(string, start, start + 2);\n  if (!exec(VALID_HEX, substr)) return NaN;\n\n  return $parseInt(substr, 16);\n};\n\nvar getLeadingOnes = function (octet) {\n  var count = 0;\n  for (var mask = 0x80; mask > 0 && (octet & mask) !== 0; mask >>= 1) {\n    count++;\n  }\n  return count;\n};\n\nvar utf8Decode = function (octets) {\n  var codePoint = null;\n  var length = octets.length;\n\n  switch (length) {\n    case 1:\n      codePoint = octets[0];\n      break;\n    case 2:\n      codePoint = (octets[0] & 0x1F) << 6 | (octets[1] & 0x3F);\n      break;\n    case 3:\n      codePoint = (octets[0] & 0x0F) << 12 | (octets[1] & 0x3F) << 6 | (octets[2] & 0x3F);\n      break;\n    case 4:\n      codePoint = (octets[0] & 0x07) << 18 | (octets[1] & 0x3F) << 12 | (octets[2] & 0x3F) << 6 | (octets[3] & 0x3F);\n      break;\n  }\n\n  // reject surrogates, overlong encodings, and out-of-range codepoints\n  if (codePoint === null\n    || codePoint > 0x10FFFF\n    || (codePoint >= 0xD800 && codePoint <= 0xDFFF)\n    || codePoint < (length > 3 ? 0x10000 : length > 2 ? 0x800 : length > 1 ? 0x80 : 0)\n  ) return null;\n\n  return codePoint;\n};\n\n/* eslint-disable max-statements, max-depth -- ok */\nvar decode = function (input) {\n  input = replace(input, plus, ' ');\n  var length = input.length;\n  var result = '';\n  var i = 0;\n\n  while (i < length) {\n    var decodedChar = charAt(input, i);\n\n    if (decodedChar === '%') {\n      if (charAt(input, i + 1) === '%' || i + 3 > length) {\n        result += '%';\n        i++;\n        continue;\n      }\n\n      var octet = parseHexOctet(input, i + 1);\n\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (octet !== octet) {\n        result += decodedChar;\n        i++;\n        continue;\n      }\n\n      i += 2;\n      var byteSequenceLength = getLeadingOnes(octet);\n\n      if (byteSequenceLength === 0) {\n        decodedChar = fromCharCode(octet);\n      } else {\n        if (byteSequenceLength === 1 || byteSequenceLength > 4) {\n          result += FALLBACK_REPLACER;\n          i++;\n          continue;\n        }\n\n        var octets = [octet];\n        var sequenceIndex = 1;\n\n        while (sequenceIndex < byteSequenceLength) {\n          i++;\n          if (i + 3 > length || charAt(input, i) !== '%') break;\n\n          var nextByte = parseHexOctet(input, i + 1);\n\n          // eslint-disable-next-line no-self-compare -- NaN check\n          if (nextByte !== nextByte || nextByte > 191 || nextByte < 128) break;\n\n          // https://encoding.spec.whatwg.org/#utf-8-decoder - position-specific byte ranges\n          if (sequenceIndex === 1) {\n            if (octet === 0xE0 && nextByte < 0xA0) break;\n            if (octet === 0xED && nextByte > 0x9F) break;\n            if (octet === 0xF0 && nextByte < 0x90) break;\n            if (octet === 0xF4 && nextByte > 0x8F) break;\n          }\n\n          push(octets, nextByte);\n          i += 2;\n          sequenceIndex++;\n        }\n\n        if (octets.length !== byteSequenceLength) {\n          result += FALLBACK_REPLACER;\n          continue;\n        }\n\n        var codePoint = utf8Decode(octets);\n        if (codePoint === null) {\n          for (var replacement = 0; replacement < byteSequenceLength; replacement++) result += FALLBACK_REPLACER;\n          i++;\n          continue;\n        } else {\n          decodedChar = fromCodePoint(codePoint);\n        }\n      }\n    }\n\n    result += decodedChar;\n    i++;\n  }\n\n  return result;\n};\n/* eslint-enable max-statements, max-depth -- ok */\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+'\n};\n\nvar replacer = function (match) {\n  return replacements[match];\n};\n\nvar serialize = function (it) {\n  return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n  setInternalState(this, {\n    type: URL_SEARCH_PARAMS_ITERATOR,\n    target: getInternalParamsState(params).entries,\n    index: 0,\n    kind: kind\n  });\n}, URL_SEARCH_PARAMS, function next() {\n  var state = getInternalIteratorState(this);\n  var target = state.target;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = null;\n    return createIterResultObject(undefined, true);\n  }\n  var entry = target[index];\n  switch (state.kind) {\n    case 'keys': return createIterResultObject(entry.key, false);\n    case 'values': return createIterResultObject(entry.value, false);\n  } return createIterResultObject([entry.key, entry.value], false);\n}, true);\n\nvar URLSearchParamsState = function (init) {\n  this.entries = [];\n  this.url = null;\n\n  if (init !== undefined) {\n    if (isObject(init)) this.parseObject(init);\n    else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n  }\n};\n\nURLSearchParamsState.prototype = {\n  type: URL_SEARCH_PARAMS,\n  bindURL: function (url) {\n    this.url = url;\n    this.update();\n  },\n  parseObject: function (object) {\n    var entries = this.entries;\n    var iteratorMethod = getIteratorMethod(object);\n    var iterator, next, step, entryIterator, entryNext, first, second;\n\n    if (iteratorMethod) {\n      iterator = getIterator(object, iteratorMethod);\n      next = iterator.next;\n      while (!(step = call(next, iterator)).done) {\n        entryIterator = getIterator(anObject(step.value));\n        entryNext = entryIterator.next;\n        if (\n          (first = call(entryNext, entryIterator)).done ||\n          (second = call(entryNext, entryIterator)).done ||\n          !call(entryNext, entryIterator).done\n        ) throw new TypeError('Expected sequence with length 2');\n        push(entries, { key: $toString(first.value), value: $toString(second.value) });\n      }\n    } else for (var key in object) if (hasOwn(object, key)) {\n      push(entries, { key: key, value: $toString(object[key]) });\n    }\n  },\n  parseQuery: function (query) {\n    if (query) {\n      var entries = this.entries;\n      var attributes = split(query, '&');\n      var index = 0;\n      var attribute, entry;\n      while (index < attributes.length) {\n        attribute = attributes[index++];\n        if (attribute.length) {\n          entry = split(attribute, '=');\n          push(entries, {\n            key: decode(shift(entry)),\n            value: decode(join(entry, '='))\n          });\n        }\n      }\n    }\n  },\n  serialize: function () {\n    var entries = this.entries;\n    var result = [];\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      push(result, serialize(entry.key) + '=' + serialize(entry.value));\n    } return join(result, '&');\n  },\n  update: function () {\n    this.entries.length = 0;\n    this.parseQuery(this.url.query);\n  },\n  updateURL: function () {\n    if (this.url) this.url.update();\n  }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n  anInstance(this, URLSearchParamsPrototype);\n  var init = arguments.length > 0 ? arguments[0] : undefined;\n  var state = setInternalState(this, new URLSearchParamsState(init));\n  if (!DESCRIPTORS) this.size = state.entries.length;\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n  // `URLSearchParams.prototype.append` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n  append: function append(name, value) {\n    var state = getInternalParamsState(this);\n    validateArgumentsLength(arguments.length, 2);\n    push(state.entries, { key: $toString(name), value: $toString(value) });\n    if (!DESCRIPTORS) this.size++;\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.delete` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n  'delete': function (name /* , value */) {\n    var state = getInternalParamsState(this);\n    var length = validateArgumentsLength(arguments.length, 1);\n    var entries = state.entries;\n    var key = $toString(name);\n    var $value = length < 2 ? undefined : arguments[1];\n    var value = $value === undefined ? $value : $toString($value);\n    var index = 0;\n    while (index < entries.length) {\n      var entry = entries[index];\n      if (entry.key === key && (value === undefined || entry.value === value)) {\n        splice(entries, index, 1);\n      } else index++;\n    }\n    if (!DESCRIPTORS) this.size = entries.length;\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.get` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n  get: function get(name) {\n    var entries = getInternalParamsState(this).entries;\n    validateArgumentsLength(arguments.length, 1);\n    var key = $toString(name);\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) return entries[index].value;\n    }\n    return null;\n  },\n  // `URLSearchParams.prototype.getAll` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n  getAll: function getAll(name) {\n    var entries = getInternalParamsState(this).entries;\n    validateArgumentsLength(arguments.length, 1);\n    var key = $toString(name);\n    var result = [];\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) push(result, entries[index].value);\n    }\n    return result;\n  },\n  // `URLSearchParams.prototype.has` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n  has: function has(name /* , value */) {\n    var entries = getInternalParamsState(this).entries;\n    var length = validateArgumentsLength(arguments.length, 1);\n    var key = $toString(name);\n    var $value = length < 2 ? undefined : arguments[1];\n    var value = $value === undefined ? $value : $toString($value);\n    var index = 0;\n    while (index < entries.length) {\n      var entry = entries[index++];\n      if (entry.key === key && (value === undefined || entry.value === value)) return true;\n    }\n    return false;\n  },\n  // `URLSearchParams.prototype.set` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n  set: function set(name, value) {\n    var state = getInternalParamsState(this);\n    validateArgumentsLength(arguments.length, 2);\n    var entries = state.entries;\n    var found = false;\n    var key = $toString(name);\n    var val = $toString(value);\n    var index = 0;\n    var entry;\n    for (; index < entries.length; index++) {\n      entry = entries[index];\n      if (entry.key === key) {\n        if (found) splice(entries, index--, 1);\n        else {\n          found = true;\n          entry.value = val;\n        }\n      }\n    }\n    if (!found) push(entries, { key: key, value: val });\n    if (!DESCRIPTORS) this.size = entries.length;\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.sort` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n  sort: function sort() {\n    var state = getInternalParamsState(this);\n    arraySort(state.entries, function (a, b) {\n      return a.key > b.key ? 1 : -1;\n    });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.forEach` method\n  forEach: function forEach(callback /* , thisArg */) {\n    var entries = getInternalParamsState(this).entries;\n    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      boundFunction(entry.value, entry.key, this);\n    }\n  },\n  // `URLSearchParams.prototype.keys` method\n  keys: function keys() {\n    return new URLSearchParamsIterator(this, 'keys');\n  },\n  // `URLSearchParams.prototype.values` method\n  values: function values() {\n    return new URLSearchParamsIterator(this, 'values');\n  },\n  // `URLSearchParams.prototype.entries` method\n  entries: function entries() {\n    return new URLSearchParamsIterator(this, 'entries');\n  }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n  return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\n// `URLSearchParams.prototype.size` getter\n// https://url.spec.whatwg.org/#dom-urlsearchparams-size\nif (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n  get: function size() {\n    return getInternalParamsState(this).entries.length;\n  },\n  configurable: true,\n  enumerable: true\n});\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n  URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n  var headersHas = uncurryThis(HeadersPrototype.has);\n  var headersSet = uncurryThis(HeadersPrototype.set);\n\n  var wrapRequestOptions = function (init) {\n    if (isObject(init)) {\n      var body = init.body;\n      var headers;\n      if (classof(body) === URL_SEARCH_PARAMS) {\n        headers = init.headers ? new Headers(init.headers) : new Headers();\n        if (!headersHas(headers, 'content-type')) {\n          headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n        }\n        return create(init, {\n          body: createPropertyDescriptor(0, $toString(body)),\n          headers: createPropertyDescriptor(0, headers)\n        });\n      }\n    } return init;\n  };\n\n  if (isCallable(nativeFetch)) {\n    $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n      fetch: function fetch(input /* , init */) {\n        return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n      }\n    });\n  }\n\n  if (isCallable(NativeRequest)) {\n    var RequestConstructor = function Request(input /* , init */) {\n      anInstance(this, RequestPrototype);\n      return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n    };\n\n    RequestPrototype.constructor = RequestConstructor;\n    RequestConstructor.prototype = RequestPrototype;\n\n    $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n      Request: RequestConstructor\n    });\n  }\n}\n\nmodule.exports = {\n  URLSearchParams: URLSearchParamsConstructor,\n  getState: getInternalParamsState\n};\n"
  },
  {
    "path": "packages/core-js/modules/web.url-search-params.delete.js",
    "content": "'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n  defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n    var length = arguments.length;\n    var $value = length < 2 ? undefined : arguments[1];\n    if (length && $value === undefined) return $delete(this, name);\n    var entries = [];\n    forEach(this, function (v, k) { // also validates `this`\n      push(entries, { key: k, value: v });\n    });\n    validateArgumentsLength(length, 1);\n    var key = toString(name);\n    var value = toString($value);\n    var index = 0;\n    var entriesLength = entries.length;\n    var entry;\n    while (index < entriesLength) {\n      entry = entries[index];\n      $delete(this, entry.key);\n      index++;\n    }\n    index = 0;\n    while (index < entriesLength) {\n      entry = entries[index++];\n      if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n    }\n  }, { enumerable: true, unsafe: true });\n}\n"
  },
  {
    "path": "packages/core-js/modules/web.url-search-params.has.js",
    "content": "'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n  defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n    var length = arguments.length;\n    var $value = length < 2 ? undefined : arguments[1];\n    if (length && $value === undefined) return $has(this, name);\n    var values = getAll(this, name); // also validates `this`\n    validateArgumentsLength(length, 1);\n    var value = toString($value);\n    var index = 0;\n    while (index < values.length) {\n      if (values[index++] === value) return true;\n    } return false;\n  }, { enumerable: true, unsafe: true });\n}\n"
  },
  {
    "path": "packages/core-js/modules/web.url-search-params.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\n"
  },
  {
    "path": "packages/core-js/modules/web.url-search-params.size.js",
    "content": "'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n  defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n    get: function size() {\n      var count = 0;\n      forEach(this, function () { count++; });\n      return count;\n    },\n    configurable: true,\n    enumerable: true\n  });\n}\n"
  },
  {
    "path": "packages/core-js/modules/web.url.can-parse.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar toString = require('../internals/to-string');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\n\nvar URL = getBuiltIn('URL');\n\n// https://github.com/nodejs/node/issues/47505\n// https://github.com/denoland/deno/issues/18893\nvar THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () {\n  URL.canParse();\n});\n\n// Bun ~ 1.0.30 bug\n// https://github.com/oven-sh/bun/issues/9250\nvar WRONG_ARITY = fails(function () {\n  return URL.canParse.length !== 1;\n});\n\n// `URL.canParse` method\n// https://url.spec.whatwg.org/#dom-url-canparse\n$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS || WRONG_ARITY }, {\n  canParse: function canParse(url) {\n    var length = validateArgumentsLength(arguments.length, 1);\n    var urlString = toString(url);\n    var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n    try {\n      return !!new URL(urlString, base);\n    } catch (error) {\n      return false;\n    }\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/web.url.constructor.js",
    "content": "'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar globalThis = require('../internals/global-this');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = globalThis.URL;\nvar TypeError = globalThis.TypeError;\nvar encodeURIComponent = globalThis.encodeURIComponent;\nvar parseInt = globalThis.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.1.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\nvar ALPHANUMERIC_PLUS_MINUS_DOT = /[\\d+\\-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+/;\nvar TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\n// eslint-disable-next-line no-unassigned-vars -- expected `undefined` value\nvar EOF;\n\n// https://url.spec.whatwg.org/#ends-in-a-number-checker\nvar endsInNumber = function (input) {\n  var parts = split(input, '.');\n  var last, hexPart;\n  if (parts[parts.length - 1] === '') {\n    if (parts.length === 1) return false;\n    parts.length--;\n  }\n  last = parts[parts.length - 1];\n  if (exec(DEC, last)) return true;\n  if (exec(HEX_START, last)) {\n    hexPart = stringSlice(last, 2);\n    return hexPart === '' || !!exec(HEX, hexPart);\n  }\n  return false;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv4-parser\nvar parseIPv4 = function (input) {\n  var parts = split(input, '.');\n  var partsLength, numbers, index, part, radix, number, ipv4;\n  if (parts.length && parts[parts.length - 1] === '') {\n    parts.length--;\n  }\n  partsLength = parts.length;\n  if (partsLength > 4) return null;\n  numbers = [];\n  for (index = 0; index < partsLength; index++) {\n    part = parts[index];\n    if (part === '') return null;\n    radix = 10;\n    if (part.length > 1 && charAt(part, 0) === '0') {\n      radix = exec(HEX_START, part) ? 16 : 8;\n      part = stringSlice(part, radix === 8 ? 1 : 2);\n    }\n    if (part === '') {\n      number = 0;\n    } else {\n      if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return null;\n      number = parseInt(part, radix);\n    }\n    push(numbers, number);\n  }\n  for (index = 0; index < partsLength; index++) {\n    number = numbers[index];\n    if (index === partsLength - 1) {\n      if (number >= pow(256, 5 - partsLength)) return null;\n    } else if (number > 255) return null;\n  }\n  ipv4 = pop(numbers);\n  for (index = 0; index < numbers.length; index++) {\n    ipv4 += numbers[index] * pow(256, 3 - index);\n  }\n  return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n  var address = [0, 0, 0, 0, 0, 0, 0, 0];\n  var pieceIndex = 0;\n  var compress = null;\n  var pointer = 0;\n  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n  var chr = function () {\n    return charAt(input, pointer);\n  };\n\n  if (chr() === ':') {\n    if (charAt(input, 1) !== ':') return;\n    pointer += 2;\n    pieceIndex++;\n    compress = pieceIndex;\n  }\n  while (chr()) {\n    if (pieceIndex === 8) return;\n    if (chr() === ':') {\n      if (compress !== null) return;\n      pointer++;\n      pieceIndex++;\n      compress = pieceIndex;\n      continue;\n    }\n    value = length = 0;\n    while (length < 4 && exec(HEX, chr())) {\n      value = value * 16 + parseInt(chr(), 16);\n      pointer++;\n      length++;\n    }\n    if (chr() === '.') {\n      if (length === 0) return;\n      pointer -= length;\n      if (pieceIndex > 6) return;\n      numbersSeen = 0;\n      while (chr()) {\n        ipv4Piece = null;\n        if (numbersSeen > 0) {\n          if (chr() === '.' && numbersSeen < 4) pointer++;\n          else return;\n        }\n        if (!exec(DIGIT, chr())) return;\n        while (exec(DIGIT, chr())) {\n          number = parseInt(chr(), 10);\n          if (ipv4Piece === null) ipv4Piece = number;\n          else if (ipv4Piece === 0) return;\n          else ipv4Piece = ipv4Piece * 10 + number;\n          if (ipv4Piece > 255) return;\n          pointer++;\n        }\n        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n        numbersSeen++;\n        if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++;\n      }\n      if (numbersSeen !== 4) return;\n      break;\n    } else if (chr() === ':') {\n      pointer++;\n      if (!chr()) return;\n    } else if (chr()) return;\n    address[pieceIndex++] = value;\n  }\n  if (compress !== null) {\n    swaps = pieceIndex - compress;\n    pieceIndex = 7;\n    while (pieceIndex !== 0 && swaps > 0) {\n      swap = address[pieceIndex];\n      address[pieceIndex--] = address[compress + swaps - 1];\n      address[compress + --swaps] = swap;\n    }\n  } else if (pieceIndex !== 8) return;\n  return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n  var maxIndex = null;\n  var maxLength = 1;\n  var currStart = null;\n  var currLength = 0;\n  var index = 0;\n  for (; index < 8; index++) {\n    if (ipv6[index] !== 0) {\n      if (currLength > maxLength) {\n        maxIndex = currStart;\n        maxLength = currLength;\n      }\n      currStart = null;\n      currLength = 0;\n    } else {\n      if (currStart === null) currStart = index;\n      ++currLength;\n    }\n  }\n  return currLength > maxLength ? currStart : maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n  var result, index, compress, ignore0;\n\n  // ipv4\n  if (typeof host == 'number') {\n    result = [];\n    for (index = 0; index < 4; index++) {\n      unshift(result, host % 256);\n      host = floor(host / 256);\n    }\n    return join(result, '.');\n  }\n\n  // ipv6\n  if (typeof host == 'object') {\n    result = '';\n    compress = findLongestZeroSequence(host);\n    for (index = 0; index < 8; index++) {\n      if (ignore0 && host[index] === 0) continue;\n      if (ignore0) ignore0 = false;\n      if (compress === index) {\n        result += index ? ':' : '::';\n        ignore0 = true;\n      } else {\n        result += numberToString(host[index], 16);\n        if (index < 7) result += ':';\n      }\n    }\n    return '[' + result + ']';\n  }\n\n  return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar queryPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n  ' ': 1, '\"': 1, '#': 1, '<': 1, '>': 1\n});\nvar specialQueryPercentEncodeSet = assign({}, queryPercentEncodeSet, {\n  \"'\": 1\n});\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n  ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n  '#': 1, '?': 1, '{': 1, '}': 1, '^': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n  var code = codeAt(chr, 0);\n  // encodeURIComponent does not encode ', which is in the special-query percent-encode set\n  return code >= 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : chr === \"'\" && hasOwn(set, chr) ? '%27' : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n  ftp: 21,\n  file: null,\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n  var second;\n  return string.length === 2 && exec(ALPHA, charAt(string, 0))\n    && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n  var third;\n  return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n    string.length === 2 ||\n    ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n  );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n  return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n  segment = toLowerCase(segment);\n  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n  var urlString = $toString(url);\n  var baseState, failure, searchParams;\n  if (isBase) {\n    failure = this.parse(urlString);\n    if (failure) throw new TypeError(failure);\n    this.searchParams = null;\n  } else {\n    if (base !== undefined) baseState = new URLState(base, true);\n    failure = this.parse(urlString, null, baseState);\n    if (failure) throw new TypeError(failure);\n    searchParams = getInternalSearchParamsState(new URLSearchParams());\n    searchParams.bindURL(this);\n    this.searchParams = searchParams;\n  }\n};\n\nURLState.prototype = {\n  type: 'URL',\n  // https://url.spec.whatwg.org/#url-parsing\n  // eslint-disable-next-line max-statements -- TODO\n  parse: function (input, stateOverride, base) {\n    var url = this;\n    var state = stateOverride || SCHEME_START;\n    var pointer = 0;\n    var buffer = '';\n    var seenAt = false;\n    var seenBracket = false;\n    var seenPasswordToken = false;\n    var codePoints, chr, bufferCodePoints, failure;\n\n    input = $toString(input);\n\n    if (!stateOverride) {\n      url.scheme = '';\n      url.username = '';\n      url.password = '';\n      url.host = null;\n      url.port = null;\n      url.path = [];\n      url.query = null;\n      url.fragment = null;\n      url.cannotBeABaseURL = false;\n      input = replace(input, LEADING_C0_CONTROL_OR_SPACE, '');\n      input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1');\n    }\n\n    input = replace(input, TAB_AND_NEW_LINE, '');\n\n    codePoints = arrayFrom(input);\n\n    while (pointer <= codePoints.length) {\n      chr = codePoints[pointer];\n      switch (state) {\n        case SCHEME_START:\n          if (chr && exec(ALPHA, chr)) {\n            buffer += toLowerCase(chr);\n            state = SCHEME;\n          } else if (!stateOverride) {\n            state = NO_SCHEME;\n            continue;\n          } else return INVALID_SCHEME;\n          break;\n\n        case SCHEME:\n          if (chr && exec(ALPHANUMERIC_PLUS_MINUS_DOT, chr)) {\n            buffer += toLowerCase(chr);\n          } else if (chr === ':') {\n            if (stateOverride && (\n              (url.isSpecial() !== hasOwn(specialSchemes, buffer)) ||\n              (buffer === 'file' && (url.includesCredentials() || url.port !== null)) ||\n              (url.scheme === 'file' && url.host === '')\n            )) return;\n            url.scheme = buffer;\n            if (stateOverride) {\n              if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null;\n              return;\n            }\n            buffer = '';\n            if (url.scheme === 'file') {\n              state = FILE;\n            } else if (url.isSpecial() && base && base.scheme === url.scheme) {\n              state = SPECIAL_RELATIVE_OR_AUTHORITY;\n            } else if (url.isSpecial()) {\n              state = SPECIAL_AUTHORITY_SLASHES;\n            } else if (codePoints[pointer + 1] === '/') {\n              state = PATH_OR_AUTHORITY;\n              pointer++;\n            } else {\n              url.cannotBeABaseURL = true;\n              push(url.path, '');\n              state = CANNOT_BE_A_BASE_URL_PATH;\n            }\n          } else if (!stateOverride) {\n            buffer = '';\n            state = NO_SCHEME;\n            pointer = 0;\n            continue;\n          } else return INVALID_SCHEME;\n          break;\n\n        case NO_SCHEME:\n          if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME;\n          if (base.cannotBeABaseURL && chr === '#') {\n            url.scheme = base.scheme;\n            url.path = arraySlice(base.path);\n            url.query = base.query;\n            url.fragment = '';\n            url.cannotBeABaseURL = true;\n            state = FRAGMENT;\n            break;\n          }\n          state = base.scheme === 'file' ? FILE : RELATIVE;\n          continue;\n\n        case SPECIAL_RELATIVE_OR_AUTHORITY:\n          if (chr === '/' && codePoints[pointer + 1] === '/') {\n            state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n            pointer++;\n          } else {\n            state = RELATIVE;\n            continue;\n          } break;\n\n        case PATH_OR_AUTHORITY:\n          if (chr === '/') {\n            state = AUTHORITY;\n            break;\n          } else {\n            state = PATH;\n            continue;\n          }\n\n        case RELATIVE:\n          url.scheme = base.scheme;\n          if (chr === EOF) {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            url.path = arraySlice(base.path);\n            url.query = base.query;\n          } else if (chr === '/' || (chr === '\\\\' && url.isSpecial())) {\n            state = RELATIVE_SLASH;\n          } else if (chr === '?') {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            url.path = arraySlice(base.path);\n            url.query = '';\n            state = QUERY;\n          } else if (chr === '#') {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            url.path = arraySlice(base.path);\n            url.query = base.query;\n            url.fragment = '';\n            state = FRAGMENT;\n          } else {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            url.path = arraySlice(base.path);\n            if (url.path.length) url.path.length--;\n            state = PATH;\n            continue;\n          } break;\n\n        case RELATIVE_SLASH:\n          if (url.isSpecial() && (chr === '/' || chr === '\\\\')) {\n            state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          } else if (chr === '/') {\n            state = AUTHORITY;\n          } else {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            state = PATH;\n            continue;\n          } break;\n\n        case SPECIAL_AUTHORITY_SLASHES:\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          if (chr !== '/' || codePoints[pointer + 1] !== '/') continue;\n          pointer++;\n          break;\n\n        case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n          if (chr !== '/' && chr !== '\\\\') {\n            state = AUTHORITY;\n            continue;\n          } break;\n\n        case AUTHORITY:\n          if (chr === '@') {\n            if (seenAt) buffer = '%40' + buffer;\n            seenAt = true;\n            bufferCodePoints = arrayFrom(buffer);\n            for (var i = 0; i < bufferCodePoints.length; i++) {\n              var codePoint = bufferCodePoints[i];\n              if (codePoint === ':' && !seenPasswordToken) {\n                seenPasswordToken = true;\n                continue;\n              }\n              var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n              if (seenPasswordToken) url.password += encodedCodePoints;\n              else url.username += encodedCodePoints;\n            }\n            buffer = '';\n          } else if (\n            chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n            (chr === '\\\\' && url.isSpecial())\n          ) {\n            if (seenAt && buffer === '') return INVALID_AUTHORITY;\n            pointer -= arrayFrom(buffer).length + 1;\n            buffer = '';\n            state = HOST;\n          } else buffer += chr;\n          break;\n\n        case HOST:\n        case HOSTNAME:\n          if (stateOverride && url.scheme === 'file') {\n            state = FILE_HOST;\n            continue;\n          } else if (chr === ':' && !seenBracket) {\n            if (buffer === '') return INVALID_HOST;\n            if (stateOverride === HOSTNAME) return;\n            failure = url.parseHost(buffer);\n            if (failure) return failure;\n            buffer = '';\n            state = PORT;\n          } else if (\n            chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n            (chr === '\\\\' && url.isSpecial())\n          ) {\n            if (url.isSpecial() && buffer === '') return INVALID_HOST;\n            if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return;\n            failure = url.parseHost(buffer);\n            if (failure) return failure;\n            buffer = '';\n            state = PATH_START;\n            if (stateOverride) return;\n            continue;\n          } else {\n            if (chr === '[') seenBracket = true;\n            else if (chr === ']') seenBracket = false;\n            buffer += chr;\n          } break;\n\n        case PORT:\n          if (exec(DIGIT, chr)) {\n            buffer += chr;\n          } else if (\n            chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n            (chr === '\\\\' && url.isSpecial()) ||\n            stateOverride\n          ) {\n            if (buffer !== '') {\n              var port = parseInt(buffer, 10);\n              if (port > 0xFFFF) return INVALID_PORT;\n              url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n              buffer = '';\n            }\n            if (stateOverride) return;\n            state = PATH_START;\n            continue;\n          } else return INVALID_PORT;\n          break;\n\n        case FILE:\n          url.scheme = 'file';\n          url.host = '';\n          if (chr === '/' || chr === '\\\\') state = FILE_SLASH;\n          else if (base && base.scheme === 'file') {\n            switch (chr) {\n              case EOF:\n                url.host = base.host;\n                url.path = arraySlice(base.path);\n                url.query = base.query;\n                break;\n              case '?':\n                url.host = base.host;\n                url.path = arraySlice(base.path);\n                url.query = '';\n                state = QUERY;\n                break;\n              case '#':\n                url.host = base.host;\n                url.path = arraySlice(base.path);\n                url.query = base.query;\n                url.fragment = '';\n                state = FRAGMENT;\n                break;\n              default:\n                url.host = base.host;\n                if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n                  url.path = arraySlice(base.path);\n                  url.shortenPath();\n                }\n                state = PATH;\n                continue;\n            }\n          } else {\n            state = PATH;\n            continue;\n          } break;\n\n        case FILE_SLASH:\n          if (chr === '/' || chr === '\\\\') {\n            state = FILE_HOST;\n            break;\n          }\n          if (base && base.scheme === 'file') {\n            url.host = base.host;\n            if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))\n              && isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n          }\n          state = PATH;\n          continue;\n\n        case FILE_HOST:\n          if (chr === EOF || chr === '/' || chr === '\\\\' || chr === '?' || chr === '#') {\n            if (!stateOverride && isWindowsDriveLetter(buffer)) {\n              state = PATH;\n            } else if (buffer === '') {\n              url.host = '';\n              if (stateOverride) return;\n              state = PATH_START;\n            } else {\n              failure = url.parseHost(buffer);\n              if (failure) return failure;\n              if (url.host === 'localhost') url.host = '';\n              if (stateOverride) return;\n              buffer = '';\n              state = PATH_START;\n            } continue;\n          } else buffer += chr;\n          break;\n\n        case PATH_START:\n          if (url.isSpecial()) {\n            state = PATH;\n            if (chr !== '/' && chr !== '\\\\') continue;\n          } else if (!stateOverride && chr === '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (!stateOverride && chr === '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          } else if (chr !== EOF) {\n            state = PATH;\n            if (chr !== '/') continue;\n          } break;\n\n        case PATH:\n          if (\n            chr === EOF || chr === '/' ||\n            (chr === '\\\\' && url.isSpecial()) ||\n            (!stateOverride && (chr === '?' || chr === '#'))\n          ) {\n            if (isDoubleDot(buffer)) {\n              url.shortenPath();\n              if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n                push(url.path, '');\n              }\n            } else if (isSingleDot(buffer)) {\n              if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n                push(url.path, '');\n              }\n            } else {\n              if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n                if (url.host !== null && url.host !== '') url.host = '';\n                buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n              }\n              push(url.path, buffer);\n            }\n            buffer = '';\n            if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) {\n              while (url.path.length > 1 && url.path[0] === '') {\n                shift(url.path);\n              }\n            }\n            if (chr === '?') {\n              url.query = '';\n              state = QUERY;\n            } else if (chr === '#') {\n              url.fragment = '';\n              state = FRAGMENT;\n            }\n          } else {\n            buffer += percentEncode(chr, pathPercentEncodeSet);\n          } break;\n\n        case CANNOT_BE_A_BASE_URL_PATH:\n          if (chr === '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (chr === '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          } else if (chr !== EOF) {\n            url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n          } break;\n\n        case QUERY:\n          if (!stateOverride && chr === '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          } else if (chr !== EOF) {\n            url.query += percentEncode(chr, url.isSpecial() ? specialQueryPercentEncodeSet : queryPercentEncodeSet);\n          } break;\n\n        case FRAGMENT:\n          if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n          break;\n      }\n\n      pointer++;\n    }\n  },\n  // https://url.spec.whatwg.org/#host-parsing\n  parseHost: function (input) {\n    var result, codePoints, index;\n    if (charAt(input, 0) === '[') {\n      if (charAt(input, input.length - 1) !== ']') return INVALID_HOST;\n      result = parseIPv6(stringSlice(input, 1, -1));\n      if (!result) return INVALID_HOST;\n      this.host = result;\n    // opaque host\n    } else if (!this.isSpecial()) {\n      if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n      result = '';\n      codePoints = arrayFrom(input);\n      for (index = 0; index < codePoints.length; index++) {\n        result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n      }\n      this.host = result;\n    } else {\n      input = toASCII(input);\n      if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n      if (endsInNumber(input)) {\n        result = parseIPv4(input);\n        if (result === null) return INVALID_HOST;\n        this.host = result;\n      } else {\n        this.host = input;\n      }\n    }\n  },\n  // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n  cannotHaveUsernamePasswordPort: function () {\n    return this.host === null || this.host === '' || this.cannotBeABaseURL || this.scheme === 'file';\n  },\n  // https://url.spec.whatwg.org/#include-credentials\n  includesCredentials: function () {\n    return this.username !== '' || this.password !== '';\n  },\n  // https://url.spec.whatwg.org/#is-special\n  isSpecial: function () {\n    return hasOwn(specialSchemes, this.scheme);\n  },\n  // https://url.spec.whatwg.org/#shorten-a-urls-path\n  shortenPath: function () {\n    var path = this.path;\n    var pathSize = path.length;\n    if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) {\n      path.length--;\n    }\n  },\n  // https://url.spec.whatwg.org/#concept-url-serializer\n  serialize: function () {\n    var url = this;\n    var scheme = url.scheme;\n    var username = url.username;\n    var password = url.password;\n    var host = url.host;\n    var port = url.port;\n    var path = url.path;\n    var query = url.query;\n    var fragment = url.fragment;\n    var output = scheme + ':';\n    if (host !== null) {\n      output += '//';\n      if (url.includesCredentials()) {\n        output += username + (password ? ':' + password : '') + '@';\n      }\n      output += serializeHost(host);\n      if (port !== null) output += ':' + port;\n    } else if (scheme === 'file') output += '//';\n    if (host === null && !url.cannotBeABaseURL && path.length > 1 && path[0] === '') output += '/.';\n    output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n    if (query !== null) output += '?' + query;\n    if (fragment !== null) output += '#' + fragment;\n    return output;\n  },\n  // https://url.spec.whatwg.org/#dom-url-href\n  setHref: function (href) {\n    var failure = this.parse(href);\n    if (failure) throw new TypeError(failure);\n    this.searchParams.update();\n  },\n  // https://url.spec.whatwg.org/#dom-url-origin\n  getOrigin: function () {\n    var scheme = this.scheme;\n    var port = this.port;\n    if (scheme === 'blob') try {\n      return new URLConstructor(this.path[0]).origin;\n    } catch (error) {\n      return 'null';\n    }\n    if (scheme === 'file' || !this.isSpecial()) return 'null';\n    return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n  },\n  // https://url.spec.whatwg.org/#dom-url-protocol\n  getProtocol: function () {\n    return this.scheme + ':';\n  },\n  setProtocol: function (protocol) {\n    this.parse($toString(protocol) + ':', SCHEME_START);\n  },\n  // https://url.spec.whatwg.org/#dom-url-username\n  getUsername: function () {\n    return this.username;\n  },\n  setUsername: function (username) {\n    var codePoints = arrayFrom($toString(username));\n    if (this.cannotHaveUsernamePasswordPort()) return;\n    this.username = '';\n    for (var i = 0; i < codePoints.length; i++) {\n      this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n    }\n  },\n  // https://url.spec.whatwg.org/#dom-url-password\n  getPassword: function () {\n    return this.password;\n  },\n  setPassword: function (password) {\n    var codePoints = arrayFrom($toString(password));\n    if (this.cannotHaveUsernamePasswordPort()) return;\n    this.password = '';\n    for (var i = 0; i < codePoints.length; i++) {\n      this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n    }\n  },\n  // https://url.spec.whatwg.org/#dom-url-host\n  getHost: function () {\n    var host = this.host;\n    var port = this.port;\n    return host === null ? ''\n      : port === null ? serializeHost(host)\n      : serializeHost(host) + ':' + port;\n  },\n  setHost: function (host) {\n    if (this.cannotBeABaseURL) return;\n    this.parse(host, HOST);\n  },\n  // https://url.spec.whatwg.org/#dom-url-hostname\n  getHostname: function () {\n    var host = this.host;\n    return host === null ? '' : serializeHost(host);\n  },\n  setHostname: function (hostname) {\n    if (this.cannotBeABaseURL) return;\n    this.parse(hostname, HOSTNAME);\n  },\n  // https://url.spec.whatwg.org/#dom-url-port\n  getPort: function () {\n    var port = this.port;\n    return port === null ? '' : $toString(port);\n  },\n  setPort: function (port) {\n    if (this.cannotHaveUsernamePasswordPort()) return;\n    port = $toString(port);\n    if (port === '') this.port = null;\n    else this.parse(port, PORT);\n  },\n  // https://url.spec.whatwg.org/#dom-url-pathname\n  getPathname: function () {\n    var path = this.path;\n    return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n  },\n  setPathname: function (pathname) {\n    if (this.cannotBeABaseURL) return;\n    this.path = [];\n    this.parse(pathname, PATH_START);\n  },\n  // https://url.spec.whatwg.org/#dom-url-search\n  getSearch: function () {\n    var query = this.query;\n    return query ? '?' + query : '';\n  },\n  setSearch: function (search) {\n    search = $toString(search);\n    if (search === '') {\n      this.query = null;\n    } else {\n      if (charAt(search, 0) === '?') search = stringSlice(search, 1);\n      this.query = '';\n      this.parse(search, QUERY);\n    }\n    this.searchParams.update();\n  },\n  // https://url.spec.whatwg.org/#dom-url-searchparams\n  getSearchParams: function () {\n    return this.searchParams.facade;\n  },\n  // https://url.spec.whatwg.org/#dom-url-hash\n  getHash: function () {\n    var fragment = this.fragment;\n    return fragment ? '#' + fragment : '';\n  },\n  setHash: function (hash) {\n    hash = $toString(hash);\n    if (hash === '') {\n      this.fragment = null;\n      return;\n    }\n    if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1);\n    this.fragment = '';\n    this.parse(hash, FRAGMENT);\n  },\n  update: function () {\n    this.query = this.searchParams.serialize() || null;\n  }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n  var that = anInstance(this, URLPrototype);\n  var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n  var state = setInternalState(that, new URLState(url, false, base));\n  if (!DESCRIPTORS) {\n    that.href = state.serialize();\n    that.origin = state.getOrigin();\n    that.protocol = state.getProtocol();\n    that.username = state.getUsername();\n    that.password = state.getPassword();\n    that.host = state.getHost();\n    that.hostname = state.getHostname();\n    that.port = state.getPort();\n    that.pathname = state.getPathname();\n    that.search = state.getSearch();\n    that.searchParams = state.getSearchParams();\n    that.hash = state.getHash();\n  }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n  return {\n    get: function () {\n      return getInternalURLState(this)[getter]();\n    },\n    set: setter && function (value) {\n      return getInternalURLState(this)[setter](value);\n    },\n    configurable: true,\n    enumerable: true\n  };\n};\n\nif (DESCRIPTORS) {\n  // `URL.prototype.href` accessors pair\n  // https://url.spec.whatwg.org/#dom-url-href\n  defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n  // `URL.prototype.origin` getter\n  // https://url.spec.whatwg.org/#dom-url-origin\n  defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n  // `URL.prototype.protocol` accessors pair\n  // https://url.spec.whatwg.org/#dom-url-protocol\n  defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n  // `URL.prototype.username` accessors pair\n  // https://url.spec.whatwg.org/#dom-url-username\n  defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n  // `URL.prototype.password` accessors pair\n  // https://url.spec.whatwg.org/#dom-url-password\n  defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n  // `URL.prototype.host` accessors pair\n  // https://url.spec.whatwg.org/#dom-url-host\n  defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n  // `URL.prototype.hostname` accessors pair\n  // https://url.spec.whatwg.org/#dom-url-hostname\n  defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n  // `URL.prototype.port` accessors pair\n  // https://url.spec.whatwg.org/#dom-url-port\n  defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n  // `URL.prototype.pathname` accessors pair\n  // https://url.spec.whatwg.org/#dom-url-pathname\n  defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n  // `URL.prototype.search` accessors pair\n  // https://url.spec.whatwg.org/#dom-url-search\n  defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n  // `URL.prototype.searchParams` getter\n  // https://url.spec.whatwg.org/#dom-url-searchparams\n  defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n  // `URL.prototype.hash` accessors pair\n  // https://url.spec.whatwg.org/#dom-url-hash\n  defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n  return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n  return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n  var nativeCreateObjectURL = NativeURL.createObjectURL;\n  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n  // `URL.createObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n  if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n  // `URL.revokeObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n  if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n  URL: URLConstructor\n});\n"
  },
  {
    "path": "packages/core-js/modules/web.url.js",
    "content": "'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n"
  },
  {
    "path": "packages/core-js/modules/web.url.parse.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar toString = require('../internals/to-string');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\n\nvar URL = getBuiltIn('URL');\n\n// `URL.parse` method\n// https://url.spec.whatwg.org/#dom-url-parse\n$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, {\n  parse: function parse(url) {\n    var length = validateArgumentsLength(arguments.length, 1);\n    var urlString = toString(url);\n    var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n    try {\n      return new URL(urlString, base);\n    } catch (error) {\n      return null;\n    }\n  }\n});\n"
  },
  {
    "path": "packages/core-js/modules/web.url.to-json.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n  toJSON: function toJSON() {\n    return call(URL.prototype.toString, this);\n  }\n});\n"
  },
  {
    "path": "packages/core-js/package.json",
    "content": "{\n  \"name\": \"core-js\",\n  \"version\": \"3.49.0\",\n  \"type\": \"commonjs\",\n  \"description\": \"Standard library\",\n  \"keywords\": [\n    \"ES3\",\n    \"ES5\",\n    \"ES6\",\n    \"ES7\",\n    \"ES2015\",\n    \"ES2016\",\n    \"ES2017\",\n    \"ES2018\",\n    \"ES2019\",\n    \"ES2020\",\n    \"ES2021\",\n    \"ES2022\",\n    \"ES2023\",\n    \"ES2024\",\n    \"ES2025\",\n    \"ES2026\",\n    \"ECMAScript 3\",\n    \"ECMAScript 5\",\n    \"ECMAScript 6\",\n    \"ECMAScript 7\",\n    \"ECMAScript 2015\",\n    \"ECMAScript 2016\",\n    \"ECMAScript 2017\",\n    \"ECMAScript 2018\",\n    \"ECMAScript 2019\",\n    \"ECMAScript 2020\",\n    \"ECMAScript 2021\",\n    \"ECMAScript 2022\",\n    \"ECMAScript 2023\",\n    \"ECMAScript 2024\",\n    \"ECMAScript 2025\",\n    \"ECMAScript 2026\",\n    \"Map\",\n    \"Set\",\n    \"WeakMap\",\n    \"WeakSet\",\n    \"TypedArray\",\n    \"Promise\",\n    \"Observable\",\n    \"Symbol\",\n    \"Iterator\",\n    \"AsyncIterator\",\n    \"URL\",\n    \"URLSearchParams\",\n    \"queueMicrotask\",\n    \"setImmediate\",\n    \"structuredClone\",\n    \"polyfill\",\n    \"ponyfill\",\n    \"shim\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/zloirock/core-js.git\",\n    \"directory\": \"packages/core-js\"\n  },\n  \"homepage\": \"https://core-js.io\",\n  \"bugs\": {\n    \"url\": \"https://github.com/zloirock/core-js/issues\"\n  },\n  \"funding\": {\n    \"type\": \"opencollective\",\n    \"url\": \"https://opencollective.com/core-js\"\n  },\n  \"license\": \"MIT\",\n  \"author\": {\n    \"name\": \"Denis Pushkarev\",\n    \"email\": \"zloirock@zloirock.ru\",\n    \"url\": \"http://zloirock.ru\"\n  },\n  \"sideEffects\": true,\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"postinstall\": \"node -e \\\"try{require('./postinstall')}catch(e){}\\\"\"\n  }\n}\n"
  },
  {
    "path": "packages/core-js/postinstall.js",
    "content": "'use strict';\n/* eslint-disable node/no-sync -- avoiding overcomplicating */\n/* eslint-disable unicorn/prefer-node-protocol -- ancient env possible */\nvar fs = require('fs');\nvar os = require('os');\nvar path = require('path');\n\nvar env = process.env;\nvar ADBLOCK = is(env.ADBLOCK);\nvar COLOR = is(env.npm_config_color);\nvar DISABLE_OPENCOLLECTIVE = is(env.DISABLE_OPENCOLLECTIVE);\nvar SILENT = ['silent', 'error', 'warn'].indexOf(env.npm_config_loglevel) !== -1;\nvar OPEN_SOURCE_CONTRIBUTOR = is(env.OPEN_SOURCE_CONTRIBUTOR);\nvar MINUTE = 60 * 1000;\n\n// you could add a PR with an env variable for your CI detection\nvar CI = [\n  'BUILD_NUMBER',\n  'CI',\n  'CONTINUOUS_INTEGRATION',\n  'DRONE',\n  'RUN_ID'\n].some(function (it) { return is(env[it]); });\n\nvar BANNER = '\\u001B[96mThank you for using core-js (\\u001B[94m https://github.com/zloirock/core-js \\u001B[96m) for polyfilling JavaScript standard library!\\u001B[0m\\n\\n' +\n             '\\u001B[96mThe project needs your help! Please consider supporting core-js:\\u001B[0m\\n' +\n             '\\u001B[96m>\\u001B[94m https://opencollective.com/core-js \\u001B[0m\\n' +\n             '\\u001B[96m>\\u001B[94m https://patreon.com/zloirock \\u001B[0m\\n' +\n             '\\u001B[96m>\\u001B[94m https://boosty.to/zloirock \\u001B[0m\\n' +\n             '\\u001B[96m>\\u001B[94m bitcoin: bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz \\u001B[0m\\n\\n' +\n             '\\u001B[96mI highly recommend reading this:\\u001B[94m https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md \\u001B[96m\\u001B[0m\\n';\n\nfunction is(it) {\n  return !!it && it !== '0' && it !== 'false';\n}\n\nfunction isBannerRequired() {\n  if (ADBLOCK || CI || DISABLE_OPENCOLLECTIVE || SILENT || OPEN_SOURCE_CONTRIBUTOR) return false;\n  var file = path.join(os.tmpdir(), 'core-js-banners');\n  var banners = [];\n  try {\n    var DELTA = Date.now() - fs.statSync(file).mtime;\n    if (DELTA >= 0 && DELTA < MINUTE * 3) {\n      banners = JSON.parse(fs.readFileSync(file));\n      if (banners.indexOf(BANNER) !== -1) return false;\n    }\n  } catch (error) {\n    banners = [];\n  }\n  try {\n    banners.push(BANNER);\n    fs.writeFileSync(file, JSON.stringify(banners), 'utf8');\n  } catch (error) { /* empty */ }\n  return true;\n}\n\nfunction showBanner() {\n  // eslint-disable-next-line no-console, regexp/no-control-character -- output\n  console.log(COLOR ? BANNER : BANNER.replace(/\\u001B\\[\\d+m/g, ''));\n}\n\nif (isBannerRequired()) showBanner();\n"
  },
  {
    "path": "packages/core-js/proposals/accessible-object-hasownproperty.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-accessible-object-hasownproperty\nrequire('../modules/esnext.object.has-own');\n"
  },
  {
    "path": "packages/core-js/proposals/array-buffer-base64.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-arraybuffer-base64\nrequire('../modules/esnext.uint8-array.from-base64');\nrequire('../modules/esnext.uint8-array.from-hex');\nrequire('../modules/esnext.uint8-array.set-from-base64');\nrequire('../modules/esnext.uint8-array.set-from-hex');\nrequire('../modules/esnext.uint8-array.to-base64');\nrequire('../modules/esnext.uint8-array.to-hex');\n"
  },
  {
    "path": "packages/core-js/proposals/array-buffer-transfer.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-arraybuffer-transfer\nrequire('../modules/esnext.array-buffer.detached');\nrequire('../modules/esnext.array-buffer.transfer');\nrequire('../modules/esnext.array-buffer.transfer-to-fixed-length');\n"
  },
  {
    "path": "packages/core-js/proposals/array-filtering-stage-1.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-array-filtering\nrequire('../modules/esnext.array.filter-reject');\nrequire('../modules/esnext.typed-array.filter-reject');\n"
  },
  {
    "path": "packages/core-js/proposals/array-filtering.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-array-filtering\n// TODO: Remove from `core-js@4`\nrequire('../modules/esnext.array.filter-out');\nrequire('../modules/esnext.array.filter-reject');\n// TODO: Remove from `core-js@4`\nrequire('../modules/esnext.typed-array.filter-out');\nrequire('../modules/esnext.typed-array.filter-reject');\n"
  },
  {
    "path": "packages/core-js/proposals/array-find-from-last.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-array-find-from-last/\nrequire('../modules/esnext.array.find-last');\nrequire('../modules/esnext.array.find-last-index');\nrequire('../modules/esnext.typed-array.find-last');\nrequire('../modules/esnext.typed-array.find-last-index');\n"
  },
  {
    "path": "packages/core-js/proposals/array-flat-map.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-flatMap\nrequire('../modules/es.array.flat');\nrequire('../modules/es.array.flat-map');\nrequire('../modules/es.array.unscopables.flat');\nrequire('../modules/es.array.unscopables.flat-map');\n"
  },
  {
    "path": "packages/core-js/proposals/array-from-async-stage-2.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-array-from-async\nrequire('../modules/esnext.array.from-async');\n"
  },
  {
    "path": "packages/core-js/proposals/array-from-async.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-array-from-async\nrequire('../modules/esnext.array.from-async');\n// TODO: Remove from `core-js@4`\nrequire('../modules/esnext.typed-array.from-async');\n"
  },
  {
    "path": "packages/core-js/proposals/array-grouping-stage-3-2.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-array-grouping\nrequire('../modules/esnext.array.group');\nrequire('../modules/esnext.array.group-to-map');\n"
  },
  {
    "path": "packages/core-js/proposals/array-grouping-stage-3.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-array-grouping\n// TODO: Remove from `core-js@4`\nrequire('../modules/esnext.array.group-by');\nrequire('../modules/esnext.array.group-by-to-map');\n"
  },
  {
    "path": "packages/core-js/proposals/array-grouping-v2.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-array-grouping\nrequire('../modules/esnext.map.group-by');\nrequire('../modules/esnext.object.group-by');\n"
  },
  {
    "path": "packages/core-js/proposals/array-grouping.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-array-grouping\nrequire('../modules/esnext.array.group-by');\nrequire('../modules/esnext.array.group-by-to-map');\n// TODO: Remove from `core-js@4`\nrequire('../modules/esnext.typed-array.group-by');\n"
  },
  {
    "path": "packages/core-js/proposals/array-includes.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-Array.prototype.includes\nrequire('../modules/es.array.includes');\nrequire('../modules/es.typed-array.includes');\n"
  },
  {
    "path": "packages/core-js/proposals/array-is-template-object.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-array-is-template-object\nrequire('../modules/esnext.array.is-template-object');\n"
  },
  {
    "path": "packages/core-js/proposals/array-last.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-array-last\nrequire('../modules/esnext.array.last-index');\nrequire('../modules/esnext.array.last-item');\n"
  },
  {
    "path": "packages/core-js/proposals/array-unique.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-array-unique\nrequire('../modules/es.map');\nrequire('../modules/esnext.array.unique-by');\nrequire('../modules/esnext.typed-array.unique-by');\n"
  },
  {
    "path": "packages/core-js/proposals/async-explicit-resource-management.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\n// https://github.com/tc39/proposal-async-explicit-resource-management\nrequire('../modules/esnext.suppressed-error.constructor');\nrequire('../modules/esnext.async-disposable-stack.constructor');\nrequire('../modules/esnext.async-iterator.async-dispose');\nrequire('../modules/esnext.symbol.async-dispose');\n"
  },
  {
    "path": "packages/core-js/proposals/async-iteration.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-async-iteration\nrequire('../modules/es.symbol.async-iterator');\n"
  },
  {
    "path": "packages/core-js/proposals/async-iterator-helpers.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-async-iterator-helpers\nrequire('../modules/esnext.async-iterator.constructor');\nrequire('../modules/esnext.async-iterator.drop');\nrequire('../modules/esnext.async-iterator.every');\nrequire('../modules/esnext.async-iterator.filter');\nrequire('../modules/esnext.async-iterator.find');\nrequire('../modules/esnext.async-iterator.flat-map');\nrequire('../modules/esnext.async-iterator.for-each');\nrequire('../modules/esnext.async-iterator.from');\nrequire('../modules/esnext.async-iterator.map');\nrequire('../modules/esnext.async-iterator.reduce');\nrequire('../modules/esnext.async-iterator.some');\nrequire('../modules/esnext.async-iterator.take');\nrequire('../modules/esnext.async-iterator.to-array');\nrequire('../modules/esnext.iterator.to-async');\n"
  },
  {
    "path": "packages/core-js/proposals/change-array-by-copy-stage-4.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-change-array-by-copy\nrequire('../modules/esnext.array.to-reversed');\nrequire('../modules/esnext.array.to-sorted');\nrequire('../modules/esnext.array.to-spliced');\nrequire('../modules/esnext.array.with');\nrequire('../modules/esnext.typed-array.to-reversed');\nrequire('../modules/esnext.typed-array.to-sorted');\nrequire('../modules/esnext.typed-array.with');\n"
  },
  {
    "path": "packages/core-js/proposals/change-array-by-copy.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-change-array-by-copy\nrequire('../modules/esnext.array.to-reversed');\nrequire('../modules/esnext.array.to-sorted');\nrequire('../modules/esnext.array.to-spliced');\nrequire('../modules/esnext.array.with');\nrequire('../modules/esnext.typed-array.to-reversed');\nrequire('../modules/esnext.typed-array.to-sorted');\n// TODO: Remove from `core-js@4`\nrequire('../modules/esnext.typed-array.to-spliced');\nrequire('../modules/esnext.typed-array.with');\n"
  },
  {
    "path": "packages/core-js/proposals/collection-methods.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-collection-methods\nrequire('../modules/esnext.map.group-by');\nrequire('../modules/esnext.map.key-by');\nrequire('../modules/esnext.map.delete-all');\nrequire('../modules/esnext.map.every');\nrequire('../modules/esnext.map.filter');\nrequire('../modules/esnext.map.find');\nrequire('../modules/esnext.map.find-key');\nrequire('../modules/esnext.map.includes');\nrequire('../modules/esnext.map.key-of');\nrequire('../modules/esnext.map.map-keys');\nrequire('../modules/esnext.map.map-values');\nrequire('../modules/esnext.map.merge');\nrequire('../modules/esnext.map.reduce');\nrequire('../modules/esnext.map.some');\nrequire('../modules/esnext.map.update');\nrequire('../modules/esnext.set.add-all');\nrequire('../modules/esnext.set.delete-all');\nrequire('../modules/esnext.set.every');\nrequire('../modules/esnext.set.filter');\nrequire('../modules/esnext.set.find');\nrequire('../modules/esnext.set.join');\nrequire('../modules/esnext.set.map');\nrequire('../modules/esnext.set.reduce');\nrequire('../modules/esnext.set.some');\nrequire('../modules/esnext.weak-map.delete-all');\nrequire('../modules/esnext.weak-set.add-all');\nrequire('../modules/esnext.weak-set.delete-all');\n"
  },
  {
    "path": "packages/core-js/proposals/collection-of-from.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-setmap-offrom\nrequire('../modules/esnext.map.from');\nrequire('../modules/esnext.map.of');\nrequire('../modules/esnext.set.from');\nrequire('../modules/esnext.set.of');\nrequire('../modules/esnext.weak-map.from');\nrequire('../modules/esnext.weak-map.of');\nrequire('../modules/esnext.weak-set.from');\nrequire('../modules/esnext.weak-set.of');\n"
  },
  {
    "path": "packages/core-js/proposals/data-view-get-set-uint8-clamped.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-dataview-get-set-uint8clamped\nrequire('../modules/esnext.data-view.get-uint8-clamped');\nrequire('../modules/esnext.data-view.set-uint8-clamped');\n"
  },
  {
    "path": "packages/core-js/proposals/decorator-metadata-v2.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-decorator-metadata\nrequire('../modules/esnext.function.metadata');\nrequire('../modules/esnext.symbol.metadata');\n"
  },
  {
    "path": "packages/core-js/proposals/decorator-metadata.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\n// https://github.com/tc39/proposal-decorator-metadata\nrequire('../modules/esnext.symbol.metadata-key');\n"
  },
  {
    "path": "packages/core-js/proposals/decorators.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\n// https://github.com/tc39/proposal-decorators\nrequire('../modules/esnext.symbol.metadata');\n"
  },
  {
    "path": "packages/core-js/proposals/efficient-64-bit-arithmetic.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4` as withdrawn\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nrequire('../modules/esnext.math.iaddh');\nrequire('../modules/esnext.math.isubh');\nrequire('../modules/esnext.math.imulh');\nrequire('../modules/esnext.math.umulh');\n"
  },
  {
    "path": "packages/core-js/proposals/error-cause.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-error-cause\nrequire('../modules/es.error.cause');\nrequire('../modules/es.aggregate-error.cause');\n"
  },
  {
    "path": "packages/core-js/proposals/explicit-resource-management.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-explicit-resource-management\nrequire('../modules/esnext.suppressed-error.constructor');\nrequire('../modules/esnext.async-disposable-stack.constructor');\nrequire('../modules/esnext.async-iterator.async-dispose');\nrequire('../modules/esnext.disposable-stack.constructor');\nrequire('../modules/esnext.iterator.dispose');\nrequire('../modules/esnext.symbol.async-dispose');\nrequire('../modules/esnext.symbol.dispose');\n"
  },
  {
    "path": "packages/core-js/proposals/extractors.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-extractors\nrequire('../modules/esnext.symbol.custom-matcher');\n"
  },
  {
    "path": "packages/core-js/proposals/float16.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-float16array\nrequire('../modules/esnext.data-view.get-float16');\nrequire('../modules/esnext.data-view.set-float16');\nrequire('../modules/esnext.math.f16round');\n"
  },
  {
    "path": "packages/core-js/proposals/function-demethodize.js",
    "content": "'use strict';\n// https://github.com/js-choi/proposal-function-demethodize\nrequire('../modules/esnext.function.demethodize');\n"
  },
  {
    "path": "packages/core-js/proposals/function-is-callable-is-constructor.js",
    "content": "'use strict';\n// https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md\nrequire('../modules/esnext.function.is-callable');\nrequire('../modules/esnext.function.is-constructor');\n"
  },
  {
    "path": "packages/core-js/proposals/function-un-this.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\n// https://github.com/js-choi/proposal-function-demethodize\nrequire('../modules/esnext.function.un-this');\n"
  },
  {
    "path": "packages/core-js/proposals/global-this.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-global\nrequire('../modules/esnext.global-this');\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis;\n"
  },
  {
    "path": "packages/core-js/proposals/index.js",
    "content": "'use strict';\n// TODO: Remove this entry from `core-js@4`\nrequire('../stage');\n"
  },
  {
    "path": "packages/core-js/proposals/is-error.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-is-error\nrequire('../modules/esnext.error.is-error');\n"
  },
  {
    "path": "packages/core-js/proposals/iterator-chunking-v2.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-iterator-chunking\nrequire('../modules/esnext.iterator.chunks');\nrequire('../modules/esnext.iterator.windows');\n"
  },
  {
    "path": "packages/core-js/proposals/iterator-chunking.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-iterator-chunking\nrequire('../modules/esnext.iterator.chunks');\nrequire('../modules/esnext.iterator.windows');\nrequire('../modules/esnext.iterator.sliding');\n"
  },
  {
    "path": "packages/core-js/proposals/iterator-helpers-stage-3-2.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-iterator-helpers\nrequire('../modules/esnext.iterator.constructor');\nrequire('../modules/esnext.iterator.drop');\nrequire('../modules/esnext.iterator.every');\nrequire('../modules/esnext.iterator.filter');\nrequire('../modules/esnext.iterator.find');\nrequire('../modules/esnext.iterator.flat-map');\nrequire('../modules/esnext.iterator.for-each');\nrequire('../modules/esnext.iterator.from');\nrequire('../modules/esnext.iterator.map');\nrequire('../modules/esnext.iterator.reduce');\nrequire('../modules/esnext.iterator.some');\nrequire('../modules/esnext.iterator.take');\nrequire('../modules/esnext.iterator.to-array');\n"
  },
  {
    "path": "packages/core-js/proposals/iterator-helpers-stage-3.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-iterator-helpers\nrequire('../modules/esnext.async-iterator.constructor');\nrequire('../modules/esnext.async-iterator.drop');\nrequire('../modules/esnext.async-iterator.every');\nrequire('../modules/esnext.async-iterator.filter');\nrequire('../modules/esnext.async-iterator.find');\nrequire('../modules/esnext.async-iterator.flat-map');\nrequire('../modules/esnext.async-iterator.for-each');\nrequire('../modules/esnext.async-iterator.from');\nrequire('../modules/esnext.async-iterator.map');\nrequire('../modules/esnext.async-iterator.reduce');\nrequire('../modules/esnext.async-iterator.some');\nrequire('../modules/esnext.async-iterator.take');\nrequire('../modules/esnext.async-iterator.to-array');\nrequire('../modules/esnext.iterator.constructor');\nrequire('../modules/esnext.iterator.drop');\nrequire('../modules/esnext.iterator.every');\nrequire('../modules/esnext.iterator.filter');\nrequire('../modules/esnext.iterator.find');\nrequire('../modules/esnext.iterator.flat-map');\nrequire('../modules/esnext.iterator.for-each');\nrequire('../modules/esnext.iterator.from');\nrequire('../modules/esnext.iterator.map');\nrequire('../modules/esnext.iterator.reduce');\nrequire('../modules/esnext.iterator.some');\nrequire('../modules/esnext.iterator.take');\nrequire('../modules/esnext.iterator.to-array');\nrequire('../modules/esnext.iterator.to-async');\n"
  },
  {
    "path": "packages/core-js/proposals/iterator-helpers.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\n// https://github.com/tc39/proposal-iterator-helpers\nrequire('./iterator-helpers-stage-3');\nrequire('../modules/esnext.async-iterator.as-indexed-pairs');\nrequire('../modules/esnext.async-iterator.indexed');\nrequire('../modules/esnext.iterator.as-indexed-pairs');\nrequire('../modules/esnext.iterator.indexed');\n"
  },
  {
    "path": "packages/core-js/proposals/iterator-range.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-Number.range\nrequire('../modules/esnext.iterator.constructor');\nrequire('../modules/esnext.iterator.range');\n"
  },
  {
    "path": "packages/core-js/proposals/iterator-sequencing.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-iterator-sequencing\nrequire('../modules/esnext.iterator.concat');\n"
  },
  {
    "path": "packages/core-js/proposals/joint-iteration.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-joint-iteration\nrequire('../modules/esnext.iterator.zip');\nrequire('../modules/esnext.iterator.zip-keyed');\n"
  },
  {
    "path": "packages/core-js/proposals/json-parse-with-source.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-json-parse-with-source\nrequire('../modules/esnext.json.is-raw-json');\nrequire('../modules/esnext.json.parse');\nrequire('../modules/esnext.json.raw-json');\n"
  },
  {
    "path": "packages/core-js/proposals/keys-composition.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey\nrequire('../modules/esnext.composite-key');\nrequire('../modules/esnext.composite-symbol');\n"
  },
  {
    "path": "packages/core-js/proposals/map-update-or-insert.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\n// https://github.com/tc39/proposal-upsert\nrequire('./map-upsert');\n"
  },
  {
    "path": "packages/core-js/proposals/map-upsert-stage-2.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-upsert\nrequire('../modules/esnext.map.emplace');\nrequire('../modules/esnext.weak-map.emplace');\n"
  },
  {
    "path": "packages/core-js/proposals/map-upsert-v4.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-upsert\nrequire('../modules/esnext.map.get-or-insert');\nrequire('../modules/esnext.map.get-or-insert-computed');\nrequire('../modules/esnext.weak-map.get-or-insert');\nrequire('../modules/esnext.weak-map.get-or-insert-computed');\n"
  },
  {
    "path": "packages/core-js/proposals/map-upsert.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-upsert\nrequire('../modules/esnext.map.emplace');\n// TODO: remove from `core-js@4`\nrequire('../modules/esnext.map.update-or-insert');\n// TODO: remove from `core-js@4`\nrequire('../modules/esnext.map.upsert');\nrequire('../modules/esnext.weak-map.emplace');\n// TODO: remove from `core-js@4`\nrequire('../modules/esnext.weak-map.upsert');\n"
  },
  {
    "path": "packages/core-js/proposals/math-clamp-v2.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-math-clamp\nrequire('../modules/esnext.number.clamp');\n"
  },
  {
    "path": "packages/core-js/proposals/math-clamp.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-math-clamp\nrequire('../modules/esnext.math.clamp');\n"
  },
  {
    "path": "packages/core-js/proposals/math-extensions.js",
    "content": "'use strict';\n// https://github.com/rwaldron/proposal-math-extensions\nrequire('../modules/esnext.math.clamp');\nrequire('../modules/esnext.math.deg-per-rad');\nrequire('../modules/esnext.math.degrees');\nrequire('../modules/esnext.math.fscale');\nrequire('../modules/esnext.math.rad-per-deg');\nrequire('../modules/esnext.math.radians');\nrequire('../modules/esnext.math.scale');\n"
  },
  {
    "path": "packages/core-js/proposals/math-signbit.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-Math.signbit\nrequire('../modules/esnext.math.signbit');\n"
  },
  {
    "path": "packages/core-js/proposals/math-sum.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-math-sum\nrequire('../modules/esnext.math.sum-precise');\n"
  },
  {
    "path": "packages/core-js/proposals/number-from-string.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-number-fromstring\nrequire('../modules/esnext.number.from-string');\n"
  },
  {
    "path": "packages/core-js/proposals/number-range.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-Number.range\nrequire('../modules/esnext.bigint.range');\nrequire('../modules/esnext.number.range');\n"
  },
  {
    "path": "packages/core-js/proposals/object-from-entries.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-object-from-entries\nrequire('../modules/es.object.from-entries');\n"
  },
  {
    "path": "packages/core-js/proposals/object-getownpropertydescriptors.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-object-getownpropertydescriptors\nrequire('../modules/es.object.get-own-property-descriptors');\n"
  },
  {
    "path": "packages/core-js/proposals/object-iteration.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4` as withdrawn\n// https://github.com/tc39/proposal-object-iteration\nrequire('../modules/esnext.object.iterate-entries');\nrequire('../modules/esnext.object.iterate-keys');\nrequire('../modules/esnext.object.iterate-values');\n"
  },
  {
    "path": "packages/core-js/proposals/object-values-entries.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-object-values-entries\nrequire('../modules/es.object.entries');\nrequire('../modules/es.object.values');\n"
  },
  {
    "path": "packages/core-js/proposals/observable.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-observable\nrequire('../modules/esnext.observable');\nrequire('../modules/esnext.symbol.observable');\n"
  },
  {
    "path": "packages/core-js/proposals/pattern-matching-v2.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-pattern-matching\nrequire('../modules/esnext.symbol.custom-matcher');\n"
  },
  {
    "path": "packages/core-js/proposals/pattern-matching.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-pattern-matching\nrequire('../modules/esnext.symbol.matcher');\n// TODO: remove from `core-js@4`\nrequire('../modules/esnext.symbol.pattern-match');\n"
  },
  {
    "path": "packages/core-js/proposals/promise-all-settled.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-promise-allSettled\nrequire('../modules/esnext.promise.all-settled');\n"
  },
  {
    "path": "packages/core-js/proposals/promise-any.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-promise-any\nrequire('../modules/esnext.aggregate-error');\nrequire('../modules/esnext.promise.any');\n"
  },
  {
    "path": "packages/core-js/proposals/promise-finally.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-promise-finally\nrequire('../modules/es.promise.finally');\n"
  },
  {
    "path": "packages/core-js/proposals/promise-try.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-promise-try\nrequire('../modules/esnext.promise.try');\n"
  },
  {
    "path": "packages/core-js/proposals/promise-with-resolvers.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-promise-with-resolvers\nrequire('../modules/esnext.promise.with-resolvers');\n"
  },
  {
    "path": "packages/core-js/proposals/reflect-metadata.js",
    "content": "'use strict';\n// https://github.com/rbuckton/reflect-metadata\nrequire('../modules/esnext.reflect.define-metadata');\nrequire('../modules/esnext.reflect.delete-metadata');\nrequire('../modules/esnext.reflect.get-metadata');\nrequire('../modules/esnext.reflect.get-metadata-keys');\nrequire('../modules/esnext.reflect.get-own-metadata');\nrequire('../modules/esnext.reflect.get-own-metadata-keys');\nrequire('../modules/esnext.reflect.has-metadata');\nrequire('../modules/esnext.reflect.has-own-metadata');\nrequire('../modules/esnext.reflect.metadata');\n"
  },
  {
    "path": "packages/core-js/proposals/regexp-dotall-flag.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-regexp-dotall-flag\nrequire('../modules/es.regexp.constructor');\nrequire('../modules/es.regexp.dot-all');\nrequire('../modules/es.regexp.exec');\nrequire('../modules/es.regexp.flags');\n"
  },
  {
    "path": "packages/core-js/proposals/regexp-escaping.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-regex-escaping\nrequire('../modules/esnext.regexp.escape');\n"
  },
  {
    "path": "packages/core-js/proposals/regexp-named-groups.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-regexp-named-groups\nrequire('../modules/es.regexp.constructor');\nrequire('../modules/es.regexp.exec');\nrequire('../modules/es.string.replace');\n"
  },
  {
    "path": "packages/core-js/proposals/relative-indexing-method.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-relative-indexing-method\nrequire('../modules/es.string.at-alternative');\nrequire('../modules/esnext.array.at');\nrequire('../modules/esnext.typed-array.at');\n"
  },
  {
    "path": "packages/core-js/proposals/seeded-random.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-seeded-random\nrequire('../modules/esnext.math.seeded-prng');\n"
  },
  {
    "path": "packages/core-js/proposals/set-methods-v2.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-set-methods\nrequire('../modules/esnext.set.difference.v2');\nrequire('../modules/esnext.set.intersection.v2');\nrequire('../modules/esnext.set.is-disjoint-from.v2');\nrequire('../modules/esnext.set.is-subset-of.v2');\nrequire('../modules/esnext.set.is-superset-of.v2');\nrequire('../modules/esnext.set.union.v2');\nrequire('../modules/esnext.set.symmetric-difference.v2');\n"
  },
  {
    "path": "packages/core-js/proposals/set-methods.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-set-methods\nrequire('../modules/esnext.set.difference.v2');\nrequire('../modules/esnext.set.intersection.v2');\nrequire('../modules/esnext.set.is-disjoint-from.v2');\nrequire('../modules/esnext.set.is-subset-of.v2');\nrequire('../modules/esnext.set.is-superset-of.v2');\nrequire('../modules/esnext.set.union.v2');\nrequire('../modules/esnext.set.symmetric-difference.v2');\n// TODO: Obsolete versions, remove from `core-js@4`\nrequire('../modules/esnext.set.difference');\nrequire('../modules/esnext.set.intersection');\nrequire('../modules/esnext.set.is-disjoint-from');\nrequire('../modules/esnext.set.is-subset-of');\nrequire('../modules/esnext.set.is-superset-of');\nrequire('../modules/esnext.set.union');\nrequire('../modules/esnext.set.symmetric-difference');\n"
  },
  {
    "path": "packages/core-js/proposals/string-at.js",
    "content": "'use strict';\n// https://github.com/mathiasbynens/String.prototype.at\nrequire('../modules/esnext.string.at');\n"
  },
  {
    "path": "packages/core-js/proposals/string-code-points.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-string-prototype-codepoints\nrequire('../modules/esnext.string.code-points');\n"
  },
  {
    "path": "packages/core-js/proposals/string-cooked.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-string-cooked\nrequire('../modules/esnext.string.cooked');\n"
  },
  {
    "path": "packages/core-js/proposals/string-dedent.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-string-dedent\nrequire('../modules/esnext.string.dedent');\n"
  },
  {
    "path": "packages/core-js/proposals/string-left-right-trim.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-string-left-right-trim\nrequire('../modules/es.string.trim-start');\nrequire('../modules/es.string.trim-end');\n"
  },
  {
    "path": "packages/core-js/proposals/string-match-all.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-string-matchall\nrequire('../modules/esnext.string.match-all');\n"
  },
  {
    "path": "packages/core-js/proposals/string-padding.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nrequire('../modules/es.string.pad-end');\nrequire('../modules/es.string.pad-start');\n"
  },
  {
    "path": "packages/core-js/proposals/string-replace-all-stage-4.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-string-replaceall\nrequire('../modules/esnext.string.replace-all');\n"
  },
  {
    "path": "packages/core-js/proposals/string-replace-all.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-string-replaceall\nrequire('../modules/esnext.string.replace-all');\n// TODO: remove from `core-js@4`\nrequire('../modules/esnext.symbol.replace-all');\n"
  },
  {
    "path": "packages/core-js/proposals/symbol-description.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-Symbol-description\nrequire('../modules/es.symbol.description');\n"
  },
  {
    "path": "packages/core-js/proposals/symbol-predicates-v2.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-symbol-predicates\nrequire('../modules/esnext.symbol.is-registered-symbol');\nrequire('../modules/esnext.symbol.is-well-known-symbol');\n"
  },
  {
    "path": "packages/core-js/proposals/symbol-predicates.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-symbol-predicates\nrequire('../modules/esnext.symbol.is-registered');\nrequire('../modules/esnext.symbol.is-well-known');\n"
  },
  {
    "path": "packages/core-js/proposals/url.js",
    "content": "'use strict';\n// https://github.com/jasnell/proposal-url\nrequire('../web/url');\n"
  },
  {
    "path": "packages/core-js/proposals/using-statement.js",
    "content": "'use strict';\n// TODO: Renamed, remove from `core-js@4`\n// https://github.com/tc39/proposal-explicit-resource-management\nrequire('../modules/esnext.symbol.async-dispose');\nrequire('../modules/esnext.symbol.dispose');\n"
  },
  {
    "path": "packages/core-js/proposals/well-formed-stringify.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-well-formed-stringify\nrequire('../modules/es.json.stringify');\n"
  },
  {
    "path": "packages/core-js/proposals/well-formed-unicode-strings.js",
    "content": "'use strict';\n// https://github.com/tc39/proposal-is-usv-string\nrequire('../modules/esnext.string.is-well-formed');\nrequire('../modules/esnext.string.to-well-formed');\n"
  },
  {
    "path": "packages/core-js/stable/README.md",
    "content": "This folder contains entry points for all stable `core-js` features with dependencies. It's the recommended way for usage only required features.\n"
  },
  {
    "path": "packages/core-js/stable/aggregate-error.js",
    "content": "'use strict';\n// TODO: remove from `core-js@4`\nrequire('../modules/esnext.aggregate-error');\n\nvar parent = require('../es/aggregate-error');\nrequire('../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/at.js",
    "content": "'use strict';\nvar parent = require('../../es/array/at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/concat.js",
    "content": "'use strict';\nvar parent = require('../../es/array/concat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/copy-within.js",
    "content": "'use strict';\nvar parent = require('../../es/array/copy-within');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/entries.js",
    "content": "'use strict';\nvar parent = require('../../es/array/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/every.js",
    "content": "'use strict';\nvar parent = require('../../es/array/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/fill.js",
    "content": "'use strict';\nvar parent = require('../../es/array/fill');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/filter.js",
    "content": "'use strict';\nvar parent = require('../../es/array/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/find-index.js",
    "content": "'use strict';\nvar parent = require('../../es/array/find-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/find-last-index.js",
    "content": "'use strict';\nmodule.exports = require('../../es/array/find-last-index');\n"
  },
  {
    "path": "packages/core-js/stable/array/find-last.js",
    "content": "'use strict';\nmodule.exports = require('../../es/array/find-last');\n"
  },
  {
    "path": "packages/core-js/stable/array/find.js",
    "content": "'use strict';\nvar parent = require('../../es/array/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../es/array/flat-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/flat.js",
    "content": "'use strict';\nvar parent = require('../../es/array/flat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/for-each.js",
    "content": "'use strict';\nvar parent = require('../../es/array/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/from-async.js",
    "content": "'use strict';\nvar parent = require('../../es/array/from-async');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/from.js",
    "content": "'use strict';\nvar parent = require('../../es/array/from');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/includes.js",
    "content": "'use strict';\nvar parent = require('../../es/array/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/index-of.js",
    "content": "'use strict';\nvar parent = require('../../es/array/index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/index.js",
    "content": "'use strict';\nvar parent = require('../../es/array');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/is-array.js",
    "content": "'use strict';\nvar parent = require('../../es/array/is-array');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/iterator.js",
    "content": "'use strict';\nvar parent = require('../../es/array/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/join.js",
    "content": "'use strict';\nvar parent = require('../../es/array/join');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/keys.js",
    "content": "'use strict';\nvar parent = require('../../es/array/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/last-index-of.js",
    "content": "'use strict';\nvar parent = require('../../es/array/last-index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/map.js",
    "content": "'use strict';\nvar parent = require('../../es/array/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/of.js",
    "content": "'use strict';\nvar parent = require('../../es/array/of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/push.js",
    "content": "'use strict';\nvar parent = require('../../es/array/push');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/reduce-right.js",
    "content": "'use strict';\nvar parent = require('../../es/array/reduce-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/reduce.js",
    "content": "'use strict';\nvar parent = require('../../es/array/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/reverse.js",
    "content": "'use strict';\nvar parent = require('../../es/array/reverse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/slice.js",
    "content": "'use strict';\nvar parent = require('../../es/array/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/some.js",
    "content": "'use strict';\nvar parent = require('../../es/array/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/sort.js",
    "content": "'use strict';\nvar parent = require('../../es/array/sort');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/splice.js",
    "content": "'use strict';\nvar parent = require('../../es/array/splice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/to-reversed.js",
    "content": "'use strict';\nvar parent = require('../../es/array/to-reversed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/to-sorted.js",
    "content": "'use strict';\nvar parent = require('../../es/array/to-sorted');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/to-spliced.js",
    "content": "'use strict';\nvar parent = require('../../es/array/to-spliced');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/unshift.js",
    "content": "'use strict';\nvar parent = require('../../es/array/unshift');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/values.js",
    "content": "'use strict';\nvar parent = require('../../es/array/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/at.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/concat.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/concat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/copy-within.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/copy-within');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/entries.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/every.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/fill.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/fill');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/filter.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/find-index.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/find-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/find-last-index.js",
    "content": "'use strict';\nmodule.exports = require('../../../es/array/virtual/find-last-index');\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/find-last.js",
    "content": "'use strict';\nmodule.exports = require('../../../es/array/virtual/find-last');\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/find.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/flat-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/flat.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/flat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/for-each.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/includes.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/index-of.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/index.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/iterator.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/join.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/join');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/keys.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/last-index-of.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/last-index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/map.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/push.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/push');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/reduce-right.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/reduce-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/reduce.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/reverse.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/reverse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/slice.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/some.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/sort.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/sort');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/splice.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/splice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/to-reversed.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/to-reversed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/to-sorted.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/to-sorted');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/to-spliced.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/to-spliced');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/unshift.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/unshift');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/values.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/virtual/with.js",
    "content": "'use strict';\nvar parent = require('../../../es/array/virtual/with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array/with.js",
    "content": "'use strict';\nvar parent = require('../../es/array/with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array-buffer/constructor.js",
    "content": "'use strict';\nvar parent = require('../../es/array-buffer/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array-buffer/detached.js",
    "content": "'use strict';\nvar parent = require('../../es/array-buffer/detached');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array-buffer/index.js",
    "content": "'use strict';\nvar parent = require('../../es/array-buffer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array-buffer/is-view.js",
    "content": "'use strict';\nvar parent = require('../../es/array-buffer/is-view');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array-buffer/slice.js",
    "content": "'use strict';\nvar parent = require('../../es/array-buffer/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array-buffer/transfer-to-fixed-length.js",
    "content": "'use strict';\nvar parent = require('../../es/array-buffer/transfer-to-fixed-length');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/array-buffer/transfer.js",
    "content": "'use strict';\nvar parent = require('../../es/array-buffer/transfer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/async-disposable-stack/constructor.js",
    "content": "'use strict';\nvar parent = require('../../es/async-disposable-stack/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/async-disposable-stack/index.js",
    "content": "'use strict';\nvar parent = require('../../es/async-disposable-stack');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/async-iterator/async-dispose.js",
    "content": "'use strict';\nrequire('../../es/async-iterator/async-dispose');\n"
  },
  {
    "path": "packages/core-js/stable/async-iterator/index.js",
    "content": "'use strict';\nrequire('../../es/async-iterator');\n"
  },
  {
    "path": "packages/core-js/stable/atob.js",
    "content": "'use strict';\nrequire('../modules/es.error.to-string');\nrequire('../modules/es.object.to-string');\nrequire('../modules/web.atob');\nrequire('../modules/web.dom-exception.constructor');\nrequire('../modules/web.dom-exception.stack');\nrequire('../modules/web.dom-exception.to-string-tag');\nvar path = require('../internals/path');\n\nmodule.exports = path.atob;\n"
  },
  {
    "path": "packages/core-js/stable/btoa.js",
    "content": "'use strict';\nrequire('../modules/es.error.to-string');\nrequire('../modules/es.object.to-string');\nrequire('../modules/web.btoa');\nrequire('../modules/web.dom-exception.constructor');\nrequire('../modules/web.dom-exception.stack');\nrequire('../modules/web.dom-exception.to-string-tag');\nvar path = require('../internals/path');\n\nmodule.exports = path.btoa;\n"
  },
  {
    "path": "packages/core-js/stable/clear-immediate.js",
    "content": "'use strict';\nrequire('../modules/web.immediate');\nvar path = require('../internals/path');\n\nmodule.exports = path.clearImmediate;\n"
  },
  {
    "path": "packages/core-js/stable/data-view/get-float16.js",
    "content": "'use strict';\nvar parent = require('../../es/data-view/get-float16');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/data-view/index.js",
    "content": "'use strict';\nvar parent = require('../../es/data-view');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/data-view/set-float16.js",
    "content": "'use strict';\nvar parent = require('../../es/data-view/set-float16');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/date/get-year.js",
    "content": "'use strict';\nvar parent = require('../../es/date/get-year');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/date/index.js",
    "content": "'use strict';\nvar parent = require('../../es/date');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/date/now.js",
    "content": "'use strict';\nvar parent = require('../../es/date/now');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/date/set-year.js",
    "content": "'use strict';\nvar parent = require('../../es/date/set-year');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/date/to-gmt-string.js",
    "content": "'use strict';\nvar parent = require('../../es/date/to-gmt-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/date/to-iso-string.js",
    "content": "'use strict';\nvar parent = require('../../es/date/to-iso-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/date/to-json.js",
    "content": "'use strict';\nvar parent = require('../../es/date/to-json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/date/to-primitive.js",
    "content": "'use strict';\nvar parent = require('../../es/date/to-primitive');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/date/to-string.js",
    "content": "'use strict';\nvar parent = require('../../es/date/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/disposable-stack/constructor.js",
    "content": "'use strict';\nvar parent = require('../../es/disposable-stack/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/disposable-stack/index.js",
    "content": "'use strict';\nvar parent = require('../../es/disposable-stack');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/dom-collections/for-each.js",
    "content": "'use strict';\nrequire('../../modules/web.dom-collections.for-each');\n\nvar parent = require('../../internals/array-for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/dom-collections/index.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/web.dom-collections.for-each');\nrequire('../../modules/web.dom-collections.iterator');\nvar ArrayIterators = require('../../modules/es.array.iterator');\nvar forEach = require('../../internals/array-for-each');\n\nmodule.exports = {\n  keys: ArrayIterators.keys,\n  values: ArrayIterators.values,\n  entries: ArrayIterators.entries,\n  iterator: ArrayIterators.values,\n  forEach: forEach\n};\n"
  },
  {
    "path": "packages/core-js/stable/dom-collections/iterator.js",
    "content": "'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/web.dom-collections.iterator');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'values');\n"
  },
  {
    "path": "packages/core-js/stable/dom-exception/constructor.js",
    "content": "'use strict';\nrequire('../../modules/es.error.to-string');\nrequire('../../modules/web.dom-exception.constructor');\nrequire('../../modules/web.dom-exception.stack');\nvar path = require('../../internals/path');\n\nmodule.exports = path.DOMException;\n"
  },
  {
    "path": "packages/core-js/stable/dom-exception/index.js",
    "content": "'use strict';\nrequire('../../modules/es.error.to-string');\nrequire('../../modules/web.dom-exception.constructor');\nrequire('../../modules/web.dom-exception.stack');\nrequire('../../modules/web.dom-exception.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.DOMException;\n"
  },
  {
    "path": "packages/core-js/stable/dom-exception/to-string-tag.js",
    "content": "'use strict';\nrequire('../../modules/web.dom-exception.to-string-tag');\n\nmodule.exports = 'DOMException';\n"
  },
  {
    "path": "packages/core-js/stable/error/constructor.js",
    "content": "'use strict';\nvar parent = require('../../es/error/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/error/index.js",
    "content": "'use strict';\nvar parent = require('../../es/error');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/error/is-error.js",
    "content": "'use strict';\nvar parent = require('../../es/error/is-error');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/error/to-string.js",
    "content": "'use strict';\nvar parent = require('../../es/error/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/escape.js",
    "content": "'use strict';\nvar parent = require('../es/escape');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/function/bind.js",
    "content": "'use strict';\nvar parent = require('../../es/function/bind');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/function/has-instance.js",
    "content": "'use strict';\nvar parent = require('../../es/function/has-instance');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/function/index.js",
    "content": "'use strict';\nvar parent = require('../../es/function');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/function/name.js",
    "content": "'use strict';\nvar parent = require('../../es/function/name');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/function/virtual/bind.js",
    "content": "'use strict';\nvar parent = require('../../../es/function/virtual/bind');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/function/virtual/index.js",
    "content": "'use strict';\nvar parent = require('../../../es/function/virtual');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/get-iterator-method.js",
    "content": "'use strict';\nvar parent = require('../es/get-iterator-method');\nrequire('../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/get-iterator.js",
    "content": "'use strict';\nvar parent = require('../es/get-iterator');\nrequire('../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/global-this.js",
    "content": "'use strict';\nvar parent = require('../es/global-this');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/at.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/bind.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/bind');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/code-point-at.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/code-point-at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/concat.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/concat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/copy-within.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/copy-within');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/ends-with.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/ends-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/entries.js",
    "content": "'use strict';\nrequire('../../modules/web.dom-collections.iterator');\nvar classof = require('../../internals/classof');\nvar hasOwn = require('../../internals/has-own-property');\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/entries');\n\nvar ArrayPrototype = Array.prototype;\n\nvar DOMIterables = {\n  DOMTokenList: true,\n  NodeList: true\n};\n\nmodule.exports = function (it) {\n  var own = it.entries;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.entries)\n    || hasOwn(DOMIterables, classof(it)) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/stable/instance/every.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/fill.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/fill');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/filter.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/find-index.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/find-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/find-last-index.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/find-last-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/find-last.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/find-last');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/find.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/flags.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/flags');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/flat-map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/flat.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/flat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/for-each.js",
    "content": "'use strict';\nvar classof = require('../../internals/classof');\nvar hasOwn = require('../../internals/has-own-property');\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/for-each');\nrequire('../../modules/web.dom-collections.for-each');\n\nvar ArrayPrototype = Array.prototype;\n\nvar DOMIterables = {\n  DOMTokenList: true,\n  NodeList: true\n};\n\nmodule.exports = function (it) {\n  var own = it.forEach;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.forEach)\n    || hasOwn(DOMIterables, classof(it)) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/stable/instance/includes.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/index-of.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/is-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/is-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/keys.js",
    "content": "'use strict';\nrequire('../../modules/web.dom-collections.iterator');\nvar classof = require('../../internals/classof');\nvar hasOwn = require('../../internals/has-own-property');\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/keys');\n\nvar ArrayPrototype = Array.prototype;\n\nvar DOMIterables = {\n  DOMTokenList: true,\n  NodeList: true\n};\n\nmodule.exports = function (it) {\n  var own = it.keys;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.keys)\n    || hasOwn(DOMIterables, classof(it)) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/stable/instance/last-index-of.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/last-index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/map.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/match-all.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/match-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/pad-end.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/pad-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/pad-start.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/pad-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/push.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/push');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/reduce-right.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/reduce-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/reduce.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/repeat.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/repeat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/replace-all.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/reverse.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/reverse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/slice.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/some.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/sort.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/sort');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/splice.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/splice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/starts-with.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/starts-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/to-reversed.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/to-reversed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/to-sorted.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/to-sorted');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/to-spliced.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/to-spliced');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/to-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/to-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/trim-end.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/trim-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/trim-left.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/trim-left');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/trim-right.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/trim-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/trim-start.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/trim-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/trim.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/trim');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/unshift.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/unshift');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/instance/values.js",
    "content": "'use strict';\nrequire('../../modules/web.dom-collections.iterator');\nvar classof = require('../../internals/classof');\nvar hasOwn = require('../../internals/has-own-property');\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/values');\n\nvar ArrayPrototype = Array.prototype;\n\nvar DOMIterables = {\n  DOMTokenList: true,\n  NodeList: true\n};\n\nmodule.exports = function (it) {\n  var own = it.values;\n  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.values)\n    || hasOwn(DOMIterables, classof(it)) ? method : own;\n};\n"
  },
  {
    "path": "packages/core-js/stable/instance/with.js",
    "content": "'use strict';\nvar parent = require('../../es/instance/with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/is-iterable.js",
    "content": "'use strict';\nvar parent = require('../es/is-iterable');\nrequire('../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/concat.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/concat');\nrequire('../../modules/esnext.iterator.concat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/dispose.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/drop.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/drop');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/every.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/filter.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/find.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/flat-map.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/flat-map');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/for-each.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/from.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/from');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/index.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/map.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/reduce.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/some.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/take.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/take');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/iterator/to-array.js",
    "content": "'use strict';\nvar parent = require('../../es/iterator/to-array');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/json/index.js",
    "content": "'use strict';\nvar parent = require('../../es/json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/json/is-raw-json.js",
    "content": "'use strict';\nvar parent = require('../../es/json/is-raw-json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/json/parse.js",
    "content": "'use strict';\nvar parent = require('../../es/json/parse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/json/raw-json.js",
    "content": "'use strict';\nvar parent = require('../../es/json/raw-json');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/json/stringify.js",
    "content": "'use strict';\nvar parent = require('../../es/json/stringify');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/json/to-string-tag.js",
    "content": "'use strict';\nvar parent = require('../../es/json/to-string-tag');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/map/get-or-insert-computed.js",
    "content": "'use strict';\nvar parent = require('../../es/map/get-or-insert-computed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/map/get-or-insert.js",
    "content": "'use strict';\nvar parent = require('../../es/map/get-or-insert');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/map/group-by.js",
    "content": "'use strict';\nvar parent = require('../../es/map/group-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/map/index.js",
    "content": "'use strict';\nvar parent = require('../../es/map');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/acosh.js",
    "content": "'use strict';\nvar parent = require('../../es/math/acosh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/asinh.js",
    "content": "'use strict';\nvar parent = require('../../es/math/asinh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/atanh.js",
    "content": "'use strict';\nvar parent = require('../../es/math/atanh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/cbrt.js",
    "content": "'use strict';\nvar parent = require('../../es/math/cbrt');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/clz32.js",
    "content": "'use strict';\nvar parent = require('../../es/math/clz32');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/cosh.js",
    "content": "'use strict';\nvar parent = require('../../es/math/cosh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/expm1.js",
    "content": "'use strict';\nvar parent = require('../../es/math/expm1');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/f16round.js",
    "content": "'use strict';\nvar parent = require('../../es/math/f16round');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/fround.js",
    "content": "'use strict';\nvar parent = require('../../es/math/fround');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/hypot.js",
    "content": "'use strict';\nvar parent = require('../../es/math/hypot');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/imul.js",
    "content": "'use strict';\nvar parent = require('../../es/math/imul');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/index.js",
    "content": "'use strict';\nvar parent = require('../../es/math');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/log10.js",
    "content": "'use strict';\nvar parent = require('../../es/math/log10');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/log1p.js",
    "content": "'use strict';\nvar parent = require('../../es/math/log1p');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/log2.js",
    "content": "'use strict';\nvar parent = require('../../es/math/log2');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/sign.js",
    "content": "'use strict';\nvar parent = require('../../es/math/sign');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/sinh.js",
    "content": "'use strict';\nvar parent = require('../../es/math/sinh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/sum-precise.js",
    "content": "'use strict';\nvar parent = require('../../es/math/sum-precise');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/tanh.js",
    "content": "'use strict';\nvar parent = require('../../es/math/tanh');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/to-string-tag.js",
    "content": "'use strict';\nvar parent = require('../../es/math/to-string-tag');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/math/trunc.js",
    "content": "'use strict';\nvar parent = require('../../es/math/trunc');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/constructor.js",
    "content": "'use strict';\nvar parent = require('../../es/number/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/epsilon.js",
    "content": "'use strict';\nvar parent = require('../../es/number/epsilon');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/index.js",
    "content": "'use strict';\nvar parent = require('../../es/number');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/is-finite.js",
    "content": "'use strict';\nvar parent = require('../../es/number/is-finite');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/is-integer.js",
    "content": "'use strict';\nvar parent = require('../../es/number/is-integer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/is-nan.js",
    "content": "'use strict';\nvar parent = require('../../es/number/is-nan');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/is-safe-integer.js",
    "content": "'use strict';\nvar parent = require('../../es/number/is-safe-integer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/max-safe-integer.js",
    "content": "'use strict';\nvar parent = require('../../es/number/max-safe-integer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/min-safe-integer.js",
    "content": "'use strict';\nvar parent = require('../../es/number/min-safe-integer');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/parse-float.js",
    "content": "'use strict';\nvar parent = require('../../es/number/parse-float');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/parse-int.js",
    "content": "'use strict';\nvar parent = require('../../es/number/parse-int');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/to-exponential.js",
    "content": "'use strict';\nvar parent = require('../../es/number/to-exponential');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/to-fixed.js",
    "content": "'use strict';\nvar parent = require('../../es/number/to-fixed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/to-precision.js",
    "content": "'use strict';\nvar parent = require('../../es/number/to-precision');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/virtual/index.js",
    "content": "'use strict';\nvar parent = require('../../../es/number/virtual');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/virtual/to-exponential.js",
    "content": "'use strict';\nvar parent = require('../../../es/number/virtual/to-exponential');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/virtual/to-fixed.js",
    "content": "'use strict';\nvar parent = require('../../../es/number/virtual/to-fixed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/number/virtual/to-precision.js",
    "content": "'use strict';\nvar parent = require('../../../es/number/virtual/to-precision');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/assign.js",
    "content": "'use strict';\nvar parent = require('../../es/object/assign');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/create.js",
    "content": "'use strict';\nvar parent = require('../../es/object/create');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/define-getter.js",
    "content": "'use strict';\nvar parent = require('../../es/object/define-getter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/define-properties.js",
    "content": "'use strict';\nvar parent = require('../../es/object/define-properties');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/define-property.js",
    "content": "'use strict';\nvar parent = require('../../es/object/define-property');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/define-setter.js",
    "content": "'use strict';\nvar parent = require('../../es/object/define-setter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/entries.js",
    "content": "'use strict';\nvar parent = require('../../es/object/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/freeze.js",
    "content": "'use strict';\nvar parent = require('../../es/object/freeze');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/from-entries.js",
    "content": "'use strict';\nvar parent = require('../../es/object/from-entries');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/get-own-property-descriptor.js",
    "content": "'use strict';\nvar parent = require('../../es/object/get-own-property-descriptor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/get-own-property-descriptors.js",
    "content": "'use strict';\nvar parent = require('../../es/object/get-own-property-descriptors');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/get-own-property-names.js",
    "content": "'use strict';\nvar parent = require('../../es/object/get-own-property-names');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/get-own-property-symbols.js",
    "content": "'use strict';\nvar parent = require('../../es/object/get-own-property-symbols');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/get-prototype-of.js",
    "content": "'use strict';\nvar parent = require('../../es/object/get-prototype-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/group-by.js",
    "content": "'use strict';\nvar parent = require('../../es/object/group-by');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/has-own.js",
    "content": "'use strict';\nvar parent = require('../../es/object/has-own');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/index.js",
    "content": "'use strict';\nvar parent = require('../../es/object');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/is-extensible.js",
    "content": "'use strict';\nvar parent = require('../../es/object/is-extensible');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/is-frozen.js",
    "content": "'use strict';\nvar parent = require('../../es/object/is-frozen');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/is-sealed.js",
    "content": "'use strict';\nvar parent = require('../../es/object/is-sealed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/is.js",
    "content": "'use strict';\nvar parent = require('../../es/object/is');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/keys.js",
    "content": "'use strict';\nvar parent = require('../../es/object/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/lookup-getter.js",
    "content": "'use strict';\nvar parent = require('../../es/object/lookup-getter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/lookup-setter.js",
    "content": "'use strict';\nvar parent = require('../../es/object/lookup-setter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/prevent-extensions.js",
    "content": "'use strict';\nvar parent = require('../../es/object/prevent-extensions');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/proto.js",
    "content": "'use strict';\nvar parent = require('../../es/object/proto');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/seal.js",
    "content": "'use strict';\nvar parent = require('../../es/object/seal');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/set-prototype-of.js",
    "content": "'use strict';\nvar parent = require('../../es/object/set-prototype-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/to-string.js",
    "content": "'use strict';\nvar parent = require('../../es/object/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/object/values.js",
    "content": "'use strict';\nvar parent = require('../../es/object/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/parse-float.js",
    "content": "'use strict';\nvar parent = require('../es/parse-float');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/parse-int.js",
    "content": "'use strict';\nvar parent = require('../es/parse-int');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/promise/all-settled.js",
    "content": "'use strict';\nvar parent = require('../../es/promise/all-settled');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/promise/any.js",
    "content": "'use strict';\nvar parent = require('../../es/promise/any');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/promise/finally.js",
    "content": "'use strict';\nvar parent = require('../../es/promise/finally');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/promise/index.js",
    "content": "'use strict';\nvar parent = require('../../es/promise');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/promise/try.js",
    "content": "'use strict';\nvar parent = require('../../es/promise/try');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/promise/with-resolvers.js",
    "content": "'use strict';\nvar parent = require('../../es/promise/with-resolvers');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/queue-microtask.js",
    "content": "'use strict';\nvar parent = require('../web/queue-microtask');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/apply.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/apply');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/construct.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/construct');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/define-property.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/define-property');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/delete-property.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/delete-property');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/get-own-property-descriptor.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/get-own-property-descriptor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/get-prototype-of.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/get-prototype-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/get.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/get');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/has.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/has');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/index.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/is-extensible.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/is-extensible');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/own-keys.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/own-keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/prevent-extensions.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/prevent-extensions');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/set-prototype-of.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/set-prototype-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/set.js",
    "content": "'use strict';\nvar parent = require('../../es/reflect/set');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/reflect/to-string-tag.js",
    "content": "'use strict';\nrequire('../../modules/es.reflect.to-string-tag');\n\nmodule.exports = 'Reflect';\n"
  },
  {
    "path": "packages/core-js/stable/regexp/constructor.js",
    "content": "'use strict';\nvar parent = require('../../es/regexp/constructor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/regexp/dot-all.js",
    "content": "'use strict';\nvar parent = require('../../es/regexp/dot-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/regexp/escape.js",
    "content": "'use strict';\nvar parent = require('../../es/regexp/escape');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/regexp/flags.js",
    "content": "'use strict';\nvar parent = require('../../es/regexp/flags');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/regexp/index.js",
    "content": "'use strict';\nvar parent = require('../../es/regexp');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/regexp/match.js",
    "content": "'use strict';\nvar parent = require('../../es/regexp/match');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/regexp/replace.js",
    "content": "'use strict';\nvar parent = require('../../es/regexp/replace');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/regexp/search.js",
    "content": "'use strict';\nvar parent = require('../../es/regexp/search');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/regexp/split.js",
    "content": "'use strict';\nvar parent = require('../../es/regexp/split');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/regexp/sticky.js",
    "content": "'use strict';\nvar parent = require('../../es/regexp/sticky');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/regexp/test.js",
    "content": "'use strict';\nvar parent = require('../../es/regexp/test');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/regexp/to-string.js",
    "content": "'use strict';\nvar parent = require('../../es/regexp/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/self.js",
    "content": "'use strict';\nrequire('../modules/web.self');\nvar path = require('../internals/path');\n\nmodule.exports = path.self;\n"
  },
  {
    "path": "packages/core-js/stable/set/difference.js",
    "content": "'use strict';\nvar parent = require('../../es/set/difference');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/set/index.js",
    "content": "'use strict';\nvar parent = require('../../es/set');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/set/intersection.js",
    "content": "'use strict';\nvar parent = require('../../es/set/intersection');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/set/is-disjoint-from.js",
    "content": "'use strict';\nvar parent = require('../../es/set/is-disjoint-from');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/set/is-subset-of.js",
    "content": "'use strict';\nvar parent = require('../../es/set/is-subset-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/set/is-superset-of.js",
    "content": "'use strict';\nvar parent = require('../../es/set/is-superset-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/set/symmetric-difference.js",
    "content": "'use strict';\nvar parent = require('../../es/set/symmetric-difference');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/set/union.js",
    "content": "'use strict';\nvar parent = require('../../es/set/union');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/set-immediate.js",
    "content": "'use strict';\nrequire('../modules/web.immediate');\nvar path = require('../internals/path');\n\nmodule.exports = path.setImmediate;\n"
  },
  {
    "path": "packages/core-js/stable/set-interval.js",
    "content": "'use strict';\nrequire('../modules/web.timers');\nvar path = require('../internals/path');\n\nmodule.exports = path.setInterval;\n"
  },
  {
    "path": "packages/core-js/stable/set-timeout.js",
    "content": "'use strict';\nrequire('../modules/web.timers');\nvar path = require('../internals/path');\n\nmodule.exports = path.setTimeout;\n"
  },
  {
    "path": "packages/core-js/stable/string/anchor.js",
    "content": "'use strict';\nvar parent = require('../../es/string/anchor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/at.js",
    "content": "'use strict';\nvar parent = require('../../es/string/at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/big.js",
    "content": "'use strict';\nvar parent = require('../../es/string/big');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/blink.js",
    "content": "'use strict';\nvar parent = require('../../es/string/blink');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/bold.js",
    "content": "'use strict';\nvar parent = require('../../es/string/bold');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/code-point-at.js",
    "content": "'use strict';\nvar parent = require('../../es/string/code-point-at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/ends-with.js",
    "content": "'use strict';\nvar parent = require('../../es/string/ends-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/fixed.js",
    "content": "'use strict';\nvar parent = require('../../es/string/fixed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/fontcolor.js",
    "content": "'use strict';\nvar parent = require('../../es/string/fontcolor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/fontsize.js",
    "content": "'use strict';\nvar parent = require('../../es/string/fontsize');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/from-code-point.js",
    "content": "'use strict';\nvar parent = require('../../es/string/from-code-point');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/includes.js",
    "content": "'use strict';\nvar parent = require('../../es/string/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/index.js",
    "content": "'use strict';\nvar parent = require('../../es/string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/is-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../es/string/is-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/italics.js",
    "content": "'use strict';\nvar parent = require('../../es/string/italics');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/iterator.js",
    "content": "'use strict';\nvar parent = require('../../es/string/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/link.js",
    "content": "'use strict';\nvar parent = require('../../es/string/link');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/match-all.js",
    "content": "'use strict';\nvar parent = require('../../es/string/match-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/match.js",
    "content": "'use strict';\nvar parent = require('../../es/string/match');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/pad-end.js",
    "content": "'use strict';\nvar parent = require('../../es/string/pad-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/pad-start.js",
    "content": "'use strict';\nvar parent = require('../../es/string/pad-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/raw.js",
    "content": "'use strict';\nvar parent = require('../../es/string/raw');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/repeat.js",
    "content": "'use strict';\nvar parent = require('../../es/string/repeat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/replace-all.js",
    "content": "'use strict';\nvar parent = require('../../es/string/replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/replace.js",
    "content": "'use strict';\nvar parent = require('../../es/string/replace');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/search.js",
    "content": "'use strict';\nvar parent = require('../../es/string/search');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/small.js",
    "content": "'use strict';\nvar parent = require('../../es/string/small');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/split.js",
    "content": "'use strict';\nvar parent = require('../../es/string/split');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/starts-with.js",
    "content": "'use strict';\nvar parent = require('../../es/string/starts-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/strike.js",
    "content": "'use strict';\nvar parent = require('../../es/string/strike');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/sub.js",
    "content": "'use strict';\nvar parent = require('../../es/string/sub');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/substr.js",
    "content": "'use strict';\nvar parent = require('../../es/string/substr');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/sup.js",
    "content": "'use strict';\nvar parent = require('../../es/string/sup');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/to-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../es/string/to-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/trim-end.js",
    "content": "'use strict';\nvar parent = require('../../es/string/trim-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/trim-left.js",
    "content": "'use strict';\nvar parent = require('../../es/string/trim-left');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/trim-right.js",
    "content": "'use strict';\nvar parent = require('../../es/string/trim-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/trim-start.js",
    "content": "'use strict';\nvar parent = require('../../es/string/trim-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/trim.js",
    "content": "'use strict';\nvar parent = require('../../es/string/trim');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/anchor.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/anchor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/at.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/big.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/big');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/blink.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/blink');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/bold.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/bold');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/code-point-at.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/code-point-at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/ends-with.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/ends-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/fixed.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/fixed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/fontcolor.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/fontcolor');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/fontsize.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/fontsize');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/includes.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/index.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/is-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/is-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/italics.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/italics');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/iterator.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/link.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/link');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/match-all.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/match-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/pad-end.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/pad-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/pad-start.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/pad-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/repeat.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/repeat');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/replace-all.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/small.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/small');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/starts-with.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/starts-with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/strike.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/strike');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/sub.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/sub');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/substr.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/substr');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/sup.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/sup');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/to-well-formed.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/to-well-formed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/trim-end.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/trim-end');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/trim-left.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/trim-left');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/trim-right.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/trim-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/trim-start.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/trim-start');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/string/virtual/trim.js",
    "content": "'use strict';\nvar parent = require('../../../es/string/virtual/trim');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/structured-clone.js",
    "content": "'use strict';\nrequire('../modules/es.error.to-string');\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.object.keys');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.map');\nrequire('../modules/es.set');\nrequire('../modules/web.dom-exception.constructor');\nrequire('../modules/web.dom-exception.stack');\nrequire('../modules/web.dom-exception.to-string-tag');\nrequire('../modules/web.structured-clone');\nvar path = require('../internals/path');\n\nmodule.exports = path.structuredClone;\n"
  },
  {
    "path": "packages/core-js/stable/suppressed-error.js",
    "content": "'use strict';\nvar parent = require('../es/suppressed-error');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/async-dispose.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/async-dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/async-iterator.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/async-iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/description.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/description');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/dispose.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/dispose');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/for.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/for');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/has-instance.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/has-instance');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/index.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/is-concat-spreadable.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/is-concat-spreadable');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/iterator.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/iterator');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/key-for.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/key-for');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/match-all.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/match-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/match.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/match');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/replace.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/replace');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/search.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/search');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/species.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/species');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/split.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/split');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/to-primitive.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/to-primitive');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/to-string-tag.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/to-string-tag');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/symbol/unscopables.js",
    "content": "'use strict';\nvar parent = require('../../es/symbol/unscopables');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/at.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/at');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/copy-within.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/copy-within');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/entries.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/entries');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/every.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/every');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/fill.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/fill');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/filter.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/filter');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/find-index.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/find-index');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/find-last-index.js",
    "content": "'use strict';\nmodule.exports = require('../../es/typed-array/find-last-index');\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/find-last.js",
    "content": "'use strict';\nmodule.exports = require('../../es/typed-array/find-last');\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/find.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/find');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/float32-array.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/float32-array');\nrequire('../../stable/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/float64-array.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/float64-array');\nrequire('../../stable/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/for-each.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/for-each');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/from-base64.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/from-base64');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/from-hex.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/from-hex');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/from.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/from');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/includes.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/includes');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/index-of.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/index.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/int16-array.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/int16-array');\nrequire('../../stable/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/int32-array.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/int32-array');\nrequire('../../stable/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/int8-array.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/int8-array');\nrequire('../../stable/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/iterator.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/join.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/join');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/keys.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/keys');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/last-index-of.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/last-index-of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/map.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/map');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/methods.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/of.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/of');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/reduce-right.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/reduce-right');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/reduce.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/reduce');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/reverse.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/reverse');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/set-from-base64.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/set-from-base64');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/set-from-hex.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/set-from-hex');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/set.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/set');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/slice.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/slice');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/some.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/some');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/sort.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/sort');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/subarray.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/subarray');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/to-base64.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/to-base64');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/to-hex.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/to-hex');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/to-locale-string.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/to-locale-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/to-reversed.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/to-reversed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/to-sorted.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/to-sorted');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/to-string.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/to-string');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/uint16-array.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/uint16-array');\nrequire('../../stable/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/uint32-array.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/uint32-array');\nrequire('../../stable/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/uint8-array.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/uint8-array');\nrequire('../../stable/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/uint8-clamped-array.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/uint8-clamped-array');\nrequire('../../stable/typed-array/methods');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/values.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/values');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/typed-array/with.js",
    "content": "'use strict';\nvar parent = require('../../es/typed-array/with');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/unescape.js",
    "content": "'use strict';\nvar parent = require('../es/unescape');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/url/can-parse.js",
    "content": "'use strict';\nrequire('../../modules/web.url');\nrequire('../../modules/web.url.can-parse');\nvar path = require('../../internals/path');\n\nmodule.exports = path.URL.canParse;\n"
  },
  {
    "path": "packages/core-js/stable/url/index.js",
    "content": "'use strict';\nvar parent = require('../../web/url');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/url/parse.js",
    "content": "'use strict';\nrequire('../../modules/web.url');\nrequire('../../modules/web.url.parse');\nvar path = require('../../internals/path');\n\nmodule.exports = path.URL.parse;\n"
  },
  {
    "path": "packages/core-js/stable/url/to-json.js",
    "content": "'use strict';\nrequire('../../modules/web.url.to-json');\n"
  },
  {
    "path": "packages/core-js/stable/url-search-params/index.js",
    "content": "'use strict';\nvar parent = require('../../web/url-search-params');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/weak-map/get-or-insert-computed.js",
    "content": "'use strict';\nvar parent = require('../../es/weak-map/get-or-insert-computed');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/weak-map/get-or-insert.js",
    "content": "'use strict';\nvar parent = require('../../es/weak-map/get-or-insert');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/weak-map/index.js",
    "content": "'use strict';\nvar parent = require('../../es/weak-map');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stable/weak-set/index.js",
    "content": "'use strict';\nvar parent = require('../../es/weak-set');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stage/0.js",
    "content": "'use strict';\nvar parent = require('./1');\n\nrequire('../proposals/efficient-64-bit-arithmetic');\nrequire('../proposals/function-demethodize');\nrequire('../proposals/function-is-callable-is-constructor');\nrequire('../proposals/string-at');\nrequire('../proposals/url');\n// TODO: Obsolete versions, remove from `core-js@4`:\nrequire('../proposals/array-filtering');\nrequire('../proposals/function-un-this');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stage/1.js",
    "content": "'use strict';\nvar parent = require('./2');\n\nrequire('../proposals/array-filtering-stage-1');\nrequire('../proposals/array-last');\nrequire('../proposals/array-unique');\nrequire('../proposals/collection-methods');\nrequire('../proposals/collection-of-from');\nrequire('../proposals/data-view-get-set-uint8-clamped');\nrequire('../proposals/keys-composition');\nrequire('../proposals/math-extensions');\nrequire('../proposals/math-signbit');\nrequire('../proposals/number-from-string');\nrequire('../proposals/object-iteration');\nrequire('../proposals/observable');\nrequire('../proposals/pattern-matching-v2');\nrequire('../proposals/seeded-random');\nrequire('../proposals/string-code-points');\nrequire('../proposals/string-cooked');\n// TODO: Obsolete versions, remove from `core-js@4`:\nrequire('../proposals/array-from-async');\nrequire('../proposals/map-upsert');\n// TODO: Obsolete versions, remove from `core-js@4`:\nrequire('../proposals/math-clamp');\nrequire('../proposals/number-range');\nrequire('../proposals/pattern-matching');\nrequire('../proposals/string-replace-all');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stage/2.7.js",
    "content": "'use strict';\nvar parent = require('./3');\n\nrequire('../proposals/iterator-chunking');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stage/2.js",
    "content": "'use strict';\nvar parent = require('./2.7');\n\nrequire('../proposals/array-is-template-object');\nrequire('../proposals/async-iterator-helpers');\nrequire('../proposals/extractors');\nrequire('../proposals/iterator-range');\nrequire('../proposals/string-dedent');\nrequire('../proposals/symbol-predicates-v2');\n// TODO: Obsolete versions, remove from `core-js@4`\nrequire('../proposals/array-grouping');\nrequire('../proposals/async-explicit-resource-management');\nrequire('../proposals/decorators');\nrequire('../proposals/decorator-metadata');\nrequire('../proposals/iterator-helpers');\nrequire('../proposals/map-upsert-stage-2');\nrequire('../proposals/math-clamp-v2');\nrequire('../proposals/set-methods');\nrequire('../proposals/symbol-predicates');\nrequire('../proposals/using-statement');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stage/3.js",
    "content": "'use strict';\nvar parent = require('./4');\n\nrequire('../proposals/decorator-metadata-v2');\nrequire('../proposals/joint-iteration');\n// TODO: Obsolete versions, remove from `core-js@4`\nrequire('../proposals/array-grouping-stage-3');\nrequire('../proposals/array-grouping-stage-3-2');\nrequire('../proposals/change-array-by-copy');\nrequire('../proposals/iterator-helpers-stage-3');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/stage/4.js",
    "content": "'use strict';\n// TODO: Remove this entry from `core-js@4`\nrequire('../proposals/accessible-object-hasownproperty');\nrequire('../proposals/array-buffer-base64');\nrequire('../proposals/array-buffer-transfer');\nrequire('../proposals/array-find-from-last');\nrequire('../proposals/array-from-async-stage-2');\nrequire('../proposals/array-grouping-v2');\nrequire('../proposals/change-array-by-copy-stage-4');\n// require('../proposals/error-cause');\nrequire('../proposals/explicit-resource-management');\nrequire('../proposals/float16');\nrequire('../proposals/global-this');\nrequire('../proposals/is-error');\nrequire('../proposals/iterator-helpers-stage-3-2');\nrequire('../proposals/iterator-sequencing');\nrequire('../proposals/json-parse-with-source');\nrequire('../proposals/map-upsert-v4');\nrequire('../proposals/math-sum');\nrequire('../proposals/promise-all-settled');\nrequire('../proposals/promise-any');\nrequire('../proposals/promise-try');\nrequire('../proposals/promise-with-resolvers');\nrequire('../proposals/regexp-escaping');\nrequire('../proposals/relative-indexing-method');\nrequire('../proposals/set-methods-v2');\nrequire('../proposals/string-match-all');\nrequire('../proposals/string-replace-all-stage-4');\nrequire('../proposals/well-formed-unicode-strings');\n\nvar path = require('../internals/path');\n\nmodule.exports = path;\n"
  },
  {
    "path": "packages/core-js/stage/README.md",
    "content": "This folder contains entry points for [ECMAScript proposals](https://github.com/zloirock/core-js#ecmascript-proposals) with dependencies.\n"
  },
  {
    "path": "packages/core-js/stage/index.js",
    "content": "'use strict';\nvar proposals = require('./pre');\n\nmodule.exports = proposals;\n"
  },
  {
    "path": "packages/core-js/stage/pre.js",
    "content": "'use strict';\nvar parent = require('./0');\n\nrequire('../proposals/reflect-metadata');\n\nmodule.exports = parent;\n"
  },
  {
    "path": "packages/core-js/web/README.md",
    "content": "This folder contains entry points for features from [WHATWG / W3C](https://github.com/zloirock/core-js#web-standards) with dependencies.\n"
  },
  {
    "path": "packages/core-js/web/dom-collections.js",
    "content": "'use strict';\nrequire('../modules/web.dom-collections.for-each');\nrequire('../modules/web.dom-collections.iterator');\nvar path = require('../internals/path');\n\nmodule.exports = path;\n"
  },
  {
    "path": "packages/core-js/web/dom-exception.js",
    "content": "'use strict';\nrequire('../modules/es.error.to-string');\nrequire('../modules/web.dom-exception.constructor');\nrequire('../modules/web.dom-exception.stack');\nrequire('../modules/web.dom-exception.to-string-tag');\nvar path = require('../internals/path');\n\nmodule.exports = path.DOMException;\n"
  },
  {
    "path": "packages/core-js/web/immediate.js",
    "content": "'use strict';\nrequire('../modules/web.immediate');\nvar path = require('../internals/path');\n\nmodule.exports = path;\n"
  },
  {
    "path": "packages/core-js/web/index.js",
    "content": "'use strict';\nrequire('../modules/web.atob');\nrequire('../modules/web.btoa');\nrequire('../modules/web.dom-collections.for-each');\nrequire('../modules/web.dom-collections.iterator');\nrequire('../modules/web.dom-exception.constructor');\nrequire('../modules/web.dom-exception.stack');\nrequire('../modules/web.dom-exception.to-string-tag');\nrequire('../modules/web.immediate');\nrequire('../modules/web.queue-microtask');\nrequire('../modules/web.self');\nrequire('../modules/web.structured-clone');\nrequire('../modules/web.timers');\nrequire('../modules/web.url');\nrequire('../modules/web.url.can-parse');\nrequire('../modules/web.url.parse');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nrequire('../modules/web.url-search-params.delete');\nrequire('../modules/web.url-search-params.has');\nrequire('../modules/web.url-search-params.size');\nvar path = require('../internals/path');\n\nmodule.exports = path;\n"
  },
  {
    "path": "packages/core-js/web/queue-microtask.js",
    "content": "'use strict';\nrequire('../modules/web.queue-microtask');\nvar path = require('../internals/path');\n\nmodule.exports = path.queueMicrotask;\n"
  },
  {
    "path": "packages/core-js/web/structured-clone.js",
    "content": "'use strict';\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.map');\nrequire('../modules/es.set');\nrequire('../modules/web.structured-clone');\nvar path = require('../internals/path');\n\nmodule.exports = path.structuredClone;\n"
  },
  {
    "path": "packages/core-js/web/timers.js",
    "content": "'use strict';\nrequire('../modules/web.timers');\nvar path = require('../internals/path');\n\nmodule.exports = path;\n"
  },
  {
    "path": "packages/core-js/web/url-search-params.js",
    "content": "'use strict';\nrequire('../modules/web.url-search-params');\nrequire('../modules/web.url-search-params.delete');\nrequire('../modules/web.url-search-params.has');\nrequire('../modules/web.url-search-params.size');\nvar path = require('../internals/path');\n\nmodule.exports = path.URLSearchParams;\n"
  },
  {
    "path": "packages/core-js/web/url.js",
    "content": "'use strict';\nrequire('./url-search-params');\nrequire('../modules/web.url');\nrequire('../modules/web.url.can-parse');\nrequire('../modules/web.url.parse');\nrequire('../modules/web.url.to-json');\nvar path = require('../internals/path');\n\nmodule.exports = path.URL;\n"
  },
  {
    "path": "packages/core-js-builder/.npmignore",
    "content": "node_modules/\n*.log\n.*\n"
  },
  {
    "path": "packages/core-js-builder/README.md",
    "content": "![logo](https://user-images.githubusercontent.com/2213682/146607186-8e13ddef-26a4-4ebf-befd-5aac9d77c090.png)\n\n<div align=\"center\">\n\n[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js-builder.svg)](https://www.npmjs.com/package/core-js-builder)\n\n</div>\n\n**I highly recommend reading this: [So, what's next?](https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md)**\n---\n\nFor some cases could be useful to exclude some [`core-js`](https://core-js.io) features or generate a polyfill for target engines. This API helps conditionally include or exclude certain parts of [`core-js`](https://core-js.io) and build for targets. `modules`, `exclude` and `targets` options are specified in [the `core-js-compat` format](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat).\n\n```js\nimport builder from 'core-js-builder';\n\nconst bundle = await builder({\n  // entry / module / namespace / an array of them, by default - all `core-js` modules\n  modules: ['core-js/actual', /^esnext\\.reflect\\./],\n  // a blacklist of entries / modules / namespaces, by default - empty list\n  exclude: [/^es\\.math\\./, 'es.number.constructor'],\n  // optional browserslist or core-js-compat format query\n  targets: '> 0.5%, not dead, ie 9-11',\n  // shows summary for the bundle, disabled by default\n  summary: {\n    // in the console, you could specify required parts or set `true` for enable all of them\n    console: { size: true, modules: false },\n    // in the comment in the target file, similarly to `summary.console`\n    comment: { size: false, modules: true },\n  },\n  // output format, 'bundle' by default, can be 'cjs' or 'esm', and in this case\n  // the result will not be bundled and will contain imports of required modules\n  format: 'bundle',\n  // optional target filename, if it's missed a file will not be created\n  filename: PATH_TO_MY_COREJS_BUNDLE,\n});\n```\n\nℹ️ When using TypeScript, make sure to set `esModuleInterop` to `true`.\n"
  },
  {
    "path": "packages/core-js-builder/config.js",
    "content": "'use strict';\nconst { version } = require('./package');\n\nmodule.exports = {\n  /* eslint-disable prefer-template -- for better formatting */\n  banner: '/**\\n' +\n          ' * core-js ' + version + '\\n' +\n          ' * © 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.\\n' +\n          ' * license: https://github.com/zloirock/core-js/blob/v' + version + '/LICENSE\\n' +\n          ' * source: https://github.com/zloirock/core-js\\n' +\n          ' */',\n  /* eslint-enable prefer-template -- for better formatting */\n};\n"
  },
  {
    "path": "packages/core-js-builder/index.d.ts",
    "content": "import type compat from \"core-js-compat\";\n\ntype Format = 'bundle' | 'esm' | 'cjs';\n\ntype SummaryEntry = boolean | {\n  size?: boolean,\n  modules?: boolean,\n};\n\ntype Summary = {\n  /** in the comment, you could specify required parts or set `true` for enable all of them */\n  comment?: SummaryEntry,\n  /** in the console, you could specify required parts or set `true` for enable all of them */\n  console?: SummaryEntry,\n};\n\ntype CompatOptions = Exclude<Parameters<typeof compat.compat>[0], undefined>;\n\ntype Options = Pick<CompatOptions, \"exclude\" | \"modules\" | \"targets\"> & {\n  /** output format, 'bundle' by default, can be 'cjs' or 'esm', and in this case\n   *  the result will not be bundled and will contain imports of required modules */\n  format?: Format,\n  /** optional target filename, if it's missed a file will not be created */\n  filename?: string,\n  /** shows summary for the bundle, disabled by default */\n  summary?: Summary,\n};\n\ndeclare function builder(options?: Options): Promise<string>;\n\nexport = builder;\n"
  },
  {
    "path": "packages/core-js-builder/index.js",
    "content": "'use strict';\n/* eslint-disable no-console -- output */\nconst { promisify } = require('util');\nconst fs = require('fs');\n// TODO: replace by `fs.promises` after dropping NodeJS < 10 support\nconst readFile = promisify(fs.readFile);\nconst unlink = promisify(fs.unlink);\nconst writeFile = promisify(fs.writeFile);\nconst { dirname, join } = require('path');\nconst tmpdir = require('os').tmpdir();\n// TODO: replace by `mkdir` with `recursive: true` after dropping NodeJS < 10.12 support\nconst mkdirp = promisify(require('mkdirp'));\nconst webpack = promisify(require('webpack'));\nconst compat = require('core-js-compat/compat');\nconst { banner } = require('./config');\n\nfunction normalizeSummary(unit = {}) {\n  let size, modules;\n  if (typeof unit != 'object') {\n    size = modules = !!unit;\n  } else {\n    size = !!unit.size;\n    modules = !!unit.modules;\n  } return { size, modules };\n}\n\nmodule.exports = async function ({\n  modules = null,\n  blacklist = null, // TODO: Obsolete, remove from `core-js@4`\n  exclude = [],\n  targets = null,\n  format = 'bundle',\n  filename = null,\n  summary = {},\n} = {}) {\n  if (!['bundle', 'cjs', 'esm'].includes(format)) throw new TypeError('Incorrect output type');\n  summary = { comment: normalizeSummary(summary.comment), console: normalizeSummary(summary.console) };\n\n  const TITLE = filename !== null && filename !== undefined ? filename : '`core-js`';\n  let script = banner;\n  let code = '\\n';\n\n  const { list, targets: compatTargets } = compat({ targets, modules, exclude: blacklist || exclude });\n\n  if (list.length) {\n    if (format === 'bundle') {\n      const tempFileName = `core-js-${ Math.random().toString(36).slice(2) }.js`;\n      const tempFile = join(tmpdir, tempFileName);\n\n      await webpack({\n        mode: 'none',\n        node: {\n          global: false,\n          process: false,\n          setImmediate: false,\n        },\n        entry: list.map(it => require.resolve(`core-js/modules/${ it }`)),\n        output: {\n          filename: tempFileName,\n          hashFunction: 'md5',\n          path: tmpdir,\n        },\n      });\n\n      const file = await readFile(tempFile, 'utf8');\n\n      await unlink(tempFile);\n\n      code = `!function (undefined) { 'use strict'; ${\n        // compress `__webpack_require__` with `keep_fnames` option\n        String(file).replace(/function __webpack_require__/, 'var __webpack_require__ = function ')\n      } }();\\n`;\n    } else {\n      const template = it => format === 'esm'\n        ? `import 'core-js/modules/${ it }.js';\\n`\n        : `require('core-js/modules/${ it }');\\n`;\n      code = list.map(template).join('');\n    }\n  }\n\n  if (summary.comment.size) script += `/*\\n * size: ${ (code.length / 1024).toFixed(2) }KB w/o comments\\n */`;\n  if (summary.comment.modules) script += `/*\\n * modules:\\n${ list.map(it => ` * ${ it }\\n`).join('') } */`;\n  if (code) script += `\\n${ code }`;\n\n  if (summary.console.size) {\n    console.log(`\\u001B[32mbundling \\u001B[36m${ TITLE }\\u001B[32m, size: \\u001B[36m${\n      (script.length / 1024).toFixed(2)\n    }KB\\u001B[0m`);\n  }\n\n  if (summary.console.modules) {\n    console.log(`\\u001B[32mbundling \\u001B[36m${ TITLE }\\u001B[32m, modules:\\u001B[0m`);\n    if (list.length) for (const it of list) {\n      console.log(`\\u001B[36m${ it + (targets ? ` \\u001B[32mfor \\u001B[36m${ JSON.stringify(compatTargets[it]) }` : '') }\\u001B[0m`);\n    } else console.log('\\u001B[36mnothing\\u001B[0m');\n  }\n\n  if (!(filename === null || filename === undefined)) {\n    await mkdirp(dirname(filename));\n    await writeFile(filename, script);\n  }\n\n  return script;\n};\n"
  },
  {
    "path": "packages/core-js-builder/package.json",
    "content": "{\n  \"name\": \"core-js-builder\",\n  \"version\": \"3.49.0\",\n  \"type\": \"commonjs\",\n  \"description\": \"core-js builder\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/zloirock/core-js.git\",\n    \"directory\": \"packages/core-js-builder\"\n  },\n  \"homepage\": \"https://core-js.io\",\n  \"bugs\": {\n    \"url\": \"https://github.com/zloirock/core-js/issues\"\n  },\n  \"funding\": {\n    \"type\": \"opencollective\",\n    \"url\": \"https://opencollective.com/core-js\"\n  },\n  \"license\": \"MIT\",\n  \"author\": {\n    \"name\": \"Denis Pushkarev\",\n    \"email\": \"zloirock@zloirock.ru\",\n    \"url\": \"http://zloirock.ru\"\n  },\n  \"sideEffects\": false,\n  \"main\": \"index.js\",\n  \"types\": \"index.d.ts\",\n  \"dependencies\": {\n    \"core-js\": \"3.49.0\",\n    \"core-js-compat\": \"3.49.0\",\n    \"mkdirp\": \">=0.5.6 <1\",\n    \"webpack\": \">=4.47.0 <5\"\n  },\n  \"engines\": {\n    \"node\": \">=8.9.0\"\n  }\n}\n"
  },
  {
    "path": "packages/core-js-bundle/.npmignore",
    "content": "*.log\n.*\n"
  },
  {
    "path": "packages/core-js-bundle/README.md",
    "content": "![logo](https://user-images.githubusercontent.com/2213682/146607186-8e13ddef-26a4-4ebf-befd-5aac9d77c090.png)\n\n<div align=\"center\">\n\n[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js-bundle.svg)](https://www.npmjs.com/package/core-js-bundle)\n\n</div>\n\n**I highly recommend reading this: [So, what's next?](https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md)**\n---\n\n> [`core-js`](https://core-js.io) is a modular standard library for JavaScript. Includes polyfills for ECMAScript up to 2026: [promises](https://core-js.io/docs/features/ecmascript/promise), [symbols](https://core-js.io/docs/features/ecmascript/symbol), [collections](https://core-js.io/docs/features/ecmascript/collections), [iterators](https://core-js.io/docs/features/ecmascript/iterator), [typed arrays](https://core-js.io/docs/features/ecmascript/typed-arrays), many other features, ECMAScript proposals, some cross-platform WHATWG / W3C features and proposals like [`URL`](https://core-js.io/docs/features/web-standards/url-and-urlsearchparams). You can load only required features or use it without global namespace pollution.\n\n## Raising funds\n\n`core-js` isn't backed by a company, so the future of this project depends on you. Become a sponsor or a backer if you are interested in `core-js`: [**Open Collective**](https://opencollective.com/core-js), [**Patreon**](https://patreon.com/zloirock), [**Boosty**](https://boosty.to/zloirock), **Bitcoin ( bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz )**, [**Alipay**](https://user-images.githubusercontent.com/2213682/219464783-c17ad329-17ce-4795-82a7-f609493345ed.png).\n\n---\n\n<a href=\"https://opencollective.com/core-js/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/0/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/1/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/2/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/3/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/4/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/5/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/6/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/7/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/8/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/9/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/10/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/10/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/11/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/11/avatar.svg\"></a>\n\n---\n\n<a href=\"https://opencollective.com/core-js#backers\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/backers.svg?width=890\"></a>\n\n---\n\n[*Example of usage*](https://tinyurl.com/28zqjbun):\n```js\nimport 'core-js/actual';\n\nPromise.try(() => 42).then(it => console.log(it)); // => 42\n\nArray.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\n[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n*You can load only required features*:\n```js\nimport 'core-js/actual/promise';\nimport 'core-js/actual/set';\nimport 'core-js/actual/iterator';\nimport 'core-js/actual/array/from';\nimport 'core-js/actual/array/flat-map';\nimport 'core-js/actual/structured-clone';\n\nPromise.try(() => 42).then(it => console.log(it)); // => 42\n\nArray.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\n[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n*Or use it without global namespace pollution*:\n```js\nimport Promise from 'core-js-pure/actual/promise';\nimport Set from 'core-js-pure/actual/set';\nimport Iterator from 'core-js-pure/actual/iterator';\nimport from from 'core-js-pure/actual/array/from';\nimport flatMap from 'core-js-pure/actual/array/flat-map';\nimport structuredClone from 'core-js-pure/actual/structured-clone';\n\nPromise.try(() => 42).then(it => console.log(it)); // => 42\n\nfrom(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\nflatMap([1, 2], it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n**It's a bundled global version, for more info see [`core-js` documentation](https://core-js.io).**\n"
  },
  {
    "path": "packages/core-js-bundle/package.json",
    "content": "{\n  \"name\": \"core-js-bundle\",\n  \"version\": \"3.49.0\",\n  \"type\": \"commonjs\",\n  \"description\": \"Standard library\",\n  \"keywords\": [\n    \"ES3\",\n    \"ES5\",\n    \"ES6\",\n    \"ES7\",\n    \"ES2015\",\n    \"ES2016\",\n    \"ES2017\",\n    \"ES2018\",\n    \"ES2019\",\n    \"ES2020\",\n    \"ES2021\",\n    \"ES2022\",\n    \"ES2023\",\n    \"ES2024\",\n    \"ES2025\",\n    \"ES2026\",\n    \"ECMAScript 3\",\n    \"ECMAScript 5\",\n    \"ECMAScript 6\",\n    \"ECMAScript 7\",\n    \"ECMAScript 2015\",\n    \"ECMAScript 2016\",\n    \"ECMAScript 2017\",\n    \"ECMAScript 2018\",\n    \"ECMAScript 2019\",\n    \"ECMAScript 2020\",\n    \"ECMAScript 2021\",\n    \"ECMAScript 2022\",\n    \"ECMAScript 2023\",\n    \"ECMAScript 2024\",\n    \"ECMAScript 2025\",\n    \"ECMAScript 2026\",\n    \"Map\",\n    \"Set\",\n    \"WeakMap\",\n    \"WeakSet\",\n    \"TypedArray\",\n    \"Promise\",\n    \"Observable\",\n    \"Symbol\",\n    \"Iterator\",\n    \"AsyncIterator\",\n    \"URL\",\n    \"URLSearchParams\",\n    \"queueMicrotask\",\n    \"setImmediate\",\n    \"structuredClone\",\n    \"polyfill\",\n    \"ponyfill\",\n    \"shim\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/zloirock/core-js.git\",\n    \"directory\": \"packages/core-js-bundle\"\n  },\n  \"homepage\": \"https://core-js.io\",\n  \"bugs\": {\n    \"url\": \"https://github.com/zloirock/core-js/issues\"\n  },\n  \"funding\": {\n    \"type\": \"opencollective\",\n    \"url\": \"https://opencollective.com/core-js\"\n  },\n  \"license\": \"MIT\",\n  \"author\": {\n    \"name\": \"Denis Pushkarev\",\n    \"email\": \"zloirock@zloirock.ru\",\n    \"url\": \"http://zloirock.ru\"\n  },\n  \"sideEffects\": true,\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"postinstall\": \"node -e \\\"try{require('./postinstall')}catch(e){}\\\"\"\n  }\n}\n"
  },
  {
    "path": "packages/core-js-compat/.npmignore",
    "content": "node_modules/\n/src/\n*.log\n.*\n"
  },
  {
    "path": "packages/core-js-compat/README.md",
    "content": "![logo](https://user-images.githubusercontent.com/2213682/146607186-8e13ddef-26a4-4ebf-befd-5aac9d77c090.png)\n\n<div align=\"center\">\n\n[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js-compat.svg)](https://www.npmjs.com/package/core-js-compat) [![core-js-compat downloads](https://img.shields.io/npm/dm/core-js-compat.svg?label=npm%20i%20core-js-compat)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18)\n\n</div>\n\n**I highly recommend reading this: [So, what's next?](https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md)**\n---\n\n[`core-js-compat` package](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat) contains data about the necessity of [`core-js`](https://core-js.io) modules and API for getting a list of required core-js modules by browserslist query.\n\n```js\nimport compat from 'core-js-compat';\n\nconst {\n  list,                       // array of required modules\n  targets,                    // object with targets for each module\n} = compat({\n  targets: '> 1%',            // browserslist query or object of minimum environment versions to support, see below\n  modules: [                  // optional list / filter of modules - regex, string or an array of them:\n    'core-js/actual',         // - an entry point\n    'esnext.array.unique-by', // - a module name (or just a start of a module name)\n    /^web\\./,                 // - regex that a module name must satisfy\n  ],\n  exclude: [                  // optional list / filter of modules to exclude, the signature is similar to `modules` option\n    'web.atob',\n  ],\n  version: '3.49',            // used `core-js` version, by default - the latest\n  inverse: false,             // inverse of the result - shows modules that are NOT required for the target environment\n});\n\nconsole.log(targets);\n/* =>\n{\n  'es.error.cause': { ios: '14.5-14.8' },\n  'es.aggregate-error.cause': { ios: '14.5-14.8' },\n  'es.array.at': { ios: '14.5-14.8' },\n  'es.array.find-last': { firefox: '100', ios: '14.5-14.8' },\n  'es.array.find-last-index': { firefox: '100', ios: '14.5-14.8' },\n  'es.array.includes': { firefox: '100' },\n  'es.array.push': { chrome: '100', edge: '101', ios: '14.5-14.8', safari: '15.4' },\n  'es.array.unshift': { ios: '14.5-14.8', safari: '15.4' },\n  'es.object.has-own': { ios: '14.5-14.8' },\n  'es.regexp.flags': { chrome: '100', edge: '101' },\n  'es.string.at-alternative': { ios: '14.5-14.8' },\n  'es.typed-array.at': { ios: '14.5-14.8' },\n  'es.typed-array.find-last': { firefox: '100', ios: '14.5-14.8' },\n  'es.typed-array.find-last-index': { firefox: '100', ios: '14.5-14.8' },\n  'esnext.array.group': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'esnext.array.group-by': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'esnext.array.group-by-to-map': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'esnext.array.group-to-map': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'esnext.array.to-reversed': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'esnext.array.to-sorted': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'esnext.array.to-spliced': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'esnext.array.unique-by': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'esnext.array.with': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'esnext.typed-array.to-reversed': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'esnext.typed-array.to-sorted': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'esnext.typed-array.to-spliced': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'esnext.typed-array.with': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'web.dom-exception.stack': { chrome: '100', edge: '101', ios: '14.5-14.8', safari: '15.4' },\n  'web.immediate': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' },\n  'web.structured-clone': { chrome: '100', edge: '101', firefox: '100', ios: '14.5-14.8', safari: '15.4' }\n}\n*/\n```\n\n### `targets` option\n`targets` could be [a `browserslist` query](https://github.com/browserslist/browserslist) or a targets object that specifies minimum environment versions to support:\n```js\n// browserslist query:\n'defaults, not IE 11, maintained node versions';\n// object (sure, all those fields optional):\n({\n  android: '4.0',         // Android WebView version\n  bun: '0.1.2',           // Bun version\n  chrome: '38',           // Chrome version\n  'chrome-android': '18', // Chrome for Android version\n  deno: '1.12',           // Deno version\n  edge: '13',             // Edge version\n  electron: '5.0',        // Electron framework version\n  firefox: '15',          // Firefox version\n  'firefox-android': '4', // Firefox for Android version\n  hermes: '0.11',         // Hermes version\n  ie: '8',                // Internet Explorer version\n  ios: '13.0',            // iOS Safari version\n  node: 'current',        // NodeJS version, you can use 'current' for set it to currently used\n  opera: '12',            // Opera version\n  'opera-android': '7',   // Opera for Android version\n  phantom: '1.9',         // PhantomJS headless browser version\n  quest: '5.0',           // Meta Quest Browser version\n  'react-native': '0.70', // React Native version (default Hermes engine)\n  rhino: '1.7.13',        // Rhino engine version\n  safari: '14.0',         // Safari version\n  samsung: '14.0',        // Samsung Internet version\n  /**\n   * true option set target to minimum supporting ES Modules versions of all browsers, ignoring `browsers` target.\n   * 'intersect' option intersects the `browsers` target and `browserslist`'s targets. The maximum version will be used.\n   */\n  esmodules: true | 'intersect',\n  browsers: '> 0.25%',    // Browserslist query or object with target browsers\n});\n```\n\n### Additional API:\n\n```js\n// equals of of the method from the example above\nrequire('core-js-compat/compat')({ targets, modules, version }); // => { list: Array<ModuleName>, targets: { [ModuleName]: { [EngineName]: EngineVersion } } }\n// or\nrequire('core-js-compat').compat({ targets, modules, version }); // => { list: Array<ModuleName>, targets: { [ModuleName]: { [EngineName]: EngineVersion } } }\n\n// full compat data:\nrequire('core-js-compat/data'); // => { [ModuleName]: { [EngineName]: EngineVersion } }\n// or\nrequire('core-js-compat').data; // => { [ModuleName]: { [EngineName]: EngineVersion } }\n\n// map of modules by `core-js` entry points:\nrequire('core-js-compat/entries'); // => { [EntryPoint]: Array<ModuleName> }\n// or\nrequire('core-js-compat').entries; // => { [EntryPoint]: Array<ModuleName> }\n\n// full list of modules:\nrequire('core-js-compat/modules'); // => Array<ModuleName>\n// or\nrequire('core-js-compat').modules; // => Array<ModuleName>\n\n// the subset of modules which available in the passed `core-js` version:\nrequire('core-js-compat/get-modules-list-for-target-version')('3.49'); // => Array<ModuleName>\n// or\nrequire('core-js-compat').getModulesListForTargetVersion('3.49'); // => Array<ModuleName>\n```\n\nIf you wanna help to improve this data, you could take a look at the related section of [`CONTRIBUTING.md`](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md#how-to-update-core-js-compat-data). The visualization of compatibility data and the browser tests runner is available [here](http://zloirock.github.io/core-js/master/compat/), the example:\n\n![compat-table](https://user-images.githubusercontent.com/2213682/217452234-ccdcfc5a-c7d3-40d1-ab3f-86902315b8c3.png)\n"
  },
  {
    "path": "packages/core-js-compat/compat.d.ts",
    "content": "import type { ModuleName, Target, TargetVersion } from \"./shared\";\n\ntype StringOrRegExp = string | RegExp;\n\ntype Modules = StringOrRegExp | readonly StringOrRegExp[];\n\ntype BrowserslistQuery = string | ReadonlyArray<string>;\n\ntype Environments = {\n  [target in Target]?: string | number;\n};\n\ntype Targets = Environments & {\n  browsers?: Environments | BrowserslistQuery,\n  esmodules?: boolean | 'intersect',\n};\n\ntype CompatOptions = {\n  /** entry / module / namespace / an array of them, by default - all `core-js` modules */\n  modules?: Modules,\n  /** a blacklist, entry / module / namespace / an array of them, by default - empty list */\n  exclude?: Modules,\n  /** optional browserslist or core-js-compat format query */\n  targets?: Targets | BrowserslistQuery,\n  /** used `core-js` version, by default the latest */\n  version?: string,\n  /** inverse of the result, shows modules that are NOT required for the target environment */\n  inverse?: boolean,\n  /**\n   * @deprecated use `modules` instead\n   */\n  filter?: Modules\n};\n\ntype CompatOutput = {\n  /** array of required modules */\n  list: ModuleName[],\n  /** object with targets for each module */\n  targets: {\n    [module: ModuleName]: {\n      [target in Target]?: TargetVersion\n    }\n  }\n}\n\ndeclare function compat(options?: CompatOptions): CompatOutput;\n\nexport = compat;\n"
  },
  {
    "path": "packages/core-js-compat/compat.js",
    "content": "'use strict';\nconst { compare, filterOutStabilizedProposals, has, intersection } = require('./helpers');\nconst data = require('./data');\nconst entries = require('./entries');\nconst getModulesListForTargetVersion = require('./get-modules-list-for-target-version');\nconst allModules = require('./modules');\nconst targetsParser = require('./targets-parser');\n\nfunction throwInvalidFilter(filter) {\n  throw new TypeError(`Specified invalid module name or pattern: ${ filter }`);\n}\n\nfunction atLeastSomeModules(modules, filter) {\n  if (!modules.length) throwInvalidFilter(filter);\n  return modules;\n}\n\nfunction getModules(filter) {\n  if (typeof filter == 'string') {\n    if (has(entries, filter)) return entries[filter];\n    return atLeastSomeModules(allModules.filter(it => it.startsWith(filter)), filter);\n  }\n  if (filter instanceof RegExp) return atLeastSomeModules(allModules.filter(it => filter.test(it)), filter);\n  throwInvalidFilter(filter);\n}\n\nfunction normalizeModules(option) {\n  // TODO: use `.flatMap` in core-js@4\n  return new Set(Array.isArray(option) ? [].concat(...option.map(getModules)) : getModules(option));\n}\n\nfunction checkModule(name, targets) {\n  const result = {\n    required: !targets,\n    targets: {},\n  };\n\n  if (!targets) return result;\n\n  const requirements = data[name];\n\n  for (const [engine, version] of targets) {\n    if (!has(requirements, engine) || compare(version, '<', requirements[engine])) {\n      result.required = true;\n      result.targets[engine] = version;\n    }\n  }\n\n  return result;\n}\n\nmodule.exports = function ({\n  filter = null, // TODO: Obsolete, remove from `core-js@4`\n  modules = null,\n  exclude = [],\n  targets = null,\n  version = null,\n  inverse = false,\n} = {}) {\n  if (modules === null || modules === undefined) modules = filter;\n  inverse = !!inverse;\n\n  const parsedTargets = targets ? targetsParser(targets) : null;\n\n  const result = {\n    list: [],\n    targets: {},\n  };\n\n  exclude = normalizeModules(exclude);\n\n  modules = modules ? [...normalizeModules(modules)] : allModules;\n\n  if (exclude.size) modules = modules.filter(it => !exclude.has(it));\n\n  modules = intersection(modules, version ? getModulesListForTargetVersion(version) : allModules);\n\n  if (!inverse) modules = filterOutStabilizedProposals(modules);\n\n  for (const key of modules) {\n    const check = checkModule(key, parsedTargets);\n\n    if (check.required ^ inverse) {\n      result.list.push(key);\n      result.targets[key] = check.targets;\n    }\n  }\n\n  return result;\n};\n"
  },
  {
    "path": "packages/core-js-compat/get-modules-list-for-target-version.d.ts",
    "content": "import type { ModuleName, TargetVersion } from \"./shared\";\n\ndeclare function getModulesListForTargetVersion(version: TargetVersion): readonly ModuleName[];\n\nexport = getModulesListForTargetVersion;\n"
  },
  {
    "path": "packages/core-js-compat/get-modules-list-for-target-version.js",
    "content": "'use strict';\nconst { compare, intersection, semver } = require('./helpers');\nconst modulesByVersions = require('./modules-by-versions');\nconst modules = require('./modules');\n\nmodule.exports = function (raw) {\n  const corejs = semver(raw);\n  if (corejs.major !== 3) {\n    throw new RangeError('This version of `core-js-compat` works only with `core-js@3`.');\n  }\n  const result = [];\n  for (const version of Object.keys(modulesByVersions)) {\n    if (compare(version, '<=', corejs)) {\n      result.push(...modulesByVersions[version]);\n    }\n  }\n  return intersection(result, modules);\n};\n"
  },
  {
    "path": "packages/core-js-compat/helpers.js",
    "content": "'use strict';\n// eslint-disable-next-line es/no-object-hasown -- safe\nconst has = Object.hasOwn || Function.call.bind({}.hasOwnProperty);\n\nconst VERSION_PATTERN = /(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?/;\n\nclass SemVer {\n  constructor(input) {\n    const match = VERSION_PATTERN.exec(input);\n    if (!match) throw new TypeError(`Invalid version: ${ input }`);\n    const [, $major, $minor, $patch] = match;\n    this.major = +$major;\n    this.minor = $minor ? +$minor : 0;\n    this.patch = $patch ? +$patch : 0;\n  }\n  toString() {\n    return `${ this.major }.${ this.minor }.${ this.patch }`;\n  }\n}\n\nfunction semver(input) {\n  return input instanceof SemVer ? input : new SemVer(input);\n}\n\nfunction compare($a, operator, $b) {\n  const a = semver($a);\n  const b = semver($b);\n  for (const component of ['major', 'minor', 'patch']) {\n    if (a[component] < b[component]) return operator === '<' || operator === '<=' || operator === '!=';\n    if (a[component] > b[component]) return operator === '>' || operator === '>=' || operator === '!=';\n  } return operator === '==' || operator === '<=' || operator === '>=';\n}\n\nfunction filterOutStabilizedProposals(modules) {\n  const modulesSet = new Set(modules);\n\n  for (const $module of modulesSet) {\n    if ($module.startsWith('esnext.') && modulesSet.has($module.replace(/^esnext\\./, 'es.'))) {\n      modulesSet.delete($module);\n    }\n  }\n\n  return [...modulesSet];\n}\n\nfunction intersection(list, order) {\n  const set = list instanceof Set ? list : new Set(list);\n  return order.filter(name => set.has(name));\n}\n\nfunction sortObjectByKey(object, fn) {\n  return Object.keys(object).sort(fn).reduce((memo, key) => {\n    memo[key] = object[key];\n    return memo;\n  }, {});\n}\n\nmodule.exports = {\n  compare,\n  filterOutStabilizedProposals,\n  has,\n  intersection,\n  semver,\n  sortObjectByKey,\n};\n"
  },
  {
    "path": "packages/core-js-compat/index.d.ts",
    "content": "import type compat from './compat'\nimport type getModulesListForTargetVersion from './get-modules-list-for-target-version';\nimport type { ModuleName, Target, TargetVersion } from './shared'\n\ntype CompatData = {\n  [module: ModuleName]: {\n    [target in Target]?: TargetVersion\n  }\n};\n\ndeclare const ExportedCompatObject: typeof compat & {\n  compat: typeof compat,\n\n  /** The subset of modules which available in the passed `core-js` version */\n  getModulesListForTargetVersion: typeof getModulesListForTargetVersion,\n\n  /** Full list compatibility data */\n  data: CompatData,\n\n  /** map of modules by `core-js` entry points */\n  entries: {[entry_point: string]: readonly ModuleName[]},\n\n  /** Full list of modules */\n  modules: readonly ModuleName[]\n}\n\nexport = ExportedCompatObject\n"
  },
  {
    "path": "packages/core-js-compat/index.js",
    "content": "'use strict';\nconst compat = require('./compat');\nconst data = require('./data');\nconst entries = require('./entries');\nconst getModulesListForTargetVersion = require('./get-modules-list-for-target-version');\nconst modules = require('./modules');\n\nmodule.exports = Object.assign(compat, {\n  compat,\n  data,\n  entries,\n  getModulesListForTargetVersion,\n  modules,\n});\n"
  },
  {
    "path": "packages/core-js-compat/package.json",
    "content": "{\n  \"name\": \"core-js-compat\",\n  \"version\": \"3.49.0\",\n  \"type\": \"commonjs\",\n  \"description\": \"core-js compat\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/zloirock/core-js.git\",\n    \"directory\": \"packages/core-js-compat\"\n  },\n  \"homepage\": \"https://core-js.io\",\n  \"bugs\": {\n    \"url\": \"https://github.com/zloirock/core-js/issues\"\n  },\n  \"funding\": {\n    \"type\": \"opencollective\",\n    \"url\": \"https://opencollective.com/core-js\"\n  },\n  \"license\": \"MIT\",\n  \"author\": {\n    \"name\": \"Denis Pushkarev\",\n    \"email\": \"zloirock@zloirock.ru\",\n    \"url\": \"http://zloirock.ru\"\n  },\n  \"sideEffects\": false,\n  \"main\": \"index.js\",\n  \"types\": \"index.d.ts\",\n  \"dependencies\": {\n    \"browserslist\": \"^4.28.1\"\n  }\n}\n"
  },
  {
    "path": "packages/core-js-compat/shared.d.ts",
    "content": "export type ModuleName = string;\n\nexport type Target =\n  | 'android'\n  | 'bun'\n  | 'chrome'\n  | 'chrome-android'\n  | 'deno'\n  | 'edge'\n  | 'electron'\n  | 'firefox'\n  | 'firefox-android'\n  | 'hermes'\n  | 'ie'\n  | 'ios'\n  | 'node'\n  | 'opera'\n  | 'opera-android'\n  | 'phantom'\n  | 'quest'\n  | 'react-native'\n  | 'rhino'\n  | 'safari'\n  | 'samsung'\n  /** `quest` alias */\n  | 'oculus'\n  /** `react-native` alias */\n  | 'react'\n  /** `react-native` alias */\n  | 'reactnative'\n  /** @deprecated use `opera-android` instead */\n  | 'opera_mobile';\n\nexport type TargetVersion = string;\n"
  },
  {
    "path": "packages/core-js-compat/src/data.mjs",
    "content": "export const data = {\n  // TODO: Remove this module from `core-js@4` since it's split to modules listed below\n  'es.symbol': {\n    chrome: '49',\n    edge: '15',\n    firefox: '51',\n    hermes: '0.1',\n    rhino: '1.7.15',\n    safari: '10.0',\n  },\n  'es.symbol.constructor': {\n    chrome: '41',\n    edge: '13',\n    firefox: '36',\n    hermes: '0.1',\n    rhino: '1.7.14',\n    safari: '9.0',\n  },\n  'es.symbol.description': {\n    chrome: '70',\n    firefox: '63',\n    rhino: '1.8.0',\n    safari: '12.1',\n  },\n  'es.symbol.async-dispose': {\n    bun: '1.0.23',\n    chrome: '127',\n    deno: '1.38',\n    firefox: '135',\n    // Node 20.4.0 add `Symbol.asyncDispose`, but with incorrect descriptor\n    // https://github.com/nodejs/node/issues/48699\n    node: '20.5.0',\n  },\n  'es.symbol.async-iterator': {\n    chrome: '63',\n    firefox: '55',\n    safari: '12.0',\n  },\n  'es.symbol.dispose': {\n    bun: '1.0.23',\n    chrome: '125',\n    deno: '1.38',\n    firefox: '135',\n    // Node 20.4.0 add `Symbol.dispose`, but with incorrect descriptor\n    // https://github.com/nodejs/node/issues/48699\n    node: '20.5.0',\n  },\n  'es.symbol.for': {\n    chrome: '41',\n    edge: '13',\n    firefox: '36',\n    hermes: '0.1',\n    rhino: '1.7.14',\n    safari: '9.0',\n  },\n  'es.symbol.has-instance': {\n    chrome: '50',\n    edge: '15',\n    firefox: '49',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.symbol.is-concat-spreadable': {\n    chrome: '48',\n    edge: '15',\n    firefox: '48',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.symbol.iterator': {\n    chrome: '41',\n    edge: '13',\n    firefox: '36',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.symbol.key-for': {\n    chrome: '41',\n    edge: '13',\n    firefox: '36',\n    hermes: '0.1',\n    rhino: '1.7.14',\n    safari: '9.0',\n  },\n  'es.symbol.match': {\n    chrome: '50',\n    firefox: '40',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.symbol.match-all': {\n    chrome: '73',\n    firefox: '67',\n    hermes: '0.6',\n    rhino: '1.8.0',\n    safari: '13',\n  },\n  'es.symbol.replace': {\n    chrome: '50',\n    firefox: '49',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.symbol.search': {\n    chrome: '50',\n    firefox: '49',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.symbol.species': {\n    chrome: '51',\n    edge: '13',\n    firefox: '41',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.symbol.split': {\n    chrome: '50',\n    firefox: '49',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.symbol.to-primitive': {\n    chrome: '47',\n    edge: '15',\n    firefox: '44',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.symbol.to-string-tag': {\n    chrome: '49',\n    edge: '15',\n    firefox: '51',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.symbol.unscopables': {\n    chrome: '41',\n    edge: '13',\n    firefox: '48',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.error.cause': {\n    chrome: '94',\n    firefox: '91',\n    hermes: '0.8',\n    rhino: '1.8.0',\n    safari: '15.0',\n  },\n  'es.error.is-error': {\n    // early WebKit implementation bug\n    // https://github.com/oven-sh/bun/issues/15821\n    // bun: '1.1.39',\n    chrome: '134',\n    firefox: '138',\n    // https://github.com/nodejs/node/issues/58134\n    node: '24.3',\n    rhino: '1.9.0',\n  },\n  'es.error.to-string': {\n    chrome: '33',\n    firefox: '11',\n    hermes: '0.1',\n    ie: '9',\n    rhino: '1.7.14',\n    safari: '8.0',\n  },\n  // TODO: Remove this module from `core-js@4` since it's replaced to module below\n  'es.aggregate-error': null,\n  'es.aggregate-error.constructor': {\n    chrome: '85',\n    firefox: '79',\n    hermes: '0.13',\n    'react-native': '0.72',\n    rhino: '1.8.0',\n    safari: '14.0',\n  },\n  'es.aggregate-error.cause': {\n    chrome: '94',\n    firefox: '91',\n    hermes: '0.13',\n    'react-native': '0.72',\n    rhino: '1.8.0',\n    safari: '15.0',\n  },\n  'es.suppressed-error.constructor': {\n    // Bun ~ 1.0.33 issues\n    // https://github.com/oven-sh/bun/issues/9282\n    // https://github.com/oven-sh/bun/issues/9283\n    bun: '1.2.15', // '1.0.23',\n    // reverted in https://issues.chromium.org/issues/42203506#comment25\n    // disabled again in 135 and re-enabled in 136\n    chrome: '136', // '134', // '133',\n    deno: '2.2.10',\n    // https://bugzilla.mozilla.org/show_bug.cgi?id=1971000\n    firefox: '141',\n  },\n  'es.array.at': {\n    chrome: '92',\n    firefox: '90',\n    hermes: '0.13',\n    'react-native': '0.71',\n    rhino: '1.7.15',\n    safari: '15.4',\n  },\n  'es.array.concat': {\n    chrome: '51',\n    edge: '15',\n    firefox: '48',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.array.copy-within': {\n    chrome: '45',\n    edge: '12',\n    firefox: '48',\n    rhino: '1.8.0',\n    safari: '9.0',\n  },\n  'es.array.every': {\n    chrome: '26',\n    firefox: '4',\n    hermes: '0.1',\n    ie: '9',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.array.fill': {\n    chrome: '45',\n    edge: '12',\n    firefox: '48',\n    rhino: '1.8.0',\n    safari: '9.0',\n  },\n  'es.array.filter': {\n    chrome: '51',\n    edge: '15',\n    firefox: '48',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.array.find': {\n    chrome: '45',\n    edge: '13',\n    firefox: '48',\n    rhino: '1.8.0',\n    safari: '9.0',\n  },\n  'es.array.find-index': {\n    chrome: '45',\n    edge: '13',\n    firefox: '48',\n    rhino: '1.8.0',\n    safari: '9.0',\n  },\n  'es.array.find-last': {\n    chrome: '97',\n    firefox: '104',\n    hermes: '0.11',\n    rhino: '1.8.0',\n    safari: '15.4',\n  },\n  'es.array.find-last-index': {\n    chrome: '97',\n    firefox: '104',\n    hermes: '0.11',\n    rhino: '1.8.0',\n    safari: '15.4',\n  },\n  'es.array.flat': {\n    chrome: '69',\n    firefox: '62',\n    hermes: '0.4',\n    rhino: '1.7.15',\n    safari: '12.0',\n  },\n  'es.array.flat-map': {\n    chrome: '69',\n    firefox: '62',\n    hermes: '0.4',\n    rhino: '1.7.15',\n    safari: '12.0',\n  },\n  'es.array.for-each': {\n    chrome: '26',\n    firefox: '4',\n    hermes: '0.1',\n    ie: '9',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.array.from': {\n    chrome: '51',\n    edge: '15',\n    firefox: '53',\n    hermes: '0.13',\n    'react-native': '0.73',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.array.includes': {\n    chrome: '53',\n    edge: '14',\n    // FF99-101 broken on sparse arrays\n    firefox: '102', // '48',\n    rhino: '1.8.0',\n    // Safari broken on sparse arrays with fromIndex\n    // https://bugs.webkit.org/show_bug.cgi?id=309342\n    // safari: '10.0',\n  },\n  'es.array.index-of': {\n    chrome: '51',\n    firefox: '47',\n    hermes: '0.1',\n    ie: '9',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.array.is-array': {\n    chrome: '5',\n    firefox: '4',\n    hermes: '0.1',\n    ie: '9',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '4.0',\n  },\n  'es.array.iterator': {\n    chrome: '66',\n    edge: '15',\n    firefox: '60',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.array.join': {\n    chrome: '26',\n    edge: '13',\n    firefox: '4',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.array.last-index-of': {\n    chrome: '51',\n    firefox: '47',\n    hermes: '0.1',\n    ie: '9',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.array.map': {\n    chrome: '51',\n    edge: '13',\n    firefox: '50',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.array.of': {\n    chrome: '45',\n    edge: '13',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.array.push': {\n    // bug with setting length\n    chrome: '122', // '103',\n    // edge: '15',\n    firefox: '55',\n    hermes: '0.2',\n    // the same to Chrome bug fixed only in Safari 16\n    safari: '16.0',\n  },\n  'es.array.reduce': {\n    chrome: '83', // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\n    firefox: '4',\n    hermes: '0.1',\n    ie: '9',\n    node: '6.0', // ^^^\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.array.reduce-right': {\n    chrome: '83', // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\n    firefox: '4',\n    hermes: '0.1',\n    ie: '9',\n    node: '6.0', // ^^^\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.array.reverse': {\n    chrome: '1',\n    firefox: '1',\n    hermes: '0.1',\n    ie: '5.5',\n    opera: '10.50',\n    rhino: '1.7.13',\n    // safari 12.0 has a serious bug\n    safari: '12.0.2',\n  },\n  'es.array.slice': {\n    chrome: '51',\n    edge: '13',\n    firefox: '48',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.array.some': {\n    chrome: '26',\n    firefox: '4',\n    hermes: '0.1',\n    ie: '9',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.array.sort': {\n    chrome: '70',\n    firefox: '4',\n    hermes: '0.10',\n    rhino: '1.8.0',\n    safari: '12.0',\n  },\n  'es.array.species': {\n    chrome: '51',\n    edge: '13',\n    firefox: '48',\n    rhino: '1.7.15',\n    safari: '10.0',\n  },\n  'es.array.splice': {\n    chrome: '51',\n    edge: '13',\n    firefox: '49',\n    safari: '10.0',\n  },\n  'es.array.to-reversed': {\n    chrome: '110',\n    deno: '1.27',\n    firefox: '115',\n    hermes: '0.13',\n    'react-native': '0.74',\n    rhino: '1.8.0',\n    safari: '16.0',\n  },\n  'es.array.to-sorted': {\n    chrome: '110',\n    deno: '1.27',\n    firefox: '115',\n    rhino: '1.8.0',\n    safari: '16.0',\n  },\n  'es.array.to-spliced': {\n    chrome: '110',\n    deno: '1.27',\n    firefox: '115',\n    hermes: '0.13',\n    'react-native': '0.74',\n    rhino: '1.8.0',\n    safari: '16.0',\n  },\n  'es.array.unscopables.flat': {\n    chrome: '73',\n    firefox: '67',\n    rhino: '1.8.0',\n    safari: '13',\n  },\n  'es.array.unscopables.flat-map': {\n    chrome: '73',\n    firefox: '67',\n    rhino: '1.8.0',\n    safari: '13',\n  },\n  'es.array.unshift': {\n    chrome: '71',\n    firefox: '23',\n    hermes: '0.1',\n    ie: '9',\n    // bug with setting length fixed only in Safari 16\n    safari: '16.0',\n  },\n  'es.array.with': {\n    chrome: '110',\n    deno: '1.27',\n    // Incorrect exception thrown when index coercion fails\n    firefox: '140', // '115',\n    hermes: '0.13',\n    'react-native': '0.74',\n    rhino: '1.8.0',\n    safari: '16.0',\n  },\n  'es.array-buffer.constructor': {\n    chrome: '28',\n    edge: '14',\n    firefox: '44',\n    hermes: '0.1',\n    rhino: '1.8.0',\n    safari: '12.0',\n  },\n  'es.array-buffer.is-view': {\n    chrome: '32',\n    firefox: '29',\n    hermes: '0.1',\n    ie: '11',\n    rhino: '1.9.0',\n    safari: '7.1',\n  },\n  'es.array-buffer.slice': {\n    chrome: '31',\n    firefox: '46',\n    hermes: '0.1',\n    ie: '11',\n    rhino: '1.7.13',\n    safari: '12.1',\n  },\n  // TODO: Remove this module from `core-js@4` since it's replaced to module below\n  'es.data-view': null,\n  'es.data-view.constructor': {\n    chrome: '26',\n    firefox: '15',\n    hermes: '0.1',\n    ie: '10',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.data-view.get-float16': {\n    bun: '1.1.23',\n    chrome: '135',\n    deno: '1.43',\n    firefox: '129',\n    safari: '18.2',\n  },\n  'es.data-view.set-float16': {\n    bun: '1.1.23',\n    chrome: '135',\n    deno: '1.43',\n    firefox: '129',\n    safari: '18.2',\n  },\n  'es.array-buffer.detached': {\n    bun: '1.0.19',\n    chrome: '114',\n    firefox: '122',\n    rhino: '1.9.0',\n    safari: '17.4',\n  },\n  'es.array-buffer.transfer': {\n    bun: '1.0.19',\n    chrome: '114',\n    firefox: '122',\n    rhino: '1.9.0',\n    safari: '17.4',\n  },\n  'es.array-buffer.transfer-to-fixed-length': {\n    bun: '1.0.19',\n    chrome: '114',\n    firefox: '122',\n    rhino: '1.9.0',\n    safari: '17.4',\n  },\n  'es.date.get-year': {\n    chrome: '1',\n    firefox: '1',\n    hermes: '0.1',\n    ie: '9',\n    opera: '3',\n    rhino: '1.7.13',\n    safari: '1',\n  },\n  // TODO: Remove from `core-js@4`\n  'es.date.now': {\n    chrome: '5',\n    firefox: '2',\n    hermes: '0.1',\n    ie: '9',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '4.0',\n  },\n  'es.date.set-year': {\n    chrome: '1',\n    firefox: '1',\n    hermes: '0.1',\n    ie: '3',\n    opera: '3',\n    rhino: '1.7.13',\n    safari: '1',\n  },\n  'es.date.to-gmt-string': {\n    chrome: '1',\n    firefox: '1',\n    hermes: '0.1',\n    ie: '3',\n    opera: '3',\n    rhino: '1.7.13',\n    safari: '1',\n  },\n  'es.date.to-iso-string': {\n    chrome: '26',\n    firefox: '7',\n    hermes: '0.1',\n    ie: '9',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.date.to-json': {\n    chrome: '26',\n    firefox: '4',\n    hermes: '0.1',\n    ie: '9',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.date.to-primitive': {\n    chrome: '47',\n    edge: '15',\n    firefox: '44',\n    hermes: '0.1',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  // TODO: Remove from `core-js@4`\n  'es.date.to-string': {\n    chrome: '5',\n    firefox: '2',\n    hermes: '0.1',\n    ie: '9',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '3.1',\n  },\n  'es.disposable-stack.constructor': {\n    bun: '1.3.0',\n    // reverted in https://issues.chromium.org/issues/42203506#comment25\n    // disabled again in 135 and re-enabled in 136\n    chrome: '136', // '134', // '133',\n    deno: '2.2.10',\n    firefox: '141',\n  },\n  'es.escape': {\n    chrome: '1',\n    firefox: '1',\n    hermes: '0.1',\n    ie: '3',\n    opera: '3',\n    rhino: '1.7.13',\n    safari: '1',\n  },\n  'es.function.bind': {\n    chrome: '7',\n    firefox: '4',\n    hermes: '0.1',\n    ie: '9',\n    opera: '12',\n    rhino: '1.7.13',\n    safari: '5.1',\n  },\n  'es.function.has-instance': {\n    chrome: '51',\n    edge: '15',\n    firefox: '50',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.function.name': {\n    chrome: '5',\n    edge: '12',\n    firefox: '2',\n    hermes: '0.1',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '4.0',\n  },\n  'es.global-this': {\n    chrome: '71',\n    firefox: '65',\n    hermes: '0.2',\n    rhino: '1.7.14',\n    safari: '12.1',\n  },\n  'es.iterator.constructor': {\n    bun: '1.1.31',\n    chrome: '122',\n    deno: '1.38.1',\n    firefox: '131',\n    safari: '18.4',\n  },\n  'es.iterator.concat': {\n    bun: '1.3.7',\n    chrome: '146',\n    firefox: '147',\n    safari: '26.4',\n  },\n  'es.iterator.dispose': {\n    bun: '1.3.0',\n    // reverted in https://issues.chromium.org/issues/42203506#comment25\n    // disabled again in 135 and re-enabled in 136\n    chrome: '136', // '134', // '133',\n    deno: '2.2.10',\n    firefox: '135',\n  },\n  'es.iterator.drop': {\n    // with changes related to the new iteration closing approach on early error\n    // https://github.com/tc39/ecma262/pull/3467\n    // https://bugs.webkit.org/show_bug.cgi?id=291195\n    bun: '1.2.11', // '1.2.4', // '1.1.31',\n    chrome: '135', // '122',\n    deno: '2.2.5', // '1.38.1',\n    firefox: '141', // '131',\n    safari: '26.0', // 18.4',\n  },\n  'es.iterator.every': {\n    // with changes related to the new iteration closing approach on early error\n    // https://github.com/tc39/ecma262/pull/3467\n    bun: '1.2.4', // '1.1.31',\n    chrome: '135', // '122',\n    deno: '2.2.5', // '1.38.1',\n    firefox: '141', // '131',\n    safari: '26.0', // 18.4',\n  },\n  'es.iterator.filter': {\n    // with changes related to the new iteration closing approach on early error\n    // https://github.com/tc39/ecma262/pull/3467\n    bun: '1.2.4', // '1.1.31',\n    chrome: '135', // '122',\n    deno: '2.2.5', // '1.38.1',\n    firefox: '141', // '131',\n    safari: '26.0', // 18.4',\n  },\n  'es.iterator.find': {\n    // with changes related to the new iteration closing approach on early error\n    // https://github.com/tc39/ecma262/pull/3467\n    bun: '1.2.4', // '1.1.31',\n    chrome: '135', // '122',\n    deno: '2.2.5', // '1.38.1',\n    firefox: '141', // '131',\n    safari: '26.0', // 18.4',\n  },\n  'es.iterator.flat-map': {\n    // with changes related to the new iteration closing approach on early error\n    // https://github.com/tc39/ecma262/pull/3467\n    // throws on iterator without `return` method\n    // https://bugs.webkit.org/show_bug.cgi?id=297532\n    bun: '1.2.21', // '1.2.4', '1.1.31'\n    chrome: '135', // '122',\n    deno: '2.2.5', // '1.38.1',\n    firefox: '141', // '131',\n    safari: '26.2', // '26.0', '18.4\n  },\n  'es.iterator.for-each': {\n    // with changes related to the new iteration closing approach on early error\n    // https://github.com/tc39/ecma262/pull/3467\n    bun: '1.2.4', // '1.1.31',\n    chrome: '135', // '122',\n    deno: '2.2.5', // '1.38.1',\n    firefox: '141', // '131',\n    safari: '26.0', // 18.4',\n  },\n  'es.iterator.from': {\n    // Because of a bug in wrapper validation https://bugs.webkit.org/show_bug.cgi?id=288714\n    bun: '1.2.5',  // '1.1.31',\n    chrome: '122',\n    deno: '1.38.1',\n    firefox: '131',\n    // Because of a bug in wrapper validation https://bugs.webkit.org/show_bug.cgi?id=288714\n    safari: '26.0', // 18.4',\n  },\n  'es.iterator.map': {\n    // with changes related to the new iteration closing approach on early error\n    // https://github.com/tc39/ecma262/pull/3467\n    bun: '1.2.4', // '1.1.31',\n    chrome: '135', // '122',\n    deno: '2.2.5', // '1.38.1',\n    firefox: '141', // '131',\n    safari: '26.0', // 18.4',\n  },\n  'es.iterator.reduce': {\n    // with changes related to the new iteration closing approach on early error\n    // https://github.com/tc39/ecma262/pull/3467\n    // due to bug that causes a throw when the initial parameter is `undefined`\n    // https://bugs.webkit.org/show_bug.cgi?id=291651\n    bun: '1.2.11', // '1.2.4', // '1.1.31',\n    chrome: '135', // '122',\n    deno: '2.2.5', // '1.38.1',\n    firefox: '141', // '131',\n    safari: '26.0', // 18.4',\n  },\n  'es.iterator.some': {\n    // with changes related to the new iteration closing approach on early error\n    // https://github.com/tc39/ecma262/pull/3467\n    bun: '1.2.4', // '1.1.31',\n    chrome: '135', // '122',\n    deno: '2.2.5', // '1.38.1',\n    firefox: '141', // '131',\n    safari: '26.0', // 18.4',\n  },\n  'es.iterator.take': {\n    // with changes related to the new iteration closing approach on early error\n    // https://github.com/tc39/ecma262/pull/3467\n    // https://bugs.webkit.org/show_bug.cgi?id=291195\n    bun: '1.2.11', // '1.2.4', // '1.1.31',\n    chrome: '135', // '122',\n    deno: '2.2.5', // '1.38.1',\n    firefox: '141', // '131',\n    safari: '26.0', // 18.4',\n  },\n  'es.iterator.to-array': {\n    bun: '1.1.31',\n    chrome: '122',\n    deno: '1.38.1',\n    firefox: '131',\n    safari: '18.4',\n  },\n  'es.json.is-raw-json': {\n    bun: '1.1.43',\n    chrome: '114',\n    // enabled in 132 and disabled in 133 because of regression, https://bugzilla.mozilla.org/show_bug.cgi?id=1925334\n    firefox: '135', // '132',\n    safari: '18.4',\n  },\n  'es.json.parse': {\n    bun: '1.1.43',\n    chrome: '114',\n    // enabled in 132 and disabled in 133 because of regression, https://bugzilla.mozilla.org/show_bug.cgi?id=1925334\n    firefox: '135', // '132',\n    safari: '18.4',\n  },\n  'es.json.raw-json': {\n    bun: '1.1.43',\n    chrome: '114',\n    // enabled in 132 and disabled in 133 because of regression, https://bugzilla.mozilla.org/show_bug.cgi?id=1925334\n    firefox: '135', // '132',\n    safari: '18.4',\n  },\n  'es.json.stringify': {\n    bun: '1.1.43',\n    chrome: '114', // '72',\n    firefox: '135', // '132', '64',\n    // hermes: '0.13',\n    // 'react-native': '0.72',\n    // rhino: '1.8.0',\n    safari: '18.4', // '12.1',\n  },\n  'es.json.to-string-tag': {\n    chrome: '50',\n    edge: '15',\n    firefox: '51',\n    hermes: '0.1',\n    rhino: '1.7.15',\n    safari: '10.0',\n  },\n  // TODO: Remove this module from `core-js@4` since it's replaced to module below\n  'es.map': null,\n  'es.map.constructor': {\n    chrome: '51',\n    edge: '15',\n    firefox: '53',\n    hermes: '0.13',\n    'react-native': '0.73',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.map.group-by': {\n    // https://bugs.webkit.org/show_bug.cgi?id=271524\n    bun: '1.1.2', // '1.0.19',\n    chrome: '117',\n    firefox: '119',\n    rhino: '1.8.0',\n    // https://bugs.webkit.org/show_bug.cgi?id=271524\n    safari: '18.0', // '17.4',\n  },\n  'es.map.get-or-insert': {\n    bun: '1.2.20',\n    chrome: '145',\n    firefox: '144',\n    safari: '26.2',\n  },\n  'es.map.get-or-insert-computed': {\n    bun: '1.2.20',\n    chrome: '145',\n    firefox: '144',\n    safari: '26.2',\n  },\n  'es.math.acosh': {\n    chrome: '54',\n    edge: '13',\n    firefox: '25',\n    hermes: '0.1',\n    safari: '7.1',\n  },\n  'es.math.asinh': {\n    chrome: '38',\n    edge: '13',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.math.atanh': {\n    chrome: '38',\n    edge: '13',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.math.cbrt': {\n    chrome: '38',\n    edge: '12',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.math.clz32': {\n    chrome: '38',\n    edge: '12',\n    firefox: '31',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.math.cosh': {\n    chrome: '39',\n    edge: '13',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.math.expm1': {\n    chrome: '39',\n    edge: '13',\n    firefox: '46',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.math.fround': {\n    chrome: '38',\n    edge: '12',\n    firefox: '26',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.math.f16round': {\n    bun: '1.1.23',\n    chrome: '135',\n    deno: '1.43',\n    firefox: '129',\n    rhino: '1.9.0',\n    safari: '18.2',\n  },\n  'es.math.hypot': {\n    // https://bugs.chromium.org/p/v8/issues/detail?id=9546\n    chrome: '78', // '38',\n    edge: '12',\n    firefox: '27',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.math.imul': {\n    chrome: '28',\n    edge: '13',\n    firefox: '20',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.math.log10': {\n    chrome: '38',\n    edge: '12',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.math.log1p': {\n    chrome: '38',\n    edge: '12',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.math.log2': {\n    chrome: '38',\n    edge: '12',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.math.sign': {\n    chrome: '38',\n    edge: '12',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.math.sinh': {\n    chrome: '39',\n    edge: '13',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.math.sum-precise': {\n    bun: '1.2.18',\n    chrome: '147',\n    firefox: '137',\n    safari: '26.2',\n  },\n  'es.math.tanh': {\n    chrome: '38',\n    edge: '12',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.math.to-string-tag': {\n    chrome: '50',\n    edge: '15',\n    firefox: '51',\n    hermes: '0.1',\n    rhino: '1.7.15',\n    safari: '10.0',\n  },\n  'es.math.trunc': {\n    chrome: '38',\n    edge: '12',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.number.constructor': {\n    chrome: '41',\n    edge: '13',\n    firefox: '46',\n    hermes: '0.5',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.number.epsilon': {\n    chrome: '34',\n    edge: '12',\n    firefox: '25',\n    hermes: '0.1',\n    rhino: '1.7.14',\n    safari: '9.0',\n  },\n  'es.number.is-finite': {\n    android: '4.1',\n    chrome: '19',\n    edge: '12',\n    firefox: '16',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.number.is-integer': {\n    chrome: '34',\n    edge: '12',\n    firefox: '16',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.number.is-nan': {\n    android: '4.1',\n    chrome: '19',\n    edge: '12',\n    firefox: '15',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.number.is-safe-integer': {\n    chrome: '34',\n    edge: '12',\n    firefox: '32',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.number.max-safe-integer': {\n    chrome: '34',\n    edge: '12',\n    firefox: '31',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.number.min-safe-integer': {\n    chrome: '34',\n    edge: '12',\n    firefox: '31',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.number.parse-float': {\n    chrome: '35',\n    firefox: '39',\n    hermes: '0.1',\n    rhino: '1.7.14',\n    safari: '11.0',\n  },\n  'es.number.parse-int': {\n    chrome: '35',\n    firefox: '39',\n    hermes: '0.1',\n    rhino: '1.7.14',\n    safari: '9.0',\n  },\n  'es.number.to-exponential': {\n    chrome: '51',\n    edge: '18',\n    firefox: '87',\n    hermes: '0.1',\n    rhino: '1.7.14',\n    safari: '11',\n  },\n  'es.number.to-fixed': {\n    chrome: '26',\n    firefox: '4',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.number.to-precision': {\n    chrome: '26',\n    firefox: '4',\n    hermes: '0.1',\n    ie: '8',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.object.assign': {\n    chrome: '49',\n    // order of operations bug\n    // edge: '13',\n    firefox: '36',\n    hermes: '0.4',\n    rhino: '1.9.0',\n    safari: '9.0',\n  },\n  // TODO: Remove from `core-js@4`\n  'es.object.create': {\n    chrome: '5',\n    firefox: '4',\n    hermes: '0.1',\n    ie: '9',\n    opera: '12',\n    rhino: '1.7.13',\n    safari: '4.0',\n  },\n  'es.object.define-getter': {\n    chrome: '62',\n    edge: '16',\n    firefox: '48',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.object.define-properties': {\n    chrome: '37',\n    firefox: '4',\n    hermes: '0.1',\n    ie: '9',\n    opera: '12',\n    rhino: '1.7.13',\n    safari: '5.1',\n  },\n  'es.object.define-property': {\n    chrome: '37',\n    firefox: '4',\n    hermes: '0.1',\n    ie: '9',\n    opera: '12',\n    rhino: '1.7.13',\n    safari: '5.1',\n  },\n  'es.object.define-setter': {\n    chrome: '62',\n    edge: '16',\n    firefox: '48',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.object.entries': {\n    chrome: '54',\n    edge: '14',\n    firefox: '47',\n    hermes: '0.1',\n    rhino: '1.7.14',\n    safari: '10.1',\n  },\n  'es.object.freeze': {\n    chrome: '44',\n    edge: '13',\n    firefox: '35',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.object.from-entries': {\n    chrome: '73',\n    firefox: '63',\n    hermes: '0.4',\n    rhino: '1.7.14',\n    safari: '12.1',\n  },\n  'es.object.get-own-property-descriptor': {\n    chrome: '44',\n    edge: '13',\n    firefox: '35',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.object.get-own-property-descriptors': {\n    chrome: '54',\n    edge: '15',\n    firefox: '50',\n    hermes: '0.6',\n    rhino: '1.7.15',\n    safari: '10.0',\n  },\n  'es.object.get-own-property-names': {\n    chrome: '40',\n    edge: '13',\n    firefox: '34',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.object.get-own-property-symbols': {\n    chrome: '41',\n    edge: '13',\n    firefox: '36',\n    hermes: '0.1',\n    rhino: '1.7.14',\n    safari: '9.0',\n  },\n  'es.object.get-prototype-of': {\n    chrome: '44',\n    edge: '13',\n    firefox: '35',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.object.group-by': {\n    // https://bugs.webkit.org/show_bug.cgi?id=271524\n    bun: '1.1.2', // '1.0.19',\n    chrome: '117',\n    firefox: '119',\n    rhino: '1.8.0',\n    // https://bugs.webkit.org/show_bug.cgi?id=271524\n    safari: '18.0', // '17.4',\n  },\n  'es.object.has-own': {\n    chrome: '93',\n    firefox: '92',\n    hermes: '0.10',\n    rhino: '1.7.15',\n    safari: '15.4',\n  },\n  'es.object.is': {\n    android: '4.1',\n    chrome: '19',\n    edge: '12',\n    firefox: '22',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.object.is-extensible': {\n    chrome: '44',\n    edge: '13',\n    firefox: '35',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.object.is-frozen': {\n    chrome: '44',\n    edge: '13',\n    firefox: '35',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.object.is-sealed': {\n    chrome: '44',\n    edge: '13',\n    firefox: '35',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.object.keys': {\n    chrome: '40',\n    edge: '13',\n    firefox: '35',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.object.lookup-getter': {\n    chrome: '62',\n    edge: '16',\n    firefox: '48',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.object.lookup-setter': {\n    chrome: '62',\n    edge: '16',\n    firefox: '48',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.object.prevent-extensions': {\n    chrome: '44',\n    edge: '13',\n    firefox: '35',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.object.proto': {\n    chrome: '5',\n    deno: false,\n    firefox: '2',\n    hermes: '0.1',\n    ie: '11',\n    opera: '10.50',\n    rhino: '1.9.0',\n    safari: '3.1',\n  },\n  'es.object.seal': {\n    chrome: '44',\n    edge: '13',\n    firefox: '35',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.object.set-prototype-of': {\n    chrome: '34',\n    firefox: '31',\n    hermes: '0.1',\n    ie: '11',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.object.to-string': {\n    chrome: '49',\n    edge: '15',\n    firefox: '51',\n    hermes: '0.1',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.object.values': {\n    chrome: '54',\n    edge: '14',\n    firefox: '47',\n    hermes: '0.1',\n    rhino: '1.7.14',\n    safari: '10.1',\n  },\n  'es.parse-float': {\n    chrome: '35',\n    edge: '79',\n    firefox: '8',\n    hermes: '0.1',\n    ie: '8',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  'es.parse-int': {\n    chrome: '35',\n    edge: '79',\n    firefox: '21',\n    hermes: '0.1',\n    ie: '9',\n    rhino: '1.7.13',\n    safari: '7.1',\n  },\n  // TODO: Remove this module from `core-js@4` since it's split to modules listed below\n  'es.promise': {\n    // V8 6.6 has a serious bug\n    chrome: '67', // '51',\n    // `unhandledrejection` event support was added in Deno@1.24\n    deno: '1.24',\n    firefox: '69',\n    rhino: '1.7.14',\n    safari: '11.0',\n  },\n  'es.promise.constructor': {\n    // V8 6.6 has a serious bug\n    chrome: '67', // '51',\n    // `unhandledrejection` event support was added in Deno@1.24\n    deno: '1.24',\n    firefox: '69',\n    rhino: '1.7.14',\n    safari: '11.0',\n  },\n  'es.promise.all': {\n    chrome: '67',\n    // `unhandledrejection` event support was added in Deno@1.24\n    deno: '1.24',\n    firefox: '69',\n    rhino: '1.7.14',\n    safari: '11.0',\n  },\n  'es.promise.all-settled': {\n    chrome: '76',\n    // `unhandledrejection` event support was added in Deno@1.24\n    deno: '1.24',\n    firefox: '71',\n    rhino: '1.7.15',\n    safari: '13',\n  },\n  'es.promise.any': {\n    chrome: '85',\n    // `unhandledrejection` event support was added in Deno@1.24\n    deno: '1.24',\n    firefox: '79',\n    rhino: '1.8.0',\n    safari: '14.0',\n  },\n  'es.promise.catch': {\n    chrome: '67',\n    // `unhandledrejection` event support was added in Deno@1.24\n    deno: '1.24',\n    firefox: '69',\n    rhino: '1.7.14',\n    safari: '11.0',\n  },\n  'es.promise.finally': {\n    // V8 6.6 has a serious bug\n    chrome: '67', // '63',\n    // `unhandledrejection` event support was added in Deno@1.24\n    deno: '1.24',\n    firefox: '69',\n    // Previous versions are non-generic\n    // https://bugs.webkit.org/show_bug.cgi?id=200788\n    ios: '13.2.3', // need to clarify the patch release, >13.0.0 && <= 13.2.3\n    rhino: '1.7.14',\n    safari: '13.0.3', // need to clarify the patch release, >13.0.0 && <= 13.0.3\n  },\n  'es.promise.race': {\n    chrome: '67',\n    // `unhandledrejection` event support was added in Deno@1.24\n    deno: '1.24',\n    firefox: '69',\n    rhino: '1.7.14',\n    safari: '11.0',\n  },\n  'es.promise.reject': {\n    chrome: '67',\n    // `unhandledrejection` event support was added in Deno@1.24\n    deno: '1.24',\n    firefox: '69',\n    rhino: '1.7.14',\n    safari: '11.0',\n  },\n  'es.promise.resolve': {\n    chrome: '67',\n    // `unhandledrejection` event support was added in Deno@1.24\n    deno: '1.24',\n    firefox: '69',\n    rhino: '1.7.14',\n    safari: '11.0',\n  },\n  'es.promise.try': {\n    bun: '1.1.22',\n    chrome: '128',\n    firefox: '134',\n    rhino: '1.9.0',\n    safari: '18.2',\n  },\n  'es.promise.with-resolvers': {\n    bun: '0.7.1',\n    chrome: '119',\n    firefox: '121',\n    safari: '17.4',\n  },\n  'es.array.from-async': { // <- `Array#values` and `Promise` dependencies should be loaded before\n    // https://bugs.webkit.org/show_bug.cgi?id=271703\n    bun: '1.1.2', // '0.3.0',\n    chrome: '121',\n    deno: '1.38',\n    firefox: '115',\n    rhino: '1.9.0',\n    // https://bugs.webkit.org/show_bug.cgi?id=271703\n    safari: '18.0', // '16.4',\n  },\n  'es.async-disposable-stack.constructor': { // `Promise` dependency should be loaded before\n    bun: '1.3.0',\n    // added in 133, reverted in 134, https://issues.chromium.org/issues/42203506#comment25\n    // https://github.com/tc39/proposal-explicit-resource-management/issues/256, fixed in early 135\n    chrome: '136',\n    firefox: '141',\n  },\n  'es.async-iterator.async-dispose': { // `Promise` dependency should be loaded before\n  },\n  'es.reflect.apply': {\n    chrome: '49',\n    edge: '15',\n    firefox: '42',\n    hermes: '0.7',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.reflect.construct': {\n    chrome: '49',\n    edge: '15',\n    firefox: '44',\n    hermes: '0.7',\n    safari: '10.0',\n  },\n  'es.reflect.define-property': {\n    chrome: '49',\n    edge: '13',\n    firefox: '42',\n    hermes: '0.7',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.reflect.delete-property': {\n    chrome: '49',\n    edge: '12',\n    firefox: '42',\n    hermes: '0.7',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.reflect.get': {\n    chrome: '49',\n    edge: '12',\n    firefox: '42',\n    hermes: '0.7',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.reflect.get-own-property-descriptor': {\n    chrome: '49',\n    edge: '12',\n    firefox: '42',\n    hermes: '0.7',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.reflect.get-prototype-of': {\n    chrome: '49',\n    edge: '12',\n    firefox: '42',\n    hermes: '0.7',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.reflect.has': {\n    chrome: '49',\n    edge: '12',\n    firefox: '42',\n    hermes: '0.7',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.reflect.is-extensible': {\n    chrome: '49',\n    edge: '12',\n    firefox: '42',\n    hermes: '0.7',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.reflect.own-keys': {\n    chrome: '49',\n    edge: '12',\n    firefox: '42',\n    hermes: '0.7',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.reflect.prevent-extensions': {\n    chrome: '49',\n    edge: '12',\n    firefox: '42',\n    hermes: '0.7',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.reflect.set': {\n    // MS Edge 17-18 Reflect.set allows setting the property to object\n    // with non-writable property on the prototype\n    // edge: '12',\n    chrome: '49',\n    firefox: '42',\n    hermes: '0.7',\n    safari: '10.0',\n  },\n  'es.reflect.set-prototype-of': {\n    chrome: '49',\n    edge: '12',\n    firefox: '42',\n    hermes: '0.7',\n    rhino: '1.8.0',\n    safari: '10.0',\n  },\n  'es.reflect.to-string-tag': {\n    chrome: '86',\n    firefox: '82',\n    hermes: '0.7',\n    rhino: '1.8.0',\n    safari: '14.0',\n  },\n  'es.regexp.constructor': {\n    chrome: '64',\n    firefox: '78',\n    safari: '11.1',\n  },\n  'es.regexp.escape': {\n    bun: '1.1.22',\n    chrome: '136',\n    firefox: '134',\n    safari: '18.2',\n  },\n  'es.regexp.dot-all': {\n    chrome: '62',\n    firefox: '78',\n    hermes: '0.4',\n    rhino: '1.7.15',\n    safari: '11.1',\n  },\n  'es.regexp.exec': {\n    chrome: '64',\n    firefox: '78',\n    hermes: '0.13',\n    'react-native': '0.71',\n    rhino: '1.9.0',\n    safari: '11.1',\n  },\n  'es.regexp.flags': {\n    // modern V8 has a bug with the order getting of flags\n    chrome: '111', // '62',\n    firefox: '78',\n    hermes: '0.4',\n    safari: '11.1',\n  },\n  'es.regexp.sticky': {\n    chrome: '49',\n    edge: '13',\n    firefox: '3',\n    hermes: '0.3',\n    rhino: '1.7.15',\n    safari: '10.0',\n  },\n  'es.regexp.test': {\n    chrome: '51',\n    firefox: '46',\n    safari: '10.0',\n  },\n  'es.regexp.to-string': {\n    chrome: '50',\n    firefox: '46',\n    hermes: '0.1',\n    rhino: '1.7.15',\n    safari: '10.0',\n  },\n  // TODO: Remove this module from `core-js@4` since it's replaced to module below\n  'es.set': null,\n  'es.set.constructor': {\n    chrome: '51',\n    edge: '15',\n    firefox: '53',\n    hermes: '0.13',\n    'react-native': '0.73',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.set.difference.v2': {\n    // Bun 1.2.4 has a bug when `this` is updated while Set.prototype.difference is being executed\n    // https://bugs.webkit.org/show_bug.cgi?id=288595\n    bun: '1.2.5', // '1.1.1',\n    // v8 ~ Chrome 122 does not properly work with set-like objects\n    // https://bugs.chromium.org/p/v8/issues/detail?id=14559\n    // v8 < Chrome 128 does not properly convert set-like objects Infinity size\n    // https://issues.chromium.org/issues/351332634\n    chrome: '128', // '122',\n    firefox: '127',\n    // https://github.com/nodejs/node/pull/54883\n    node: '22.10',\n    // safari 17 does not properly work with set-like objects\n    // https://bugs.webkit.org/show_bug.cgi?id=267494\n    // A WebKit bug occurs when `this` is updated while Set.prototype.difference is being executed\n    // https://bugs.webkit.org/show_bug.cgi?id=288595\n    safari: '26.0', // '18.0', // '17.0',\n  },\n  'es.set.intersection.v2': {\n    bun: '1.1.1',\n    // v8 ~ Chrome 122 does not properly work with set-like objects\n    // https://bugs.chromium.org/p/v8/issues/detail?id=14559\n    // v8 < Chrome 128 does not properly convert set-like objects Infinity size\n    // https://issues.chromium.org/issues/351332634\n    chrome: '128', // '122',\n    firefox: '127',\n    // https://github.com/nodejs/node/pull/54883\n    node: '22.10',\n    // safari 17 does not properly work with set-like objects\n    // https://bugs.webkit.org/show_bug.cgi?id=267494\n    safari: '18.0', // '17.0',\n  },\n  'es.set.is-disjoint-from.v2': {\n    bun: '1.1.1',\n    // v8 ~ Chrome 122 does not properly work with set-like objects\n    // https://bugs.chromium.org/p/v8/issues/detail?id=14559\n    // v8 < Chrome 128 does not properly convert set-like objects Infinity size\n    // https://issues.chromium.org/issues/351332634\n    chrome: '128', // '122',\n    firefox: '127',\n    // https://github.com/nodejs/node/pull/54883\n    node: '22.10',\n    // safari 17 does not properly work with set-like objects\n    // https://bugs.webkit.org/show_bug.cgi?id=267494\n    safari: '18.0', // '17.0',\n  },\n  'es.set.is-subset-of.v2': {\n    bun: '1.1.1',\n    // v8 ~ Chrome 122 does not properly work with set-like objects\n    // https://bugs.chromium.org/p/v8/issues/detail?id=14559\n    // v8 < Chrome 128 does not properly convert set-like objects Infinity size\n    // https://issues.chromium.org/issues/351332634\n    chrome: '128', // '122',\n    firefox: '127',\n    // https://github.com/nodejs/node/pull/54883\n    node: '22.10',\n    // safari 17 does not properly work with set-like objects\n    // https://bugs.webkit.org/show_bug.cgi?id=267494\n    safari: '18.0', // '17.0',\n  },\n  'es.set.is-superset-of.v2': {\n    bun: '1.1.1',\n    // v8 ~ Chrome 122 does not properly work with set-like objects\n    // https://bugs.chromium.org/p/v8/issues/detail?id=14559\n    // v8 < Chrome 128 does not properly convert set-like objects Infinity size\n    // https://issues.chromium.org/issues/351332634\n    chrome: '128', // '122',\n    firefox: '127',\n    // https://github.com/nodejs/node/pull/54883\n    node: '22.10',\n    // safari 17 does not properly work with set-like objects\n    // https://bugs.webkit.org/show_bug.cgi?id=267494\n    safari: '18.0', // '17.0',\n  },\n  'es.set.symmetric-difference.v2': {\n    // Should get iterator record of a set-like object before cloning this\n    // https://bugs.webkit.org/show_bug.cgi?id=289430\n    bun: '1.2.5', // '1.1.1',\n    // v8 ~ Chrome 122 does not properly work with set-like objects\n    // https://bugs.chromium.org/p/v8/issues/detail?id=14559\n    chrome: '123',\n    firefox: '127',\n    // safari 17 does not properly work with set-like objects\n    // https://bugs.webkit.org/show_bug.cgi?id=267494\n    // Should get iterator record of a set-like object before cloning this\n    // https://bugs.webkit.org/show_bug.cgi?id=289430\n    safari: '26.0', // '18.0', // '17.0',\n  },\n  'es.set.union.v2': {\n    // Should get iterator record of a set-like object before cloning this\n    // https://bugs.webkit.org/show_bug.cgi?id=289430\n    bun: '1.2.5', // '1.1.1',\n    // v8 ~ Chrome 122 does not properly work with set-like objects\n    // https://bugs.chromium.org/p/v8/issues/detail?id=14559\n    chrome: '123',\n    firefox: '127',\n    // safari 17 does not properly work with set-like objects\n    // https://bugs.webkit.org/show_bug.cgi?id=267494\n    // Should get iterator record of a set-like object before cloning this\n    // https://bugs.webkit.org/show_bug.cgi?id=289430\n    safari: '26.0', // '18.0', // '17.0',\n  },\n  'es.string.at-alternative': {\n    chrome: '92',\n    firefox: '90',\n    hermes: '0.13',\n    'react-native': '0.71',\n    // rhino 1.8.0 tests shows as not supported\n    // rhino: '1.7.15',\n    safari: '15.4',\n  },\n  'es.string.code-point-at': {\n    chrome: '41',\n    edge: '13',\n    firefox: '29',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.string.ends-with': {\n    chrome: '51',\n    firefox: '40',\n    hermes: '0.1',\n    rhino: '1.7.15',\n    safari: '10.0',\n  },\n  'es.string.from-code-point': {\n    chrome: '41',\n    edge: '13',\n    firefox: '29',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.string.includes': {\n    chrome: '51',\n    firefox: '40',\n    hermes: '0.1',\n    rhino: '1.7.15',\n    safari: '10.0',\n  },\n  'es.string.is-well-formed': {\n    bun: '0.4.0',\n    chrome: '111',\n    firefox: '119',\n    rhino: '1.8.0',\n    safari: '16.4',\n  },\n  'es.string.iterator': {\n    chrome: '41',\n    edge: '13',\n    firefox: '36',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.string.match': {\n    chrome: '51',\n    firefox: '49',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.string.match-all': {\n    // Early implementations does not throw an error on non-global regex\n    chrome: '80',   // '73',\n    firefox: '73',  // '67',\n    hermes: '0.6',\n    rhino: '1.8.0',\n    safari: '13.1', // '13',\n  },\n  'es.string.pad-end': {\n    chrome: '57',\n    edge: '15',\n    firefox: '48',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '11.0',\n  },\n  'es.string.pad-start': {\n    chrome: '57',\n    edge: '15',\n    firefox: '48',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '11.0',\n  },\n  'es.string.raw': {\n    chrome: '41',\n    edge: '13',\n    firefox: '34',\n    hermes: '0.1',\n    rhino: '1.7.14',\n    safari: '9.0',\n  },\n  'es.string.repeat': {\n    chrome: '41',\n    edge: '13',\n    firefox: '24',\n    hermes: '0.1',\n    rhino: '1.7.13',\n    safari: '9.0',\n  },\n  'es.string.replace': {\n    chrome: '64',\n    firefox: '78',\n    hermes: '0.13',\n    'react-native': '0.71',\n    rhino: '1.9.0',\n    safari: '14.0',\n  },\n  'es.string.replace-all': {\n    chrome: '85',\n    firefox: '77',\n    hermes: '0.7',\n    rhino: '1.7.15',\n    safari: '13.1',\n  },\n  'es.string.search': {\n    chrome: '51',\n    firefox: '49',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.string.split': {\n    chrome: '54',\n    firefox: '49',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.string.starts-with': {\n    chrome: '51',\n    firefox: '40',\n    hermes: '0.1',\n    rhino: '1.7.15',\n    safari: '10.0',\n  },\n  'es.string.substr': {\n    chrome: '1',\n    firefox: '1',\n    hermes: '0.1',\n    ie: '9',\n    opera: '4',\n    rhino: '1.7.13',\n    safari: '1',\n  },\n  'es.string.to-well-formed': {\n    // Safari ToString conversion bug\n    // https://bugs.webkit.org/show_bug.cgi?id=251757\n    bun: '0.5.7', // '0.4.0',\n    chrome: '111',\n    firefox: '119',\n    rhino: '1.8.0',\n    safari: '16.4',\n  },\n  'es.string.trim': {\n    chrome: '59',\n    edge: '15',\n    firefox: '52',\n    hermes: '0.1',\n    rhino: '1.8.0',\n    safari: '12.1',\n  },\n  'es.string.trim-end': {\n    chrome: '66',\n    firefox: '61',\n    hermes: '0.3',\n    safari: '12.1',\n  },\n  'es.string.trim-left': {\n    chrome: '66',\n    firefox: '61',\n    hermes: '0.3',\n    safari: '12.0',\n  },\n  'es.string.trim-right': {\n    chrome: '66',\n    firefox: '61',\n    hermes: '0.3',\n    safari: '12.1',\n  },\n  'es.string.trim-start': {\n    chrome: '66',\n    firefox: '61',\n    hermes: '0.3',\n    safari: '12.0',\n  },\n  'es.string.anchor': {\n    chrome: '5',\n    edge: '12',\n    firefox: '17',\n    rhino: '1.7.14',\n    safari: '6.0',\n  },\n  'es.string.big': {\n    chrome: '5',\n    edge: '12',\n    firefox: '2',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '3.1',\n  },\n  'es.string.blink': {\n    chrome: '5',\n    edge: '12',\n    firefox: '2',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '3.1',\n  },\n  'es.string.bold': {\n    chrome: '5',\n    edge: '12',\n    firefox: '2',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '3.1',\n  },\n  'es.string.fixed': {\n    chrome: '5',\n    edge: '12',\n    firefox: '2',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '3.1',\n  },\n  'es.string.fontcolor': {\n    chrome: '5',\n    edge: '12',\n    firefox: '17',\n    rhino: '1.7.14',\n    safari: '6.0',\n  },\n  'es.string.fontsize': {\n    chrome: '5',\n    edge: '12',\n    firefox: '17',\n    rhino: '1.7.14',\n    safari: '6.0',\n  },\n  'es.string.italics': {\n    chrome: '5',\n    edge: '12',\n    firefox: '2',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '3.1',\n  },\n  'es.string.link': {\n    chrome: '5',\n    edge: '12',\n    firefox: '17',\n    rhino: '1.7.14',\n    safari: '6.0',\n  },\n  'es.string.small': {\n    chrome: '5',\n    edge: '12',\n    firefox: '2',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '3.1',\n  },\n  'es.string.strike': {\n    chrome: '5',\n    edge: '12',\n    firefox: '2',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '3.1',\n  },\n  'es.string.sub': {\n    chrome: '5',\n    edge: '12',\n    firefox: '2',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '3.1',\n  },\n  'es.string.sup': {\n    chrome: '5',\n    edge: '12',\n    firefox: '2',\n    opera: '10.50',\n    rhino: '1.7.13',\n    safari: '3.1',\n  },\n  'es.typed-array.float32-array': {\n    chrome: '54',\n    edge: '15',\n    firefox: '55',\n    safari: '14.0',\n  },\n  'es.typed-array.float64-array': {\n    chrome: '54',\n    edge: '15',\n    firefox: '55',\n    safari: '14.0',\n  },\n  'es.typed-array.int8-array': {\n    chrome: '54',\n    edge: '15',\n    firefox: '55',\n    safari: '14.0',\n  },\n  'es.typed-array.int16-array': {\n    chrome: '54',\n    edge: '15',\n    firefox: '55',\n    safari: '14.0',\n  },\n  'es.typed-array.int32-array': {\n    chrome: '54',\n    edge: '15',\n    firefox: '55',\n    safari: '14.0',\n  },\n  'es.typed-array.uint8-array': {\n    chrome: '54',\n    edge: '15',\n    firefox: '55',\n    safari: '14.0',\n  },\n  'es.typed-array.uint8-clamped-array': {\n    chrome: '54',\n    edge: '15',\n    firefox: '55',\n    safari: '14.0',\n  },\n  'es.typed-array.uint16-array': {\n    chrome: '54',\n    edge: '15',\n    firefox: '55',\n    safari: '14.0',\n  },\n  'es.typed-array.uint32-array': {\n    chrome: '54',\n    edge: '15',\n    firefox: '55',\n    safari: '14.0',\n  },\n  'es.typed-array.at': {\n    chrome: '92',\n    firefox: '90',\n    hermes: '0.13',\n    'react-native': '0.71',\n    rhino: '1.7.15',\n    safari: '15.4',\n  },\n  'es.typed-array.copy-within': {\n    chrome: '45',\n    edge: '13',\n    firefox: '34',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.every': {\n    chrome: '45',\n    edge: '13',\n    firefox: '37',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.fill': {\n    chrome: '58',\n    firefox: '55',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '14.1',\n  },\n  'es.typed-array.filter': {\n    chrome: '45',\n    edge: '13',\n    firefox: '38',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.find': {\n    chrome: '45',\n    edge: '13',\n    firefox: '37',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.find-index': {\n    chrome: '45',\n    edge: '13',\n    firefox: '37',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.find-last': {\n    chrome: '97',\n    firefox: '104',\n    hermes: '0.11',\n    rhino: '1.8.0',\n    safari: '15.4',\n  },\n  'es.typed-array.find-last-index': {\n    chrome: '97',\n    firefox: '104',\n    hermes: '0.11',\n    rhino: '1.8.0',\n    safari: '15.4',\n  },\n  'es.typed-array.for-each': {\n    chrome: '45',\n    edge: '13',\n    firefox: '38',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.from': {\n    chrome: '54',\n    edge: '15',\n    firefox: '55',\n    safari: '14.0',\n  },\n  'es.typed-array.includes': {\n    chrome: '49',\n    edge: '14',\n    firefox: '43',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.index-of': {\n    chrome: '45',\n    edge: '13',\n    firefox: '37',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.iterator': {\n    chrome: '51',\n    edge: '13',\n    firefox: '37',\n    hermes: '0.1',\n    safari: '10.0',\n  },\n  'es.typed-array.join': {\n    chrome: '45',\n    edge: '13',\n    firefox: '37',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.last-index-of': {\n    chrome: '45',\n    edge: '13',\n    firefox: '37',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.map': {\n    chrome: '45',\n    edge: '13',\n    firefox: '38',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.of': {\n    chrome: '54',\n    edge: '15',\n    firefox: '55',\n    safari: '14.0',\n  },\n  'es.typed-array.reduce': {\n    chrome: '45',\n    edge: '13',\n    firefox: '37',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.reduce-right': {\n    chrome: '45',\n    edge: '13',\n    firefox: '37',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.reverse': {\n    chrome: '45',\n    edge: '13',\n    firefox: '37',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.set': {\n    chrome: '95',   // '26',\n    // edge: '13',  // proper in Chakra Edge 13, but buggy in Chromium < 95\n    firefox: '54',  // '15',\n    hermes: '0.1',\n    safari: '14.1', // '7.1',\n  },\n  'es.typed-array.slice': {\n    chrome: '45',\n    edge: '13',\n    firefox: '38',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.some': {\n    chrome: '45',\n    edge: '13',\n    firefox: '37',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.sort': {\n    chrome: '74',\n    firefox: '67',\n    hermes: '0.10',\n    rhino: '1.9.0',\n    // 10.0 - 14.0 accept incorrect arguments\n    safari: '14.1',\n  },\n  'es.typed-array.subarray': {\n    chrome: '26',\n    edge: '13',\n    firefox: '15',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '7.1',\n  },\n  'es.typed-array.to-locale-string': {\n    chrome: '45',\n    firefox: '51',\n    hermes: '0.1',\n    rhino: '1.9.0',\n    safari: '10.0',\n  },\n  'es.typed-array.to-reversed': {\n    chrome: '110',\n    deno: '1.27',\n    firefox: '115',\n    rhino: '1.8.0',\n    safari: '16.0',\n  },\n  'es.typed-array.to-sorted': {\n    chrome: '110',\n    deno: '1.27',\n    firefox: '115',\n    rhino: '1.8.0',\n    safari: '16.0',\n  },\n  'es.typed-array.to-string': {\n    chrome: '51',\n    edge: '13',\n    firefox: '51',\n    hermes: '0.1',\n    safari: '10.0',\n  },\n  'es.typed-array.with': {\n    // It should truncate a negative fractional index to zero, but instead throws an error\n    bun: '1.2.18', // '0.1.9',\n    chrome: '110',\n    deno: '1.27',\n    firefox: '115',\n    rhino: '1.8.0',\n    // It should truncate a negative fractional index to zero, but instead throws an error\n    safari: '26.0', // '16.4',\n  },\n  'es.uint8-array.from-base64': {\n    // safari 18.2-26.1 bug: it doesn't throw an error on incorrect length of base64 string\n    bun: '1.2.20', // '1.1.22',\n    chrome: '140',\n    firefox: '133',\n    // safari 18.2-26.1 bug: it doesn't throw an error on incorrect length of base64 string\n    safari: '26.2', // '18.2',\n  },\n  'es.uint8-array.from-hex': {\n    bun: '1.1.22',\n    chrome: '140',\n    firefox: '133',\n    safari: '18.2',\n  },\n  'es.uint8-array.set-from-base64': {\n    // safari 18.2-26.1 bug: it doesn't throw an error on incorrect length of base64 string\n    bun: '1.2.20', // '1.1.22',\n    chrome: '140',\n    firefox: '133',\n    // safari 18.2-26.1 bug: it doesn't throw an error on incorrect length of base64 string\n    safari: '26.2', // '18.2',\n  },\n  'es.uint8-array.set-from-hex': {\n    bun: '1.1.22',\n    // Should not throw an error on length-tracking views over ResizableArrayBuffer\n    // https://issues.chromium.org/issues/454630441\n    chrome: '144', // '140',\n    firefox: '133',\n    safari: '18.2',\n  },\n  'es.uint8-array.to-base64': {\n    bun: '1.1.22',\n    chrome: '140',\n    firefox: '133',\n    safari: '18.2',\n  },\n  'es.uint8-array.to-hex': {\n    bun: '1.1.22',\n    chrome: '140',\n    firefox: '133',\n    safari: '18.2',\n  },\n  'es.unescape': {\n    chrome: '1',\n    firefox: '1',\n    hermes: '0.1',\n    ie: '3',\n    opera: '3',\n    rhino: '1.7.13',\n    safari: '1',\n  },\n  // TODO: Remove this module from `core-js@4` since it's replaced to module below\n  'es.weak-map': null,\n  'es.weak-map.constructor': {\n    chrome: '51',\n    // adding frozen arrays to WeakMap unfreeze them\n    // edge: '15',\n    firefox: '53',\n    hermes: '0.13',\n    'react-native': '0.73',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'es.weak-map.get-or-insert': {\n    bun: '1.2.20',\n    chrome: '145',\n    firefox: '144',\n    safari: '26.2',\n  },\n  'es.weak-map.get-or-insert-computed': {\n    bun: '1.2.20',\n    chrome: '145',\n    firefox: '144',\n    safari: '26.2',\n  },\n  // TODO: Remove this module from `core-js@4` since it's replaced to module below\n  'es.weak-set': null,\n  'es.weak-set.constructor': {\n    chrome: '51',\n    edge: '15',\n    firefox: '53',\n    hermes: '0.13',\n    'react-native': '0.73',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.aggregate-error': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.suppressed-error.constructor': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.array.from-async': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.array.at': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.array.filter-out': {\n  },\n  'esnext.array.filter-reject': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.array.find-last': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.array.find-last-index': null,\n  'esnext.array.group': {\n    // disabled from Bun 0.6.2\n    // bun: '0.1.9',\n    // https://github.com/tc39/proposal-array-grouping/issues/44#issuecomment-1306311107\n    // chrome: '108',\n    // safari: '16.4',\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.array.group-by': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.array.group-by-to-map': {\n  },\n  'esnext.array.group-to-map': {\n    // disabled from Bun 0.6.2\n    // bun: '0.1.9',\n    // https://github.com/tc39/proposal-array-grouping/issues/44#issuecomment-1306311107\n    // chrome: '108',\n    // safari: '16.4',\n  },\n  'esnext.array.is-template-object': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.array.last-index': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.array.last-item': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.array.to-reversed': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.array.to-sorted': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.array.to-spliced': null,\n  'esnext.array.unique-by': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.array.with': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.array-buffer.detached': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.array-buffer.transfer': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.array-buffer.transfer-to-fixed-length': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.async-disposable-stack.constructor': null,\n  'esnext.async-iterator.constructor': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.async-iterator.as-indexed-pairs': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.async-iterator.async-dispose': null,\n  'esnext.async-iterator.drop': {\n  },\n  'esnext.async-iterator.every': {\n  },\n  'esnext.async-iterator.filter': {\n  },\n  'esnext.async-iterator.find': {\n  },\n  'esnext.async-iterator.flat-map': {\n  },\n  'esnext.async-iterator.for-each': {\n  },\n  'esnext.async-iterator.from': {\n  },\n  'esnext.async-iterator.indexed': {\n  },\n  'esnext.async-iterator.map': {\n  },\n  'esnext.async-iterator.reduce': {\n  },\n  'esnext.async-iterator.some': {\n  },\n  'esnext.async-iterator.take': {\n  },\n  'esnext.async-iterator.to-array': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.bigint.range': {\n  },\n  'esnext.composite-key': {\n  },\n  'esnext.composite-symbol': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.data-view.get-float16': null,\n  'esnext.data-view.get-uint8-clamped': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.data-view.set-float16': null,\n  'esnext.data-view.set-uint8-clamped': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.disposable-stack.constructor': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.error.is-error': null,\n  'esnext.function.demethodize': {\n  },\n  'esnext.function.is-callable': {\n  },\n  'esnext.function.is-constructor': {\n  },\n  'esnext.function.metadata': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.function.un-this': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.global-this': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.constructor': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.as-indexed-pairs': {\n  },\n  'esnext.iterator.chunks': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.concat': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.dispose': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.drop': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.every': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.filter': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.find': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.flat-map': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.for-each': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.from': null,\n  'esnext.iterator.indexed': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.map': null,\n  'esnext.iterator.range': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.reduce': null,\n  'esnext.iterator.sliding': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.some': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.take': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.iterator.to-array': null,\n  'esnext.iterator.to-async': {\n  },\n  'esnext.iterator.windows': {\n  },\n  'esnext.iterator.zip': {\n    firefox: '148',\n  },\n  'esnext.iterator.zip-keyed': {\n    firefox: '148',\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.json.is-raw-json': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.json.parse': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.json.raw-json': null,\n  'esnext.map.delete-all': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.map.emplace': {\n  },\n  'esnext.map.every': {\n  },\n  'esnext.map.filter': {\n  },\n  'esnext.map.find': {\n  },\n  'esnext.map.find-key': {\n  },\n  'esnext.map.from': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.map.get-or-insert': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.map.get-or-insert-computed': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.map.group-by': null,\n  'esnext.map.includes': {\n  },\n  'esnext.map.key-by': {\n  },\n  'esnext.map.key-of': {\n  },\n  'esnext.map.map-keys': {\n  },\n  'esnext.map.map-values': {\n  },\n  'esnext.map.merge': {\n  },\n  'esnext.map.of': {\n  },\n  'esnext.map.reduce': {\n  },\n  'esnext.map.some': {\n  },\n  'esnext.map.update': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.map.update-or-insert': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.map.upsert': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.math.clamp': {\n  },\n  'esnext.math.deg-per-rad': {\n  },\n  'esnext.math.degrees': {\n  },\n  'esnext.math.fscale': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.math.f16round': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.math.iaddh': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.math.imulh': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.math.isubh': {\n  },\n  'esnext.math.rad-per-deg': {\n  },\n  'esnext.math.radians': {\n  },\n  'esnext.math.scale': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.math.seeded-prng': {\n  },\n  'esnext.math.signbit': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.math.sum-precise': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.math.umulh': {\n  },\n  'esnext.number.clamp': {\n  },\n  'esnext.number.from-string': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.number.range': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.object.has-own': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.object.iterate-entries': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.object.iterate-keys': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.object.iterate-values': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.object.group-by': null,\n  // TODO: Remove this module from `core-js@4` since it's split to modules listed below\n  'esnext.observable': {\n  },\n  'esnext.observable.constructor': {\n  },\n  'esnext.observable.from': {\n  },\n  'esnext.observable.of': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.promise.all-settled': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.promise.any': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.promise.try': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.promise.with-resolvers': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.reflect.define-metadata': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.reflect.delete-metadata': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.reflect.get-metadata': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.reflect.get-metadata-keys': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.reflect.get-own-metadata': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.reflect.get-own-metadata-keys': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.reflect.has-metadata': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.reflect.has-own-metadata': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.reflect.metadata': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.regexp.escape': null,\n  'esnext.set.add-all': {\n  },\n  'esnext.set.delete-all': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.set.difference.v2': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.set.difference': {\n  },\n  'esnext.set.every': {\n  },\n  'esnext.set.filter': {\n  },\n  'esnext.set.find': {\n  },\n  'esnext.set.from': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.set.intersection.v2': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.set.intersection': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.set.is-disjoint-from.v2': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.set.is-disjoint-from': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.set.is-subset-of.v2': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.set.is-subset-of': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.set.is-superset-of.v2': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.set.is-superset-of': {\n  },\n  'esnext.set.join': {\n  },\n  'esnext.set.map': {\n  },\n  'esnext.set.of': {\n  },\n  'esnext.set.reduce': {\n  },\n  'esnext.set.some': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.set.symmetric-difference.v2': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.set.symmetric-difference': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.set.union.v2': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.set.union': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.string.at': {\n  },\n  'esnext.string.cooked': {\n  },\n  'esnext.string.code-points': {\n  },\n  'esnext.string.dedent': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.string.is-well-formed': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.string.match-all': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.string.replace-all': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.string.to-well-formed': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.symbol.async-dispose': null,\n  'esnext.symbol.custom-matcher': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.symbol.dispose': null,\n  'esnext.symbol.is-registered-symbol': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.symbol.is-registered': {\n  },\n  // We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n  'esnext.symbol.is-well-known-symbol': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.symbol.is-well-known': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.symbol.matcher': {\n  },\n  'esnext.symbol.metadata': {\n    deno: '1.40.4',\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.symbol.metadata-key': {\n  },\n  'esnext.symbol.observable': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.symbol.pattern-match': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.symbol.replace-all': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.typed-array.from-async': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.typed-array.at': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.typed-array.filter-out': {\n  },\n  'esnext.typed-array.filter-reject': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.typed-array.find-last': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.typed-array.find-last-index': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.typed-array.group-by': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.typed-array.to-reversed': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.typed-array.to-sorted': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.typed-array.to-spliced': {\n  },\n  'esnext.typed-array.unique-by': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.typed-array.with': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.uint8-array.from-base64': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.uint8-array.from-hex': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.uint8-array.set-from-base64': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.uint8-array.set-from-hex': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.uint8-array.to-base64': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.uint8-array.to-hex': null,\n  'esnext.weak-map.delete-all': {\n  },\n  'esnext.weak-map.from': {\n  },\n  'esnext.weak-map.of': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.weak-map.emplace': {\n  },\n  // TODO: Remove from `core-js@4`\n  'esnext.weak-map.get-or-insert': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.weak-map.get-or-insert-computed': null,\n  // TODO: Remove from `core-js@4`\n  'esnext.weak-map.upsert': {\n  },\n  'esnext.weak-set.add-all': {\n  },\n  'esnext.weak-set.delete-all': {\n  },\n  'esnext.weak-set.from': {\n  },\n  'esnext.weak-set.of': {\n  },\n  'web.atob': {\n    bun: '0.1.1',\n    chrome: '34',\n    deno: '1.0',\n    // older have wrong arity\n    edge: '16', // '13',\n    firefox: '27',\n    hermes: '0.13',\n    // https://github.com/nodejs/node/issues/41450\n    // https://github.com/nodejs/node/issues/42530\n    // https://github.com/nodejs/node/issues/42646\n    node: '18.0', // '17.9', '17.5', '16.0',\n    opera: '10.5',\n    'react-native': '0.74',\n    safari: '10.1',\n  },\n  'web.btoa': {\n    bun: '0.1.1',\n    chrome: '4',\n    deno: '1.0',\n    // older have wrong arity\n    edge: '16', // ie: '10',\n    // FF26- does not properly convert argument to string\n    firefox: '27',\n    // https://github.com/nodejs/node/issues/41450\n    node: '17.5', // '16.0',\n    opera: '10.5',\n    safari: '3.0',\n  },\n  'web.clear-immediate': {\n    bun: '0.1.7',\n    deno: '2.4',\n    ie: '10',\n    node: '0.9.1',\n  },\n  'web.dom-collections.for-each': {\n    bun: '0.1.1',\n    chrome: '58',\n    deno: '1.0',\n    edge: '16',\n    firefox: '50',\n    hermes: '0.1',\n    node: '0.0.1',\n    rhino: '1.7.13',\n    safari: '10.0',\n  },\n  'web.dom-collections.iterator': {\n    bun: '0.1.1',\n    chrome: '66',\n    deno: '1.0',\n    firefox: '60',\n    hermes: '0.1',\n    node: '0.0.1',\n    rhino: '1.7.13',\n    safari: '13.1',\n  },\n  'web.dom-exception.constructor': {\n    bun: '0.1.1',\n    chrome: '46',\n    deno: '1.7',\n    firefox: '37',\n    node: '17.0',\n    safari: '11.1',\n  },\n  'web.dom-exception.stack': {\n    deno: '1.15',\n    firefox: '37',\n    node: '17.0',\n  },\n  'web.dom-exception.to-string-tag': {\n    bun: '0.1.1',\n    chrome: '49',\n    deno: '1.7',\n    firefox: '51',\n    node: '17.0',\n    safari: '11.1',\n  },\n  // TODO: Remove this module from `core-js@4` since it's split to submodules\n  'web.immediate': {\n    // https://github.com/oven-sh/bun/issues/1633\n    bun: '0.4.0', // '0.1.7',\n    deno: '2.4',\n    ie: '10',\n    node: '0.9.1',\n  },\n  'web.queue-microtask': {\n    // wrong arity in Bun ~ 1.0.30, https://github.com/oven-sh/bun/issues/9249\n    // bun: '0.1.1',\n    chrome: '71',\n    deno: '1.0',\n    firefox: '69',\n    // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\n    node: '12.0', // '11.0',\n    safari: '12.1',\n  },\n  'web.self': {\n    bun: '1.0.22',\n    chrome: '86',\n    // https://github.com/denoland/deno/issues/15765\n    // broken in Deno 1.45.3 again:\n    // https://github.com/denoland/deno/issues/24683\n    deno: '1.46.0', // '1.29.3',\n    // fails in early Chrome-based Edge\n    // edge: '12',\n    firefox: '31',\n    safari: '10',\n  },\n  'web.set-immediate': {\n    // https://github.com/oven-sh/bun/issues/1633\n    bun: '0.4.0', // '0.1.7',\n    deno: '2.4',\n    ie: '10',\n    node: '0.9.1',\n  },\n  'web.set-interval': {\n    android: '1.5',\n    // https://github.com/oven-sh/bun/issues/1633\n    bun: '0.4.0', // '0.1.1',\n    chrome: '1',\n    deno: '1.0',\n    firefox: '1',\n    hermes: '0.1',\n    ie: '10',\n    node: '0.0.1',\n    opera: '7',\n    rhino: '1.7.13',\n    safari: '1.0',\n  },\n  'web.set-timeout': {\n    android: '1.5',\n    // https://github.com/oven-sh/bun/issues/1633\n    bun: '0.4.0', // '0.1.1',\n    chrome: '1',\n    deno: '1.0',\n    firefox: '1',\n    hermes: '0.1',\n    ie: '10',\n    node: '0.0.1',\n    opera: '7',\n    rhino: '1.7.13',\n    safari: '1.0',\n  },\n  'web.structured-clone': {\n    // https://github.com/whatwg/html/pull/5749\n    // deno: '1.14',\n    // current FF implementation can't clone errors\n    // firefox: '94',\n    // node: '17.0',\n  },\n  // TODO: Remove this module from `core-js@4` since it's split to submodules\n  'web.timers': {\n    android: '1.5',\n    // https://github.com/oven-sh/bun/issues/1633\n    bun: '0.4.0', // '0.1.1',\n    chrome: '1',\n    deno: '1.0',\n    firefox: '1',\n    hermes: '0.1',\n    ie: '10',\n    node: '0.0.1',\n    opera: '7',\n    rhino: '1.7.13',\n    safari: '1.0',\n  },\n  // TODO: Remove this module from `core-js@4` since it's replaced to module below\n  'web.url': null,\n  'web.url.constructor': {\n    bun: '0.1.1',\n    chrome: '67',\n    deno: '1.0',\n    firefox: '57',\n    node: '10.0',\n    safari: '14.0',\n  },\n  'web.url.can-parse': {\n    // Bun < 1.1.0 bug\n    // https://github.com/oven-sh/bun/issues/9250\n    bun: '1.1.0', // '1.0.2',\n    chrome: '120',\n    deno: '1.33.2',\n    firefox: '115',\n    node: '20.1',\n    safari: '17.0',\n  },\n  'web.url.parse': {\n    bun: '1.1.4',\n    chrome: '126',\n    deno: '1.43',\n    firefox: '126',\n    node: '22.1',\n    safari: '18.0',\n  },\n  'web.url.to-json': {\n    bun: '0.1.1',\n    chrome: '71',\n    deno: '1.0',\n    firefox: '57',\n    node: '10.0',\n    safari: '14.0',\n  },\n  // TODO: Remove this module from `core-js@4` since it's replaced to module below\n  'web.url-search-params': null,\n  'web.url-search-params.constructor': {\n    bun: '0.1.1',\n    chrome: '67',\n    deno: '1.0',\n    firefox: '57',\n    node: '10.0',\n    safari: '14.0',\n  },\n  'web.url-search-params.delete': {\n    bun: '1.0.31',\n    chrome: '118',\n    deno: '1.35',\n    firefox: '115',\n    node: '20.2',\n    safari: '17.0',\n  },\n  'web.url-search-params.has': {\n    bun: '1.0.31',\n    chrome: '118',\n    deno: '1.35',\n    firefox: '115',\n    node: '20.2',\n    safari: '17.0',\n  },\n  'web.url-search-params.size': {\n    bun: '1.0.2',\n    chrome: '113',\n    deno: '1.32',\n    firefox: '112',\n    node: '19.8',\n    safari: '17.0',\n  },\n};\n\nexport const renamed = new Map([\n  // TODO: Clean in `core-js@4`\n  ['es.aggregate-error', 'es.aggregate-error.constructor'],\n  ['es.data-view', 'es.data-view.constructor'],\n  ['es.map', 'es.map.constructor'],\n  ['es.set', 'es.set.constructor'],\n  ['es.weak-map', 'es.weak-map.constructor'],\n  ['es.weak-set', 'es.weak-set.constructor'],\n  ['esnext.aggregate-error', 'es.aggregate-error'],\n  ['esnext.array.at', 'es.array.at'],\n  ['esnext.array.find-last', 'es.array.find-last'],\n  ['esnext.array.find-last-index', 'es.array.find-last-index'],\n  ['esnext.array.from-async', 'es.array.from-async'],\n  ['esnext.array.to-reversed', 'es.array.to-reversed'],\n  ['esnext.array.to-sorted', 'es.array.to-sorted'],\n  ['esnext.array.to-spliced', 'es.array.to-spliced'],\n  ['esnext.array.with', 'es.array.with'],\n  ['esnext.array-buffer.detached', 'es.array-buffer.detached'],\n  ['esnext.array-buffer.transfer', 'es.array-buffer.transfer'],\n  ['esnext.array-buffer.transfer-to-fixed-length', 'es.array-buffer.transfer-to-fixed-length'],\n  ['esnext.async-disposable-stack.constructor', 'es.async-disposable-stack.constructor'],\n  ['esnext.async-iterator.async-dispose', 'es.async-iterator.async-dispose'],\n  ['esnext.data-view.get-float16', 'es.data-view.get-float16'],\n  ['esnext.data-view.set-float16', 'es.data-view.set-float16'],\n  ['esnext.disposable-stack.constructor', 'es.disposable-stack.constructor'],\n  ['esnext.error.is-error', 'es.error.is-error'],\n  ['esnext.global-this', 'es.global-this'],\n  ['esnext.iterator.constructor', 'es.iterator.constructor'],\n  ['esnext.iterator.concat', 'es.iterator.concat'],\n  ['esnext.iterator.dispose', 'es.iterator.dispose'],\n  ['esnext.iterator.drop', 'es.iterator.drop'],\n  ['esnext.iterator.every', 'es.iterator.every'],\n  ['esnext.iterator.filter', 'es.iterator.filter'],\n  ['esnext.iterator.find', 'es.iterator.find'],\n  ['esnext.iterator.flat-map', 'es.iterator.flat-map'],\n  ['esnext.iterator.for-each', 'es.iterator.for-each'],\n  ['esnext.iterator.from', 'es.iterator.from'],\n  ['esnext.iterator.map', 'es.iterator.map'],\n  ['esnext.iterator.reduce', 'es.iterator.reduce'],\n  ['esnext.iterator.some', 'es.iterator.some'],\n  ['esnext.iterator.take', 'es.iterator.take'],\n  ['esnext.iterator.to-array', 'es.iterator.to-array'],\n  ['esnext.json.is-raw-json', 'es.json.is-raw-json'],\n  ['esnext.json.parse', 'es.json.parse'],\n  ['esnext.json.raw-json', 'es.json.raw-json'],\n  ['esnext.map.group-by', 'es.map.group-by'],\n  ['esnext.map.get-or-insert', 'es.map.get-or-insert'],\n  ['esnext.map.get-or-insert-computed', 'es.map.get-or-insert-computed'],\n  ['esnext.math.f16round', 'es.math.f16round'],\n  ['esnext.math.sum-precise', 'es.math.sum-precise'],\n  ['esnext.object.has-own', 'es.object.has-own'],\n  ['esnext.object.group-by', 'es.object.group-by'],\n  ['esnext.promise.all-settled', 'es.promise.all-settled'],\n  ['esnext.promise.any', 'es.promise.any'],\n  ['esnext.promise.try', 'es.promise.try'],\n  ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'],\n  ['esnext.regexp.escape', 'es.regexp.escape'],\n  ['esnext.set.difference.v2', 'es.set.difference.v2'],\n  ['esnext.set.intersection.v2', 'es.set.intersection.v2'],\n  ['esnext.set.is-disjoint-from.v2', 'es.set.is-disjoint-from.v2'],\n  ['esnext.set.is-subset-of.v2', 'es.set.is-subset-of.v2'],\n  ['esnext.set.is-superset-of.v2', 'es.set.is-superset-of.v2'],\n  ['esnext.set.symmetric-difference.v2', 'es.set.symmetric-difference.v2'],\n  ['esnext.set.union.v2', 'es.set.union.v2'],\n  ['esnext.string.is-well-formed', 'es.string.is-well-formed'],\n  ['esnext.string.match-all', 'es.string.match-all'],\n  ['esnext.string.replace-all', 'es.string.replace-all'],\n  ['esnext.string.to-well-formed', 'es.string.to-well-formed'],\n  ['esnext.suppressed-error.constructor', 'es.suppressed-error.constructor'],\n  ['esnext.typed-array.at', 'es.typed-array.at'],\n  ['esnext.symbol.async-dispose', 'es.symbol.async-dispose'],\n  ['esnext.symbol.dispose', 'es.symbol.dispose'],\n  ['esnext.typed-array.find-last', 'es.typed-array.find-last'],\n  ['esnext.typed-array.find-last-index', 'es.typed-array.find-last-index'],\n  ['esnext.typed-array.to-reversed', 'es.typed-array.to-reversed'],\n  ['esnext.typed-array.to-sorted', 'es.typed-array.to-sorted'],\n  ['esnext.typed-array.with', 'es.typed-array.with'],\n  ['esnext.uint8-array.from-base64', 'es.uint8-array.from-base64'],\n  ['esnext.uint8-array.from-hex', 'es.uint8-array.from-hex'],\n  ['esnext.uint8-array.set-from-base64', 'es.uint8-array.set-from-base64'],\n  ['esnext.uint8-array.set-from-hex', 'es.uint8-array.set-from-hex'],\n  ['esnext.uint8-array.to-base64', 'es.uint8-array.to-base64'],\n  ['esnext.uint8-array.to-hex', 'es.uint8-array.to-hex'],\n  ['esnext.weak-map.get-or-insert', 'es.weak-map.get-or-insert'],\n  ['esnext.weak-map.get-or-insert-computed', 'es.weak-map.get-or-insert-computed'],\n  ['web.url', 'web.url.constructor'],\n  ['web.url-search-params', 'web.url-search-params.constructor'],\n]);\n\nfor (const [old, nw] of renamed) data[old] = data[nw];\n\nexport const dataWithIgnored = { ...data };\n\nexport const ignored = [\n  // TODO: Clean in `core-js@4`\n  'es.aggregate-error.constructor',\n  'es.data-view.constructor',\n  'es.map.constructor',\n  'es.set.constructor',\n  'es.string.trim-left',\n  'es.string.trim-right',\n  'es.symbol.constructor',\n  'es.symbol.for',\n  'es.symbol.key-for',\n  'es.object.get-own-property-symbols',\n  'es.promise.constructor',\n  'es.promise.all',\n  'es.promise.catch',\n  'es.promise.race',\n  'es.promise.reject',\n  'es.promise.resolve',\n  'es.weak-map.constructor',\n  'es.weak-set.constructor',\n  'esnext.observable.constructor',\n  'esnext.observable.from',\n  'esnext.observable.of',\n  'web.clear-immediate',\n  'web.set-immediate',\n  'web.set-interval',\n  'web.set-timeout',\n  'web.url.constructor',\n  'web.url-search-params.constructor',\n];\n\nfor (const ignore of ignored) delete data[ignore];\n\nexport const modules = Object.keys(data);\n"
  },
  {
    "path": "packages/core-js-compat/src/external.mjs",
    "content": "export default {\n  modules: {\n    bun: '0.1.1',\n    chrome: '61',\n    deno: '1.0',\n    edge: '16',\n    firefox: '60',\n    node: '13.2',\n    safari: '10.1',\n  },\n};\n"
  },
  {
    "path": "packages/core-js-compat/src/mapping.mjs",
    "content": "export default {\n  // https://nodejs.org/dist/index.json\n  ChromeToNode: [\n    [3, '0.0.3'],\n    [4, '0.1.19'],\n    [5, '0.1.27'],\n    [6, '0.1.90'],\n    [7, '0.1.101'],\n    [9, '0.3.0'],\n    [10, '0.3.2'],\n    [11, '0.3.8'],\n    [14, '0.5.1'],\n    [15, '0.5.4'],\n    [16, '0.5.6'],\n    [18, '0.7.0'],\n    [19, '0.7.3'],\n    [21, '0.7.11'],\n    [23, '0.9.3'],\n    [24, '0.9.6'],\n    [27, '0.11.0'],\n    [28, '0.11.1'],\n    [29, '0.11.2'],\n    [30, '0.11.4'],\n    [31, '0.11.8'],\n    [32, '0.11.9'],\n    [35, '0.11.13'],\n    [36, '0.11.14'],\n    [38, '0.11.15'],\n    [41, '1.0'], // io.js\n    [42, '2.0'], // io.js\n    [44, '3.0'], // io.js\n    [45, '4.0'],\n    [46, '5.0'],\n    [50, '6.0'],\n    [51, '6.5'],\n    [54, '7.0'],\n    [55, '7.6'],\n    [58, '8.0'],\n    [60, '8.3'],\n    [61, '8.7'],\n    [62, '8.10'],\n    [66, '10.0'],\n    [67, '10.4'],\n    [68, '10.9'],\n    [70, '11.0'],\n    [74, '12.0'],\n    [75, '12.5'],\n    [76, '12.9'],\n    [77, '12.11'],\n    [78, '12.16'],\n    [79, '13.2'],\n    [81, '14.0'],\n    [83, '14.5'],\n    [84, '14.6'],\n    [86, '15.0'],\n    [90, '16.0'],\n    [91, '16.4'],\n    [92, '16.6'],\n    [93, '16.9'],\n    [94, '16.11'],\n    [95, '17.0'],\n    [96, '17.2'],\n    [101, '18.0'],\n    [102, '18.3'],\n    [107, '19.0'],\n    [108, '19.2'],\n    [113, '20.0'],\n    [118, '21.0'],\n    [124, '22.0'],\n    [129, '23.0'],\n    [136, '24.0'],\n    [141, '25.0'],\n  ],\n  // https://github.com/denoland/deno/releases\n  // https://github.com/mdn/browser-compat-data/blob/main/browsers/deno.json\n  ChromeToDeno: [\n    [84, '1.0'],\n    [85, '1.2'],\n    [86, '1.3'],\n    [87, '1.4'],\n    [88, '1.6'],\n    [89, '1.7'],\n    [90, '1.8'],\n    [91, '1.9'],\n    [92, '1.12'],\n    [93, '1.13'],\n    [94, '1.14'],\n    [95, '1.15'],\n    [97, '1.16'],\n    [98, '1.18'],\n    [99, '1.19'],\n    [100, '1.20'],\n    [104, '1.23'],\n    [106, '1.25'],\n    [107, '1.26'],\n    [108, '1.27'],\n    [109, '1.28'],\n    [110, '1.31'],\n    [112, '1.32'],\n    [114, '1.33'],\n    [115, '1.34'],\n    [116, '1.35'],\n    [116, '1.36'],\n    // [117, '1.36.2'], reverted to 11.6 in 1.36.3\n    [118, '1.37'],\n    [120, '1.38'],\n    [120, '1.39'],\n    [121, '1.40'],\n    [121, '1.41'],\n    [123, '1.41.3'],\n    [123, '1.42'],\n    [124, '1.43'],\n    [126, '1.44'],\n    [127, '1.45'],\n    [129, '1.46'],\n    [129, '2.0'],\n    [130, '2.1'],\n    [134, '2.2'],\n    [135, '2.3'],\n    [137, '2.3.2'],\n    [137, '2.4'],\n    [140, '2.5'],\n    [142, '2.6'],\n    [145, '2.6.7'],\n    [145, '2.7'],\n    [146, '2.7.2'],\n  ],\n  // https://releases.electronjs.org/\n  // https://github.com/electron/electron/releases\n  // https://github.com/Kilian/electron-to-chromium/blob/master/chromium-versions.js\n  // Maybe also required to handle used Node versions?\n  // https://github.com/electron/releases/blob/master/lite.json\n  ChromeToElectron: [\n    [39, '0.20'],\n    [41, '0.21'],\n    [42, '0.25'],\n    [43, '0.27'],\n    [44, '0.30'],\n    [45, '0.31'],\n    [47, '0.36'],\n    [49, '0.37'],\n    [50, '1.1'],\n    [51, '1.2'],\n    [52, '1.3'],\n    [54, '1.4'],\n    [56, '1.6'],\n    [58, '1.7'],\n    [59, '1.8'],\n    [61, '2.0'],\n    [66, '3.0'],\n    [69, '4.0'],\n    [73, '5.0'],\n    [76, '6.0'],\n    [78, '7.0'],\n    [80, '8.0'],\n    [83, '9.0'],\n    [85, '10.0'],\n    [87, '11.0'],\n    [89, '12.0'],\n    [91, '13.0'],\n    [93, '14.0'],\n    [94, '15.0'],\n    [96, '16.0'],\n    [98, '17.0'],\n    [100, '18.0'],\n    [102, '19.0'],\n    [104, '20.0'],\n    [106, '21.0'],\n    [108, '22.0'],\n    [110, '23.0'],\n    [112, '24.0'],\n    [114, '25.0'],\n    [116, '26.0'],\n    [118, '27.0'],\n    [120, '28.0'],\n    [122, '29.0'],\n    [124, '30.0'],\n    [126, '31.0'],\n    [128, '32.0'],\n    [130, '33.0'],\n    [132, '34.0'],\n    [134, '35.0'],\n    [136, '36.0'],\n    [138, '37.0'],\n    [140, '38.0'],\n    [142, '39.0'],\n    [144, '40.0'],\n    [146, '41.0'],\n    [148, '42.0'],\n  ],\n  // https://github.com/mdn/browser-compat-data/blob/main/browsers/opera.json\n  ChromeToOpera(chrome) {\n    return chrome <= 28 ? 15\n         : chrome <= 82 ? chrome - 13\n         : chrome <= 129 ? chrome - 14\n         : chrome <= 135 ? chrome - 15\n         : chrome - 16;\n  },\n  ChromeToAndroid: [\n    [9, '3.0'],\n    [12, '4.0'],\n    [30, '4.4'],\n    [33, '4.4.3'],\n  ],\n  // https://github.com/mdn/browser-compat-data/blob/main/browsers/chrome_android.json\n  // https://github.com/mdn/browser-compat-data/blob/main/docs/matching-browser-releases/index.md#version-numbers-for-chrome-for-android\n  ChromeToChromeAndroid(chrome) {\n    return chrome <= 18 ? 18 : Math.max(chrome, 25);\n  },\n  // https://medium.com/samsung-internet-dev\n  // https://github.com/mdn/browser-compat-data/blob/main/browsers/samsunginternet_android.json\n  // https://en.wikipedia.org/wiki/Samsung_Internet#History\n  // https://github.com/mdn/browser-compat-data/blob/main/docs/matching-browser-releases/index.md#samsung-internet\n  ChromeAndroidToSamsung: [\n    [18, '1.0'],\n    [28, '1.5'],\n    [34, '2.0'],\n    [38, '3.0'],\n    [42, '3.4'],\n    [44, '4.0'],\n    [51, '5.0'],\n    [56, '6.0'],\n    [59, '7.0'],\n    [63, '8.0'],\n    [67, '9.0'],\n    [71, '10.0'],\n    [75, '11.0'],\n    [79, '12.0'],\n    [83, '13.0'],\n    [87, '14.0'],\n    [90, '15.0'],\n    [92, '16.0'],\n    [96, '17.0'],\n    [99, '18.0'],\n    [102, '19.0'],\n    [106, '20.0'],\n    [110, '21.0'],\n    [111, '22.0'],\n    [115, '23.0'],\n    [117, '24.0'],\n    [121, '25.0'],\n    [122, '26.0'],\n    [125, '27.0'],\n    [130, '28.0'],\n    [136, '29.0'],\n  ],\n  // https://github.com/mdn/browser-compat-data/blob/main/browsers/opera_android.json\n  // https://forums.opera.com/category/20/opera-for-android\n  ChromeAndroidToOperaAndroid: [\n    [59, 43],\n    [60, 44],\n    [61, 45],\n    [63, 46],\n    [66, 47],\n    [69, 48],\n    [70, 49],\n    [71, 50],\n    [72, 51],\n    [73, 52],\n    [74, 53],\n    [76, 54],\n    [77, 55],\n    [78, 56],\n    [80, 57],\n    [81, 58],\n    [83, 59],\n    [85, 60],\n    [86, 61],\n    [87, 62],\n    [89, 63],\n    [91, 64],\n    [92, 65],\n    [94, 66],\n    [96, 67],\n    [99, 68],\n    [100, 69],\n    [102, 70],\n    [104, 71],\n    [106, 72],\n    [108, 73],\n    [110, 74],\n    [112, 75],\n    [114, 76],\n    [115, 77],\n    [117, 78],\n    [119, 79],\n    [120, 80],\n    [122, 81],\n    [124, 82],\n    [126, 83],\n    [127, 84],\n    [129, 85],\n    [130, 86],\n    [132, 87],\n    [134, 88],\n    [135, 89],\n    [137, 90],\n    [139, 91],\n    [140, 92],\n    [142, 93],\n    [143, 94],\n    [144, 95],\n    [145, 96],\n  ],\n  // https://developers.meta.com/horizon/release-notes/web/\n  // https://www.meta.com/experiences/browser/1916519981771802/\n  // https://github.com/mdn/browser-compat-data/blob/main/browsers/oculus.json\n  // https://whatmyuseragent.com/browser/oc/oculus-browser\n  ChromeAndroidToQuest: [\n    [57, '3.0'],\n    [61, '4.0'],\n    [66, '5.0'],\n    [74, '6.0'],\n    [77, '7.0'],\n    [79, '8.0'],\n    [81, '9.0'],\n    [83, '10.0'],\n    [84, '11.0'],\n    [86, '12.0'],\n    [87, '13.0'],\n    [88, '14.0'],\n    [89, '15.0'],\n    [91, '16.0'],\n    [93, '17.0'],\n    [95, '18.0'],\n    [96, '19.0'],\n    [98, '20.0'],\n    [100, '21.0'],\n    [102, '22.0'],\n    [104, '23.0'],\n    [106, '24.0'],\n    [108, '25.0'],\n    [110, '26.0'],\n    [112, '27.0'],\n    [114, '28.0'],\n    [116, '29.0'],\n    [118, '30.0'],\n    [120, '31.0'],\n    [122, '32.0'],\n    [124, '33.0'],\n    [126, '34.0'],\n    [128, '35.0'],\n    [130, '36.0'],\n    [132, '37.0'],\n    [134, '38.0'],\n    [136, '39.0'],\n    [138, '40.0'],\n    [140, '41.0'],\n    [142, '42.0'],\n  ],\n  // https://github.com/mdn/browser-compat-data/blob/main/browsers/firefox_android.json\n  FirefoxToFirefoxAndroid(firefox) {\n    return Math.max(firefox, 4);\n  },\n  // https://github.com/oven-sh/bun/releases\n  // This is the base data. Since it have no direct Safari equals by the\n  // WebKit / JavaScriptCore version, don't use mapping for future releases.\n  // https://github.com/oven-sh/bun/issues/396\n  SafariToBun: [\n    ['16.0', '0.1.1'],\n  ],\n  // https://github.com/mdn/browser-compat-data/blob/main/browsers/safari_ios.json\n  // https://en.wikipedia.org/wiki/Safari_version_history\n  // iOS 15+ uses similar to the desktop Safari versioning\n  SafariToIOS: [\n    ['3.0', '1.0'],\n    ['3.1', '2.0'],\n    ['4.0', '3.0'],\n    ['4.1', '3.2'],\n    ['5.0', '4.2'],\n    ['5.1', '5.0'],\n    ['6.0', '6.0'],\n    ['6.1', '7.0'],\n    ['7.1', '8.0'],\n    ['9.0', '9.0'],\n    ['9.1', '9.3'],\n    ['10.0', '10.0'],\n    ['10.1', '10.3'],\n    ['11.0', '11.0'],\n    ['11.1', '11.3'],\n    ['12.0', '12.0'],\n    ['12.1', '12.2'],\n    ['13.0', '13.0'],\n    ['13.1', '13.4'],\n    ['14.0', '14.0'],\n    ['14.1', '14.5'],\n  ],\n  SafariToPhantom: [\n    ['4.1', '1.9'],\n    ['6.0', '2.0'],\n  ],\n  // This is the base data. Since it have no direct Hermes version equals,\n  // don't use mapping for future releases.\n  HermesToReactNative: [\n    ['0.11', '0.69'],\n  ],\n};\n"
  },
  {
    "path": "packages/core-js-compat/src/modules-by-versions.mjs",
    "content": "export default {\n  3.1: [\n    'es.string.match-all',\n    'es.symbol.match-all',\n    'esnext.symbol.replace-all',\n  ],\n  3.2: [\n    'es.promise.all-settled',\n    'esnext.array.is-template-object',\n    'esnext.map.update-or-insert',\n    'esnext.symbol.async-dispose',\n  ],\n  3.3: [\n    'es.global-this',\n    'esnext.async-iterator.constructor',\n    'esnext.async-iterator.as-indexed-pairs',\n    'esnext.async-iterator.drop',\n    'esnext.async-iterator.every',\n    'esnext.async-iterator.filter',\n    'esnext.async-iterator.find',\n    'esnext.async-iterator.flat-map',\n    'esnext.async-iterator.for-each',\n    'esnext.async-iterator.from',\n    'esnext.async-iterator.map',\n    'esnext.async-iterator.reduce',\n    'esnext.async-iterator.some',\n    'esnext.async-iterator.take',\n    'esnext.async-iterator.to-array',\n    'esnext.iterator.constructor',\n    'esnext.iterator.as-indexed-pairs',\n    'esnext.iterator.drop',\n    'esnext.iterator.every',\n    'esnext.iterator.filter',\n    'esnext.iterator.find',\n    'esnext.iterator.flat-map',\n    'esnext.iterator.for-each',\n    'esnext.iterator.from',\n    'esnext.iterator.map',\n    'esnext.iterator.reduce',\n    'esnext.iterator.some',\n    'esnext.iterator.take',\n    'esnext.iterator.to-array',\n    'esnext.map.upsert',\n    'esnext.weak-map.upsert',\n  ],\n  3.4: [\n    'es.json.stringify',\n  ],\n  3.5: [\n    'esnext.object.iterate-entries',\n    'esnext.object.iterate-keys',\n    'esnext.object.iterate-values',\n  ],\n  3.6: [\n    'es.regexp.sticky',\n    'es.regexp.test',\n  ],\n  3.7: [\n    'es.aggregate-error',\n    'es.promise.any',\n    'es.reflect.to-string-tag',\n    'es.string.replace-all',\n    'esnext.map.emplace',\n    'esnext.weak-map.emplace',\n  ],\n  3.8: [\n    'esnext.array.at',\n    'esnext.array.filter-out',\n    'esnext.array.unique-by',\n    'esnext.bigint.range',\n    'esnext.number.range',\n    'esnext.typed-array.at',\n    'esnext.typed-array.filter-out',\n  ],\n  3.9: [\n    'esnext.array.find-last',\n    'esnext.array.find-last-index',\n    'esnext.typed-array.find-last',\n    'esnext.typed-array.find-last-index',\n    'esnext.typed-array.unique-by',\n  ],\n  3.11: [\n    'esnext.object.has-own',\n  ],\n  3.12: [\n    'esnext.symbol.matcher',\n    'esnext.symbol.metadata',\n  ],\n  3.15: [\n    'es.date.get-year',\n    'es.date.set-year',\n    'es.date.to-gmt-string',\n    'es.escape',\n    'es.regexp.dot-all',\n    'es.string.substr',\n    'es.unescape',\n  ],\n  3.16: [\n    'esnext.array.filter-reject',\n    'esnext.array.group-by',\n    'esnext.typed-array.filter-reject',\n    'esnext.typed-array.group-by',\n  ],\n  3.17: [\n    'es.array.at',\n    'es.object.has-own',\n    'es.string.at-alternative',\n    'es.typed-array.at',\n  ],\n  3.18: [\n    'esnext.array.from-async',\n    'esnext.typed-array.from-async',\n  ],\n  '3.20': [\n    'es.error.cause',\n    'es.error.to-string',\n    'es.aggregate-error.cause',\n    'es.number.to-exponential',\n    'esnext.array.group-by-to-map',\n    'esnext.array.to-reversed',\n    'esnext.array.to-sorted',\n    'esnext.array.to-spliced',\n    'esnext.array.with',\n    'esnext.function.is-callable',\n    'esnext.function.is-constructor',\n    'esnext.function.un-this',\n    'esnext.iterator.to-async',\n    'esnext.string.cooked',\n    'esnext.typed-array.to-reversed',\n    'esnext.typed-array.to-sorted',\n    'esnext.typed-array.to-spliced',\n    'esnext.typed-array.with',\n    'web.dom-exception.constructor',\n    'web.dom-exception.stack',\n    'web.dom-exception.to-string-tag',\n    'web.structured-clone',\n  ],\n  3.21: [\n    'web.atob',\n    'web.btoa',\n  ],\n  3.23: [\n    'es.array.find-last',\n    'es.array.find-last-index',\n    'es.array.push',\n    'es.array.unshift',\n    'es.typed-array.find-last',\n    'es.typed-array.find-last-index',\n    'esnext.array.group',\n    'esnext.array.group-to-map',\n    'esnext.symbol.metadata-key',\n  ],\n  3.24: [\n    'esnext.async-iterator.indexed',\n    'esnext.iterator.indexed',\n  ],\n  3.25: [\n    'es.object.proto',\n  ],\n  3.26: [\n    'esnext.string.is-well-formed',\n    'esnext.string.to-well-formed',\n    'web.self',\n  ],\n  3.27: [\n    'esnext.suppressed-error.constructor',\n    'esnext.async-disposable-stack.constructor',\n    'esnext.async-iterator.async-dispose',\n    'esnext.disposable-stack.constructor',\n    'esnext.iterator.dispose',\n    'esnext.set.difference.v2',\n    'esnext.set.intersection.v2',\n    'esnext.set.is-disjoint-from.v2',\n    'esnext.set.is-subset-of.v2',\n    'esnext.set.is-superset-of.v2',\n    'esnext.set.symmetric-difference.v2',\n    'esnext.set.union.v2',\n    'esnext.string.dedent',\n  ],\n  3.28: [\n    'es.array.to-reversed',\n    'es.array.to-sorted',\n    'es.array.to-spliced',\n    'es.array.with',\n    'es.typed-array.to-reversed',\n    'es.typed-array.to-sorted',\n    'es.typed-array.with',\n    'esnext.array-buffer.detached',\n    'esnext.array-buffer.transfer',\n    'esnext.array-buffer.transfer-to-fixed-length',\n    'esnext.function.demethodize',\n    'esnext.iterator.range',\n    'esnext.json.is-raw-json',\n    'esnext.json.parse',\n    'esnext.json.raw-json',\n    'esnext.symbol.is-registered',\n    'esnext.symbol.is-well-known',\n  ],\n  3.29: [\n    'web.url-search-params.size',\n  ],\n  '3.30': [\n    'web.url.can-parse',\n  ],\n  3.31: [\n    'es.string.is-well-formed',\n    'es.string.to-well-formed',\n    'esnext.function.metadata',\n    'esnext.object.group-by',\n    'esnext.promise.with-resolvers',\n    'esnext.symbol.is-registered-symbol',\n    'esnext.symbol.is-well-known-symbol',\n    'web.url-search-params.delete',\n    'web.url-search-params.has',\n  ],\n  3.32: [\n    'esnext.data-view.get-float16',\n    'esnext.data-view.get-uint8-clamped',\n    'esnext.data-view.set-float16',\n    'esnext.data-view.set-uint8-clamped',\n    'esnext.math.f16round',\n  ],\n  3.33: [\n    'esnext.regexp.escape',\n  ],\n  3.34: [\n    'es.map.group-by',\n    'es.object.group-by',\n    'es.promise.with-resolvers',\n    'esnext.uint8-array.from-base64',\n    'esnext.uint8-array.from-hex',\n    'esnext.uint8-array.to-base64',\n    'esnext.uint8-array.to-hex',\n  ],\n  3.36: [\n    'es.array-buffer.detached',\n    'es.array-buffer.transfer',\n    'es.array-buffer.transfer-to-fixed-length',\n  ],\n  3.37: [\n    'es.set.difference.v2',\n    'es.set.intersection.v2',\n    'es.set.is-disjoint-from.v2',\n    'es.set.is-subset-of.v2',\n    'es.set.is-superset-of.v2',\n    'es.set.symmetric-difference.v2',\n    'es.set.union.v2',\n    'esnext.math.sum-precise',\n    'esnext.symbol.custom-matcher',\n    'web.url.parse',\n  ],\n  3.38: [\n    'esnext.uint8-array.set-from-base64',\n    'esnext.uint8-array.set-from-hex',\n  ],\n  3.39: [\n    'es.iterator.constructor',\n    'es.iterator.drop',\n    'es.iterator.every',\n    'es.iterator.filter',\n    'es.iterator.find',\n    'es.iterator.flat-map',\n    'es.iterator.for-each',\n    'es.iterator.from',\n    'es.iterator.map',\n    'es.iterator.reduce',\n    'es.iterator.some',\n    'es.iterator.take',\n    'es.iterator.to-array',\n    'es.promise.try',\n    'esnext.iterator.concat',\n    'esnext.map.get-or-insert',\n    'esnext.map.get-or-insert-computed',\n    'esnext.weak-map.get-or-insert',\n    'esnext.weak-map.get-or-insert-computed',\n  ],\n  '3.40': [\n    'esnext.error.is-error',\n  ],\n  3.41: [\n    'es.data-view.get-float16',\n    'es.data-view.set-float16',\n    'es.math.f16round',\n    'es.regexp.escape',\n  ],\n  3.43: [\n    'es.array.from-async',\n    'es.async-disposable-stack.constructor',\n    'es.async-iterator.async-dispose',\n    'es.disposable-stack.constructor',\n    'es.error.is-error',\n    'es.iterator.dispose',\n    'es.suppressed-error.constructor',\n    'es.symbol.async-dispose',\n    'es.symbol.dispose',\n    'esnext.iterator.chunks',\n    'esnext.iterator.windows',\n    'esnext.iterator.zip',\n    'esnext.iterator.zip-keyed',\n    'esnext.number.clamp',\n  ],\n  3.44: [\n    'esnext.iterator.sliding',\n  ],\n  3.45: [\n    'es.math.sum-precise',\n    'es.uint8-array.from-base64',\n    'es.uint8-array.from-hex',\n    'es.uint8-array.set-from-base64',\n    'es.uint8-array.set-from-hex',\n    'es.uint8-array.to-base64',\n    'es.uint8-array.to-hex',\n  ],\n  3.47: [\n    'es.iterator.concat',\n    'es.json.is-raw-json',\n    'es.json.parse',\n    'es.json.raw-json',\n  ],\n  3.48: [\n    'es.map.get-or-insert',\n    'es.map.get-or-insert-computed',\n    'es.weak-map.get-or-insert',\n    'es.weak-map.get-or-insert-computed',\n  ],\n};\n"
  },
  {
    "path": "packages/core-js-compat/targets-parser.js",
    "content": "'use strict';\nconst browserslist = require('browserslist');\nconst { compare, has } = require('./helpers');\nconst external = require('./external');\n\nconst aliases = new Map([\n  ['and_chr', 'chrome-android'],\n  ['and_ff', 'firefox-android'],\n  ['ie_mob', 'ie'],\n  ['ios_saf', 'ios'],\n  ['oculus', 'quest'],\n  ['op_mob', 'opera-android'],\n  // TODO: Remove from `core-js@4`\n  ['opera_mobile', 'opera-android'],\n  ['react', 'react-native'],\n  ['reactnative', 'react-native'],\n]);\n\nconst validTargets = new Set([\n  'android',\n  'bun',\n  'chrome',\n  'chrome-android',\n  'deno',\n  'edge',\n  'electron',\n  'firefox',\n  'firefox-android',\n  'hermes',\n  'ie',\n  'ios',\n  'node',\n  'opera',\n  'opera-android',\n  'phantom',\n  'quest',\n  'react-native',\n  'rhino',\n  'safari',\n  'samsung',\n]);\n\nconst toLowerKeys = function (object) {\n  return Object.entries(object).reduce((accumulator, [key, value]) => {\n    accumulator[key.toLowerCase()] = value;\n    return accumulator;\n  }, {});\n};\n\nmodule.exports = function (targets) {\n  const { browsers, esmodules, node, ...rest } = (typeof targets != 'object' || Array.isArray(targets))\n    ? { browsers: targets } : toLowerKeys(targets);\n\n  const list = Object.entries(rest);\n\n  const normalizedESModules = esmodules === 'intersect' ? 'intersect' : !!esmodules;\n\n  if (browsers && normalizedESModules !== true) {\n    if (typeof browsers == 'string' || Array.isArray(browsers)) {\n      list.push(...browserslist(browsers).map(it => it.split(' ')));\n    } else {\n      list.push(...Object.entries(browsers));\n    }\n  }\n\n  if (normalizedESModules === true) {\n    list.push(...Object.entries(external.modules));\n  }\n\n  if (node) {\n    list.push(['node', node === 'current' ? process.versions.node : node]);\n  }\n\n  const normalized = list.map(([engine, version]) => {\n    if (has(browserslist.aliases, engine)) {\n      engine = browserslist.aliases[engine];\n    }\n    if (aliases.has(engine)) {\n      engine = aliases.get(engine);\n    }\n    return [engine, String(version)];\n  }).filter(([engine]) => {\n    return validTargets.has(engine);\n  }).sort(([a], [b]) => {\n    return a < b ? -1 : a > b ? 1 : 0;\n  });\n\n  const reduced = new Map();\n\n  for (const [engine, version] of normalized) {\n    if (!reduced.has(engine) || compare(version, '<=', reduced.get(engine))) {\n      reduced.set(engine, version);\n    }\n  }\n\n  if (normalizedESModules === 'intersect') {\n    const modulesData = external.modules;\n    for (const [engine, version] of reduced) {\n      if (has(modulesData, engine)) {\n        if (compare(modulesData[engine], '>', version)) {\n          reduced.set(engine, modulesData[engine]);\n        }\n      } else {\n        reduced.delete(engine);\n      }\n    }\n  }\n\n  return reduced;\n};\n"
  },
  {
    "path": "packages/core-js-pure/.npmignore",
    "content": "node_modules/\n*.log\n.*\n\n/override/\n"
  },
  {
    "path": "packages/core-js-pure/README.md",
    "content": "![logo](https://user-images.githubusercontent.com/2213682/146607186-8e13ddef-26a4-4ebf-befd-5aac9d77c090.png)\n\n<div align=\"center\">\n\n[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js-pure.svg)](https://www.npmjs.com/package/core-js-pure) [![core-js-pure downloads](https://img.shields.io/npm/dm/core-js-pure.svg?label=npm%20i%20core-js-pure)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18)\n\n</div>\n\n**I highly recommend reading this: [So, what's next?](https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md)**\n---\n\n> [`core-js`](https://core-js.io) is a modular standard library for JavaScript. Includes polyfills for ECMAScript up to 2026: [promises](https://core-js.io/docs/features/ecmascript/promise), [symbols](https://core-js.io/docs/features/ecmascript/symbol), [collections](https://core-js.io/docs/features/ecmascript/collections), [iterators](https://core-js.io/docs/features/ecmascript/iterator), [typed arrays](https://core-js.io/docs/features/ecmascript/typed-arrays), many other features, ECMAScript proposals, some cross-platform WHATWG / W3C features and proposals like [`URL`](https://core-js.io/docs/features/web-standards/url-and-urlsearchparams). You can load only required features or use it without global namespace pollution.\n\n## Raising funds\n\n`core-js` isn't backed by a company, so the future of this project depends on you. Become a sponsor or a backer if you are interested in `core-js`: [**Open Collective**](https://opencollective.com/core-js), [**Patreon**](https://patreon.com/zloirock), [**Boosty**](https://boosty.to/zloirock), **Bitcoin ( bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz )**, [**Alipay**](https://user-images.githubusercontent.com/2213682/219464783-c17ad329-17ce-4795-82a7-f609493345ed.png).\n\n---\n\n<a href=\"https://opencollective.com/core-js/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/0/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/1/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/2/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/3/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/4/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/5/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/6/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/7/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/8/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/9/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/10/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/10/avatar.svg\"></a><a href=\"https://opencollective.com/core-js/sponsor/11/website\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/sponsor/11/avatar.svg\"></a>\n\n---\n\n<a href=\"https://opencollective.com/core-js#backers\" target=\"_blank\"><img src=\"https://opencollective.com/core-js/backers.svg?width=890\"></a>\n\n---\n\n[*Example of usage*](https://tinyurl.com/28zqjbun):\n```js\nimport 'core-js/actual';\n\nPromise.try(() => 42).then(it => console.log(it)); // => 42\n\nArray.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\n[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n*You can load only required features*:\n```js\nimport 'core-js/actual/promise';\nimport 'core-js/actual/set';\nimport 'core-js/actual/iterator';\nimport 'core-js/actual/array/from';\nimport 'core-js/actual/array/flat-map';\nimport 'core-js/actual/structured-clone';\n\nPromise.try(() => 42).then(it => console.log(it)); // => 42\n\nArray.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\n[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n*Or use it without global namespace pollution*:\n```js\nimport Promise from 'core-js-pure/actual/promise';\nimport Set from 'core-js-pure/actual/set';\nimport Iterator from 'core-js-pure/actual/iterator';\nimport from from 'core-js-pure/actual/array/from';\nimport flatMap from 'core-js-pure/actual/array/flat-map';\nimport structuredClone from 'core-js-pure/actual/structured-clone';\n\nPromise.try(() => 42).then(it => console.log(it)); // => 42\n\nfrom(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\nflatMap([1, 2], it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n\nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])\n```\n\n**It's a version without global namespace pollution (the third example), for more info see [`core-js` documentation](https://core-js.io)**.\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/a-map.js",
    "content": "'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// Perform ? RequireInternalSlot(M, [[MapData]])\nmodule.exports = function (it) {\n  if (typeof it == 'object' && 'size' in it && 'has' in it && 'get' in it && 'set' in it && 'delete' in it && 'entries' in it) return it;\n  throw new $TypeError(tryToString(it) + ' is not a map');\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/a-set.js",
    "content": "'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n  if (typeof it == 'object' && 'size' in it && 'has' in it && 'add' in it && 'delete' in it && 'keys' in it) return it;\n  throw new $TypeError(tryToString(it) + ' is not a set');\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/a-weak-map.js",
    "content": "'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// Perform ? RequireInternalSlot(M, [[WeakMapData]])\nmodule.exports = function (it) {\n  if (typeof it == 'object' && 'has' in it && 'get' in it && 'set' in it && 'delete' in it) return it;\n  throw new $TypeError(tryToString(it) + ' is not a weakmap');\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/a-weak-set.js",
    "content": "'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// Perform ? RequireInternalSlot(M, [[WeakSetData]])\nmodule.exports = function (it) {\n  if (typeof it == 'object' && 'has' in it && 'add' in it && 'delete' in it) return it;\n  throw new $TypeError(tryToString(it) + ' is not a weakset');\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/add-to-unscopables.js",
    "content": "'use strict';\nmodule.exports = function () { /* empty */ };\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/array-buffer-byte-length.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/array-buffer-is-detached.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/array-buffer-transfer.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/array-buffer-view-core.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/array-buffer.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/collection.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar defineProperty = require('../internals/object-define-property').f;\nvar forEach = require('../internals/array-iteration').forEach;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n  var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n  var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var NativeConstructor = globalThis[CONSTRUCTOR_NAME];\n  var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n  var exported = {};\n  var Constructor;\n\n  if (!DESCRIPTORS || !isCallable(NativeConstructor)\n    || !(IS_WEAK || NativePrototype.forEach && !fails(function () { new NativeConstructor().entries().next(); }))\n  ) {\n    // create collection constructor\n    Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n    InternalMetadataModule.enable();\n  } else {\n    Constructor = wrapper(function (target, iterable) {\n      setInternalState(anInstance(target, Prototype), {\n        type: CONSTRUCTOR_NAME,\n        collection: new NativeConstructor()\n      });\n      if (!isNullOrUndefined(iterable)) iterate(iterable, target[ADDER], { that: target, AS_ENTRIES: IS_MAP });\n    });\n\n    var Prototype = Constructor.prototype;\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    forEach(['add', 'clear', 'delete', 'forEach', 'get', 'has', 'set', 'keys', 'values', 'entries'], function (KEY) {\n      var IS_ADDER = KEY === 'add' || KEY === 'set';\n      if (KEY in NativePrototype && !(IS_WEAK && KEY === 'clear')) {\n        createNonEnumerableProperty(Prototype, KEY, function (a, b) {\n          var that = this;\n          var collection = getInternalState(that).collection;\n          if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY === 'get' ? undefined : false;\n          var result = collection[KEY](KEY === 'forEach' ? function (value, key) {\n            call(a, b, value, key, that);\n          } : a === 0 ? 0 : a, b);\n          return IS_ADDER ? that : result;\n        });\n      }\n    });\n\n    IS_WEAK || defineProperty(Prototype, 'size', {\n      configurable: true,\n      get: function () {\n        return getInternalState(this).collection.size;\n      }\n    });\n  }\n\n  setToStringTag(Constructor, CONSTRUCTOR_NAME, false, true);\n\n  exported[CONSTRUCTOR_NAME] = Constructor;\n  $({ global: true, forced: true }, exported);\n\n  if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n  return Constructor;\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/define-built-in-accessor.js",
    "content": "'use strict';\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n  return defineProperty.f(target, name, descriptor);\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/define-built-in.js",
    "content": "'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (target, key, value, options) {\n  if (options && options.enumerable) target[key] = value;\n  else createNonEnumerableProperty(target, key, value);\n  return target;\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/define-built-ins.js",
    "content": "'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) {\n    if (options && options.unsafe && target[key]) target[key] = src[key];\n    else defineBuiltIn(target, key, src[key], options);\n  } return target;\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/entry-unbind.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn;\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/entry-virtual.js",
    "content": "'use strict';\nvar path = require('../internals/path');\n\nmodule.exports = function (CONSTRUCTOR) {\n  return path[CONSTRUCTOR + 'Prototype'];\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/export.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar isCallable = require('../internals/is-callable');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\n// add debugging info\nrequire('../internals/shared-store');\n\nvar wrapConstructor = function (NativeConstructor) {\n  var Wrapper = function (a, b, c) {\n    if (this instanceof Wrapper) {\n      switch (arguments.length) {\n        case 0: return new NativeConstructor();\n        case 1: return new NativeConstructor(a);\n        case 2: return new NativeConstructor(a, b);\n      } return new NativeConstructor(a, b, c);\n    } return apply(NativeConstructor, this, arguments);\n  };\n  Wrapper.prototype = NativeConstructor.prototype;\n  return Wrapper;\n};\n\n/*\n  options.target         - name of the target object\n  options.global         - target is the global object\n  options.stat           - export as static methods of target\n  options.proto          - export as prototype methods of target\n  options.real           - real prototype method for the `pure` version\n  options.forced         - export even if the native feature is available\n  options.bind           - bind methods to the target, required for the `pure` version\n  options.wrap           - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe         - use the simple assignment of property instead of delete + defineProperty\n  options.sham           - add a flag to not completely full polyfills\n  options.enumerable     - export as enumerable property\n  options.dontCallGetSet - prevent calling a getter on target\n  options.name           - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var PROTO = options.proto;\n\n  var nativeSource = GLOBAL ? globalThis : STATIC ? globalThis[TARGET] : globalThis[TARGET] && globalThis[TARGET].prototype;\n\n  var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];\n  var targetPrototype = target.prototype;\n\n  var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n  var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n  for (key in source) {\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contains in native\n    USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);\n\n    targetProperty = target[key];\n\n    if (USE_NATIVE) if (options.dontCallGetSet) {\n      descriptor = getOwnPropertyDescriptor(nativeSource, key);\n      nativeProperty = descriptor && descriptor.value;\n    } else nativeProperty = nativeSource[key];\n\n    // export native or implementation\n    sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n    if (!FORCED && !PROTO && typeof targetProperty == typeof sourceProperty) continue;\n\n    // bind methods to global for calling from export context\n    if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, globalThis);\n    // wrap global constructors for prevent changes in this version\n    else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n    // make static versions for prototype methods\n    else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);\n    // default case\n    else resultProperty = sourceProperty;\n\n    // add a flag to not completely full polyfills\n    if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(resultProperty, 'sham', true);\n    }\n\n    createNonEnumerableProperty(target, key, resultProperty);\n\n    if (PROTO) {\n      VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n      if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {\n        createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n      }\n      // export virtual prototype methods\n      createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);\n      // export real prototype methods\n      if (options.real && targetPrototype && (FORCED || !targetPrototype[key])) {\n        createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n      }\n    }\n  }\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/fix-regexp-well-known-symbol-logic.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/get-built-in-prototype-method.js",
    "content": "'use strict';\nvar globalThis = require('../internals/global-this');\nvar path = require('../internals/path');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n  var Namespace = path[CONSTRUCTOR + 'Prototype'];\n  var pureMethod = Namespace && Namespace[METHOD];\n  if (pureMethod) return pureMethod;\n  var NativeConstructor = globalThis[CONSTRUCTOR];\n  var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n  return NativePrototype && NativePrototype[METHOD];\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/get-built-in.js",
    "content": "'use strict';\nvar path = require('../internals/path');\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (variable) {\n  return isCallable(variable) ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(globalThis[namespace])\n    : path[namespace] && path[namespace][method] || globalThis[namespace] && globalThis[namespace][method];\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/is-pure.js",
    "content": "'use strict';\nmodule.exports = true;\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/make-built-in.js",
    "content": "'use strict';\nmodule.exports = function (value) {\n  return value;\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/map-helpers.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar caller = require('../internals/caller');\n\nvar Map = getBuiltIn('Map');\n\nmodule.exports = {\n  Map: Map,\n  set: caller('set', 2),\n  get: caller('get', 1),\n  has: caller('has', 1),\n  remove: caller('delete', 1),\n  proto: Map.prototype\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/map-iterate.js",
    "content": "'use strict';\nvar iterateSimple = require('../internals/iterate-simple');\n\nmodule.exports = function (map, fn, interruptible) {\n  return interruptible ? iterateSimple(map.entries(), function (entry) {\n    return fn(entry[1], entry[0]);\n  }, true) : map.forEach(fn);\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/path.js",
    "content": "'use strict';\nmodule.exports = {};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/regexp-exec.js",
    "content": "'use strict';\nmodule.exports = /./.exec;\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/regexp-sticky-helpers.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/regexp-unsupported-dot-all.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/set-helpers.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar caller = require('../internals/caller');\n\nvar Set = getBuiltIn('Set');\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n  Set: Set,\n  add: caller('add', 1),\n  has: caller('has', 1),\n  remove: caller('delete', 1),\n  proto: SetPrototype\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/set-iterate.js",
    "content": "'use strict';\nvar iterateSimple = require('../internals/iterate-simple');\n\nmodule.exports = function (set, fn, interruptible) {\n  return interruptible ? iterateSimple(set.keys(), fn, true) : set.forEach(fn);\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/set-method-accept-set-like.js",
    "content": "'use strict';\nmodule.exports = function () {\n  return false;\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/set-size.js",
    "content": "'use strict';\nmodule.exports = function (set) {\n  return set.size;\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/set-to-string-tag.js",
    "content": "'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/object-to-string');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC, SET_METHOD) {\n  var target = STATIC ? it : it && it.prototype;\n  if (target) {\n    if (!hasOwn(target, TO_STRING_TAG)) {\n      defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n    }\n    if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {\n      createNonEnumerableProperty(target, 'toString', toString);\n    }\n  }\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/to-offset.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/typed-array-constructor.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/typed-array-constructors-require-wrappers.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/typed-array-from-same-type-and-list.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/typed-array-from.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/weak-map-helpers.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar caller = require('../internals/caller');\n\nmodule.exports = {\n  WeakMap: getBuiltIn('WeakMap'),\n  set: caller('set', 2),\n  get: caller('get', 1),\n  has: caller('has', 1),\n  remove: caller('delete', 1)\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/internals/weak-set-helpers.js",
    "content": "'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar caller = require('../internals/caller');\n\nmodule.exports = {\n  WeakSet: getBuiltIn('WeakSet'),\n  add: caller('add', 1),\n  has: caller('has', 1),\n  remove: caller('delete', 1)\n};\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.array-buffer.constructor.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.array-buffer.detached.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.array-buffer.is-view.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.array-buffer.slice.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.array-buffer.transfer-to-fixed-length.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.array-buffer.transfer.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.data-view.get-float16.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.data-view.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.data-view.set-float16.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.date.to-json.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar toISOString = require('../internals/date-to-iso-string');\nvar classof = require('../internals/classof-raw');\nvar fails = require('../internals/fails');\n\nvar FORCED = fails(function () {\n  return new Date(NaN).toJSON() !== null\n    || call(Date.prototype.toJSON, { toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.es/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  toJSON: function toJSON(key) {\n    var O = toObject(this);\n    var pv = toPrimitive(O, 'number');\n    return typeof pv == 'number' && !isFinite(pv) ? null :\n      (!('toISOString' in O) && classof(O) === 'Date') ? call(toISOString, O) : O.toISOString();\n  }\n});\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.date.to-primitive.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.date.to-string.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.error.to-string.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.function.name.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.math.to-string-tag.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.object.proto.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.object.to-string.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.reflect.to-string-tag.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.regexp.constructor.js",
    "content": "'use strict';\nvar setSpecies = require('../internals/set-species');\n\nsetSpecies('RegExp');\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.regexp.dot-all.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.regexp.exec.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.regexp.flags.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.regexp.sticky.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.regexp.test.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.regexp.to-string.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.string.match.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.string.replace.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.string.search.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.string.split.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.symbol.async-dispose.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-async-explicit-resource-management\ndefineWellKnownSymbol('asyncDispose');\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.symbol.description.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.symbol.dispose.js",
    "content": "'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.at.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.copy-within.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.every.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.fill.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.filter.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.find-index.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.find-last-index.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.find-last.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.find.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.float32-array.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.float64-array.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.for-each.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.from.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.includes.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.index-of.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.int16-array.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.int32-array.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.int8-array.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.iterator.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.join.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.last-index-of.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.map.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.of.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.reduce-right.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.reduce.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.reverse.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.set.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.slice.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.some.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.sort.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.subarray.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.to-locale-string.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.to-reversed.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.to-sorted.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.to-string.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.uint16-array.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.uint32-array.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.uint8-array.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.uint8-clamped-array.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.typed-array.with.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.uint8-array.from-base64.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.uint8-array.from-hex.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.uint8-array.set-from-base64.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.uint8-array.set-from-hex.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.uint8-array.to-base64.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/es.uint8-array.to-hex.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.array-buffer.detached.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.array-buffer.transfer-to-fixed-length.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.array-buffer.transfer.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.array.last-index.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.array.last-item.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.data-view.get-float16.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.data-view.get-uint8-clamped.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.data-view.set-float16.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.data-view.set-uint8-clamped.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.typed-array.at.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.typed-array.filter-out.js",
    "content": "'use strict';\n// TODO: Remove from `core-js@4`\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.typed-array.filter-reject.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.typed-array.find-last-index.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.typed-array.find-last.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.typed-array.from-async.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.typed-array.group-by.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.typed-array.to-spliced.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.typed-array.unique-by.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.uint8-array.from-base64.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.uint8-array.from-hex.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.uint8-array.set-from-base64.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.uint8-array.set-from-hex.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.uint8-array.to-base64.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/esnext.uint8-array.to-hex.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/web.dom-collections.for-each.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/web.dom-collections.iterator.js",
    "content": "'use strict';\nrequire('../modules/es.array.iterator');\nvar DOMIterables = require('../internals/dom-iterables');\nvar globalThis = require('../internals/global-this');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  setToStringTag(globalThis[COLLECTION_NAME], COLLECTION_NAME);\n  Iterators[COLLECTION_NAME] = Iterators.Array;\n}\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/web.self.js",
    "content": "'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\n\n// `self` getter\n// https://html.spec.whatwg.org/multipage/window-object.html#dom-self\n$({ global: true, forced: globalThis.self !== globalThis }, {\n  self: globalThis\n});\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/web.url-search-params.delete.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/web.url-search-params.has.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/web.url-search-params.size.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/override/modules/web.url.to-json.js",
    "content": "// empty\n"
  },
  {
    "path": "packages/core-js-pure/package.json",
    "content": "{\n  \"name\": \"core-js-pure\",\n  \"version\": \"3.49.0\",\n  \"type\": \"commonjs\",\n  \"description\": \"Standard library\",\n  \"keywords\": [\n    \"ES3\",\n    \"ES5\",\n    \"ES6\",\n    \"ES7\",\n    \"ES2015\",\n    \"ES2016\",\n    \"ES2017\",\n    \"ES2018\",\n    \"ES2019\",\n    \"ES2020\",\n    \"ES2021\",\n    \"ES2022\",\n    \"ES2023\",\n    \"ES2024\",\n    \"ES2025\",\n    \"ES2026\",\n    \"ECMAScript 3\",\n    \"ECMAScript 5\",\n    \"ECMAScript 6\",\n    \"ECMAScript 7\",\n    \"ECMAScript 2015\",\n    \"ECMAScript 2016\",\n    \"ECMAScript 2017\",\n    \"ECMAScript 2018\",\n    \"ECMAScript 2019\",\n    \"ECMAScript 2020\",\n    \"ECMAScript 2021\",\n    \"ECMAScript 2022\",\n    \"ECMAScript 2023\",\n    \"ECMAScript 2024\",\n    \"ECMAScript 2025\",\n    \"ECMAScript 2026\",\n    \"Map\",\n    \"Set\",\n    \"WeakMap\",\n    \"WeakSet\",\n    \"TypedArray\",\n    \"Promise\",\n    \"Observable\",\n    \"Symbol\",\n    \"Iterator\",\n    \"AsyncIterator\",\n    \"URL\",\n    \"URLSearchParams\",\n    \"queueMicrotask\",\n    \"setImmediate\",\n    \"structuredClone\",\n    \"polyfill\",\n    \"ponyfill\",\n    \"shim\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/zloirock/core-js.git\",\n    \"directory\": \"packages/core-js-pure\"\n  },\n  \"homepage\": \"https://core-js.io\",\n  \"bugs\": {\n    \"url\": \"https://github.com/zloirock/core-js/issues\"\n  },\n  \"funding\": {\n    \"type\": \"opencollective\",\n    \"url\": \"https://opencollective.com/core-js\"\n  },\n  \"license\": \"MIT\",\n  \"author\": {\n    \"name\": \"Denis Pushkarev\",\n    \"email\": \"zloirock@zloirock.ru\",\n    \"url\": \"http://zloirock.ru\"\n  },\n  \"sideEffects\": [\n    \"./modules/*.js\"\n  ],\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"postinstall\": \"node -e \\\"try{require('./postinstall')}catch(e){}\\\"\"\n  }\n}\n"
  },
  {
    "path": "scripts/build-compat/data.mjs",
    "content": "/* https://github.com/import-js/eslint-plugin-import/issues/2181 */\nimport { dataWithIgnored as data, ignored, modules } from 'core-js-compat/src/data.mjs';\nimport external from 'core-js-compat/src/external.mjs';\nimport mappings from 'core-js-compat/src/mapping.mjs';\nimport helpers from 'core-js-compat/helpers.js';\n\nconst { compare, has, semver, sortObjectByKey } = helpers;\n\nfor (const scope of [data, external]) {\n  for (const [key, module] of Object.entries(scope)) {\n    const { chrome, ie } = module;\n\n    function map(mappingKey) {\n      const [engine, targetKey] = mappingKey.split('To')\n        .map(it => it.replace(/(?<lower>[a-z])(?<upper>[A-Z])/, '$<lower>-$<upper>').toLowerCase());\n      const version = module[engine];\n      if (!version || has(module, targetKey)) return;\n      const mapping = mappings[mappingKey];\n      if (typeof mapping == 'function') {\n        return module[targetKey] = String(mapping(version));\n      }\n      const source = semver(version);\n      for (const [from, to] of mapping) {\n        if (compare(source, '<=', from)) {\n          return module[targetKey] = String(to);\n        }\n      }\n    }\n\n    if (/^(?:es|esnext)\\./.test(key)) {\n      map('ChromeToDeno');\n      map('ChromeToNode');\n    }\n    if (!has(module, 'edge')) {\n      if (ie && !key.includes('immediate')) {\n        module.edge = '12';\n      } else if (chrome) {\n        module.edge = String(Math.max(chrome, 79));\n      }\n    }\n    if (/^(?:es|esnext|web)\\./.test(key)) {\n      map('ChromeToElectron');\n    }\n    map('ChromeToOpera');\n    map('ChromeToChromeAndroid');\n    map('ChromeToAndroid');\n    if (!has(module, 'android') && module['chrome-android']) {\n      // https://github.com/mdn/browser-compat-data/blob/main/docs/matching-browser-releases/index.md#version-numbers-for-features-in-android-webview\n      module.android = String(Math.max(module['chrome-android'], 37));\n    }\n    if (!has(module, 'opera-android') && module.opera <= 42) {\n      module['opera-android'] = module.opera;\n    } else {\n      map('ChromeAndroidToOperaAndroid');\n    }\n    // TODO: Remove from `core-js@4`\n    if (has(module, 'opera-android')) {\n      module.opera_mobile = module['opera-android'];\n    }\n    map('ChromeAndroidToQuest');\n    // TODO: Remove from `core-js@4`\n    if (has(module, 'quest')) {\n      module.oculus = module.quest;\n    }\n    map('ChromeAndroidToSamsung');\n    if (/^(?:es|esnext)\\./.test(key)) {\n      map('SafariToBun');\n    }\n    map('FirefoxToFirefoxAndroid');\n    map('SafariToIOS');\n    if (!has(module, 'ios') && has(module, 'safari')) {\n      module.ios = module.safari;\n    }\n    map('SafariToPhantom');\n    map('HermesToReactNative');\n\n    for (const [engine, version] of Object.entries(module)) {\n      if (!version) delete module[engine];\n    }\n\n    scope[key] = sortObjectByKey(module);\n  }\n}\n\nfunction write(filename, content) {\n  return fs.writeJson(`packages/core-js-compat/${ filename }.json`, content, { spaces: '  ' });\n}\n\nconst dataWithoutIgnored = { ...data };\n\nfor (const ignore of ignored) delete dataWithoutIgnored[ignore];\n\nawait Promise.all([\n  write('data', dataWithoutIgnored),\n  write('modules', modules),\n  write('external', external),\n  // version for compat data tests\n  fs.writeFile('tests/compat/compat-data.js', `;(typeof global != 'undefined' ? global : Function('return this')()).data = ${\n    JSON.stringify(data, null, '  ')\n  }`),\n]);\n\necho(chalk.green('compat data rebuilt'));\n"
  },
  {
    "path": "scripts/build-compat/entries.mjs",
    "content": "import konan from 'konan';\nimport { modules } from 'core-js-compat/src/data.mjs';\nimport helpers from 'core-js-compat/helpers.js';\n\nasync function getModulesForEntryPoint(path, parent) {\n  const entry = new URL(path, parent);\n\n  const match = entry.pathname.match(/[/\\\\]modules[/\\\\](?<module>[^/\\\\]+)$/);\n  if (match) return [match.groups.module];\n\n  entry.pathname += await fs.pathExists(entry) ? '/index.js' : '.js';\n\n  if (!await fs.pathExists(entry)) return [];\n\n  const file = await fs.readFile(entry, 'utf8');\n  const result = await Promise.all(konan(String(file)).strings.map(dependency => {\n    return getModulesForEntryPoint(dependency, entry);\n  }));\n\n  return helpers.intersection(result.flat(), modules);\n}\n\nconst entriesList = await glob([\n  'packages/core-js/index.js',\n  'packages/core-js/actual/**/*.js',\n  'packages/core-js/es/**/*.js',\n  'packages/core-js/full/**/*.js',\n  'packages/core-js/features/**/*.js',\n  'packages/core-js/modules/*.js',\n  'packages/core-js/proposals/**/*.js',\n  'packages/core-js/stable/**/*.js',\n  'packages/core-js/stage/**/*.js',\n  'packages/core-js/web/**/*.js',\n]);\n\nconst entriesMap = helpers.sortObjectByKey(Object.fromEntries(await Promise.all(entriesList.map(async file => {\n  // TODO: store entries without the package name in `core-js@4`\n  const entry = file.replace(/\\.js$/, '').replace(/\\/index$/, '');\n  return [entry.slice(9), await getModulesForEntryPoint(`../../${ entry }`, import.meta.url)];\n}))));\n\nawait fs.writeJson('packages/core-js-compat/entries.json', entriesMap, { spaces: '  ' });\n\necho(chalk.green('entries data rebuilt'));\n"
  },
  {
    "path": "scripts/build-compat/index.mjs",
    "content": "await import('./data.mjs');\nawait import('./entries.mjs');\nawait import('./modules-by-versions.mjs');\n"
  },
  {
    "path": "scripts/build-compat/modules-by-versions.mjs",
    "content": "import { modules } from 'core-js-compat/src/data.mjs';\nimport modulesByVersions from 'core-js-compat/src/modules-by-versions.mjs';\n\nconst defaults = new Set(modules);\n\nfor (const version of Object.values(modulesByVersions)) {\n  for (const module of version) defaults.delete(module);\n}\n\nawait fs.writeJson('packages/core-js-compat/modules-by-versions.json', {\n  '3.0': [...defaults],\n  ...modulesByVersions,\n}, { spaces: '  ' });\n\necho(chalk.green('modules-by-versions data rebuilt'));\n"
  },
  {
    "path": "scripts/build-indexes.mjs",
    "content": "import { modules } from 'core-js-compat/src/data.mjs';\n\nasync function generateNamespaceIndex(ns, filter) {\n  return fs.writeFile(`./packages/core-js/${ ns }/index.js`, `'use strict';\\n${ modules\n    .filter(it => filter.test(it))\n    .map(it => `require('../modules/${ it }');\\n`)\n    .join('') }\\nmodule.exports = require('../internals/path');\\n`);\n}\n\nasync function generateTestsIndex(name, pkg) {\n  const dir = `tests/${ name }`;\n  const files = await fs.readdir(dir);\n  return fs.writeFile(`${ dir }/index.js`, `import '../helpers/qunit-helpers';\\n\\n${ files\n    .filter(it => /^(?:es|esnext|helpers|web)\\./.test(it))\n    .map(it => `import './${ it.slice(0, -3) }';\\n`)\n    .join('') }${ pkg !== 'core-js' ? `\\nimport core from '${ pkg }';\\ncore.globalThis.core = core;\\n` : '' }`);\n}\n\nawait generateNamespaceIndex('es', /^es\\./);\nawait generateNamespaceIndex('stable', /^(?:es|web)\\./);\nawait generateNamespaceIndex('full', /^(?:es|esnext|web)\\./);\n\nawait generateTestsIndex('unit-global', 'core-js');\nawait generateTestsIndex('unit-pure', 'core-js-pure');\n\necho(chalk.green('indexes generated'));\n"
  },
  {
    "path": "scripts/bundle-package/bundle-package.mjs",
    "content": "import { minify } from 'terser';\nimport builder from 'core-js-builder';\nimport config from 'core-js-builder/config.js';\n\nconst { cyan, green } = chalk;\nconst DENO = argv._.includes('deno');\nconst ESMODULES = argv._.includes('esmodules');\nconst BUNDLED_NAME = argv._.includes('bundled-name') ? argv._[argv._.indexOf('bundled-name') + 1] : 'index';\nconst MINIFIED_NAME = argv._.includes('minified-name') ? argv._[argv._.indexOf('minified-name') + 1] : 'minified';\nconst PATH = DENO ? 'deno/corejs/' : 'packages/core-js-bundle/';\n\nfunction log(kind, name, code) {\n  const size = (code.length / 1024).toFixed(2);\n  echo(green(`${ kind }: ${ cyan(`${ PATH }${ name }.js`) }, size: ${ cyan(`${ size }KB`) }`));\n}\n\nasync function bundle({ bundled, minified, options = {} }) {\n  const source = await builder(options);\n\n  log('bundling', bundled, source);\n  await fs.writeFile(`${ PATH }${ bundled }.js`, source);\n\n  if (!minified) return;\n\n  const { code, map } = await minify(source, {\n    ecma: 3,\n    ie8: true,\n    safari10: true,\n    keep_fnames: true,\n    compress: {\n      hoist_funs: true,\n      hoist_vars: true,\n      passes: 2,\n      pure_getters: true,\n      // document.all detection case\n      typeofs: false,\n      unsafe_proto: true,\n      unsafe_undefined: true,\n    },\n    format: {\n      max_line_len: 32000,\n      preamble: config.banner,\n      webkit: true,\n      // https://v8.dev/blog/preparser#pife\n      wrap_func_args: false,\n    },\n    sourceMap: {\n      url: `${ minified }.js.map`,\n    },\n  });\n\n  await fs.writeFile(`${ PATH }${ minified }.js`, code);\n  await fs.writeFile(`${ PATH }${ minified }.js.map`, map);\n  log('minification', minified, code);\n}\n\nawait bundle(DENO ? {\n  bundled: BUNDLED_NAME,\n  options: {\n    targets: { deno: '1.0' },\n    exclude: [\n      'esnext.array.filter-out',       // obsolete\n      'esnext.map.update-or-insert',   // obsolete\n      'esnext.map.upsert',             // obsolete\n      'esnext.math.iaddh',             // withdrawn\n      'esnext.math.imulh',             // withdrawn\n      'esnext.math.isubh',             // withdrawn\n      'esnext.math.seeded-prng',       // changing of the API, waiting for the spec text\n      'esnext.math.umulh',             // withdrawn\n      'esnext.object.iterate-entries', // withdrawn\n      'esnext.object.iterate-keys',    // withdrawn\n      'esnext.object.iterate-values',  // withdrawn\n      'esnext.string.at',              // withdrawn\n      'esnext.symbol.pattern-match',   // is not a part of actual proposal, replaced by esnext.symbol.matcher\n      'esnext.symbol.replace-all',     // obsolete\n      'esnext.typed-array.filter-out', // obsolete\n      'esnext.weak-map.upsert',        // obsolete\n    ],\n  },\n} : {\n  bundled: BUNDLED_NAME,\n  minified: MINIFIED_NAME,\n  options: ESMODULES ? { targets: { esmodules: true } } : {},\n});\n"
  },
  {
    "path": "scripts/bundle-package/package.json",
    "content": "{\n  \"name\": \"scripts/bundle-package\",\n  \"devDependencies\": {\n    \"terser\": \"^5.46.1\"\n  }\n}\n"
  },
  {
    "path": "scripts/bundle-tests/bundle-tests.mjs",
    "content": "await Promise.all([\n  ['unit-global/index', 'unit-global'],\n  ['unit-pure/index', 'unit-pure'],\n].map(([entry, output]) => $`webpack \\\n  --entry ../../tests/${ entry }.js \\\n  --output-filename ${ output }.js \\\n`));\n\nawait Promise.all([\n  fs.copyFile('../../packages/core-js-bundle/index.js', '../../tests/bundles/core-js-bundle.js'),\n  fs.copyFile('./node_modules/@slowcheetah/qunitjs-1/qunit/qunit.js', '../../tests/bundles/qunit.js'),\n  fs.copyFile('./node_modules/@slowcheetah/qunitjs-1/qunit/qunit.css', '../../tests/bundles/qunit.css'),\n]);\n\necho(chalk.green('\\ntests bundled, qunit and core-js bundles copied into /tests/bundles/'));\n"
  },
  {
    "path": "scripts/bundle-tests/package.json",
    "content": "{\n  \"name\": \"scripts/bundle-tests\",\n  \"devDependencies\": {\n    \"@slowcheetah/qunitjs-1\": \"^1.23.1\",\n    \"babel-loader\": \"^10.1.1\",\n    \"webpack\": \"^5.105.4\",\n    \"webpack-cli\": \"^7.0.2\"\n  }\n}\n"
  },
  {
    "path": "scripts/bundle-tests/webpack.config.js",
    "content": "'use strict';\nconst { resolve } = require('node:path');\nconst babelConfig = require('../../babel.config');\n\nmodule.exports = {\n  mode: 'none',\n  module: {\n    rules: [{\n      test: /\\.js$/,\n      exclude: /node_modules/,\n      use: {\n        loader: 'babel-loader',\n        options: babelConfig,\n      },\n    }],\n  },\n  node: false,\n  target: ['node', 'es5'],\n  stats: 'errors-warnings',\n  output: {\n    hashFunction: 'md5',\n    path: resolve(__dirname, '../../tests/bundles'),\n  },\n};\n"
  },
  {
    "path": "scripts/check-actions/check-actions.mjs",
    "content": "await $`actions-up --dry-run`;\n\necho(chalk.green('actions dependencies checked'));\n"
  },
  {
    "path": "scripts/check-actions/package.json",
    "content": "{\n  \"name\": \"scripts/check-actions\",\n  \"devDependencies\": {\n    \"actions-up\": \"^1.12.0\"\n  }\n}\n"
  },
  {
    "path": "scripts/check-compat-data-mapping.mjs",
    "content": "import semver from 'semver';\nimport mapping from 'core-js-compat/src/mapping.mjs';\n\nconst { coerce, cmp } = semver;\nlet updated = true;\n\nasync function getJSON(path, ...slice) {\n  const result = await fetch(path);\n  const text = await result.text();\n  return JSON.parse(text.slice(...slice));\n}\n\nasync function getFromMDN(name, branch = 'mdn/browser-compat-data/main') {\n  const {\n    browsers: { [name]: { releases } },\n  } = await getJSON(`https://raw.githubusercontent.com/${ branch }/browsers/${ name }.json`);\n  return releases;\n}\n\nasync function getLatestFromMDN(name, branch) {\n  const releases = await getFromMDN(name, branch);\n  const version = Object.keys(releases).reduce((a, b) => {\n    return releases[b].engine_version && cmp(coerce(b), '>', coerce(a)) ? b : a;\n  });\n  return { engine: releases[version].engine_version, version };\n}\n\nfunction modernV8ToChrome(string) {\n  const version = coerce(string);\n  return version.major * 10 + version.minor;\n}\n\nfunction latest(array) {\n  return array[array.length - 1];\n}\n\nfunction assert(condition, engine) {\n  if (!condition) {\n    updated = false;\n    echo(chalk.red(`${ chalk.cyan(engine) } mapping should be updated`));\n  }\n}\n\nconst [\n  [{ v8 }],\n  electron,\n  deno,\n  oculus,\n  opera,\n  operaAndroid,\n  safari,\n  ios,\n  samsung,\n] = await Promise.all([\n  getJSON('https://nodejs.org/dist/index.json'),\n  getJSON('https://raw.githubusercontent.com/Kilian/electron-to-chromium/master/chromium-versions.js', 17, -1),\n  getLatestFromMDN('deno'),\n  getLatestFromMDN('oculus'),\n  getLatestFromMDN('opera'),\n  getLatestFromMDN('opera_android'),\n  getFromMDN('safari'),\n  getLatestFromMDN('safari_ios'),\n  getLatestFromMDN('samsunginternet_android'),\n]);\n\nassert(modernV8ToChrome(v8) <= latest(mapping.ChromeToNode)[0], 'NodeJS');\nassert(latest(Object.entries(electron))[0] <= latest(mapping.ChromeToElectron)[0], 'Electron');\nassert(modernV8ToChrome(deno.engine) <= latest(mapping.ChromeToDeno)[0], 'Deno');\nassert(oculus.engine <= latest(mapping.ChromeAndroidToQuest)[0], 'Meta Quest');\nassert(opera.version === String(mapping.ChromeToOpera(opera.engine)), 'Opera');\nassert(operaAndroid.engine <= latest(mapping.ChromeAndroidToOperaAndroid)[0], 'Opera for Android');\nassert(ios.version === Object.entries(safari).find(([, { engine_version: engine }]) => engine === ios.engine)[0], 'iOS Safari');\nassert(samsung.engine <= latest(mapping.ChromeAndroidToSamsung)[0], 'Samsung Internet');\n\nif (updated) echo(chalk.green('updates of compat data mapping not required'));\n"
  },
  {
    "path": "scripts/check-dependencies/check-dependencies.mjs",
    "content": "import { cpus } from 'node:os';\n\nconst ignore = {\n  'core-js-builder': [\n    'mkdirp',\n    'webpack',\n  ],\n  'tests/observables': [\n    'moon-unit',\n  ],\n};\n\nconst pkgs = await glob([\n  'package.json',\n  'website/package.json',\n  '@(packages|scripts|tests)/*/package.json',\n]);\n\nasync function checkPackage(path) {\n  const { name = 'root', dependencies, devDependencies } = await fs.readJson(path);\n  if (!dependencies && !devDependencies) return;\n\n  const exclude = ignore[name];\n\n  const { stdout } = await $({ verbose: false })`updates \\\n    --json \\\n    --file ${ path } \\\n    --timeout 60000 \\\n    --exclude ${ Array.isArray(exclude) ? exclude.join(',') : '' } \\\n  `;\n\n  const results = JSON.parse(stdout)?.results?.npm;\n  const obsolete = { ...results?.dependencies, ...results?.devDependencies };\n\n  if (Object.keys(obsolete).length) {\n    echo(chalk.cyan(`${ name }:`));\n    console.table(obsolete);\n  }\n}\n\nlet i = 0;\n\nawait Promise.all(Array(cpus().length).fill().map(async () => {\n  while (i < pkgs.length) {\n    const path = pkgs[i++];\n    try {\n      await checkPackage(path);\n    } catch {\n      echo(chalk.red(`${ chalk.cyan(path) } check error`));\n    }\n  }\n}));\n\necho(chalk.green('dependencies checked'));\n"
  },
  {
    "path": "scripts/check-dependencies/package.json",
    "content": "{\n  \"name\": \"scripts/check-dependencies\",\n  \"devDependencies\": {\n    \"updates\": \"^17.10.1\"\n  }\n}\n"
  },
  {
    "path": "scripts/check-unused-modules.mjs",
    "content": "import konan from 'konan';\nimport { modules, ignored } from 'core-js-compat/src/data.mjs';\n\nasync function jsModulesFrom(path) {\n  const directory = await fs.readdir(path);\n  return new Set(directory.filter(it => it.endsWith('.js')).map(it => it.slice(0, -3)));\n}\n\nfunction log(set, kind) {\n  if (set.size) {\n    echo(chalk.red(`found some unused ${ kind }:`));\n    set.forEach(it => echo(chalk.cyan(it)));\n  } else echo(chalk.green(`unused ${ kind } not found`));\n}\n\nconst globalModules = await jsModulesFrom('packages/core-js/modules');\nconst definedModules = new Set([\n  ...modules,\n  ...ignored,\n  // TODO: Drop from core-js@4\n  'esnext.string.at-alternative',\n]);\n\nglobalModules.forEach(it => definedModules.has(it) && globalModules.delete(it));\n\nlog(globalModules, 'modules');\n\nconst internalModules = await jsModulesFrom('packages/core-js/internals');\nconst allModules = await glob('packages/core-js?(-pure)/**/*.js');\n\nawait Promise.all(allModules.map(async path => {\n  for (const dependency of konan(String(await fs.readFile(path, 'utf8'))).strings) {\n    internalModules.delete(dependency.match(/\\/internals\\/(?<module>[^/]+)$/)?.groups.module);\n  }\n}));\n\nlog(internalModules, 'internal modules');\n\nconst pureModules = new Set(await glob('packages/core-js-pure/override/**/*.js'));\n\nawait Promise.all([...pureModules].map(async path => {\n  if (await fs.pathExists(path.replace('-pure/override', ''))) pureModules.delete(path);\n}));\n\nlog(pureModules, 'pure modules');\n"
  },
  {
    "path": "scripts/clean-and-copy.mjs",
    "content": "const { copy, ensureFile, lstat, pathExists, rm, writeFile } = fs;\nlet copied = 0;\n\nfunction options(overwrite) {\n  return {\n    async filter(from, to) {\n      if ((await lstat(from)).isDirectory()) return true;\n      if (!overwrite && await pathExists(to)) return false;\n      return !!++copied;\n    },\n  };\n}\n\nawait Promise.all((await glob([\n  'tests/**/bundles/*',\n  // TODO: drop it from `core-js@4`\n  'packages/core-js/features',\n  'packages/core-js-pure/!(override|.npmignore|package.json|README.md)',\n], { onlyFiles: false })).map(path => rm(path, { force: true, recursive: true })));\n\necho(chalk.green('old copies removed'));\n\n// TODO: drop it from `core-js@4`\nconst files = await glob('packages/core-js/full/**/*.js');\n\nfor (const filename of files) {\n  const newFilename = filename.replace('full', 'features');\n  const href = '../'.repeat(filename.split('').filter(it => it === '/').length - 2) + filename.slice(17, -3).replace(/\\/index$/, '');\n  await ensureFile(newFilename);\n  await writeFile(newFilename, `'use strict';\\nmodule.exports = require('${ href }');\\n`);\n}\n\necho(chalk.green('created /features/ entries'));\n\nawait copy('packages/core-js', 'packages/core-js-pure', options(false));\n\nconst license = [\n  'deno/corejs/LICENSE',\n  ...(await glob('packages/*/package.json')).map(path => path.replace(/package\\.json$/, 'LICENSE')),\n];\n\nawait Promise.all([\n  copy('packages/core-js-pure/override', 'packages/core-js-pure', options(true)),\n  copy('packages/core-js/postinstall.js', 'packages/core-js-bundle/postinstall.js', options(true)),\n  ...license.map(path => copy('LICENSE', path, options(true))),\n]);\n\necho(chalk.green(`copied ${ chalk.cyan(copied) } files`));\n"
  },
  {
    "path": "scripts/downloads-by-versions.mjs",
    "content": "import semver from 'semver';\n\nconst { coerce, cmp } = semver;\nconst { cyan, green } = chalk;\nconst ALL = !argv._.includes('main-only');\nconst downloadsByPatch = {};\nconst downloadsByMinor = {};\nconst downloadsByMajor = {};\nlet total = 0;\n\nasync function getStat(pkg) {\n  const res = await fetch(`https://api.npmjs.org/versions/${ encodeURIComponent(pkg) }/last-week`);\n  const { downloads } = await res.json();\n  return downloads;\n}\n\nconst [core, pure, bundle] = await Promise.all([\n  getStat('core-js'),\n  // eslint-disable-next-line unicorn/prefer-top-level-await -- false positive\n  ALL && getStat('core-js-pure'),\n  // eslint-disable-next-line unicorn/prefer-top-level-await -- false positive\n  ALL && getStat('core-js-bundle'),\n]);\n\nfor (let [patch, downloads] of Object.entries(core)) {\n  const version = coerce(patch);\n  const { major } = version;\n  const minor = `${ major }.${ version.minor }`;\n  if (ALL) downloads += (pure[patch] ?? 0) + (bundle[patch] ?? 0);\n  downloadsByPatch[patch] = downloads;\n  downloadsByMinor[minor] = (downloadsByMinor[minor] ?? 0) + downloads;\n  downloadsByMajor[major] = (downloadsByMajor[major] ?? 0) + downloads;\n  total += downloads;\n}\n\nfunction log(kind, map) {\n  echo(green(`downloads for 7 days by ${ cyan(kind) } releases:`));\n  console.table(Object.entries(map).toSorted(([a], [b]) => {\n    return cmp(coerce(a), '>', coerce(b)) ? 1 : -1;\n  }).reduce((memo, [version, downloads]) => {\n    memo[version] = { downloads, '%': `${ (downloads / total * 100).toFixed(2).padStart(5) } %` };\n    return memo;\n  }, {}));\n}\n\nlog('patch', downloadsByPatch);\nlog('minor', downloadsByMinor);\nlog('major', downloadsByMajor);\n"
  },
  {
    "path": "scripts/prepare-monorepo.mjs",
    "content": "import childProcess from 'node:child_process';\nimport { readdir, rm } from 'node:fs/promises';\nimport { promisify } from 'node:util';\n\nconst exec = promisify(childProcess.exec);\n\nconst { UPDATE_DEPENDENCIES } = process.env;\n\nconst ignore = new Set([\n  'scripts/check-actions',\n  'scripts/usage',\n  'tests/test262',\n  'tests/unit-bun',\n]);\n\nconst folders = [''].concat(...await Promise.all([\n  'packages',\n  'scripts',\n  'tests',\n].map(async parent => {\n  const dir = await readdir(parent);\n  return dir.map(name => `${ parent }/${ name }`);\n})));\n\nawait Promise.all(folders.map(async folder => {\n  if (!ignore.has(folder)) try {\n    if (UPDATE_DEPENDENCIES) await rm(`./${ folder }/package-lock.json`, { force: true });\n    await rm(`./${ folder }/node_modules`, { force: true, recursive: true });\n  } catch { /* empty */ }\n}));\n\nconsole.log('\\u001B[32mdependencies cleaned\\u001B[0m');\n\nawait exec(UPDATE_DEPENDENCIES ? 'npm i' : 'npm ci');\n\nconsole.log('\\u001B[32mdependencies installed\\u001B[0m');\n"
  },
  {
    "path": "scripts/prepare.mjs",
    "content": "await import('./build-indexes.mjs');\nawait import('./clean-and-copy.mjs');\nawait $`npm run build-compat`;\n"
  },
  {
    "path": "scripts/update-version.mjs",
    "content": "const { readJson, readFile, writeJson, writeFile } = fs;\nconst { green, red } = chalk;\nconst [PREV_VERSION, NEW_VERSION] = (await Promise.all([\n  readJson('packages/core-js/package.json'),\n  readJson('package.json'),\n])).map(it => it.version);\n\nfunction getMinorVersion(version) {\n  return version.match(/^(?<minor>\\d+\\.\\d+)\\..*/).groups.minor;\n}\n\nconst PREV_VERSION_MINOR = getMinorVersion(PREV_VERSION);\nconst NEW_VERSION_MINOR = getMinorVersion(NEW_VERSION);\nconst CHANGELOG = 'CHANGELOG.md';\nconst LICENSE = 'LICENSE';\nconst README = 'README.md';\nconst README_COMPAT = 'packages/core-js-compat/README.md';\nconst README_DENO = 'deno/corejs/README.md';\nconst SHARED = 'packages/core-js/internals/shared-store.js';\nconst BUILDER_CONFIG = 'packages/core-js-builder/config.js';\nconst USAGE = 'docs/web/docs/usage.md';\nconst NOW = new Date();\nconst CURRENT_YEAR = NOW.getFullYear();\n\nconst license = await readFile(LICENSE, 'utf8');\nconst OLD_YEAR = +license.match(/2025–(?<year>\\d{4}) C/).groups.year;\nawait writeFile(LICENSE, license.replaceAll(OLD_YEAR, CURRENT_YEAR));\n\nconst readme = await readFile(README, 'utf8');\nawait writeFile(README, readme.replaceAll(PREV_VERSION, NEW_VERSION).replaceAll(PREV_VERSION_MINOR, NEW_VERSION_MINOR));\n\nconst readmeCompat = await readFile(README_COMPAT, 'utf8');\nawait writeFile(README_COMPAT, readmeCompat.replaceAll(PREV_VERSION_MINOR, NEW_VERSION_MINOR));\n\nconst readmeDeno = await readFile(README_DENO, 'utf8');\nawait writeFile(README_DENO, readmeDeno.replaceAll(PREV_VERSION, NEW_VERSION));\n\nconst shared = await readFile(SHARED, 'utf8');\nawait writeFile(SHARED, shared.replaceAll(PREV_VERSION, NEW_VERSION).replaceAll(OLD_YEAR, CURRENT_YEAR));\n\nconst builderConfig = await readFile(BUILDER_CONFIG, 'utf8');\nawait writeFile(BUILDER_CONFIG, builderConfig.replaceAll(OLD_YEAR, CURRENT_YEAR));\n\nconst usage = await readFile(USAGE, 'utf8');\nawait writeFile(USAGE, usage.replaceAll(PREV_VERSION, NEW_VERSION).replaceAll(PREV_VERSION_MINOR, NEW_VERSION_MINOR));\n\nconst packages = await Promise.all((await glob('packages/*/package.json')).map(async path => {\n  const pkg = await readJson(path, 'utf8');\n  return { path, pkg };\n}));\n\nfor (const { path, pkg } of packages) {\n  pkg.version = NEW_VERSION;\n  for (const field of ['dependencies', 'devDependencies']) {\n    if (pkg[field]) for (const { pkg: { name } } of packages) {\n      if (pkg[field][name]) pkg[field][name] = NEW_VERSION;\n    }\n  }\n  await writeJson(path, pkg, { spaces: '  ' });\n}\n\nif (NEW_VERSION !== PREV_VERSION) {\n  const CURRENT_DATE = `${ CURRENT_YEAR }.${ String(NOW.getMonth() + 1).padStart(2, '0') }.${ String(NOW.getDate()).padStart(2, '0') }`;\n  const NUMBER_OF_COMMITS = Number(await $`git rev-list \"v${ PREV_VERSION }\"..HEAD --count`) + 1;\n  const changelog = await readFile(CHANGELOG, 'utf8');\n  await writeFile(CHANGELOG, changelog.replaceAll('### Unreleased', `### Unreleased\\n- Nothing\\n\\n### [${\n    NEW_VERSION\n  } - ${\n    CURRENT_DATE\n  }](https://github.com/zloirock/core-js/releases/tag/v${\n    NEW_VERSION\n  })\\n- Changes [v${\n    PREV_VERSION\n  }...v${\n    NEW_VERSION\n  }](https://github.com/zloirock/core-js/compare/v${\n    PREV_VERSION\n  }...v${\n    NEW_VERSION\n  }) (${\n    NUMBER_OF_COMMITS\n  } commits)`));\n}\n\nif (CURRENT_YEAR !== OLD_YEAR) echo(green('the year updated'));\nif (NEW_VERSION !== PREV_VERSION) echo(green('the version updated'));\nelse if (CURRENT_YEAR === OLD_YEAR) echo(red('bump is not required'));\n\nawait $`npm run bundle-package deno`;\nawait $`npm run build-compat`;\n"
  },
  {
    "path": "scripts/usage/package.json",
    "content": "{\n  \"name\": \"scripts/usage\",\n  \"devDependencies\": {\n    \"@playwright/browser-chromium\": \"^1.58.2\",\n    \"jszip\": \"^3.10.1\",\n    \"playwright\": \"^1.58.2\",\n    \"playwright-extra\": \"^4.3.6\",\n    \"puppeteer-extra-plugin-stealth\": \"^2.11.2\"\n  }\n}\n"
  },
  {
    "path": "scripts/usage/usage.mjs",
    "content": "import { chromium } from 'playwright-extra';\nimport StealthPlugin from 'puppeteer-extra-plugin-stealth';\nimport jszip from 'jszip';\n\nconst { cyan, green, gray, red } = chalk;\nconst agents = [\n  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36',\n  'Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',\n];\nconst protocols = ['http', 'https'];\nconst limit = argv._[0] ?? 100;\nconst attempts = new Map();\nconst start = Date.now();\nlet tested = 0;\nlet withCoreJS = 0;\n\necho(green('downloading and parsing T1M Alexa data, it could take some seconds'));\n// https://s3.amazonaws.com/alexa-static/top-1m.csv.zip is no longer provided, so using the last copy of the dataset from my server\n// here could be used, for example, Cisco Umbrella statistics - http://s3-us-west-1.amazonaws.com/umbrella-static/top-1m.csv.zip,\n// however, it's not so relative to our case like the Alexa list\n// makes sense take a look at https://github.com/PeterDaveHello/top-1m-domains\nconst response = await fetch('http://es6.zloirock.ru/top-1m.csv.zip');\nconst archive = await jszip.loadAsync(await response.arrayBuffer());\nconst file = await archive.file('top-1m.csv.deprecated').async('string');\nconst BANNER_LINES = 8;\nconst sites = file\n  .split('\\n', limit + BANNER_LINES)\n  .slice(BANNER_LINES)\n  .map(line => line.match(/^\\d+,(?<site>.+)$/).groups.site)\n  .reverse();\necho(green(`downloading and parsing the rank took ${ cyan((Date.now() - start) / 1e3) } seconds\\n${ gray('-'.repeat(120)) }`));\n\nfunction timeout(promise, time) {\n  return Promise.race([promise, new Promise((resolve, reject) => setTimeout(() => reject(new Error('timeout')), time))]);\n}\n\nchromium.use(StealthPlugin());\n\n// run in parallel\nawait Promise.all(Array(Math.ceil(os.cpus().length / 2)).fill().map(async () => {\n  let browser, site;\n\n  async function check() {\n    let errors = 0;\n    for (const protocol of protocols) for (const userAgent of agents) try {\n      const page = await browser.newPage({ userAgent });\n      page.setDefaultNavigationTimeout(6e4);\n      await page.goto(`${ protocol }://${ site }`);\n\n      // seems js hangs on some sites, so added a time limit\n      const { core, modern, legacy } = await timeout(page.evaluate(`({\n        core: !!window['__core-js_shared__'] || !!window.core || !!window._babelPolyfill,\n        modern: window['__core-js_shared__']?.versions,\n        legacy: window.core?.version,\n      })`), 1e4);\n      const versions = modern ? modern.map(({ version, mode }) => `${ version } (${ mode } mode)`) : legacy ? [legacy] : [];\n\n      await page.close();\n\n      if (core) return { core, versions };\n    } catch (error) {\n      if (++errors === 4) throw error;\n    } return {};\n  }\n\n  while (site = sites.pop()) try {\n    await browser?.close();\n    browser = await chromium.launch();\n\n    const { core, versions } = await check();\n\n    tested++;\n    if (core) withCoreJS++;\n\n    echo`${ cyan(`${ site }:`) } ${ core\n      ? green(`\\`core-js\\` is detected, ${ versions.length > 1\n        ? `${ cyan(versions.length) } versions: ${ cyan(versions.join(', ')) }`\n        : `version ${ cyan(versions[0]) }` }`)\n      : gray('`core-js` is not detected') }`;\n  } catch {\n    const attempting = (attempts.get(site) | 0) + 1;\n    attempts.set(site, attempting);\n    if (attempting < 3) sites.push(site);\n    else echo(red(`${ cyan(`${ site }:`) } problems with access`));\n    await sleep(3e3);\n  }\n\n  return browser?.close();\n}));\n\necho(green(`\\n\\`core-js\\` is detected on ${ cyan(withCoreJS) } from ${ cyan(tested) } tested websites, ${\n  cyan(`${ (withCoreJS / tested * 100).toFixed(2) }%`) }, problems with access to ${ cyan(limit - tested) } websites`));\n"
  },
  {
    "path": "scripts/zxi.mjs",
    "content": "const { dirname, resolve } = path;\nconst { pathExists } = fs;\nconst { cwd, env } = process;\nconst { _: args } = argv;\nconst { cyan, green } = chalk;\nconst CD = args.includes('cd');\nconst TIME = args.includes('time');\n\nif (CD) args.splice(args.indexOf('cd'), 1);\nif (TIME) args.splice(args.indexOf('time'), 1);\n\nconst FILE = args.shift();\nconst DIR = dirname(FILE);\n\n$.verbose = true;\n\nif (await pathExists(`${ DIR }/package.json`)) {\n  await $({ cwd: DIR })`npm install \\\n    --no-audit \\\n    --no-fund \\\n    --lockfile-version=3 \\\n    --loglevel=error \\\n    --force \\\n  `;\n\n  $.preferLocal = [resolve(DIR), cwd()];\n}\n\nif (CD) cd(DIR);\n\nenv.FORCE_COLOR = '1';\n\nconst start = Date.now();\n\nawait import(`../${ FILE }`);\n\nif (TIME) echo(green(`\\n${ FILE } took ${ cyan((Date.now() - start) / 1000) } seconds`));\n"
  },
  {
    "path": "tests/builder/builder.mjs",
    "content": "import { ok } from 'node:assert/strict';\nimport builder from 'core-js-builder';\n\nconst polyfills = await builder({\n  modules: 'core-js/actual',\n  exclude: [/group-by/, 'esnext.typed-array.to-spliced'],\n  targets: { node: 16 },\n  format: 'esm',\n});\n\nok(polyfills.includes(\"import 'core-js/modules/es.error.cause.js';\"), 'actual node 16 #1');\nok(polyfills.includes(\"import 'core-js/modules/es.array.push.js';\"), 'actual node 16 #2');\nok(polyfills.includes(\"import 'core-js/modules/esnext.array.group.js';\"), 'actual node 16 #3');\nok(polyfills.includes(\"import 'core-js/modules/web.structured-clone.js';\"), 'actual node 16 #4');\nok(!polyfills.includes(\"import 'core-js/modules/es.weak-set.js';\"), 'actual node 16 #5');\nok(!polyfills.includes(\"import 'core-js/modules/esnext.weak-set.from.js';\"), 'actual node 16 #6');\nok(!polyfills.includes(\"import 'core-js/modules/esnext.array.group-by.js';\"), 'actual node 16 #7');\n\necho(chalk.green('builder tested'));\n"
  },
  {
    "path": "tests/codespell/runner.mjs",
    "content": "const skip = [\n  '*.map',\n  'package**.json',\n  '**/node_modules/**',\n  './tests/**bundles',\n  './packages/core-js-bundle/*.js',\n];\n\nconst ignoreWords = [\n  'aNumber',\n  'larg',\n  'outLow',\n  'statics',\n];\n\nawait $`codespell \\\n  --skip=${ String(skip) } \\\n  --ignore-words-list=${ String(ignoreWords) } \\\n  --enable-colors`;\n"
  },
  {
    "path": "tests/compat/browsers-runner.js",
    "content": "'use strict';\nfunction createElement(name, props) {\n  var element = document.createElement(name);\n  if (props) for (var key in props) element[key] = props[key];\n  return element;\n}\n\nvar table = document.getElementById('table');\nvar tests = window.tests;\nvar data = window.data;\n\nvar environments = [\n  'android',\n  'bun',\n  'chrome',\n  'chrome-android',\n  'deno',\n  'edge',\n  'electron',\n  'firefox',\n  'firefox-android',\n  'hermes',\n  'ie',\n  'ios',\n  'node',\n  'opera',\n  'opera-android',\n  'phantom',\n  'quest',\n  'react-native',\n  'rhino',\n  'safari',\n  'samsung'\n];\n\nvar tableHeader = createElement('tr');\nvar columnHeaders = ['module', 'current'].concat(environments);\n\nfor (var i = 0; i < columnHeaders.length; i++) {\n  tableHeader.appendChild(createElement('th', {\n    innerHTML: columnHeaders[i].replace(/-/g, '<br />')\n  }));\n}\n\ntable.appendChild(tableHeader);\n\nfor (var moduleName in tests) {\n  var test = tests[moduleName];\n  var result = true;\n  try {\n    if (typeof test == 'function') {\n      result = !!test();\n    } else {\n      for (var t = 0; t < test.length; t++) result = result && !!test[t].call(undefined);\n    }\n  } catch (error) {\n    result = false;\n  }\n\n  var row = createElement('tr');\n  var rowHeader = createElement('td', {\n    className: result\n  });\n\n  rowHeader.appendChild(createElement('a', {\n    href: \"https://github.com/zloirock/core-js/blob/master/tests/compat/tests.js#:~:text='\" + moduleName.replace(/-/g, '%2D') + \"'\",\n    target: '_blank',\n    innerHTML: moduleName\n  }));\n\n  row.appendChild(rowHeader);\n\n  row.appendChild(createElement('td', {\n    innerHTML: result ? 'not&nbsp;required' : 'required',\n    className: result + ' data'\n  }));\n\n  var moduleData = data[moduleName];\n\n  for (var j = 0; j < environments.length; j++) {\n    var environmentVersion = moduleData && moduleData[environments[j]];\n    row.appendChild(createElement('td', {\n      innerHTML: moduleData ? environmentVersion || 'no' : 'no&nbsp;data',\n      className: (moduleData ? !!environmentVersion : 'nodata') + ' data'\n    }));\n  }\n\n  table.appendChild(row);\n}\n"
  },
  {
    "path": "tests/compat/bun-runner.js",
    "content": "'use strict';\nrequire('./tests');\nrequire('./compat-data');\nrequire('./common-runner');\n\n/* global showResults -- safe */\n// eslint-disable-next-line no-console -- output\nshowResults('bun', console.log);\n"
  },
  {
    "path": "tests/compat/common-runner.js",
    "content": "'use strict';\n/* eslint-disable unicorn/prefer-global-this -- required */\nvar GLOBAL = typeof global != 'undefined' ? global : Function('return this')();\nvar results = GLOBAL.results = Object.create(null);\nvar data = GLOBAL.data;\nvar tests = GLOBAL.tests;\n\nfor (var testName in tests) {\n  var test = tests[testName];\n  try {\n    results[testName] = typeof test == 'function' ? !!test() : test.every(function (subTest) {\n      return subTest();\n    });\n  } catch (error) {\n    results[testName] = false;\n  }\n}\n\nGLOBAL.showResults = function (engine, logger) {\n  var difference = false;\n\n  function logResults(showDifference) {\n    for (var name in results) {\n      if (data[name]) {\n        if (!!data[name][engine] === results[name]) {\n          if (showDifference) continue;\n        } else difference = true;\n      } else if (showDifference) continue;\n      var filled = name + '                                             | '.slice(name.length);\n      if (results[name]) logger('\\u001B[32m' + filled + 'not required\\u001B[0m');\n      else logger('\\u001B[31m' + filled + 'required\\u001B[0m');\n    }\n  }\n\n  logResults(false);\n\n  if (difference) {\n    logger('\\n\\u001B[36mchanges:\\u001B[0m\\n');\n    logResults(true);\n  } else logger('\\n\\u001B[36mno changes\\u001B[0m');\n};\n"
  },
  {
    "path": "tests/compat/deno-runner.mjs",
    "content": "/* global Deno -- it's Deno */\nimport './tests.js';\nimport './compat-data.js';\nimport './common-runner.js';\n\nif (Deno.args.includes('json')) {\n  console.log(JSON.stringify(globalThis.results, null, '  '));\n} else globalThis.showResults('deno', console.log);\n"
  },
  {
    "path": "tests/compat/hermes-adapter.mjs",
    "content": "const [HERMES_PATH] = argv._;\n\nawait $`${ HERMES_PATH } -w -commonjs ./tests/compat`;\n"
  },
  {
    "path": "tests/compat/hermes-runner.js",
    "content": "'use strict';\nrequire('./tests.js');\nrequire('./compat-data.js');\nrequire('./common-runner.js');\n\n/* global showResults -- safe */\n/* eslint-disable-next-line no-restricted-globals -- output */\nshowResults('hermes', print);\n"
  },
  {
    "path": "tests/compat/index.html",
    "content": "<!DOCTYPE html>\n<meta charset='UTF-8'>\n<title>core-js-compat</title>\n<style>\nth,td {\n  padding: 0.25em;\n  font-family: Verdana, Arial, Helvetica, sans-serif;\n  font-size: 0.75em;\n}\nth {\n  background-color: white;\n  color: black;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  z-index: 2;\n}\ntd,a {\n  color: white;\n  text-decoration: none;\n}\n.true {\n  background-color: #00882c;\n}\n.false {\n  background-color: #e11;\n}\n.nodata {\n  background-color: grey;\n}\n.data {\n  text-align: center;\n}\n</style>\n<table id='table'></table>\n<script src='./compat-data.js'></script>\n<script src='./tests.js'></script>\n<script src='./browsers-runner.js'></script>\n"
  },
  {
    "path": "tests/compat/metadata.json",
    "content": "{\n  \"segments\": {\n    \"0\": [\n      \"./hermes-runner.js\",\n      \"./tests.js\",\n      \"./compat-data.js\",\n      \"./common-runner.js\"\n    ]\n  }\n}\n"
  },
  {
    "path": "tests/compat/node-runner.js",
    "content": "'use strict';\n/* eslint-disable no-console -- output */\nrequire('./tests');\nrequire('./compat-data');\nrequire('./common-runner');\n\nif (process.argv.indexOf('json') !== -1) {\n  // eslint-disable-next-line es/no-json -- safe\n  console.log(JSON.stringify(global.results, null, '  '));\n} else global.showResults('node', console.log);\n"
  },
  {
    "path": "tests/compat/rhino-adapter.mjs",
    "content": "const [path] = argv._;\n\nawait $`java -jar ${ path } -require tests/compat/rhino-runner.js`;\n"
  },
  {
    "path": "tests/compat/rhino-runner.js",
    "content": "'use strict';\nrequire('./tests');\nrequire('./compat-data');\nrequire('./common-runner');\n\nvar GLOBAL = typeof global != 'undefined' ? global : Function('return this')();\n\n/* eslint-disable-next-line no-restricted-globals -- output */\nGLOBAL.showResults('rhino', print);\n"
  },
  {
    "path": "tests/compat/tests.js",
    "content": "'use strict';\n/* eslint-disable prefer-regex-literals, radix, unicorn/prefer-global-this -- required for testing */\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-lazy-ends, regexp/no-useless-quantifier -- required for testing */\nvar GLOBAL = typeof global != 'undefined' ? global : Function('return this')();\nvar WHITESPACES = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n  '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\nvar NOT_WHITESPACES = '\\u200B\\u0085\\u180E';\n\nvar USERAGENT = GLOBAL.navigator && GLOBAL.navigator.userAgent || '';\n\nvar process = GLOBAL.process;\nvar Bun = GLOBAL.Bun;\nvar Deno = GLOBAL.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\n\nvar match, V8_VERSION;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  V8_VERSION = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!V8_VERSION && USERAGENT) {\n  match = USERAGENT.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = USERAGENT.match(/Chrome\\/(\\d+)/);\n    if (match) V8_VERSION = +match[1];\n  }\n}\n\nvar IS_BROWSER = typeof window == 'object' && typeof Deno != 'object';\nvar IS_BUN = typeof Bun == 'function' && Bun && typeof Bun.version == 'string';\nvar IS_DENO = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n\n// var IS_NODE = Object.prototype.toString.call(process) == '[object process]';\n\nvar WEBKIT_STRING_PAD_BUG = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(USERAGENT);\n\nvar DESCRIPTORS_SUPPORT = function () {\n  return Object.defineProperty({}, 'a', {\n    get: function () { return 7; }\n  }).a === 7;\n};\n\nvar V8_PROTOTYPE_DEFINE_BUG = function () {\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype === 42;\n};\n\nvar PROMISES_SUPPORT = function () {\n  var promise = new Promise(function (resolve) { resolve(1); });\n  var empty = function () { /* empty */ };\n  var FakePromise = (promise.constructor = {})[Symbol.species] = function (exec) {\n    exec(empty, empty);\n  };\n\n  return promise.then(empty) instanceof FakePromise\n    && V8_VERSION !== 66\n    && (!(IS_BROWSER || IS_DENO) || typeof PromiseRejectionEvent == 'function');\n};\n\nvar PROMISE_STATICS_ITERATION = function () {\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[Symbol.iterator] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    Promise.all(object).then(undefined, function () { /* empty */ });\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n\nvar SYMBOLS_SUPPORT = function () {\n  return Object.getOwnPropertySymbols && String(Symbol('symbol detection')) && !(V8_VERSION && V8_VERSION < 41);\n};\n\nvar SYMBOL_REGISTRY = [SYMBOLS_SUPPORT, function () {\n  return Symbol['for'] && Symbol.keyFor;\n}];\n\nvar URL_AND_URL_SEARCH_PARAMS_SUPPORT = function () {\n  // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n  var url = new URL('b?a=1&b=2&c=3', 'https://a');\n  var searchParams = url.searchParams;\n  var result = '';\n  url.pathname = 'c%20d';\n  searchParams.forEach(function (value, key) {\n    searchParams['delete']('b');\n    result += key + value;\n  });\n  return searchParams.sort\n    && url.href === 'https://a/c%20d?a=1&c=3'\n    && searchParams.get('c') === '3'\n    && String(new URLSearchParams('?a=1')) === 'a=1'\n    && searchParams[Symbol.iterator]\n    && new URL('https://a@b').username === 'a'\n    && new URLSearchParams(new URLSearchParams('a=b')).get('a') === 'b'\n    && new URL('https://тест').host === 'xn--e1aybc'\n    && new URL('https://a#б').hash === '#%D0%B1'\n    && result === 'a1c3'\n    && new URL('https://x', undefined).host === 'x';\n};\n\n// eslint-disable-next-line no-proto -- safe\nvar PROTOTYPE_SETTING_AVAILABLE = Object.setPrototypeOf || {}.__proto__;\n\nvar OBJECT_PROTOTYPE_ACCESSORS_SUPPORT = function () {\n  try {\n    Object.prototype.__defineSetter__.call(null, Math.random(), function () { /* empty */ });\n  } catch (error) {\n    return Object.prototype.__defineSetter__;\n  }\n};\n\nvar SAFE_ITERATION_CLOSING_SUPPORT = function () {\n  var SAFE_CLOSING = false;\n  try {\n    var called = 0;\n    var iteratorWithReturn = {\n      next: function () {\n        return { done: !!called++ };\n      },\n      'return': function () {\n        SAFE_CLOSING = true;\n      }\n    };\n    iteratorWithReturn[Symbol.iterator] = function () {\n      return this;\n    };\n    Array.from(iteratorWithReturn, function () { throw new Error('close'); });\n  } catch (error) {\n    return SAFE_CLOSING;\n  }\n};\n\nvar ARRAY_BUFFER_SUPPORT = function () {\n  return ArrayBuffer && DataView;\n};\n\nvar TYPED_ARRAY_CONSTRUCTORS_LIST = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar ARRAY_BUFFER_VIEWS_SUPPORT = function () {\n  for (var constructor in TYPED_ARRAY_CONSTRUCTORS_LIST) if (!GLOBAL[constructor]) return false;\n  return ARRAY_BUFFER_SUPPORT();\n};\n\nvar TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS = function () {\n  try {\n    return !Int8Array(1);\n  } catch (error) { /* empty */ }\n  try {\n    return !new Int8Array(-1);\n  } catch (error) { /* empty */ }\n  new Int8Array();\n  new Int8Array(null);\n  new Int8Array(1.5);\n\n  var called = 0;\n  var iterable = {\n    next: function () {\n      return { done: !!called++, value: 1 };\n    }\n  };\n  iterable[Symbol.iterator] = function () {\n    return this;\n  };\n\n  return new Int8Array(iterable)[0] === 1\n    && new Int8Array(new ArrayBuffer(2), 1, undefined).length === 1;\n};\n\nfunction NCG_SUPPORT() {\n  var re = RegExp('(?<a>b)');\n  return re.exec('b').groups.a === 'b' &&\n    'b'.replace(re, '$<a>c') === 'bc';\n}\n\nfunction createIsRegExpLogicTest(name) {\n  return function () {\n    var regexp = /./;\n    try {\n      '/./'[name](regexp);\n    } catch (error1) {\n      try {\n        regexp[Symbol.match] = false;\n        return '/./'[name](regexp);\n      } catch (error2) { /* empty */ }\n    } return false;\n  };\n}\n\nfunction createStringHTMLMethodTest(METHOD_NAME) {\n  return function () {\n    var test = ''[METHOD_NAME]('\"');\n    return test === test.toLowerCase() && test.split('\"').length <= 3;\n  };\n}\n\nfunction createStringTrimMethodTest(METHOD_NAME) {\n  return function () {\n    return !WHITESPACES[METHOD_NAME]()\n      && NOT_WHITESPACES[METHOD_NAME]() === NOT_WHITESPACES\n      && WHITESPACES[METHOD_NAME].name === METHOD_NAME;\n  };\n}\n\nfunction createSetLike(size) {\n  return {\n    size: size,\n    has: function () {\n      return false;\n    },\n    keys: function () {\n      return {\n        next: function () {\n          return { done: true };\n        }\n      };\n    }\n  };\n}\n\nfunction createSetLikeWithInfinitySize(size) {\n  return {\n    size: size,\n    has: function () {\n      return true;\n    },\n    keys: function () {\n      throw new Error('e');\n    }\n  };\n}\n\nfunction createSetMethodTest(METHOD_NAME, callback) {\n  return function () {\n    try {\n      new Set()[METHOD_NAME](createSetLike(0));\n      try {\n        // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it\n        // https://github.com/tc39/proposal-set-methods/pull/88\n        new Set()[METHOD_NAME](createSetLike(-1));\n        return false;\n      } catch (error2) {\n        if (!callback) return true;\n        // early V8 implementation bug\n        // https://issues.chromium.org/issues/351332634\n        try {\n          new Set()[METHOD_NAME](createSetLikeWithInfinitySize(-Infinity));\n          return false;\n        } catch (error) {\n          var set = new Set([1, 2]);\n          return callback(set[METHOD_NAME](createSetLikeWithInfinitySize(Infinity)));\n        }\n      }\n    } catch (error) {\n      return false;\n    }\n  };\n}\n\nfunction createSetMethodTestShouldGetKeysBeforeCloning(METHOD_NAME) {\n  return function () {\n    var baseSet = new Set();\n    var setLike = {\n      size: 0,\n      has: function () { return true; },\n      keys: function () {\n        return Object.defineProperty({}, 'next', {\n          get: function () {\n            baseSet.clear();\n            baseSet.add(4);\n            return function () {\n              return { done: true };\n            };\n          }\n        });\n      }\n    };\n    var result = baseSet[METHOD_NAME](setLike);\n\n    return result.size === 1 && result.values().next().value === 4;\n  };\n}\n\nfunction NATIVE_RAW_JSON() {\n  var unsafeInt = '9007199254740993';\n  var raw = JSON.rawJSON(unsafeInt);\n  return JSON.isRawJSON(raw) && JSON.stringify(raw) === unsafeInt;\n}\n\nfunction IMMEDIATE() {\n  return setImmediate && clearImmediate && !(IS_BUN && (function () {\n    var version = Bun.version.split('.');\n    return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n  })());\n}\n\nfunction TIMERS() {\n  return !(/MSIE .\\./.test(USERAGENT) || IS_BUN && (function () {\n    var version = Bun.version.split('.');\n    return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n  })());\n}\n\n// https://github.com/tc39/ecma262/pull/3467\nfunction checkIteratorClosingOnEarlyError(METHOD_NAME, ExpectedError) {\n  return function () {\n    var CLOSED = false;\n    try {\n      Iterator.prototype[METHOD_NAME].call({\n        next: function () { return { done: true }; },\n        'return': function () { CLOSED = true; }\n      }, -1);\n    } catch (error) {\n      // https://bugs.webkit.org/show_bug.cgi?id=291195\n      if (!(error instanceof ExpectedError)) return;\n    }\n    return CLOSED;\n  };\n}\n\n// https://issues.chromium.org/issues/336839115\nfunction iteratorHelperThrowsErrorOnInvalidIterator(methodName, argument) {\n  return function () {\n    if (typeof Iterator == 'function' && Iterator.prototype[methodName]) try {\n      Iterator.prototype[methodName].call({ next: null }, argument).next();\n    } catch (error) {\n      return true;\n    }\n  };\n}\n\nGLOBAL.tests = {\n  // TODO: Remove this module from `core-js@4` since it's split to modules listed below\n  'es.symbol': [SYMBOLS_SUPPORT, function () {\n    var symbol = Symbol('stringify detection');\n    return Object.getOwnPropertySymbols('qwe')\n      && Symbol['for']\n      && Symbol.keyFor\n      && JSON.stringify([symbol]) === '[null]'\n      && JSON.stringify({ a: symbol }) === '{}'\n      && JSON.stringify(Object(symbol)) === '{}'\n      && Symbol.prototype[Symbol.toPrimitive]\n      && Symbol.prototype[Symbol.toStringTag];\n  }],\n  'es.symbol.constructor': SYMBOLS_SUPPORT,\n  'es.symbol.description': function () {\n    // eslint-disable-next-line symbol-description -- required for testing\n    return Symbol('description detection').description === 'description detection' && Symbol().description === undefined;\n  },\n  'es.symbol.async-dispose': function () {\n    var descriptor = Object.getOwnPropertyDescriptor(Symbol, 'asyncDispose');\n    return descriptor.value && !descriptor.enumerable && !descriptor.configurable && !descriptor.writable;\n  },\n  'es.symbol.async-iterator': function () {\n    return Symbol.asyncIterator;\n  },\n  'es.symbol.dispose': function () {\n    var descriptor = Object.getOwnPropertyDescriptor(Symbol, 'dispose');\n    return descriptor.value && !descriptor.enumerable && !descriptor.configurable && !descriptor.writable;\n  },\n  'es.symbol.for': SYMBOL_REGISTRY,\n  'es.symbol.has-instance': [SYMBOLS_SUPPORT, function () {\n    return Symbol.hasInstance;\n  }],\n  'es.symbol.is-concat-spreadable': [SYMBOLS_SUPPORT, function () {\n    return Symbol.isConcatSpreadable;\n  }],\n  'es.symbol.iterator': [SYMBOLS_SUPPORT, function () {\n    return Symbol.iterator;\n  }],\n  'es.symbol.key-for': SYMBOL_REGISTRY,\n  'es.symbol.match': [SYMBOLS_SUPPORT, function () {\n    return Symbol.match;\n  }],\n  'es.symbol.match-all': [SYMBOLS_SUPPORT, function () {\n    return Symbol.matchAll;\n  }],\n  'es.symbol.replace': [SYMBOLS_SUPPORT, function () {\n    return Symbol.replace;\n  }],\n  'es.symbol.search': [SYMBOLS_SUPPORT, function () {\n    return Symbol.search;\n  }],\n  'es.symbol.species': [SYMBOLS_SUPPORT, function () {\n    return Symbol.species;\n  }],\n  'es.symbol.split': [SYMBOLS_SUPPORT, function () {\n    return Symbol.split;\n  }],\n  'es.symbol.to-primitive': [SYMBOLS_SUPPORT, function () {\n    return Symbol.toPrimitive && Symbol.prototype[Symbol.toPrimitive];\n  }],\n  'es.symbol.to-string-tag': [SYMBOLS_SUPPORT, function () {\n    return Symbol.toStringTag && Symbol.prototype[Symbol.toStringTag];\n  }],\n  'es.symbol.unscopables': [SYMBOLS_SUPPORT, function () {\n    return Symbol.unscopables;\n  }],\n  'es.error.cause': function () {\n    return new Error('e', { cause: 7 }).cause === 7\n      && !('cause' in Error.prototype);\n  },\n  'es.error.is-error': function () {\n    return PROTOTYPE_SETTING_AVAILABLE &&\n      (typeof DOMException != 'function' || Error.isError(new DOMException('DOMException'))) &&\n      Error.isError(new Error('Error', { cause: function () { /* empty */ } })) &&\n      !Error.isError(Object.create(Error.prototype));\n  },\n  'es.error.to-string': function () {\n    if (DESCRIPTORS_SUPPORT) {\n      // Chrome 32- incorrectly call accessor\n      var object = Object.create(Object.defineProperty({}, 'name', { get: function () {\n        return this === object;\n      } }));\n      if (Error.prototype.toString.call(object) !== 'true') return false;\n    }\n    // FF10- does not properly handle non-strings\n    return Error.prototype.toString.call({ message: 1, name: 2 }) === '2: 1'\n      // IE8 does not properly handle defaults\n      && Error.prototype.toString.call({}) === 'Error';\n  },\n  'es.aggregate-error.constructor': function () {\n    return typeof AggregateError == 'function';\n  },\n  'es.aggregate-error.cause': function () {\n    return new AggregateError([1], 'e', { cause: 7 }).cause === 7\n      && !('cause' in AggregateError.prototype);\n  },\n  'es.suppressed-error.constructor': function () {\n    return typeof SuppressedError == 'function'\n      && SuppressedError.length === 3\n      && new SuppressedError(1, 2, 3, { cause: 4 }).cause !== 4;\n  },\n  'es.array.at': function () {\n    return [].at;\n  },\n  'es.array.concat': function () {\n    var array1 = [];\n    array1[Symbol.isConcatSpreadable] = false;\n\n    var array2 = [];\n    var constructor = array2.constructor = {};\n    constructor[Symbol.species] = function () {\n      return { foo: 1 };\n    };\n\n    // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- @@species\n    return array1.concat()[0] === array1 && array2.concat().foo === 1;\n  },\n  'es.array.copy-within': function () {\n    return Array.prototype.copyWithin && Array.prototype[Symbol.unscopables].copyWithin;\n  },\n  'es.array.every': function () {\n    try {\n      Array.prototype.every.call(null, function () { /* empty */ });\n      return false;\n    } catch (error) { /* empty */ }\n    return Array.prototype.every;\n  },\n  'es.array.fill': function () {\n    return Array.prototype.fill && Array.prototype[Symbol.unscopables].fill;\n  },\n  'es.array.filter': function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[Symbol.species] = function () {\n      return { foo: 1 };\n    };\n    // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- @@species\n    return array.filter(Boolean).foo === 1;\n  },\n  'es.array.find': function () {\n    var SKIPS_HOLES = true;\n    Array(1).find(function () { return SKIPS_HOLES = false; });\n    return !SKIPS_HOLES && Array.prototype[Symbol.unscopables].find;\n  },\n  'es.array.find-index': function () {\n    var SKIPS_HOLES = true;\n    Array(1).findIndex(function () { return SKIPS_HOLES = false; });\n    return !SKIPS_HOLES && Array.prototype[Symbol.unscopables].findIndex;\n  },\n  'es.array.find-last': function () {\n    return [].findLast;\n  },\n  'es.array.find-last-index': function () {\n    return [].findLastIndex;\n  },\n  'es.array.flat': function () {\n    return Array.prototype.flat;\n  },\n  'es.array.flat-map': function () {\n    return Array.prototype.flatMap;\n  },\n  'es.array.for-each': function () {\n    try {\n      Array.prototype.forEach.call(null, function () { /* empty */ });\n      return false;\n    } catch (error) { /* empty */ }\n    return Array.prototype.forEach;\n  },\n  'es.array.from': SAFE_ITERATION_CLOSING_SUPPORT,\n  'es.array.includes': function () {\n    return Array(1).includes()\n      && Array.prototype[Symbol.unscopables].includes\n      // https://bugs.webkit.org/show_bug.cgi?id=309342\n      // eslint-disable-next-line no-sparse-arrays -- testing\n      && ![, 1].includes(undefined, 1);\n  },\n  'es.array.index-of': function () {\n    try {\n      [].indexOf.call(null);\n    } catch (error) {\n      return 1 / [1].indexOf(1, -0) > 0;\n    }\n  },\n  'es.array.is-array': function () {\n    return Array.isArray;\n  },\n  'es.array.iterator': [SYMBOLS_SUPPORT, function () {\n    return [][Symbol.iterator] === [].values\n      && [][Symbol.iterator].name === 'values'\n      && [].entries()[Symbol.toStringTag] === 'Array Iterator'\n      && [].keys().next()\n      && [][Symbol.unscopables].keys\n      && [][Symbol.unscopables].values\n      && [][Symbol.unscopables].entries;\n  }],\n  'es.array.join': function () {\n    try {\n      if (!Object.prototype.propertyIsEnumerable.call(Object('z'), 0)) return false;\n    } catch (error) {\n      return false;\n    }\n    try {\n      Array.prototype.join.call(null, '');\n      return false;\n    } catch (error) { /* empty */ }\n    return true;\n  },\n  'es.array.last-index-of': function () {\n    try {\n      [].lastIndexOf.call(null);\n    } catch (error) {\n      return 1 / [1].lastIndexOf(1, -0) > 0;\n    }\n  },\n  'es.array.map': function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[Symbol.species] = function () {\n      return { foo: 1 };\n    };\n    // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- @@species\n    return array.map(function () { return true; }).foo === 1;\n  },\n  'es.array.of': function () {\n    function F() { /* empty */ }\n    return Array.of.call(F) instanceof F;\n  },\n  'es.array.push': function () {\n    if ([].push.call({ length: 0x100000000 }, 1) !== 4294967297) return false;\n    try {\n      Object.defineProperty([], 'length', { writable: false }).push();\n    } catch (error) {\n      return error instanceof TypeError;\n    }\n  },\n  'es.array.reduce': function () {\n    try {\n      Array.prototype.reduce.call(null, function () { /* empty */ }, 1);\n    } catch (error) {\n      return Array.prototype.reduce;\n    }\n  },\n  'es.array.reduce-right': function () {\n    try {\n      Array.prototype.reduceRight.call(null, function () { /* empty */ }, 1);\n    } catch (error) {\n      return Array.prototype.reduceRight;\n    }\n  },\n  'es.array.reverse': function () {\n    var test = [1, 2];\n    return String(test) !== String(test.reverse());\n  },\n  'es.array.slice': function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[Symbol.species] = function () {\n      return { foo: 1 };\n    };\n    // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- @@species\n    return array.slice().foo === 1;\n  },\n  'es.array.some': function () {\n    try {\n      Array.prototype.some.call(null, function () { /* empty */ });\n    } catch (error) {\n      return Array.prototype.some;\n    }\n  },\n  'es.array.sort': function () {\n    try {\n      Array.prototype.sort.call(null);\n    } catch (error1) {\n      try {\n        [1, 2, 3].sort(null);\n      } catch (error2) {\n        [1, 2, 3].sort(undefined);\n\n        // stable sort\n        var array = [];\n        var result = '';\n        var code, chr, value, index;\n\n        // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n        for (code = 65; code < 76; code++) {\n          chr = String.fromCharCode(code);\n          switch (code) {\n            case 66: case 69: case 70: case 72: value = 3; break;\n            case 68: case 71: value = 4; break;\n            default: value = 2;\n          }\n          for (index = 0; index < 47; index++) {\n            array.push({ k: chr + index, v: value });\n          }\n        }\n\n        array.sort(function (a, b) { return b.v - a.v; });\n\n        for (index = 0; index < array.length; index++) {\n          chr = array[index].k.charAt(0);\n          if (result.charAt(result.length - 1) !== chr) result += chr;\n        }\n\n        return result === 'DGBEFHACIJK';\n      }\n    }\n  },\n  'es.array.species': [SYMBOLS_SUPPORT, function () {\n    return Array[Symbol.species];\n  }],\n  'es.array.splice': function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[Symbol.species] = function () {\n      return { foo: 1 };\n    };\n    // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- @@species\n    return array.splice().foo === 1;\n  },\n  'es.array.to-reversed': function () {\n    return [].toReversed;\n  },\n  'es.array.to-sorted': function () {\n    return [].toSorted;\n  },\n  'es.array.to-spliced': function () {\n    return [].toSpliced;\n  },\n  'es.array.unscopables.flat': function () {\n    return Array.prototype[Symbol.unscopables].flat;\n  },\n  'es.array.unscopables.flat-map': function () {\n    return Array.prototype[Symbol.unscopables].flatMap;\n  },\n  'es.array.unshift': function () {\n    if ([].unshift(0) !== 1) return false;\n    try {\n      Object.defineProperty([], 'length', { writable: false }).unshift();\n    } catch (error) {\n      return error instanceof TypeError;\n    }\n  },\n  'es.array.with': function () {\n    // Incorrect exception thrown when index coercion fails in Firefox\n    try {\n      []['with']({ valueOf: function () { throw 4; } }, null);\n    } catch (error) {\n      return error === 4;\n    }\n  },\n  'es.array-buffer.constructor': [ARRAY_BUFFER_SUPPORT, function () {\n    try {\n      return !ArrayBuffer(1);\n    } catch (error) { /* empty */ }\n    try {\n      return !new ArrayBuffer(-1);\n    } catch (error) { /* empty */ }\n    new ArrayBuffer();\n    new ArrayBuffer(1.5);\n    new ArrayBuffer(NaN);\n    return ArrayBuffer.length === 1 && ArrayBuffer.name === 'ArrayBuffer';\n  }],\n  'es.array-buffer.is-view': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return ArrayBuffer.isView;\n  }],\n  'es.array-buffer.slice': [ARRAY_BUFFER_SUPPORT, function () {\n    return new ArrayBuffer(2).slice(1, undefined).byteLength;\n  }],\n  'es.array-buffer.detached': function () {\n    return 'detached' in ArrayBuffer.prototype;\n  },\n  'es.array-buffer.transfer': function () {\n    return ArrayBuffer.prototype.transfer;\n  },\n  'es.array-buffer.transfer-to-fixed-length': function () {\n    return ArrayBuffer.prototype.transferToFixedLength;\n  },\n  'es.data-view.constructor': ARRAY_BUFFER_SUPPORT,\n  'es.data-view.get-float16': [ARRAY_BUFFER_SUPPORT, function () {\n    return DataView.prototype.getFloat16;\n  }],\n  'es.data-view.set-float16': [ARRAY_BUFFER_SUPPORT, function () {\n    return DataView.prototype.setFloat16;\n  }],\n  'es.date.get-year': function () {\n    return new Date(16e11).getYear() === 120;\n  },\n  // TODO: Remove from `core-js@4`\n  'es.date.now': function () {\n    return Date.now;\n  },\n  'es.date.set-year': function () {\n    return Date.prototype.setYear;\n  },\n  'es.date.to-gmt-string': function () {\n    return Date.prototype.toGMTString;\n  },\n  'es.date.to-iso-string': function () {\n    try {\n      new Date(NaN).toISOString();\n    } catch (error) {\n      return new Date(-5e13 - 1).toISOString() === '0385-07-25T07:06:39.999Z';\n    }\n  },\n  'es.date.to-json': function () {\n    return new Date(NaN).toJSON() === null\n      && Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) === 1;\n  },\n  'es.date.to-primitive': [SYMBOLS_SUPPORT, function () {\n    return Date.prototype[Symbol.toPrimitive];\n  }],\n  // TODO: Remove from `core-js@4`\n  'es.date.to-string': function () {\n    return new Date(NaN).toString() === 'Invalid Date';\n  },\n  'es.disposable-stack.constructor': function () {\n    return typeof DisposableStack == 'function';\n  },\n  'es.escape': function () {\n    return escape;\n  },\n  'es.function.bind': function () {\n    var test = function () { /* empty */ }.bind();\n    // eslint-disable-next-line no-prototype-builtins -- safe\n    return typeof test == 'function' && !test.hasOwnProperty('prototype');\n  },\n  'es.function.has-instance': [SYMBOLS_SUPPORT, function () {\n    return Symbol.hasInstance in Function.prototype;\n  }],\n  'es.function.name': function () {\n    return 'name' in Function.prototype;\n  },\n  'es.global-this': function () {\n    return globalThis;\n  },\n  'es.iterator.constructor': function () {\n    try {\n      Iterator({});\n    } catch (error) {\n      return typeof Iterator == 'function'\n        && Iterator.prototype === Object.getPrototypeOf(Object.getPrototypeOf([].values()));\n    }\n  },\n  'es.iterator.concat': function () {\n    return Iterator.concat;\n  },\n  'es.iterator.dispose': function () {\n    return [].keys()[Symbol.dispose];\n  },\n  'es.iterator.drop': [\n    iteratorHelperThrowsErrorOnInvalidIterator('drop', 0),\n    checkIteratorClosingOnEarlyError('drop', RangeError)\n  ],\n  'es.iterator.every': checkIteratorClosingOnEarlyError('every', TypeError),\n  'es.iterator.filter': [\n    iteratorHelperThrowsErrorOnInvalidIterator('filter', function () { /* empty */ }),\n    checkIteratorClosingOnEarlyError('filter', TypeError)\n  ],\n  'es.iterator.find': checkIteratorClosingOnEarlyError('find', TypeError),\n  'es.iterator.flat-map': [\n    iteratorHelperThrowsErrorOnInvalidIterator('flatMap', function () { /* empty */ }),\n    checkIteratorClosingOnEarlyError('flatMap', TypeError),\n    // Should not throw an error for an iterator without `return` method. Fixed in Safari 26.2\n    // https://bugs.webkit.org/show_bug.cgi?id=297532\n    function () {\n      try {\n        var it = new Map([[4, 5]]).entries().flatMap(function (v) { return v; });\n        it.next();\n        it['return']();\n        return true;\n      } catch (error) { /* empty */ }\n    }\n  ],\n  'es.iterator.for-each': checkIteratorClosingOnEarlyError('forEach', TypeError),\n  'es.iterator.from': function () {\n    Iterator.from({ 'return': null })['return']();\n    return true;\n  },\n  'es.iterator.map': [\n    iteratorHelperThrowsErrorOnInvalidIterator('map', function () { /* empty */ }),\n    checkIteratorClosingOnEarlyError('map', TypeError)\n  ],\n  'es.iterator.reduce': [checkIteratorClosingOnEarlyError('reduce', TypeError), function () {\n    // fails on undefined initial parameter\n    // https://bugs.webkit.org/show_bug.cgi?id=291651\n    [].keys().reduce(function () { /* empty */ }, undefined);\n    return true;\n  }],\n  'es.iterator.some': checkIteratorClosingOnEarlyError('some', TypeError),\n  'es.iterator.take': [\n    iteratorHelperThrowsErrorOnInvalidIterator('take', 1),\n    checkIteratorClosingOnEarlyError('take', RangeError)\n  ],\n  'es.iterator.to-array': function () {\n    return Iterator.prototype.toArray;\n  },\n  'es.json.is-raw-json': NATIVE_RAW_JSON,\n  'es.json.parse': function () {\n    var unsafeInt = '9007199254740993';\n    var source;\n    JSON.parse(unsafeInt, function (key, value, context) {\n      source = context.source;\n    });\n    return source === unsafeInt;\n  },\n  'es.json.raw-json': NATIVE_RAW_JSON,\n  'es.json.stringify': [NATIVE_RAW_JSON, SYMBOLS_SUPPORT, function () {\n    var symbol = Symbol('stringify detection');\n    return JSON.stringify([symbol]) === '[null]'\n      && JSON.stringify({ a: symbol }) === '{}'\n      && JSON.stringify(Object(symbol)) === '{}'\n      && JSON.stringify('\\uDF06\\uD834') === '\"\\\\udf06\\\\ud834\"'\n      && JSON.stringify('\\uDEAD') === '\"\\\\udead\"';\n  }],\n  'es.json.to-string-tag': [SYMBOLS_SUPPORT, function () {\n    return JSON[Symbol.toStringTag];\n  }],\n  'es.map.constructor': [SAFE_ITERATION_CLOSING_SUPPORT, function () {\n    var called = 0;\n    var iterable = {\n      next: function () {\n        return { done: !!called++, value: [1, 2] };\n      }\n    };\n    iterable[Symbol.iterator] = function () {\n      return this;\n    };\n\n    var map = new Map(iterable);\n    return map.forEach\n      && map[Symbol.iterator]().next()\n      && map.get(1) === 2\n      && map.set(-0, 3) === map\n      && map.has(0)\n      && map[Symbol.toStringTag];\n  }],\n  'es.map.group-by': function () {\n    // https://bugs.webkit.org/show_bug.cgi?id=271524\n    return Map.groupBy('ab', function (it) {\n      return it;\n    }).get('a').length === 1;\n  },\n  'es.map.get-or-insert': function () {\n    return Map.prototype.getOrInsert;\n  },\n  'es.map.get-or-insert-computed': function () {\n    return Map.prototype.getOrInsertComputed;\n  },\n  'es.math.acosh': function () {\n    // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n    return Math.floor(Math.acosh(Number.MAX_VALUE)) === 710\n      // Tor Browser bug: Math.acosh(Infinity) -> NaN\n      // eslint-disable-next-line math/no-static-infinity-calculations -- testing\n      && Math.acosh(Infinity) === Infinity;\n  },\n  'es.math.asinh': function () {\n    // eslint-disable-next-line math/no-static-infinity-calculations -- testing\n    return 1 / Math.asinh(0) > 0;\n  },\n  'es.math.atanh': function () {\n    // eslint-disable-next-line math/no-static-infinity-calculations -- testing\n    return 1 / Math.atanh(-0) < 0;\n  },\n  'es.math.cbrt': function () {\n    return Math.cbrt;\n  },\n  'es.math.clz32': function () {\n    return Math.clz32;\n  },\n  'es.math.cosh': function () {\n    return Math.cosh(710) !== Infinity;\n  },\n  'es.math.expm1': function () {\n    // Old FF bug\n    // eslint-disable-next-line no-loss-of-precision -- required for old engines\n    return Math.expm1(10) <= 22025.465794806719 && Math.expm1(10) >= 22025.4657948067165168\n      // Tor Browser bug\n      && Math.expm1(-2e-17) === -2e-17;\n  },\n  'es.math.fround': function () {\n    return Math.fround;\n  },\n  'es.math.f16round': function () {\n    return Math.f16round;\n  },\n  'es.math.hypot': function () {\n    // eslint-disable-next-line math/no-static-infinity-calculations -- testing\n    return Math.hypot && Math.hypot(Infinity, NaN) === Infinity;\n  },\n  'es.math.imul': function () {\n    return Math.imul(0xFFFFFFFF, 5) === -5 && Math.imul.length === 2;\n  },\n  'es.math.log10': function () {\n    return Math.log10;\n  },\n  'es.math.log1p': function () {\n    return Math.log1p;\n  },\n  'es.math.log2': function () {\n    return Math.log2;\n  },\n  'es.math.sign': function () {\n    return Math.sign;\n  },\n  'es.math.sinh': function () {\n    return Math.sinh(-2e-17) === -2e-17;\n  },\n  'es.math.sum-precise': function () {\n    return Math.sumPrecise;\n  },\n  'es.math.tanh': function () {\n    return Math.tanh;\n  },\n  'es.math.to-string-tag': function () {\n    return Math[Symbol.toStringTag];\n  },\n  'es.math.trunc': function () {\n    return Math.trunc;\n  },\n  'es.number.constructor': function () {\n    // eslint-disable-next-line math/no-static-nan-calculations -- feature detection\n    return Number(' 0o1') && Number('0b1') && !Number('+0x1');\n  },\n  'es.number.epsilon': function () {\n    return Number.EPSILON;\n  },\n  'es.number.is-finite': function () {\n    return Number.isFinite;\n  },\n  'es.number.is-integer': function () {\n    return Number.isInteger;\n  },\n  'es.number.is-nan': function () {\n    return Number.isNaN;\n  },\n  'es.number.is-safe-integer': function () {\n    return Number.isSafeInteger;\n  },\n  'es.number.max-safe-integer': function () {\n    return Number.MAX_SAFE_INTEGER;\n  },\n  'es.number.min-safe-integer': function () {\n    return Number.MIN_SAFE_INTEGER;\n  },\n  'es.number.parse-float': function () {\n    try {\n      parseFloat(Object(Symbol.iterator));\n    } catch (error) {\n      return Number.parseFloat === parseFloat\n        && 1 / parseFloat(WHITESPACES + '-0') === -Infinity;\n    }\n  },\n  'es.number.parse-int': function () {\n    try {\n      parseInt(Object(Symbol.iterator));\n    } catch (error) {\n      return Number.parseInt === parseInt\n        && parseInt(WHITESPACES + '08') === 8\n        && parseInt(WHITESPACES + '0x16') === 22;\n    }\n  },\n  'es.number.to-exponential': function () {\n    try {\n      1.0.toExponential(Infinity);\n    } catch (error) {\n      try {\n        1.0.toExponential(-Infinity);\n      } catch (error2) {\n        Infinity.toExponential(Infinity);\n        NaN.toExponential(Infinity);\n        return (-6.9e-11).toExponential(4) === '-6.9000e-11'\n          && 1.255.toExponential(2) === '1.25e+0';\n        // && 25.0.toExponential(0) === '3e+1';\n      }\n    }\n  },\n  'es.number.to-fixed': function () {\n    try {\n      Number.prototype.toFixed.call({});\n    } catch (error) {\n      return 0.00008.toFixed(3) === '0.000'\n        && 0.9.toFixed(0) === '1'\n        && 1.255.toFixed(2) === '1.25'\n        && 1000000000000000128.0.toFixed(0) === '1000000000000000128';\n    }\n  },\n  'es.number.to-precision': function () {\n    try {\n      Number.prototype.toPrecision.call({});\n    } catch (error) {\n      return 1.0.toPrecision(undefined) === '1';\n    }\n  },\n  'es.object.assign': function () {\n    if (DESCRIPTORS_SUPPORT && Object.assign({ b: 1 }, Object.assign(Object.defineProperty({}, 'a', {\n      enumerable: true,\n      get: function () {\n        Object.defineProperty(this, 'b', {\n          value: 3,\n          enumerable: false\n        });\n      }\n    }), { b: 2 })).b !== 1) return false;\n    var A = {};\n    var B = {};\n    var symbol = Symbol('assign detection');\n    var alphabet = 'abcdefghijklmnopqrst';\n    A[symbol] = 7;\n    alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n    return Object.assign({}, A)[symbol] === 7 && Object.keys(Object.assign({}, B)).join('') === alphabet;\n  },\n  // TODO: Remove from `core-js@4`\n  'es.object.create': function () {\n    return Object.create;\n  },\n  'es.object.define-getter': OBJECT_PROTOTYPE_ACCESSORS_SUPPORT,\n  'es.object.define-properties': [DESCRIPTORS_SUPPORT, V8_PROTOTYPE_DEFINE_BUG, function () {\n    return Object.defineProperties;\n  }],\n  'es.object.define-property': [DESCRIPTORS_SUPPORT, V8_PROTOTYPE_DEFINE_BUG],\n  'es.object.define-setter': OBJECT_PROTOTYPE_ACCESSORS_SUPPORT,\n  'es.object.entries': function () {\n    return Object.entries;\n  },\n  'es.object.freeze': function () {\n    return Object.freeze(true);\n  },\n  'es.object.from-entries': function () {\n    return Object.fromEntries;\n  },\n  'es.object.get-own-property-descriptor': [DESCRIPTORS_SUPPORT, function () {\n    return Object.getOwnPropertyDescriptor('qwe', '0');\n  }],\n  'es.object.get-own-property-descriptors': function () {\n    return Object.getOwnPropertyDescriptors;\n  },\n  'es.object.get-own-property-names': function () {\n    return Object.getOwnPropertyNames('qwe');\n  },\n  'es.object.get-own-property-symbols': [SYMBOLS_SUPPORT, function () {\n    return Object.getOwnPropertySymbols('qwe');\n  }],\n  'es.object.get-prototype-of': function () {\n    return Object.getPrototypeOf('qwe');\n  },\n  'es.object.group-by': function () {\n    // https://bugs.webkit.org/show_bug.cgi?id=271524\n    return Object.groupBy('ab', function (it) {\n      return it;\n    }).a.length === 1;\n  },\n  'es.object.has-own': function () {\n    return Object.hasOwn;\n  },\n  'es.object.is': function () {\n    return Object.is;\n  },\n  'es.object.is-extensible': function () {\n    return !Object.isExtensible('qwe');\n  },\n  'es.object.is-frozen': function () {\n    return Object.isFrozen('qwe');\n  },\n  'es.object.is-sealed': function () {\n    return Object.isSealed('qwe');\n  },\n  'es.object.keys': function () {\n    return Object.keys('qwe');\n  },\n  'es.object.lookup-getter': OBJECT_PROTOTYPE_ACCESSORS_SUPPORT,\n  'es.object.lookup-setter': OBJECT_PROTOTYPE_ACCESSORS_SUPPORT,\n  'es.object.prevent-extensions': function () {\n    return Object.preventExtensions(true);\n  },\n  'es.object.proto': function () {\n    return '__proto__' in Object.prototype;\n  },\n  'es.object.seal': function () {\n    return Object.seal(true);\n  },\n  'es.object.set-prototype-of': function () {\n    return Object.setPrototypeOf;\n  },\n  'es.object.to-string': [SYMBOLS_SUPPORT, function () {\n    var O = {};\n    O[Symbol.toStringTag] = 'foo';\n    return String(O) === '[object foo]';\n  }],\n  'es.object.values': function () {\n    return Object.values;\n  },\n  'es.parse-float': function () {\n    try {\n      parseFloat(Object(Symbol.iterator));\n    } catch (error) {\n      return 1 / parseFloat(WHITESPACES + '-0') === -Infinity;\n    }\n  },\n  'es.parse-int': function () {\n    try {\n      parseInt(Object(Symbol.iterator));\n    } catch (error) {\n      return parseInt(WHITESPACES + '08') === 8\n        && parseInt(WHITESPACES + '0x16') === 22;\n    }\n  },\n  // TODO: Remove this module from `core-js@4` since it's split to modules listed below\n  'es.promise': PROMISES_SUPPORT,\n  'es.promise.constructor': PROMISES_SUPPORT,\n  'es.promise.all': [PROMISES_SUPPORT, SAFE_ITERATION_CLOSING_SUPPORT, PROMISE_STATICS_ITERATION, function () {\n    return Promise.all;\n  }],\n  'es.promise.all-settled': [PROMISES_SUPPORT, SAFE_ITERATION_CLOSING_SUPPORT, PROMISE_STATICS_ITERATION, function () {\n    return Promise.allSettled;\n  }],\n  'es.promise.any': [PROMISES_SUPPORT, SAFE_ITERATION_CLOSING_SUPPORT, PROMISE_STATICS_ITERATION, function () {\n    return Promise.any;\n  }],\n  'es.promise.catch': PROMISES_SUPPORT,\n  'es.promise.finally': [PROMISES_SUPPORT, function () {\n    // eslint-disable-next-line unicorn/no-thenable -- required for testing\n    return Promise.prototype['finally'].call({ then: function () { return this; } }, function () { /* empty */ });\n  }],\n  'es.promise.race': [PROMISES_SUPPORT, SAFE_ITERATION_CLOSING_SUPPORT, PROMISE_STATICS_ITERATION, function () {\n    return Promise.race;\n  }],\n  'es.promise.reject': PROMISES_SUPPORT,\n  'es.promise.resolve': PROMISES_SUPPORT,\n  'es.promise.try': [PROMISES_SUPPORT, function () {\n    var ACCEPT_ARGUMENTS = false;\n    Promise['try'](function (argument) {\n      ACCEPT_ARGUMENTS = argument === 8;\n    }, 8);\n    return ACCEPT_ARGUMENTS;\n  }],\n  'es.promise.with-resolvers': [PROMISES_SUPPORT, function () {\n    return Promise.withResolvers;\n  }],\n  'es.array.from-async': function () {\n    // https://bugs.webkit.org/show_bug.cgi?id=271703\n    var counter = 0;\n    Array.fromAsync.call(function () {\n      counter++;\n      return [];\n    }, { length: 0 });\n    return counter === 1;\n  },\n  'es.async-disposable-stack.constructor': function () {\n    // https://github.com/tc39/proposal-explicit-resource-management/issues/256\n    // can't be detected synchronously\n    if (V8_VERSION && V8_VERSION < 136) return;\n    return typeof AsyncDisposableStack == 'function';\n  },\n  'es.async-iterator.async-dispose': function () {\n    return AsyncIterator.prototype[Symbol.asyncDispose];\n  },\n  'es.reflect.apply': function () {\n    try {\n      return Reflect.apply(function () {\n        return false;\n      });\n    } catch (error) {\n      return Reflect.apply(function () {\n        return true;\n      }, null, []);\n    }\n  },\n  'es.reflect.construct': function () {\n    try {\n      return !Reflect.construct(function () { /* empty */ });\n    } catch (error) { /* empty */ }\n    function F() { /* empty */ }\n    return Reflect.construct(function () { /* empty */ }, [], F) instanceof F;\n  },\n  'es.reflect.define-property': function () {\n    return !Reflect.defineProperty(Object.defineProperty({}, 1, { value: 1 }), 1, { value: 2 });\n  },\n  'es.reflect.delete-property': function () {\n    return Reflect.deleteProperty;\n  },\n  'es.reflect.get': function () {\n    return Reflect.get;\n  },\n  'es.reflect.get-own-property-descriptor': function () {\n    return Reflect.getOwnPropertyDescriptor;\n  },\n  'es.reflect.get-prototype-of': function () {\n    return Reflect.getPrototypeOf;\n  },\n  'es.reflect.has': function () {\n    return Reflect.has;\n  },\n  'es.reflect.is-extensible': function () {\n    return Reflect.isExtensible;\n  },\n  'es.reflect.own-keys': function () {\n    return Reflect.ownKeys;\n  },\n  'es.reflect.prevent-extensions': function () {\n    return Reflect.preventExtensions;\n  },\n  'es.reflect.set': function () {\n    var object = Object.defineProperty({}, 'a', { configurable: true });\n    return Reflect.set(Object.getPrototypeOf(object), 'a', 1, object) === false;\n  },\n  'es.reflect.set-prototype-of': function () {\n    return Reflect.setPrototypeOf;\n  },\n  'es.reflect.to-string-tag': function () {\n    return Reflect[Symbol.toStringTag];\n  },\n  'es.regexp.constructor': [NCG_SUPPORT, function () {\n    var re1 = /a/g;\n    var re2 = /a/g;\n    re2[Symbol.match] = false;\n    // eslint-disable-next-line no-constant-binary-expression -- required for testing\n    return new RegExp(re1) !== re1\n      && RegExp(re1) === re1\n      && RegExp(re2) !== re2\n      && String(RegExp(re1, 'i')) === '/a/i'\n      && new RegExp('a', 'y') // just check that it doesn't throw\n      && RegExp('.', 's').exec('\\n')\n      && RegExp[Symbol.species];\n  }],\n  'es.regexp.escape': function () {\n    return RegExp.escape('ab') === '\\\\x61b';\n  },\n  'es.regexp.dot-all': function () {\n    return RegExp('.', 's').dotAll;\n  },\n  'es.regexp.exec': [NCG_SUPPORT, function () {\n    var re1 = /a/;\n    var re2 = /b*/g;\n    var reSticky = new RegExp('a', 'y');\n    var reStickyAnchored = new RegExp('^a', 'y');\n    re1.exec('a');\n    re2.exec('a');\n    return re1.lastIndex === 0 && re2.lastIndex === 0\n      // eslint-disable-next-line regexp/no-empty-group -- required for testing\n      && /()??/.exec('')[1] === undefined\n      && reSticky.exec('abc')[0] === 'a'\n      && reSticky.exec('abc') === null\n      && (reSticky.lastIndex = 1)\n      && reSticky.exec('bac')[0] === 'a'\n      && (reStickyAnchored.lastIndex = 2)\n      && reStickyAnchored.exec('cba') === null\n      && RegExp('.', 's').exec('\\n');\n  }],\n  'es.regexp.flags': function () {\n    var INDICES_SUPPORT = true;\n    try {\n      RegExp('.', 'd');\n    } catch (error) {\n      INDICES_SUPPORT = false;\n    }\n\n    var O = {};\n    // modern V8 bug\n    var calls = '';\n    var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n    var addGetter = function (key, chr) {\n      Object.defineProperty(O, key, { get: function () {\n        calls += chr;\n        return true;\n      } });\n    };\n\n    var pairs = {\n      dotAll: 's',\n      global: 'g',\n      ignoreCase: 'i',\n      multiline: 'm',\n      sticky: 'y'\n    };\n\n    if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n    for (var key in pairs) addGetter(key, pairs[key]);\n\n    var result = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(O);\n\n    return result === expected && calls === expected;\n  },\n  'es.regexp.sticky': function () {\n    return new RegExp('a', 'y').sticky === true;\n  },\n  'es.regexp.test': function () {\n    var execCalled = false;\n    var re = /[ac]/;\n    re.exec = function () {\n      execCalled = true;\n      return /./.exec.apply(this, arguments);\n    };\n    return re.test('abc') === true && execCalled;\n  },\n  'es.regexp.to-string': function () {\n    return RegExp.prototype.toString.call({ source: 'a', flags: 'b' }) === '/a/b'\n      && RegExp.prototype.toString.name === 'toString';\n  },\n  'es.set.constructor': [SAFE_ITERATION_CLOSING_SUPPORT, function () {\n    var called = 0;\n    var iterable = {\n      next: function () {\n        return { done: !!called++, value: 1 };\n      }\n    };\n    iterable[Symbol.iterator] = function () {\n      return this;\n    };\n\n    var set = new Set(iterable);\n    return set.forEach\n      && set[Symbol.iterator]().next()\n      && set.has(1)\n      && set.add(-0) === set\n      && set.has(0)\n      && set[Symbol.toStringTag];\n  }],\n  'es.set.difference.v2': [createSetMethodTest('difference', function (result) {\n    return result.size === 0;\n  }), function () {\n    // A WebKit bug occurs when `this` is updated while Set.prototype.difference is being executed\n    // https://bugs.webkit.org/show_bug.cgi?id=288595\n    var setLike = {\n      size: 1,\n      has: function () { return true; },\n      keys: function () {\n        var index = 0;\n        return {\n          next: function () {\n            var done = index++ > 1;\n            if (baseSet.has(1)) baseSet.clear();\n            return { done: done, value: 2 };\n          }\n        };\n      }\n    };\n\n    var baseSet = new Set([1, 2, 3, 4]);\n\n    return baseSet.difference(setLike).size === 3;\n  }],\n  'es.set.intersection.v2': [createSetMethodTest('intersection', function (result) {\n    return result.size === 2 && result.has(1) && result.has(2);\n  }), function () {\n    return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) === '3,2';\n  }],\n  'es.set.is-disjoint-from.v2': createSetMethodTest('isDisjointFrom', function (result) {\n    return !result;\n  }),\n  'es.set.is-subset-of.v2': createSetMethodTest('isSubsetOf', function (result) {\n    return result;\n  }),\n  'es.set.is-superset-of.v2': createSetMethodTest('isSupersetOf', function (result) {\n    return !result;\n  }),\n  'es.set.symmetric-difference.v2': [\n    createSetMethodTest('symmetricDifference'),\n    createSetMethodTestShouldGetKeysBeforeCloning('symmetricDifference')\n  ],\n  'es.set.union.v2': [\n    createSetMethodTest('union'),\n    createSetMethodTestShouldGetKeysBeforeCloning('union')\n  ],\n  'es.string.at-alternative': function () {\n    return '𠮷'.at(-2) === '\\uD842';\n  },\n  'es.string.code-point-at': function () {\n    return String.prototype.codePointAt;\n  },\n  'es.string.ends-with': createIsRegExpLogicTest('endsWith'),\n  'es.string.from-code-point': function () {\n    return String.fromCodePoint;\n  },\n  'es.string.includes': createIsRegExpLogicTest('includes'),\n  'es.string.is-well-formed': function () {\n    return String.prototype.isWellFormed;\n  },\n  'es.string.iterator': [SYMBOLS_SUPPORT, function () {\n    return ''[Symbol.iterator];\n  }],\n  'es.string.match': function () {\n    var O = {};\n    O[Symbol.match] = function () { return 7; };\n\n    var execCalled = false;\n    var re = /a/;\n    re.exec = function () {\n      execCalled = true;\n      return null;\n    };\n    re[Symbol.match]('');\n\n    // eslint-disable-next-line regexp/prefer-regexp-exec -- required for testing\n    return ''.match(O) === 7 && execCalled;\n  },\n  'es.string.match-all': function () {\n    try {\n      // eslint-disable-next-line regexp/no-missing-g-flag -- required for testing\n      'a'.matchAll(/./);\n    } catch (error) {\n      return 'a'.matchAll(/./g);\n    }\n  },\n  'es.string.pad-end': function () {\n    return String.prototype.padEnd && !WEBKIT_STRING_PAD_BUG;\n  },\n  'es.string.pad-start': function () {\n    return String.prototype.padStart && !WEBKIT_STRING_PAD_BUG;\n  },\n  'es.string.raw': function () {\n    return String.raw;\n  },\n  'es.string.repeat': function () {\n    return String.prototype.repeat;\n  },\n  'es.string.replace': function () {\n    var O = {};\n    O[Symbol.replace] = function () { return 7; };\n\n    var execCalled = false;\n    var re = /a/;\n    re.exec = function () {\n      execCalled = true;\n      return null;\n    };\n    re[Symbol.replace]('');\n\n    var re2 = /./;\n    re2.exec = function () {\n      var result = [];\n      result.groups = { a: '7' };\n      return result;\n    };\n\n    return ''.replace(O) === 7\n      && execCalled\n      // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n      && ''.replace(re2, '$<a>') === '7'\n      // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n      && 'a'.replace(/./, '$0') === '$0'\n      && /./[Symbol.replace]('a', '$0') === '$0';\n  },\n  'es.string.replace-all': function () {\n    return String.prototype.replaceAll;\n  },\n  'es.string.search': function () {\n    var O = {};\n    O[Symbol.search] = function () { return 7; };\n\n    var execCalled = false;\n    var re = /a/;\n    re.exec = function () {\n      execCalled = true;\n      return null;\n    };\n    re[Symbol.search]('');\n\n    return ''.search(O) === 7 && execCalled;\n  },\n  'es.string.split': function () {\n    var O = {};\n    O[Symbol.split] = function () { return 7; };\n\n    var execCalled = false;\n    var re = /a/;\n    re.exec = function () {\n      execCalled = true;\n      return null;\n    };\n    re.constructor = {};\n    re.constructor[Symbol.species] = function () { return re; };\n    re[Symbol.split]('');\n\n    // eslint-disable-next-line regexp/no-empty-group -- required for testing\n    var re2 = /(?:)/;\n    var originalExec = re2.exec;\n    re2.exec = function () { return originalExec.apply(this, arguments); };\n    var result = 'ab'.split(re2);\n\n    return ''.split(O) === 7 && execCalled && result.length === 2 && result[0] === 'a' && result[1] === 'b';\n  },\n  'es.string.starts-with': createIsRegExpLogicTest('startsWith'),\n  'es.string.substr': function () {\n    return 'ab'.substr(-1) === 'b';\n  },\n  'es.string.to-well-formed': function () {\n    // Safari ToString conversion bug\n    // https://bugs.webkit.org/show_bug.cgi?id=251757\n    return String.prototype.toWellFormed.call(1) === '1';\n  },\n  'es.string.trim': createStringTrimMethodTest('trim'),\n  'es.string.trim-end': [createStringTrimMethodTest('trimEnd'), function () {\n    return String.prototype.trimRight === String.prototype.trimEnd;\n  }],\n  'es.string.trim-left': [createStringTrimMethodTest('trimStart'), function () {\n    return String.prototype.trimLeft === String.prototype.trimStart;\n  }],\n  'es.string.trim-right': [createStringTrimMethodTest('trimEnd'), function () {\n    return String.prototype.trimRight === String.prototype.trimEnd;\n  }],\n  'es.string.trim-start': [createStringTrimMethodTest('trimStart'), function () {\n    return String.prototype.trimLeft === String.prototype.trimStart;\n  }],\n  'es.string.anchor': createStringHTMLMethodTest('anchor'),\n  'es.string.big': createStringHTMLMethodTest('big'),\n  'es.string.blink': createStringHTMLMethodTest('blink'),\n  'es.string.bold': createStringHTMLMethodTest('bold'),\n  'es.string.fixed': createStringHTMLMethodTest('fixed'),\n  'es.string.fontcolor': createStringHTMLMethodTest('fontcolor'),\n  'es.string.fontsize': createStringHTMLMethodTest('fontsize'),\n  'es.string.italics': createStringHTMLMethodTest('italics'),\n  'es.string.link': createStringHTMLMethodTest('link'),\n  'es.string.small': createStringHTMLMethodTest('small'),\n  'es.string.strike': createStringHTMLMethodTest('strike'),\n  'es.string.sub': createStringHTMLMethodTest('sub'),\n  'es.string.sup': createStringHTMLMethodTest('sup'),\n  'es.typed-array.float32-array': [\n    ARRAY_BUFFER_VIEWS_SUPPORT,\n    TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS\n  ],\n  'es.typed-array.float64-array': [\n    ARRAY_BUFFER_VIEWS_SUPPORT,\n    TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS\n  ],\n  'es.typed-array.int8-array': [\n    ARRAY_BUFFER_VIEWS_SUPPORT,\n    TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS\n  ],\n  'es.typed-array.int16-array': [\n    ARRAY_BUFFER_VIEWS_SUPPORT,\n    TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS\n  ],\n  'es.typed-array.int32-array': [\n    ARRAY_BUFFER_VIEWS_SUPPORT,\n    TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS\n  ],\n  'es.typed-array.uint8-array': [\n    ARRAY_BUFFER_VIEWS_SUPPORT,\n    TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS\n  ],\n  'es.typed-array.uint8-clamped-array': [\n    ARRAY_BUFFER_VIEWS_SUPPORT,\n    TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS\n  ],\n  'es.typed-array.uint16-array': [\n    ARRAY_BUFFER_VIEWS_SUPPORT,\n    TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS\n  ],\n  'es.typed-array.uint32-array': [\n    ARRAY_BUFFER_VIEWS_SUPPORT,\n    TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS\n  ],\n  'es.typed-array.at': function () {\n    return Int8Array.prototype.at;\n  },\n  'es.typed-array.copy-within': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.copyWithin;\n  }],\n  'es.typed-array.every': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.every;\n  }],\n  'es.typed-array.fill': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    var count = 0;\n    new Int8Array(2).fill({ valueOf: function () { return count++; } });\n    return count === 1;\n  }],\n  'es.typed-array.filter': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.filter;\n  }],\n  'es.typed-array.find': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.find;\n  }],\n  'es.typed-array.find-index': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.findIndex;\n  }],\n  'es.typed-array.find-last': function () {\n    return Int8Array.prototype.findLast;\n  },\n  'es.typed-array.find-last-index': function () {\n    return Int8Array.prototype.findLastIndex;\n  },\n  'es.typed-array.for-each': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.forEach;\n  }],\n  'es.typed-array.from': [\n    ARRAY_BUFFER_VIEWS_SUPPORT,\n    TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS,\n    function () {\n      return Int8Array.from;\n    }\n  ],\n  'es.typed-array.includes': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.includes;\n  }],\n  'es.typed-array.index-of': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.indexOf;\n  }],\n  'es.typed-array.iterator': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    try {\n      Int8Array.prototype[Symbol.iterator].call([1]);\n    } catch (error) {\n      return Int8Array.prototype[Symbol.iterator].name === 'values'\n        && Int8Array.prototype[Symbol.iterator] === Int8Array.prototype.values\n        && Int8Array.prototype.keys\n        && Int8Array.prototype.entries;\n    }\n  }],\n  'es.typed-array.join': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.join;\n  }],\n  'es.typed-array.last-index-of': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.lastIndexOf;\n  }],\n  'es.typed-array.map': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.map;\n  }],\n  'es.typed-array.of': [\n    ARRAY_BUFFER_VIEWS_SUPPORT,\n    TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS,\n    function () {\n      return Int8Array.of;\n    }\n  ],\n  'es.typed-array.reduce': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.reduce;\n  }],\n  'es.typed-array.reduce-right': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.reduceRight;\n  }],\n  'es.typed-array.reverse': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.reverse;\n  }],\n  'es.typed-array.set': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    var array = new Uint8ClampedArray(3);\n    array.set(1);\n    array.set('2', 1);\n    Int8Array.prototype.set.call(array, { length: 1, 0: 3 }, 2);\n    return array[0] === 0 && array[1] === 2 && array[2] === 3;\n  }],\n  'es.typed-array.slice': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return new Int8Array(1).slice();\n  }],\n  'es.typed-array.some': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.some;\n  }],\n  'es.typed-array.sort': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    try {\n      new Uint16Array(1).sort(null);\n      new Uint16Array(1).sort({});\n      return false;\n    } catch (error) { /* empty */ }\n    // stable sort\n    var array = new Uint16Array(516);\n    var expected = Array(516);\n    var index, mod;\n\n    for (index = 0; index < 516; index++) {\n      mod = index % 4;\n      array[index] = 515 - index;\n      expected[index] = index - 2 * mod + 3;\n    }\n\n    array.sort(function (a, b) {\n      return (a / 4 | 0) - (b / 4 | 0);\n    });\n\n    for (index = 0; index < 516; index++) {\n      if (array[index] !== expected[index]) return;\n    } return true;\n  }],\n  'es.typed-array.subarray': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.subarray;\n  }],\n  'es.typed-array.to-locale-string': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    try {\n      Int8Array.prototype.toLocaleString.call([1, 2]);\n    } catch (error) {\n      return [1, 2].toLocaleString() === new Int8Array([1, 2]).toLocaleString();\n    }\n  }],\n  'es.typed-array.to-string': [ARRAY_BUFFER_VIEWS_SUPPORT, function () {\n    return Int8Array.prototype.toString === Array.prototype.toString;\n  }],\n  'es.typed-array.to-reversed': function () {\n    return Int8Array.prototype.toReversed;\n  },\n  'es.typed-array.to-sorted': function () {\n    return Int8Array.prototype.toSorted;\n  },\n  'es.typed-array.with': [function () {\n    try {\n      new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n    } catch (error) {\n      return error === 8;\n    }\n  }, function () {\n    // WebKit doesn't handle this correctly. It should truncate a negative fractional index to zero, but instead throws an error\n    // Copyright (C) 2025 André Bargull. All rights reserved.\n    // This code is governed by the BSD license found in the LICENSE file.\n    // https://github.com/tc39/test262/pull/4477/commits/bd47071722d914036280cdd795a6ac6046d1c6f9\n    var ta = new Int8Array(1);\n    var result = ta['with'](-0.5, 1);\n    return result[0] === 1;\n  }],\n  'es.uint8-array.from-base64': function () {\n    try {\n      Uint8Array.fromBase64('a');\n      return;\n    } catch (error) { /* empty */ }\n    if (!Uint8Array.fromBase64) return false;\n    try {\n      Uint8Array.fromBase64('', null);\n    } catch (error) {\n      return true;\n    }\n  },\n  'es.uint8-array.from-hex': function () {\n    return Uint8Array.fromHex;\n  },\n  'es.uint8-array.set-from-base64': function () {\n    var target = new Uint8Array([255, 255, 255, 255, 255]);\n    try {\n      target.setFromBase64('', null);\n      return false;\n    } catch (error) { /* empty */ }\n    try {\n      target.setFromBase64('a');\n      return;\n    } catch (error) { /* empty */ }\n    try {\n      target.setFromBase64('MjYyZg===');\n    } catch (error) {\n      return target[0] === 50 && target[1] === 54 && target[2] === 50 && target[3] === 255 && target[4] === 255;\n    }\n  },\n  'es.uint8-array.set-from-hex': function () {\n    // Should not throw an error on length-tracking views over ResizableArrayBuffer\n    // https://issues.chromium.org/issues/454630441\n    try {\n      var rab = new ArrayBuffer(16, { maxByteLength: 1024 });\n      new Uint8Array(rab).setFromHex('cafed00d');\n      return true;\n    } catch (error) { /* empty */ }\n  },\n  'es.uint8-array.to-base64': function () {\n    if (!Uint8Array.prototype.toBase64) return false;\n    try {\n      var target = new Uint8Array();\n      target.toBase64(null);\n    } catch (error) {\n      return true;\n    }\n  },\n  'es.uint8-array.to-hex': function () {\n    if (!Uint8Array.prototype.toHex) return false;\n    try {\n      var target = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]);\n      return target.toHex() === 'ffffffffffffffff';\n    } catch (error) {\n      return false;\n    }\n  },\n  'es.unescape': function () {\n    return unescape;\n  },\n  'es.weak-map.constructor': [SAFE_ITERATION_CLOSING_SUPPORT, function () {\n    var key = Object.freeze([]);\n    var called = 0;\n    var iterable = {\n      next: function () {\n        return { done: !!called++, value: [key, 1] };\n      }\n    };\n    iterable[Symbol.iterator] = function () {\n      return this;\n    };\n\n    var map = new WeakMap(iterable);\n    // MS IE bug\n    return map.get(key) === 1\n      && map.get(null) === undefined\n      && map.set({}, 2) === map\n      && map[Symbol.toStringTag]\n      // MS Edge bug\n      && Object.isFrozen(key);\n  }],\n  'es.weak-map.get-or-insert': function () {\n    return WeakMap.prototype.getOrInsert;\n  },\n  'es.weak-map.get-or-insert-computed': function () {\n    if (!WeakMap.prototype.getOrInsertComputed) return;\n    try {\n      new WeakMap().getOrInsertComputed(1, function () { throw 1; });\n    } catch (error) {\n      // FF144 Nightly - Beta 3 bug\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=1988369\n      return error instanceof TypeError;\n    }\n  },\n  'es.weak-set.constructor': [SAFE_ITERATION_CLOSING_SUPPORT, function () {\n    var key = {};\n    var called = 0;\n    var iterable = {\n      next: function () {\n        return { done: !!called++, value: key };\n      }\n    };\n    iterable[Symbol.iterator] = function () {\n      return this;\n    };\n\n    var set = new WeakSet(iterable);\n    return set.has(key)\n      && !set.has(null)\n      && set.add({}) === set\n      && set[Symbol.toStringTag];\n  }],\n  'esnext.array.filter-reject': function () {\n    return [].filterReject;\n  },\n  'esnext.array.is-template-object': function () {\n    return Array.isTemplateObject;\n  },\n  'esnext.array.unique-by': function () {\n    return [].uniqueBy;\n  },\n  'esnext.async-iterator.constructor': function () {\n    return typeof AsyncIterator == 'function';\n  },\n  'esnext.async-iterator.drop': function () {\n    return AsyncIterator.prototype.drop;\n  },\n  'esnext.async-iterator.every': function () {\n    return AsyncIterator.prototype.every;\n  },\n  'esnext.async-iterator.filter': function () {\n    return AsyncIterator.prototype.filter;\n  },\n  'esnext.async-iterator.find': function () {\n    return AsyncIterator.prototype.find;\n  },\n  'esnext.async-iterator.flat-map': function () {\n    return AsyncIterator.prototype.flatMap;\n  },\n  'esnext.async-iterator.for-each': function () {\n    return AsyncIterator.prototype.forEach;\n  },\n  'esnext.async-iterator.from': function () {\n    return AsyncIterator.from;\n  },\n  'esnext.async-iterator.map': function () {\n    return AsyncIterator.prototype.map;\n  },\n  'esnext.async-iterator.reduce': function () {\n    return AsyncIterator.prototype.reduce;\n  },\n  'esnext.async-iterator.some': function () {\n    return AsyncIterator.prototype.some;\n  },\n  'esnext.async-iterator.take': function () {\n    return AsyncIterator.prototype.take;\n  },\n  'esnext.async-iterator.to-array': function () {\n    return AsyncIterator.prototype.toArray;\n  },\n  'esnext.composite-key': function () {\n    return compositeKey;\n  },\n  'esnext.composite-symbol': function () {\n    return compositeSymbol;\n  },\n  'esnext.data-view.get-uint8-clamped': [ARRAY_BUFFER_SUPPORT, function () {\n    return DataView.prototype.getUint8Clamped;\n  }],\n  'esnext.data-view.set-uint8-clamped': [ARRAY_BUFFER_SUPPORT, function () {\n    return DataView.prototype.setUint8Clamped;\n  }],\n  'esnext.function.demethodize': function () {\n    return Function.prototype.demethodize;\n  },\n  'esnext.function.is-callable': function () {\n    return Function.isCallable;\n  },\n  'esnext.function.is-constructor': function () {\n    return Function.isConstructor;\n  },\n  'esnext.function.metadata': function () {\n    return Function.prototype[Symbol.metadata] === null;\n  },\n  'esnext.iterator.chunks': function () {\n    return Iterator.prototype.chunks;\n  },\n  'esnext.iterator.range': function () {\n    return Iterator.range;\n  },\n  'esnext.iterator.to-async': function () {\n    return Iterator.prototype.toAsync;\n  },\n  'esnext.iterator.windows': function () {\n    return Iterator.prototype.windows;\n  },\n  'esnext.iterator.zip': function () {\n    return Iterator.zip;\n  },\n  'esnext.iterator.zip-keyed': function () {\n    return Iterator.zipKeyed;\n  },\n  'esnext.map.delete-all': function () {\n    return Map.prototype.deleteAll;\n  },\n  'esnext.map.every': function () {\n    return Map.prototype.every;\n  },\n  'esnext.map.filter': function () {\n    return Map.prototype.filter;\n  },\n  'esnext.map.find': function () {\n    return Map.prototype.find;\n  },\n  'esnext.map.find-key': function () {\n    return Map.prototype.findKey;\n  },\n  'esnext.map.from': function () {\n    return Map.from;\n  },\n  'esnext.map.includes': function () {\n    return Map.prototype.includes;\n  },\n  'esnext.map.key-by': function () {\n    return Map.keyBy;\n  },\n  'esnext.map.key-of': function () {\n    return Map.prototype.keyOf;\n  },\n  'esnext.map.map-keys': function () {\n    return Map.prototype.mapKeys;\n  },\n  'esnext.map.map-values': function () {\n    return Map.prototype.mapValues;\n  },\n  'esnext.map.merge': function () {\n    return Map.prototype.merge;\n  },\n  'esnext.map.of': function () {\n    return Map.of;\n  },\n  'esnext.map.reduce': function () {\n    return Map.prototype.reduce;\n  },\n  'esnext.map.some': function () {\n    return Map.prototype.some;\n  },\n  'esnext.map.update': function () {\n    return Map.prototype.update;\n  },\n  'esnext.math.deg-per-rad': function () {\n    return Math.DEG_PER_RAD;\n  },\n  'esnext.math.degrees': function () {\n    return Math.degrees;\n  },\n  'esnext.math.fscale': function () {\n    return Math.fscale;\n  },\n  'esnext.math.rad-per-deg': function () {\n    return Math.RAD_PER_DEG;\n  },\n  'esnext.math.radians': function () {\n    return Math.radians;\n  },\n  'esnext.math.scale': function () {\n    return Math.scale;\n  },\n  'esnext.math.signbit': function () {\n    return Math.signbit;\n  },\n  'esnext.number.clamp': function () {\n    return Number.prototype.clamp;\n  },\n  'esnext.number.from-string': function () {\n    return Number.fromString;\n  },\n  'esnext.set.add-all': function () {\n    return Set.prototype.addAll;\n  },\n  'esnext.set.delete-all': function () {\n    return Set.prototype.deleteAll;\n  },\n  'esnext.set.every': function () {\n    return Set.prototype.every;\n  },\n  'esnext.set.filter': function () {\n    return Set.prototype.filter;\n  },\n  'esnext.set.find': function () {\n    return Set.prototype.find;\n  },\n  'esnext.set.from': function () {\n    return Set.from;\n  },\n  'esnext.set.join': function () {\n    return Set.prototype.join;\n  },\n  'esnext.set.map': function () {\n    return Set.prototype.map;\n  },\n  'esnext.set.of': function () {\n    return Set.of;\n  },\n  'esnext.set.reduce': function () {\n    return Set.prototype.reduce;\n  },\n  'esnext.set.some': function () {\n    return Set.prototype.some;\n  },\n  'esnext.string.code-points': function () {\n    return String.prototype.codePoints;\n  },\n  'esnext.string.cooked': function () {\n    return String.cooked;\n  },\n  'esnext.string.dedent': function () {\n    return String.dedent;\n  },\n  'esnext.symbol.custom-matcher': function () {\n    return Symbol.customMatcher;\n  },\n  'esnext.symbol.is-registered-symbol': function () {\n    return Symbol.isRegisteredSymbol;\n  },\n  'esnext.symbol.is-well-known-symbol': function () {\n    return Symbol.isWellKnownSymbol;\n  },\n  'esnext.symbol.metadata': function () {\n    return Symbol.metadata;\n  },\n  'esnext.symbol.observable': function () {\n    return Symbol.observable;\n  },\n  'esnext.typed-array.filter-reject': function () {\n    return Int8Array.prototype.filterReject;\n  },\n  'esnext.typed-array.unique-by': function () {\n    return Int8Array.prototype.uniqueBy;\n  },\n  'esnext.weak-map.delete-all': function () {\n    return WeakMap.prototype.deleteAll;\n  },\n  'esnext.weak-map.from': function () {\n    return WeakMap.from;\n  },\n  'esnext.weak-map.of': function () {\n    return WeakMap.of;\n  },\n  'esnext.weak-set.add-all': function () {\n    return WeakSet.prototype.addAll;\n  },\n  'esnext.weak-set.delete-all': function () {\n    return WeakSet.prototype.deleteAll;\n  },\n  'esnext.weak-set.from': function () {\n    return WeakSet.from;\n  },\n  'esnext.weak-set.of': function () {\n    return WeakSet.of;\n  },\n  'web.atob': function () {\n    try {\n      atob();\n    } catch (error1) {\n      try {\n        atob('a');\n      } catch (error2) {\n        return atob(' ') === '';\n      }\n    }\n  },\n  'web.btoa': function () {\n    try {\n      btoa();\n    } catch (error) {\n      return typeof btoa == 'function';\n    }\n  },\n  'web.clear-immediate': function () {\n    return setImmediate && clearImmediate;\n  },\n  'web.dom-collections.for-each': function () {\n    return (!GLOBAL.NodeList || (NodeList.prototype.forEach && NodeList.prototype.forEach === [].forEach))\n      && (!GLOBAL.DOMTokenList || (DOMTokenList.prototype.forEach && DOMTokenList.prototype.forEach === [].forEach));\n  },\n  'web.dom-collections.iterator': function () {\n    var DOMIterables = {\n      CSSRuleList: 0,\n      CSSStyleDeclaration: 0,\n      CSSValueList: 0,\n      ClientRectList: 0,\n      DOMRectList: 0,\n      DOMStringList: 0,\n      DOMTokenList: 1,\n      DataTransferItemList: 0,\n      FileList: 0,\n      HTMLAllCollection: 0,\n      HTMLCollection: 0,\n      HTMLFormElement: 0,\n      HTMLSelectElement: 0,\n      MediaList: 0,\n      MimeTypeArray: 0,\n      NamedNodeMap: 0,\n      NodeList: 1,\n      PaintRequestList: 0,\n      Plugin: 0,\n      PluginArray: 0,\n      SVGLengthList: 0,\n      SVGNumberList: 0,\n      SVGPathSegList: 0,\n      SVGPointList: 0,\n      SVGStringList: 0,\n      SVGTransformList: 0,\n      SourceBufferList: 0,\n      StyleSheetList: 0,\n      TextTrackCueList: 0,\n      TextTrackList: 0,\n      TouchList: 0\n    };\n    for (var collection in DOMIterables) {\n      if (GLOBAL[collection]) {\n        if (\n          !GLOBAL[collection].prototype[Symbol.iterator] ||\n          GLOBAL[collection].prototype[Symbol.iterator] !== [].values\n        ) return false;\n        if (DOMIterables[collection] && (\n          !GLOBAL[collection].prototype.keys ||\n          !GLOBAL[collection].prototype.values ||\n          !GLOBAL[collection].prototype.entries\n        )) return false;\n      }\n    }\n    return true;\n  },\n  'web.dom-exception.constructor': function () {\n    return new DOMException() instanceof Error\n      && new DOMException(1, 'DataCloneError').code === 25\n      && String(new DOMException(1, 2)) === '2: 1'\n      && DOMException.DATA_CLONE_ERR === 25\n      && DOMException.prototype.DATA_CLONE_ERR === 25;\n  },\n  'web.dom-exception.stack': function () {\n    return !('stack' in new Error('1')) || 'stack' in new DOMException();\n  },\n  'web.dom-exception.to-string-tag': function () {\n    return typeof DOMException == 'function'\n      && DOMException.prototype[Symbol.toStringTag] === 'DOMException';\n  },\n  // TODO: Remove this module from `core-js@4` since it's split to submodules\n  'web.immediate': IMMEDIATE,\n  'web.queue-microtask': function () {\n    return Object.getOwnPropertyDescriptor(GLOBAL, 'queueMicrotask').value.length === 1;\n  },\n  'web.self': function () {\n    // eslint-disable-next-line no-restricted-globals -- safe\n    if (self !== GLOBAL) return false;\n    if (!DESCRIPTORS_SUPPORT) return true;\n    var descriptor = Object.getOwnPropertyDescriptor(GLOBAL, 'self');\n    return descriptor.get && descriptor.enumerable;\n  },\n  'web.set-immediate': IMMEDIATE,\n  'web.set-interval': TIMERS,\n  'web.set-timeout': TIMERS,\n  'web.structured-clone': function () {\n    function checkErrorsCloning(structuredCloneImplementation, $Error) {\n      var error = new $Error();\n      var test = structuredCloneImplementation({ a: error, b: error });\n      return test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack;\n    }\n\n    function checkNewErrorsCloningSemantic(structuredCloneImplementation) {\n      var test = structuredCloneImplementation(new AggregateError([1], 'message', { cause: 3 }));\n      return test.name === 'AggregateError' && test.errors[0] === 1 && test.message === 'message' && test.cause === 3;\n    }\n\n    return checkErrorsCloning(structuredClone, Error)\n      && checkErrorsCloning(structuredClone, DOMException)\n      && checkNewErrorsCloningSemantic(structuredClone);\n  },\n  // TODO: Remove this module from `core-js@4` since it's split to submodules\n  'web.timers': TIMERS,\n  'web.url.constructor': URL_AND_URL_SEARCH_PARAMS_SUPPORT,\n  'web.url.can-parse': [URL_AND_URL_SEARCH_PARAMS_SUPPORT, function () {\n    try {\n      URL.canParse();\n    } catch (error) {\n      return URL.canParse.length === 1;\n    }\n  }],\n  'web.url.parse': [URL_AND_URL_SEARCH_PARAMS_SUPPORT, function () {\n    return URL.parse;\n  }],\n  'web.url.to-json': [URL_AND_URL_SEARCH_PARAMS_SUPPORT, function () {\n    return URL.prototype.toJSON;\n  }],\n  'web.url-search-params.constructor': URL_AND_URL_SEARCH_PARAMS_SUPPORT,\n  'web.url-search-params.delete': [URL_AND_URL_SEARCH_PARAMS_SUPPORT, function () {\n    var params = new URLSearchParams('a=1&a=2&b=3');\n    params['delete']('a', 1);\n    // `undefined` case is a Chromium 117 bug\n    // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n    params['delete']('b', undefined);\n    return params + '' === 'a=2';\n  }],\n  'web.url-search-params.has': [URL_AND_URL_SEARCH_PARAMS_SUPPORT, function () {\n    var params = new URLSearchParams('a=1');\n    // `undefined` case is a Chromium 117 bug\n    // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n    return params.has('a', 1) && !params.has('a', 2) && params.has('a', undefined);\n  }],\n  'web.url-search-params.size': [URL_AND_URL_SEARCH_PARAMS_SUPPORT, function () {\n    return 'size' in URLSearchParams.prototype;\n  }]\n};\n"
  },
  {
    "path": "tests/compat-data/index.mjs",
    "content": "await import('./modules-by-versions.mjs');\nawait import('./tests-coverage.mjs');\n"
  },
  {
    "path": "tests/compat-data/modules-by-versions.mjs",
    "content": "import coerce from 'semver/functions/coerce.js';\n\nconst { version } = await fs.readJson('package.json');\nconst { major, minor, patch } = coerce(version);\nlet ok = true;\n\nif (minor || patch) { // ignore for pre-releases\n  const zero = `${ major }.0`;\n  const modulesByVersions = await fs.readJson('packages/core-js-compat/modules-by-versions.json');\n  const response = await fetch(`https://cdn.jsdelivr.net/npm/core-js-compat@${ major }.0.0/modules-by-versions.json`);\n  const zeroVersionData = await response.json();\n  const set = new Set(zeroVersionData[zero]);\n  for (const mod of modulesByVersions[zero]) {\n    if (!set.has(mod)) {\n      ok = false;\n      echo(chalk.red(`${ chalk.cyan(mod) } should be added to modules-by-versions`));\n    }\n  }\n}\n\nif (!ok) throw echo(chalk.red('\\nmodules-by-versions should be updated'));\necho(chalk.green('modules-by-versions checked'));\n"
  },
  {
    "path": "tests/compat-data/tests-coverage.mjs",
    "content": "import { modules, ignored } from 'core-js-compat/src/data.mjs';\nimport '../compat/tests.js';\n\nconst modulesSet = new Set([\n  ...modules,\n  ...ignored,\n]);\n\nconst tested = new Set(Object.keys(globalThis.tests));\n\nconst ignore = new Set([\n  'es.aggregate-error',\n  'es.data-view',\n  'es.map',\n  'es.set',\n  'es.weak-map',\n  'es.weak-set',\n  'esnext.aggregate-error',\n  'esnext.array.filter-out',\n  'esnext.array.group',\n  'esnext.array.group-by',\n  'esnext.array.group-by-to-map',\n  'esnext.array.group-to-map',\n  'esnext.array.last-index',\n  'esnext.array.last-item',\n  'esnext.async-iterator.as-indexed-pairs',\n  'esnext.async-iterator.indexed',\n  'esnext.bigint.range',\n  'esnext.function.un-this',\n  'esnext.iterator.as-indexed-pairs',\n  'esnext.iterator.indexed',\n  'esnext.iterator.sliding',\n  'esnext.map.emplace',\n  'esnext.map.update-or-insert',\n  'esnext.map.upsert',\n  'esnext.math.clamp',\n  'esnext.math.iaddh',\n  'esnext.math.imulh',\n  'esnext.math.isubh',\n  'esnext.math.seeded-prng',\n  'esnext.math.umulh',\n  'esnext.number.range',\n  'esnext.object.iterate-entries',\n  'esnext.object.iterate-keys',\n  'esnext.object.iterate-values',\n  'esnext.observable',\n  'esnext.observable.constructor',\n  'esnext.observable.from',\n  'esnext.observable.of',\n  'esnext.reflect.define-metadata',\n  'esnext.reflect.delete-metadata',\n  'esnext.reflect.get-metadata',\n  'esnext.reflect.get-metadata-keys',\n  'esnext.reflect.get-own-metadata',\n  'esnext.reflect.get-own-metadata-keys',\n  'esnext.reflect.has-metadata',\n  'esnext.reflect.has-own-metadata',\n  'esnext.reflect.metadata',\n  'esnext.set.difference',\n  'esnext.set.intersection',\n  'esnext.set.is-disjoint-from',\n  'esnext.set.is-subset-of',\n  'esnext.set.is-superset-of',\n  'esnext.set.symmetric-difference',\n  'esnext.set.union',\n  'esnext.string.at',\n  'esnext.symbol.is-registered',\n  'esnext.symbol.is-well-known',\n  'esnext.symbol.matcher',\n  'esnext.symbol.metadata-key',\n  'esnext.symbol.pattern-match',\n  'esnext.symbol.replace-all',\n  'esnext.typed-array.from-async',\n  'esnext.typed-array.filter-out',\n  'esnext.typed-array.group-by',\n  'esnext.typed-array.to-spliced',\n  'esnext.weak-map.emplace',\n  'esnext.weak-map.upsert',\n  'web.url-search-params',\n  'web.url',\n]);\n\nconst missed = modules.filter(it => !(tested.has(it) || tested.has(it.replace(/^esnext\\./, 'es.')) || ignore.has(it)));\n\nlet error = false;\n\nfor (const it of tested) {\n  if (!modulesSet.has(it)) {\n    echo(chalk.red(`added extra compat data test: ${ chalk.cyan(it) }`));\n    error = true;\n  }\n}\n\nif (missed.length) {\n  echo(chalk.red('some of compat data tests missed:'));\n  for (const it of missed) echo(chalk.cyan(it));\n  error = true;\n} else echo(chalk.green('adding of compat data tests not required'));\n\nif (error) throw new Error(error);\n"
  },
  {
    "path": "tests/compat-tools/compat.mjs",
    "content": "import { deepEqual, ok } from 'node:assert/strict';\nimport compat from 'core-js-compat/compat.js';\n\ndeepEqual(compat({\n  modules: [\n    'core-js/es/math',\n    'es.array.at',\n    /^es\\.reflect/,\n  ],\n  exclude: [\n    'es.reflect.prevent-extensions',\n  ],\n  targets: 'firefox 27',\n}), {\n  list: [\n    'es.array.at',\n    'es.array.iterator',\n    'es.math.clz32',\n    'es.math.expm1',\n    'es.math.f16round',\n    'es.math.sum-precise',\n    'es.math.to-string-tag',\n    'es.reflect.apply',\n    'es.reflect.construct',\n    'es.reflect.define-property',\n    'es.reflect.delete-property',\n    'es.reflect.get',\n    'es.reflect.get-own-property-descriptor',\n    'es.reflect.get-prototype-of',\n    'es.reflect.has',\n    'es.reflect.is-extensible',\n    'es.reflect.own-keys',\n    'es.reflect.set',\n    'es.reflect.set-prototype-of',\n    'es.reflect.to-string-tag',\n  ],\n  targets: {\n    'es.array.at': { firefox: '27' },\n    'es.array.iterator': { firefox: '27' },\n    'es.math.clz32': { firefox: '27' },\n    'es.math.expm1': { firefox: '27' },\n    'es.math.f16round': { firefox: '27' },\n    'es.math.sum-precise': { firefox: '27' },\n    'es.math.to-string-tag': { firefox: '27' },\n    'es.reflect.apply': { firefox: '27' },\n    'es.reflect.construct': { firefox: '27' },\n    'es.reflect.define-property': { firefox: '27' },\n    'es.reflect.delete-property': { firefox: '27' },\n    'es.reflect.get': { firefox: '27' },\n    'es.reflect.get-own-property-descriptor': { firefox: '27' },\n    'es.reflect.get-prototype-of': { firefox: '27' },\n    'es.reflect.has': { firefox: '27' },\n    'es.reflect.is-extensible': { firefox: '27' },\n    'es.reflect.own-keys': { firefox: '27' },\n    'es.reflect.set': { firefox: '27' },\n    'es.reflect.set-prototype-of': { firefox: '27' },\n    'es.reflect.to-string-tag': { firefox: '27' },\n  },\n}, 'basic');\n\ndeepEqual(compat({\n  modules: [\n    /^es\\.math\\.a/,\n    /^es\\.math\\.c/,\n  ],\n  exclude: 'es.math.asinh',\n}), {\n  list: [\n    'es.math.acosh',\n    'es.math.atanh',\n    'es.math.cbrt',\n    'es.math.clz32',\n    'es.math.cosh',\n  ],\n  targets: {\n    'es.math.acosh': {},\n    'es.math.atanh': {},\n    'es.math.cbrt': {},\n    'es.math.clz32': {},\n    'es.math.cosh': {},\n  },\n}, 'no target');\n\ndeepEqual(compat({\n  modules: /^es\\.math\\.a/,\n}), {\n  list: [\n    'es.math.acosh',\n    'es.math.asinh',\n    'es.math.atanh',\n  ],\n  targets: {\n    'es.math.acosh': {},\n    'es.math.asinh': {},\n    'es.math.atanh': {},\n  },\n}, 'no exclude');\n\ndeepEqual(\n  compat({ targets: { chrome: 93 } }),\n  compat({ modules: 'core-js', targets: { chrome: 93 } }),\n  'no modules',\n);\n\ndeepEqual(compat({\n  modules: 'core-js/es/math',\n  targets: {\n    chrome: 40,\n    firefox: 27,\n  },\n}), {\n  list: [\n    'es.array.iterator',\n    'es.math.acosh',\n    'es.math.clz32',\n    'es.math.expm1',\n    'es.math.f16round',\n    'es.math.hypot',\n    'es.math.sum-precise',\n    'es.math.to-string-tag',\n  ],\n  targets: {\n    'es.array.iterator': { chrome: '40', firefox: '27' },\n    'es.math.acosh': { chrome: '40' },\n    'es.math.clz32': { firefox: '27' },\n    'es.math.expm1': { firefox: '27' },\n    'es.math.f16round': { chrome: '40', firefox: '27' },\n    'es.math.hypot': { chrome: '40' },\n    'es.math.sum-precise': { chrome: '40', firefox: '27' },\n    'es.math.to-string-tag': { chrome: '40', firefox: '27' },\n  },\n}, 'some targets');\n\nconst { list: inverted1 } = compat({ targets: { esmodules: true }, inverse: true });\n\nok(inverted1.includes('es.symbol.iterator'), 'inverse #1');\nok(!inverted1.includes('esnext.iterator.from'), 'inverse #2');\nok(!inverted1.includes('esnext.array.at'), 'inverse #3');\n\nconst { list: inverted2 } = compat({ modules: 'core-js/es/math', targets: { esmodules: true }, inverse: true });\n\nok(inverted2.includes('es.math.acosh'), 'inverse #4');\nok(!inverted2.includes('es.map'), 'inverse #5');\n\necho(chalk.green('compat tool tested'));\n"
  },
  {
    "path": "tests/compat-tools/get-modules-list-for-target-version.mjs",
    "content": "import { deepEqual, throws } from 'node:assert/strict';\nimport getModulesListForTargetVersion from 'core-js-compat/get-modules-list-for-target-version.js';\n\nconst modules = await fs.readJson('packages/core-js-compat/modules.json');\nconst modulesByVersions = await fs.readJson('packages/core-js-compat/modules-by-versions.json');\n\nconst modules30 = modulesByVersions['3.0'];\nconst filter = new Set([...modules30, ...modulesByVersions['3.1']]);\nconst modules31 = modules.filter(it => filter.has(it));\n\ndeepEqual(getModulesListForTargetVersion(3), modules30, 'num 3'); // TODO: Make it throw in core-js@4\ndeepEqual(getModulesListForTargetVersion('3'), modules30, '3'); // TODO: Make it throw in core-js@4\ndeepEqual(getModulesListForTargetVersion('3.0'), modules30, '3.0');\ndeepEqual(getModulesListForTargetVersion('3.0.0'), modules30, '3.0.0');\ndeepEqual(getModulesListForTargetVersion('3.0.1'), modules30, '3.0.1');\ndeepEqual(getModulesListForTargetVersion('3.0.0-alpha.1'), modules30, '3.0.0-alpha.1');\ndeepEqual(getModulesListForTargetVersion('3.1'), modules31, '3.1');\ndeepEqual(getModulesListForTargetVersion('3.1.0'), modules31, '3.1.0');\ndeepEqual(getModulesListForTargetVersion('3.1.1'), modules31, '3.1.1');\n\nthrows(() => getModulesListForTargetVersion('2.0'), RangeError, '2.0');\nthrows(() => getModulesListForTargetVersion('4.0'), RangeError, '4.0');\nthrows(() => getModulesListForTargetVersion('x'), TypeError, 'x');\nthrows(() => getModulesListForTargetVersion('*'), TypeError, '*');\nthrows(() => getModulesListForTargetVersion(), TypeError, 'no arg');\n\necho(chalk.green('get-modules-list-for-target-version tested'));\n"
  },
  {
    "path": "tests/compat-tools/index.mjs",
    "content": "await import('./compat.mjs');\nawait import('./targets-parser.mjs');\nawait import('./get-modules-list-for-target-version.mjs');\n"
  },
  {
    "path": "tests/compat-tools/targets-parser.mjs",
    "content": "import { deepEqual } from 'node:assert/strict';\nimport targetsParser from 'core-js-compat/targets-parser.js';\n\ndeepEqual(targetsParser('ie 11, chrome 56, ios 12.2'), new Map([\n  ['chrome', '56'],\n  ['ie', '11'],\n  ['ios', '12.2-12.5'],\n]), 'browserslist');\n\ndeepEqual(targetsParser('baseline 2022 or not and_chr <= 999 or not and_ff <= 999 or ios 15.3 or ie 11'), new Map([\n  ['chrome', '108'],\n  ['edge', '108'],\n  ['firefox', '108'],\n  ['ie', '11'],\n  ['ios', '15.2-15.3'],\n  ['safari', '16.0'],\n]), 'browserslist with baseline');\n\ndeepEqual(targetsParser({\n  ie: 11,\n  chrome: 56,\n  ios: '12.2',\n}), new Map([\n  ['chrome', '56'],\n  ['ie', '11'],\n  ['ios', '12.2'],\n]), 'targets object');\n\ndeepEqual(targetsParser({ browsers: 'ie 11, chrome 56, ios_saf 12.2' }), new Map([\n  ['chrome', '56'],\n  ['ie', '11'],\n  ['ios', '12.2-12.5'],\n]), 'targets.browsers');\n\ndeepEqual(targetsParser({ esmodules: true }), new Map([\n  ['android', '61'],\n  ['bun', '0.1.1'],\n  ['chrome', '61'],\n  ['chrome-android', '61'],\n  ['deno', '1.0'],\n  ['edge', '16'],\n  ['firefox', '60'],\n  ['firefox-android', '60'],\n  ['ios', '10.3'],\n  ['node', '13.2'],\n  ['opera', '48'],\n  ['opera-android', '45'],\n  ['quest', '4.0'],\n  ['safari', '10.1'],\n  ['samsung', '8.0'],\n]), 'targets.esmodules');\n\ndeepEqual(targetsParser({ node: 'current' }), new Map([\n  ['node', process.versions.node],\n]), 'targets.node: current');\n\ndeepEqual(targetsParser({ node: '14.0' }), new Map([\n  ['node', '14.0'],\n]), 'targets.node: version');\n\ndeepEqual(targetsParser({\n  ie_mob: 11,\n  chromeandroid: 56,\n  and_ff: 60,\n  ios_saf: '12.2',\n  op_mob: 40,\n  op_mini: 1,\n  react: '0.70',\n  random: 42,\n}), new Map([\n  ['chrome-android', '56'],\n  ['firefox-android', '60'],\n  ['ie', '11'],\n  ['ios', '12.2'],\n  ['opera-android', '40'],\n  ['react-native', '0.70'],\n]), 'normalization');\n\ndeepEqual(targetsParser({\n  esmodules: true,\n  node: '12.0',\n  browsers: 'edge 13, safari 5.1, ios 13',\n  android: '4.2',\n  chrome: 77,\n  electron: 1,\n  ie: 8,\n  samsung: 4,\n  ie_mob: 11,\n  chromeandroid: 56,\n  and_ff: 65,\n  ios_saf: '12.2',\n  op_mob: 40,\n  'react-native': '0.70',\n  random: 42,\n}), new Map([\n  ['android', '4.2'],\n  ['bun', '0.1.1'],\n  ['chrome', '61'],\n  ['chrome-android', '56'],\n  ['deno', '1.0'],\n  ['edge', '16'],\n  ['electron', '1'],\n  ['firefox', '60'],\n  ['firefox-android', '60'],\n  ['ie', '8'],\n  ['ios', '10.3'],\n  ['node', '12.0'],\n  ['opera', '48'],\n  ['opera-android', '40'],\n  ['quest', '4.0'],\n  ['react-native', '0.70'],\n  ['safari', '10.1'],\n  ['samsung', '4'],\n]), 'mixed');\n\ndeepEqual(targetsParser({\n  esmodules: 'intersect',\n  browsers: 'ie 11, chrome 56',\n  chrome: 77,\n}), new Map([\n  ['chrome', '61'],\n]), 'targets.esmodules: intersect, ie removed, chrome raised to esmodules minimum');\n\ndeepEqual(targetsParser({\n  esmodules: 'intersect',\n  browsers: 'chrome 56, firefox 50, safari 10',\n}), new Map([\n  ['chrome', '61'],\n  ['firefox', '60'],\n  ['safari', '10.1'],\n]), 'targets.esmodules: intersect, versions raised to esmodules minimum');\n\ndeepEqual(targetsParser({\n  esmodules: 'intersect',\n  browsers: 'chrome 80, firefox 70',\n}), new Map([\n  ['chrome', '80'],\n  ['firefox', '70'],\n]), 'targets.esmodules: intersect, versions above esmodules minimum unchanged');\n\necho(chalk.green('targets parser tested'));\n"
  },
  {
    "path": "tests/entries/content.mjs",
    "content": "import { deepEqual, ok } from 'node:assert/strict';\nimport konan from 'konan';\n\nconst allModules = await fs.readJson('packages/core-js-compat/modules.json');\nconst entries = await fs.readJson('packages/core-js-compat/entries.json');\n\nlet fail = false;\n\nfunction filter(regexp) {\n  return allModules.filter(it => regexp.test(it));\n}\n\nfunction equal(name, required) {\n  const contains = new Set(entries[name]);\n  const shouldContain = new Set(Array.isArray(required) ? required : filter(required));\n  deepEqual(contains, shouldContain);\n}\n\nfunction superset(name, required) {\n  const contains = new Set(entries[name]);\n  const shouldContain = Array.isArray(required) ? required : filter(required);\n  for (const module of shouldContain) {\n    ok(contains.has(module), module);\n  }\n}\n\nfunction subset(name, required) {\n  const contains = entries[name];\n  const shouldContain = new Set(Array.isArray(required) ? required : filter(required));\n  for (const module of contains) {\n    ok(shouldContain.has(module), module);\n  }\n}\n\nequal('core-js', allModules);\nequal('core-js/es', /^es\\./);\nsuperset('core-js/es/array', /^es\\.array\\./);\nsuperset('core-js/es/array-buffer', /^es\\.array-buffer\\./);\nsuperset('core-js/es/data-view', /^es\\.data-view\\./);\nsuperset('core-js/es/date', /^es\\.date\\./);\nsuperset('core-js/es/error', /^es\\.error\\./);\nsuperset('core-js/es/function', /^es\\.function\\./);\nsuperset('core-js/es/json', /^es\\.json\\./);\nsuperset('core-js/es/map', /^es\\.map/);\nsuperset('core-js/es/math', /^es\\.math\\./);\nsuperset('core-js/es/number', /^es\\.number\\./);\nsuperset('core-js/es/object', /^es\\.object\\./);\nsuperset('core-js/es/promise', /^es\\.promise/);\nsuperset('core-js/es/reflect', /^es\\.reflect\\./);\nsuperset('core-js/es/regexp', /^es\\.regexp\\./);\nsuperset('core-js/es/set', /^es\\.set/);\nsuperset('core-js/es/string', /^es\\.string\\./);\nsuperset('core-js/es/symbol', /^es\\.symbol/);\nsuperset('core-js/es/typed-array', /^es\\.typed-array\\./);\nsuperset('core-js/es/weak-map', /^es\\.weak-map/);\nsuperset('core-js/es/weak-set', /^es\\.weak-set/);\nequal('core-js/web', /^web\\./);\nequal('core-js/stable', /^(?:es|web)\\./);\nsuperset('core-js/stable/array', /^es\\.array\\./);\nsuperset('core-js/stable/array-buffer', /^es\\.array-buffer\\./);\nsuperset('core-js/stable/data-view', /^es\\.data-view\\./);\nsuperset('core-js/stable/date', /^es\\.date\\./);\nsuperset('core-js/stable/dom-collections', /^web\\.dom-collections\\./);\nsuperset('core-js/stable/error', /^es\\.error\\./);\nsuperset('core-js/stable/function', /^es\\.function\\./);\nsuperset('core-js/stable/json', /^es\\.json\\./);\nsuperset('core-js/stable/map', /^es\\.map/);\nsuperset('core-js/stable/math', /^es\\.math\\./);\nsuperset('core-js/stable/number', /^es\\.number\\./);\nsuperset('core-js/stable/object', /^es\\.object\\./);\nsuperset('core-js/stable/promise', /^es\\.promise/);\nsuperset('core-js/stable/reflect', /^es\\.reflect\\./);\nsuperset('core-js/stable/regexp', /^es\\.regexp\\./);\nsuperset('core-js/stable/set', /^es\\.set/);\nsuperset('core-js/stable/string', /^es\\.string\\./);\nsuperset('core-js/stable/symbol', /^es\\.symbol/);\nsuperset('core-js/stable/typed-array', /^es\\.typed-array\\./);\nsuperset('core-js/stable/url', /^web\\.url(?:\\.|$)/);\nsuperset('core-js/stable/url-search-params', /^web\\.url-search-params/);\nsuperset('core-js/stable/weak-map', /^es\\.weak-map/);\nsuperset('core-js/stable/weak-set', /^es\\.weak-set/);\nsuperset('core-js/actual', /^(?:es|web)\\./);\nsuperset('core-js/actual/array', /^es\\.array\\./);\nsuperset('core-js/actual/array-buffer', /^es\\.array-buffer\\./);\nsuperset('core-js/actual/data-view', /^es\\.data-view\\./);\nsuperset('core-js/actual/date', /^es\\.date\\./);\nsuperset('core-js/actual/dom-collections', /^web\\.dom-collections\\./);\nsuperset('core-js/actual/error', /^es\\.error\\./);\nsuperset('core-js/actual/function', /^es\\.function\\./);\nsuperset('core-js/actual/json', /^es\\.json\\./);\nsuperset('core-js/actual/map', /^es\\.map/);\nsuperset('core-js/actual/math', /^es\\.math\\./);\nsuperset('core-js/actual/number', /^es\\.number\\./);\nsuperset('core-js/actual/object', /^es\\.object\\./);\nsuperset('core-js/actual/promise', /^es\\.promise/);\nsuperset('core-js/actual/reflect', /^es\\.reflect\\./);\nsuperset('core-js/actual/regexp', /^es\\.regexp\\./);\nsuperset('core-js/actual/set', /^es\\.set/);\nsuperset('core-js/actual/string', /^es\\.string\\./);\nsuperset('core-js/actual/symbol', /^es\\.symbol/);\nsuperset('core-js/actual/typed-array', /^es\\.typed-array\\./);\nsuperset('core-js/actual/url', /^web\\.url(?:\\.|$)/);\nsuperset('core-js/actual/url-search-params', /^web\\.url-search-params/);\nsuperset('core-js/actual/weak-map', /^es\\.weak-map/);\nsuperset('core-js/actual/weak-set', /^es\\.weak-set/);\nequal('core-js/full', allModules);\nsuperset('core-js/full/array', /^(?:es|esnext)\\.array\\./);\nsuperset('core-js/full/array-buffer', /^(?:es|esnext)\\.array-buffer\\./);\nsuperset('core-js/full/async-iterator', /^(?:es|esnext)\\.async-iterator\\./);\nsuperset('core-js/full/bigint', /^(?:es|esnext)\\.bigint\\./);\nsuperset('core-js/full/data-view', /^(?:es|esnext)\\.data-view\\./);\nsuperset('core-js/full/date', /^(?:es|esnext)\\.date\\./);\nsuperset('core-js/full/dom-collections', /^web\\.dom-collections\\./);\nsuperset('core-js/full/error', /^es\\.error\\./);\nsuperset('core-js/full/function', /^(?:es|esnext)\\.function\\./);\nsuperset('core-js/full/iterator', /^(?:es|esnext)\\.iterator\\./);\nsuperset('core-js/full/json', /^(?:es|esnext)\\.json\\./);\nsuperset('core-js/full/map', /^(?:es|esnext)\\.map/);\nsuperset('core-js/full/math', /^(?:es|esnext)\\.math\\./);\nsuperset('core-js/full/number', /^(?:es|esnext)\\.number\\./);\nsuperset('core-js/full/object', /^(?:es|esnext)\\.object\\./);\nsuperset('core-js/full/observable', /^(?:es|esnext)\\.observable/);\nsuperset('core-js/full/promise', /^(?:es|esnext)\\.promise/);\nsuperset('core-js/full/reflect', /^(?:es|esnext)\\.reflect\\./);\nsuperset('core-js/full/regexp', /^(?:es|esnext)\\.regexp\\./);\nsuperset('core-js/full/set', /^(?:es|esnext)\\.set/);\nsuperset('core-js/full/string', /^(?:es|esnext)\\.string\\./);\nsuperset('core-js/full/symbol', /^(?:es|esnext)\\.symbol/);\nsuperset('core-js/full/typed-array', /^(?:es|esnext)\\.typed-array\\./);\nsuperset('core-js/full/url', /^web\\.url(?:\\.|$)/);\nsuperset('core-js/full/url-search-params', /^web\\.url-search-params/);\nsuperset('core-js/full/weak-map', /^(?:es|esnext)\\.weak-map/);\nsuperset('core-js/full/weak-set', /^(?:es|esnext)\\.weak-set/);\nsubset('core-js/proposals', /^(?:es\\.(?:map|string\\.at)|esnext\\.|web\\.url)/);\nsubset('core-js/stage', /^(?:es\\.(?:map|string\\.at)|esnext\\.|web\\.url)/);\nsubset('core-js/stage/pre', /^(?:es\\.(?:map|string\\.at)|esnext\\.|web\\.url)/);\nsubset('core-js/stage/0', /^(?:es\\.(?:map|string\\.at)|esnext\\.|web\\.url)/);\nsubset('core-js/stage/1', /^(?:es\\.(?:map|string\\.at)|esnext\\.|web\\.url)/);\nsubset('core-js/stage/2', /^(?:es\\.string\\.at|esnext\\.)/);\nsubset('core-js/stage/3', /^(?:es\\.string\\.at|esnext\\.)/);\nsubset('core-js/stage/4', /^(?:es\\.string\\.at|esnext\\.)/);\n\nasync function unexpectedInnerNamespace(namespace, unexpected) {\n  const paths = await glob(`packages/core-js/${ namespace }/**/*.js`);\n  await Promise.all(paths.map(async path => {\n    for (const dependency of konan(String(await fs.readFile(path, 'utf8'))).strings) {\n      if (unexpected.test(dependency)) {\n        echo(chalk.red(`${ chalk.cyan(path) }: found unexpected dependency: ${ chalk.cyan(dependency) }`));\n        fail = true;\n      }\n    }\n  }));\n}\n\nawait Promise.all([\n  unexpectedInnerNamespace('es', /\\/(?:actual|full|stable)\\//),\n  unexpectedInnerNamespace('stable', /\\/(?:actual|full)\\//),\n  unexpectedInnerNamespace('actual', /\\/(?:es|full)\\//),\n  unexpectedInnerNamespace('full', /\\/(?:es|stable)\\//),\n]);\n\nif (fail) throw new Error('entry points content test failed');\n\necho(chalk.green('entry points content tested'));\n"
  },
  {
    "path": "tests/entries/index.mjs",
    "content": "await import('./content.mjs');\nawait import('./unit.mjs');\n"
  },
  {
    "path": "tests/entries/unit.mjs",
    "content": "/* eslint-disable import/no-dynamic-require, node/global-require -- required */\nimport { ok } from 'node:assert/strict';\n\nconst entries = await fs.readJson('packages/core-js-compat/entries.json');\nconst expected = new Set(Object.keys(entries));\nconst tested = new Set();\nlet PATH;\n\nfunction load(...components) {\n  const path = [PATH, ...components].join('/');\n  tested.add(path);\n  expected.delete(path);\n  return require(path);\n}\n\nfor (PATH of ['core-js-pure', 'core-js']) {\n  for (const NS of ['es', 'stable', 'actual', 'full', 'features']) {\n    let O;\n    ok(load(NS, 'global-this').Math === Math);\n    ok(new (load(NS, 'aggregate-error'))([42]).errors[0] === 42);\n    ok(load(NS, 'object/assign')({ q: 1 }, { w: 2 }).w === 2);\n    ok(load(NS, 'object/create')(Array.prototype) instanceof Array);\n    ok(load(NS, 'object/define-property')({}, 'a', { value: 42 }).a === 42);\n    ok(load(NS, 'object/define-properties')({}, { a: { value: 42 } }).a === 42);\n    ok(load(NS, 'object/freeze')({}));\n    ok(load(NS, 'object/get-own-property-descriptor')({ q: 1 }, 'q').enumerable);\n    ok(load(NS, 'object/get-own-property-names')({ q: 42 })[0] === 'q');\n    ok(load(NS, 'object/get-own-property-symbols')({ [Symbol('getOwnPropertySymbols test')]: 42 }).length === 1);\n    ok(load(NS, 'object/get-prototype-of')([]) === Array.prototype);\n    ok(load(NS, 'object/group-by')([1, 2, 3, 4, 5], it => it % 2 === 0 ? 'even' : 'odd').odd.length === 3);\n    ok(load(NS, 'object/has-own')({ foo: 42 }, 'foo'));\n    ok(load(NS, 'object/is')(NaN, NaN));\n    ok(load(NS, 'object/is-extensible')({}));\n    ok(!load(NS, 'object/is-frozen')({}));\n    ok(!load(NS, 'object/is-sealed')({}));\n    ok(load(NS, 'object/keys')({ q: 0 })[0] === 'q');\n    ok(load(NS, 'object/prevent-extensions')({}));\n    load(NS, 'object/proto');\n    ok(load(NS, 'object/seal')({}));\n    ok(load(NS, 'object/set-prototype-of')({}, []) instanceof Array);\n    ok(load(NS, 'object/to-string')([]) === '[object Array]');\n    ok(load(NS, 'object/entries')({ q: 2 })[0][0] === 'q');\n    ok(load(NS, 'object/from-entries')([['a', 42]]).a === 42);\n    ok(load(NS, 'object/values')({ q: 2 })[0] === 2);\n    ok(load(NS, 'object/get-own-property-descriptors')({ q: 1 }).q.enumerable);\n    ok(typeof load(NS, 'object/define-getter') == 'function');\n    ok(typeof load(NS, 'object/define-setter') == 'function');\n    ok(typeof load(NS, 'object/lookup-getter') == 'function');\n    ok(typeof load(NS, 'object/lookup-setter') == 'function');\n    ok('values' in load(NS, 'object'));\n    ok(load(NS, 'function/bind')(function (a, b) {\n      return this + a + b;\n    }, 1, 2)(3) === 6);\n    ok(load(NS, 'function/virtual/bind').call(function (a, b) {\n      return this + a + b;\n    }, 1, 2)(3) === 6);\n    ok(load(NS, 'function/virtual').bind.call(function (a, b) {\n      return this + a + b;\n    }, 1, 2)(3) === 6);\n    load(NS, 'function/name');\n    load(NS, 'function/has-instance');\n    load(NS, 'function');\n    ok(Array.isArray(load(NS, 'array/from')('qwe')));\n    ok(typeof load(NS, 'array/from-async') == 'function');\n    ok(load(NS, 'array/is-array')([]));\n    ok(Array.isArray(load(NS, 'array/of')('q', 'w', 'e')));\n    ok(load(NS, 'array/at')([1, 2, 3], -2) === 2);\n    ok(load(NS, 'array/join')('qwe', 1) === 'q1w1e');\n    ok(load(NS, 'array/slice')('qwe', 1)[1] === 'e');\n    ok(load(NS, 'array/sort')([1, 3, 2])[1] === 2);\n    ok(typeof load(NS, 'array/for-each') == 'function');\n    ok(typeof load(NS, 'array/map') == 'function');\n    ok(typeof load(NS, 'array/filter') == 'function');\n    ok(typeof load(NS, 'array/flat') == 'function');\n    ok(typeof load(NS, 'array/flat-map') == 'function');\n    ok(typeof load(NS, 'array/some') == 'function');\n    ok(typeof load(NS, 'array/every') == 'function');\n    ok(typeof load(NS, 'array/push') == 'function');\n    ok(typeof load(NS, 'array/reduce') == 'function');\n    ok(typeof load(NS, 'array/reduce-right') == 'function');\n    ok(typeof load(NS, 'array/reverse') == 'function');\n    ok(typeof load(NS, 'array/index-of') == 'function');\n    ok(typeof load(NS, 'array/last-index-of') == 'function');\n    ok(typeof load(NS, 'array/unshift') == 'function');\n    ok(load(NS, 'array/concat')([1, 2, 3], [4, 5, 6]).length === 6);\n    ok(load(NS, 'array/copy-within')([1, 2, 3, 4, 5], 0, 3)[0] === 4);\n    ok('next' in load(NS, 'array/entries')([]));\n    ok(load(NS, 'array/fill')(Array(5), 2)[0] === 2);\n    ok(load(NS, 'array/find')([2, 3, 4], it => it % 2) === 3);\n    ok(load(NS, 'array/find-index')([2, 3, 4], it => it % 2) === 1);\n    ok(load(NS, 'array/find-last')([1, 2, 3], it => it % 2) === 3);\n    ok(load(NS, 'array/find-last-index')([1, 2, 3], it => it % 2) === 2);\n    ok('next' in load(NS, 'array/keys')([]));\n    ok('next' in load(NS, 'array/values')([]));\n    ok(load(NS, 'array/includes')([1, 2, 3], 2));\n    ok('next' in load(NS, 'array/iterator')([]));\n    ok(load(NS, 'array/with')([1, 2, 3], 1, 4));\n    ok(load(NS, 'array/to-reversed')([1, 2, 3])[0] === 3);\n    ok(load(NS, 'array/to-sorted')([3, 2, 1])[0] === 1);\n    ok(load(NS, 'array/to-spliced')([3, 2, 1], 1, 1, 4, 5).length === 4);\n    ok(load(NS, 'array/virtual/at').call([1, 2, 3], -2) === 2);\n    ok(load(NS, 'array/virtual/join').call('qwe', 1) === 'q1w1e');\n    ok(load(NS, 'array/virtual/slice').call('qwe', 1)[1] === 'e');\n    ok(load(NS, 'array/virtual/splice').call([1, 2, 3], 1, 2)[0] === 2);\n    ok(load(NS, 'array/virtual/sort').call([1, 3, 2])[1] === 2);\n    ok(typeof load(NS, 'array/virtual/for-each') == 'function');\n    ok(typeof load(NS, 'array/virtual/map') == 'function');\n    ok(typeof load(NS, 'array/virtual/filter') == 'function');\n    ok(typeof load(NS, 'array/virtual/flat') == 'function');\n    ok(typeof load(NS, 'array/virtual/flat-map') == 'function');\n    ok(typeof load(NS, 'array/virtual/some') == 'function');\n    ok(typeof load(NS, 'array/virtual/every') == 'function');\n    ok(typeof load(NS, 'array/virtual/push') == 'function');\n    ok(typeof load(NS, 'array/virtual/reduce') == 'function');\n    ok(typeof load(NS, 'array/virtual/reduce-right') == 'function');\n    ok(typeof load(NS, 'array/virtual/reverse') == 'function');\n    ok(typeof load(NS, 'array/virtual/index-of') == 'function');\n    ok(typeof load(NS, 'array/virtual/last-index-of') == 'function');\n    ok(typeof load(NS, 'array/virtual/unshift') == 'function');\n    ok(load(NS, 'array/virtual/concat').call([1, 2, 3], [4, 5, 6]).length === 6);\n    ok(load(NS, 'array/virtual/copy-within').call([1, 2, 3, 4, 5], 0, 3)[0] === 4);\n    ok('next' in load(NS, 'array/virtual/entries').call([]));\n    ok(load(NS, 'array/virtual/fill').call(Array(5), 2)[0] === 2);\n    ok(load(NS, 'array/virtual/find').call([2, 3, 4], it => it % 2) === 3);\n    ok(load(NS, 'array/virtual/find-index').call([2, 3, 4], it => it % 2) === 1);\n    ok(load(NS, 'array/virtual/find-last').call([1, 2, 3], it => it % 2) === 3);\n    ok(load(NS, 'array/virtual/find-last-index').call([1, 2, 3], it => it % 2) === 2);\n    ok('next' in load(NS, 'array/virtual/keys').call([]));\n    ok('next' in load(NS, 'array/virtual/values').call([]));\n    ok(load(NS, 'array/virtual/includes').call([1, 2, 3], 2));\n    ok('next' in load(NS, 'array/virtual/iterator').call([]));\n    ok(load(NS, 'array/virtual/with').call([1, 2, 3], 1, 4));\n    ok(load(NS, 'array/virtual/to-reversed').call([1, 2, 3])[0] === 3);\n    ok(load(NS, 'array/virtual/to-sorted').call([3, 2, 1])[0] === 1);\n    ok(load(NS, 'array/virtual/to-spliced').call([3, 2, 1], 1, 1, 4, 5).length === 4);\n    ok('map' in load(NS, 'array/virtual'));\n    ok('from' in load(NS, 'array'));\n    ok(load(NS, 'array/splice')([1, 2, 3], 1, 2)[0] === 2);\n    ok(new (load(NS, 'error/constructor').Error)(1, { cause: 7 }).cause === 7);\n    ok(load(NS, 'error/is-error')(new Error()));\n    ok(typeof load(NS, 'error/to-string') == 'function');\n    ok(new (load(NS, 'error').Error)(1, { cause: 7 }).cause === 7);\n    ok(load(NS, 'math/acosh')(1) === 0);\n    ok(Object.is(load(NS, 'math/asinh')(-0), -0));\n    ok(load(NS, 'math/atanh')(1) === Infinity);\n    ok(load(NS, 'math/cbrt')(-8) === -2);\n    ok(load(NS, 'math/clz32')(0) === 32);\n    ok(load(NS, 'math/cosh')(0) === 1);\n    ok(load(NS, 'math/expm1')(-Infinity) === -1);\n    ok(load(NS, 'math/fround')(0) === 0);\n    ok(load(NS, 'math/f16round')(1.337) === 1.3369140625);\n    ok(load(NS, 'math/hypot')(3, 4) === 5);\n    ok(load(NS, 'math/imul')(2, 2) === 4);\n    ok(load(NS, 'math/log10')(-0) === -Infinity);\n    ok(load(NS, 'math/log1p')(-1) === -Infinity);\n    ok(load(NS, 'math/log2')(1) === 0);\n    ok(load(NS, 'math/sign')(-2) === -1);\n    ok(Object.is(load(NS, 'math/sinh')(-0), -0));\n    ok(load(NS, 'math/sum-precise')([1, 2, 3]) === 6);\n    ok(load(NS, 'math/tanh')(Infinity) === 1);\n    ok(load(NS, 'math/to-string-tag') === 'Math');\n    ok(load(NS, 'math/trunc')(1.5) === 1);\n    ok('cbrt' in load(NS, 'math'));\n    ok(load(NS, 'number/constructor')('5') === 5);\n    ok(load(NS, 'number/epsilon') === 2 ** -52);\n    ok(load(NS, 'number/is-finite')(42.5));\n    ok(load(NS, 'number/is-integer')(42.5) === false);\n    ok(load(NS, 'number/is-nan')(NaN));\n    ok(load(NS, 'number/is-safe-integer')(42));\n    ok(load(NS, 'number/max-safe-integer') === 0x1FFFFFFFFFFFFF);\n    ok(load(NS, 'number/min-safe-integer') === -0x1FFFFFFFFFFFFF);\n    ok(load(NS, 'number/parse-float')('1.5') === 1.5);\n    ok(load(NS, 'number/parse-int')('2.1') === 2);\n    ok(load(NS, 'number/to-exponential')(1, 1) === '1.0e+0');\n    ok(load(NS, 'number/to-fixed')(1, 1) === '1.0');\n    ok(load(NS, 'number/to-precision')(1) === '1');\n    ok(load(NS, 'parse-float')('1.5') === 1.5);\n    ok(load(NS, 'parse-int')('2.1') === 2);\n    ok(load(NS, 'number/virtual/to-exponential').call(1, 1) === '1.0e+0');\n    ok(load(NS, 'number/virtual/to-fixed').call(1, 1) === '1.0');\n    ok(load(NS, 'number/virtual/to-precision').call(1) === '1');\n    ok('toPrecision' in load(NS, 'number/virtual'));\n    ok('isNaN' in load(NS, 'number'));\n    ok(load(NS, 'reflect/apply')((a, b) => a + b, null, [1, 2]) === 3);\n    ok(load(NS, 'reflect/construct')(function () {\n      return this.a = 2;\n    }, []).a === 2);\n    load(NS, 'reflect/define-property')(O = {}, 'a', { value: 42 });\n    ok(O.a === 42);\n    ok(load(NS, 'reflect/delete-property')({ q: 1 }, 'q'));\n    ok(load(NS, 'reflect/get')({ q: 1 }, 'q') === 1);\n    ok(load(NS, 'reflect/get-own-property-descriptor')({ q: 1 }, 'q').enumerable);\n    ok(load(NS, 'reflect/get-prototype-of')([]) === Array.prototype);\n    ok(load(NS, 'reflect/has')({ q: 1 }, 'q'));\n    ok(load(NS, 'reflect/is-extensible')({}));\n    ok(load(NS, 'reflect/own-keys')({ q: 1 })[0] === 'q');\n    ok(load(NS, 'reflect/prevent-extensions')({}));\n    ok(load(NS, 'reflect/set')({}, 'a', 42));\n    load(NS, 'reflect/set-prototype-of')(O = {}, []);\n    ok(load(NS, 'reflect/to-string-tag') === 'Reflect');\n    ok(O instanceof Array);\n    ok('has' in load(NS, 'reflect'));\n    ok(load(NS, 'string/from-code-point')(97) === 'a');\n    ok(load(NS, 'string/raw')({ raw: 'test' }, 0, 1, 2) === 't0e1s2t');\n    ok(load(NS, 'string/at')('a', 0) === 'a');\n    ok(load(NS, 'string/trim')(' ab ') === 'ab');\n    ok(load(NS, 'string/trim-start')(' a ') === 'a ');\n    ok(load(NS, 'string/trim-end')(' a ') === ' a');\n    ok(load(NS, 'string/trim-left')(' a ') === 'a ');\n    ok(load(NS, 'string/trim-right')(' a ') === ' a');\n    ok(load(NS, 'string/code-point-at')('a', 0) === 97);\n    ok(load(NS, 'string/ends-with')('qwe', 'we'));\n    ok(load(NS, 'string/includes')('qwe', 'w'));\n    ok(load(NS, 'string/repeat')('q', 3) === 'qqq');\n    ok(load(NS, 'string/starts-with')('qwe', 'qw'));\n    ok(typeof load(NS, 'string/anchor') == 'function');\n    ok(typeof load(NS, 'string/big') == 'function');\n    ok(typeof load(NS, 'string/blink') == 'function');\n    ok(typeof load(NS, 'string/bold') == 'function');\n    ok(typeof load(NS, 'string/fixed') == 'function');\n    ok(typeof load(NS, 'string/fontcolor') == 'function');\n    ok(typeof load(NS, 'string/fontsize') == 'function');\n    ok(typeof load(NS, 'string/italics') == 'function');\n    ok(typeof load(NS, 'string/link') == 'function');\n    ok(typeof load(NS, 'string/small') == 'function');\n    ok(typeof load(NS, 'string/strike') == 'function');\n    ok(typeof load(NS, 'string/sub') == 'function');\n    ok(load(NS, 'string/substr')('12345', 1, 3) === '234');\n    ok(typeof load(NS, 'string/sup') == 'function');\n    ok(typeof load(NS, 'string/replace-all') == 'function');\n    ok(load(NS, 'string/pad-start')('a', 3) === '  a');\n    ok(load(NS, 'string/pad-end')('a', 3) === 'a  ');\n    ok(load(NS, 'string/is-well-formed')('a'));\n    ok(load(NS, 'string/to-well-formed')('a') === 'a');\n    ok('next' in load(NS, 'string/iterator')('qwe'));\n    ok(load(NS, 'string/virtual/at').call('a', 0) === 'a');\n    ok(load(NS, 'string/virtual/code-point-at').call('a', 0) === 97);\n    ok(load(NS, 'string/virtual/ends-with').call('qwe', 'we'));\n    ok(load(NS, 'string/virtual/includes').call('qwe', 'w'));\n    ok(typeof load(NS, 'string/virtual/match-all') == 'function');\n    ok(typeof load(NS, 'string/virtual/replace-all') == 'function');\n    ok(load(NS, 'string/virtual/repeat').call('q', 3) === 'qqq');\n    ok(load(NS, 'string/virtual/starts-with').call('qwe', 'qw'));\n    ok(load(NS, 'string/virtual/trim').call(' ab ') === 'ab');\n    ok(load(NS, 'string/virtual/trim-start').call(' a ') === 'a ');\n    ok(load(NS, 'string/virtual/trim-end').call(' a ') === ' a');\n    ok(load(NS, 'string/virtual/trim-left').call(' a ') === 'a ');\n    ok(load(NS, 'string/virtual/trim-right').call(' a ') === ' a');\n    ok(typeof load(NS, 'string/virtual/anchor') == 'function');\n    ok(typeof load(NS, 'string/virtual/big') == 'function');\n    ok(typeof load(NS, 'string/virtual/blink') == 'function');\n    ok(typeof load(NS, 'string/virtual/bold') == 'function');\n    ok(typeof load(NS, 'string/virtual/fixed') == 'function');\n    ok(typeof load(NS, 'string/virtual/fontcolor') == 'function');\n    ok(typeof load(NS, 'string/virtual/fontsize') == 'function');\n    ok(typeof load(NS, 'string/virtual/italics') == 'function');\n    ok(typeof load(NS, 'string/virtual/link') == 'function');\n    ok(typeof load(NS, 'string/virtual/small') == 'function');\n    ok(typeof load(NS, 'string/virtual/strike') == 'function');\n    ok(typeof load(NS, 'string/virtual/sub') == 'function');\n    ok(load(NS, 'string/virtual/substr').call('12345', 1, 3) === '234');\n    ok(typeof load(NS, 'string/virtual/sup') == 'function');\n    ok(load(NS, 'string/virtual/pad-start').call('a', 3) === '  a');\n    ok(load(NS, 'string/virtual/pad-end').call('a', 3) === 'a  ');\n    ok(load(NS, 'string/virtual/is-well-formed').call('a'));\n    ok(load(NS, 'string/virtual/to-well-formed').call('a') === 'a');\n    ok('next' in load(NS, 'string/virtual/iterator').call('qwe'));\n    ok('padEnd' in load(NS, 'string/virtual'));\n    ok('raw' in load(NS, 'string'));\n    ok(String(load(NS, 'regexp/constructor')('a', 'g')) === '/a/g');\n    ok(load(NS, 'regexp/escape')('10$') === '\\\\x310\\\\$');\n    ok(load(NS, 'regexp/to-string')(/./g) === '/./g');\n    ok(load(NS, 'regexp/flags')(/./g) === 'g');\n    ok(typeof load(NS, 'regexp/match') == 'function');\n    ok(typeof load(NS, 'regexp/replace') == 'function');\n    ok(typeof load(NS, 'regexp/search') == 'function');\n    ok(typeof load(NS, 'regexp/split') == 'function');\n    ok(typeof load(NS, 'regexp/dot-all') == 'function');\n    ok(typeof load(NS, 'regexp/sticky') == 'function');\n    ok(typeof load(NS, 'regexp/test') == 'function');\n    load(NS, 'regexp');\n    ok(load(NS, 'escape')('!q2ф') === '%21q2%u0444');\n    ok(load(NS, 'unescape')('%21q2%u0444') === '!q2ф');\n    ok(load(NS, 'json').stringify([1]) === '[1]');\n    ok(load(NS, 'json/is-raw-json')({}) === false);\n    ok(load(NS, 'json/parse')('[42]', (key, value, { source }) => typeof value == 'number' ? source + source : value)[0] === '4242');\n    ok(typeof load(NS, 'json/raw-json')(42) == 'object');\n    ok(load(NS, 'json/stringify')([1]) === '[1]');\n    ok(load(NS, 'json/to-string-tag') === 'JSON');\n    ok(typeof load(NS, 'date/now')(new Date()) === 'number');\n    const date = new Date();\n    ok(load(NS, 'date/get-year')(date) === date.getFullYear() - 1900);\n    load(NS, 'date/set-year')(date, 1);\n    ok(date.getFullYear() === 1901);\n    ok(typeof load(NS, 'date/to-string')(date) === 'string');\n    ok(load(NS, 'date/to-gmt-string')(date) === date.toUTCString());\n    ok(typeof load(NS, 'date/to-primitive')(new Date(), 'number') === 'number');\n    ok(typeof load(NS, 'date/to-iso-string')(new Date()) === 'string');\n    ok(load(NS, 'date/to-json')(Infinity) === null);\n    ok(load(NS, 'date'));\n    ok(typeof load(NS, 'symbol') == 'function');\n    ok(typeof load(NS, 'symbol/for') == 'function');\n    ok(typeof load(NS, 'symbol/key-for') == 'function');\n    ok(Function[load(NS, 'symbol/has-instance')](it => it));\n    ok(load(NS, 'symbol/is-concat-spreadable'));\n    ok(load(NS, 'symbol/iterator'));\n    ok(load(NS, 'symbol/match'));\n    ok(load(NS, 'symbol/match-all'));\n    ok(load(NS, 'symbol/replace'));\n    ok(load(NS, 'symbol/search'));\n    ok(load(NS, 'symbol/species'));\n    ok(load(NS, 'symbol/split'));\n    ok(load(NS, 'symbol/to-primitive'));\n    ok(load(NS, 'symbol/to-string-tag'));\n    ok(load(NS, 'symbol/unscopables'));\n    ok(load(NS, 'symbol/async-iterator'));\n    load(NS, 'symbol/description');\n    const Map = load(NS, 'map');\n    ok(load(NS, 'map/group-by')([], it => it) instanceof load(NS, 'map'));\n    ok(load(NS, 'map/get-or-insert')(new Map([[1, 2]]), 1, 3) === 2);\n    ok(load(NS, 'map/get-or-insert-computed')(new Map([[1, 2]]), 1, key => key) === 2);\n    const Set = load(NS, 'set');\n    const WeakMap = load(NS, 'weak-map');\n    ok(load(NS, 'weak-map/get-or-insert')(new WeakMap([[{}, 2]]), {}, 3) === 3);\n    ok(load(NS, 'weak-map/get-or-insert-computed')(new WeakMap([[{}, 2]]), {}, () => 3) === 3);\n    const WeakSet = load(NS, 'weak-set');\n    ok(new Map([[1, 2], [3, 4]]).size === 2);\n    ok(new Set([1, 2, 3, 2, 1]).size === 3);\n    ok(new WeakMap([[O = {}, 42]]).get(O) === 42);\n    ok(new WeakSet([O = {}]).has(O));\n    ok(load(NS, 'set/difference')(new Set([1, 2, 3]), new Set([3, 4, 5])).size === 2);\n    ok(load(NS, 'set/intersection')(new Set([1, 2, 3]), new Set([1, 3, 4])).size === 2);\n    ok(load(NS, 'set/is-disjoint-from')(new Set([1, 2, 3]), new Set([4, 5, 6])));\n    ok(load(NS, 'set/is-subset-of')(new Set([1, 2, 3]), new Set([1, 2, 3, 4])));\n    ok(load(NS, 'set/is-superset-of')(new Set([1, 2, 3, 4]), new Set([1, 2, 3])));\n    ok(load(NS, 'set/symmetric-difference')(new Set([1, 2, 3]), new Set([3, 4, 5])).size === 4);\n    ok(load(NS, 'set/union')(new Set([1, 2, 3]), new Set([3, 4, 5])).size === 5);\n    const Promise = load(NS, 'promise');\n    ok('then' in Promise.prototype);\n    ok(load(NS, 'promise/all-settled')([1, 2, 3]) instanceof Promise);\n    ok(load(NS, 'promise/any')([1, 2, 3]) instanceof Promise);\n    ok(load(NS, 'promise/finally')(new Promise(resolve => resolve), it => it) instanceof Promise);\n    ok(load(NS, 'promise/try')(() => 42) instanceof Promise);\n    ok(load(NS, 'promise/with-resolvers')().promise instanceof load(NS, 'promise'));\n    ok(load(NS, 'is-iterable')([]));\n    ok(typeof load(NS, 'get-iterator-method')([]) == 'function');\n    ok('next' in load(NS, 'get-iterator')([]));\n    ok('Map' in load(NS));\n    ok(typeof load(NS, 'iterator') == 'function');\n    ok(load(NS, 'iterator/concat')([2]).next().value === 2);\n    ok(typeof load(NS, 'iterator/drop') == 'function');\n    ok(typeof load(NS, 'iterator/every') == 'function');\n    ok(typeof load(NS, 'iterator/filter') == 'function');\n    ok(typeof load(NS, 'iterator/find') == 'function');\n    ok(typeof load(NS, 'iterator/flat-map') == 'function');\n    ok(typeof load(NS, 'iterator/for-each') == 'function');\n    ok(typeof load(NS, 'iterator/from') == 'function');\n    ok(typeof load(NS, 'iterator/map') == 'function');\n    ok(typeof load(NS, 'iterator/reduce') == 'function');\n    ok(typeof load(NS, 'iterator/some') == 'function');\n    ok(typeof load(NS, 'iterator/take') == 'function');\n    ok(typeof load(NS, 'iterator/to-array') == 'function');\n    ok(new (load(NS, 'suppressed-error'))(1, 2).suppressed === 2);\n    ok(typeof load(NS, 'disposable-stack') == 'function');\n    ok(typeof load(NS, 'disposable-stack/constructor') == 'function');\n    load(NS, 'iterator/dispose');\n    ok(load(NS, 'symbol/async-dispose'));\n    ok(load(NS, 'symbol/dispose'));\n    load(NS, 'async-iterator');\n    load(NS, 'async-iterator/async-dispose');\n    ok(typeof load(NS, 'async-disposable-stack') == 'function');\n    ok(typeof load(NS, 'async-disposable-stack/constructor') == 'function');\n\n    const instanceAt = load(NS, 'instance/at');\n    ok(typeof instanceAt == 'function');\n    ok(instanceAt({}) === undefined);\n    ok(typeof instanceAt([]) == 'function');\n    ok(typeof instanceAt('') == 'function');\n    ok(instanceAt([]).call([1, 2, 3], 2) === 3);\n    ok(instanceAt('').call('123', 2) === '3');\n\n    const instanceBind = load(NS, 'instance/bind');\n    ok(typeof instanceBind == 'function');\n    ok(instanceBind({}) === undefined);\n    ok(typeof instanceBind(it => it) == 'function');\n    ok(instanceBind(it => it).call(it => it, 1, 2)() === 2);\n\n    const instanceCodePointAt = load(NS, 'instance/code-point-at');\n    ok(typeof instanceCodePointAt == 'function');\n    ok(instanceCodePointAt({}) === undefined);\n    ok(typeof instanceCodePointAt('') == 'function');\n    ok(instanceCodePointAt('').call('a', 0) === 97);\n\n    const instanceConcat = load(NS, 'instance/concat');\n    ok(typeof instanceConcat == 'function');\n    ok(instanceConcat({}) === undefined);\n    ok(typeof instanceConcat([]) == 'function');\n    ok(instanceConcat([]).call([1, 2, 3], [4, 5, 6]).length === 6);\n\n    const instanceCopyWithin = load(NS, 'instance/copy-within');\n    ok(typeof instanceCopyWithin == 'function');\n    ok(instanceCopyWithin({}) === undefined);\n    ok(typeof instanceCopyWithin([]) == 'function');\n    ok(instanceCopyWithin([]).call([1, 2, 3, 4, 5], 0, 3)[0] === 4);\n\n    const instanceEndsWith = load(NS, 'instance/ends-with');\n    ok(typeof instanceEndsWith == 'function');\n    ok(instanceEndsWith({}) === undefined);\n    ok(typeof instanceEndsWith('') == 'function');\n    ok(instanceEndsWith('').call('qwe', 'we'));\n\n    const instanceEntries = load(NS, 'instance/entries');\n    ok(typeof instanceEntries == 'function');\n    ok(instanceEntries({}) === undefined);\n    ok(typeof instanceEntries([]) == 'function');\n    ok(instanceEntries([]).call([1, 2, 3]).next().value[1] === 1);\n\n    const instanceEvery = load(NS, 'instance/every');\n    ok(typeof instanceEvery == 'function');\n    ok(instanceEvery({}) === undefined);\n    ok(typeof instanceEvery([]) == 'function');\n    ok(instanceEvery([]).call([1, 2, 3], it => typeof it == 'number'));\n\n    const instanceFill = load(NS, 'instance/fill');\n    ok(typeof instanceFill == 'function');\n    ok(instanceFill({}) === undefined);\n    ok(typeof instanceFill([]) == 'function');\n    ok(instanceFill([]).call(Array(5), 42)[3] === 42);\n\n    const instanceFilter = load(NS, 'instance/filter');\n    ok(typeof instanceFilter == 'function');\n    ok(instanceFilter({}) === undefined);\n    ok(typeof instanceFilter([]) == 'function');\n    ok(instanceFilter([]).call([1, 2, 3], it => it % 2).length === 2);\n\n    const instanceFind = load(NS, 'instance/find');\n    ok(typeof instanceFind == 'function');\n    ok(instanceFind({}) === undefined);\n    ok(typeof instanceFind([]) == 'function');\n    ok(instanceFind([]).call([1, 2, 3], it => it % 2) === 1);\n\n    const instanceFindIndex = load(NS, 'instance/find-index');\n    ok(typeof instanceFindIndex == 'function');\n    ok(instanceFindIndex({}) === undefined);\n    ok(typeof instanceFindIndex([]) == 'function');\n    ok(instanceFindIndex([]).call([1, 2, 3], it => it % 2) === 0);\n\n    const instanceFindLast = load(NS, 'instance/find-last');\n    ok(typeof instanceFindLast == 'function');\n    ok(instanceFindLast({}) === undefined);\n    ok(typeof instanceFindLast([]) == 'function');\n    ok(instanceFindLast([]).call([1, 2, 3], it => it % 2) === 3);\n\n    const instanceFindLastIndex = load(NS, 'instance/find-last-index');\n    ok(typeof instanceFindLastIndex == 'function');\n    ok(instanceFindLastIndex({}) === undefined);\n    ok(typeof instanceFindLastIndex([]) == 'function');\n    ok(instanceFindLastIndex([]).call([1, 2, 3], it => it % 2) === 2);\n\n    const instanceFlags = load(NS, 'instance/flags');\n    ok(typeof instanceFlags == 'function');\n    ok(instanceFlags({}) === undefined);\n    ok(instanceFlags(/./g) === 'g');\n\n    const instanceFlatMap = load(NS, 'instance/flat-map');\n    ok(typeof instanceFlatMap == 'function');\n    ok(instanceFlatMap({}) === undefined);\n    ok(typeof instanceFlatMap([]) == 'function');\n    ok(instanceFlatMap([]).call([1, 2, 3], (v, i) => [v, i]).length === 6);\n\n    const instanceFlat = load(NS, 'instance/flat');\n    ok(typeof instanceFlat == 'function');\n    ok(instanceFlat({}) === undefined);\n    ok(typeof instanceFlat([]) == 'function');\n    ok(instanceFlat([]).call([1, [2, 3], [4, [5, [6]]]]).length === 5);\n\n    const instanceForEach = load(NS, 'instance/for-each');\n    ok(typeof instanceForEach == 'function');\n    ok(instanceForEach({}) === undefined);\n    ok(typeof instanceForEach([]) == 'function');\n\n    const instanceIncludes = load(NS, 'instance/includes');\n    ok(typeof instanceIncludes == 'function');\n    ok(instanceIncludes({}) === undefined);\n    ok(typeof instanceIncludes([]) == 'function');\n    ok(typeof instanceIncludes('') == 'function');\n    ok(instanceIncludes([]).call([1, 2, 3], 2));\n    ok(instanceIncludes('').call('123', '2'));\n\n    const instanceIndexOf = load(NS, 'instance/index-of');\n    ok(typeof instanceIndexOf == 'function');\n    ok(instanceIndexOf({}) === undefined);\n    ok(typeof instanceIndexOf([]) == 'function');\n    ok(instanceIndexOf([]).call([1, 2, 3], 2) === 1);\n\n    const instanceKeys = load(NS, 'instance/keys');\n    ok(typeof instanceKeys == 'function');\n    ok(instanceKeys({}) === undefined);\n    ok(typeof instanceKeys([]) == 'function');\n    ok(instanceKeys([]).call([1, 2, 3]).next().value === 0);\n\n    const instanceIsWellFormed = load(NS, 'instance/is-well-formed');\n    ok(typeof instanceIsWellFormed == 'function');\n    ok(instanceIsWellFormed({}) === undefined);\n    ok(typeof instanceIsWellFormed('') == 'function');\n    ok(instanceIsWellFormed('').call('a'));\n\n    const instanceLastIndexOf = load(NS, 'instance/last-index-of');\n    ok(typeof instanceLastIndexOf == 'function');\n    ok(instanceLastIndexOf({}) === undefined);\n    ok(typeof instanceLastIndexOf([]) == 'function');\n    ok(instanceLastIndexOf([]).call([1, 2, 3], 2) === 1);\n\n    const instanceMap = load(NS, 'instance/map');\n    ok(typeof instanceMap == 'function');\n    ok(instanceMap({}) === undefined);\n    ok(typeof instanceMap([]) == 'function');\n    ok(instanceMap([]).call([1, 2, 3], it => it % 2)[1] === 0);\n\n    const instanceMatchAll = load(NS, 'instance/match-all');\n    ok(typeof instanceMatchAll == 'function');\n    ok(instanceMatchAll({}) === undefined);\n    ok(typeof instanceMatchAll('') == 'function');\n    ok(instanceMatchAll('').call('test1test2', /(?<test>test\\d)/g).next().value.groups.test === 'test1');\n\n    const instancePadEnd = load(NS, 'instance/pad-end');\n    ok(typeof instancePadEnd == 'function');\n    ok(instancePadEnd({}) === undefined);\n    ok(typeof instancePadEnd('') == 'function');\n    ok(instancePadEnd('').call('a', 3, 'b') === 'abb');\n\n    const instancePadStart = load(NS, 'instance/pad-start');\n    ok(typeof instancePadStart == 'function');\n    ok(instancePadStart({}) === undefined);\n    ok(typeof instancePadStart('') == 'function');\n    ok(instancePadStart('').call('a', 3, 'b') === 'bba');\n\n    const instancePush = load(NS, 'instance/push');\n    ok(typeof instancePush == 'function');\n    ok(instancePush({}) === undefined);\n    ok(typeof instancePush([]) == 'function');\n    ok(instancePush([]).call([1], 8) === 2);\n\n    const instanceReduceRight = load(NS, 'instance/reduce-right');\n    ok(typeof instanceReduceRight == 'function');\n    ok(instanceReduceRight({}) === undefined);\n    ok(typeof instanceReduceRight([]) == 'function');\n    ok(instanceReduceRight([]).call([1, 2, 3], (memo, it) => it + memo, '') === '123');\n\n    const instanceReduce = load(NS, 'instance/reduce');\n    ok(typeof instanceReduce == 'function');\n    ok(instanceReduce({}) === undefined);\n    ok(typeof instanceReduce([]) == 'function');\n    ok(instanceReduce([]).call([1, 2, 3], (memo, it) => it + memo, '') === '321');\n\n    const instanceRepeat = load(NS, 'instance/repeat');\n    ok(typeof instanceRepeat == 'function');\n    ok(instanceRepeat({}) === undefined);\n    ok(typeof instanceRepeat('') == 'function');\n    ok(instanceRepeat('').call('a', 3) === 'aaa');\n\n    const instanceReplaceAll = load(NS, 'instance/replace-all');\n    ok(typeof instanceReplaceAll == 'function');\n    ok(instanceReplaceAll({}) === undefined);\n    ok(typeof instanceReplaceAll('') == 'function');\n    ok(instanceReplaceAll('').call('aba', 'a', 'c') === 'cbc');\n\n    const instanceReverse = load(NS, 'instance/reverse');\n    ok(typeof instanceReverse == 'function');\n    ok(instanceReverse({}) === undefined);\n    ok(typeof instanceReverse([]) == 'function');\n\n    const instanceSlice = load(NS, 'instance/slice');\n    ok(typeof instanceSlice == 'function');\n    ok(instanceSlice({}) === undefined);\n    ok(typeof instanceSlice([]) == 'function');\n\n    const instanceSome = load(NS, 'instance/some');\n    ok(typeof instanceSome == 'function');\n    ok(instanceSome({}) === undefined);\n    ok(typeof instanceSome([]) == 'function');\n    ok(instanceSome([]).call([1, 2, 3], it => typeof it == 'number'));\n\n    const instanceSort = load(NS, 'instance/sort');\n    ok(typeof instanceSort == 'function');\n    ok(instanceSort({}) === undefined);\n    ok(typeof instanceSort([]) == 'function');\n\n    const instanceSplice = load(NS, 'instance/splice');\n    ok(typeof instanceSplice == 'function');\n    ok(instanceSplice({}) === undefined);\n    ok(typeof instanceSplice([]) == 'function');\n\n    const instanceStartsWith = load(NS, 'instance/starts-with');\n    ok(typeof instanceStartsWith == 'function');\n    ok(instanceStartsWith({}) === undefined);\n    ok(typeof instanceStartsWith('') == 'function');\n    ok(instanceStartsWith('').call('qwe', 'qw'));\n\n    const instanceToReversed = load(NS, 'instance/to-reversed');\n    ok(typeof instanceToReversed == 'function');\n    ok(instanceToReversed({}) === undefined);\n    ok(typeof instanceToReversed([]) == 'function');\n    ok(instanceToReversed([]).call([1, 2, 3])[0] === 3);\n\n    const instanceToSorted = load(NS, 'instance/to-sorted');\n    ok(typeof instanceToSorted == 'function');\n    ok(instanceToSorted({}) === undefined);\n    ok(typeof instanceToSorted([]) == 'function');\n    ok(instanceToSorted([]).call([3, 2, 1])[0] === 1);\n\n    const instanceToSpliced = load(NS, 'instance/to-spliced');\n    ok(typeof instanceToSpliced == 'function');\n    ok(instanceToSpliced({}) === undefined);\n    ok(typeof instanceToSpliced([]) == 'function');\n    ok(instanceToSpliced([]).call([3, 2, 1], 1, 1, 4, 5).length === 4);\n\n    const instanceToWellFormed = load(NS, 'instance/to-well-formed');\n    ok(typeof instanceToWellFormed == 'function');\n    ok(instanceToWellFormed({}) === undefined);\n    ok(typeof instanceToWellFormed('') == 'function');\n    ok(instanceToWellFormed('').call('a') === 'a');\n\n    const instanceTrimEnd = load(NS, 'instance/trim-end');\n    ok(typeof instanceTrimEnd == 'function');\n    ok(instanceTrimEnd({}) === undefined);\n    ok(typeof instanceTrimEnd('') == 'function');\n    ok(instanceTrimEnd('').call(' 1 ') === ' 1');\n\n    const instanceTrimLeft = load(NS, 'instance/trim-left');\n    ok(typeof instanceTrimLeft == 'function');\n    ok(instanceTrimLeft({}) === undefined);\n    ok(typeof instanceTrimLeft('') == 'function');\n    ok(instanceTrimLeft('').call(' 1 ') === '1 ');\n\n    const instanceTrimRight = load(NS, 'instance/trim-right');\n    ok(typeof instanceTrimRight == 'function');\n    ok(instanceTrimRight({}) === undefined);\n    ok(typeof instanceTrimRight('') == 'function');\n    ok(instanceTrimRight('').call(' 1 ') === ' 1');\n\n    const instanceTrimStart = load(NS, 'instance/trim-start');\n    ok(typeof instanceTrimStart == 'function');\n    ok(instanceTrimStart({}) === undefined);\n    ok(typeof instanceTrimStart('') == 'function');\n    ok(instanceTrimStart('').call(' 1 ') === '1 ');\n\n    const instanceTrim = load(NS, 'instance/trim');\n    ok(typeof instanceTrim == 'function');\n    ok(instanceTrim({}) === undefined);\n    ok(typeof instanceTrim('') == 'function');\n    ok(instanceTrim('').call(' 1 ') === '1');\n\n    const instanceUnshift = load(NS, 'instance/unshift');\n    ok(typeof instanceUnshift == 'function');\n    ok(instanceUnshift({}) === undefined);\n    ok(typeof instanceUnshift([]) == 'function');\n    const instanceUnshiftTestArray = [1];\n    ok(instanceUnshift([]).call(instanceUnshiftTestArray, 8));\n    ok(instanceUnshiftTestArray[0] === 8);\n\n    const instanceValues = load(NS, 'instance/values');\n    ok(typeof instanceValues == 'function');\n    ok(instanceValues({}) === undefined);\n    ok(typeof instanceValues([]) == 'function');\n    ok(instanceValues([]).call([1, 2, 3]).next().value === 1);\n\n    const instanceWith = load(NS, 'instance/with');\n    ok(typeof instanceWith == 'function');\n    ok(instanceWith({}) === undefined);\n    ok(typeof instanceWith([]) == 'function');\n    ok(instanceWith([]).call([1, 2, 3], 1, 4)[1] === 4);\n  }\n\n  for (const NS of ['stable', 'actual', 'full', 'features']) {\n    ok(load(NS, 'atob')('Zg==') === 'f');\n    ok(load(NS, 'btoa')('f') === 'Zg==');\n    ok(typeof load(NS, 'dom-exception/constructor') == 'function');\n    ok(load(NS, 'dom-exception/to-string-tag') === 'DOMException');\n    ok(typeof load(NS, 'dom-exception') == 'function');\n    ok(typeof load(NS, 'dom-collections').iterator == 'function');\n    ok(typeof load(NS, 'dom-collections/for-each') == 'function');\n    ok(typeof load(NS, 'dom-collections/iterator') == 'function');\n    ok(load(NS, 'self').Math === Math);\n    ok(typeof load(NS, 'set-timeout') == 'function');\n    ok(typeof load(NS, 'set-interval') == 'function');\n    ok(typeof load(NS, 'set-immediate') == 'function');\n    ok(load(NS, 'structured-clone')(42) === 42);\n    ok(typeof load(NS, 'clear-immediate') == 'function');\n    ok(typeof load(NS, 'queue-microtask') == 'function');\n    ok(typeof load(NS, 'url') == 'function');\n    ok(load(NS, 'url/can-parse')('a:b') === true);\n    ok(load(NS, 'url/parse')('a:b').href === 'a:b');\n    load(NS, 'url/to-json');\n    ok(typeof load(NS, 'url-search-params') == 'function');\n  }\n\n  for (const NS of ['actual', 'full', 'features']) {\n    ok(typeof load(NS, 'array/group') == 'function');\n    ok(typeof load(NS, 'array/group-to-map') == 'function');\n    ok(typeof load(NS, 'array/group-by') == 'function');\n    ok(typeof load(NS, 'array/group-by-to-map') == 'function');\n    ok(typeof load(NS, 'array/virtual/group') == 'function');\n    ok(typeof load(NS, 'array/virtual/group-to-map') == 'function');\n    ok(typeof load(NS, 'array/virtual/group-by') == 'function');\n    ok(typeof load(NS, 'array/virtual/group-by-to-map') == 'function');\n    ok(typeof load(NS, 'async-iterator') == 'function');\n    ok(typeof load(NS, 'async-iterator/drop') == 'function');\n    ok(typeof load(NS, 'async-iterator/every') == 'function');\n    ok(typeof load(NS, 'async-iterator/filter') == 'function');\n    ok(typeof load(NS, 'async-iterator/find') == 'function');\n    ok(typeof load(NS, 'async-iterator/flat-map') == 'function');\n    ok(typeof load(NS, 'async-iterator/for-each') == 'function');\n    ok(typeof load(NS, 'async-iterator/from') == 'function');\n    ok(typeof load(NS, 'async-iterator/map') == 'function');\n    ok(typeof load(NS, 'async-iterator/reduce') == 'function');\n    ok(typeof load(NS, 'async-iterator/some') == 'function');\n    ok(typeof load(NS, 'async-iterator/take') == 'function');\n    ok(typeof load(NS, 'async-iterator/to-array') == 'function');\n    ok(load(NS, 'function/metadata') === null);\n    ok(typeof load(NS, 'iterator/to-async') == 'function');\n    ok(typeof load(NS, 'iterator/zip') == 'function');\n    ok(typeof load(NS, 'iterator/zip-keyed') == 'function');\n    ok(load(NS, 'symbol/metadata'));\n\n    const instanceGroup = load(NS, 'instance/group');\n    ok(typeof instanceGroup == 'function');\n    ok(instanceGroup({}) === undefined);\n    ok(typeof instanceGroup([]) == 'function');\n    ok(instanceGroup([]).call([1, 2, 3], it => it % 2)[1].length === 2);\n\n    const instanceGroupToMap = load(NS, 'instance/group-to-map');\n    ok(typeof instanceGroupToMap == 'function');\n    ok(instanceGroupToMap({}) === undefined);\n    ok(typeof instanceGroupToMap([]) == 'function');\n    ok(instanceGroupToMap([]).call([1, 2, 3], it => it % 2).get(1).length === 2);\n\n    const instanceGroupBy = load(NS, 'instance/group-by');\n    ok(typeof instanceGroupBy == 'function');\n    ok(instanceGroupBy({}) === undefined);\n    ok(typeof instanceGroupBy([]) == 'function');\n    ok(instanceGroupBy([]).call([1, 2, 3], it => it % 2)[1].length === 2);\n\n    const instanceGroupByToMap = load(NS, 'instance/group-by-to-map');\n    ok(typeof instanceGroupByToMap == 'function');\n    ok(instanceGroupByToMap({}) === undefined);\n    ok(typeof instanceGroupByToMap([]) == 'function');\n    ok(instanceGroupByToMap([]).call([1, 2, 3], it => it % 2).get(1).length === 2);\n  }\n\n  for (const NS of ['full', 'features']) {\n    const Map = load(NS, 'map');\n    const Set = load(NS, 'set');\n    const WeakMap = load(NS, 'weak-map');\n    const WeakSet = load(NS, 'weak-set');\n    ok(typeof load(NS, 'array/filter-out') == 'function');\n    ok(typeof load(NS, 'array/filter-reject') == 'function');\n    ok(typeof load(NS, 'array/is-template-object') == 'function');\n    load(NS, 'array/last-item');\n    load(NS, 'array/last-index');\n    ok(typeof load(NS, 'array/unique-by') == 'function');\n    ok(typeof load(NS, 'array/virtual/filter-out') == 'function');\n    ok(typeof load(NS, 'array/virtual/filter-reject') == 'function');\n    ok(typeof load(NS, 'array/virtual/unique-by') == 'function');\n    ok(typeof load(NS, 'async-iterator/as-indexed-pairs') == 'function');\n    ok(typeof load(NS, 'async-iterator/indexed') == 'function');\n    load(NS, 'bigint/range');\n    load(NS, 'bigint');\n    load(NS, 'data-view/get-uint8-clamped');\n    load(NS, 'data-view/set-uint8-clamped');\n    ok(typeof load(NS, 'composite-key')({}, 1, {}) === 'object');\n    ok(typeof load(NS, 'composite-symbol')({}, 1, {}) === 'symbol');\n    ok(load(NS, 'function/demethodize')([].slice)([1, 2, 3], 1)[0] === 2);\n    ok(load(NS, 'function/virtual/demethodize').call([].slice)([1, 2, 3], 1)[0] === 2);\n    ok(!load(NS, 'function/is-callable')(class { /* empty */ }));\n    ok(!load(NS, 'function/is-constructor')(it => it));\n    ok(load(NS, 'function/un-this')([].slice)([1, 2, 3], 1)[0] === 2);\n    ok(load(NS, 'function/virtual/un-this').call([].slice)([1, 2, 3], 1)[0] === 2);\n    ok(typeof load(NS, 'iterator/as-indexed-pairs') == 'function');\n    ok(typeof load(NS, 'iterator/indexed') == 'function');\n    ok(load(NS, 'iterator/range')(1, 2).next().value === 1);\n    ok(typeof load(NS, 'iterator/chunks') == 'function');\n    ok(typeof load(NS, 'iterator/sliding') == 'function');\n    ok(typeof load(NS, 'iterator/windows') == 'function');\n    ok(load(NS, 'map/delete-all')(new Map(), 1, 2) === false);\n    ok(load(NS, 'map/emplace')(new Map([[1, 2]]), 1, { update: it => it ** 2 }) === 4);\n    ok(load(NS, 'map/every')(new Map([[1, 2], [2, 3], [3, 4]]), it => it % 2) === false);\n    ok(load(NS, 'map/filter')(new Map([[1, 2], [2, 3], [3, 4]]), it => it % 2).size === 1);\n    ok(load(NS, 'map/find')(new Map([[1, 2], [2, 3], [3, 4]]), it => it % 2) === 3);\n    ok(load(NS, 'map/find-key')(new Map([[1, 2], [2, 3], [3, 4]]), it => it % 2) === 2);\n    ok(load(NS, 'map/from')([[1, 2], [3, 4]]) instanceof Map);\n    ok(load(NS, 'map/includes')(new Map([[1, 2]]), 2) === true);\n    ok(load(NS, 'map/key-by')([], it => it) instanceof Map);\n    ok(load(NS, 'map/key-of')(new Map([[1, 2]]), 2) === 1);\n    ok(load(NS, 'map/map-keys')(new Map([[1, 2], [2, 3], [3, 4]]), it => it).size === 3);\n    ok(load(NS, 'map/map-values')(new Map([[1, 2], [2, 3], [3, 4]]), it => it).size === 3);\n    ok(load(NS, 'map/merge')(new Map([[1, 2], [2, 3]]), [[2, 4], [4, 5]]).size === 3);\n    ok(load(NS, 'map/update-or-insert')(new Map([[1, 2]]), 1, it => it ** 2, () => 42) === 4);\n    ok(load(NS, 'map/upsert')(new Map([[1, 2]]), 1, it => it ** 2, () => 42) === 4);\n    ok(load(NS, 'math/clamp')(6, 2, 4) === 4);\n    ok(load(NS, 'math/deg-per-rad') === Math.PI / 180);\n    ok(load(NS, 'math/degrees')(Math.PI) === 180);\n    ok(load(NS, 'math/fscale')(3, 1, 2, 1, 2) === 3);\n    ok(load(NS, 'math/iaddh')(3, 2, 0xFFFFFFFF, 4) === 7);\n    ok(load(NS, 'math/isubh')(3, 4, 0xFFFFFFFF, 2) === 1);\n    ok(load(NS, 'math/imulh')(0xFFFFFFFF, 7) === -1);\n    ok(load(NS, 'math/rad-per-deg') === 180 / Math.PI);\n    ok(load(NS, 'math/radians')(180) === Math.PI);\n    ok(load(NS, 'math/scale')(3, 1, 2, 1, 2) === 3);\n    ok(typeof load(NS, 'math/seeded-prng')({ seed: 42 }).next().value === 'number');\n    ok(load(NS, 'math/signbit')(-2) === true);\n    ok(load(NS, 'math/umulh')(0xFFFFFFFF, 7) === 6);\n    ok(load(NS, 'map/of')([1, 2], [3, 4]) instanceof Map);\n    ok(load(NS, 'map/reduce')(new Map([[1, 2], [2, 3], [3, 4]]), (a, b) => a + b) === 9);\n    ok(load(NS, 'map/some')(new Map([[1, 2], [2, 3], [3, 4]]), it => it % 2) === true);\n    ok(load(NS, 'map/update')(new Map([[1, 2]]), 1, it => it * 2).get(1) === 4);\n    ok(load(NS, 'number/clamp')(6, 2, 4) === 4);\n    ok(load(NS, 'number/virtual/clamp').call(6, 2, 4) === 4);\n    ok(load(NS, 'number/from-string')('12', 3) === 5);\n    ok(load(NS, 'number/range')(1, 2).next().value === 1);\n    ok(typeof load(NS, 'object/iterate-entries')({}).next == 'function');\n    ok(typeof load(NS, 'object/iterate-keys')({}).next == 'function');\n    ok(typeof load(NS, 'object/iterate-values')({}).next == 'function');\n    ok('from' in load(NS, 'observable'));\n    ok(typeof load(NS, 'reflect/define-metadata') == 'function');\n    ok(typeof load(NS, 'reflect/delete-metadata') == 'function');\n    ok(typeof load(NS, 'reflect/get-metadata') == 'function');\n    ok(typeof load(NS, 'reflect/get-metadata-keys') == 'function');\n    ok(typeof load(NS, 'reflect/get-own-metadata') == 'function');\n    ok(typeof load(NS, 'reflect/get-own-metadata-keys') == 'function');\n    ok(typeof load(NS, 'reflect/has-metadata') == 'function');\n    ok(typeof load(NS, 'reflect/has-own-metadata') == 'function');\n    ok(typeof load(NS, 'reflect/metadata') == 'function');\n    ok(load(NS, 'set/add-all')(new Set([1, 2, 3]), 4, 5).size === 5);\n    ok(load(NS, 'set/delete-all')(new Set([1, 2, 3]), 4, 5) === false);\n    ok(load(NS, 'set/every')(new Set([1, 2, 3]), it => typeof it == 'number'));\n    ok(load(NS, 'set/filter')(new Set([1, 2, 3]), it => it % 2).size === 2);\n    ok(load(NS, 'set/find')(new Set([2, 3, 4]), it => it % 2) === 3);\n    ok(load(NS, 'set/from')([1, 2, 3, 2, 1]) instanceof Set);\n    ok(load(NS, 'set/join')(new Set([1, 2, 3])) === '1,2,3');\n    ok(load(NS, 'set/map')(new Set([1, 2, 3]), it => it % 2).size === 2);\n    ok(load(NS, 'set/of')(1, 2, 3, 2, 1) instanceof Set);\n    ok(load(NS, 'set/reduce')(new Set([1, 2, 3]), (it, v) => it + v) === 6);\n    ok(load(NS, 'set/some')(new Set([1, 2, 3]), it => typeof it == 'number'));\n    ok(load(NS, 'string/cooked')`a${ 1 }b` === 'a1b');\n    ok(load(NS, 'string/dedent')`\n      a${ 1 }b\n    ` === 'a1b');\n    ok('next' in load(NS, 'string/code-points')('a'));\n    ok('next' in load(NS, 'string/virtual/code-points').call('a'));\n    ok(load(NS, 'symbol/custom-matcher'));\n    ok(load(NS, 'symbol/is-registered-symbol')(1) === false);\n    ok(load(NS, 'symbol/is-well-known-symbol')(1) === false);\n    ok(load(NS, 'symbol/is-registered')(1) === false);\n    ok(load(NS, 'symbol/is-well-known')(1) === false);\n    ok(load(NS, 'symbol/matcher'));\n    ok(load(NS, 'symbol/metadata-key'));\n    ok(load(NS, 'symbol/observable'));\n    ok(load(NS, 'symbol/pattern-match'));\n    ok(load(NS, 'symbol/replace-all'));\n    ok(load(NS, 'weak-map/delete-all')(new WeakMap(), [], {}) === false);\n    ok(load(NS, 'weak-map/emplace')(new WeakMap(), {}, { insert: () => ({ a: 42 }) }).a === 42);\n    ok(load(NS, 'weak-map/upsert')(new WeakMap(), {}, null, () => 42) === 42);\n    ok(load(NS, 'weak-map/from')([[{}, 1], [[], 2]]) instanceof WeakMap);\n    ok(load(NS, 'weak-map/of')([{}, 1], [[], 2]) instanceof WeakMap);\n    ok(load(NS, 'weak-set/add-all')(new WeakSet(), [], {}) instanceof WeakSet);\n    ok(load(NS, 'weak-set/delete-all')(new WeakSet(), [], {}) === false);\n    ok(load(NS, 'weak-set/from')([{}, []]) instanceof WeakSet);\n    ok(load(NS, 'weak-set/of')({}, []) instanceof WeakSet);\n\n    const instanceClamp = load(NS, 'instance/clamp');\n    ok(typeof instanceClamp == 'function');\n    ok(instanceClamp({}) === undefined);\n    ok(typeof instanceClamp(6) == 'function');\n    ok(instanceClamp(6).call(6, 2, 4) === 4);\n\n    const instanceCodePoints = load(NS, 'instance/code-points');\n    ok(typeof instanceCodePoints == 'function');\n    ok(instanceCodePoints({}) === undefined);\n    ok(typeof instanceCodePoints('') == 'function');\n    ok(instanceCodePoints('').call('abc').next().value.codePoint === 97);\n\n    const instanceDemethodize = load(NS, 'instance/demethodize');\n    ok(typeof instanceDemethodize == 'function');\n    ok(instanceDemethodize({}) === undefined);\n    ok(typeof instanceDemethodize([].slice) == 'function');\n    ok(instanceDemethodize([].slice).call([].slice)([1, 2, 3], 1)[0] === 2);\n\n    const instanceFilterOut = load(NS, 'instance/filter-out');\n    ok(typeof instanceFilterOut == 'function');\n    ok(instanceFilterOut({}) === undefined);\n    ok(typeof instanceFilterOut([]) == 'function');\n    ok(instanceFilterOut([]).call([1, 2, 3], it => it % 2).length === 1);\n\n    const instanceFilterReject = load(NS, 'instance/filter-reject');\n    ok(typeof instanceFilterReject == 'function');\n    ok(instanceFilterReject({}) === undefined);\n    ok(typeof instanceFilterReject([]) == 'function');\n    ok(instanceFilterReject([]).call([1, 2, 3], it => it % 2).length === 1);\n\n    const instanceUniqueBy = load(NS, 'instance/unique-by');\n    ok(typeof instanceUniqueBy == 'function');\n    ok(instanceUniqueBy({}) === undefined);\n    ok(typeof instanceUniqueBy([]) == 'function');\n    ok(instanceUniqueBy([]).call([1, 2, 3, 2, 1]).length === 3);\n\n    const instanceUnThis = load(NS, 'instance/un-this');\n    ok(typeof instanceUnThis == 'function');\n    ok(instanceUnThis({}) === undefined);\n    ok(typeof instanceUnThis([].slice) == 'function');\n    ok(instanceUnThis([].slice).call([].slice)([1, 2, 3], 1)[0] === 2);\n  }\n\n  load('proposals/accessible-object-hasownproperty');\n  load('proposals/array-filtering');\n  load('proposals/array-filtering-stage-1');\n  load('proposals/array-find-from-last');\n  load('proposals/array-flat-map');\n  load('proposals/array-from-async');\n  load('proposals/array-from-async-stage-2');\n  load('proposals/array-grouping');\n  load('proposals/array-grouping-stage-3');\n  load('proposals/array-grouping-stage-3-2');\n  load('proposals/array-grouping-v2');\n  load('proposals/array-includes');\n  load('proposals/array-is-template-object');\n  load('proposals/array-last');\n  load('proposals/array-unique');\n  load('proposals/array-buffer-base64');\n  load('proposals/array-buffer-transfer');\n  load('proposals/async-explicit-resource-management');\n  load('proposals/async-iteration');\n  load('proposals/async-iterator-helpers');\n  load('proposals/change-array-by-copy');\n  load('proposals/change-array-by-copy-stage-4');\n  load('proposals/collection-methods');\n  load('proposals/collection-of-from');\n  load('proposals/data-view-get-set-uint8-clamped');\n  load('proposals/decorator-metadata');\n  load('proposals/decorator-metadata-v2');\n  load('proposals/decorators');\n  load('proposals/efficient-64-bit-arithmetic');\n  load('proposals/error-cause');\n  load('proposals/explicit-resource-management');\n  load('proposals/extractors');\n  load('proposals/float16');\n  load('proposals/function-demethodize');\n  load('proposals/function-is-callable-is-constructor');\n  load('proposals/function-un-this');\n  load('proposals/global-this');\n  load('proposals/is-error');\n  load('proposals/iterator-helpers');\n  load('proposals/iterator-helpers-stage-3');\n  load('proposals/iterator-helpers-stage-3-2');\n  load('proposals/iterator-range');\n  load('proposals/iterator-sequencing');\n  load('proposals/iterator-chunking');\n  load('proposals/iterator-chunking-v2');\n  load('proposals/joint-iteration');\n  load('proposals/json-parse-with-source');\n  load('proposals/keys-composition');\n  load('proposals/map-update-or-insert');\n  load('proposals/map-upsert');\n  load('proposals/map-upsert-stage-2');\n  load('proposals/map-upsert-v4');\n  load('proposals/math-clamp');\n  load('proposals/math-clamp-v2');\n  load('proposals/math-extensions');\n  load('proposals/math-signbit');\n  load('proposals/math-sum');\n  load('proposals/number-from-string');\n  load('proposals/number-range');\n  load('proposals/object-from-entries');\n  load('proposals/object-iteration');\n  load('proposals/object-getownpropertydescriptors');\n  load('proposals/object-values-entries');\n  load('proposals/observable');\n  load('proposals/pattern-matching');\n  load('proposals/pattern-matching-v2');\n  load('proposals/promise-all-settled');\n  load('proposals/promise-any');\n  load('proposals/promise-finally');\n  load('proposals/promise-try');\n  load('proposals/promise-with-resolvers');\n  load('proposals/reflect-metadata');\n  load('proposals/regexp-dotall-flag');\n  load('proposals/regexp-escaping');\n  load('proposals/regexp-named-groups');\n  load('proposals/relative-indexing-method');\n  load('proposals/seeded-random');\n  load('proposals/set-methods');\n  load('proposals/set-methods-v2');\n  load('proposals/string-at');\n  load('proposals/string-cooked');\n  load('proposals/string-code-points');\n  load('proposals/string-dedent');\n  load('proposals/string-left-right-trim');\n  load('proposals/string-match-all');\n  load('proposals/string-padding');\n  load('proposals/string-replace-all');\n  load('proposals/string-replace-all-stage-4');\n  load('proposals/symbol-description');\n  load('proposals/symbol-predicates');\n  load('proposals/symbol-predicates-v2');\n  load('proposals/url');\n  load('proposals/using-statement');\n  load('proposals/well-formed-stringify');\n  load('proposals/well-formed-unicode-strings');\n  load('proposals');\n\n  ok(load('stage/4'));\n  ok(load('stage/3'));\n  ok(load('stage/2.7'));\n  ok(load('stage/2'));\n  ok(load('stage/1'));\n  ok(load('stage/0'));\n  ok(load('stage/pre'));\n  ok(load('stage'));\n\n  ok(load('web/dom-exception'));\n  ok(load('web/dom-collections'));\n  ok(load('web/immediate'));\n  ok(load('web/queue-microtask'));\n  ok(load('web/structured-clone')(42) === 42);\n  ok(load('web/timers'));\n  ok(load('web/url'));\n  ok(load('web/url-search-params'));\n  ok(load('web'));\n\n  for (const key in entries) {\n    if (key.startsWith('core-js/modules/')) {\n      load('modules', key.slice(16));\n    }\n  }\n\n  ok(load());\n}\n\nfor (const NS of ['es', 'stable', 'actual', 'full', 'features']) {\n  ok(typeof load(NS, 'string/match') == 'function');\n  ok('next' in load(NS, 'string/match-all')('a', /./g));\n  ok(typeof load(NS, 'string/replace') == 'function');\n  ok(typeof load(NS, 'string/search') == 'function');\n  ok(load(NS, 'string/split')('a s d', ' ').length === 3);\n  ok(typeof load(NS, 'array-buffer') == 'function');\n  ok(typeof load(NS, 'array-buffer/constructor') == 'function');\n  ok(typeof load(NS, 'array-buffer/is-view') == 'function');\n  load(NS, 'array-buffer/slice');\n  load(NS, 'array-buffer/detached');\n  load(NS, 'array-buffer/transfer');\n  load(NS, 'array-buffer/transfer-to-fixed-length');\n  ok(typeof load(NS, 'data-view') == 'function');\n  load(NS, 'data-view/get-float16');\n  load(NS, 'data-view/set-float16');\n  ok(typeof load(NS, 'typed-array/int8-array') == 'function');\n  ok(typeof load(NS, 'typed-array/uint8-array') == 'function');\n  ok(typeof load(NS, 'typed-array/uint8-clamped-array') == 'function');\n  ok(typeof load(NS, 'typed-array/int16-array') == 'function');\n  ok(typeof load(NS, 'typed-array/uint16-array') == 'function');\n  ok(typeof load(NS, 'typed-array/int32-array') == 'function');\n  ok(typeof load(NS, 'typed-array/uint32-array') == 'function');\n  ok(typeof load(NS, 'typed-array/float32-array') == 'function');\n  ok(typeof load(NS, 'typed-array/float64-array') == 'function');\n  load(NS, 'typed-array/at');\n  load(NS, 'typed-array/copy-within');\n  load(NS, 'typed-array/entries');\n  load(NS, 'typed-array/every');\n  load(NS, 'typed-array/fill');\n  load(NS, 'typed-array/filter');\n  load(NS, 'typed-array/find');\n  load(NS, 'typed-array/find-index');\n  load(NS, 'typed-array/find-last');\n  load(NS, 'typed-array/find-last-index');\n  load(NS, 'typed-array/for-each');\n  load(NS, 'typed-array/from');\n  load(NS, 'typed-array/from-base64');\n  load(NS, 'typed-array/from-hex');\n  load(NS, 'typed-array/includes');\n  load(NS, 'typed-array/index-of');\n  load(NS, 'typed-array/iterator');\n  load(NS, 'typed-array/join');\n  load(NS, 'typed-array/keys');\n  load(NS, 'typed-array/last-index-of');\n  load(NS, 'typed-array/map');\n  load(NS, 'typed-array/of');\n  load(NS, 'typed-array/reduce');\n  load(NS, 'typed-array/reduce-right');\n  load(NS, 'typed-array/reverse');\n  load(NS, 'typed-array/set');\n  load(NS, 'typed-array/set-from-base64');\n  load(NS, 'typed-array/set-from-hex');\n  load(NS, 'typed-array/slice');\n  load(NS, 'typed-array/some');\n  load(NS, 'typed-array/sort');\n  load(NS, 'typed-array/subarray');\n  load(NS, 'typed-array/to-base64');\n  load(NS, 'typed-array/to-hex');\n  load(NS, 'typed-array/to-locale-string');\n  load(NS, 'typed-array/to-reversed');\n  load(NS, 'typed-array/to-sorted');\n  load(NS, 'typed-array/to-string');\n  load(NS, 'typed-array/values');\n  load(NS, 'typed-array/with');\n  load(NS, 'typed-array/methods');\n  ok(typeof load(NS, 'typed-array').Uint32Array == 'function');\n}\n\nfor (const NS of ['actual', 'full', 'features']) {\n  load(NS, 'typed-array/to-spliced');\n}\n\nfor (const NS of ['full', 'features']) {\n  load(NS, 'typed-array/from-async');\n  load(NS, 'typed-array/filter-out');\n  load(NS, 'typed-array/filter-reject');\n  load(NS, 'typed-array/group-by');\n  load(NS, 'typed-array/unique-by');\n}\n\nload('modules/esnext.string.at-alternative');\n\necho(chalk.green(`tested ${ chalk.cyan(tested.size) } commonjs entry points`));\n\nif (expected.size) {\n  echo(chalk.red('not tested entries:'));\n  expected.forEach(it => echo(chalk.cyan(it)));\n}\n"
  },
  {
    "path": "tests/eslint/eslint.config.js",
    "content": "import globals from 'globals';\nimport confusingBrowserGlobals from 'confusing-browser-globals';\nimport * as parserJSONC from 'jsonc-eslint-parser';\nimport pluginArrayFunc from 'eslint-plugin-array-func';\nimport pluginASCII from 'eslint-plugin-ascii';\nimport pluginDepend from 'eslint-plugin-depend';\nimport pluginESX from 'eslint-plugin-es-x';\nimport pluginESlintComments from '@eslint-community/eslint-plugin-eslint-comments';\nimport pluginImport from 'eslint-plugin-import-x';\nimport { createNodeResolver } from 'eslint-plugin-import-x/node-resolver';\nimport pluginJSONC from 'eslint-plugin-jsonc';\nimport pluginMarkdown from '@eslint/markdown';\nimport pluginMath from 'eslint-plugin-math';\nimport pluginN from 'eslint-plugin-n';\nimport pluginName from 'eslint-plugin-name';\nimport pluginNodeDependencies from 'eslint-plugin-node-dependencies';\nimport * as pluginPackageJSON from 'eslint-plugin-package-json';\nimport pluginPlaywright from 'eslint-plugin-playwright';\nimport pluginPromise from 'eslint-plugin-promise';\nimport pluginQUnit from 'eslint-plugin-qunit';\nimport pluginReDoS from 'eslint-plugin-redos';\nimport pluginRegExp from 'eslint-plugin-regexp';\nimport pluginSonarJS from 'eslint-plugin-sonarjs';\nimport pluginStylistic from '@stylistic/eslint-plugin';\nimport pluginUnicorn from 'eslint-plugin-unicorn';\nimport { yaml as pluginYaml } from 'eslint-yaml';\n\nconst PACKAGES_NODE_VERSIONS = '8.9.0';\nconst DEV_NODE_VERSIONS = '^20.19';\n\nconst ERROR = 'error';\nconst OFF = 'off';\nconst WARN = 'warn';\nconst ALWAYS = 'always';\nconst NEVER = 'never';\nconst READONLY = 'readonly';\n\nfunction disable(rules) {\n  return Object.fromEntries(Object.keys(rules).map(key => [key, OFF]));\n}\n\nconst base = {\n  // possible problems:\n  // enforces return statements in callbacks of array's methods\n  'array-callback-return': ERROR,\n  // require `super()` calls in constructors\n  'constructor-super': ERROR,\n  // enforce 'for' loop update clause moving the counter in the right direction\n  'for-direction': ERROR,\n  // disallow using an async function as a `Promise` executor\n  'no-async-promise-executor': ERROR,\n  // disallow reassigning class members\n  'no-class-assign': ERROR,\n  // disallow comparing against -0\n  'no-compare-neg-zero': ERROR,\n  // disallow reassigning `const` variables\n  'no-const-assign': ERROR,\n  // disallows expressions where the operation doesn't affect the value\n  'no-constant-binary-expression': ERROR,\n  // disallow constant expressions in conditions\n  'no-constant-condition': [ERROR, { checkLoops: false }],\n  // disallow returning value from constructor\n  'no-constructor-return': ERROR,\n  // disallow use of debugger\n  'no-debugger': ERROR,\n  // disallow duplicate arguments in functions\n  'no-dupe-args': ERROR,\n  // disallow duplicate class members\n  'no-dupe-class-members': ERROR,\n  // disallow duplicate conditions in if-else-if chains\n  'no-dupe-else-if': ERROR,\n  // disallow duplicate keys when creating object literals\n  'no-dupe-keys': ERROR,\n  // disallow a duplicate case label\n  'no-duplicate-case': ERROR,\n  // disallow duplicate module imports\n  'no-duplicate-imports': ERROR,\n  // disallow empty destructuring patterns\n  'no-empty-pattern': ERROR,\n  // disallow assigning to the exception in a catch block\n  'no-ex-assign': ERROR,\n  // disallow fallthrough of case statements\n  'no-fallthrough': [ERROR, { commentPattern: 'break omitted' }],\n  // disallow overwriting functions written as function declarations\n  'no-func-assign': ERROR,\n  // disallow assigning to imported bindings\n  'no-import-assign': ERROR,\n  // disallow irregular whitespace outside of strings and comments\n  'no-irregular-whitespace': ERROR,\n  // disallow literal numbers that lose precision\n  'no-loss-of-precision': ERROR,\n  // disallow `new` operators with global non-constructor functions\n  'no-new-native-nonconstructor': ERROR,\n  // disallow the use of object properties of the global object (Math and JSON) as functions\n  'no-obj-calls': ERROR,\n  // disallow use of Object.prototypes builtins directly\n  'no-prototype-builtins': ERROR,\n  // disallow self assignment\n  'no-self-assign': ERROR,\n  // disallow comparisons where both sides are exactly the same\n  'no-self-compare': ERROR,\n  // disallow sparse arrays\n  'no-sparse-arrays': ERROR,\n  // disallow template literal placeholder syntax in regular strings\n  'no-template-curly-in-string': ERROR,\n  // disallow `this` / `super` before calling `super()` in constructors\n  'no-this-before-super': ERROR,\n  // disallow `let` or `var` variables that are read but never assigned\n  'no-unassigned-vars': ERROR,\n  // disallow use of undeclared variables unless mentioned in a /*global */ block\n  'no-undef': [ERROR, { typeof: false }],\n  // avoid code that looks like two expressions but is actually one\n  'no-unexpected-multiline': ERROR,\n  // disallow unmodified loop conditions\n  'no-unmodified-loop-condition': ERROR,\n  // disallow unreachable statements after a return, throw, continue, or break statement\n  'no-unreachable': ERROR,\n  // disallow loops with a body that allows only one iteration\n  'no-unreachable-loop': ERROR,\n  // disallow control flow statements in `finally` blocks\n  'no-unsafe-finally': ERROR,\n  // disallow negation of the left operand of an in expression\n  'no-unsafe-negation': ERROR,\n  // disallow use of optional chaining in contexts where the `undefined` value is not allowed\n  'no-unsafe-optional-chaining': ERROR,\n  // disallow unused private class members\n  'no-unused-private-class-members': ERROR,\n  // disallow declaration of variables that are not used in the code\n  'no-unused-vars': [ERROR, {\n    vars: 'all',\n    args: 'after-used',\n    caughtErrors: 'none',\n    ignoreRestSiblings: true,\n  }],\n  // disallow variable assignments when the value is not used\n  'no-useless-assignment': ERROR,\n  // require or disallow the Unicode Byte Order Mark\n  'unicode-bom': [ERROR, NEVER],\n  // disallow comparisons with the value NaN\n  'use-isnan': ERROR,\n  // ensure that the results of typeof are compared against a valid string\n  'valid-typeof': ERROR,\n\n  // suggestions:\n  // enforce the use of variables within the scope they are defined\n  'block-scoped-var': ERROR,\n  // require camel case names\n  camelcase: [ERROR, {\n    properties: NEVER,\n    ignoreDestructuring: true,\n    ignoreImports: true,\n    ignoreGlobals: true,\n  }],\n  // enforce default clauses in switch statements to be last\n  'default-case-last': ERROR,\n  // enforce default parameters to be last\n  'default-param-last': ERROR,\n  // encourages use of dot notation whenever possible\n  'dot-notation': [ERROR, { allowKeywords: true }],\n  // require the use of === and !==\n  eqeqeq: [ERROR, 'smart'],\n  // require grouped accessor pairs in object literals and classes\n  'grouped-accessor-pairs': [ERROR, 'getBeforeSet'],\n  // require identifiers to match a specified regular expression\n  'id-match': [ERROR, '^[$A-Za-z]|(?:[A-Z][A-Z\\\\d_]*[A-Z\\\\d])|(?:[$A-Za-z]\\\\w*[A-Za-z\\\\d])$', {\n    onlyDeclarations: true,\n    ignoreDestructuring: true,\n  }],\n  // require logical assignment operator shorthand\n  'logical-assignment-operators': [ERROR, ALWAYS],\n  // enforce a maximum depth that blocks can be nested\n  'max-depth': [ERROR, { max: 5 }],\n  // enforce a maximum depth that callbacks can be nested\n  'max-nested-callbacks': [ERROR, { max: 4 }],\n  // specify the maximum number of statement allowed in a function\n  'max-statements': [ERROR, { max: 50 }],\n  // require a capital letter for constructors\n  'new-cap': [ERROR, { newIsCap: true, capIsNew: false }],\n  // disallow window alert / confirm / prompt calls\n  'no-alert': ERROR,\n  // disallow use of arguments.caller or arguments.callee\n  'no-caller': ERROR,\n  // disallow lexical declarations in case/default clauses\n  'no-case-declarations': ERROR,\n  // disallow use of console\n  'no-console': ERROR,\n  // disallow deletion of variables\n  'no-delete-var': ERROR,\n  // disallow else after a return in an if\n  'no-else-return': [ERROR, { allowElseIf: false }],\n  // disallow empty statements\n  'no-empty': ERROR,\n  // disallow empty functions, except for standalone funcs/arrows\n  'no-empty-function': ERROR,\n  // disallow empty static blocks\n  'no-empty-static-block': ERROR,\n  // disallow `null` comparisons without type-checking operators\n  'no-eq-null': ERROR,\n  // disallow use of eval()\n  'no-eval': ERROR,\n  // disallow adding to native types\n  'no-extend-native': ERROR,\n  // disallow unnecessary function binding\n  'no-extra-bind': ERROR,\n  // disallow unnecessary boolean casts\n  'no-extra-boolean-cast': [ERROR, { enforceForInnerExpressions: true }],\n  // disallow unnecessary labels\n  'no-extra-label': ERROR,\n  // disallow reassignments of native objects\n  'no-global-assign': ERROR,\n  // disallow use of eval()-like methods\n  'no-implied-eval': ERROR,\n  // disallow usage of __iterator__ property\n  'no-iterator': ERROR,\n  // disallow labels that share a name with a variable\n  'no-label-var': ERROR,\n  // disallow use of labels for anything other then loops and switches\n  'no-labels': [ERROR, { allowLoop: false, allowSwitch: false }],\n  // disallow unnecessary nested blocks\n  'no-lone-blocks': ERROR,\n  // disallow `if` as the only statement in an `else` block\n  'no-lonely-if': ERROR,\n  // disallow function declarations and expressions inside loop statements\n  'no-loop-func': OFF,\n  // disallow use of multiline strings\n  'no-multi-str': ERROR,\n  // disallow use of new operator when not part of the assignment or comparison\n  'no-new': ERROR,\n  // disallow use of new operator for Function object\n  'no-new-func': ERROR,\n  // disallows creating new instances of String, Number, and Boolean\n  'no-new-wrappers': ERROR,\n  // disallow `\\8` and `\\9` escape sequences in string literals\n  'no-nonoctal-decimal-escape': ERROR,\n  // disallow calls to the `Object` constructor without an argument\n  'no-object-constructor': ERROR,\n  // disallow use of (old style) octal literals\n  'no-octal': ERROR,\n  // disallow use of octal escape sequences in string literals, such as var foo = 'Copyright \\251';\n  'no-octal-escape': ERROR,\n  // disallow usage of __proto__ property\n  'no-proto': ERROR,\n  // disallow declaring the same variable more then once\n  'no-redeclare': [ERROR, { builtinGlobals: false }],\n  // disallow specific global variables\n  'no-restricted-globals': [ERROR, ...confusingBrowserGlobals],\n  // disallow specified syntax\n  'no-restricted-syntax': [ERROR,\n    {\n      selector: 'ForInStatement',\n      message: '`for-in` loops are disallowed since iterate over the prototype chain',\n    },\n  ],\n  // disallow use of `javascript:` urls.\n  'no-script-url': ERROR,\n  // disallow use of comma operator\n  'no-sequences': ERROR,\n  // disallow declaration of variables already declared in the outer scope\n  'no-shadow': ERROR,\n  // disallow shadowing of names such as arguments\n  'no-shadow-restricted-names': [ERROR, { reportGlobalThis: false }],\n  // restrict what can be thrown as an exception\n  'no-throw-literal': ERROR,\n  // disallow initializing variables to `undefined`\n  'no-undef-init': ERROR,\n  // disallow dangling underscores in identifiers\n  'no-underscore-dangle': ERROR,\n  // disallow the use of boolean literals in conditional expressions and prefer `a || b` over `a ? a : b`\n  'no-unneeded-ternary': [ERROR, { defaultAssignment: false }],\n  // disallow usage of expressions in statement position\n  'no-unused-expressions': [ERROR, {\n    allowShortCircuit: true,\n    allowTernary: true,\n    allowTaggedTemplates: true,\n    ignoreDirectives: true,\n  }],\n  // disallow unused labels\n  'no-unused-labels': ERROR,\n  // disallow unnecessary calls to `.call()` and `.apply()`\n  'no-useless-call': ERROR,\n  // disallow unnecessary catch clauses\n  'no-useless-catch': ERROR,\n  // disallow unnecessary computed property keys in object literals\n  'no-useless-computed-key': ERROR,\n  // disallow useless string concatenation\n  'no-useless-concat': ERROR,\n  // disallow unnecessary constructors\n  'no-useless-constructor': ERROR,\n  // disallow unnecessary escape characters\n  'no-useless-escape': ERROR,\n  // disallow renaming import, export, and destructured assignments to the same name\n  'no-useless-rename': ERROR,\n  // disallow redundant return statements\n  'no-useless-return': ERROR,\n  // require let or const instead of var\n  'no-var': ERROR,\n  // disallow void operators\n  'no-void': ERROR,\n  // disallow use of the with statement\n  'no-with': ERROR,\n  // require or disallow method and property shorthand syntax for object literals\n  'object-shorthand': ERROR,\n  // require assignment operator shorthand where possible\n  'operator-assignment': [ERROR, 'always'],\n  // require using arrow functions for callbacks\n  'prefer-arrow-callback': ERROR,\n  // require const declarations for variables that are never reassigned after declared\n  'prefer-const': [ERROR, { destructuring: 'all' }],\n  // require destructuring from arrays and/or objects\n  'prefer-destructuring': [ERROR, {\n    VariableDeclarator: {\n      array: true,\n      object: true,\n    },\n    AssignmentExpression: {\n      array: true,\n      object: false,\n    },\n  }, {\n    enforceForRenamedProperties: false,\n  }],\n  // prefer the exponentiation operator over `Math.pow()`\n  'prefer-exponentiation-operator': ERROR,\n  // disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals\n  'prefer-numeric-literals': ERROR,\n  // prefer `Object.hasOwn`\n  'prefer-object-has-own': ERROR,\n  // disallow use of the `RegExp` constructor in favor of regular expression literals\n  'prefer-regex-literals': [ERROR, { disallowRedundantWrapping: true }],\n  // require rest parameters instead of `arguments`\n  'prefer-rest-params': ERROR,\n  // require spread operators instead of `.apply()`\n  'prefer-spread': ERROR,\n  // require template literals instead of string concatenation\n  'prefer-template': ERROR,\n  // require use of the second argument for parseInt()\n  radix: ERROR,\n  // disallow generator functions that do not have `yield`\n  'require-yield': ERROR,\n  // require strict mode directives\n  strict: [ERROR, 'global'],\n  // require symbol descriptions\n  'symbol-description': ERROR,\n  // disallow \"Yoda\" conditions\n  yoda: [ERROR, NEVER],\n\n  // layout & formatting:\n  // enforce spacing inside array brackets\n  '@stylistic/array-bracket-spacing': [ERROR, NEVER],\n  // require parentheses around arrow function arguments\n  '@stylistic/arrow-parens': [ERROR, 'as-needed'],\n  // enforce consistent spacing before and after the arrow in arrow functions\n  '@stylistic/arrow-spacing': ERROR,\n  // enforce spacing inside single-line blocks\n  '@stylistic/block-spacing': [ERROR, ALWAYS],\n  // enforce one true brace style\n  '@stylistic/brace-style': [ERROR, '1tbs', { allowSingleLine: true }],\n  // enforce trailing commas in multiline object literals\n  '@stylistic/comma-dangle': [ERROR, 'always-multiline'],\n  // enforce spacing after comma\n  '@stylistic/comma-spacing': ERROR,\n  // enforce one true comma style\n  '@stylistic/comma-style': [ERROR, 'last'],\n  // disallow padding inside computed properties\n  '@stylistic/computed-property-spacing': [ERROR, NEVER],\n  // enforce consistent line breaks after opening and before closing braces\n  '@stylistic/curly-newline': [ERROR, { consistent: true }],\n  // enforce newline before and after dot\n  '@stylistic/dot-location': [ERROR, 'property'],\n  // enforce one newline at the end of files\n  '@stylistic/eol-last': [ERROR, ALWAYS],\n  // disallow space between function identifier and application\n  '@stylistic/function-call-spacing': ERROR,\n  // require spacing around the `*` in `function *` expressions\n  '@stylistic/generator-star-spacing': [ERROR, 'both'],\n  // enforce the location of arrow function bodies\n  '@stylistic/implicit-arrow-linebreak': [ERROR, 'beside'],\n  // enforce consistent indentation\n  '@stylistic/indent': [ERROR, 2, {\n    ignoredNodes: ['ConditionalExpression'],\n    SwitchCase: 1,\n    VariableDeclarator: 'first',\n  }],\n  // enforces spacing between keys and values in object literal properties\n  '@stylistic/key-spacing': [ERROR, { beforeColon: false, afterColon: true }],\n  // require a space before & after certain keywords\n  '@stylistic/keyword-spacing': [ERROR, { before: true, after: true }],\n  // enforce consistent linebreak style\n  '@stylistic/linebreak-style': [ERROR, 'unix'],\n  // specify the maximum length of a line in your program\n  '@stylistic/max-len': [ERROR, {\n    code: 140,\n    tabWidth: 2,\n    ignoreRegExpLiterals: true,\n    ignoreTemplateLiterals: true,\n    ignoreUrls: true,\n    ignorePattern: '<svg[\\\\s\\\\S]*?</svg>',\n  }],\n  // enforce a maximum number of statements allowed per line\n  '@stylistic/max-statements-per-line': [ERROR, { max: 2 }],\n  // require parentheses when invoking a constructor with no arguments\n  '@stylistic/new-parens': ERROR,\n  // disallow unnecessary parentheses\n  '@stylistic/no-extra-parens': [ERROR, 'all', {\n    nestedBinaryExpressions: false,\n    nestedConditionalExpressions: false,\n    ternaryOperandBinaryExpressions: false,\n  }],\n  // disallow unnecessary semicolons\n  '@stylistic/no-extra-semi': ERROR,\n  // disallow the use of leading or trailing decimal points in numeric literals\n  '@stylistic/no-floating-decimal': ERROR,\n  // disallow mixed spaces and tabs for indentation\n  '@stylistic/no-mixed-spaces-and-tabs': ERROR,\n  // disallow use of multiple spaces\n  '@stylistic/no-multi-spaces': [ERROR, { ignoreEOLComments: true }],\n  // disallow multiple empty lines and only one newline at the end\n  '@stylistic/no-multiple-empty-lines': [ERROR, { max: 1, maxEOF: 1 }],\n  // disallow tabs\n  '@stylistic/no-tabs': ERROR,\n  // disallow trailing whitespace at the end of lines\n  '@stylistic/no-trailing-spaces': ERROR,\n  // disallow whitespace before properties\n  '@stylistic/no-whitespace-before-property': ERROR,\n  // enforce the location of single-line statements\n  '@stylistic/nonblock-statement-body-position': [ERROR, 'beside'],\n  // enforce consistent line breaks after opening and before closing braces\n  '@stylistic/object-curly-newline': [ERROR, { consistent: true }],\n  // enforce spaces inside braces\n  '@stylistic/object-curly-spacing': [ERROR, ALWAYS],\n  // require newlines around variable declarations with initializations\n  '@stylistic/one-var-declaration-per-line': [ERROR, 'initializations'],\n  // enforce padding within blocks\n  '@stylistic/padded-blocks': [ERROR, NEVER],\n  // disallow blank lines after 'use strict'\n  '@stylistic/padding-line-between-statements': [ERROR, { blankLine: NEVER, prev: 'directive', next: '*' }],\n  // require or disallow use of quotes around object literal property names\n  '@stylistic/quote-props': [ERROR, 'as-needed', { keywords: false }],\n  // specify whether double or single quotes should be used\n  '@stylistic/quotes': [ERROR, 'single', { avoidEscape: true }],\n  // enforce spacing between rest and spread operators and their expressions\n  '@stylistic/rest-spread-spacing': ERROR,\n  // require or disallow use of semicolons instead of ASI\n  '@stylistic/semi': [ERROR, ALWAYS],\n  // enforce spacing before and after semicolons\n  '@stylistic/semi-spacing': ERROR,\n  // enforce location of semicolons\n  '@stylistic/semi-style': [ERROR, 'last'],\n  // require or disallow space before blocks\n  '@stylistic/space-before-blocks': ERROR,\n  // require or disallow space before function opening parenthesis\n  '@stylistic/space-before-function-paren': [ERROR, { anonymous: ALWAYS, named: NEVER }],\n  // require or disallow spaces inside parentheses\n  '@stylistic/space-in-parens': ERROR,\n  // require spaces around operators\n  '@stylistic/space-infix-ops': ERROR,\n  // require or disallow spaces before/after unary operators\n  '@stylistic/space-unary-ops': ERROR,\n  // require or disallow a space immediately following the // or /* in a comment\n  '@stylistic/spaced-comment': [ERROR, ALWAYS, {\n    line: { exceptions: ['/'] },\n    block: { exceptions: ['*'] },\n  }],\n  // enforce spacing around colons of switch statements\n  '@stylistic/switch-colon-spacing': ERROR,\n  // require or disallow spacing around embedded expressions of template strings\n  '@stylistic/template-curly-spacing': [ERROR, ALWAYS],\n  // disallow spacing between template tags and their literals\n  '@stylistic/template-tag-spacing': [ERROR, NEVER],\n  // require spacing around the `*` in `yield *` expressions\n  '@stylistic/yield-star-spacing': [ERROR, 'both'],\n\n  // ascii\n  // forbid non-ascii chars in ast node names\n  'ascii/valid-name': ERROR,\n\n  // import:\n  // forbid any invalid exports, i.e. re-export of the same name\n  'import/export': ERROR,\n  // ensure all imports appear before other statements\n  'import/first': ERROR,\n  // enforce a newline after import statements\n  'import/newline-after-import': ERROR,\n  // forbid import of modules using absolute paths\n  'import/no-absolute-path': ERROR,\n  // forbid AMD imports\n  'import/no-amd': ERROR,\n  // forbid cycle dependencies\n  'import/no-cycle': [ERROR, { commonjs: true }],\n  // disallow importing from the same path more than once\n  'import/no-duplicates': ERROR,\n  // forbid `require()` calls with expressions\n  'import/no-dynamic-require': ERROR,\n  // forbid empty named import blocks\n  'import/no-empty-named-blocks': ERROR,\n  // forbid imports with CommonJS exports\n  'import/no-import-module-exports': ERROR,\n  // forbid a module from importing itself\n  'import/no-self-import': ERROR,\n  // ensure imports point to files / modules that can be resolved\n  'import/no-unresolved': [ERROR, { commonjs: true }],\n  // forbid useless path segments\n  'import/no-useless-path-segments': ERROR,\n  // forbid Webpack loader syntax in imports\n  'import/no-webpack-loader-syntax': ERROR,\n\n  // node:\n  // enforce the style of file extensions in `import` declarations\n  'node/file-extension-in-import': ERROR,\n  // require require() calls to be placed at top-level module scope\n  'node/global-require': ERROR,\n  // disallow deprecated APIs\n  'node/no-deprecated-api': ERROR,\n  // disallow the assignment to `exports`\n  'node/no-exports-assign': ERROR,\n  // disallow require calls to be mixed with regular variable declarations\n  'node/no-mixed-requires': [ERROR, { grouping: true, allowCall: false }],\n  // disallow new operators with calls to require\n  'node/no-new-require': ERROR,\n  // disallow string concatenation with `__dirname` and `__filename`\n  'node/no-path-concat': ERROR,\n  // disallow the use of `process.exit()`\n  'node/no-process-exit': ERROR,\n  // disallow synchronous methods\n  'node/no-sync': ERROR,\n  // prefer `node:` protocol\n  'node/prefer-node-protocol': ERROR,\n  // prefer global\n  'node/prefer-global/buffer': [ERROR, ALWAYS],\n  'node/prefer-global/console': [ERROR, ALWAYS],\n  'node/prefer-global/crypto': [ERROR, ALWAYS],\n  'node/prefer-global/process': [ERROR, ALWAYS],\n  'node/prefer-global/text-decoder': [ERROR, ALWAYS],\n  'node/prefer-global/text-encoder': [ERROR, ALWAYS],\n  'node/prefer-global/timers': [ERROR, ALWAYS],\n  'node/prefer-global/url-search-params': [ERROR, ALWAYS],\n  'node/prefer-global/url': [ERROR, ALWAYS],\n  // prefer promises\n  'node/prefer-promises/dns': ERROR,\n  'node/prefer-promises/fs': ERROR,\n\n  // array-func:\n  // avoid reversing the array and running a method on it if there is an equivalent of the method operating on the array from the other end\n  'array-func/avoid-reverse': ERROR,\n  // prefer using the `mapFn` callback of `Array.from` over an immediate `.map()` call on the `Array.from` result\n  'array-func/from-map': ERROR,\n  // avoid the `this` parameter when providing arrow function as callback in array functions\n  'array-func/no-unnecessary-this-arg': ERROR,\n\n  // promise:\n  // enforces the use of `catch()` on un-returned promises\n  'promise/catch-or-return': ERROR,\n  // avoid calling `cb()` inside of a `then()` or `catch()`\n  'promise/no-callback-in-promise': ERROR,\n  // disallow creating new promises with paths that resolve multiple times\n  'promise/no-multiple-resolved': ERROR,\n  // avoid nested `then()` or `catch()` statements\n  'promise/no-nesting': ERROR,\n  // avoid calling new on a `Promise` static method\n  'promise/no-new-statics': ERROR,\n  // avoid using promises inside of callbacks\n  'promise/no-promise-in-callback': ERROR,\n  // disallow return statements in `finally()`\n  'promise/no-return-in-finally': ERROR,\n  // avoid wrapping values in `Promise.resolve` or `Promise.reject` when not needed\n  'promise/no-return-wrap': ERROR,\n  // enforce consistent param names when creating new promises\n  'promise/param-names': [ERROR, {\n    resolvePattern: '^resolve',\n    rejectPattern: '^reject',\n  }],\n  // prefer `async` / `await` to the callback pattern\n  'promise/prefer-await-to-callbacks': ERROR,\n  // prefer `await` to `then()` / `catch()` / `finally()` for reading `Promise` values\n  'promise/prefer-await-to-then': [ERROR, { strict: true }],\n  // prefer catch to `then(a, b)` / `then(null, b)` for handling errors\n  'promise/prefer-catch': ERROR,\n  // ensures the proper number of arguments are passed to `Promise` functions\n  'promise/valid-params': ERROR,\n\n  // unicorn\n  // enforce a specific parameter name in `catch` clauses\n  'unicorn/catch-error-name': [ERROR, { name: ERROR, ignore: [/^err/] }],\n  // enforce consistent assertion style with `node:assert`\n  'unicorn/consistent-assert': ERROR,\n  // prefer passing `Date` directly to the constructor when cloning\n  'unicorn/consistent-date-clone': ERROR,\n  // prefer consistent types when spreading a ternary in an array literal\n  'unicorn/consistent-empty-array-spread': ERROR,\n  // enforce consistent style for element existence checks with `indexOf()`, `lastIndexOf()`, `findIndex()`, and `findLastIndex()`\n  'unicorn/consistent-existence-index-check': ERROR,\n  // enforce correct `Error` subclassing\n  'unicorn/custom-error-definition': ERROR,\n  // enforce passing a message value when throwing a built-in error\n  'unicorn/error-message': ERROR,\n  // require escape sequences to use uppercase values\n  'unicorn/escape-case': [ERROR, 'uppercase'],\n  // enforce a case style for filenames\n  'unicorn/filename-case': [ERROR, { case: 'kebabCase' }],\n  // enforce specifying rules to disable in `eslint-disable` comments\n  'unicorn/no-abusive-eslint-disable': ERROR,\n  // disallow recursive access to `this` within getters and setters\n  'unicorn/no-accessor-recursion': ERROR,\n  // prefer `Array#toReversed()` over `Array#reverse()`\n  'unicorn/no-array-reverse': ERROR,\n  // disallow using `await` in `Promise` method parameters\n  'unicorn/no-await-in-promise-methods': ERROR,\n  // do not use leading/trailing space between `console.log` parameters\n  'unicorn/no-console-spaces': ERROR,\n  // enforce the use of unicode escapes instead of hexadecimal escapes\n  'unicorn/no-hex-escape': ERROR,\n  // disallow immediate mutation after variable assignment\n  // that cause problems with objects in ES3 syntax, but since unicorn team\n  // don't wanna add an option to allow it, manually disable this rule in such problem cases\n  // https://github.com/sindresorhus/eslint-plugin-unicorn/issues/2796\n  'unicorn/no-immediate-mutation': ERROR,\n  // disallow `instanceof` with built-in objects\n  'unicorn/no-instanceof-builtins': [ERROR, { strategy: 'loose' }],\n  // disallow invalid options in `fetch` and `Request`\n  'unicorn/no-invalid-fetch-options': ERROR,\n  // prevent calling `EventTarget#removeEventListener()` with the result of an expression\n  'unicorn/no-invalid-remove-event-listener': ERROR,\n  // disallow `if` statements as the only statement in `if` blocks without `else`\n  'unicorn/no-lonely-if': ERROR,\n  // disallow named usage of default import and export\n  'unicorn/no-named-default': ERROR,\n  // disallow negated expression in equality check\n  'unicorn/no-negation-in-equality-check': ERROR,\n  // enforce the use of `Buffer.from()` and `Buffer.alloc()` instead of the deprecated `new Buffer()`\n  'unicorn/no-new-buffer': ERROR,\n  // disallow passing single-element arrays to `Promise` methods\n  'unicorn/no-single-promise-in-promise-methods': ERROR,\n  // forbid classes that only have static members\n  'unicorn/no-static-only-class': ERROR,\n  // disallow `then` property\n  'unicorn/no-thenable': ERROR,\n  // disallow comparing `undefined` using `typeof` when it's not required\n  'unicorn/no-typeof-undefined': ERROR,\n  // disallow using 1 as the depth argument of `Array#flat()`\n  'unicorn/no-unnecessary-array-flat-depth': ERROR,\n  // disallow using `.length` or `Infinity` as the `deleteCount` or `skipCount` argument of `Array#{ splice, toSpliced }()`\n  'unicorn/no-unnecessary-array-splice-count': ERROR,\n  // disallow awaiting non-promise values\n  'unicorn/no-unnecessary-await': ERROR,\n  // disallow using `.length` or `Infinity` as the end argument of `{ Array, String, %TypedArray% }#slice()`\n  'unicorn/no-unnecessary-slice-end': ERROR,\n  // disallow unreadable array destructuring\n  'unicorn/no-unreadable-array-destructuring': ERROR,\n  // disallow unreadable IIFEs\n  'unicorn/no-unreadable-iife': ERROR,\n  // disallow unused object properties\n  'unicorn/no-unused-properties': ERROR,\n  // disallow useless values or fallbacks in `Set`, `Map`, `WeakSet`, or `WeakMap`\n  'unicorn/no-useless-collection-argument': ERROR,\n  // disallow unnecessary `Error.captureStackTrace()`\n  'unicorn/no-useless-error-capture-stack-trace': ERROR,\n  // forbid useless fallback when spreading in object literals\n  'unicorn/no-useless-fallback-in-spread': ERROR,\n  // disallow useless array length check\n  'unicorn/no-useless-length-check': ERROR,\n  // disallow returning / yielding `Promise.{ resolve, reject }` in async functions or promise callbacks\n  'unicorn/no-useless-promise-resolve-reject': ERROR,\n  // disallow useless spread\n  'unicorn/no-useless-spread': ERROR,\n  // disallow useless `case` in `switch` statements\n  'unicorn/no-useless-switch-case': ERROR,\n  // enforce lowercase identifier and uppercase value for number literals\n  'unicorn/number-literal-case': [ERROR, { hexadecimalValue: 'uppercase' }],\n  // enforce the style of numeric separators by correctly grouping digits\n  'unicorn/numeric-separators-style': [ERROR, {\n    onlyIfContainsSeparator: true,\n    number: { minimumDigits: 0, groupLength: 3 },\n    binary: { minimumDigits: 0, groupLength: 4 },\n    octal: { minimumDigits: 0, groupLength: 4 },\n    hexadecimal: { minimumDigits: 0, groupLength: 2 },\n  }],\n  // prefer `.find()` over the first element from `.filter()`\n  'unicorn/prefer-array-find': [ERROR, { checkFromLast: true }],\n  // use `.flat()` to flatten an array of arrays\n  'unicorn/prefer-array-flat': ERROR,\n  // use `.flatMap()` to map and then flatten an array instead of using `.map().flat()`\n  'unicorn/prefer-array-flat-map': ERROR,\n  // prefer `Array#indexOf` over `Array#findIndex`` when looking for the index of an item\n  'unicorn/prefer-array-index-of': ERROR,\n  // prefer `.some()` over `.filter().length` check and `.find()`\n  'unicorn/prefer-array-some': ERROR,\n  // prefer `.at()` method for index access and `String#charAt()`\n  'unicorn/prefer-at': [ERROR, { checkAllIndexAccess: false }],\n  // prefer `BigInt` literals over the constructor\n  'unicorn/prefer-bigint-literals': ERROR,\n  // prefer `Blob#{ arrayBuffer, text }` over `FileReader#{ readAsArrayBuffer, readAsText }`\n  'unicorn/prefer-blob-reading-methods': ERROR,\n  // prefer class field declarations over this assignments in constructors\n  'unicorn/prefer-class-fields': ERROR,\n  // prefer using `Element#classList.toggle()` to toggle class names\n  'unicorn/prefer-classlist-toggle': ERROR,\n  // prefer `Date.now()` to get the number of milliseconds since the Unix Epoch\n  'unicorn/prefer-date-now': ERROR,\n  // prefer default parameters over reassignment\n  'unicorn/prefer-default-parameters': ERROR,\n  // prefer `EventTarget` over `EventEmitter`\n  'unicorn/prefer-event-target': ERROR,\n  // prefer `globalThis` over `window`, `self`, and `global`\n  'unicorn/prefer-global-this': ERROR,\n  // prefer `.includes()` over `.indexOf()` and `Array#some()` when checking for existence or non-existence\n  'unicorn/prefer-includes': ERROR,\n  // prefer reading a `JSON` file as a buffer\n  'unicorn/prefer-json-parse-buffer': ERROR,\n  // prefer using a logical operator over a ternary\n  'unicorn/prefer-logical-operator-over-ternary': ERROR,\n  // prefer `Math.min()` and `Math.max()` over ternaries for simple comparisons\n  'unicorn/prefer-math-min-max': ERROR,\n  // prefer modern `Math` APIs over legacy patterns\n  'unicorn/prefer-modern-math-apis': ERROR,\n  // prefer negative index over `.length - index` when possible\n  'unicorn/prefer-negative-index': ERROR,\n  // prefer using the `node:` protocol when importing Node builtin modules\n  'unicorn/prefer-node-protocol': ERROR,\n  // prefer using `Object.fromEntries()` to transform a list of key-value pairs into an object\n  'unicorn/prefer-object-from-entries': ERROR,\n  // prefer omitting the `catch` binding parameter\n  'unicorn/prefer-optional-catch-binding': ERROR,\n  // prefer `Response.json()` over `new Response(JSON.stringify())`\n  'unicorn/prefer-response-static-json': ERROR,\n  // prefer using `structuredClone` to create a deep clone\n  'unicorn/prefer-structured-clone': ERROR,\n  // prefer using `Set#size` instead of `Array#length`\n  'unicorn/prefer-set-size': ERROR,\n  // enforce combining multiple `Array#push`, `Element#classList.{ add, remove }()` or `importScripts` into one call\n  'unicorn/prefer-single-call': ERROR,\n  // prefer `String#replaceAll()` over regex searches with the global flag\n  'unicorn/prefer-string-replace-all': ERROR,\n  // prefer `String#{ startsWith, endsWith }()` over `RegExp#test()`\n  'unicorn/prefer-string-starts-ends-with': ERROR,\n  // prefer `String#{ trimStart, trimEnd }()` over `String#{ trimLeft, trimRight }()`\n  'unicorn/prefer-string-trim-start-end': ERROR,\n  // prefer `switch` over multiple `else-if`\n  'unicorn/prefer-switch': [ERROR, { minimumCases: 3 }],\n  // enforce consistent relative `URL` style\n  'unicorn/relative-url-style': [ERROR, ALWAYS],\n  // enforce using the separator argument with `Array#join()`\n  'unicorn/require-array-join-separator': ERROR,\n  // require non-empty specifier list in import and export statements\n  'unicorn/require-module-specifiers': ERROR,\n  // enforce using the digits argument with `Number#toFixed()`\n  'unicorn/require-number-to-fixed-digits-argument': ERROR,\n  // enforce using the `targetOrigin`` argument with `window.postMessage()`\n  'unicorn/require-post-message-target-origin': ERROR,\n  // forbid braces for case clauses\n  'unicorn/switch-case-braces': [ERROR, 'avoid'],\n  // fix whitespace-insensitive template indentation\n  'unicorn/template-indent': OFF, // waiting for `String.dedent`\n  // enforce consistent case for text encoding identifiers\n  'unicorn/text-encoding-identifier-case': ERROR,\n  // require `new` when throwing an error\n  'unicorn/throw-new-error': ERROR,\n\n  // sonarjs\n  // alternatives in regular expressions should be grouped when used with anchors\n  'sonarjs/anchor-precedence': ERROR,\n  // arguments to built-in functions should match documented types\n  'sonarjs/argument-type': OFF, // it seems does not work\n  // bitwise operators should not be used in boolean contexts\n  'sonarjs/bitwise-operators': ERROR,\n  // function call arguments should not start on new lines\n  'sonarjs/call-argument-line': ERROR,\n  // class names should comply with a naming convention\n  'sonarjs/class-name': [ERROR, { format: '^[A-Z$][a-zA-Z0-9]*$' }],\n  // comma and logical `OR` operators should not be used in switch cases\n  'sonarjs/comma-or-logical-or-case': ERROR,\n  // cyclomatic complexity of functions should not be too high\n  'sonarjs/cyclomatic-complexity': [OFF, { threshold: 16 }],\n  // expressions should not be too complex\n  'sonarjs/expression-complexity': [OFF, { max: 3 }],\n  // `in` should not be used with primitive types\n  'sonarjs/in-operator-type-error': ERROR,\n  // functions should be called consistently with or without `new`\n  'sonarjs/inconsistent-function-call': ERROR,\n  // `new` should only be used with functions and classes\n  'sonarjs/new-operator-misuse': [ERROR, { considerJSDoc: false }],\n  // `Array#{ sort, toSorted }` should use a compare function\n  'sonarjs/no-alphabetical-sort': ERROR,\n  // `delete` should not be used on arrays\n  'sonarjs/no-array-delete': ERROR,\n  // array indexes should be numeric\n  'sonarjs/no-associative-arrays': ERROR,\n  // `switch` statements should not contain non-case labels\n  'sonarjs/no-case-label-in-switch': ERROR,\n  // collection sizes and array length comparisons should make sense\n  'sonarjs/no-collection-size-mischeck': ERROR,\n  // two branches in a conditional structure should not have exactly the same implementation\n  'sonarjs/no-duplicated-branches': ERROR,\n  // collection elements should not be replaced unconditionally\n  'sonarjs/no-element-overwrite': ERROR,\n  // empty collections should not be accessed or iterated\n  'sonarjs/no-empty-collection': ERROR,\n  // function calls should not pass extra arguments\n  'sonarjs/no-extra-arguments': ERROR,\n  // `for-in` should not be used with iterables\n  'sonarjs/no-for-in-iterable': ERROR,\n  // global `this` object should not be used\n  'sonarjs/no-global-this': ERROR,\n  // boolean expressions should not be gratuitous\n  'sonarjs/no-gratuitous-expressions': ERROR,\n  // `in` should not be used on arrays\n  'sonarjs/no-in-misuse': ERROR,\n  // strings and non-strings should not be added\n  'sonarjs/no-incorrect-string-concat': ERROR,\n  // function returns should not be invariant\n  'sonarjs/no-invariant-returns': ERROR,\n  // literals should not be used as functions\n  'sonarjs/no-literal-call': ERROR,\n  // array-mutating methods should not be used misleadingly\n  'sonarjs/no-misleading-array-reverse': ERROR,\n  // assignments should not be redundant\n  'sonarjs/no-redundant-assignments': ERROR,\n  // boolean literals should not be redundant\n  'sonarjs/no-redundant-boolean': ERROR,\n  // jump statements should not be redundant\n  'sonarjs/no-redundant-jump': ERROR,\n  // redundant pairs of parentheses should be removed\n  'sonarjs/no-redundant-parentheses': ERROR,\n  // variables should be defined before being used\n  'sonarjs/no-reference-error': ERROR,\n  // conditionals should start on new lines\n  'sonarjs/no-same-line-conditional': ERROR,\n  // `switch` statements should have at least 3 `case` clauses\n  'sonarjs/no-small-switch': ERROR,\n  // promise rejections should not be caught by `try` blocks\n  'sonarjs/no-try-promise': ERROR,\n  // `undefined` should not be passed as the value of optional parameters\n  'sonarjs/no-undefined-argument': ERROR,\n  // errors should not be created without being thrown\n  'sonarjs/no-unthrown-error': ERROR,\n  // collection and array contents should be used\n  'sonarjs/no-unused-collection': ERROR,\n  // the output of functions that don't return anything should not be used\n  'sonarjs/no-use-of-empty-return-value': ERROR,\n  // values should not be uselessly incremented\n  'sonarjs/no-useless-increment': ERROR,\n  // non-existent operators `=+`, `=-` and `=!` should not be used\n  'sonarjs/non-existent-operator': ERROR,\n  // properties of variables with `null` or `undefined` values should not be accessed\n  'sonarjs/null-dereference': ERROR, // it seems does not work\n  // arithmetic operations should not result in `NaN`\n  'sonarjs/operation-returning-nan': ERROR,\n  // local variables should not be declared and then immediately returned or thrown\n  'sonarjs/prefer-immediate-return': ERROR,\n  // object literal syntax should be used\n  'sonarjs/prefer-object-literal': ERROR,\n  // shorthand promises should be used\n  'sonarjs/prefer-promise-shorthand': ERROR,\n  // return of boolean expressions should not be wrapped into an `if-then-else` statement\n  'sonarjs/prefer-single-boolean-return': ERROR,\n  // a `while` loop should be used instead of a `for` loop with condition only\n  'sonarjs/prefer-while': ERROR,\n  // using slow regular expressions is security-sensitive\n  'sonarjs/slow-regex': ERROR,\n  // regular expressions with the global flag should be used with caution\n  'sonarjs/stateful-regex': ERROR,\n  // comparison operators should not be used with strings\n  'sonarjs/strings-comparison': ERROR,\n  // results of operations on strings should not be ignored\n  'sonarjs/useless-string-operation': ERROR,\n  // values not convertible to numbers should not be used in numeric comparisons\n  'sonarjs/values-not-convertible-to-numbers': ERROR,\n\n  // math\n  // enforce the conversion to absolute values to be the method you prefer\n  'math/abs': [ERROR, { prefer: 'Math.abs' }],\n  // disallow static calculations that go to infinity\n  'math/no-static-infinity-calculations': ERROR,\n  // disallow static calculations that go to `NaN`\n  'math/no-static-nan-calculations': ERROR,\n  // enforce the use of exponentiation (`**`) operator instead of other calculations\n  'math/prefer-exponentiation-operator': ERROR,\n  // enforce the use of `Math.cbrt()` instead of other cube root calculations\n  'math/prefer-math-cbrt': ERROR,\n  // enforce the use of `Math.E` instead of other ways\n  'math/prefer-math-e': ERROR,\n  // enforce the use of `Math.hypot()` instead of other hypotenuse calculations\n  'math/prefer-math-hypot': ERROR,\n  // enforce the use of `Math.LN10` instead of other ways\n  'math/prefer-math-ln10': ERROR,\n  // enforce the use of `Math.LN2` instead of other ways\n  'math/prefer-math-ln2': ERROR,\n  // enforce the use of `Math.log10` instead of other ways\n  'math/prefer-math-log10': ERROR,\n  // enforce the use of `Math.LOG10E` instead of other ways\n  'math/prefer-math-log10e': ERROR,\n  // enforce the use of `Math.log2` instead of other ways\n  'math/prefer-math-log2': ERROR,\n  // enforce the use of `Math.LOG2E` instead of other ways\n  'math/prefer-math-log2e': ERROR,\n  // enforce the use of `Math.PI` instead of literal number\n  'math/prefer-math-pi': ERROR,\n  // enforce the use of `Math.sqrt()` instead of other square root calculations\n  'math/prefer-math-sqrt': ERROR,\n  // enforce the use of `Math.SQRT1_2` instead of other ways\n  'math/prefer-math-sqrt1-2': ERROR,\n  // enforce the use of `Math.SQRT2` instead of other ways\n  'math/prefer-math-sqrt2': ERROR,\n  // enforce the use of `Math.sumPrecise()` instead of other summation methods\n  'math/prefer-math-sum-precise': ERROR,\n  // enforce the use of `Math.trunc()` instead of other truncations\n  'math/prefer-math-trunc': [ERROR, { reportBitwise: false }],\n  // enforce the use of `Number.EPSILON` instead of other ways\n  'math/prefer-number-epsilon': ERROR,\n  // enforce the use of `Number.isFinite()` instead of other checking ways\n  'math/prefer-number-is-finite': ERROR,\n  // enforce the use of `Number.isInteger()` instead of other checking ways\n  'math/prefer-number-is-integer': ERROR,\n  // enforce the use of `Number.isNaN()` instead of other checking ways\n  'math/prefer-number-is-nan': ERROR,\n  // enforce the use of `Number.isSafeInteger()` instead of other checking ways\n  'math/prefer-number-is-safe-integer': ERROR,\n  // enforce the use of `Number.MAX_SAFE_INTEGER` instead of other ways\n  'math/prefer-number-max-safe-integer': ERROR,\n  // enforce the use of `Number.MAX_VALUE` instead of literal number\n  'math/prefer-number-max-value': ERROR,\n  // enforce the use of `Number.MIN_SAFE_INTEGER` instead of other ways\n  'math/prefer-number-min-safe-integer': ERROR,\n  // enforce the use of `Number.MIN_VALUE` instead of literal number\n  'math/prefer-number-min-value': ERROR,\n\n  // regexp\n  // disallow confusing quantifiers\n  'regexp/confusing-quantifier': ERROR,\n  // enforce consistent escaping of control characters\n  'regexp/control-character-escape': ERROR,\n  // enforce single grapheme in string literal\n  'regexp/grapheme-string-literal': ERROR,\n  // enforce consistent usage of hexadecimal escape\n  'regexp/hexadecimal-escape': [ERROR, NEVER],\n  // enforce into your favorite case\n  'regexp/letter-case': [ERROR, {\n    caseInsensitive: 'lowercase',\n    unicodeEscape: 'uppercase',\n  }],\n  // enforce match any character style\n  'regexp/match-any': [ERROR, { allows: ['[\\\\S\\\\s]', 'dotAll'] }],\n  // enforce use of escapes on negation\n  'regexp/negation': ERROR,\n  // disallow elements that contradict assertions\n  'regexp/no-contradiction-with-assertion': ERROR,\n  // disallow control characters\n  'regexp/no-control-character': ERROR,\n  // disallow duplicate characters in the RegExp character class\n  'regexp/no-dupe-characters-character-class': ERROR,\n  // disallow duplicate disjunctions\n  'regexp/no-dupe-disjunctions': [ERROR, { report: 'all' }],\n  // disallow alternatives without elements\n  'regexp/no-empty-alternative': ERROR,\n  // disallow capturing group that captures empty\n  'regexp/no-empty-capturing-group': ERROR,\n  // disallow character classes that match no characters\n  'regexp/no-empty-character-class': ERROR,\n  // disallow empty group\n  'regexp/no-empty-group': ERROR,\n  // disallow empty lookahead assertion or empty lookbehind assertion\n  'regexp/no-empty-lookarounds-assertion': ERROR,\n  // reports empty string literals in character classes\n  'regexp/no-empty-string-literal': ERROR,\n  // disallow escape backspace `([\\b])`\n  'regexp/no-escape-backspace': ERROR,\n  // disallow unnecessary nested lookaround assertions\n  'regexp/no-extra-lookaround-assertions': ERROR,\n  // disallow invalid regular expression strings in RegExp constructors\n  'regexp/no-invalid-regexp': ERROR,\n  // disallow invisible raw character\n  'regexp/no-invisible-character': ERROR,\n  // disallow lazy quantifiers at the end of an expression\n  'regexp/no-lazy-ends': ERROR,\n  // disallow legacy RegExp features\n  'regexp/no-legacy-features': ERROR,\n  // disallow capturing groups that do not behave as one would expect\n  'regexp/no-misleading-capturing-group': ERROR,\n  // disallow multi-code-point characters in character classes and quantifiers\n  'regexp/no-misleading-unicode-character': ERROR,\n  // disallow missing `g` flag in patterns used in `String#matchAll` and `String#replaceAll`\n  'regexp/no-missing-g-flag': ERROR,\n  // disallow non-standard flags\n  'regexp/no-non-standard-flag': ERROR,\n  // disallow obscure character ranges\n  'regexp/no-obscure-range': ERROR,\n  // disallow octal escape sequence\n  'regexp/no-octal': ERROR,\n  // disallow optional assertions\n  'regexp/no-optional-assertion': ERROR,\n  // disallow backreferences that reference a group that might not be matched\n  'regexp/no-potentially-useless-backreference': ERROR,\n  // disallow standalone backslashes\n  'regexp/no-standalone-backslash': ERROR,\n  // disallow trivially nested assertions\n  'regexp/no-trivially-nested-assertion': ERROR,\n  // disallow nested quantifiers that can be rewritten as one quantifier\n  'regexp/no-trivially-nested-quantifier': ERROR,\n  // disallow unused capturing group\n  'regexp/no-unused-capturing-group': ERROR,\n  // disallow assertions that are known to always accept (or reject)\n  'regexp/no-useless-assertions': ERROR,\n  // disallow useless backreferences in regular expressions\n  'regexp/no-useless-backreference': ERROR,\n  // disallow character class with one character\n  'regexp/no-useless-character-class': ERROR,\n  // disallow useless `$` replacements in replacement string\n  'regexp/no-useless-dollar-replacements': ERROR,\n  // disallow unnecessary string escaping\n  'regexp/no-useless-escape': ERROR,\n  // disallow unnecessary regex flags\n  'regexp/no-useless-flag': ERROR,\n  //  disallow unnecessarily non-greedy quantifiers\n  'regexp/no-useless-lazy': ERROR,\n  // disallow unnecessary non-capturing group\n  'regexp/no-useless-non-capturing-group': ERROR,\n  // disallow quantifiers that can be removed\n  'regexp/no-useless-quantifier': ERROR,\n  // disallow unnecessary range of characters by using a hyphen\n  'regexp/no-useless-range': ERROR,\n  // reports any unnecessary set operands\n  'regexp/no-useless-set-operand': ERROR,\n  // reports the string alternatives of a single character in `\\q{...}`, it can be placed outside `\\q{...}`\n  'regexp/no-useless-string-literal': ERROR,\n  // disallow unnecessary `{n,m}`` quantifier\n  'regexp/no-useless-two-nums-quantifier': ERROR,\n  // disallow quantifiers with a maximum of zero\n  'regexp/no-zero-quantifier': ERROR,\n  // disallow the alternatives of lookarounds that end with a non-constant quantifier\n  'regexp/optimal-lookaround-quantifier': ERROR,\n  // require optimal quantifiers for concatenated quantifiers\n  'regexp/optimal-quantifier-concatenation': ERROR,\n  // enforce using character class\n  'regexp/prefer-character-class': ERROR,\n  // enforce using `\\d`\n  'regexp/prefer-d': ERROR,\n  // enforces escape of replacement `$` character (`$$`)\n  'regexp/prefer-escape-replacement-dollar-char': ERROR,\n  // prefer lookarounds over capturing group that do not replace\n  'regexp/prefer-lookaround': [ERROR, { lookbehind: true, strictTypes: true }],\n  // enforce using named backreferences\n  'regexp/prefer-named-backreference': ERROR,\n  // enforce using named capture group in regular expression\n  'regexp/prefer-named-capture-group': ERROR,\n  // enforce using named replacement\n  'regexp/prefer-named-replacement': ERROR,\n  // enforce using `+` quantifier\n  'regexp/prefer-plus-quantifier': ERROR,\n  // prefer predefined assertion over equivalent lookarounds\n  'regexp/prefer-predefined-assertion': ERROR,\n  // enforce using quantifier\n  'regexp/prefer-quantifier': ERROR,\n  // enforce using `?` quantifier\n  'regexp/prefer-question-quantifier': ERROR,\n  // enforce using character class range\n  'regexp/prefer-range': [ERROR, { target: 'alphanumeric' }],\n  // enforce that `RegExp#exec` is used instead of `String#match` if no global flag is provided\n  'regexp/prefer-regexp-exec': ERROR,\n  //  enforce that `RegExp#test` is used instead of `String#match` and `RegExp#exec`\n  'regexp/prefer-regexp-test': ERROR,\n  // enforce using result array `.groups``\n  'regexp/prefer-result-array-groups': ERROR,\n  // enforce using `*` quantifier\n  'regexp/prefer-star-quantifier': ERROR,\n  // enforce use of unicode codepoint escapes\n  'regexp/prefer-unicode-codepoint-escapes': ERROR,\n  // enforce using `\\w`\n  'regexp/prefer-w': ERROR,\n  // aims to optimize patterns by simplifying set operations in character classes (with v flag)\n  'regexp/simplify-set-operations': ERROR,\n  // sort alternatives if order doesn't matter\n  'regexp/sort-alternatives': ERROR,\n  // enforces elements order in character class\n  'regexp/sort-character-class-elements': ERROR,\n  // require regex flags to be sorted\n  'regexp/sort-flags': ERROR,\n  // disallow not strictly valid regular expressions\n  'regexp/strict': ERROR,\n  // enforce consistent usage of unicode escape or unicode codepoint escape\n  'regexp/unicode-escape': ERROR,\n  // use the `i` flag if it simplifies the pattern\n  'regexp/use-ignore-case': ERROR,\n  // ReDoS vulnerability check\n  'redos/no-vulnerable': [ERROR, { timeout: 1e3 }],\n\n  // disallow function declarations in if statement clauses without using blocks\n  'es/no-function-declarations-in-if-statement-clauses-without-block': ERROR,\n  // disallow initializers in for-in heads\n  'es/no-initializers-in-for-in': ERROR,\n  // disallow \\u2028 and \\u2029 in string literals\n  'es/no-json-superset': ERROR,\n  // disallow labelled function declarations\n  'es/no-labelled-function-declarations': ERROR,\n  // disallow the `RegExp.prototype.compile` method\n  'es/no-regexp-prototype-compile': ERROR,\n\n  // eslint-comments:\n  // disallow duplicate `eslint-disable` comments\n  'eslint-comments/no-duplicate-disable': ERROR,\n  // disallow `eslint-disable` comments without rule names\n  'eslint-comments/no-unlimited-disable': ERROR,\n  // disallow unused `eslint-enable` comments\n  'eslint-comments/no-unused-enable': ERROR,\n  // require include descriptions in eslint directive-comments\n  'eslint-comments/require-description': ERROR,\n\n  // suggest better alternatives to some dependencies\n  'depend/ban-dependencies': [ERROR, { allowed: [\n    'mkdirp', // TODO: drop from `core-js@4`\n  ] }],\n};\n\nconst noAsyncAwait = {\n  // prefer `async` / `await` to the callback pattern\n  'promise/prefer-await-to-callbacks': OFF,\n  // prefer `await` to `then()` / `catch()` / `finally()` for reading `Promise` values\n  'promise/prefer-await-to-then': OFF,\n};\n\nconst useES3Syntax = {\n  ...noAsyncAwait,\n  // encourages use of dot notation whenever possible\n  'dot-notation': [ERROR, { allowKeywords: false }],\n  // disallow logical assignment operator shorthand\n  'logical-assignment-operators': [ERROR, NEVER],\n  // disallow function or variable declarations in nested blocks\n  'no-inner-declarations': ERROR,\n  // disallow specified syntax\n  'no-restricted-syntax': OFF,\n  // require let or const instead of var\n  'no-var': OFF,\n  // require or disallow method and property shorthand syntax for object literals\n  'object-shorthand': OFF,\n  // require using arrow functions for callbacks\n  'prefer-arrow-callback': OFF,\n  // require const declarations for variables that are never reassigned after declared\n  'prefer-const': OFF,\n  // require destructuring from arrays and/or objects\n  'prefer-destructuring': OFF,\n  // prefer the exponentiation operator over `Math.pow()`\n  'prefer-exponentiation-operator': OFF,\n  // require rest parameters instead of `arguments`\n  'prefer-rest-params': OFF,\n  // require spread operators instead of `.apply()`\n  'prefer-spread': OFF,\n  // require template literals instead of string concatenation\n  'prefer-template': OFF,\n  // disallow trailing commas in multiline object literals\n  '@stylistic/comma-dangle': [ERROR, NEVER],\n  // require or disallow use of quotes around object literal property names\n  '@stylistic/quote-props': [ERROR, 'as-needed', { keywords: true }],\n  // enforce the use of exponentiation (`**`) operator instead of other calculations\n  'math/prefer-exponentiation-operator': OFF,\n  // prefer lookarounds over capturing group that do not replace\n  'regexp/prefer-lookaround': [ERROR, { lookbehind: false, strictTypes: true }],\n  // enforce using named capture group in regular expression\n  'regexp/prefer-named-capture-group': OFF,\n  // prefer class field declarations over this assignments in constructors\n  'unicorn/prefer-class-fields': OFF,\n  // prefer default parameters over reassignment\n  'unicorn/prefer-default-parameters': OFF,\n  // prefer using a logical operator over a ternary\n  'unicorn/prefer-logical-operator-over-ternary': OFF,\n  // prefer omitting the `catch` binding parameter\n  'unicorn/prefer-optional-catch-binding': OFF,\n};\n\nconst forbidNonStandardBuiltIns = {\n  // disallow non-standard built-in methods\n  'es/no-nonstandard-array-properties': ERROR,\n  'es/no-nonstandard-array-prototype-properties': ERROR,\n  'es/no-nonstandard-arraybuffer-properties': ERROR,\n  'es/no-nonstandard-arraybuffer-prototype-properties': ERROR,\n  'es/no-nonstandard-asyncdisposablestack-properties': ERROR,\n  'es/no-nonstandard-asyncdisposablestack-prototype-properties': ERROR,\n  'es/no-nonstandard-atomics-properties': ERROR,\n  'es/no-nonstandard-bigint-properties': ERROR,\n  'es/no-nonstandard-bigint-prototype-properties': ERROR,\n  'es/no-nonstandard-boolean-properties': ERROR,\n  'es/no-nonstandard-boolean-prototype-properties': ERROR,\n  'es/no-nonstandard-dataview-properties': ERROR,\n  'es/no-nonstandard-dataview-prototype-properties': ERROR,\n  'es/no-nonstandard-date-properties': ERROR,\n  'es/no-nonstandard-date-prototype-properties': ERROR,\n  'es/no-nonstandard-disposablestack-properties': ERROR,\n  'es/no-nonstandard-disposablestack-prototype-properties': ERROR,\n  'es/no-nonstandard-error-properties': ERROR,\n  'es/no-nonstandard-finalizationregistry-properties': ERROR,\n  'es/no-nonstandard-finalizationregistry-prototype-properties': ERROR,\n  'es/no-nonstandard-function-properties': ERROR,\n  'es/no-nonstandard-intl-collator-properties': ERROR,\n  'es/no-nonstandard-intl-collator-prototype-properties': ERROR,\n  'es/no-nonstandard-intl-datetimeformat-properties': ERROR,\n  'es/no-nonstandard-intl-datetimeformat-prototype-properties': ERROR,\n  'es/no-nonstandard-intl-displaynames-properties': ERROR,\n  'es/no-nonstandard-intl-displaynames-prototype-properties': ERROR,\n  'es/no-nonstandard-intl-listformat-properties': ERROR,\n  'es/no-nonstandard-intl-listformat-prototype-properties': ERROR,\n  'es/no-nonstandard-intl-locale-properties': ERROR,\n  'es/no-nonstandard-intl-locale-prototype-properties': ERROR,\n  'es/no-nonstandard-intl-numberformat-properties': ERROR,\n  'es/no-nonstandard-intl-numberformat-prototype-properties': ERROR,\n  'es/no-nonstandard-intl-pluralrules-properties': ERROR,\n  'es/no-nonstandard-intl-pluralrules-prototype-properties': ERROR,\n  'es/no-nonstandard-intl-properties': ERROR,\n  'es/no-nonstandard-intl-relativetimeformat-properties': ERROR,\n  'es/no-nonstandard-intl-relativetimeformat-prototype-properties': ERROR,\n  'es/no-nonstandard-intl-segmenter-properties': ERROR,\n  'es/no-nonstandard-intl-segmenter-prototype-properties': ERROR,\n  'es/no-nonstandard-iterator-properties': ERROR,\n  'es/no-nonstandard-iterator-prototype-properties': ERROR,\n  'es/no-nonstandard-json-properties': ERROR,\n  'es/no-nonstandard-map-properties': ERROR,\n  'es/no-nonstandard-map-prototype-properties': ERROR,\n  'es/no-nonstandard-math-properties': ERROR,\n  'es/no-nonstandard-number-properties': ERROR,\n  'es/no-nonstandard-number-prototype-properties': ERROR,\n  'es/no-nonstandard-object-properties': ERROR,\n  'es/no-nonstandard-promise-properties': ERROR,\n  'es/no-nonstandard-promise-prototype-properties': ERROR,\n  'es/no-nonstandard-proxy-properties': ERROR,\n  'es/no-nonstandard-reflect-properties': ERROR,\n  'es/no-nonstandard-regexp-properties': ERROR,\n  'es/no-nonstandard-regexp-prototype-properties': ERROR,\n  'es/no-nonstandard-set-properties': ERROR,\n  'es/no-nonstandard-set-prototype-properties': ERROR,\n  'es/no-nonstandard-sharedarraybuffer-properties': ERROR,\n  'es/no-nonstandard-sharedarraybuffer-prototype-properties': ERROR,\n  'es/no-nonstandard-string-properties': ERROR,\n  'es/no-nonstandard-string-prototype-properties': ERROR,\n  'es/no-nonstandard-symbol-properties': [ERROR, { allow: [\n    'sham', // non-standard flag\n  ] }],\n  'es/no-nonstandard-symbol-prototype-properties': ERROR,\n  'es/no-nonstandard-typed-array-properties': ERROR,\n  'es/no-nonstandard-typed-array-prototype-properties': ERROR,\n  'es/no-nonstandard-weakmap-properties': ERROR,\n  'es/no-nonstandard-weakmap-prototype-properties': ERROR,\n  'es/no-nonstandard-weakref-properties': ERROR,\n  'es/no-nonstandard-weakref-prototype-properties': ERROR,\n  'es/no-nonstandard-weakset-properties': ERROR,\n  'es/no-nonstandard-weakset-prototype-properties': ERROR,\n};\n\nconst forbidCompletelyNonExistentBuiltIns = {\n  ...forbidNonStandardBuiltIns,\n  // disallow non-standard built-in methods\n  'es/no-nonstandard-array-properties': [ERROR, { allow: [\n    'isTemplateObject',\n  ] }],\n  'es/no-nonstandard-array-prototype-properties': [ERROR, { allow: [\n    'filterReject',\n    'uniqueBy',\n    // TODO: drop from `core-js@4`\n    'filterOut',\n    'group',\n    'groupBy',\n    'groupByToMap',\n    'groupToMap',\n    'lastIndex',\n    'lastItem',\n  ] }],\n  'es/no-nonstandard-bigint-properties': [ERROR, { allow: [\n    // TODO: drop from `core-js@4`\n    'range',\n  ] }],\n  'es/no-nonstandard-dataview-prototype-properties': [ERROR, { allow: [\n    'getUint8Clamped',\n    'setUint8Clamped',\n  ] }],\n  'es/no-nonstandard-function-properties': [ERROR, { allow: [\n    'isCallable',\n    'isConstructor',\n  ] }],\n  'es/no-nonstandard-iterator-properties': [ERROR, { allow: [\n    'range',\n    'zip',\n    'zipKeyed',\n  ] }],\n  'es/no-nonstandard-iterator-prototype-properties': [ERROR, { allow: [\n    'chunks',\n    'sliding',\n    'toAsync',\n    'windows',\n    // TODO: drop from `core-js@4`\n    'asIndexedPairs',\n    'indexed',\n  ] }],\n  'es/no-nonstandard-map-properties': [ERROR, { allow: [\n    'from',\n    'of',\n    // TODO: drop from `core-js@4`\n    'keyBy',\n  ] }],\n  'es/no-nonstandard-map-prototype-properties': [ERROR, { allow: [\n    // TODO: drop from `core-js@4`\n    'deleteAll',\n    'emplace',\n    'every',\n    'filter',\n    'find',\n    'findKey',\n    'includes',\n    'keyOf',\n    'mapKeys',\n    'mapValues',\n    'merge',\n    'reduce',\n    'some',\n    'update',\n    'updateOrInsert',\n    'upsert',\n  ] }],\n  'es/no-nonstandard-math-properties': [ERROR, { allow: [\n    // TODO: drop from `core-js@4`\n    'DEG_PER_RAD',\n    'RAD_PER_DEG',\n    'clamp',\n    'degrees',\n    'fscale',\n    'iaddh',\n    'imulh',\n    'isubh',\n    'radians',\n    'scale',\n    'seededPRNG',\n    'signbit',\n    'umulh',\n  ] }],\n  'es/no-nonstandard-number-properties': [ERROR, { allow: [\n    // TODO: drop from `core-js@4`\n    'fromString',\n    'range',\n  ] }],\n  'es/no-nonstandard-number-prototype-properties': [ERROR, { allow: [\n    'clamp',\n  ] }],\n  'es/no-nonstandard-object-properties': [ERROR, { allow: [\n    // TODO: drop from `core-js@4`\n    'iterateEntries',\n    'iterateKeys',\n    'iterateValues',\n  ] }],\n  'es/no-nonstandard-reflect-properties': [ERROR, { allow: [\n    // TODO: drop from `core-js@4`\n    'defineMetadata',\n    'deleteMetadata',\n    'getMetadata',\n    'getMetadataKeys',\n    'getOwnMetadata',\n    'getOwnMetadataKeys',\n    'hasMetadata',\n    'hasOwnMetadata',\n    'metadata',\n  ] }],\n  'es/no-nonstandard-set-properties': [ERROR, { allow: [\n    'from',\n    'of',\n  ] }],\n  'es/no-nonstandard-set-prototype-properties': [ERROR, { allow: [\n    // TODO: drop from `core-js@4`\n    'addAll',\n    'deleteAll',\n    'every',\n    'filter',\n    'find',\n    'join',\n    'map',\n    'reduce',\n    'some',\n  ] }],\n  'es/no-nonstandard-string-properties': [ERROR, { allow: [\n    'cooked',\n    'dedent',\n  ] }],\n  'es/no-nonstandard-string-prototype-properties': [ERROR, { allow: [\n    // TODO: drop from `core-js@4`\n    'codePoints',\n  ] }],\n  'es/no-nonstandard-symbol-properties': [ERROR, { allow: [\n    'customMatcher',\n    'isRegisteredSymbol',\n    'isWellKnownSymbol',\n    'metadata',\n    'sham', // non-standard flag\n    // TODO: drop from `core-js@4`\n    'isRegistered',\n    'isWellKnown',\n    'matcher',\n    'metadataKey',\n    'observable',\n    'patternMatch',\n    'replaceAll',\n    'useSetter',\n    'useSimple',\n  ] }],\n  'es/no-nonstandard-typed-array-properties': [ERROR, { allow: [\n    // TODO: drop from `core-js@4`\n    'fromAsync',\n  ] }],\n  'es/no-nonstandard-typed-array-prototype-properties': [ERROR, { allow: [\n    'filterReject',\n    'uniqueBy',\n    // TODO: drop from `core-js@4`\n    'filterOut',\n    'groupBy',\n  ] }],\n  'es/no-nonstandard-weakmap-properties': [ERROR, { allow: [\n    'from',\n    'of',\n  ] }],\n  'es/no-nonstandard-weakmap-prototype-properties': [ERROR, { allow: [\n    // TODO: drop from `core-js@4`\n    'deleteAll',\n    'emplace',\n    'upsert',\n  ] }],\n  'es/no-nonstandard-weakset-properties': [ERROR, { allow: [\n    'from',\n    'of',\n  ] }],\n  'es/no-nonstandard-weakset-prototype-properties': [ERROR, { allow: [\n    // TODO: drop from `core-js@4`\n    'addAll',\n    'deleteAll',\n  ] }],\n};\n\nconst forbidESAnnexBBuiltIns = {\n  'es/no-date-prototype-getyear-setyear': ERROR,\n  'es/no-date-prototype-togmtstring': ERROR,\n  'es/no-escape-unescape': ERROR,\n  'es/no-legacy-object-prototype-accessor-methods': ERROR,\n  'es/no-string-create-html-methods': ERROR,\n  'es/no-string-prototype-trimleft-trimright': ERROR,\n  // prefer `String#slice` over `String#{ substr, substring }`\n  'unicorn/prefer-string-slice': ERROR,\n};\n\nconst forbidES5BuiltIns = {\n  'es/no-array-isarray': ERROR,\n  'es/no-array-prototype-every': ERROR,\n  'es/no-array-prototype-filter': ERROR,\n  'es/no-array-prototype-foreach': ERROR,\n  'es/no-array-prototype-indexof': ERROR,\n  'es/no-array-prototype-lastindexof': ERROR,\n  'es/no-array-prototype-map': ERROR,\n  'es/no-array-prototype-reduce': ERROR,\n  'es/no-array-prototype-reduceright': ERROR,\n  'es/no-array-prototype-some': ERROR,\n  'es/no-date-now': ERROR,\n  'es/no-function-prototype-bind': ERROR,\n  'es/no-json': ERROR,\n  'es/no-object-create': ERROR,\n  'es/no-object-defineproperties': ERROR,\n  'es/no-object-defineproperty': ERROR,\n  'es/no-object-freeze': ERROR,\n  'es/no-object-getownpropertydescriptor': ERROR,\n  'es/no-object-getownpropertynames': ERROR,\n  'es/no-object-getprototypeof': ERROR,\n  'es/no-object-isextensible': ERROR,\n  'es/no-object-isfrozen': ERROR,\n  'es/no-object-issealed': ERROR,\n  'es/no-object-keys': ERROR,\n  'es/no-object-preventextensions': ERROR,\n  'es/no-object-seal': ERROR,\n  'es/no-string-prototype-trim': ERROR,\n  // prefer `Date.now()` to get the number of milliseconds since the Unix Epoch\n  'unicorn/prefer-date-now': OFF,\n  // prefer `globalThis` over `window`, `self`, and `global`\n  'unicorn/prefer-global-this': OFF,\n};\n\nconst forbidES2015BuiltIns = {\n  'es/no-array-from': ERROR,\n  'es/no-array-of': ERROR,\n  'es/no-array-prototype-copywithin': ERROR,\n  'es/no-array-prototype-entries': ERROR,\n  'es/no-array-prototype-fill': ERROR,\n  'es/no-array-prototype-find': ERROR,\n  'es/no-array-prototype-findindex': ERROR,\n  'es/no-array-prototype-keys': ERROR,\n  'es/no-array-prototype-values': ERROR,\n  'es/no-map': ERROR,\n  'es/no-math-acosh': ERROR,\n  'es/no-math-asinh': ERROR,\n  'es/no-math-atanh': ERROR,\n  'es/no-math-cbrt': ERROR,\n  'es/no-math-clz32': ERROR,\n  'es/no-math-cosh': ERROR,\n  'es/no-math-expm1': ERROR,\n  'es/no-math-fround': ERROR,\n  'es/no-math-hypot': ERROR,\n  'es/no-math-imul': ERROR,\n  'es/no-math-log10': ERROR,\n  'es/no-math-log1p': ERROR,\n  'es/no-math-log2': ERROR,\n  'es/no-math-sign': ERROR,\n  'es/no-math-sinh': ERROR,\n  'es/no-math-tanh': ERROR,\n  'es/no-math-trunc': ERROR,\n  'es/no-number-epsilon': ERROR,\n  'es/no-number-isfinite': ERROR,\n  'es/no-number-isinteger': ERROR,\n  'es/no-number-isnan': ERROR,\n  'es/no-number-issafeinteger': ERROR,\n  'es/no-number-maxsafeinteger': ERROR,\n  'es/no-number-minsafeinteger': ERROR,\n  'es/no-number-parsefloat': ERROR,\n  'es/no-number-parseint': ERROR,\n  'es/no-object-assign': ERROR,\n  'es/no-object-getownpropertysymbols': ERROR,\n  'es/no-object-is': ERROR,\n  'es/no-object-setprototypeof': ERROR,\n  'es/no-promise': ERROR,\n  'es/no-proxy': ERROR,\n  'es/no-reflect': ERROR,\n  'es/no-regexp-prototype-flags': ERROR,\n  'es/no-set': ERROR,\n  'es/no-string-fromcodepoint': ERROR,\n  'es/no-string-prototype-codepointat': ERROR,\n  'es/no-string-prototype-endswith': ERROR,\n  'es/no-string-prototype-includes': ERROR,\n  'es/no-string-prototype-normalize': ERROR,\n  'es/no-string-prototype-repeat': ERROR,\n  'es/no-string-prototype-startswith': ERROR,\n  'es/no-string-raw': ERROR,\n  'es/no-symbol': ERROR,\n  'es/no-typed-arrays': ERROR,\n  'es/no-weak-map': ERROR,\n  'es/no-weak-set': ERROR,\n  // enforce the use of `Math.cbrt()` instead of other cube root calculations\n  'math/prefer-math-cbrt': OFF,\n  // enforce the use of `Math.hypot()` instead of other hypotenuse calculations\n  'math/prefer-math-hypot': OFF,\n  // enforce the use of `Math.log10` instead of other ways\n  'math/prefer-math-log10': OFF,\n  // enforce the use of `Math.log2` instead of other ways\n  'math/prefer-math-log2': OFF,\n  // enforce the use of `Math.trunc()` instead of other truncations\n  'math/prefer-math-trunc': OFF,\n  // enforce the use of `Number.EPSILON` instead of other ways\n  'math/prefer-number-epsilon': OFF,\n  // enforce the use of `Number.isFinite()` instead of other checking ways\n  'math/prefer-number-is-finite': OFF,\n  // enforce the use of `Number.isInteger()` instead of other checking ways\n  'math/prefer-number-is-integer': OFF,\n  // enforce the use of `Number.isNaN()` instead of other checking ways\n  'math/prefer-number-is-nan': OFF,\n  // enforce the use of `Number.isSafeInteger()` instead of other checking ways\n  'math/prefer-number-is-safe-integer': OFF,\n  // enforce the use of `Number.MAX_SAFE_INTEGER` instead of other ways\n  'math/prefer-number-max-safe-integer': OFF,\n  // enforce the use of `Number.MIN_SAFE_INTEGER` instead of other ways\n  'math/prefer-number-min-safe-integer': OFF,\n  // prefer modern `Math` APIs over legacy patterns\n  'unicorn/prefer-modern-math-apis': OFF,\n  // prefer `String#{ startsWith, endsWith }()` over `RegExp#test()`\n  'unicorn/prefer-string-starts-ends-with': OFF,\n};\n\nconst forbidES2016BuiltIns = {\n  'es/no-array-prototype-includes': ERROR,\n  // prefer `.includes()` over `.indexOf()` and `Array#some()` when checking for existence or non-existence\n  'unicorn/prefer-includes': OFF,\n};\n\nconst forbidES2017BuiltIns = {\n  'es/no-atomics': ERROR,\n  'es/no-object-entries': ERROR,\n  'es/no-object-getownpropertydescriptors': ERROR,\n  'es/no-object-values': ERROR,\n  'es/no-shared-array-buffer': ERROR,\n  'es/no-string-prototype-padstart-padend': ERROR,\n};\n\nconst forbidES2018BuiltIns = {\n  'es/no-promise-prototype-finally': ERROR,\n};\n\nconst forbidES2019BuiltIns = {\n  'es/no-array-prototype-flat': ERROR,\n  'es/no-object-fromentries': ERROR,\n  'es/no-string-prototype-trimstart-trimend': ERROR,\n  'es/no-symbol-prototype-description': ERROR,\n  // use `.flat()` to flatten an array of arrays\n  'unicorn/prefer-array-flat': OFF,\n  // prefer using `Object.fromEntries()` to transform a list of key-value pairs into an object\n  'unicorn/prefer-object-from-entries': OFF,\n  // prefer `String#{ trimStart, trimEnd }()` over `String#{ trimLeft, trimRight }()`\n  'unicorn/prefer-string-trim-start-end': OFF,\n};\n\nconst forbidES2020BuiltIns = {\n  'es/no-bigint': ERROR,\n  'es/no-global-this': ERROR,\n  'es/no-promise-all-settled': ERROR,\n  'es/no-regexp-unicode-property-escapes-2020': ERROR,\n  'es/no-string-prototype-matchall': ERROR,\n  'es/no-symbol-matchall': ERROR,\n  // prefer `BigInt` literals over the constructor\n  'unicorn/prefer-bigint-literals': OFF,\n};\n\nconst forbidES2021BuiltIns = {\n  'es/no-promise-any': ERROR,\n  'es/no-regexp-unicode-property-escapes-2021': ERROR,\n  'es/no-string-prototype-replaceall': ERROR,\n  'es/no-weakrefs': ERROR,\n  // prefer `String#replaceAll()` over regex searches with the global flag\n  'unicorn/prefer-string-replace-all': OFF,\n};\n\nconst forbidES2022BuiltIns = {\n  // prefer `Object.hasOwn`\n  'prefer-object-has-own': OFF,\n  'es/no-array-prototype-at': ERROR,\n  'es/no-error-cause': ERROR,\n  'es/no-object-hasown': ERROR,\n  'es/no-regexp-d-flag': ERROR,\n  'es/no-regexp-unicode-property-escapes-2022': ERROR,\n  'es/no-string-prototype-at': ERROR,\n  // prefer `.at()` method for index access and `String#charAt()`\n  'unicorn/prefer-at': OFF,\n};\n\nconst forbidES2023BuiltIns = {\n  'es/no-array-prototype-findlast-findlastindex': ERROR,\n  'es/no-array-prototype-toreversed': ERROR,\n  'es/no-array-prototype-tosorted': ERROR,\n  'es/no-array-prototype-tospliced': ERROR,\n  'es/no-array-prototype-with': ERROR,\n  'es/no-regexp-unicode-property-escapes-2023': ERROR,\n  // prefer `Array#toReversed()` over `Array#reverse()`\n  'unicorn/no-array-reverse': OFF,\n};\n\nconst forbidES2024BuiltIns = {\n  'es/no-arraybuffer-prototype-transfer': ERROR,\n  'es/no-atomics-waitasync': ERROR,\n  'es/no-map-groupby': ERROR,\n  'es/no-object-groupby': ERROR,\n  'es/no-promise-withresolvers': ERROR,\n  'es/no-regexp-v-flag': ERROR,\n  'es/no-resizable-and-growable-arraybuffers': ERROR,\n  'es/no-string-prototype-iswellformed': ERROR,\n  'es/no-string-prototype-towellformed': ERROR,\n};\n\nconst forbidES2025BuiltIns = {\n  'es/no-dataview-prototype-getfloat16-setfloat16': ERROR,\n  'es/no-float16array': ERROR,\n  'es/no-iterator': ERROR,\n  'es/no-iterator-prototype-drop': ERROR,\n  'es/no-iterator-prototype-every': ERROR,\n  'es/no-iterator-prototype-filter': ERROR,\n  'es/no-iterator-prototype-find': ERROR,\n  'es/no-iterator-prototype-flatmap': ERROR,\n  'es/no-iterator-prototype-foreach': ERROR,\n  'es/no-iterator-prototype-map': ERROR,\n  'es/no-iterator-prototype-reduce': ERROR,\n  'es/no-iterator-prototype-some': ERROR,\n  'es/no-iterator-prototype-take': ERROR,\n  'es/no-iterator-prototype-toarray': ERROR,\n  'es/no-math-f16round': ERROR,\n  'es/no-promise-try': ERROR,\n  'es/no-set-prototype-difference': ERROR,\n  'es/no-set-prototype-intersection': ERROR,\n  'es/no-set-prototype-isdisjointfrom': ERROR,\n  'es/no-set-prototype-issubsetof': ERROR,\n  'es/no-set-prototype-issupersetof': ERROR,\n  'es/no-set-prototype-symmetricdifference': ERROR,\n  'es/no-set-prototype-union': ERROR,\n};\n\nconst forbidES2026BuiltIns = {\n  'es/no-array-fromasync': ERROR,\n  'es/no-asyncdisposablestack': ERROR,\n  'es/no-error-iserror': ERROR,\n  'es/no-iterator-concat': ERROR,\n  'es/no-json-israwjson': ERROR,\n  'es/no-json-parse-reviver-context-parameter': ERROR,\n  'es/no-json-rawjson': ERROR,\n  'es/no-map-prototype-getorinsert': ERROR,\n  'es/no-map-prototype-getorinsertcomputed': ERROR,\n  'es/no-math-sumprecise': ERROR,\n  'es/no-suppressederror': ERROR,\n  'es/no-symbol-asyncdispose': ERROR,\n  'es/no-symbol-dispose': ERROR,\n  'es/no-uint8array-frombase64': ERROR,\n  'es/no-uint8array-fromhex': ERROR,\n  'es/no-uint8array-prototype-setfrombase64': ERROR,\n  'es/no-uint8array-prototype-setfromhex': ERROR,\n  'es/no-uint8array-prototype-tobase64': ERROR,\n  'es/no-uint8array-prototype-tohex': ERROR,\n  'es/no-weakmap-prototype-getorinsert': ERROR,\n  'es/no-weakmap-prototype-getorinsertcomputed': ERROR,\n  // enforce the use of `Math.sumPrecise` instead of other summation methods\n  'math/prefer-math-sum-precise': OFF,\n};\n\nconst forbidES2016IntlBuiltIns = {\n  'es/no-intl-getcanonicallocales': ERROR,\n};\n\nconst forbidES2017IntlBuiltIns = {\n  'es/no-intl-datetimeformat-prototype-formattoparts': ERROR,\n};\n\nconst forbidES2018IntlBuiltIns = {\n  'es/no-intl-numberformat-prototype-formattoparts': ERROR,\n  'es/no-intl-pluralrules': ERROR,\n};\n\nconst forbidES2020IntlBuiltIns = {\n  'es/no-intl-locale': ERROR,\n  'es/no-intl-relativetimeformat': ERROR,\n};\n\nconst forbidES2021IntlBuiltIns = {\n  'es/no-intl-datetimeformat-prototype-formatrange': ERROR,\n  'es/no-intl-displaynames': ERROR,\n  'es/no-intl-listformat': ERROR,\n};\n\nconst forbidES2022IntlBuiltIns = {\n  'es/no-intl-segmenter': ERROR,\n  'es/no-intl-supportedvaluesof': ERROR,\n};\n\nconst forbidES2023IntlBuiltIns = {\n  'es/no-intl-numberformat-prototype-formatrange': ERROR,\n  'es/no-intl-numberformat-prototype-formatrangetoparts': ERROR,\n  'es/no-intl-pluralrules-prototype-selectrange': ERROR,\n};\n\nconst forbidES2025IntlBuiltIns = {\n  'es/no-intl-durationformat': ERROR,\n};\n\nconst forbidES2026IntlBuiltIns = {\n  'es/no-intl-locale-prototype-firstdayofweek': ERROR,\n  'es/no-intl-locale-prototype-getcalendars': ERROR,\n  'es/no-intl-locale-prototype-getcollations': ERROR,\n  'es/no-intl-locale-prototype-gethourcycles': ERROR,\n  'es/no-intl-locale-prototype-getnumberingsystems': ERROR,\n  'es/no-intl-locale-prototype-gettextinfo': ERROR,\n  'es/no-intl-locale-prototype-gettimezones': ERROR,\n  'es/no-intl-locale-prototype-getweekinfo': ERROR,\n};\n\nconst forbidSomeES2025Syntax = {\n  'es/no-regexp-duplicate-named-capturing-groups': ERROR,\n  'es/no-regexp-modifiers': ERROR,\n  'es/no-import-attributes': ERROR,\n  'es/no-dynamic-import-options': ERROR,\n  'es/no-trailing-dynamic-import-commas': ERROR,\n  'es/no-json-modules': ERROR,\n};\n\nconst forbidModernBuiltIns = {\n  ...forbidESAnnexBBuiltIns,\n  ...forbidES5BuiltIns,\n  ...forbidES2015BuiltIns,\n  ...forbidES2016BuiltIns,\n  ...forbidES2017BuiltIns,\n  ...forbidES2018BuiltIns,\n  ...forbidES2019BuiltIns,\n  ...forbidES2020BuiltIns,\n  ...forbidES2021BuiltIns,\n  ...forbidES2022BuiltIns,\n  ...forbidES2023BuiltIns,\n  ...forbidES2024BuiltIns,\n  ...forbidES2025BuiltIns,\n  ...forbidES2026BuiltIns,\n  ...forbidES2016IntlBuiltIns,\n  ...forbidES2017IntlBuiltIns,\n  ...forbidES2018IntlBuiltIns,\n  ...forbidES2020IntlBuiltIns,\n  ...forbidES2021IntlBuiltIns,\n  ...forbidES2022IntlBuiltIns,\n  ...forbidES2023IntlBuiltIns,\n  ...forbidES2025IntlBuiltIns,\n  ...forbidES2026IntlBuiltIns,\n  // prefer using `structuredClone` to create a deep clone\n  'unicorn/prefer-structured-clone': OFF,\n};\n\nconst polyfills = {\n  // prefer `node:` protocol\n  'node/prefer-node-protocol': OFF,\n  // enforces the use of `catch()` on un-returned promises\n  'promise/catch-or-return': OFF,\n  // avoid nested `then()` or `catch()` statements\n  'promise/no-nesting': OFF,\n  // prefer catch to `then(a, b)` / `then(null, b)` for handling errors\n  'promise/prefer-catch': OFF,\n  // prefer `RegExp#test()` over `String#match()` and `RegExp#exec()`\n  // use `RegExp#exec()` since it does not have implicit calls under the hood\n  'regexp/prefer-regexp-test': OFF,\n  // shorthand promises should be used\n  'sonarjs/prefer-promise-shorthand': OFF,\n  // disallow `instanceof` with built-in objects\n  'unicorn/no-instanceof-builtins': OFF,\n};\n\nconst transpiledAndPolyfilled = {\n  ...noAsyncAwait,\n  // disallow accessor properties\n  'es/no-accessor-properties': ERROR,\n  // disallow async functions\n  'es/no-async-functions': ERROR,\n  // disallow async iteration\n  'es/no-async-iteration': ERROR,\n  // disallow top-level `await`\n  'es/no-top-level-await': ERROR,\n  // unpolyfillable es2015 builtins\n  'es/no-proxy': ERROR,\n  // disallow duplicate named capture groups\n  'es/no-regexp-duplicate-named-capturing-groups': OFF,\n  'es/no-string-prototype-normalize': ERROR,\n  // unpolyfillable es2017 builtins\n  'es/no-atomics': ERROR,\n  'es/no-shared-array-buffer': ERROR,\n  // unpolyfillable es2020 builtins\n  'es/no-bigint': ERROR,\n  // unpolyfillable es2021 builtins\n  'es/no-weakrefs': ERROR,\n  // prefer lookarounds over capturing group that do not replace\n  'regexp/prefer-lookaround': [ERROR, { lookbehind: false, strictTypes: true }],\n  // enforce using named capture group in regular expression\n  'regexp/prefer-named-capture-group': OFF,\n  // prefer `BigInt` literals over the constructor\n  'unicorn/prefer-bigint-literals': OFF,\n  ...forbidSomeES2025Syntax,\n  ...forbidCompletelyNonExistentBuiltIns,\n};\n\nconst nodePackages = {\n  // disallow logical assignment operator shorthand\n  'logical-assignment-operators': [ERROR, NEVER],\n  // disallow unsupported ECMAScript built-ins on the specified version\n  'node/no-unsupported-features/node-builtins': [ERROR, { version: PACKAGES_NODE_VERSIONS, allowExperimental: false }],\n  // prefer `node:` protocol\n  'node/prefer-node-protocol': OFF,\n  // prefer promises\n  'node/prefer-promises/dns': OFF,\n  'node/prefer-promises/fs': OFF,\n  // prefer lookarounds over capturing group that do not replace\n  'regexp/prefer-lookaround': [ERROR, { lookbehind: false, strictTypes: true }],\n  // enforce using named capture group in regular expression\n  'regexp/prefer-named-capture-group': OFF,\n  // prefer class field declarations over this assignments in constructors\n  'unicorn/prefer-class-fields': OFF,\n  // prefer using a logical operator over a ternary\n  'unicorn/prefer-logical-operator-over-ternary': OFF,\n  // prefer using the `node:` protocol when importing Node builtin modules\n  'unicorn/prefer-node-protocol': OFF,\n  // prefer omitting the `catch` binding parameter\n  'unicorn/prefer-optional-catch-binding': OFF,\n  // prefer using `structuredClone` to create a deep clone\n  'unicorn/prefer-structured-clone': OFF,\n  ...disable(forbidES5BuiltIns),\n  ...disable(forbidES2015BuiltIns),\n  ...disable(forbidES2016BuiltIns),\n  ...disable(forbidES2017BuiltIns),\n  'es/no-atomics': ERROR,\n  'es/no-shared-array-buffer': ERROR,\n  // disallow top-level `await`\n  'es/no-top-level-await': ERROR,\n  ...forbidES2018BuiltIns,\n  ...forbidES2019BuiltIns,\n  ...forbidES2020BuiltIns,\n  ...forbidES2021BuiltIns,\n  ...forbidES2022BuiltIns,\n  ...forbidES2023BuiltIns,\n  ...forbidES2024BuiltIns,\n  ...forbidES2025BuiltIns,\n  ...forbidES2026BuiltIns,\n  ...disable(forbidES2016IntlBuiltIns),\n  ...disable(forbidES2017IntlBuiltIns),\n  ...forbidES2018IntlBuiltIns,\n  ...forbidES2020IntlBuiltIns,\n  ...forbidES2021IntlBuiltIns,\n  ...forbidES2022IntlBuiltIns,\n  ...forbidES2023IntlBuiltIns,\n  ...forbidES2025IntlBuiltIns,\n  ...forbidES2026IntlBuiltIns,\n  ...forbidSomeES2025Syntax,\n};\n\nconst nodeDev = {\n  // disallow unsupported ECMAScript built-ins on the specified version\n  'node/no-unsupported-features/node-builtins': [ERROR, { version: DEV_NODE_VERSIONS, ignores: ['fetch'], allowExperimental: false }],\n  ...disable(forbidModernBuiltIns),\n  ...forbidES2024BuiltIns,\n  'es/no-regexp-v-flag': OFF,\n  'es/no-string-prototype-iswellformed': OFF,\n  'es/no-string-prototype-towellformed': OFF,\n  ...forbidES2025BuiltIns,\n  ...forbidES2026BuiltIns,\n  ...forbidES2025IntlBuiltIns,\n  ...forbidES2026IntlBuiltIns,\n  // ReDoS vulnerability check\n  'redos/no-vulnerable': OFF,\n  // prefer top-level await\n  'unicorn/prefer-top-level-await': ERROR,\n  ...forbidSomeES2025Syntax,\n};\n\nconst tests = {\n  // relax for testing:\n  // enforces return statements in callbacks of array's methods\n  'array-callback-return': OFF,\n  // specify the maximum number of statement allowed in a function\n  'max-statements': OFF,\n  // disallow function declarations and expressions inside loop statements\n  'no-loop-func': OFF,\n  // disallow use of new operator when not part of the assignment or comparison\n  'no-new': OFF,\n  // disallow use of new operator for Function object\n  'no-new-func': OFF,\n  // disallows creating new instances of String, Number, and Boolean\n  'no-new-wrappers': OFF,\n  // disallow specified syntax\n  'no-restricted-syntax': OFF,\n  // restrict what can be thrown as an exception\n  'no-throw-literal': OFF,\n  // disallow usage of expressions in statement position\n  'no-unused-expressions': OFF,\n  // disallow dangling underscores in identifiers\n  'no-underscore-dangle': [ERROR, { allow: [\n    '__defineGetter__',\n    '__defineSetter__',\n    '__lookupGetter__',\n    '__lookupSetter__',\n  ] }],\n  // disallow unnecessary calls to `.call()` and `.apply()`\n  'no-useless-call': OFF,\n  // specify the maximum length of a line in your program\n  '@stylistic/max-len': [ERROR, { ...base['@stylistic/max-len'][1], code: 180 }],\n  // enforces the use of `catch()` on un-returned promises\n  'promise/catch-or-return': OFF,\n  // prefer catch to `then(a, b)` / `then(null, b)` for handling errors\n  'promise/prefer-catch': OFF,\n  // shorthand promises should be used\n  'sonarjs/prefer-promise-shorthand': OFF,\n  // enforce passing a message value when throwing a built-in error\n  'unicorn/error-message': OFF,\n  // prefer `Array#toReversed()` over `Array#reverse()`\n  'unicorn/no-array-reverse': OFF,\n  // disallow immediate mutation after variable assignment\n  'unicorn/no-immediate-mutation': OFF,\n  // disallow `instanceof` with built-in objects\n  'unicorn/no-instanceof-builtins': OFF,\n  // prefer `.at()` method for index access and `String#charAt()`\n  'unicorn/prefer-at': OFF,\n  // prefer `.includes()` over `.indexOf()` and `Array#some()` when checking for existence or non-existence\n  'unicorn/prefer-includes': OFF,\n  // ReDoS vulnerability check\n  'redos/no-vulnerable': OFF,\n  // allow Annex B methods for testing\n  ...disable(forbidESAnnexBBuiltIns),\n};\n\nconst qunit = {\n  // ensure the correct number of assert arguments is used\n  'qunit/assert-args': ERROR,\n  // enforce comparison assertions have arguments in the right order\n  'qunit/literal-compare-order': ERROR,\n  // forbid the use of `assert.equal`\n  'qunit/no-assert-equal': ERROR,\n  // require use of boolean assertions\n  'qunit/no-assert-equal-boolean': ERROR,\n  // disallow binary logical expressions in assert arguments\n  'qunit/no-assert-logical-expression': ERROR,\n  // forbid async calls in loops\n  'qunit/no-async-in-loops': ERROR,\n  // disallow async module callbacks\n  'qunit/no-async-module-callbacks': ERROR,\n  // forbid the use of `asyncTest`\n  'qunit/no-async-test': ERROR,\n  // forbid commented tests\n  'qunit/no-commented-tests': ERROR,\n  // forbid comparing relational expression to boolean in assertions\n  'qunit/no-compare-relation-boolean': ERROR,\n  // prevent early return in a qunit test\n  'qunit/no-early-return': ERROR,\n  // forbid the use of global qunit assertions\n  'qunit/no-global-assertions': ERROR,\n  // forbid the use of global `expect`\n  'qunit/no-global-expect': ERROR,\n  // forbid the use of global `module` / `test` / `asyncTest`\n  'qunit/no-global-module-test': ERROR,\n  // forbid use of global `stop` / `start`\n  'qunit/no-global-stop-start': ERROR,\n  // disallow the use of hooks from ancestor modules\n  'qunit/no-hooks-from-ancestor-modules': ERROR,\n  // forbid identical test and module names\n  'qunit/no-identical-names': ERROR,\n  // forbid use of `QUnit.init`\n  'qunit/no-init': ERROR,\n  // forbid use of `QUnit.jsDump`\n  'qunit/no-jsdump': ERROR,\n  // disallow the use of `assert.equal` / `assert.ok` / `assert.notEqual` / `assert.notOk``\n  'qunit/no-loose-assertions': ERROR,\n  // forbid `QUnit.test()` calls inside callback of another `QUnit.test`\n  'qunit/no-nested-tests': ERROR,\n  // forbid equality comparisons in `assert.{ ok, notOk }`\n  'qunit/no-ok-equality': ERROR,\n  // disallow `QUnit.only`\n  'qunit/no-only': ERROR,\n  // forbid the use of `QUnit.push`\n  'qunit/no-qunit-push': ERROR,\n  // forbid `QUnit.start` within tests or test hooks\n  'qunit/no-qunit-start-in-tests': ERROR,\n  // forbid the use of `QUnit.stop`\n  'qunit/no-qunit-stop': ERROR,\n  // forbid overwriting of QUnit logging callbacks\n  'qunit/no-reassign-log-callbacks': ERROR,\n  // forbid use of `QUnit.reset`\n  'qunit/no-reset': ERROR,\n  // forbid setup / teardown module hooks\n  'qunit/no-setup-teardown': ERROR,\n  // forbid expect argument in `QUnit.test`\n  'qunit/no-test-expect-argument': ERROR,\n  // forbid assert.throws() with block, string, and message\n  'qunit/no-throws-string': ERROR,\n  // enforce use of objects as expected value in `assert.propEqual`\n  'qunit/require-object-in-propequal': ERROR,\n  // require that all async calls should be resolved in tests\n  'qunit/resolve-async': ERROR,\n};\n\nconst playwright = {\n  // enforce Playwright APIs to be awaited\n  'playwright/missing-playwright-await': ERROR,\n  // disallow multiple `test.slow()` calls in the same test\n  'playwright/no-duplicate-slow': ERROR,\n  // disallow usage of `page.$eval()` and `page.$$eval()`\n  'playwright/no-eval': ERROR,\n  // disallow using `page.pause()`\n  'playwright/no-page-pause': ERROR,\n  // prevent unsafe variable references in `page.evaluate()`\n  'playwright/no-unsafe-references': ERROR,\n  // disallow unnecessary awaits for Playwright methods\n  'playwright/no-useless-await': ERROR,\n  // require a timeout option for `toPass()`\n  'playwright/require-to-pass-timeout': ERROR,\n};\n\nconst yaml = {\n  // disallow empty mapping values\n  'yaml/no-empty-mapping-value': ERROR,\n};\n\nconst json = {\n  // enforce spacing inside array brackets\n  'jsonc/array-bracket-spacing': [ERROR, NEVER],\n  // disallow trailing commas in multiline object literals\n  'jsonc/comma-dangle': [ERROR, NEVER],\n  // enforce one true comma style\n  'jsonc/comma-style': [ERROR, 'last'],\n  // enforce consistent indentation\n  'jsonc/indent': [ERROR, 2],\n  // enforces spacing between keys and values in object literal properties\n  'jsonc/key-spacing': [ERROR, { beforeColon: false, afterColon: true }],\n  // disallow BigInt literals\n  'jsonc/no-bigint-literals': ERROR,\n  // disallow binary expression\n  'jsonc/no-binary-expression': ERROR,\n  // disallow binary numeric literals\n  'jsonc/no-binary-numeric-literals': ERROR,\n  // disallow comments\n  'jsonc/no-comments': ERROR,\n  // disallow duplicate keys when creating object literals\n  'jsonc/no-dupe-keys': ERROR,\n  // disallow escape sequences in identifiers.\n  'jsonc/no-escape-sequence-in-identifier': ERROR,\n  // disallow leading or trailing decimal points in numeric literals\n  'jsonc/no-floating-decimal': ERROR,\n  // disallow hexadecimal numeric literals\n  'jsonc/no-hexadecimal-numeric-literals': ERROR,\n  // disallow `Infinity`\n  'jsonc/no-infinity': ERROR,\n  // disallow irregular whitespace\n  'jsonc/no-irregular-whitespace': [ERROR, {}],\n  // disallow use of multiline strings\n  'jsonc/no-multi-str': ERROR,\n  // disallow `NaN`\n  'jsonc/no-nan': ERROR,\n  // disallow number property keys\n  'jsonc/no-number-props': ERROR,\n  // disallow numeric separators\n  'jsonc/no-numeric-separators': ERROR,\n  // disallow use of octal escape sequences in string literals, such as var foo = 'Copyright \\251';\n  'jsonc/no-octal-escape': ERROR,\n  // disallow octal numeric literals\n  'jsonc/no-octal-numeric-literals': ERROR,\n  // disallow legacy octal literals\n  'jsonc/no-octal': ERROR,\n  // disallow parentheses around the expression\n  'jsonc/no-parenthesized': ERROR,\n  // disallow plus sign\n  'jsonc/no-plus-sign': ERROR,\n  // disallow RegExp literals\n  'jsonc/no-regexp-literals': ERROR,\n  // disallow sparse arrays\n  'jsonc/no-sparse-arrays': ERROR,\n  // disallow template literals\n  'jsonc/no-template-literals': ERROR,\n  // disallow `undefined`\n  'jsonc/no-undefined-value': ERROR,\n  // disallow Unicode code point escape sequences.\n  'jsonc/no-unicode-codepoint-escapes': ERROR,\n  // disallow unnecessary string escaping\n  'jsonc/no-useless-escape': ERROR,\n  // enforce consistent line breaks after opening and before closing braces\n  'jsonc/object-curly-newline': [ERROR, { consistent: true }],\n  // enforce spaces inside braces\n  'jsonc/object-curly-spacing': [ERROR, ALWAYS],\n  // require or disallow use of quotes around object literal property names\n  'jsonc/quote-props': [ERROR, ALWAYS],\n  // specify whether double or single quotes should be used\n  'jsonc/quotes': [ERROR, 'double'],\n  // require or disallow spaces before/after unary operators\n  'jsonc/space-unary-ops': ERROR,\n  // disallow invalid number for JSON\n  'jsonc/valid-json-number': ERROR,\n  // specify the maximum length of a line in your program\n  '@stylistic/max-len': OFF,\n  // require strict mode directives\n  strict: OFF,\n};\n\nconst packageJSON = {\n  // enforce that names for bin properties are in kebab case\n  'package-json/bin-name-casing': ERROR,\n  // enforce consistent format for the exports field (implicit or explicit subpaths)\n  'package-json/exports-subpaths-style': [ERROR, { prefer: 'explicit' }],\n  // reports on unnecessary empty arrays and objects\n  'package-json/no-empty-fields': ERROR,\n  // prevents adding unnecessary / redundant files\n  'package-json/no-redundant-files': ERROR,\n  // warns when `publishConfig.access` is used in unscoped packages\n  'package-json/no-redundant-publishConfig': ERROR,\n  // disallows unnecessary properties in private packages\n  'package-json/restrict-private-properties': ERROR,\n  // enforce that names for `scripts` are in kebab case (optionally separated by colons)\n  'package-json/scripts-name-casing': ERROR,\n  // enforce that package dependencies are unique\n  'package-json/unique-dependencies': ERROR,\n  // enforce that the author field is a valid npm author specification\n  'package-json/valid-author': ERROR,\n  // enforce that the `bundleDependencies` (or `bundledDependencies`) property is valid\n  'package-json/valid-bundleDependencies': ERROR,\n  // enforce that the `bin` property is valid\n  'package-json/valid-bin': ERROR,\n  // enforce that the `bugs` property is valid\n  'package-json/valid-bugs': ERROR,\n  // enforce that the `config` property is valid\n  'package-json/valid-config': ERROR,\n  // enforce that the `contributors` property is valid\n  'package-json/valid-contributors': ERROR,\n  // enforce that the `cpu` property is valid\n  'package-json/valid-cpu': ERROR,\n  // enforce that the `dependencies` property is valid\n  'package-json/valid-dependencies': ERROR,\n  // enforce that the `description` property is valid\n  'package-json/valid-description': ERROR,\n  // enforce that the `directories` property is valid\n  'package-json/valid-directories': ERROR,\n  // enforce that the `engines` property is valid\n  'package-json/valid-engines': ERROR,\n  // enforce that the `exports` property is valid\n  'package-json/valid-exports': ERROR,\n  // enforce that the `files` property is valid\n  'package-json/valid-files': ERROR,\n  // enforce that the `funding` property is valid\n  'package-json/valid-funding': ERROR,\n  // enforce that the `homepage` property is valid\n  'package-json/valid-homepage': ERROR,\n  // enforce that the `keywords` property is valid\n  'package-json/valid-keywords': ERROR,\n  // enforce that the `license` property is valid\n  'package-json/valid-license': ERROR,\n  // enforce that the `main` property is valid\n  'package-json/valid-main': ERROR,\n  // enforce that the `man` property is valid\n  'package-json/valid-man': ERROR,\n  // enforce that the `module` property is valid\n  'package-json/valid-module': ERROR,\n  // enforce that the `os` property is valid\n  'package-json/valid-os': ERROR,\n  // enforce that the `private` property is valid\n  'package-json/valid-private': ERROR,\n  // enforce that the `publishConfig` property is valid\n  'package-json/valid-publishConfig': ERROR,\n  // enforce that the `repository` property is valid\n  'package-json/valid-repository': ERROR,\n  // enforce that if repository directory is specified, it matches the path to the package.json file\n  'package-json/valid-repository-directory': ERROR,\n  // enforce that the `scripts` property is valid.\n  'package-json/valid-scripts': ERROR,\n  // enforce that the `sideEffects` property is valid.\n  'package-json/valid-sideEffects': ERROR,\n  // enforce that the `type` property is valid\n  'package-json/valid-type': ERROR,\n  // enforce that package versions are valid semver specifiers\n  'package-json/valid-version': ERROR,\n  // enforce that the `workspaces` property is valid\n  'package-json/valid-workspaces': ERROR,\n};\n\nconst packagesPackageJSON = {\n  // enforce either object or shorthand declaration for repository\n  'package-json/repository-shorthand': [ERROR, { form: 'object' }],\n  // ensures that proper attribution is included, requiring that either `author` or `contributors` is defined,\n  // and that if `contributors` is present, it should include at least one contributor\n  'package-json/require-attribution': ERROR,\n  // requires the `author` property to be present\n  'package-json/require-author': ERROR,\n  // requires the `bugs`` property to be present\n  'package-json/require-bugs': ERROR,\n  // requires the `description` property to be present\n  'package-json/require-description': ERROR,\n  // requires the `engines` property to be present\n  // TODO: core-js@4\n  // 'package-json/require-engines': ERROR,\n  // requires the `exports` property to be present\n  // TODO: core-js@4\n  // 'package-json/require-exports': ERROR,\n  // requires the `funding` property to be present\n  'package-json/require-funding': ERROR,\n  // requires the `homepage` property to be present\n  'package-json/require-homepage': ERROR,\n  // requires the `license` property to be present\n  'package-json/require-license': ERROR,\n  // requires the `name` property to be present\n  'package-json/require-name': ERROR,\n  // requires the `repository` property to be present\n  'package-json/require-repository': ERROR,\n  // requires the `sideEffects` property to be present\n  'package-json/require-sideEffects': ERROR,\n  // requires the `types` property to be present\n  // TODO: core-js@4\n  // 'package-json/require-types': ERROR,\n  // requires the `version` property to be present\n  'package-json/require-version': ERROR,\n  // enforce that package names are valid npm package names\n  'package-json/valid-name': ERROR,\n};\n\nconst nodeDependencies = {\n  // enforce the versions of the engines of the dependencies to be compatible\n  'node-dependencies/compat-engines': [ERROR, { devDependencies: true }],\n  // disallow having dependencies on deprecate packages\n  'node-dependencies/no-deprecated': ERROR,\n  // enforce versions that is valid as a semantic version\n  'node-dependencies/valid-semver': ERROR,\n};\n\nconst markdown = {\n  ...base,\n  ...disable(forbidModernBuiltIns),\n  ...forbidCompletelyNonExistentBuiltIns,\n  // allow use of console\n  'no-console': OFF,\n  // disallow use of new operator when not part of the assignment or comparison\n  'no-new': OFF,\n  // disallow specified syntax\n  'no-restricted-syntax': OFF,\n  // disallow use of undeclared variables unless mentioned in a /*global */ block\n  'no-undef': OFF,\n  // disallow usage of expressions in statement position\n  'no-unused-expressions': OFF,\n  // disallow declaration of variables that are not used in the code\n  'no-unused-vars': OFF,\n  // require let or const instead of var\n  'no-var': OFF,\n  // require const declarations for variables that are never reassigned after declared\n  'prefer-const': OFF,\n  // disallow use of the `RegExp` constructor in favor of regular expression literals\n  'prefer-regex-literals': OFF,\n  // disallow top-level `await`\n  'es/no-top-level-await': OFF,\n  // ensure imports point to files / modules that can be resolved\n  'import/no-unresolved': OFF,\n  // enforces the use of `catch()` on un-returned promises\n  'promise/catch-or-return': OFF,\n  // enforce that `RegExp#exec` is used instead of `String#match` if no global flag is provided\n  'regexp/prefer-regexp-exec': OFF,\n  // variables should be defined before being used\n  'sonarjs/no-reference-error': OFF,\n  // specify the maximum length of a line in your program\n  '@stylistic/max-len': [ERROR, { ...base['@stylistic/max-len'][1], code: 200 }],\n};\n\nconst globalsESNext = {\n  AsyncIterator: READONLY,\n  compositeKey: READONLY,\n  compositeSymbol: READONLY,\n};\n\nconst globalsZX = {\n  $: READONLY,\n  __dirname: READONLY,\n  __filename: READONLY,\n  argv: READONLY,\n  cd: READONLY,\n  chalk: READONLY,\n  echo: READONLY,\n  fetch: READONLY,\n  fs: READONLY,\n  glob: READONLY,\n  nothrow: READONLY,\n  os: READONLY,\n  path: READONLY,\n  question: READONLY,\n  require: READONLY,\n  sleep: READONLY,\n  stdin: READONLY,\n  which: READONLY,\n  within: READONLY,\n  YAML: READONLY,\n};\n\nexport default [\n  {\n    ignores: [\n      'deno/corejs/**',\n      'docs/**',\n      'packages/core-js-bundle/!(package.json)',\n      'packages/core-js-compat/!(package).json',\n      'packages/core-js-pure/override/**',\n      'tests/**/bundles/**',\n      'tests/compat/compat-data.js',\n      'tests/unit-@(global|pure)/index.js',\n      'website/dist/**',\n      'website/src/public/*',\n      'website/templates/**',\n    ],\n  },\n  {\n    languageOptions: {\n      ecmaVersion: 'latest',\n      sourceType: 'script',\n      // unnecessary global builtins disabled by related rules\n      globals: {\n        ...globals.builtin,\n        ...globals.browser,\n        ...globals.node,\n        ...globals.worker,\n      },\n    },\n    linterOptions: {\n      reportUnusedDisableDirectives: WARN,\n    },\n    plugins: {\n      '@stylistic': pluginStylistic,\n      'array-func': pluginArrayFunc,\n      ascii: pluginASCII,\n      depend: pluginDepend,\n      es: pluginESX,\n      'eslint-comments': pluginESlintComments,\n      import: pluginImport,\n      jsonc: pluginJSONC,\n      markdown: pluginMarkdown,\n      math: pluginMath,\n      name: pluginName,\n      node: pluginN,\n      'node-dependencies': pluginNodeDependencies,\n      'package-json': pluginPackageJSON,\n      playwright: pluginPlaywright,\n      promise: pluginPromise,\n      qunit: pluginQUnit,\n      redos: pluginReDoS,\n      regexp: pluginRegExp,\n      sonarjs: pluginSonarJS,\n      unicorn: pluginUnicorn,\n      yaml: pluginYaml,\n    },\n    rules: {\n      ...base,\n      ...forbidNonStandardBuiltIns,\n      ...forbidESAnnexBBuiltIns,\n    },\n    settings: {\n      'es-x': { allowTestedProperty: true },\n      'import-x/resolver-next': [createNodeResolver()],\n    },\n  },\n  {\n    files: [\n      '**/*.mjs',\n      'tests/eslint/**',\n    ],\n    languageOptions: {\n      sourceType: 'module',\n    },\n  },\n  {\n    files: [\n      'packages/core-js?(-pure)/**',\n      'tests/compat/*.js',\n    ],\n    languageOptions: {\n      ecmaVersion: 3,\n    },\n    rules: useES3Syntax,\n  },\n  {\n    files: [\n      'packages/core-js?(-pure)/**',\n      'tests/@(helpers|unit-pure)/**',\n      'tests/compat/@(browsers|hermes|node|rhino)-runner.js',\n    ],\n    rules: forbidModernBuiltIns,\n  },\n  {\n    files: [\n      'packages/core-js?(-pure)/**',\n    ],\n    rules: polyfills,\n  },\n  {\n    files: [\n      '**/postinstall.js',\n    ],\n    rules: disable(forbidES5BuiltIns),\n  },\n  {\n    files: [\n      'packages/core-js?(-pure)/**/instance/**',\n    ],\n    rules: {\n      ...disable(forbidModernBuiltIns),\n      ...forbidCompletelyNonExistentBuiltIns,\n    },\n  },\n  {\n    files: [\n      'tests/@(helpers|unit-@(global|pure)|wpt-url-resources)/**',\n    ],\n    languageOptions: {\n      sourceType: 'module',\n    },\n    rules: transpiledAndPolyfilled,\n  },\n  {\n    files: [\n      'tests/**',\n    ],\n    rules: tests,\n  },\n  {\n    files: [\n      'tests/compat/tests.js',\n    ],\n    rules: forbidCompletelyNonExistentBuiltIns,\n  },\n  {\n    files: [\n      'tests/@(helpers|unit-@(global|pure))/**',\n    ],\n    languageOptions: {\n      globals: globals.qunit,\n    },\n    rules: qunit,\n  },\n  {\n    files: [\n      'scripts/usage/**',\n    ],\n    rules: playwright,\n  },\n  {\n    files: [\n      'packages/core-js-@(builder|compat)/**',\n    ],\n    rules: nodePackages,\n  },\n  {\n    files: [\n      '*.js',\n      'packages/core-js-compat/src/**',\n      'scripts/**',\n      'tests/compat/*.mjs',\n      'tests/@(compat-@(data|tools)|eslint|entries|observables|promises|unit-@(karma|node))/**',\n      'website/scripts/runner.mjs',\n      'website/scripts/helpers.mjs',\n    ],\n    rules: nodeDev,\n  },\n  {\n    files: [\n      'tests/@(compat|unit-global)/**',\n    ],\n    languageOptions: {\n      globals: globalsESNext,\n    },\n  },\n  {\n    files: [\n      '@(scripts|tests)/*/**',\n    ],\n    rules: {\n      // disable this rule for lazily installed dependencies\n      'import/no-unresolved': [ERROR, { commonjs: true, ignore: ['^[^.]'] }],\n    },\n  },\n  {\n    files: [\n      'packages/core-js-compat/src/**',\n      'scripts/**',\n      'tests/**/*.mjs',\n      'website/**.mjs',\n    ],\n    languageOptions: {\n      // zx\n      globals: globalsZX,\n    },\n    rules: {\n      // allow use of console\n      'no-console': OFF,\n      // import used for tasks\n      'import/first': OFF,\n    },\n  },\n  {\n    rules: {\n      // ensure that filenames match a convention\n      'name/match': [ERROR, /^[\\da-z][\\d\\-.a-z]*[\\da-z]$/],\n    },\n  },\n  {\n    files: [\n      'packages/core-js?(-pure)/modules/**',\n    ],\n    rules: {\n      // ensure that filenames match a convention\n      'name/match': [ERROR, /^(?:es|esnext|web)(?:\\.[a-z][\\d\\-a-z]*[\\da-z])+$/],\n    },\n  },\n  {\n    files: [\n      'tests/@(unit-@(global|pure))/**',\n    ],\n    rules: {\n      // ensure that filenames match a convention\n      'name/match': [ERROR, /^(?:es|esnext|helpers|web)(?:\\.[a-z][\\d\\-a-z]*[\\da-z])+$/],\n    },\n  },\n  {\n    language: 'yaml/yaml',\n    files: ['*.yaml', '*.yml'],\n    rules: yaml,\n  },\n  {\n    files: ['**/*.json'],\n    languageOptions: {\n      parser: parserJSONC,\n    },\n    rules: json,\n  },\n  {\n    files: ['**/package.json'],\n    rules: {\n      ...packageJSON,\n      ...nodeDependencies,\n    },\n  },\n  {\n    files: ['packages/*/package.json'],\n    rules: packagesPackageJSON,\n  },\n  {\n    files: ['**/*.md'],\n    processor: 'markdown/markdown',\n  },\n  {\n    files: ['**/*.md/*.js'],\n    languageOptions: {\n      ecmaVersion: 'latest',\n      sourceType: 'module',\n    },\n    rules: markdown,\n  },\n  {\n    files: ['**/*.md/*'],\n    rules: {\n      // enforce a case style for filenames\n      'unicorn/filename-case': OFF,\n      // ensure that filenames match a convention\n      'name/match': OFF,\n    },\n  },\n  {\n    files: [\n      'website/src/js/*',\n    ],\n    languageOptions: {\n      sourceType: 'module',\n    },\n    rules: {\n      ...transpiledAndPolyfilled,\n      'no-restricted-globals': OFF,\n      'unicorn/prefer-global-this': OFF,\n      '@stylistic/quotes': [ERROR, 'single', { allowTemplateLiterals: ALWAYS }],\n    },\n  },\n  {\n    files: [\n      'website/**',\n    ],\n    rules: {\n      'import/no-unresolved': OFF,\n    },\n  },\n];\n"
  },
  {
    "path": "tests/eslint/package.json",
    "content": "{\n  \"name\": \"tests/eslint\",\n  \"type\": \"module\",\n  \"devDependencies\": {\n    \"@eslint/markdown\": \"^7.5.1\",\n    \"@eslint-community/eslint-plugin-eslint-comments\": \"^4.7.1\",\n    \"@stylistic/eslint-plugin\": \"^5.10.0\",\n    \"confusing-browser-globals\": \"^1.0.11\",\n    \"eslint\": \"^10.0.3\",\n    \"eslint-plugin-array-func\": \"^5.1.1\",\n    \"eslint-plugin-ascii\": \"^2.0.0\",\n    \"eslint-plugin-depend\": \"^1.5.0\",\n    \"eslint-plugin-es-x\": \"^9.5.0\",\n    \"eslint-plugin-import-x\": \"^4.16.2\",\n    \"eslint-plugin-jsonc\": \"^3.1.2\",\n    \"eslint-plugin-math\": \"^0.13.1\",\n    \"eslint-plugin-n\": \"^17.24.0\",\n    \"eslint-plugin-name\": \"^0.0.1\",\n    \"eslint-plugin-node-dependencies\": \"^2.2.0\",\n    \"eslint-plugin-package-json\": \"^0.91.0\",\n    \"eslint-plugin-playwright\": \"^2.10.1\",\n    \"eslint-plugin-promise\": \"^7.2.1\",\n    \"eslint-plugin-qunit\": \"^8.2.6\",\n    \"eslint-plugin-redos\": \"^4.5.0\",\n    \"eslint-plugin-regexp\": \"^3.1.0\",\n    \"eslint-plugin-sonarjs\": \"^4.0.2\",\n    \"eslint-plugin-unicorn\": \"^63.0.0\",\n    \"eslint-yaml\": \"^0.1.0\",\n    \"globals\": \"^17.4.0\",\n    \"jsonc-eslint-parser\": \"^3.1.0\"\n  }\n}\n"
  },
  {
    "path": "tests/eslint/runner.mjs",
    "content": "process.env.TIMING = true;\n\nawait $`eslint --concurrency=auto --config ./tests/eslint/eslint.config.js ./ --fix=${ !!process.env.FIX }`;\n"
  },
  {
    "path": "tests/helpers/constants.js",
    "content": "import defineProperty from 'core-js-pure/es/object/define-property';\n\nexport const DESCRIPTORS = !!(() => {\n  try {\n    return defineProperty({}, 'a', {\n      get() {\n        return 7;\n      },\n    }).a === 7;\n  } catch { /* empty */ }\n})();\n\nexport const GLOBAL = Function('return this')();\n\nexport const NATIVE = GLOBAL.NATIVE || false;\n\nexport const NODE = typeof Bun == 'undefined' && Object.prototype.toString.call(GLOBAL.process).slice(8, -1) === 'process';\n\nexport const BUN = typeof Bun != 'undefined' && Object.prototype.toString.call(GLOBAL.process).slice(8, -1) === 'process';\n\nconst $TYPED_ARRAYS = {\n  Float32Array: 4,\n  Float64Array: 8,\n  Int8Array: 1,\n  Int16Array: 2,\n  Int32Array: 4,\n  Uint8Array: 1,\n  Uint16Array: 2,\n  Uint32Array: 4,\n  Uint8ClampedArray: 1,\n};\n\nexport const TYPED_ARRAYS = [];\n\nfor (const name in $TYPED_ARRAYS) TYPED_ARRAYS.push({\n  name,\n  TypedArray: GLOBAL[name],\n  bytes: $TYPED_ARRAYS[name],\n  $: Number,\n});\n\nexport const TYPED_ARRAYS_WITH_BIG_INT = [...TYPED_ARRAYS];\n\nfor (const name of ['BigInt64Array', 'BigUint64Array']) if (GLOBAL[name]) TYPED_ARRAYS_WITH_BIG_INT.push({\n  name,\n  TypedArray: GLOBAL[name],\n  bytes: 8,\n  // eslint-disable-next-line es/no-bigint -- safe\n  $: BigInt,\n});\n\nexport const LITTLE_ENDIAN = (() => {\n  try {\n    return new GLOBAL.Uint8Array(new GLOBAL.Uint16Array([1]).buffer)[0] === 1;\n  } catch {\n    return true;\n  }\n})();\n\n// eslint-disable-next-line es/no-object-setprototypeof -- detection\nexport const PROTO = !!Object.setPrototypeOf || '__proto__' in Object.prototype;\n\nexport let REDEFINABLE_PROTO = false;\n\ntry {\n  // Chrome 27- bug, also a bug for native `JSON.parse`\n  defineProperty({}, '__proto__', { value: 42, writable: true, configurable: true, enumerable: true });\n  REDEFINABLE_PROTO = true;\n} catch { /* empty */ }\n\nexport const STRICT_THIS = (function () {\n  return this;\n})();\n\nexport const STRICT = !STRICT_THIS;\n\nexport const FREEZING = !function () {\n  try {\n    // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- detection\n    return Object.isExtensible(Object.preventExtensions({}));\n  } catch {\n    return true;\n  }\n}();\n\nexport const CORRECT_PROTOTYPE_GETTER = !function () {\n  try {\n    function F() { /* empty */ }\n    F.prototype.constructor = null;\n    // eslint-disable-next-line es/no-object-getprototypeof -- detection\n    return Object.getPrototypeOf(new F()) !== F.prototype;\n  } catch {\n    return true;\n  }\n}();\n\n// FF < 23 bug\nexport const REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR = DESCRIPTORS && !function () {\n  try {\n    defineProperty([], 'length', { writable: false });\n  } catch {\n    return true;\n  }\n}();\n\nexport const WHITESPACES = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n// eslint-disable-next-line es/no-number-maxsafeinteger -- safe\nexport const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n\n// eslint-disable-next-line es/no-number-minsafeinteger -- safe\nexport const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;\n"
  },
  {
    "path": "tests/helpers/helpers.js",
    "content": "import Promise from 'core-js-pure/es/promise';\nimport ITERATOR from 'core-js-pure/es/symbol/iterator';\nimport ASYNC_ITERATOR from 'core-js-pure/es/symbol/async-iterator';\n\nexport function is(a, b) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\n\nexport function createIterator(elements, methods) {\n  let index = 0;\n  const iterator = {\n    called: false,\n    next() {\n      iterator.called = true;\n      return {\n        value: elements[index++],\n        done: index > elements.length,\n      };\n    },\n  };\n  if (methods) for (const key in methods) iterator[key] = methods[key];\n  return iterator;\n}\n\nexport function createSetLike(elements) {\n  return {\n    size: elements.length,\n    has(it) {\n      return includes(elements, it);\n    },\n    keys() {\n      return createIterator(elements);\n    },\n  };\n}\n\nexport function createIterable(elements, methods) {\n  const iterable = {\n    called: false,\n    received: false,\n    [ITERATOR]() {\n      iterable.received = true;\n      let index = 0;\n      const iterator = {\n        next() {\n          iterable.called = true;\n          return {\n            value: elements[index++],\n            done: index > elements.length,\n          };\n        },\n      };\n      if (methods) for (const key in methods) iterator[key] = methods[key];\n      return iterator;\n    },\n  };\n  return iterable;\n}\n\nexport function createAsyncIterable(elements, methods) {\n  const iterable = {\n    called: false,\n    received: false,\n    [ASYNC_ITERATOR]() {\n      iterable.received = true;\n      let index = 0;\n      const iterator = {\n        next() {\n          iterable.called = true;\n          return Promise.resolve({\n            value: elements[index++],\n            done: index > elements.length,\n          });\n        },\n      };\n      if (methods) for (const key in methods) iterator[key] = methods[key];\n      return iterator;\n    },\n  };\n  return iterable;\n}\n\nexport function createConversionChecker(value, string) {\n  const checker = {\n    $valueOf: 0,\n    $toString: 0,\n    valueOf() {\n      checker.$valueOf++;\n      return value;\n    },\n    toString() {\n      checker.$toString++;\n      return string !== undefined ? string : String(value);\n    },\n  };\n\n  return checker;\n}\n\nexport function arrayFromArrayLike(source) {\n  const { length } = source;\n  const result = Array(length);\n  for (let index = 0; index < length; index++) {\n    result[index] = source[index];\n  } return result;\n}\n\nexport function includes(target, wanted) {\n  for (const element of target) if (wanted === element) return true;\n  return false;\n}\n\nexport const nativeSubclass = (() => {\n  try {\n    if (Function(`\n      'use strict';\n      class Subclass extends Object { /* empty */ };\n      return new Subclass() instanceof Subclass;\n    `)()) return Function('Parent', `\n      'use strict';\n      return class extends Parent { /* empty */ };\n    `);\n  } catch { /* empty */ }\n})();\n\nexport function timeLimitedPromise(time, functionOrPromise) {\n  return Promise.race([\n    typeof functionOrPromise == 'function' ? new Promise(functionOrPromise) : functionOrPromise,\n    new Promise((resolve, reject) => {\n      setTimeout(reject, time);\n    }),\n  ]);\n}\n\n// This function is used to force RegExp.prototype[Symbol.*] methods\n// to not use the native implementation.\nexport function patchRegExp$exec(run) {\n  return assert => {\n    const originalExec = RegExp.prototype.exec;\n    // eslint-disable-next-line no-extend-native -- required for testing\n    RegExp.prototype.exec = function (...args) {\n      return originalExec.apply(this, args);\n    };\n    try {\n      return run(assert);\n    // eslint-disable-next-line no-useless-catch -- in very old IE try / finally does not work without catch\n    } catch (error) {\n      throw error;\n    } finally {\n      // eslint-disable-next-line no-extend-native -- required for testing\n      RegExp.prototype.exec = originalExec;\n    }\n  };\n}\n\nexport function fromSource(source) {\n  try {\n    return Function(`return ${ source }`)();\n  } catch { /* empty */ }\n}\n\nexport function arrayToBuffer(array) {\n  const { length } = array;\n  const buffer = new ArrayBuffer(length);\n  // eslint-disable-next-line es/no-typed-arrays -- safe\n  const view = new DataView(buffer);\n  for (let i = 0; i < length; ++i) {\n    view.setUint8(i, array[i]);\n  }\n  return buffer;\n}\n\nexport function bufferToArray(buffer) {\n  const array = [];\n  // eslint-disable-next-line es/no-typed-arrays -- safe\n  const view = new DataView(buffer);\n  for (let i = 0, { byteLength } = view; i < byteLength; ++i) {\n    array.push(view.getUint8(i));\n  }\n  return array;\n}\n"
  },
  {
    "path": "tests/helpers/qunit-helpers.js",
    "content": "import { DESCRIPTORS } from './constants.js';\nimport assign from 'core-js-pure/es/object/assign';\nimport create from 'core-js-pure/es/object/create';\nimport defineProperties from 'core-js-pure/es/object/define-properties';\nimport getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names';\nimport reduce from 'core-js-pure/es/array/reduce';\nimport isIterable from 'core-js-pure/es/is-iterable';\nimport ASYNC_ITERATOR from 'core-js-pure/es/symbol/async-iterator';\nimport { is, arrayFromArrayLike } from './helpers.js';\n\n// for Babel template transform\n// eslint-disable-next-line es/no-object-create -- safe\nif (!Object.create) Object.create = create;\n// eslint-disable-next-line es/no-object-freeze -- safe\nif (!Object.freeze) Object.freeze = Object;\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nif (!DESCRIPTORS) Object.defineProperties = defineProperties;\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nconst { getOwnPropertyDescriptor } = Object;\nconst { toString, propertyIsEnumerable } = Object.prototype;\n\nconst { assert } = QUnit;\n\nassign(assert, {\n  arity(fn, length, message) {\n    this.same(fn.length, length, message ?? `The arity of the function is ${ length }`);\n  },\n  arrayEqual(a, b, message) {\n    this.deepEqual(arrayFromArrayLike(a), arrayFromArrayLike(b), message);\n  },\n  avoid(message = 'It should never be called') {\n    this.ok(false, message);\n  },\n  // TODO: Drop from future `core-js` versions\n  // available from `qunit@2.21`\n  closeTo(actual, expected, delta, message) {\n    if (typeof delta != 'number') throw new TypeError('closeTo() requires a delta argument');\n    const result = Math.abs(actual - expected) <= delta;\n    this.pushResult({\n      result,\n      actual,\n      expected,\n      message: message ?? `The value should be within ${ delta } inclusive`,\n    });\n  },\n  enumerable(O, key, message) {\n    const result = !DESCRIPTORS || propertyIsEnumerable.call(O, key);\n    this.pushResult({\n      result,\n      actual: result,\n      expected: 'The property should be enumerable',\n      message: DESCRIPTORS\n        ? message ?? `${ typeof key == 'symbol' ? 'property' : `'${ key }'` } is enumerable`\n        : 'Enumerability is not applicable',\n    });\n  },\n  // TODO: Drop from future `core-js` versions\n  // unavailable in `qunit@1` that's required for testing in IE9-, Chrome 38, etc.\n  false(value, message = 'The value is `false`') {\n    this.same(value, false, message);\n  },\n  isAsyncIterable(actual, message = 'The value is async iterable') {\n    this.pushResult({\n      result: typeof actual == 'object' && typeof actual[ASYNC_ITERATOR] == 'function',\n      actual,\n      expected: 'The value should be async iterable',\n      message,\n    });\n  },\n  isFunction(fn, message) {\n    this.pushResult({\n      result: typeof fn == 'function' || toString.call(fn).slice(8, -1) === 'Function',\n      actual: typeof fn,\n      expected: 'The value should be a function',\n      message: message ?? 'The value is a function',\n    });\n  },\n  isIterable(actual, message = 'The value is iterable') {\n    this.pushResult({\n      result: isIterable(actual),\n      actual,\n      expected: 'The value should be iterable',\n      message,\n    });\n  },\n  isIterator(actual, message = 'The object is an iterator') {\n    this.pushResult({\n      result: typeof actual == 'object' && typeof actual.next == 'function',\n      actual,\n      expected: 'The object should be an iterator',\n      message,\n    });\n  },\n  looksNative(fn, message = 'The function looks like a native') {\n    const source = Function.prototype.toString.call(fn);\n    this.pushResult({\n      result: /native code/.test(source),\n      actual: source,\n      expected: 'The function should look like a native',\n      message,\n    });\n  },\n  name(fn, expected, message) {\n    const applicable = typeof fn == 'function' && 'name' in fn;\n    const actual = fn.name;\n    this.pushResult({\n      result: applicable ? actual === expected : true,\n      actual,\n      expected,\n      message: applicable\n        ? message ?? `The function name is '${ expected }'`\n        : 'Function#name property test makes no sense',\n    });\n  },\n  nonConfigurable(O, key, message) {\n    const result = !DESCRIPTORS || !getOwnPropertyDescriptor(O, key)?.configurable;\n    this.pushResult({\n      result,\n      actual: result,\n      expected: 'The property should be non-configurable',\n      message: DESCRIPTORS\n        ? message ?? `${ typeof key == 'symbol' ? 'property' : `'${ key }'` } is non-configurable`\n        : 'Configurability is not applicable',\n    });\n  },\n  nonEnumerable(O, key, message) {\n    const result = !DESCRIPTORS || !propertyIsEnumerable.call(O, key);\n    this.pushResult({\n      result,\n      actual: result,\n      expected: 'The property should be non-enumerable',\n      message: DESCRIPTORS\n        ? message ?? `${ typeof key == 'symbol' ? 'property' : `'${ key }'` } is non-enumerable`\n        : 'Enumerability is not applicable',\n    });\n  },\n  nonWritable(O, key, message) {\n    const result = !DESCRIPTORS || !getOwnPropertyDescriptor(O, key)?.writable;\n    this.pushResult({\n      result,\n      actual: result,\n      expected: 'The property should be non-writable',\n      message: DESCRIPTORS\n        ? message ?? `${ typeof key == 'symbol' ? 'property' : `'${ key }'` } is non-writable`\n        : 'Writability is not applicable',\n    });\n  },\n  notSame(actual, expected, message) {\n    this.pushResult({\n      result: !is(actual, expected),\n      actual,\n      expected: 'Something different',\n      message,\n    });\n  },\n  notThrows(fn, message = 'Does not throw') {\n    let result = false;\n    let actual;\n    try {\n      actual = fn();\n      result = true;\n    } catch (error) {\n      actual = error;\n    }\n    this.pushResult({\n      result,\n      actual,\n      expected: 'It should not throw an error',\n      message,\n    });\n  },\n  required(message = 'It should be called') {\n    this.ok(true, message);\n  },\n  same(actual, expected, message) {\n    this.pushResult({\n      result: is(actual, expected),\n      actual,\n      expected,\n      message,\n    });\n  },\n  // TODO: Drop from future `core-js` versions\n  // unavailable in `qunit@1` that's required for testing in IE9-, Chrome 38, etc.\n  true(value, message = 'The value is `true`') {\n    this.same(value, true, message);\n  },\n});\n\nassert.skip = reduce(getOwnPropertyNames(assert), (skip, method) => {\n  skip[method] = () => { /* empty */ };\n  return skip;\n}, {});\n"
  },
  {
    "path": "tests/observables/adapter.mjs",
    "content": "/* eslint-disable import/no-dynamic-require -- dynamic */\ndelete globalThis.Observable;\n\nconst pkg = argv.pure ? 'core-js-pure' : 'core-js';\n\n// eslint-disable-next-line import/no-unresolved -- generated later\nconst { runTests } = require('./bundles/observables-tests/default');\n\nglobalThis.Symbol = require(`../../packages/${ pkg }/full/symbol`);\nglobalThis.Promise = require(`../../packages/${ pkg }/full/promise`);\nconst Observable = require(`../../packages/${ pkg }/full/observable`);\n\nrunTests(Observable);\n"
  },
  {
    "path": "tests/observables/package.json",
    "content": "{\n  \"name\": \"tests/observables\",\n  \"devDependencies\": {\n    \"@babel/cli\": \"^7.28.6\",\n    \"es-observable\": \"tc39/proposal-observable#d3404f06bc70c7c578a5047dfb3dc813730e3319\",\n    \"moon-unit\": \"0.2.2\"\n  }\n}\n"
  },
  {
    "path": "tests/observables/runner.mjs",
    "content": "await $`babel --config-file ../../babel.config.js node_modules/es-observable/test/ -d ./bundles/observables-tests/`;\n\nfor (const mode of ['global', 'pure']) {\n  await $`zx adapter.mjs --${ mode }`;\n}\n"
  },
  {
    "path": "tests/promises/adapter.js",
    "content": "'use strict';\ndelete globalThis.Promise;\n\nconst pkg = process.argv.includes('--pure') ? 'core-js-pure' : 'core-js';\n\n// eslint-disable-next-line import/no-dynamic-require -- dynamic\nconst Promise = require(`../../packages/${ pkg }/es/promise`);\nconst assert = require('node:assert');\n\nmodule.exports = {\n  deferred() {\n    const deferred = {};\n    deferred.promise = new Promise((resolve, reject) => {\n      deferred.resolve = resolve;\n      deferred.reject = reject;\n    });\n    return deferred;\n  },\n  resolved(value) {\n    return Promise.resolve(value);\n  },\n  rejected(reason) {\n    return Promise.reject(reason);\n  },\n  defineGlobalPromise() {\n    globalThis.Promise = Promise;\n    globalThis.assert = assert;\n  },\n  removeGlobalPromise() {\n    delete globalThis.Promise;\n  },\n};\n"
  },
  {
    "path": "tests/promises/package.json",
    "content": "{\n  \"name\": \"tests/promises\",\n  \"devDependencies\": {\n    \"promises-aplus-tests\": \"^2.1.2\",\n    \"promises-es6-tests\": \"~0.5.0\"\n  }\n}\n"
  },
  {
    "path": "tests/promises/runner.mjs",
    "content": "for (const mode of ['global', 'pure']) for (const set of ['aplus', 'es6']) {\n  await $`promises-${ set }-tests adapter --timeout 1000 --color --${ mode }`;\n}\n"
  },
  {
    "path": "tests/publint/package.json",
    "content": "{\n  \"name\": \"tests/publint\",\n  \"devDependencies\": {\n    \"publint\": \"^0.3.18\"\n  }\n}\n"
  },
  {
    "path": "tests/publint/runner.mjs",
    "content": "const pkgs = await glob('packages/*/package.json');\n\nawait Promise.all(pkgs.map(async pkg => {\n  return $`publint ${ pkg.slice(0, -13) }`;\n}));\n"
  },
  {
    "path": "tests/test262/package.json",
    "content": "{\n  \"name\": \"test262\",\n  \"devDependencies\": {\n    \"test262\": \"tc39/test262#f95832e793861fddbb2b84861c05fd21706adf6c\",\n    \"test262-harness\": \"^10.0.0\"\n  }\n}\n"
  },
  {
    "path": "tests/test262/preprocessor.js",
    "content": "'use strict';\nconst include = [\n  'Array',\n  // 'ArrayBuffer',\n  'ArrayIteratorPrototype',\n  'Boolean',\n  // 'DataView',\n  // 'Date',\n  'Error',\n  'Function/prototype',\n  'Iterator',\n  'JSON',\n  'Map',\n  'MapIteratorPrototype',\n  'Math',\n  'NativeErrors',\n  'Number',\n  'Object',\n  'Promise',\n  'Reflect',\n  'RegExp',\n  'RegExpStringIteratorPrototype',\n  'Set',\n  'SetIteratorPrototype',\n  'String',\n  'StringIteratorPrototype',\n  'Symbol',\n  // 'TypedArray',\n  // 'TypedArrayConstructors',\n  'WeakMap',\n  'WeakSet',\n  'decodeURI',\n  'decodeURIComponent',\n  'encodeURI',\n  'encodeURIComponent',\n  'escape',\n  'isFinite',\n  'isNaN',\n  'parseFloat',\n  'parseInt',\n  'unescape',\n];\n\nconst exclude = [\n  '/Function/prototype/toString/',\n  '/Object/internals/DefineOwnProperty/',\n  // conflict with iterators helpers proposal\n  '/Object/prototype/toString/symbol-tag-non-str-builtin',\n  '/RegExp/property-escapes/',\n  'detached-buffer',\n  'detach-typedarray',\n  // we can't implement this behavior on methods 100% proper and compatible with ES3\n  // in case of application some hacks this line will be removed\n  'not-a-constructor',\n];\n\nmodule.exports = test => {\n  const { file } = test;\n  if (!include.some(namespace => file.includes(`built-ins/${ namespace }/`))) return null;\n  if (exclude.some(it => file.includes(it))) return null;\n  return test;\n};\n"
  },
  {
    "path": "tests/test262/runner.mjs",
    "content": "const featuresExclude = [\n  'arraybuffer-transfer',\n  'regexp-duplicate-named-groups',\n  'regexp-modifiers',\n  'regexp-v-flag',\n  'resizable-arraybuffer',\n];\n\nawait $`test262-harness \\\n  --features-exclude=${ featuresExclude.join(',') } \\\n  --threads=${ os.cpus().length } \\\n  --host-args=\"--unhandled-rejections=none\" \\\n  --preprocessor=preprocessor.js \\\n  --prelude=../../packages/core-js-bundle/index.js \\\n  --test262-dir=node_modules/test262 \\\n  node_modules/test262/test/built-ins/**/*.js \\\n`;\n"
  },
  {
    "path": "tests/type-definitions/builder.ts",
    "content": "import builder from 'core-js-builder';\n\nconst a: Promise<string> = builder({ targets: { node: 17 } });\nconst b: string = await builder({ targets: { node: 17 } });\n\nawait builder();\nawait builder({});\nawait builder({ modules: 'core-js/actual' });\nawait builder({ modules: 'es.array.push' });\nawait builder({ modules: /^es\\.array\\./ });\nawait builder({ modules: ['core-js/actual', /^es\\.array\\./] });\nawait builder({ exclude: 'core-js/actual' });\nawait builder({ exclude: 'es.array.push' });\nawait builder({ exclude: /^es\\.array\\./ });\nawait builder({ exclude: ['core-js/actual', /^es\\.array\\./] });\nawait builder({ modules: 'core-js/actual', exclude: /^es\\.array\\./ });\nawait builder({ targets: '> 1%' });\nawait builder({ targets: ['defaults', 'last 5 versions'] });\nawait builder({ targets: { esmodules: true, node: 'current', browsers: ['> 1%'] } });\nawait builder({ targets: { chrome: '26', firefox: 4 } });\nawait builder({ targets: { browsers: { chrome: '26', firefox: 4 } } });\nawait builder({ targets: { chrome: '26', firefox: 4, esmodules: true, node: 'current', browsers: ['> 1%'] } });\nawait builder({ format: 'bundle' });\nawait builder({ format: 'esm' });\nawait builder({ format: 'cjs' });\nawait builder({ filename: '/foo/bar/baz.js' });\nawait builder({ summary: { comment: true } });\nawait builder({ summary: { comment: { size: true } } });\nawait builder({ summary: { comment: { size: false, modules: true } } });\nawait builder({ summary: { console: true } });\nawait builder({ summary: { console: { size: true } } });\nawait builder({ summary: { console: { size: false, modules: true } } });\nawait builder({ summary: { console: { size: false, modules: true }, comment: { size: false, modules: true } } });\nawait builder({\n  modules: 'core-js/actual',\n  exclude: /^es\\.array\\./,\n  targets: {\n    android: 1,\n    bun: '1',\n    chrome: 1,\n    'chrome-android': '1',\n    deno: 1,\n    edge: '1',\n    electron: 1,\n    firefox: '1',\n    'firefox-android': 1,\n    hermes: '1',\n    ie: 1,\n    ios: '1',\n    opera: 1,\n    'opera-android': '1',\n    phantom: 1,\n    quest: '1',\n    'react-native': 1,\n    rhino: '1',\n    safari: 1,\n    samsung: '1',\n    node: 'current',\n    esmodules: true,\n    browsers: ['> 1%'],\n  },\n  format: 'bundle',\n  filename: '/foo/bar/baz.js',\n  summary: {\n    console: { size: false, modules: true },\n    comment: { size: false, modules: true },\n  },\n});\n"
  },
  {
    "path": "tests/type-definitions/compat.ts",
    "content": "import compat from 'core-js-compat';\nimport compat2 from 'core-js-compat/compat';\nimport getModulesListForTargetVersion from 'core-js-compat/get-modules-list-for-target-version';\n\ngetModulesListForTargetVersion('3.0');\ncompat.getModulesListForTargetVersion('3.0');\n\ncompat.data['es.array.push'].android\ncompat.data['es.array.push'].firefox\n\nif (typeof compat.modules[0] !== 'string') {\n  console.error('Invalid');\n}\n\nif (!compat.entries['core-js'].includes('es.array.from')) {\n  console.error('Invalid')\n}\n\ncompat();\ncompat({});\ncompat({ modules: 'core-js/actual' });\ncompat({ modules: 'es.array.push' });\ncompat({ modules: /^es\\.array\\./ });\ncompat({ modules: ['core-js/actual', /^es\\.array\\./] });\ncompat({ exclude: 'core-js/actual' });\ncompat({ exclude: 'es.array.push' });\ncompat({ exclude: /^es\\.array\\./ });\ncompat({ exclude: ['core-js/actual', /^es\\.array\\./] });\ncompat({ modules: 'core-js/actual', exclude: /^es\\.array\\./ });\ncompat({ targets: '> 1%' });\ncompat({ targets: ['defaults', 'last 5 versions'] });\ncompat({ targets: { esmodules: true, node: 'current', browsers: ['> 1%'] } });\ncompat({ targets: { chrome: '26', firefox: 4 } });\ncompat({ targets: { browsers: { chrome: '26', firefox: 4 } } });\ncompat({ targets: { chrome: '26', firefox: 4, esmodules: true, node: 'current', browsers: ['> 1%'] } });\ncompat({ version: '3.0' });\ncompat({ inverse: true });\n\ncompat.compat();\ncompat.compat({});\ncompat.compat({ modules: 'core-js/actual' });\ncompat.compat({ modules: 'es.array.push' });\ncompat.compat({ modules: /^es\\.array\\./ });\ncompat.compat({ modules: ['core-js/actual', /^es\\.array\\./] });\ncompat.compat({ exclude: 'core-js/actual' });\ncompat.compat({ exclude: 'es.array.push' });\ncompat.compat({ exclude: /^es\\.array\\./ });\ncompat.compat({ exclude: ['core-js/actual', /^es\\.array\\./] });\ncompat.compat({ modules: 'core-js/actual', exclude: /^es\\.array\\./ });\ncompat.compat({ targets: '> 1%' });\ncompat.compat({ targets: ['defaults', 'last 5 versions'] });\ncompat.compat({ targets: { esmodules: true, node: 'current', browsers: ['> 1%'] } });\ncompat.compat({ targets: { chrome: '26', firefox: 4 } });\ncompat.compat({ targets: { browsers: { chrome: '26', firefox: 4 } } });\ncompat.compat({ targets: { chrome: '26', firefox: 4, esmodules: true, node: 'current', browsers: ['> 1%'] } });\ncompat.compat({ version: '3.0' });\ncompat.compat({ inverse: true });\n\ncompat2();\ncompat2({});\ncompat2({ modules: 'core-js/actual' });\ncompat2({ modules: 'es.array.push' });\ncompat2({ modules: /^es\\.array\\./ });\ncompat2({ modules: ['core-js/actual', /^es\\.array\\./] });\ncompat2({ exclude: 'core-js/actual' });\ncompat2({ exclude: 'es.array.push' });\ncompat2({ exclude: /^es\\.array\\./ });\ncompat2({ exclude: ['core-js/actual', /^es\\.array\\./] });\ncompat2({ modules: 'core-js/actual', exclude: /^es\\.array\\./ });\ncompat2({ targets: '> 1%' });\ncompat2({ targets: ['defaults', 'last 5 versions'] });\ncompat2({ targets: { esmodules: true, node: 'current', browsers: ['> 1%'] } });\ncompat2({ targets: { chrome: '26', firefox: 4 } });\ncompat2({ targets: { browsers: { chrome: '26', firefox: 4 } } });\ncompat2({ targets: { chrome: '26', firefox: 4, esmodules: true, node: 'current', browsers: ['> 1%'] } });\ncompat2({ version: '3.0' });\ncompat2({ inverse: true });\n"
  },
  {
    "path": "tests/type-definitions/package.json",
    "content": "{\n  \"name\": \"tests/type-definitions\",\n  \"devDependencies\": {\n    \"typescript\": \"^5.9.3\"\n  }\n}\n"
  },
  {
    "path": "tests/type-definitions/runner.mjs",
    "content": "await $`tsc`;\n"
  },
  {
    "path": "tests/type-definitions/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"strict\": true,\n    \"target\": \"esnext\",\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"esModuleInterop\": true,\n    \"noEmit\": true\n  },\n  \"include\": [\n    \"*.ts\"\n  ]\n}\n"
  },
  {
    "path": "tests/unit-browser/global.html",
    "content": "<!DOCTYPE html>\n<meta charset='UTF-8'>\n<title>core-js</title>\n<link rel='stylesheet' href='../bundles/qunit.css'>\n<div id='qunit'></div>\n<div id='qunit-fixture'></div>\n<script src='../bundles/qunit.js'></script>\n<script>\n  window.USE_FUNCTION_CONSTRUCTOR = true;\n</script>\n<script src='../bundles/core-js-bundle.js'></script>\n<script>\n  window.inspectSource = window['__core-js_shared__'].inspectSource;\n</script>\n<script src='../bundles/unit-global.js'></script>\n"
  },
  {
    "path": "tests/unit-browser/pure.html",
    "content": "<!DOCTYPE html>\n<meta charset='UTF-8'>\n<title>core-js-pure</title>\n<link rel='stylesheet' href='../bundles/qunit.css'>\n<div id='qunit'></div>\n<div id='qunit-fixture'></div>\n<script src='../bundles/qunit.js'></script>\n<script>\n  window.USE_FUNCTION_CONSTRUCTOR = true;\n</script>\n<script src='../bundles/unit-pure.js'></script>\n"
  },
  {
    "path": "tests/unit-bun/package.json",
    "content": "{\n  \"name\": \"tests/unit-bun\",\n  \"devDependencies\": {\n    \"qunit\": \"^2.25.0\"\n  }\n}\n"
  },
  {
    "path": "tests/unit-bun/runner.mjs",
    "content": "if (await which('bun', { nothrow: true })) {\n  await Promise.all([\n    // some cases loading from modules works incorrectly in Bun, so test only bundled core-js version\n    // ['packages/core-js/index', 'tests/bundles/unit-global'],\n    ['packages/core-js-bundle/index', 'tests/bundles/unit-global'],\n    ['tests/bundles/unit-pure'],\n  ].map(files => $`bun qunit ${ files.map(file => `../../${ file }.js`) }`));\n} else echo(chalk.cyan('bun is not found'));\n"
  },
  {
    "path": "tests/unit-global/es.aggregate-error.js",
    "content": "/* eslint-disable unicorn/throw-new-error -- testing */\nconst { create } = Object;\n\nQUnit.test('AggregateError', assert => {\n  assert.isFunction(AggregateError);\n  assert.arity(AggregateError, 2);\n  assert.name(AggregateError, 'AggregateError');\n  assert.looksNative(AggregateError);\n  assert.true(new AggregateError([1]) instanceof AggregateError);\n  assert.true(new AggregateError([1]) instanceof Error);\n  assert.true(AggregateError([1]) instanceof AggregateError);\n  assert.true(AggregateError([1]) instanceof Error);\n  assert.same(AggregateError([1], 'foo').message, 'foo');\n  assert.same(AggregateError([1], 123).message, '123');\n  assert.same(AggregateError([1]).message, '');\n  assert.deepEqual(AggregateError([1, 2, 3]).errors, [1, 2, 3]);\n  assert.throws(() => AggregateError([1], Symbol('AggregateError test')), 'throws on symbol as a message');\n  assert.same({}.toString.call(AggregateError([1])), '[object Error]', 'Object#toString');\n\n  assert.same(AggregateError.prototype.constructor, AggregateError, 'prototype constructor');\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  assert.false(AggregateError.prototype.hasOwnProperty('cause'), 'prototype has not cause');\n\n  assert.true(AggregateError([1], 1) instanceof AggregateError, 'no cause, without new');\n  assert.true(new AggregateError([1], 1) instanceof AggregateError, 'no cause, with new');\n\n  assert.true(AggregateError([1], 1, {}) instanceof AggregateError, 'with options, without new');\n  assert.true(new AggregateError([1], 1, {}) instanceof AggregateError, 'with options, with new');\n\n  assert.true(AggregateError([1], 1, 'foo') instanceof AggregateError, 'non-object options, without new');\n  assert.true(new AggregateError([1], 1, 'foo') instanceof AggregateError, 'non-object options, with new');\n\n  assert.same(AggregateError([1], 1, { cause: 7 }).cause, 7, 'cause, without new');\n  assert.same(new AggregateError([1], 1, { cause: 7 }).cause, 7, 'cause, with new');\n\n  assert.same(AggregateError([1], 1, create({ cause: 7 })).cause, 7, 'prototype cause, without new');\n  assert.same(new AggregateError([1], 1, create({ cause: 7 })).cause, 7, 'prototype cause, with new');\n\n  let error = AggregateError([1], 1, { cause: 7 });\n  assert.deepEqual(error.errors, [1]);\n  assert.same(error.name, 'AggregateError', 'instance name');\n  assert.same(error.message, '1', 'instance message');\n  assert.same(error.cause, 7, 'instance cause');\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  assert.true(error.hasOwnProperty('cause'), 'cause is own');\n\n  error = AggregateError([1]);\n  assert.deepEqual(error.errors, [1]);\n  assert.same(error.message, '', 'default instance message');\n  assert.same(error.cause, undefined, 'default instance cause undefined');\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  assert.false(error.hasOwnProperty('cause'), 'default instance cause missed');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array-buffer.constructor.js",
    "content": "import { DESCRIPTORS, GLOBAL, NATIVE } from '../helpers/constants.js';\n\nQUnit.test('ArrayBuffer', assert => {\n  const Symbol = GLOBAL.Symbol || {};\n  // in Safari 5 typeof ArrayBuffer is 'object'\n  assert.same(ArrayBuffer, Object(ArrayBuffer), 'is object');\n  // 0 in V8 ~ Chromium 27-\n  assert.arity(ArrayBuffer, 1);\n  // Safari 5 bug\n  assert.name(ArrayBuffer, 'ArrayBuffer');\n  // Safari 5 bug\n  if (NATIVE) assert.looksNative(ArrayBuffer);\n  assert.same(new ArrayBuffer(123).byteLength, 123, 'length');\n  // fails in Safari\n  assert.throws(() => new ArrayBuffer(-1), RangeError, 'negative length');\n  assert.notThrows(() => new ArrayBuffer(0.5), 'fractional length');\n  assert.notThrows(() => new ArrayBuffer(), 'missed length');\n  if (DESCRIPTORS) assert.same(ArrayBuffer[Symbol.species], ArrayBuffer, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array-buffer.detached.js",
    "content": "/* eslint-disable es/no-shared-array-buffer -- testing */\nimport { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('ArrayBuffer#detached', assert => {\n  assert.same(new ArrayBuffer(8).detached, false, 'default');\n\n  const detached = new ArrayBuffer(8);\n  try {\n    structuredClone(detached, { transfer: [detached] });\n  } catch { /* empty */ }\n\n  if (detached.byteLength === 0) {\n    // works incorrectly in ancient WebKit\n    assert.skip.true(detached.detached, 'detached');\n  }\n\n  if (DESCRIPTORS) {\n    const { get, configurable, enumerable } = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'detached');\n    assert.same(configurable, true, 'configurable');\n    assert.same(enumerable, false, 'non-enumerable');\n    assert.isFunction(get);\n    assert.looksNative(get);\n    assert.throws(() => get.call(null), TypeError, 'non-generic-1');\n    assert.throws(() => get(), TypeError, 'non-generic-2');\n    assert.throws(() => get.call(1), TypeError, 'non-generic-3');\n    assert.throws(() => get.call(true), TypeError, 'non-generic-4');\n    assert.throws(() => get.call(''), TypeError, 'non-generic-5');\n    assert.throws(() => get.call({}), TypeError, 'non-generic-6');\n    if (typeof SharedArrayBuffer == 'function') {\n      assert.throws(() => get.call(new SharedArrayBuffer(8)), TypeError, 'non-generic-7');\n    }\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array-buffer.is-view.js",
    "content": "import { TYPED_ARRAYS } from '../helpers/constants.js';\n\nQUnit.test('ArrayBuffer.isView', assert => {\n  const { isView } = ArrayBuffer;\n  assert.isFunction(isView);\n  assert.arity(isView, 1);\n  assert.name(isView, 'isView');\n  assert.looksNative(isView);\n  assert.nonEnumerable(ArrayBuffer, 'isView');\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    if (TypedArray) {\n      assert.true(isView(new TypedArray([1])), `${ name } - true`);\n    }\n  }\n  assert.true(isView(new DataView(new ArrayBuffer(1))), 'DataView - true');\n  assert.false(isView(new ArrayBuffer(1)), 'ArrayBuffer - false');\n  const examples = [undefined, null, false, true, 0, 1, '', 'qwe', {}, [], function () { /* empty */ }];\n  for (const example of examples) {\n    assert.false(isView(example), `${ example } - false`);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array-buffer.slice.js",
    "content": "import { arrayToBuffer, bufferToArray } from '../helpers/helpers.js';\n\nQUnit.test('ArrayBuffer#slice', assert => {\n  const { slice } = ArrayBuffer.prototype;\n\n  assert.isFunction(slice);\n  assert.arity(slice, 2);\n  assert.name(slice, 'slice');\n  assert.looksNative(slice);\n  // assert.nonEnumerable(ArrayBuffer.prototype, 'slice');\n  const buffer = arrayToBuffer([1, 2, 3, 4, 5]);\n  assert.true(buffer instanceof ArrayBuffer, 'correct buffer');\n  assert.notSame(buffer.slice(), buffer, 'returns new buffer');\n  assert.true(buffer.slice() instanceof ArrayBuffer, 'correct instance');\n  assert.arrayEqual(bufferToArray(buffer.slice()), [1, 2, 3, 4, 5]);\n  assert.arrayEqual(bufferToArray(buffer.slice(1, 3)), [2, 3]);\n  assert.arrayEqual(bufferToArray(buffer.slice(1, undefined)), [2, 3, 4, 5]);\n  assert.arrayEqual(bufferToArray(buffer.slice(1, -1)), [2, 3, 4]);\n  assert.arrayEqual(bufferToArray(buffer.slice(-2, -1)), [4]);\n  assert.arrayEqual(bufferToArray(buffer.slice(-2, -3)), []);\n});\n"
  },
  {
    "path": "tests/unit-global/es.array-buffer.transfer-to-fixed-length.js",
    "content": "/* eslint-disable es/no-shared-array-buffer -- testing */\nimport { GLOBAL } from '../helpers/constants.js';\nimport { arrayToBuffer, bufferToArray } from '../helpers/helpers.js';\n\nconst transferToFixedLength = GLOBAL?.ArrayBuffer?.prototype?.transferToFixedLength;\n\nif (transferToFixedLength) QUnit.test('ArrayBuffer#transferToFixedLength', assert => {\n  assert.isFunction(transferToFixedLength);\n  assert.arity(transferToFixedLength, 0);\n  assert.name(transferToFixedLength, 'transferToFixedLength');\n  assert.looksNative(transferToFixedLength);\n  assert.nonEnumerable(ArrayBuffer.prototype, 'transferToFixedLength');\n\n  const DETACHED = 'detached' in ArrayBuffer.prototype;\n\n  const array = [0, 1, 2, 3, 4, 5, 6, 7];\n\n  let buffer = arrayToBuffer(array);\n  let transferred = buffer.transferToFixedLength();\n  assert.notSame(transferred, buffer, 'returns new buffer 1');\n  assert.true(transferred instanceof ArrayBuffer, 'returns ArrayBuffer 1');\n  assert.same(buffer.byteLength, 0, 'original array length 1');\n  // works incorrectly in ancient WebKit\n  if (DETACHED) assert.skip.true(buffer.detached, 'original array detached 1');\n  assert.same(transferred.byteLength, 8, 'proper transferred byteLength 1');\n  assert.arrayEqual(bufferToArray(transferred), array, 'properly copied 1');\n\n  buffer = arrayToBuffer(array);\n  transferred = buffer.transferToFixedLength(5);\n  assert.notSame(transferred, buffer, 'returns new buffer 2');\n  assert.true(transferred instanceof ArrayBuffer, 'returns ArrayBuffer 2');\n  assert.same(buffer.byteLength, 0, 'original array length 2');\n  // works incorrectly in ancient WebKit\n  if (DETACHED) assert.skip.true(buffer.detached, 'original array detached 2');\n  assert.same(transferred.byteLength, 5, 'proper transferred byteLength 2');\n  assert.arrayEqual(bufferToArray(transferred), array.slice(0, 5), 'properly copied 2');\n\n  buffer = arrayToBuffer(array);\n  transferred = buffer.transferToFixedLength(16.7);\n  assert.notSame(transferred, buffer, 'returns new buffer 3');\n  assert.true(transferred instanceof ArrayBuffer, 'returns ArrayBuffer 3');\n  assert.same(buffer.byteLength, 0, 'original array length 3');\n  // works incorrectly in ancient WebKit\n  if (DETACHED) assert.skip.true(buffer.detached, 'original array detached 3');\n  assert.same(transferred.byteLength, 16, 'proper transferred byteLength 3');\n  assert.arrayEqual(bufferToArray(transferred), [...array, 0, 0, 0, 0, 0, 0, 0, 0], 'properly copied 3');\n\n  assert.throws(() => arrayToBuffer(array).transferToFixedLength(-1), RangeError, 'negative length');\n  assert.throws(() => transferToFixedLength.call({}), TypeError, 'non-generic-1');\n  if (typeof SharedArrayBuffer == 'function') {\n    assert.throws(() => transferToFixedLength.call(new SharedArrayBuffer(8)), TypeError, 'non-generic-2');\n  }\n\n  if ('resizable' in ArrayBuffer.prototype) {\n    assert.false(arrayToBuffer(array).transferToFixedLength().resizable, 'non-resizable-1');\n    assert.false(arrayToBuffer(array).transferToFixedLength(5).resizable, 'non-resizable-2');\n\n    buffer = new ArrayBuffer(8, { maxByteLength: 16 });\n    new Int8Array(buffer).set(array);\n    transferred = buffer.transferToFixedLength();\n    assert.arrayEqual(bufferToArray(transferred), array, 'resizable-1');\n    assert.false(transferred.resizable, 'resizable-2');\n\n    buffer = new ArrayBuffer(8, { maxByteLength: 16 });\n    new Int8Array(buffer).set(array);\n    transferred = buffer.transferToFixedLength(5);\n    assert.arrayEqual(bufferToArray(transferred), array.slice(0, 5), 'resizable-3');\n    assert.false(transferred.resizable, 'resizable-4');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array-buffer.transfer.js",
    "content": "/* eslint-disable es/no-shared-array-buffer -- testing */\nimport { GLOBAL } from '../helpers/constants.js';\nimport { arrayToBuffer, bufferToArray } from '../helpers/helpers.js';\n\nconst transfer = GLOBAL?.ArrayBuffer?.prototype?.transfer;\n\nif (transfer) QUnit.test('ArrayBuffer#transfer', assert => {\n  assert.isFunction(transfer);\n  assert.arity(transfer, 0);\n  assert.name(transfer, 'transfer');\n  assert.looksNative(transfer);\n  assert.nonEnumerable(ArrayBuffer.prototype, 'transfer');\n\n  const DETACHED = 'detached' in ArrayBuffer.prototype;\n\n  const array = [0, 1, 2, 3, 4, 5, 6, 7];\n\n  let buffer = arrayToBuffer(array);\n  let transferred = buffer.transfer();\n  assert.notSame(transferred, buffer, 'returns new buffer 1');\n  assert.true(transferred instanceof ArrayBuffer, 'returns ArrayBuffer 1');\n  assert.same(buffer.byteLength, 0, 'original array length 1');\n  // works incorrectly in ancient WebKit\n  if (DETACHED) assert.skip.true(buffer.detached, 'original array detached 1');\n  assert.same(transferred.byteLength, 8, 'proper transferred byteLength 1');\n  assert.arrayEqual(bufferToArray(transferred), array, 'properly copied 1');\n\n  buffer = arrayToBuffer(array);\n  transferred = buffer.transfer(5);\n  assert.notSame(transferred, buffer, 'returns new buffer 2');\n  assert.true(transferred instanceof ArrayBuffer, 'returns ArrayBuffer 2');\n  assert.same(buffer.byteLength, 0, 'original array length 2');\n  // works incorrectly in ancient WebKit\n  if (DETACHED) assert.skip.true(buffer.detached, 'original array detached 2');\n  assert.same(transferred.byteLength, 5, 'proper transferred byteLength 2');\n  assert.arrayEqual(bufferToArray(transferred), array.slice(0, 5), 'properly copied 2');\n\n  buffer = arrayToBuffer(array);\n  transferred = buffer.transfer(16.7);\n  assert.notSame(transferred, buffer, 'returns new buffer 3');\n  assert.true(transferred instanceof ArrayBuffer, 'returns ArrayBuffer 3');\n  assert.same(buffer.byteLength, 0, 'original array length 3');\n  // works incorrectly in ancient WebKit\n  if (DETACHED) assert.skip.true(buffer.detached, 'original array detached 3');\n  assert.same(transferred.byteLength, 16, 'proper transferred byteLength 3');\n  assert.arrayEqual(bufferToArray(transferred), [...array, 0, 0, 0, 0, 0, 0, 0, 0], 'properly copied 3');\n\n  assert.throws(() => arrayToBuffer(array).transfer(-1), RangeError, 'negative length');\n  assert.throws(() => transfer.call({}), TypeError, 'non-generic-1');\n  if (typeof SharedArrayBuffer == 'function') {\n    assert.throws(() => transfer.call(new SharedArrayBuffer(8)), TypeError, 'non-generic-2');\n  }\n\n  if ('resizable' in ArrayBuffer.prototype) {\n    assert.false(arrayToBuffer(array).transfer().resizable, 'non-resizable-1');\n    assert.false(arrayToBuffer(array).transfer(5).resizable, 'non-resizable-2');\n\n    buffer = new ArrayBuffer(8, { maxByteLength: 16 });\n    new Int8Array(buffer).set(array);\n    transferred = buffer.transfer();\n    assert.arrayEqual(bufferToArray(transferred), array, 'resizable-1');\n    assert.true(transferred.resizable, 'resizable-2');\n\n    buffer = new ArrayBuffer(8, { maxByteLength: 16 });\n    new Int8Array(buffer).set(array);\n    transferred = buffer.transfer(5);\n    assert.arrayEqual(bufferToArray(transferred), array.slice(0, 5), 'resizable-3');\n    assert.true(transferred.resizable, 'resizable-4');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.at.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#at', assert => {\n  const { at } = Array.prototype;\n  assert.isFunction(at);\n  assert.arity(at, 1);\n  assert.name(at, 'at');\n  assert.looksNative(at);\n  assert.nonEnumerable(Array.prototype, 'at');\n  assert.same([1, 2, 3].at(0), 1);\n  assert.same([1, 2, 3].at(1), 2);\n  assert.same([1, 2, 3].at(2), 3);\n  assert.same([1, 2, 3].at(3), undefined);\n  assert.same([1, 2, 3].at(-1), 3);\n  assert.same([1, 2, 3].at(-2), 2);\n  assert.same([1, 2, 3].at(-3), 1);\n  assert.same([1, 2, 3].at(-4), undefined);\n  assert.same([1, 2, 3].at(0.4), 1);\n  assert.same([1, 2, 3].at(0.5), 1);\n  assert.same([1, 2, 3].at(0.6), 1);\n  assert.same([1].at(NaN), 1);\n  assert.same([1].at(), 1);\n  assert.same([1, 2, 3].at(-0), 1);\n  assert.same(Array(1).at(0), undefined);\n  assert.same(at.call({ 0: 1, length: 1 }, 0), 1);\n  assert.true('at' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n  if (STRICT) {\n    assert.throws(() => at.call(null, 0), TypeError);\n    assert.throws(() => at.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.concat.js",
    "content": "/* eslint-disable no-sparse-arrays, unicorn/prefer-array-flat -- required for testing */\nQUnit.test('Array#concat', assert => {\n  const { concat } = Array.prototype;\n  assert.isFunction(concat);\n  assert.arity(concat, 1);\n  assert.name(concat, 'concat');\n  assert.looksNative(concat);\n  assert.nonEnumerable(Array.prototype, 'concat');\n  let array = [1, 2];\n  const sparseArray = [1, , 2];\n  const nonSpreadableArray = [1, 2];\n  nonSpreadableArray[Symbol.isConcatSpreadable] = false;\n  const arrayLike = { 0: 1, 1: 2, length: 2 };\n  const spreadableArrayLike = { 0: 1, 1: 2, length: 2, [Symbol.isConcatSpreadable]: true };\n  assert.deepEqual(array.concat(), [1, 2], '#1');\n  assert.deepEqual(sparseArray.concat(), [1, , 2], '#2');\n  assert.deepEqual(nonSpreadableArray.concat(), [[1, 2]], '#3');\n  assert.deepEqual(concat.call(arrayLike), [{ 0: 1, 1: 2, length: 2 }], '#4');\n  assert.deepEqual(concat.call(spreadableArrayLike), [1, 2], '#5');\n  assert.deepEqual([].concat(array), [1, 2], '#6');\n  assert.deepEqual([].concat(sparseArray), [1, , 2], '#7');\n  assert.deepEqual([].concat(nonSpreadableArray), [[1, 2]], '#8');\n  assert.deepEqual([].concat(arrayLike), [{ 0: 1, 1: 2, length: 2 }], '#9');\n  assert.deepEqual([].concat(spreadableArrayLike), [1, 2], '#10');\n  assert.deepEqual(array.concat(sparseArray, nonSpreadableArray, arrayLike, spreadableArrayLike), [\n    1, 2, 1, , 2, [1, 2], { 0: 1, 1: 2, length: 2 }, 1, 2,\n  ], '#11');\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  // https://bugs.webkit.org/show_bug.cgi?id=281061\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- @@species\n  assert.same(array.concat().foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.copy-within.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#copyWithin', assert => {\n  const { copyWithin } = Array.prototype;\n  assert.isFunction(copyWithin);\n  assert.arity(copyWithin, 2);\n  assert.name(copyWithin, 'copyWithin');\n  assert.looksNative(copyWithin);\n  const array = [1];\n  assert.same(array.copyWithin(0), array);\n  assert.nonEnumerable(Array.prototype, 'copyWithin');\n  assert.deepEqual([1, 2, 3, 4, 5].copyWithin(0, 3), [4, 5, 3, 4, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].copyWithin(1, 3), [1, 4, 5, 4, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].copyWithin(1, 2), [1, 3, 4, 5, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].copyWithin(2, 2), [1, 2, 3, 4, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].copyWithin(0, 3, 4), [4, 2, 3, 4, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].copyWithin(1, 3, 4), [1, 4, 3, 4, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].copyWithin(1, 2, 4), [1, 3, 4, 4, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].copyWithin(0, -2), [4, 5, 3, 4, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].copyWithin(0, -2, -1), [4, 2, 3, 4, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].copyWithin(-4, -3, -2), [1, 3, 3, 4, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].copyWithin(-4, -3, -1), [1, 3, 4, 4, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].copyWithin(-4, -3), [1, 3, 4, 5, 5]);\n  if (STRICT) {\n    assert.throws(() => copyWithin.call(null, 0), TypeError);\n    assert.throws(() => copyWithin.call(undefined, 0), TypeError);\n  }\n  assert.true('copyWithin' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.every.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#every', assert => {\n  const { every } = Array.prototype;\n  assert.isFunction(every);\n  assert.arity(every, 1);\n  assert.name(every, 'every');\n  assert.looksNative(every);\n  assert.nonEnumerable(Array.prototype, 'every');\n  let array = [1];\n  const context = {};\n  array.every(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.true([1, 2, 3].every(it => typeof it == 'number'));\n  assert.true([1, 2, 3].every(it => it < 4));\n  assert.false([1, 2, 3].every(it => it < 3));\n  assert.false([1, 2, 3].every(it => typeof it == 'string'));\n  assert.true([1, 2, 3].every(function () {\n    return +this === 1;\n  }, 1));\n  let result = '';\n  [1, 2, 3].every((value, key) => result += key);\n  assert.same(result, '012');\n  array = [1, 2, 3];\n  assert.true(array.every((value, key, that) => that === array));\n  if (STRICT) {\n    assert.throws(() => every.call(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => every.call(undefined, () => { /* empty */ }), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.fill.js",
    "content": "import { DESCRIPTORS, NATIVE, STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#fill', assert => {\n  const { fill } = Array.prototype;\n  assert.isFunction(fill);\n  assert.arity(fill, 1);\n  assert.name(fill, 'fill');\n  assert.looksNative(fill);\n  assert.nonEnumerable(Array.prototype, 'fill');\n  const array = new Array(5);\n  assert.same(array.fill(5), array);\n  assert.deepEqual(Array(5).fill(5), [5, 5, 5, 5, 5]);\n  assert.deepEqual(Array(5).fill(5, 1), [undefined, 5, 5, 5, 5]);\n  assert.deepEqual(Array(5).fill(5, 1, 4), [undefined, 5, 5, 5, undefined]);\n  assert.deepEqual(Array(5).fill(5, 6, 1), [undefined, undefined, undefined, undefined, undefined]);\n  assert.deepEqual(Array(5).fill(5, -3, 4), [undefined, undefined, 5, 5, undefined]);\n  assert.arrayEqual(fill.call({ length: 5 }, 5), [5, 5, 5, 5, 5]);\n  if (STRICT) {\n    assert.throws(() => fill.call(null, 0), TypeError);\n    assert.throws(() => fill.call(undefined, 0), TypeError);\n  }\n  if (NATIVE && DESCRIPTORS) {\n    assert.notThrows(() => fill.call(Object.defineProperty({\n      length: -1,\n    }, 0, {\n      set() {\n        throw new Error();\n      },\n    })), 'uses ToLength');\n  }\n  assert.true('fill' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.filter.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#filter', assert => {\n  const { filter } = Array.prototype;\n  assert.isFunction(filter);\n  assert.arity(filter, 1);\n  assert.name(filter, 'filter');\n  assert.looksNative(filter);\n  assert.nonEnumerable(Array.prototype, 'filter');\n  let array = [1];\n  const context = {};\n  array.filter(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.deepEqual([1, 2, 3, 'q', {}, 4, true, 5].filter(it => typeof it == 'number'), [1, 2, 3, 4, 5]);\n  if (STRICT) {\n    assert.throws(() => filter.call(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => filter.call(undefined, () => { /* empty */ }), TypeError);\n  }\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- @@species\n  assert.same(array.filter(Boolean).foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.find-index.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#findIndex', assert => {\n  const { findIndex } = Array.prototype;\n  assert.isFunction(findIndex);\n  assert.arity(findIndex, 1);\n  assert.name(findIndex, 'findIndex');\n  assert.looksNative(findIndex);\n  assert.nonEnumerable(Array.prototype, 'findIndex');\n  const array = [1];\n  const context = {};\n  array.findIndex(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  // eslint-disable-next-line unicorn/prefer-array-index-of -- ignore\n  assert.same([1, 3, NaN, 42, {}].findIndex(it => it === 42), 3);\n  // eslint-disable-next-line unicorn/prefer-array-index-of -- ignore\n  assert.same([1, 3, NaN, 42, {}].findIndex(it => it === 43), -1);\n  if (STRICT) {\n    assert.throws(() => findIndex.call(null, 0), TypeError);\n    assert.throws(() => findIndex.call(undefined, 0), TypeError);\n  }\n  assert.notThrows(() => findIndex.call({\n    length: -1,\n    0: 1,\n  }, () => {\n    throw new Error();\n  }) === -1, 'uses ToLength');\n  assert.true('findIndex' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.find-last-index.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#findLastIndex', assert => {\n  const { findLastIndex } = Array.prototype;\n  assert.isFunction(findLastIndex);\n  assert.arity(findLastIndex, 1);\n  assert.name(findLastIndex, 'findLastIndex');\n  assert.looksNative(findLastIndex);\n  assert.nonEnumerable(Array.prototype, 'findLastIndex');\n  const array = [1];\n  const context = {};\n  array.findLastIndex(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.same([{}, 2, NaN, 42, 1].findLastIndex(it => !(it % 2)), 3);\n  assert.same([{}, 2, NaN, 42, 1].findLastIndex(it => it > 42), -1);\n  let values = '';\n  let keys = '';\n  [1, 2, 3].findLastIndex((value, key) => {\n    values += value;\n    keys += key;\n  });\n  assert.same(values, '321');\n  assert.same(keys, '210');\n  if (STRICT) {\n    assert.throws(() => findLastIndex.call(null, 0), TypeError);\n    assert.throws(() => findLastIndex.call(undefined, 0), TypeError);\n  }\n  assert.notThrows(() => findLastIndex.call({\n    length: -1,\n    0: 1,\n  }, () => {\n    throw new Error();\n  }) === -1, 'uses ToLength');\n  assert.true('findLastIndex' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.find-last.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#findLast', assert => {\n  const { findLast } = Array.prototype;\n  assert.isFunction(findLast);\n  assert.arity(findLast, 1);\n  assert.name(findLast, 'findLast');\n  assert.looksNative(findLast);\n  assert.nonEnumerable(Array.prototype, 'findLast');\n  const array = [1];\n  const context = {};\n  array.findLast(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.same([{}, 2, NaN, 42, 1].findLast(it => !(it % 2)), 42);\n  assert.same([{}, 2, NaN, 42, 1].findLast(it => it === 43), undefined);\n  let values = '';\n  let keys = '';\n  [1, 2, 3].findLast((value, key) => {\n    values += value;\n    keys += key;\n  });\n  assert.same(values, '321');\n  assert.same(keys, '210');\n  if (STRICT) {\n    assert.throws(() => findLast.call(null, 0), TypeError);\n    assert.throws(() => findLast.call(undefined, 0), TypeError);\n  }\n  assert.notThrows(() => findLast.call({\n    length: -1,\n    0: 1,\n  }, () => {\n    throw new Error();\n  }) === undefined, 'uses ToLength');\n  assert.true('findLast' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.find.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#find', assert => {\n  const { find } = Array.prototype;\n  assert.isFunction(find);\n  assert.arity(find, 1);\n  assert.name(find, 'find');\n  assert.looksNative(find);\n  assert.nonEnumerable(Array.prototype, 'find');\n  const array = [1];\n  const context = {};\n  array.find(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.same([1, 3, NaN, 42, {}].find(it => it === 42), 42);\n  assert.same([1, 3, NaN, 42, {}].find(it => it === 43), undefined);\n  if (STRICT) {\n    assert.throws(() => find.call(null, 0), TypeError);\n    assert.throws(() => find.call(undefined, 0), TypeError);\n  }\n  assert.notThrows(() => find.call({\n    length: -1,\n    0: 1,\n  }, () => {\n    throw new Error();\n  }) === undefined, 'uses ToLength');\n  assert.true('find' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.flat-map.js",
    "content": "/* eslint-disable unicorn/prefer-array-flat -- required for testing */\nimport { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#flatMap', assert => {\n  const { flatMap } = Array.prototype;\n  assert.isFunction(flatMap);\n  assert.name(flatMap, 'flatMap');\n  assert.arity(flatMap, 1);\n  assert.looksNative(flatMap);\n  assert.nonEnumerable(Array.prototype, 'flatMap');\n  assert.deepEqual([].flatMap(it => it), []);\n  assert.deepEqual([1, 2, 3].flatMap(it => it), [1, 2, 3]);\n  assert.deepEqual([1, 2, 3].flatMap(it => [it, it]), [1, 1, 2, 2, 3, 3]);\n  assert.deepEqual([1, 2, 3].flatMap(it => [[it], [it]]), [[1], [1], [2], [2], [3], [3]]);\n  assert.deepEqual([1, [2, 3]].flatMap(() => 1), [1, 1]);\n  const array = [1];\n  const context = {};\n  array.flatMap(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n    return value;\n  }, context);\n  if (STRICT) {\n    assert.throws(() => flatMap.call(null, it => it), TypeError);\n    assert.throws(() => flatMap.call(undefined, it => it), TypeError);\n  }\n  assert.notThrows(() => flatMap.call({ length: -1 }, () => {\n    throw new Error();\n  }).length === 0, 'uses ToLength');\n  assert.true('flatMap' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.flat.js",
    "content": "import { DESCRIPTORS, STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#flat', assert => {\n  const { flat } = Array.prototype;\n  const { defineProperty } = Object;\n  assert.isFunction(flat);\n  assert.name(flat, 'flat');\n  assert.arity(flat, 0);\n  assert.looksNative(flat);\n  assert.nonEnumerable(Array.prototype, 'flat');\n  assert.deepEqual([].flat(), []);\n  const array = [1, [2, 3], [4, [5, 6]]];\n  assert.deepEqual(array.flat(0), array);\n  // eslint-disable-next-line unicorn/no-unnecessary-array-flat-depth -- testing\n  assert.deepEqual(array.flat(1), [1, 2, 3, 4, [5, 6]]);\n  assert.deepEqual(array.flat(), [1, 2, 3, 4, [5, 6]]);\n  assert.deepEqual(array.flat(2), [1, 2, 3, 4, 5, 6]);\n  assert.deepEqual(array.flat(3), [1, 2, 3, 4, 5, 6]);\n  assert.deepEqual(array.flat(-1), array);\n  assert.deepEqual(array.flat(Infinity), [1, 2, 3, 4, 5, 6]);\n  if (STRICT) {\n    assert.throws(() => flat.call(null), TypeError);\n    assert.throws(() => flat.call(undefined), TypeError);\n  }\n  if (DESCRIPTORS) {\n    assert.notThrows(() => flat.call(defineProperty({ length: -1 }, 0, {\n      enumerable: true,\n      get() {\n        throw new Error();\n      },\n    })).length === 0, 'uses ToLength');\n  }\n  assert.true('flat' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.for-each.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#forEach', assert => {\n  const { forEach } = Array.prototype;\n  assert.isFunction(forEach);\n  assert.arity(forEach, 1);\n  assert.name(forEach, 'forEach');\n  assert.looksNative(forEach);\n  assert.nonEnumerable(Array.prototype, 'forEach');\n  let array = [1];\n  const context = {};\n  array.forEach(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  let result = '';\n  [1, 2, 3].forEach(value => {\n    result += value;\n  });\n  assert.same(result, '123');\n  result = '';\n  [1, 2, 3].forEach((value, key) => {\n    result += key;\n  });\n  assert.same(result, '012');\n  result = '';\n  [1, 2, 3].forEach((value, key, that) => {\n    result += that;\n  });\n  assert.same(result, '1,2,31,2,31,2,3');\n  result = '';\n  [1, 2, 3].forEach(function () {\n    result += this;\n  }, 1);\n  assert.same(result, '111');\n  result = '';\n  array = [];\n  array[5] = '';\n  array.forEach((value, key) => {\n    result += key;\n  });\n  assert.same(result, '5');\n  if (STRICT) {\n    assert.throws(() => {\n      forEach.call(null, () => { /* empty */ });\n    }, TypeError);\n    assert.throws(() => {\n      forEach.call(undefined, () => { /* empty */ });\n    }, TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.from-async.js",
    "content": "import { createAsyncIterable, createIterable/* , createIterator */ } from '../helpers/helpers.js';\nimport { STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('Array.fromAsync', assert => {\n  const { fromAsync } = Array;\n\n  assert.isFunction(fromAsync);\n  assert.arity(fromAsync, 1);\n  assert.name(fromAsync, 'fromAsync');\n  assert.looksNative(fromAsync);\n  assert.nonEnumerable(Array, 'fromAsync');\n\n  let counter = 0;\n  // eslint-disable-next-line prefer-arrow-callback -- constructor\n  fromAsync.call(function () {\n    counter++;\n    return [];\n  }, { length: 0 });\n\n  assert.same(counter, 1, 'proper number of constructor calling');\n\n  function C() { /* empty */ }\n\n  // const closableIterator = createIterator([1], {\n  //   return() { this.closed = true; return { value: undefined, done: true }; },\n  // });\n\n  return fromAsync(createAsyncIterable([1, 2, 3]), it => it ** 2).then(it => {\n    assert.arrayEqual(it, [1, 4, 9], 'async iterable and mapfn');\n    return fromAsync(createAsyncIterable([1]), function (arg, index) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(index, 0, 'index');\n    });\n  }).then(() => {\n    return fromAsync(createAsyncIterable([1, 2, 3]));\n  }).then(it => {\n    assert.arrayEqual(it, [1, 2, 3], 'async iterable without mapfn');\n    return fromAsync(createIterable([1, 2, 3]), arg => arg ** 2);\n  }).then(it => {\n    assert.arrayEqual(it, [1, 4, 9], 'iterable and mapfn');\n    return fromAsync(createIterable([1, 2, 3]), arg => Promise.resolve(arg ** 2));\n  }).then(it => {\n    assert.arrayEqual(it, [1, 4, 9], 'iterable and async mapfn');\n    return fromAsync(createIterable([1]), function (arg, index) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(index, 0, 'index');\n    });\n  }).then(() => {\n    return fromAsync(createIterable([1, 2, 3]));\n  }).then(it => {\n    assert.arrayEqual(it, [1, 2, 3], 'iterable and without mapfn');\n    return fromAsync([1, Promise.resolve(2), 3]);\n  }).then(it => {\n    assert.arrayEqual(it, [1, 2, 3], 'array');\n    return fromAsync('123');\n  }).then(it => {\n    assert.arrayEqual(it, ['1', '2', '3'], 'string');\n    return fromAsync.call(C, [1]);\n  }).then(it => {\n    assert.true(it instanceof C, 'subclassable');\n    return fromAsync({ length: 1, 0: 1 });\n  }).then(it => {\n    assert.arrayEqual(it, [1], 'non-iterable');\n    return fromAsync(createIterable([1]), () => { throw 42; });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n    return fromAsync(undefined, () => { /* empty */ });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof TypeError);\n    return fromAsync(null, () => { /* empty */ });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof TypeError);\n    return fromAsync([1], null);\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof TypeError);\n    return fromAsync([1], {});\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof TypeError);\n    // sync iterable: return() should be called through AsyncFromSyncIterator on early termination\n    const closable = createIterable([1, 2, 3], {\n      return() {\n        closable.closed = true;\n        return { value: undefined, done: true };\n      },\n    });\n    return fromAsync(closable, item => {\n      if (item === 2) throw 42;\n      return item;\n    }).then(() => {\n      assert.avoid();\n    }, err => {\n      assert.same(err, 42, 'sync iterable: rejection on callback error');\n      assert.true(closable.closed, 'sync iterable: return() called on early termination');\n    });\n  });\n  /* Tests are temporarily disabled due to the lack of proper async feature detection in native implementations.\n  .then(() => {\n    return fromAsync(Iterator.from(closableIterator), () => { throw 42; });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n    assert.true(closableIterator.closed, 'closes sync iterator on promise rejection');\n  }); */\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.from.js",
    "content": "/* eslint-disable prefer-rest-params -- required for testing */\nimport { DESCRIPTORS, GLOBAL } from '../helpers/constants.js';\nimport { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Array.from', assert => {\n  const Symbol = GLOBAL.Symbol || {};\n  const { from } = Array;\n  const { defineProperty } = Object;\n  assert.isFunction(from);\n  assert.arity(from, 1);\n  assert.name(from, 'from');\n  assert.looksNative(from);\n  assert.nonEnumerable(Array, 'from');\n  let types = {\n    'array-like': {\n      length: '3',\n      0: '1',\n      1: '2',\n      2: '3',\n    },\n    arguments: function () {\n      return arguments;\n    }('1', '2', '3'),\n    array: ['1', '2', '3'],\n    iterable: createIterable(['1', '2', '3']),\n    string: '123',\n  };\n  for (const type in types) {\n    const data = types[type];\n    assert.arrayEqual(from(data), ['1', '2', '3'], `Works with ${ type }`);\n    assert.arrayEqual(from(data, it => it ** 2), [1, 4, 9], `Works with ${ type } + mapFn`);\n  }\n  types = {\n    'array-like': {\n      length: 1,\n      0: 1,\n    },\n    arguments: function () {\n      return arguments;\n    }(1),\n    array: [1],\n    iterable: createIterable([1]),\n    string: '1',\n  };\n  for (const type in types) {\n    const data = types[type];\n    const context = {};\n    assert.arrayEqual(from(data, function (value, key) {\n      assert.same(this, context, `Works with ${ type }, correct callback context`);\n      assert.same(value, type === 'string' ? '1' : 1, `Works with ${ type }, correct callback value`);\n      assert.same(key, 0, `Works with ${ type }, correct callback key`);\n      assert.same(arguments.length, 2, `Works with ${ type }, correct callback arguments number`);\n      return 42;\n    }, context), [42], `Works with ${ type }, correct result`);\n  }\n  const primitives = [false, true, 0];\n  for (const primitive of primitives) {\n    assert.arrayEqual(from(primitive), [], `Works with ${ primitive }`);\n  }\n  assert.throws(() => from(null), TypeError, 'Throws on null');\n  assert.throws(() => from(undefined), TypeError, 'Throws on undefined');\n  assert.arrayEqual(from('𠮷𠮷𠮷'), ['𠮷', '𠮷', '𠮷'], 'Uses correct string iterator');\n  let done = true;\n  from(createIterable([1, 2, 3], {\n    return() {\n      return done = false;\n    },\n  }), () => false);\n  assert.true(done, '.return #default');\n  done = false;\n  try {\n    from(createIterable([1, 2, 3], {\n      return() {\n        return done = true;\n      },\n    }), () => {\n      throw new Error();\n    });\n  } catch { /* empty */ }\n  assert.true(done, '.return #throw');\n  class C { /* empty */ }\n  let instance = from.call(C, createIterable([1, 2]));\n  assert.true(instance instanceof C, 'generic, iterable case, instanceof');\n  assert.arrayEqual(instance, [1, 2], 'generic, iterable case, elements');\n  instance = from.call(C, {\n    0: 1,\n    1: 2,\n    length: 2,\n  });\n  assert.true(instance instanceof C, 'generic, array-like case, instanceof');\n  assert.arrayEqual(instance, [1, 2], 'generic, array-like case, elements');\n  let array = [1, 2, 3];\n  done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return [][Symbol.iterator].call(this);\n  };\n  assert.arrayEqual(from(array), [1, 2, 3], 'Array with custom iterator, elements');\n  assert.true(done, 'call @@iterator in Array with custom iterator');\n  array = [1, 2, 3];\n  delete array[1];\n  assert.arrayEqual(from(array, String), ['1', 'undefined', '3'], 'Ignores holes');\n  assert.notThrows(() => from({\n    length: -1,\n    0: 1,\n  }, () => {\n    throw new Error();\n  }).length === 0, 'Uses ToLength');\n  assert.arrayEqual(from([], undefined), [], 'Works with undefined as second argument');\n  assert.throws(() => from([], null), TypeError, 'Throws with null as second argument');\n  assert.throws(() => from([], 0), TypeError, 'Throws with 0 as second argument');\n  assert.throws(() => from([], ''), TypeError, 'Throws with \"\" as second argument');\n  assert.throws(() => from([], false), TypeError, 'Throws with false as second argument');\n  assert.throws(() => from([], {}), TypeError, 'Throws with {} as second argument');\n  if (DESCRIPTORS) {\n    let called = false;\n    defineProperty(C.prototype, 0, {\n      set() {\n        called = true;\n      },\n    });\n    from.call(C, [1, 2, 3]);\n    assert.false(called, 'Should not call prototype accessors');\n  }\n  // iterator should be closed when createProperty fails\n  if (DESCRIPTORS) {\n    let returnCalled = false;\n    const iterable = {\n      [Symbol.iterator]() {\n        return {\n          next() { return { value: 1, done: false }; },\n          return() { returnCalled = true; return { done: true }; },\n        };\n      },\n    };\n    const Frozen = function () { return Object.freeze([]); };\n    assert.throws(() => from.call(Frozen, iterable), TypeError, 'throws when createProperty fails');\n    assert.true(returnCalled, 'iterator is closed when createProperty throws');\n  }\n  // mapfn callable check should happen before ToObject(items)\n  assert.throws(() => from(null, 42), TypeError, 'non-callable mapfn with null items throws for mapfn');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.includes.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#includes', assert => {\n  const { includes } = Array.prototype;\n  assert.isFunction(includes);\n  assert.name(includes, 'includes');\n  assert.arity(includes, 1);\n  assert.looksNative(includes);\n  assert.nonEnumerable(Array.prototype, 'includes');\n  const object = {};\n  const array = [1, 2, 3, -0, object];\n  assert.true(array.includes(1));\n  assert.true(array.includes(-0));\n  assert.true(array.includes(0));\n  assert.true(array.includes(object));\n  assert.false(array.includes(4));\n  assert.false(array.includes(-0.5));\n  assert.false(array.includes({}));\n  assert.true(Array(1).includes(undefined));\n  assert.true([NaN].includes(NaN));\n  // https://bugs.webkit.org/show_bug.cgi?id=309342\n  // eslint-disable-next-line no-sparse-arrays -- testing\n  assert.false([, 1].includes(undefined, 1), '`Array#includes(undefined, fromIndex)` should not find holes before fromIndex');\n  if (STRICT) {\n    assert.throws(() => includes.call(null, 0), TypeError);\n    assert.throws(() => includes.call(undefined, 0), TypeError);\n  }\n  assert.true('includes' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.index-of.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#indexOf', assert => {\n  const { indexOf } = Array.prototype;\n  assert.isFunction(indexOf);\n  assert.arity(indexOf, 1);\n  assert.name(indexOf, 'indexOf');\n  assert.looksNative(indexOf);\n  assert.nonEnumerable(Array.prototype, 'indexOf');\n  assert.same([1, 1, 1].indexOf(1), 0);\n  assert.same([1, 2, 3].indexOf(1, 1), -1);\n  assert.same([1, 2, 3].indexOf(2, 1), 1);\n  assert.same([1, 2, 3].indexOf(2, -1), -1);\n  assert.same([1, 2, 3].indexOf(2, -2), 1);\n  assert.same([NaN].indexOf(NaN), -1);\n  assert.same(Array(2).concat([1, 2, 3]).indexOf(2), 3);\n  assert.same(Array(1).indexOf(undefined), -1);\n  assert.same([1].indexOf(1, -0), 0, \"shouldn't return negative zero\");\n  if (STRICT) {\n    assert.throws(() => indexOf.call(null, 0), TypeError);\n    assert.throws(() => indexOf.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.is-array.js",
    "content": "QUnit.test('Array.isArray', assert => {\n  const { isArray } = Array;\n  assert.isFunction(isArray);\n  assert.arity(isArray, 1);\n  assert.name(isArray, 'isArray');\n  assert.looksNative(isArray);\n  assert.nonEnumerable(Array, 'isArray');\n  assert.false(isArray({}));\n  assert.false(isArray(function () {\n    // eslint-disable-next-line prefer-rest-params -- required for testing\n    return arguments;\n  }()));\n  assert.true(isArray([]));\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.iterator.js",
    "content": "import { GLOBAL } from '../helpers/constants.js';\n\nconst Symbol = GLOBAL.Symbol || {};\n\nQUnit.test('Array#keys', assert => {\n  const { keys } = Array.prototype;\n  assert.isFunction(keys);\n  assert.arity(keys, 0);\n  assert.name(keys, 'keys');\n  assert.looksNative(keys);\n  assert.nonEnumerable(Array.prototype, 'keys');\n  const iterator = ['q', 'w', 'e'].keys();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Array Iterator');\n  assert.same(String(iterator), '[object Array Iterator]');\n  assert.deepEqual(iterator.next(), {\n    value: 0,\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 1,\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 2,\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  /* still not fixed even in modern WebKit\n  assert.deepEqual(keys.call({\n    length: -1,\n  }).next(), {\n    value: undefined,\n    done: true,\n  }, 'uses ToLength');\n  */\n  assert.true('keys' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n\nQUnit.test('Array#values', assert => {\n  const { values } = Array.prototype;\n  assert.isFunction(values);\n  assert.arity(values, 0);\n  assert.name(values, 'values');\n  assert.looksNative(values);\n  assert.nonEnumerable(Array.prototype, 'values');\n  const iterator = ['q', 'w', 'e'].values();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Array Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  /* still not fixed even in modern WebKit\n  assert.deepEqual(values.call({\n    length: -1,\n  }).next(), {\n    value: undefined,\n    done: true,\n  }, 'uses ToLength');\n  */\n  assert.true('values' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n\nQUnit.test('Array#entries', assert => {\n  const { entries } = Array.prototype;\n  assert.isFunction(entries);\n  assert.arity(entries, 0);\n  assert.name(entries, 'entries');\n  assert.looksNative(entries);\n  assert.nonEnumerable(Array.prototype, 'entries');\n  const iterator = ['q', 'w', 'e'].entries();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Array Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: [0, 'q'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: [1, 'w'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: [2, 'e'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  /* still not fixed even in modern WebKit\n  assert.deepEqual(entries.call({\n    length: -1,\n  }).next(), {\n    value: undefined,\n    done: true,\n  }, 'uses ToLength');\n  */\n  assert.true('entries' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n\nQUnit.test('Array#@@iterator', assert => {\n  assert.isIterable(Array.prototype);\n  assert.arity(Array.prototype[Symbol.iterator], 0);\n  assert.name(Array.prototype[Symbol.iterator], 'values');\n  assert.looksNative(Array.prototype[Symbol.iterator]);\n  assert.nonEnumerable(Array.prototype, Symbol.iterator);\n  assert.same(Array.prototype[Symbol.iterator], Array.prototype.values);\n  const iterator = ['q', 'w', 'e'][Symbol.iterator]();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Array Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  /* still not fixed even in modern WebKit\n  assert.deepEqual(Array.prototype[Symbol.iterator].call({\n    length: -1,\n  }).next(), {\n    value: undefined,\n    done: true,\n  }, 'uses ToLength');\n  */\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.join.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#join', assert => {\n  const { join } = Array.prototype;\n  assert.isFunction(join);\n  assert.arity(join, 1);\n  assert.name(join, 'join');\n  assert.looksNative(join);\n  assert.nonEnumerable(Array.prototype, 'join');\n  assert.same(join.call([1, 2, 3], undefined), '1,2,3');\n  assert.same(join.call('123'), '1,2,3');\n  assert.same(join.call('123', '|'), '1|2|3');\n  if (STRICT) {\n    assert.throws(() => join.call(null, 0), TypeError);\n    assert.throws(() => join.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.last-index-of.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#lastIndexOf', assert => {\n  const { lastIndexOf } = Array.prototype;\n  assert.isFunction(lastIndexOf);\n  assert.arity(lastIndexOf, 1);\n  assert.name(lastIndexOf, 'lastIndexOf');\n  assert.looksNative(lastIndexOf);\n  assert.nonEnumerable(Array.prototype, 'lastIndexOf');\n  assert.same([1, 1, 1].lastIndexOf(1), 2);\n  assert.same([1, 2, 3].lastIndexOf(3, 1), -1);\n  assert.same([1, 2, 3].lastIndexOf(2, 1), 1);\n  assert.same([1, 2, 3].lastIndexOf(2, -3), -1);\n  assert.same([1, 2, 3].lastIndexOf(1, -4), -1);\n  assert.same([1, 2, 3].lastIndexOf(2, -2), 1);\n  assert.same([NaN].lastIndexOf(NaN), -1);\n  assert.same([1, 2, 3].concat(Array(2)).lastIndexOf(2), 1);\n  assert.same([1].lastIndexOf(1, -0), 0, \"shouldn't return negative zero\");\n  if (STRICT) {\n    assert.throws(() => lastIndexOf.call(null, 0), TypeError);\n    assert.throws(() => lastIndexOf.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.map.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#map', assert => {\n  const { map } = Array.prototype;\n  assert.isFunction(map);\n  assert.arity(map, 1);\n  assert.name(map, 'map');\n  assert.looksNative(map);\n  assert.nonEnumerable(Array.prototype, 'map');\n  let array = [1];\n  const context = {};\n  array.map(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.deepEqual([1, 2, 3].map(value => value + 1), [2, 3, 4]);\n  assert.deepEqual([1, 2, 3].map((value, key) => value + key), [1, 3, 5]);\n  assert.deepEqual([1, 2, 3].map(function () {\n    return +this;\n  }, 2), [2, 2, 2]);\n  if (STRICT) {\n    assert.throws(() => map.call(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => map.call(undefined, () => { /* empty */ }), TypeError);\n  }\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- @@species\n  assert.same(array.map(Boolean).foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.of.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Array.of', assert => {\n  const { defineProperty } = Object;\n  assert.isFunction(Array.of);\n  assert.arity(Array.of, 0);\n  assert.name(Array.of, 'of');\n  assert.looksNative(Array.of);\n  assert.nonEnumerable(Array, 'of');\n  assert.deepEqual(Array.of(1), [1]);\n  assert.deepEqual(Array.of(1, 2, 3), [1, 2, 3]);\n  class C { /* empty */ }\n  const instance = Array.of.call(C, 1, 2);\n  assert.true(instance instanceof C);\n  assert.same(instance[0], 1);\n  assert.same(instance[1], 2);\n  assert.same(instance.length, 2);\n  if (DESCRIPTORS) {\n    let called = false;\n    defineProperty(C.prototype, 0, {\n      set() {\n        called = true;\n      },\n    });\n    Array.of.call(C, 1, 2, 3);\n    assert.false(called, 'Should not call prototype accessors');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.push.js",
    "content": "import { REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR, STRICT } from '../helpers/constants.js';\n\nconst { defineProperty } = Object;\n\nQUnit.test('Array#push', assert => {\n  const { push } = Array.prototype;\n  assert.isFunction(push);\n  assert.arity(push, 1);\n  assert.name(push, 'push');\n  assert.looksNative(push);\n  assert.nonEnumerable(Array.prototype, 'push');\n\n  const object = { length: 0x100000000 };\n  assert.same(push.call(object, 1), 0x100000001, 'proper ToLength #1');\n  assert.same(object[0x100000000], 1, 'proper ToLength #2');\n\n  if (STRICT) {\n    if (REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR) {\n      assert.throws(() => push.call(defineProperty([], 'length', { writable: false }), 1), TypeError, 'non-writable length, with arg');\n      assert.throws(() => push.call(defineProperty([], 'length', { writable: false })), TypeError, 'non-writable length, without arg');\n    }\n\n    assert.throws(() => push.call(null), TypeError);\n    assert.throws(() => push.call(undefined), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.reduce-right.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#reduceRight', assert => {\n  const { reduceRight } = Array.prototype;\n  assert.isFunction(reduceRight);\n  assert.arity(reduceRight, 1);\n  assert.name(reduceRight, 'reduceRight');\n  assert.looksNative(reduceRight);\n  assert.nonEnumerable(Array.prototype, 'reduceRight');\n  const array = [1];\n  const accumulator = {};\n  array.reduceRight(function (memo, value, key, that) {\n    assert.same(arguments.length, 4, 'correct number of callback arguments');\n    assert.same(memo, accumulator, 'correct callback accumulator');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n  }, accumulator);\n  assert.same([1, 2, 3].reduceRight((a, b) => a + b, 1), 7, 'works with initial accumulator');\n  [1, 2].reduceRight((memo, value, key) => {\n    assert.same(memo, 2, 'correct default accumulator');\n    assert.same(value, 1, 'correct start value without initial accumulator');\n    assert.same(key, 0, 'correct start index without initial accumulator');\n  });\n  assert.same([1, 2, 3].reduceRight((a, b) => a + b), 6, 'works without initial accumulator');\n  let values = '';\n  let keys = '';\n  [1, 2, 3].reduceRight((memo, value, key) => {\n    values += value;\n    keys += key;\n  }, 0);\n  assert.same(values, '321', 'correct order #1');\n  assert.same(keys, '210', 'correct order #2');\n  assert.same(reduceRight.call({\n    0: 1,\n    1: 2,\n    length: 2,\n  }, (a, b) => a + b), 3, 'generic');\n  assert.throws(() => reduceRight.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => reduceRight.call(Array(5), () => { /* empty */ }), TypeError);\n  if (STRICT) {\n    assert.throws(() => reduceRight.call(null, () => { /* empty */ }, 1), TypeError);\n    assert.throws(() => reduceRight.call(undefined, () => { /* empty */ }, 1), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.reduce.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#reduce', assert => {\n  const { reduce } = Array.prototype;\n  assert.isFunction(reduce);\n  assert.arity(reduce, 1);\n  assert.name(reduce, 'reduce');\n  assert.looksNative(reduce);\n  assert.nonEnumerable(Array.prototype, 'reduce');\n  const array = [1];\n  const accumulator = {};\n  array.reduce(function (memo, value, key, that) {\n    assert.same(arguments.length, 4, 'correct number of callback arguments');\n    assert.same(memo, accumulator, 'correct callback accumulator');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n  }, accumulator);\n  assert.same([1, 2, 3].reduce((a, b) => a + b, 1), 7, 'works with initial accumulator');\n  [1, 2].reduce((memo, value, key) => {\n    assert.same(memo, 1, 'correct default accumulator');\n    assert.same(value, 2, 'correct start value without initial accumulator');\n    assert.same(key, 1, 'correct start index without initial accumulator');\n  });\n  assert.same([1, 2, 3].reduce((a, b) => a + b), 6, 'works without initial accumulator');\n  let values = '';\n  let keys = '';\n  [1, 2, 3].reduce((memo, value, key) => {\n    values += value;\n    keys += key;\n  }, 0);\n  assert.same(values, '123', 'correct order #1');\n  assert.same(keys, '012', 'correct order #2');\n  assert.same(reduce.call({\n    0: 1,\n    1: 2,\n    length: 2,\n  }, (a, b) => a + b), 3, 'generic');\n  assert.throws(() => reduce.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => reduce.call(Array(5), () => { /* empty */ }), TypeError);\n  if (STRICT) {\n    assert.throws(() => reduce.call(null, () => { /* empty */ }, 1), TypeError);\n    assert.throws(() => reduce.call(undefined, () => { /* empty */ }, 1), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.reverse.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#reverse', assert => {\n  const { reverse } = Array.prototype;\n  assert.isFunction(reverse);\n  assert.arity(reverse, 0);\n  assert.name(reverse, 'reverse');\n  assert.looksNative(reverse);\n  assert.nonEnumerable(Array.prototype, 'reverse');\n  const a = [1, 2.2, 3.3];\n  function fn() {\n    +a;\n    a.reverse();\n  }\n  fn();\n  assert.arrayEqual(a, [3.3, 2.2, 1]);\n  if (STRICT) {\n    assert.throws(() => reverse.call(null, () => { /* empty */ }, 1), TypeError);\n    assert.throws(() => reverse.call(undefined, () => { /* empty */ }, 1), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.slice.js",
    "content": "import { GLOBAL, STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#slice', assert => {\n  const { slice } = Array.prototype;\n  const { isArray } = Array;\n  assert.isFunction(slice);\n  assert.arity(slice, 2);\n  assert.name(slice, 'slice');\n  assert.looksNative(slice);\n  assert.nonEnumerable(Array.prototype, 'slice');\n  let array = ['1', '2', '3', '4', '5'];\n  assert.deepEqual(array.slice(), array);\n  assert.deepEqual(array.slice(1, 3), ['2', '3']);\n  assert.deepEqual(array.slice(1, undefined), ['2', '3', '4', '5']);\n  assert.deepEqual(array.slice(1, -1), ['2', '3', '4']);\n  assert.deepEqual(array.slice(-2, -1), ['4']);\n  assert.deepEqual(array.slice(-2, -3), []);\n  const string = '12345';\n  assert.deepEqual(slice.call(string), array);\n  assert.deepEqual(slice.call(string, 1, 3), ['2', '3']);\n  assert.deepEqual(slice.call(string, 1, undefined), ['2', '3', '4', '5']);\n  assert.deepEqual(slice.call(string, 1, -1), ['2', '3', '4']);\n  assert.deepEqual(slice.call(string, -2, -1), ['4']);\n  assert.deepEqual(slice.call(string, -2, -3), []);\n  const list = GLOBAL.document && document.body && document.body.childNodes;\n  if (list) {\n    assert.notThrows(() => isArray(slice.call(list)), 'works on NodeList');\n  }\n  if (STRICT) {\n    assert.throws(() => slice.call(null), TypeError);\n    assert.throws(() => slice.call(undefined), TypeError);\n  }\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- @@species\n  assert.same(array.slice().foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.some.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#some', assert => {\n  const { some } = Array.prototype;\n  assert.isFunction(some);\n  assert.arity(some, 1);\n  assert.name(some, 'some');\n  assert.looksNative(some);\n  assert.nonEnumerable(Array.prototype, 'some');\n  let array = [1];\n  const context = {};\n  array.some(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.true([1, '2', 3].some(value => typeof value == 'number'));\n  assert.true([1, 2, 3].some(value => value < 3));\n  assert.false([1, 2, 3].some(value => value < 0));\n  assert.false([1, 2, 3].some(value => typeof value == 'string'));\n  assert.false([1, 2, 3].some(function () {\n    return +this !== 1;\n  }, 1));\n  let result = '';\n  [1, 2, 3].some((value, key) => {\n    result += key;\n    return false;\n  });\n  assert.same(result, '012');\n  array = [1, 2, 3];\n  assert.false(array.some((value, key, that) => that !== array));\n  if (STRICT) {\n    assert.throws(() => some.call(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => some.call(undefined, () => { /* empty */ }), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.sort.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#sort', assert => {\n  const { sort } = Array.prototype;\n  assert.isFunction(sort);\n  assert.arity(sort, 1);\n  assert.name(sort, 'sort');\n  assert.looksNative(sort);\n  assert.nonEnumerable(Array.prototype, 'sort');\n\n  assert.deepEqual([1, 3, 2].sort(), [1, 2, 3], '#1');\n  assert.deepEqual([1, 3, 2, 11].sort(), [1, 11, 2, 3], '#2');\n  assert.deepEqual([1, -1, 3, NaN, 2, 0, 11, -0].sort(), [-1, 0, -0, 1, 11, 2, 3, NaN], '#3');\n\n  let array = Array(5);\n  array[0] = 1;\n  array[2] = 3;\n  array[4] = 2;\n  let expected = Array(5);\n  expected[0] = 1;\n  expected[1] = 2;\n  expected[2] = 3;\n  assert.deepEqual(array.sort(), expected, 'holes');\n\n  array = 'zyxwvutsrqponMLKJIHGFEDCBA'.split('');\n  expected = 'ABCDEFGHIJKLMnopqrstuvwxyz'.split('');\n  assert.deepEqual(array.sort(), expected, 'alpha #1');\n\n  array = 'ёяюэьыъщшчцхфутсрПОНМЛКЙИЗЖЕДГВБА'.split('');\n  expected = 'АБВГДЕЖЗИЙКЛМНОПрстуфхцчшщъыьэюяё'.split('');\n  assert.deepEqual(array.sort(), expected, 'alpha #2');\n\n  array = [undefined, 1];\n  assert.notThrows(() => array.sort(() => { throw 1; }), 'undefined #1');\n  assert.deepEqual(array, [1, undefined], 'undefined #2');\n\n  /* Safari TP ~ 17.6 issue\n  const object = {\n    valueOf: () => 1,\n    toString: () => -1,\n  };\n\n  array = {\n    0: undefined,\n    1: 2,\n    2: 1,\n    3: 'X',\n    4: -1,\n    5: 'a',\n    6: true,\n    7: object,\n    8: NaN,\n    10: Infinity,\n    length: 11,\n  };\n\n  expected = {\n    0: -1,\n    1: object,\n    2: 1,\n    3: 2,\n    4: Infinity,\n    5: NaN,\n    6: 'X',\n    7: 'a',\n    8: true,\n    9: undefined,\n    length: 11,\n  };\n\n  assert.deepEqual(sort.call(array), expected, 'custom generic');\n  */\n\n  let index, mod, code, chr, value;\n  expected = Array(516);\n  array = Array(516);\n\n  for (index = 0; index < 516; index++) {\n    mod = index % 4;\n    array[index] = 515 - index;\n    expected[index] = index - 2 * mod + 3;\n  }\n\n  array.sort((a, b) => (a / 4 | 0) - (b / 4 | 0));\n\n  assert.true(1 / [0, -0].sort()[0] > 0, '-0');\n\n  assert.arrayEqual(array, expected, 'stable #1');\n\n  let result = '';\n  array = [];\n\n  // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n  for (code = 65; code < 76; code++) {\n    chr = String.fromCharCode(code);\n\n    switch (code) {\n      case 66: case 69: case 70: case 72: value = 3; break;\n      case 68: case 71: value = 4; break;\n      default: value = 2;\n    }\n\n    for (index = 0; index < 47; index++) {\n      array.push({ k: chr + index, v: value });\n    }\n  }\n\n  array.sort((a, b) => b.v - a.v);\n\n  for (index = 0; index < array.length; index++) {\n    chr = array[index].k.charAt(0);\n    if (result.charAt(result.length - 1) !== chr) result += chr;\n  }\n\n  assert.same(result, 'DGBEFHACIJK', 'stable #2');\n\n  // default comparator returns 0 for equal string representations\n  const obj1 = { toString() { return 'a'; } };\n  const obj2 = { toString() { return 'a'; } };\n  assert.same([obj1, obj2].sort()[0], obj1, 'stable sort for equal string representations');\n\n  assert.notThrows(() => [1, 2, 3].sort(undefined).length === 3, 'works with undefined');\n  assert.throws(() => [1, 2, 3].sort(null), TypeError, 'throws on null');\n  assert.throws(() => [1, 2, 3].sort({}), TypeError, 'throws on {}');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => [Symbol(1), Symbol(2)].sort(), 'w/o cmp throws on symbols');\n  }\n\n  if (STRICT) {\n    assert.throws(() => sort.call(null), TypeError, 'ToObject(this)');\n    assert.throws(() => sort.call(undefined), TypeError, 'ToObject(this)');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.splice.js",
    "content": "import { REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR, STRICT } from '../helpers/constants.js';\n\nconst { defineProperty } = Object;\n\nQUnit.test('Array#splice', assert => {\n  const { splice } = Array.prototype;\n  assert.isFunction(splice);\n  assert.arity(splice, 2);\n  assert.name(splice, 'splice');\n  assert.looksNative(splice);\n  assert.nonEnumerable(Array.prototype, 'splice');\n  let array = [1, 2, 3, 4, 5];\n  assert.deepEqual(array.splice(2), [3, 4, 5]);\n  assert.deepEqual(array, [1, 2]);\n  array = [1, 2, 3, 4, 5];\n  assert.deepEqual(array.splice(-2), [4, 5]);\n  assert.deepEqual(array, [1, 2, 3]);\n  array = [1, 2, 3, 4, 5];\n  assert.deepEqual(array.splice(2, 2), [3, 4]);\n  assert.deepEqual(array, [1, 2, 5]);\n  array = [1, 2, 3, 4, 5];\n  assert.deepEqual(array.splice(2, -2), []);\n  assert.deepEqual(array, [1, 2, 3, 4, 5]);\n  array = [1, 2, 3, 4, 5];\n  assert.deepEqual(array.splice(2, 2, 6, 7), [3, 4]);\n  assert.deepEqual(array, [1, 2, 6, 7, 5]);\n  // ES6 semantics\n  array = [0, 1, 2];\n  assert.deepEqual(array.splice(0), [0, 1, 2]);\n  array = [0, 1, 2];\n  assert.deepEqual(array.splice(1), [1, 2]);\n  array = [0, 1, 2];\n  assert.deepEqual(array.splice(2), [2]);\n  if (STRICT) {\n    if (REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR) {\n      assert.throws(() => splice.call(defineProperty([1, 2, 3], 'length', { writable: false }), 1, 1), TypeError, 'non-writable length');\n    }\n    assert.throws(() => splice.call(null), TypeError);\n    assert.throws(() => splice.call(undefined), TypeError);\n  }\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- @@species\n  assert.same(array.splice().foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.to-reversed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#toReversed', assert => {\n  const { toReversed } = Array.prototype;\n\n  assert.isFunction(toReversed);\n  assert.arity(toReversed, 0);\n  assert.name(toReversed, 'toReversed');\n  assert.looksNative(toReversed);\n  assert.nonEnumerable(Array.prototype, 'toReversed');\n\n  let array = [1, 2];\n  assert.notSame(array.toReversed(), array, 'immutable');\n\n  assert.deepEqual([1, 2.2, 3.3].toReversed(), [3.3, 2.2, 1], 'basic');\n\n  const object = {};\n\n  array = {\n    0: undefined,\n    1: 2,\n    2: 1,\n    3: 'X',\n    4: -1,\n    5: 'a',\n    6: true,\n    7: object,\n    8: NaN,\n    10: Infinity,\n    length: 11,\n  };\n\n  const expected = [\n    Infinity,\n    undefined,\n    NaN,\n    object,\n    true,\n    'a',\n    -1,\n    'X',\n    1,\n    2,\n    undefined,\n  ];\n\n  assert.deepEqual(toReversed.call(array), expected, 'non-array target');\n\n  array = [1];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.true(array.toReversed() instanceof Array, 'non-generic');\n\n  if (STRICT) {\n    assert.throws(() => toReversed.call(null), TypeError);\n    assert.throws(() => toReversed.call(undefined), TypeError);\n  }\n\n  assert.true('toReversed' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.to-sorted.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#toSorted', assert => {\n  const { toSorted } = Array.prototype;\n\n  assert.isFunction(toSorted);\n  assert.arity(toSorted, 1);\n  assert.name(toSorted, 'toSorted');\n  assert.looksNative(toSorted);\n  assert.nonEnumerable(Array.prototype, 'toSorted');\n\n  let array = [1];\n  assert.notSame(array.toSorted(), array, 'immutable');\n\n  assert.deepEqual([1, 3, 2].toSorted(), [1, 2, 3], '#1');\n  assert.deepEqual([1, 3, 2, 11].toSorted(), [1, 11, 2, 3], '#2');\n  assert.deepEqual([1, -1, 3, NaN, 2, 0, 11, -0].toSorted(), [-1, 0, -0, 1, 11, 2, 3, NaN], '#3');\n\n  array = Array(5);\n  array[0] = 1;\n  array[2] = 3;\n  array[4] = 2;\n  let expected = Array(5);\n  expected[0] = 1;\n  expected[1] = 2;\n  expected[2] = 3;\n  assert.deepEqual(array.toSorted(), expected, 'holes');\n\n  array = 'zyxwvutsrqponMLKJIHGFEDCBA'.split('');\n  expected = 'ABCDEFGHIJKLMnopqrstuvwxyz'.split('');\n  assert.deepEqual(array.toSorted(), expected, 'alpha #1');\n\n  array = 'ёяюэьыъщшчцхфутсрПОНМЛКЙИЗЖЕДГВБА'.split('');\n  expected = 'АБВГДЕЖЗИЙКЛМНОПрстуфхцчшщъыьэюяё'.split('');\n  assert.deepEqual(array.toSorted(), expected, 'alpha #2');\n\n  array = [undefined, 1];\n  assert.notThrows(() => array = array.toSorted(() => { throw 1; }), 'undefined #1');\n  assert.deepEqual(array, [1, undefined], 'undefined #2');\n\n  /* Safari TP ~ 17.6 issue\n  const object = {\n    valueOf: () => 1,\n    toString: () => -1,\n  };\n\n  array = {\n    0: undefined,\n    1: 2,\n    2: 1,\n    3: 'X',\n    4: -1,\n    5: 'a',\n    6: true,\n    7: object,\n    8: NaN,\n    10: Infinity,\n    length: 11,\n  };\n\n  expected = [\n    -1,\n    object,\n    1,\n    2,\n    Infinity,\n    NaN,\n    'X',\n    'a',\n    true,\n    undefined,\n    undefined,\n  ];\n\n  assert.deepEqual(toSorted.call(array), expected, 'non-array target');\n  */\n\n  let index, mod, code, chr, value;\n  expected = Array(516);\n  array = Array(516);\n\n  for (index = 0; index < 516; index++) {\n    mod = index % 4;\n    array[index] = 515 - index;\n    expected[index] = index - 2 * mod + 3;\n  }\n\n  assert.arrayEqual(array.toSorted((a, b) => (a / 4 | 0) - (b / 4 | 0)), expected, 'stable #1');\n\n  assert.true(1 / [0, -0].toSorted()[0] > 0, '-0');\n\n  let result = '';\n  array = [];\n\n  // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n  for (code = 65; code < 76; code++) {\n    chr = String.fromCharCode(code);\n\n    switch (code) {\n      case 66: case 69: case 70: case 72: value = 3; break;\n      case 68: case 71: value = 4; break;\n      default: value = 2;\n    }\n\n    for (index = 0; index < 47; index++) {\n      array.push({ k: chr + index, v: value });\n    }\n  }\n\n  array = array.toSorted((a, b) => b.v - a.v);\n\n  for (index = 0; index < array.length; index++) {\n    chr = array[index].k.charAt(0);\n    if (result.charAt(result.length - 1) !== chr) result += chr;\n  }\n\n  assert.same(result, 'DGBEFHACIJK', 'stable #2');\n\n  assert.notThrows(() => [1, 2, 3].toSorted(undefined).length === 3, 'works with undefined');\n  assert.throws(() => [1, 2, 3].toSorted(null), TypeError, 'throws on null');\n  assert.throws(() => [1, 2, 3].toSorted({}), TypeError, 'throws on {}');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => [Symbol(1), Symbol(2)].toSorted(), 'w/o cmp throws on symbols');\n  }\n\n  array = [1];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.true(array.toSorted() instanceof Array, 'non-generic');\n\n  if (STRICT) {\n    assert.throws(() => toSorted.call(null), TypeError, 'ToObject(this)');\n    assert.throws(() => toSorted.call(undefined), TypeError, 'ToObject(this)');\n  }\n\n  assert.true('toSorted' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.to-spliced.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#toSpliced', assert => {\n  const { toSpliced } = Array.prototype;\n\n  assert.isFunction(toSpliced);\n  assert.arity(toSpliced, 2);\n  assert.name(toSpliced, 'toSpliced');\n  assert.looksNative(toSpliced);\n  assert.nonEnumerable(Array.prototype, 'toSpliced');\n\n  let array = [1, 2, 3, 4, 5];\n  assert.notSame(array.toSpliced(2), array, 'immutable');\n\n  assert.deepEqual([1, 2, 3, 4, 5].toSpliced(2), [1, 2]);\n  assert.deepEqual([1, 2, 3, 4, 5].toSpliced(-2), [1, 2, 3]);\n  assert.deepEqual([1, 2, 3, 4, 5].toSpliced(2, 2), [1, 2, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].toSpliced(2, -2), [1, 2, 3, 4, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].toSpliced(2, 2, 6, 7), [1, 2, 6, 7, 5]);\n\n  if (STRICT) {\n    assert.throws(() => toSpliced.call(null), TypeError);\n    assert.throws(() => toSpliced.call(undefined), TypeError);\n  }\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n\n  assert.true(array.toSpliced() instanceof Array, 'non-generic');\n\n  assert.true('toSpliced' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.unshift.js",
    "content": "import { REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR, STRICT } from '../helpers/constants.js';\n\nconst { defineProperty } = Object;\n\nQUnit.test('Array#unshift', assert => {\n  const { unshift } = Array.prototype;\n  assert.isFunction(unshift);\n  assert.arity(unshift, 1);\n  assert.name(unshift, 'unshift');\n  assert.looksNative(unshift);\n  assert.nonEnumerable(Array.prototype, 'unshift');\n\n  assert.same(unshift.call([1], 0), 2, 'proper result');\n\n  if (STRICT) {\n    if (REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR) {\n      assert.throws(() => unshift.call(defineProperty([], 'length', { writable: false }), 1), TypeError, 'non-writable length, with arg');\n      assert.throws(() => unshift.call(defineProperty([], 'length', { writable: false })), TypeError, 'non-writable length, without arg');\n    }\n\n    assert.throws(() => unshift.call(null), TypeError);\n    assert.throws(() => unshift.call(undefined), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.array.with.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#with', assert => {\n  const { with: withAt } = Array.prototype;\n\n  assert.isFunction(withAt);\n  assert.arity(withAt, 2);\n  // assert.name(withAt, 'with');\n  assert.looksNative(withAt);\n  assert.nonEnumerable(Array.prototype, 'with');\n\n  let array = [1, 2, 3, 4, 5];\n  assert.notSame(array.with(2, 1), array, 'immutable');\n\n  assert.deepEqual([1, 2, 3, 4, 5].with(2, 6), [1, 2, 6, 4, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].with(-2, 6), [1, 2, 3, 6, 5]);\n  assert.deepEqual([1, 2, 3, 4, 5].with('1', 6), [1, 6, 3, 4, 5]);\n\n  assert.throws(() => [1, 2, 3, 4, 5].with(5, 6), RangeError);\n  assert.throws(() => [1, 2, 3, 4, 5].with(-6, 6), RangeError);\n\n  if (STRICT) {\n    assert.throws(() => withAt.call(null, 1, 2), TypeError);\n    assert.throws(() => withAt.call(undefined, 1, 2), TypeError);\n  }\n\n  array = [1, 2];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.true(array.with(1, 2) instanceof Array, 'non-generic');\n\n  // Incorrect exception thrown when index coercion fails in Firefox\n  function CustomError() { /* empty */ }\n  const index = { valueOf() { throw new CustomError(); } };\n  assert.throws(() => withAt.call([], index, null), CustomError, 'incorrect error');\n});\n"
  },
  {
    "path": "tests/unit-global/es.async-disposable-stack.constructor.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('AsyncDisposableStack constructor', assert => {\n  assert.isFunction(AsyncDisposableStack);\n  assert.arity(AsyncDisposableStack, 0);\n  assert.name(AsyncDisposableStack, 'AsyncDisposableStack');\n  assert.looksNative(AsyncDisposableStack);\n\n  assert.throws(() => AsyncDisposableStack(), 'throws w/o `new`');\n  assert.true(new AsyncDisposableStack() instanceof AsyncDisposableStack);\n\n  assert.same(AsyncDisposableStack.prototype.constructor, AsyncDisposableStack);\n});\n\nQUnit.test('AsyncDisposableStack#disposeAsync', assert => {\n  assert.isFunction(AsyncDisposableStack.prototype.disposeAsync);\n  assert.arity(AsyncDisposableStack.prototype.disposeAsync, 0);\n  assert.name(AsyncDisposableStack.prototype.disposeAsync, 'disposeAsync');\n  assert.looksNative(AsyncDisposableStack.prototype.disposeAsync);\n  assert.nonEnumerable(AsyncDisposableStack.prototype, 'disposeAsync');\n});\n\nQUnit.test('AsyncDisposableStack#use', assert => {\n  assert.isFunction(AsyncDisposableStack.prototype.use);\n  assert.arity(AsyncDisposableStack.prototype.use, 1);\n  assert.name(AsyncDisposableStack.prototype.use, 'use');\n  assert.looksNative(AsyncDisposableStack.prototype.use);\n  assert.nonEnumerable(AsyncDisposableStack.prototype, 'use');\n\n  let result = '';\n  const stack = new AsyncDisposableStack();\n  const resource = {\n    [Symbol.asyncDispose]() {\n      result += '1';\n      assert.same(this, resource);\n      assert.same(arguments.length, 0);\n    },\n  };\n\n  assert.same(stack.use(resource), resource);\n\n  return stack.disposeAsync().then(it => {\n    assert.same(it, undefined);\n    assert.same(result, '1');\n  });\n});\n\nQUnit.test('AsyncDisposableStack#adopt', assert => {\n  assert.isFunction(AsyncDisposableStack.prototype.adopt);\n  assert.arity(AsyncDisposableStack.prototype.adopt, 2);\n  assert.name(AsyncDisposableStack.prototype.adopt, 'adopt');\n  assert.looksNative(AsyncDisposableStack.prototype.adopt);\n  assert.nonEnumerable(AsyncDisposableStack.prototype, 'adopt');\n\n  let result = '';\n  const stack = new AsyncDisposableStack();\n  const resource = {};\n\n  assert.same(stack.adopt(resource, function (arg) {\n    result += '1';\n    if (STRICT) assert.same(this, undefined);\n    assert.same(arguments.length, 1);\n    assert.same(arg, resource);\n  }), resource);\n\n  return stack.disposeAsync().then(it => {\n    assert.same(it, undefined);\n    assert.same(result, '1');\n  });\n});\n\nQUnit.test('AsyncDisposableStack#defer', assert => {\n  assert.isFunction(AsyncDisposableStack.prototype.defer);\n  assert.arity(AsyncDisposableStack.prototype.defer, 1);\n  assert.name(AsyncDisposableStack.prototype.defer, 'defer');\n  assert.looksNative(AsyncDisposableStack.prototype.defer);\n  assert.nonEnumerable(AsyncDisposableStack.prototype, 'defer');\n\n  let result = '';\n  const stack = new AsyncDisposableStack();\n\n  assert.same(stack.defer(function () {\n    result += '1';\n    if (STRICT) assert.same(this, undefined);\n    assert.same(arguments.length, 0);\n  }), undefined);\n\n  return stack.disposeAsync().then(it => {\n    assert.same(it, undefined);\n    assert.same(result, '1');\n  });\n});\n\nQUnit.test('AsyncDisposableStack#move', assert => {\n  assert.isFunction(AsyncDisposableStack.prototype.move);\n  assert.arity(AsyncDisposableStack.prototype.move, 0);\n  assert.name(AsyncDisposableStack.prototype.move, 'move');\n  assert.looksNative(AsyncDisposableStack.prototype.move);\n  assert.nonEnumerable(AsyncDisposableStack.prototype, 'move');\n\n  let result = '';\n  const stack1 = new AsyncDisposableStack();\n\n  stack1.defer(() => result += '2');\n  stack1.defer(() => result += '1');\n\n  const stack2 = stack1.move();\n\n  assert.true(stack1.disposed);\n\n  return stack2.disposeAsync().then(() => {\n    assert.same(result, '12');\n  });\n});\n\nQUnit.test('AsyncDisposableStack#@@asyncDispose', assert => {\n  assert.same(AsyncDisposableStack.prototype[Symbol.asyncDispose], AsyncDisposableStack.prototype.disposeAsync);\n});\n\nQUnit.test('AsyncDisposableStack#@@toStringTag', assert => {\n  assert.same(AsyncDisposableStack.prototype[Symbol.toStringTag], 'AsyncDisposableStack', '@@toStringTag');\n});\n\nQUnit.test('AsyncDisposableStack#1', assert => {\n  let result = '';\n  const stack = new AsyncDisposableStack();\n\n  stack.use({ [Symbol.asyncDispose]: () => result += '6' });\n  stack.adopt({}, () => result += '5');\n  stack.defer(() => result += '4');\n  stack.use({ [Symbol.asyncDispose]: () => Promise.resolve(result += '3') });\n  stack.adopt({}, () => Promise.resolve(result += '2'));\n  stack.defer(() => Promise.resolve(result += '1'));\n\n  assert.false(stack.disposed);\n\n  return stack.disposeAsync().then(it => {\n    assert.same(it, undefined);\n    assert.same(result, '123456');\n    assert.true(stack.disposed);\n    return stack.disposeAsync();\n  }).then(it => {\n    assert.same(it, undefined);\n  });\n});\n\nQUnit.test('AsyncDisposableStack#2', assert => {\n  let result = '';\n  const stack = new AsyncDisposableStack();\n\n  stack.use({ [Symbol.asyncDispose]: () => result += '6' });\n  stack.adopt({}, () => { throw new Error(5); });\n  stack.defer(() => result += '4');\n  stack.use({ [Symbol.asyncDispose]: () => Promise.resolve(result += '3') });\n  stack.adopt({}, () => Promise.resolve(result += '2'));\n  stack.defer(() => Promise.resolve(result += '1'));\n\n  return stack.disposeAsync().then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(result, '12346');\n    assert.true(error instanceof Error);\n    assert.same(error.message, '5');\n  });\n});\n\nQUnit.test('AsyncDisposableStack#3', assert => {\n  let result = '';\n  const stack = new AsyncDisposableStack();\n\n  stack.use({ [Symbol.asyncDispose]: () => result += '6' });\n  stack.adopt({}, () => { throw new Error(5); });\n  stack.defer(() => result += '4');\n  stack.use({ [Symbol.asyncDispose]: () => Promise.reject(new Error(3)) });\n  stack.adopt({}, () => Promise.resolve(result += '2'));\n  stack.defer(() => Promise.resolve(result += '1'));\n\n  return stack.disposeAsync().then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(result, '1246');\n    assert.true(error instanceof SuppressedError);\n    assert.same(error.error.message, '5');\n    assert.same(error.suppressed.message, '3');\n  });\n});\n\n// https://github.com/tc39/proposal-explicit-resource-management/issues/256\nQUnit.test('AsyncDisposableStack#256', assert => {\n  const resume = assert.async();\n  assert.expect(1);\n  let called = false;\n  const stack = new AsyncDisposableStack();\n  const neverResolves = new Promise(() => { /* empty */ });\n  stack.use({ [Symbol.dispose]() { return neverResolves; } });\n  stack.disposeAsync().then(() => {\n    called = true;\n    assert.required('It should be called');\n    resume();\n  });\n  setTimeout(() => called || resume(), 3e3);\n});\n"
  },
  {
    "path": "tests/unit-global/es.async-iterator.async-dispose.js",
    "content": "const { create } = Object;\n\nQUnit.test('AsyncIterator#@@asyncDispose', assert => {\n  const asyncDispose = AsyncIterator.prototype[Symbol.asyncDispose];\n  assert.isFunction(asyncDispose);\n  assert.arity(asyncDispose, 0);\n  assert.looksNative(asyncDispose);\n\n  return create(AsyncIterator.prototype)[Symbol.asyncDispose]().then(result => {\n    assert.same(result, undefined);\n  }).then(() => {\n    let called = false;\n    const iterator2 = create(AsyncIterator.prototype);\n    iterator2.return = function () {\n      called = true;\n      assert.same(this, iterator2);\n      return 7;\n    };\n\n    return iterator2[Symbol.asyncDispose]().then(result => {\n      assert.same(result, undefined);\n      assert.true(called);\n    });\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/es.data-view.js",
    "content": "import { DESCRIPTORS, NATIVE } from '../helpers/constants.js';\n\nQUnit.test('DataView', assert => {\n  assert.same(DataView, Object(DataView), 'is object'); // in Safari 5 typeof DataView is 'object'\n  if (NATIVE) assert.arity(DataView, 3); // 1 in IE11\n  if (NATIVE) assert.name(DataView, 'DataView'); // Safari 5 bug\n  if (NATIVE) assert.looksNative(DataView); // Safari 5 bug\n  let dataview = new DataView(new ArrayBuffer(8));\n  assert.same(dataview.byteOffset, 0, '#byteOffset, passed buffer');\n  assert.same(dataview.byteLength, 8, '#byteLength, passed buffer');\n  dataview = new DataView(new ArrayBuffer(16), 8);\n  assert.same(dataview.byteOffset, 8, '#byteOffset, passed buffer and byteOffset');\n  assert.same(dataview.byteLength, 8, '#byteLength, passed buffer and byteOffset');\n  dataview = new DataView(new ArrayBuffer(24), 8, 8);\n  assert.same(dataview.byteOffset, 8, '#byteOffset, passed buffer, byteOffset and length');\n  assert.same(dataview.byteLength, 8, '#byteLength, passed buffer, byteOffset and length');\n  if (NATIVE) {\n    // fails in IE / MS Edge\n    dataview = new DataView(new ArrayBuffer(8), undefined);\n    assert.same(dataview.byteOffset, 0, '#byteOffset, passed buffer and undefined');\n    assert.same(dataview.byteLength, 8, '#byteLength, passed buffer and undefined');\n    // fails in IE / MS Edge\n    dataview = new DataView(new ArrayBuffer(16), 8, undefined);\n    assert.same(dataview.byteOffset, 8, '#byteOffset, passed buffer, byteOffset and undefined');\n    assert.same(dataview.byteLength, 8, '#byteLength, passed buffer, byteOffset and undefined');\n    // fails in IE10\n    dataview = new DataView(new ArrayBuffer(8), 8);\n    assert.same(dataview.byteOffset, 8, '#byteOffset, passed buffer and byteOffset with buffer length');\n    assert.same(dataview.byteLength, 0, '#byteLength, passed buffer and byteOffset with buffer length');\n    // TypeError in IE + FF bug - TypeError instead of RangeError\n    assert.throws(() => new DataView(new ArrayBuffer(8), -1), RangeError, 'If offset < 0, throw a RangeError exception');\n    assert.throws(() => new DataView(new ArrayBuffer(8), 16), RangeError, 'If offset > bufferByteLength, throw a RangeError exception');\n    assert.throws(() => new DataView(new ArrayBuffer(24), 8, 24), RangeError, 'If offset+newByteLength > bufferByteLength, throw a RangeError exception');\n    assert.throws(() => new DataView(new ArrayBuffer(8), 0, -1), RangeError, 'negative byteLength throws RangeError');\n    // Android ~ 4.0\n    assert.throws(() => DataView(1), TypeError, 'throws without `new`');\n  } else {\n    // FF bug - TypeError instead of RangeError\n    assert.throws(() => new DataView(new ArrayBuffer(8), -1), 'If offset < 0, throw a RangeError exception');\n    assert.throws(() => new DataView(new ArrayBuffer(8), 16), 'If offset > bufferByteLength, throw a RangeError exception');\n    assert.throws(() => new DataView(new ArrayBuffer(24), 8, 24), 'If offset+newByteLength > bufferByteLength, throw a RangeError exception');\n    assert.throws(() => new DataView(new ArrayBuffer(8), 0, -1), 'negative byteLength throws');\n  }\n  dataview = new DataView(new ArrayBuffer(8));\n  dataview.setUint32(0, 0x12345678);\n  assert.same(dataview.getUint32(0), 0x12345678, 'big endian/big endian');\n  dataview.setUint32(0, 0x12345678, true);\n  assert.same(dataview.getUint32(0, true), 0x12345678, 'little endian/little endian');\n  dataview.setUint32(0, 0x12345678, true);\n  assert.same(dataview.getUint32(0), 0x78563412, 'little endian/big endian');\n  dataview.setUint32(0, 0x12345678);\n  assert.same(dataview.getUint32(0, true), 0x78563412, 'big endian/little endian');\n  assert.throws(() => new DataView({}), 'non-ArrayBuffer argument, object');\n  assert.throws(() => new DataView('foo'), 'non-ArrayBuffer argument, string');\n});\n\nif (DESCRIPTORS) {\n  QUnit.test('DataView accessors', assert => {\n    const uint8array = new Uint8Array(8);\n    const dataview = new DataView(uint8array.buffer);\n    assert.arrayEqual(uint8array, [0, 0, 0, 0, 0, 0, 0, 0]);\n    dataview.setUint8(0, 255);\n    assert.arrayEqual(uint8array, [0xFF, 0, 0, 0, 0, 0, 0, 0]);\n    dataview.setInt8(1, -1);\n    assert.arrayEqual(uint8array, [0xFF, 0xFF, 0, 0, 0, 0, 0, 0]);\n    dataview.setUint16(2, 0x1234);\n    assert.arrayEqual(uint8array, [0xFF, 0xFF, 0x12, 0x34, 0, 0, 0, 0]);\n    dataview.setInt16(4, -1);\n    assert.arrayEqual(uint8array, [0xFF, 0xFF, 0x12, 0x34, 0xFF, 0xFF, 0, 0]);\n    dataview.setUint32(1, 0x12345678);\n    assert.arrayEqual(uint8array, [0xFF, 0x12, 0x34, 0x56, 0x78, 0xFF, 0, 0]);\n    dataview.setInt32(4, -2023406815);\n    assert.arrayEqual(uint8array, [0xFF, 0x12, 0x34, 0x56, 0x87, 0x65, 0x43, 0x21]);\n    dataview.setFloat32(2, 1.2e+38);\n    assert.arrayEqual(uint8array, [0xFF, 0x12, 0x7E, 0xB4, 0x8E, 0x52, 0x43, 0x21]);\n    dataview.setFloat64(0, -1.2345678e+301);\n    assert.arrayEqual(uint8array, [0xFE, 0x72, 0x6F, 0x51, 0x5F, 0x61, 0x77, 0xE5]);\n    const data = [0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87];\n    for (let i = 0, { length } = data; i < length; ++i) {\n      uint8array[i] = data[i];\n    }\n    assert.same(dataview.getUint8(0), 128);\n    assert.same(dataview.getInt8(1), -127);\n    assert.same(dataview.getUint16(2), 33411);\n    assert.same(dataview.getInt16(3), -31868);\n    assert.same(dataview.getUint32(4), 2223343239);\n    assert.same(dataview.getInt32(2), -2105310075);\n    assert.same(dataview.getFloat32(2), -1.932478247535851e-37);\n    assert.same(dataview.getFloat64(0), -3.116851295377095e-306);\n  });\n\n  QUnit.test('DataView endian', assert => {\n    const { buffer } = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7]);\n    let dataview = new DataView(buffer);\n    assert.same(dataview.byteLength, 8, 'buffer');\n    assert.same(dataview.byteOffset, 0, 'buffer');\n    assert.throws(() => dataview.getUint8(-2));\n    assert.throws(() => dataview.getUint8(8), 'bounds for buffer');\n    assert.throws(() => dataview.setUint8(-2, 0), 'bounds for buffer');\n    assert.throws(() => dataview.setUint8(8, 0), 'bounds for buffer');\n    dataview = new DataView(buffer, 2);\n    assert.same(dataview.byteLength, 6, 'buffer, byteOffset');\n    assert.same(dataview.byteOffset, 2, 'buffer, byteOffset');\n    assert.same(dataview.getUint8(5), 7, 'buffer, byteOffset');\n    assert.throws(() => dataview.getUint8(-2), 'bounds for buffer, byteOffset');\n    assert.throws(() => dataview.getUint8(6), 'bounds for buffer, byteOffset');\n    assert.throws(() => dataview.setUint8(-2, 0), 'bounds for buffer, byteOffset');\n    assert.throws(() => dataview.setUint8(6, 0), 'bounds for buffer, byteOffset');\n    assert.throws(() => new DataView(buffer, -1), 'invalid byteOffset');\n    assert.throws(() => new DataView(buffer, 9), 'invalid byteOffset');\n    dataview = new DataView(buffer, 2, 4);\n    assert.same(dataview.byteLength, 4, 'buffer, byteOffset, length');\n    assert.same(dataview.byteOffset, 2, 'buffer, byteOffset, length');\n    assert.same(dataview.getUint8(3), 5, 'buffer, byteOffset, length');\n    assert.throws(() => dataview.getUint8(-2), 'bounds for buffer, byteOffset, length');\n    assert.throws(() => dataview.getUint8(4), 'bounds for buffer, byteOffset, length');\n    assert.throws(() => dataview.setUint8(-2, 0), 'bounds for buffer, byteOffset, length');\n    assert.throws(() => dataview.setUint8(4, 0), 'bounds for buffer, byteOffset, length');\n    assert.throws(() => new DataView(buffer, 0, 9), 'invalid byteOffset+length');\n    assert.throws(() => new DataView(buffer, 8, 1), 'invalid byteOffset+length');\n    assert.throws(() => new DataView(buffer, 9, -1), 'invalid byteOffset+length');\n  });\n}\n\nconst types = ['Uint8', 'Int8', 'Uint16', 'Int16', 'Uint32', 'Int32', 'Float32', 'Float64'];\n\nfor (const type of types) {\n  const GETTER = `get${ type }`;\n  const SETTER = `set${ type }`;\n  QUnit.test(`DataView#${ GETTER }`, assert => {\n    assert.isFunction(DataView.prototype[GETTER]);\n    NATIVE && assert.arity(DataView.prototype[GETTER], 1);\n    assert.same(new DataView(new ArrayBuffer(8))[GETTER](0), 0, 'returns element');\n  });\n\n  QUnit.test(`DataView#${ SETTER }`, assert => {\n    assert.isFunction(DataView.prototype[SETTER]);\n    NATIVE && assert.arity(DataView.prototype[SETTER], 2);\n    assert.same(new DataView(new ArrayBuffer(8))[SETTER](0, 0), undefined, 'void');\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.data-view.set-float16.js",
    "content": "QUnit.test('DataView.prototype.{ getFloat16, setFloat16 }', assert => {\n  const { getFloat16, setFloat16 } = DataView.prototype;\n\n  assert.isFunction(getFloat16);\n  assert.arity(getFloat16, 1);\n  assert.name(getFloat16, 'getFloat16');\n\n  assert.isFunction(setFloat16);\n  assert.arity(setFloat16, 2);\n  assert.name(setFloat16, 'setFloat16');\n\n  assert.same(new DataView(new ArrayBuffer(8)).setFloat16(0, 0), undefined, 'void');\n\n  function toString(it) {\n    return it === 0 && 1 / it === -Infinity ? '-0' : it;\n  }\n\n  const data = [\n    [0b0000000000000000, 0],\n    [0b1000000000000000, -0],\n    [0b0011110000000000, 1],\n    [0b1011110000000000, -1],\n    [0b0100001001001000, 3.140625],\n    [0b0000001000000000, 0.000030517578125],\n    [0b0111101111111111, 65504],\n    [0b1111101111111111, -65504],\n    [0b0000000000000001, 2 ** -24],\n    [0b1000000000000001, -(2 ** -24)],\n    // [0b0111110000000001, NaN], <- what NaN representation should be used?\n    [0b0111110000000000, Infinity],\n    [0b1111110000000000, -Infinity],\n    // normal values in (0, 1) — regression test for floor vs truncation of log2\n    [0b0011100000000000, 0.5],\n    [0b0011101000000000, 0.75],\n    [0b0011010000000000, 0.25],\n    [0b0011000000000000, 0.125],\n  ];\n\n  const buffer = new ArrayBuffer(2);\n  const view = new DataView(buffer);\n\n  for (const [bin, f16] of data) for (const LE of [false, true]) {\n    view.setUint16(0, bin, LE);\n    assert.same(view.getFloat16(0, LE), f16, `DataView.prototype.setUint16 + DataView.prototype.getFloat16, LE: ${ LE }, ${ toString(bin) } -> ${ toString(f16) }`);\n    view.setFloat16(0, f16, LE);\n    assert.same(view.getUint16(0, LE), bin, `DataView.prototype.setFloat16 + DataView.prototype.getUint16, LE: ${ LE }, ${ toString(f16) } -> ${ toString(bin) }`);\n    assert.same(view.getFloat16(0, LE), f16, `DataView.prototype.setFloat16 + DataView.prototype.getFloat16, LE: ${ LE }, ${ toString(f16) }`);\n  }\n\n  const MAX_FLOAT16 = 65504;\n  const MIN_FLOAT16 = 2 ** -24;\n\n  const conversions = [\n    [1.337, 1.3369140625],\n    [0.499994, 0.5],\n    [7.9999999, 8],\n    [MAX_FLOAT16, MAX_FLOAT16],\n    [-MAX_FLOAT16, -MAX_FLOAT16],\n    [MIN_FLOAT16, MIN_FLOAT16],\n    [-MIN_FLOAT16, -MIN_FLOAT16],\n    [MIN_FLOAT16 / 2, 0],\n    [-MIN_FLOAT16 / 2, -0],\n    [2.980232238769531911744490042422139897126953655970282852649688720703125e-8, MIN_FLOAT16],\n    [-2.980232238769531911744490042422139897126953655970282852649688720703125e-8, -MIN_FLOAT16],\n    // normal values in (0, 1) — regression test for floor vs truncation of log2\n    [0.3, 0.300048828125],\n    [0.7, 0.7001953125],\n    [-0.3, -0.300048828125],\n    [-0.7, -0.7001953125],\n  ];\n\n  for (const [from, to] of conversions) for (const LE of [false, true]) {\n    view.setFloat16(0, from, LE);\n    assert.same(view.getFloat16(0, LE), to, `DataView.prototype.setFloat16 + DataView.prototype.getFloat16, LE: ${ LE }, ${ toString(from) } -> ${ toString(to) }`);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.date.get-year.js",
    "content": "QUnit.test('Date#getYear', assert => {\n  const { getYear } = Date.prototype;\n  assert.isFunction(getYear);\n  assert.arity(getYear, 0);\n  assert.name(getYear, 'getYear');\n  assert.looksNative(getYear);\n  assert.nonEnumerable(Date.prototype, 'getYear');\n  const date = new Date();\n  assert.same(date.getYear(), date.getFullYear() - 1900);\n});\n"
  },
  {
    "path": "tests/unit-global/es.date.now.js",
    "content": "QUnit.test('Date.now', assert => {\n  const { now } = Date;\n  assert.isFunction(now);\n  assert.arity(now, 0);\n  assert.name(now, 'now');\n  assert.looksNative(now);\n  assert.nonEnumerable(Date, 'now');\n  assert.same(typeof now(), 'number', 'typeof');\n});\n"
  },
  {
    "path": "tests/unit-global/es.date.set-year.js",
    "content": "QUnit.test('Date#setYear', assert => {\n  const { setYear } = Date.prototype;\n  assert.isFunction(setYear);\n  assert.arity(setYear, 1);\n  assert.name(setYear, 'setYear');\n  assert.looksNative(setYear);\n  assert.nonEnumerable(Date.prototype, 'setYear');\n  const date = new Date();\n  date.setYear(1);\n  assert.same(date.getFullYear(), 1901);\n  const date2 = new Date();\n  date2.setYear(NaN);\n  assert.true(Number.isNaN(date2.getTime()), 'NaN year makes date invalid');\n  const date3 = new Date();\n  date3.setYear(undefined);\n  assert.true(Number.isNaN(date3.getTime()), 'undefined year makes date invalid');\n});\n"
  },
  {
    "path": "tests/unit-global/es.date.to-gmt-string.js",
    "content": "QUnit.test('Date#toGMTString', assert => {\n  const { toGMTString } = Date.prototype;\n  assert.isFunction(toGMTString);\n  assert.arity(toGMTString, 0);\n  // assert.name(toGMTString, 'toUTCString'); // at least old WebKit\n  assert.looksNative(toGMTString);\n  assert.nonEnumerable(Date.prototype, 'toGMTString');\n  // assert.same(toGMTString, Date.prototype.toUTCString); // at least old WebKit\n  const date = new Date();\n  assert.same(date.toGMTString(), date.toUTCString());\n});\n"
  },
  {
    "path": "tests/unit-global/es.date.to-iso-string.js",
    "content": "QUnit.test('Date#toISOString', assert => {\n  const { toISOString } = Date.prototype;\n  assert.isFunction(toISOString);\n  assert.arity(toISOString, 0);\n  assert.name(toISOString, 'toISOString');\n  assert.looksNative(toISOString);\n  assert.nonEnumerable(Date.prototype, 'toISOString');\n  assert.same(new Date(0).toISOString(), '1970-01-01T00:00:00.000Z');\n  assert.same(new Date(1e12 + 1).toISOString(), '2001-09-09T01:46:40.001Z');\n  assert.same(new Date(-5e13 - 1).toISOString(), '0385-07-25T07:06:39.999Z');\n  const future = new Date(1e15 + 1).toISOString();\n  const properFuture = future === '+033658-09-27T01:46:40.001Z' || future === '33658-09-27T01:46:40.001Z';\n  assert.true(properFuture);\n  const prehistoric = new Date(-1e15 + 1).toISOString();\n  const properPrehistoric = prehistoric === '-029719-04-05T22:13:20.001Z' || prehistoric === '-29719-04-05T22:13:20.001Z';\n  assert.true(properPrehistoric);\n  assert.throws(() => new Date(NaN).toISOString(), RangeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.date.to-json.js",
    "content": "QUnit.test('Date#toJSON', assert => {\n  const { toJSON } = Date.prototype;\n  assert.isFunction(toJSON);\n  assert.arity(toJSON, 1);\n  assert.name(toJSON, 'toJSON');\n  assert.looksNative(toJSON);\n  assert.nonEnumerable(Date.prototype, 'toJSON');\n  const date = new Date();\n  assert.same(date.toJSON(), date.toISOString(), 'base');\n  assert.same(new Date(NaN).toJSON(), null, 'not finite');\n  assert.same(toJSON.call({\n    toISOString() {\n      return 42;\n    },\n  }), 42, 'generic');\n});\n"
  },
  {
    "path": "tests/unit-global/es.date.to-primitive.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Date#@@toPrimitive', assert => {\n  const toPrimitive = Date.prototype[Symbol.toPrimitive];\n  assert.isFunction(toPrimitive);\n  assert.arity(toPrimitive, 1);\n  assert.nonEnumerable(Date.prototype, Symbol.toPrimitive);\n  const date = new Date();\n  assert.same(date[Symbol.toPrimitive]('string'), date.toString(), 'generic, hint \"string\"');\n  assert.same(date[Symbol.toPrimitive]('number'), +date, 'generic, hint \"number\"');\n  assert.same(date[Symbol.toPrimitive]('default'), date.toString(), 'generic, hint \"default\"');\n  assert.same(toPrimitive.call(Object(2), 'string'), '2', 'generic, hint \"string\"');\n  assert.same(toPrimitive.call(Object(2), 'number'), 2, 'generic, hint \"number\"');\n  assert.same(toPrimitive.call(Object(2), 'default'), '2', 'generic, hint \"default\"');\n  let data = [undefined, '', 'foo', { toString() { return 'string'; } }];\n  for (const value of data) {\n    assert.throws(() => new Date()[Symbol.toPrimitive](value), TypeError, `throws on ${ value } as a hint`);\n  }\n  if (STRICT) {\n    data = [1, false, 'string', null, undefined];\n    for (const value of data) {\n      assert.throws(() => toPrimitive.call(value, 'string'), TypeError, `throws on ${ value } as \\`this\\``);\n    }\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.date.to-string.js",
    "content": "QUnit.test('Date#toString', assert => {\n  const { toString } = Date.prototype;\n  assert.isFunction(toString);\n  assert.arity(toString, 0);\n  assert.name(toString, 'toString');\n  assert.looksNative(toString);\n  assert.nonEnumerable(Date.prototype, 'toString');\n  assert.same(String(new Date(NaN)), 'Invalid Date');\n});\n"
  },
  {
    "path": "tests/unit-global/es.disposable-stack.constructor.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('DisposableStack constructor', assert => {\n  assert.isFunction(DisposableStack);\n  assert.arity(DisposableStack, 0);\n  assert.name(DisposableStack, 'DisposableStack');\n  assert.looksNative(DisposableStack);\n\n  assert.throws(() => DisposableStack(), 'throws w/o `new`');\n  assert.true(new DisposableStack() instanceof DisposableStack);\n\n  assert.same(DisposableStack.prototype.constructor, DisposableStack);\n});\n\nQUnit.test('DisposableStack#dispose', assert => {\n  assert.isFunction(DisposableStack.prototype.dispose);\n  assert.arity(DisposableStack.prototype.dispose, 0);\n  assert.name(DisposableStack.prototype.dispose, 'dispose');\n  assert.looksNative(DisposableStack.prototype.dispose);\n  assert.nonEnumerable(DisposableStack.prototype, 'dispose');\n});\n\nQUnit.test('DisposableStack#use', assert => {\n  assert.isFunction(DisposableStack.prototype.use);\n  assert.arity(DisposableStack.prototype.use, 1);\n  assert.name(DisposableStack.prototype.use, 'use');\n  assert.looksNative(DisposableStack.prototype.use);\n  assert.nonEnumerable(DisposableStack.prototype, 'use');\n\n  let result = '';\n  const stack1 = new DisposableStack();\n  const resource = {\n    [Symbol.dispose]() {\n      result += '1';\n      assert.same(this, resource);\n      assert.same(arguments.length, 0);\n    },\n  };\n\n  assert.same(stack1.use(resource), resource);\n  assert.same(stack1.dispose(), undefined);\n  assert.same(result, '1');\n});\n\nQUnit.test('DisposableStack#adopt', assert => {\n  assert.isFunction(DisposableStack.prototype.adopt);\n  assert.arity(DisposableStack.prototype.adopt, 2);\n  assert.name(DisposableStack.prototype.adopt, 'adopt');\n  assert.looksNative(DisposableStack.prototype.adopt);\n  assert.nonEnumerable(DisposableStack.prototype, 'adopt');\n\n  let result = '';\n  const stack = new DisposableStack();\n  const resource = {};\n\n  assert.same(stack.adopt(resource, function (arg) {\n    result += '1';\n    if (STRICT) assert.same(this, undefined);\n    assert.same(arguments.length, 1);\n    assert.same(arg, resource);\n  }), resource);\n\n  assert.same(stack.dispose(), undefined);\n  assert.same(result, '1');\n});\n\nQUnit.test('DisposableStack#defer', assert => {\n  assert.isFunction(DisposableStack.prototype.defer);\n  assert.arity(DisposableStack.prototype.defer, 1);\n  assert.name(DisposableStack.prototype.defer, 'defer');\n  assert.looksNative(DisposableStack.prototype.defer);\n  assert.nonEnumerable(DisposableStack.prototype, 'defer');\n\n  let result = '';\n  const stack = new DisposableStack();\n\n  assert.same(stack.defer(function () {\n    result += '1';\n    if (STRICT) assert.same(this, undefined);\n    assert.same(arguments.length, 0);\n  }), undefined);\n\n  assert.same(stack.dispose(), undefined);\n  assert.same(result, '1');\n});\n\nQUnit.test('DisposableStack#move', assert => {\n  assert.isFunction(DisposableStack.prototype.move);\n  assert.arity(DisposableStack.prototype.move, 0);\n  assert.name(DisposableStack.prototype.move, 'move');\n  assert.looksNative(DisposableStack.prototype.move);\n  assert.nonEnumerable(DisposableStack.prototype, 'move');\n\n  let result = '';\n  const stack = new DisposableStack();\n\n  stack.defer(() => result += '2');\n  stack.defer(() => result += '1');\n\n  const stack2 = stack.move();\n\n  assert.true(stack.disposed);\n\n  stack2.dispose();\n\n  assert.same(result, '12');\n});\n\nQUnit.test('DisposableStack#@@dispose', assert => {\n  assert.same(DisposableStack.prototype[Symbol.dispose], DisposableStack.prototype.dispose);\n});\n\nQUnit.test('DisposableStack#@@toStringTag', assert => {\n  assert.same(DisposableStack.prototype[Symbol.toStringTag], 'DisposableStack', '@@toStringTag');\n});\n\nQUnit.test('DisposableStack', assert => {\n  let result1 = '';\n  const stack1 = new DisposableStack();\n\n  stack1.use({ [Symbol.dispose]: () => result1 += '6' });\n  stack1.adopt({}, () => result1 += '5');\n  stack1.defer(() => result1 += '4');\n  stack1.use({ [Symbol.dispose]: () => result1 += '3' });\n  stack1.adopt({}, () => result1 += '2');\n  stack1.defer(() => result1 += '1');\n\n  assert.false(stack1.disposed);\n  assert.same(stack1.dispose(), undefined);\n  assert.same(result1, '123456');\n  assert.true(stack1.disposed);\n  assert.same(stack1.dispose(), undefined);\n\n  let result2 = '';\n  const stack2 = new DisposableStack();\n  let error2;\n\n  stack2.use({ [Symbol.dispose]: () => result2 += '6' });\n  stack2.adopt({}, () => { throw new Error(5); });\n  stack2.defer(() => result2 += '4');\n  stack2.use({ [Symbol.dispose]: () => result2 += '3' });\n  stack2.adopt({}, () => result2 += '2');\n  stack2.defer(() => result2 += '1');\n\n  try {\n    stack2.dispose();\n  } catch (error2$) {\n    error2 = error2$;\n  }\n\n  assert.same(result2, '12346');\n  assert.true(error2 instanceof Error);\n  assert.same(error2.message, '5');\n\n  let result3 = '';\n  const stack3 = new DisposableStack();\n  let error3;\n\n  stack3.use({ [Symbol.dispose]: () => result3 += '6' });\n  stack3.adopt({}, () => { throw new Error(5); });\n  stack3.defer(() => result3 += '4');\n  stack3.use({ [Symbol.dispose]: () => { throw new Error(3); } });\n  stack3.adopt({}, () => result3 += '2');\n  stack3.defer(() => result3 += '1');\n\n  try {\n    stack3.dispose();\n  } catch (error3$) {\n    error3 = error3$;\n  }\n\n  assert.same(result3, '1246');\n  assert.true(error3 instanceof SuppressedError);\n  assert.same(error3.error.message, '5');\n  assert.same(error3.suppressed.message, '3');\n});\n"
  },
  {
    "path": "tests/unit-global/es.error.cause.js",
    "content": "/* eslint-disable sonarjs/inconsistent-function-call -- required for testing */\nimport { GLOBAL, PROTO } from '../helpers/constants.js';\n\nconst { create } = Object;\n\nfunction runErrorTestCase($Error, ERROR_NAME) {\n  QUnit.test(`${ ERROR_NAME } constructor with 'cause' param`, assert => {\n    assert.isFunction($Error);\n    assert.arity($Error, 1);\n    assert.name($Error, ERROR_NAME);\n    assert.looksNative($Error);\n\n    if (PROTO && $Error !== Error) {\n      // eslint-disable-next-line no-prototype-builtins -- safe\n      assert.true(Error.isPrototypeOf($Error), 'constructor has `Error` in the prototype chain');\n    }\n\n    assert.same($Error.prototype.constructor, $Error, 'prototype constructor');\n    // eslint-disable-next-line no-prototype-builtins -- safe\n    assert.false($Error.prototype.hasOwnProperty('cause'), 'prototype has not cause');\n\n    assert.true($Error(1) instanceof $Error, 'no cause, without new');\n    assert.true(new $Error(1) instanceof $Error, 'no cause, with new');\n\n    assert.true($Error(1, {}) instanceof $Error, 'with options, without new');\n    assert.true(new $Error(1, {}) instanceof $Error, 'with options, with new');\n\n    assert.true($Error(1, 'foo') instanceof $Error, 'non-object options, without new');\n    assert.true(new $Error(1, 'foo') instanceof $Error, 'non-object options, with new');\n\n    assert.same($Error(1, { cause: 7 }).cause, 7, 'cause, without new');\n    assert.same(new $Error(1, { cause: 7 }).cause, 7, 'cause, with new');\n\n    assert.same($Error(1, create({ cause: 7 })).cause, 7, 'prototype cause, without new');\n    assert.same(new $Error(1, create({ cause: 7 })).cause, 7, 'prototype cause, with new');\n\n    let error = $Error(1, { cause: 7 });\n    assert.same(error.name, ERROR_NAME, 'instance name');\n    assert.same(error.message, '1', 'instance message');\n    assert.same(error.cause, 7, 'instance cause');\n    // eslint-disable-next-line no-prototype-builtins -- safe\n    assert.true(error.hasOwnProperty('cause'), 'cause is own');\n\n    error = $Error();\n    assert.same(error.message, '', 'default instance message');\n    assert.same(error.cause, undefined, 'default instance cause undefined');\n    // eslint-disable-next-line no-prototype-builtins -- safe\n    assert.false(error.hasOwnProperty('cause'), 'default instance cause missed');\n  });\n}\n\nfor (const ERROR_NAME of ['Error', 'EvalError', 'RangeError', 'ReferenceError', 'SyntaxError', 'TypeError', 'URIError']) {\n  runErrorTestCase(GLOBAL[ERROR_NAME], ERROR_NAME);\n}\n\nif (GLOBAL.WebAssembly) for (const ERROR_NAME of ['CompileError', 'LinkError', 'RuntimeError']) {\n  if (GLOBAL.WebAssembly[ERROR_NAME]) runErrorTestCase(GLOBAL.WebAssembly[ERROR_NAME], ERROR_NAME);\n}\n"
  },
  {
    "path": "tests/unit-global/es.error.is-error.js",
    "content": "QUnit.test('Error.isError', assert => {\n  const { isError } = Error;\n  assert.isFunction(isError);\n  assert.arity(isError, 1);\n  assert.name(isError, 'isError');\n  assert.looksNative(isError);\n  assert.nonEnumerable(Error, 'isError');\n\n  assert.true(isError(new Error('error')));\n  assert.true(isError(new TypeError('error')));\n  assert.true(isError(new AggregateError([1, 2, 3], 'error')));\n  assert.true(isError(new SuppressedError(1, 2, 'error')));\n  assert.true(isError(new DOMException('error')));\n\n  assert.false(isError(null));\n  assert.false(isError({}));\n  assert.false(isError(Object.create(Error.prototype)));\n});\n"
  },
  {
    "path": "tests/unit-global/es.error.to-string.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Error#toString', assert => {\n  const { toString } = Error.prototype;\n  assert.isFunction(toString);\n  assert.arity(toString, 0);\n  assert.name(toString, 'toString');\n  assert.looksNative(toString);\n  assert.nonEnumerable(Error.prototype, 'toString');\n  assert.same(String(new Error('something')), 'Error: something');\n  assert.same(String(new TypeError('something')), 'TypeError: something');\n  assert.same(String(new Error()), 'Error');\n  assert.same(toString.call({}), 'Error');\n  assert.same(toString.call({ name: 'foo' }), 'foo');\n  assert.same(toString.call({ message: 'bar' }), 'Error: bar');\n  assert.same(toString.call({ name: '', message: 'bar' }), 'bar');\n  assert.same(toString.call({ name: 'foo', message: 'bar' }), 'foo: bar');\n  assert.same(toString.call({ name: 1, message: 2 }), '1: 2');\n\n  if (STRICT) {\n    assert.throws(() => toString.call(7));\n    assert.throws(() => toString.call('a'));\n    assert.throws(() => toString.call(false));\n    assert.throws(() => toString.call(null));\n    assert.throws(() => toString.call(undefined));\n  }\n\n  // assert.throws(() => toString.call({ name: Symbol() }), 'throws on symbol #1');\n  // assert.throws(() => toString.call({ message: Symbol() }), 'throws on symbol #2');\n});\n"
  },
  {
    "path": "tests/unit-global/es.escape.js",
    "content": "QUnit.test('escape', assert => {\n  assert.isFunction(escape);\n  assert.name(escape, 'escape');\n  assert.arity(escape, 1);\n  assert.looksNative(escape);\n  assert.same(escape('!q2ф'), '%21q2%u0444');\n  assert.same(escape('\\n'), '%0A', 'percent encoding uses uppercase hex digits');\n  assert.same(escape('\\u0001'), '%01', 'low code points use uppercase hex');\n  assert.same(escape('\\u00FF'), '%FF', 'code < 256 uses uppercase hex');\n  assert.same(escape(null), 'null');\n  assert.same(escape(undefined), 'undefined');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => escape(Symbol('escape test')), 'throws on symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.function.bind.js",
    "content": "QUnit.test('Function#bind', assert => {\n  const { bind } = Function.prototype;\n  assert.isFunction(bind);\n  assert.arity(bind, 1);\n  assert.name(bind, 'bind');\n  assert.looksNative(bind);\n  assert.nonEnumerable(Function.prototype, 'bind');\n  const object = { a: 42 };\n  assert.same(function () {\n    return this.a;\n  }.bind(object)(), 42);\n  // eslint-disable-next-line no-extra-bind -- testing\n  assert.same(new (function () { /* empty */ }.bind(object))().a, undefined);\n  function A(a, b) {\n    this.a = a;\n    this.b = b;\n  }\n  const instance = new (A.bind(null, 1))(2);\n  assert.true(instance instanceof A);\n  assert.same(instance.a, 1);\n  assert.same(instance.b, 2);\n  assert.same((it => it).bind(null, 42)(), 42);\n  const regExpTest = RegExp.prototype.test.bind(/a/);\n  assert.true(regExpTest('a'));\n  const Date2017 = Date.bind(null, 2017);\n  const date = new Date2017(11);\n  assert.true(date instanceof Date);\n  assert.same(date.getFullYear(), 2017);\n  assert.same(date.getMonth(), 11);\n});\n"
  },
  {
    "path": "tests/unit-global/es.function.has-instance.js",
    "content": "QUnit.test('Function#@@hasInstance', assert => {\n  assert.true(Symbol.hasInstance in Function.prototype);\n  assert.nonEnumerable(Function.prototype, Symbol.hasInstance);\n  assert.true(Function[Symbol.hasInstance](() => { /* empty */ }));\n  assert.false(Function[Symbol.hasInstance]({}));\n});\n"
  },
  {
    "path": "tests/unit-global/es.function.name.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) {\n  QUnit.test('Function#name', assert => {\n    assert.true('name' in Function.prototype);\n    assert.nonEnumerable(Function.prototype, 'name');\n    function foo() { /* empty */ }\n    assert.same(foo.name, 'foo');\n    assert.same(function () { /* empty */ }.name, '');\n    if (Object.freeze) {\n      assert.same(Object.freeze(() => { /* empty */ }).name, '');\n    }\n    function bar() { /* empty */ }\n    bar.toString = function () {\n      throw new Error();\n    };\n    assert.notThrows(() => bar.name === 'bar', 'works with redefined `.toString`');\n    const baz = Object(() => { /* empty */ });\n    baz.toString = function () {\n      return '';\n    };\n    assert.same(baz.name, '');\n\n    assert.same(function /*\n    multi-line comment */() { /* empty */ }.name, '');\n\n    function /*\n    multi-line comment */\n    foobar() { /* empty */ }\n    assert.same(foobar.name, 'foobar');\n\n    function // simple-line comment\n    foobaz() { /* empty */ }\n    assert.same(foobaz.name, 'foobaz');\n\n    function // simple-line comment\n    /* multi-line comment */quux/*\n    multi-line comment\n    */() { /* empty */ }\n    assert.same(quux.name, 'quux');\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.global-this.js",
    "content": "QUnit.test('globalThis', assert => {\n  assert.same(globalThis, Object(globalThis), 'is object');\n  assert.same(globalThis.Math, Math, 'contains globals');\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.concat.js",
    "content": "import { createIterable, createIterator } from '../helpers/helpers.js';\n\nconst { from } = Array;\n\nQUnit.test('Iterator.concat', assert => {\n  const { concat } = Iterator;\n\n  assert.isFunction(concat);\n  assert.arity(concat, 0);\n  assert.name(concat, 'concat');\n  assert.looksNative(concat);\n  assert.nonEnumerable(Iterator, 'concat');\n\n  let iterator = concat();\n  assert.isIterable(iterator, 'iterable, no args');\n  assert.isIterator(iterator, 'iterator, no args');\n  assert.true(iterator instanceof Iterator, 'iterator instance, no args');\n  assert.arrayEqual(from(iterator), [], 'proper values, no args');\n\n  iterator = concat([1, 2, 3]);\n  assert.isIterable(iterator, 'iterable, array');\n  assert.isIterator(iterator, 'iterator, array');\n  assert.true(iterator instanceof Iterator, 'iterator instance, array');\n  assert.arrayEqual(from(iterator), [1, 2, 3], 'proper values, array');\n\n  iterator = concat([]);\n  assert.isIterable(iterator, 'iterable, empty array');\n  assert.isIterator(iterator, 'iterator, empty array');\n  assert.true(iterator instanceof Iterator, 'iterator instance, empty array');\n  assert.arrayEqual(from(iterator), [], 'proper values, empty array');\n\n  iterator = concat(createIterable([1, 2, 3]));\n  assert.isIterable(iterator, 'iterable, custom iterable');\n  assert.isIterator(iterator, 'iterator, custom iterable');\n  assert.true(iterator instanceof Iterator, 'iterator instance, custom iterable');\n  assert.arrayEqual(from(iterator), [1, 2, 3], 'proper values, custom iterable');\n\n  iterator = concat([1, 2, 3], [], createIterable([4, 5, 6]), createIterable([]));\n  assert.isIterable(iterator, 'iterable, mixed');\n  assert.isIterator(iterator, 'iterator, mixed');\n  assert.true(iterator instanceof Iterator, 'iterator instance, mixed');\n  assert.arrayEqual(from(iterator), [1, 2, 3, 4, 5, 6], 'proper values, mixed');\n\n  iterator = concat(createIterable([1, 2, 3]));\n  assert.deepEqual(iterator.return(), { done: true, value: undefined }, '.return with no active inner iterator result');\n  assert.deepEqual(iterator.next(), { done: true, value: undefined }, '.next on closed iterator');\n\n  iterator = concat(createIterable([1, 2, 3]));\n  assert.deepEqual(iterator.next(), { done: false, value: 1 }, '.next with active inner iterator result');\n  assert.deepEqual(iterator.return(), { done: true, value: undefined }, '.return with active inner iterator result');\n  assert.deepEqual(iterator.next(), { done: true, value: undefined }, '.next on closed iterator after .return with active inner iterator');\n\n  let called = false;\n  iterator = concat(createIterable([1, 2, 3], {\n    return() {\n      called = true;\n      return {};\n    },\n  }));\n  iterator.next();\n  assert.deepEqual(iterator.return(), { done: true, value: undefined }, '.return with active inner iterator with return result');\n  assert.true(called, 'inner .return called');\n\n  // https://github.com/tc39/proposal-iterator-sequencing/issues/17\n  const oldIterResult = {\n    done: false,\n    value: 123,\n  };\n  const testIterator = {\n    next() {\n      return oldIterResult;\n    },\n  };\n  const iterable = {\n    [Symbol.iterator]() {\n      return testIterator;\n    },\n  };\n  iterator = concat(iterable);\n  const iterResult = iterator.next();\n  assert.same(iterResult.done, false);\n  assert.same(iterResult.value, 123);\n  // https://github.com/tc39/proposal-iterator-sequencing/pull/26\n  assert.notSame(iterResult, oldIterResult);\n\n  assert.throws(() => concat(createIterator([1, 2, 3])), TypeError, 'non-iterable iterator #1');\n  assert.throws(() => concat([], createIterator([1, 2, 3])), TypeError, 'non-iterable iterator #2');\n  assert.throws(() => concat(''), TypeError, 'iterable non-object argument #1');\n  assert.throws(() => concat([], ''), TypeError, 'iterable non-object argument #2');\n  assert.throws(() => concat(undefined), TypeError, 'non-iterable-object argument #1');\n  assert.throws(() => concat(null), TypeError, 'non-iterable-object argument #2');\n  assert.throws(() => concat(1), TypeError, 'non-iterable-object argument #3');\n  assert.throws(() => concat({}), TypeError, 'non-iterable-object argument #4');\n  assert.throws(() => concat([], undefined), TypeError, 'non-iterable-object argument #5');\n  assert.throws(() => concat([], null), TypeError, 'non-iterable-object argument #6');\n  assert.throws(() => concat([], 1), TypeError, 'non-iterable-object argument #7');\n  assert.throws(() => concat([], {}), TypeError, 'non-iterable-object argument #8');\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.constructor.js",
    "content": "import { createIterator, nativeSubclass } from '../helpers/helpers.js';\n\nconst { getPrototypeOf } = Object;\n\nQUnit.test('Iterator', assert => {\n  assert.isFunction(Iterator);\n  assert.arity(Iterator, 0);\n  assert.name(Iterator, 'Iterator');\n  assert.looksNative(Iterator);\n\n  const generator = (() => {\n    try {\n      return Function('return function*(){}()')();\n    } catch { /* empty */ }\n  })();\n\n  if (generator) {\n    const proto = getPrototypeOf(getPrototypeOf(getPrototypeOf(generator)));\n    if (proto !== Object.prototype && proto !== null) {\n      assert.true(generator instanceof Iterator, 'Generator');\n    }\n  }\n\n  assert.true(''[Symbol.iterator]() instanceof Iterator, 'String Iterator');\n  assert.true([].values() instanceof Iterator, 'Array Iterator');\n  assert.true(new Set().values() instanceof Iterator, 'Set Iterator');\n  assert.true('abc'.matchAll(/./g) instanceof Iterator, 'MatchAll Iterator');\n  assert.true(Iterator.from(createIterator([1, 2, 3])) instanceof Iterator, 'From Proxy');\n  assert.true([].values().drop(1) instanceof Iterator, 'Drop Proxy');\n\n  if (nativeSubclass) {\n    const Sub = nativeSubclass(Iterator);\n    assert.true(new Sub() instanceof Iterator, 'abstract constructor');\n  }\n\n  assert.throws(() => new Iterator(), 'direct constructor throws');\n  assert.throws(() => Iterator(), 'throws w/o `new`');\n});\n\nQUnit.test('Iterator#constructor', assert => {\n  assert.same(Iterator.prototype.constructor, Iterator, 'Iterator#constructor is Iterator');\n});\n\nQUnit.test('Iterator#@@toStringTag', assert => {\n  assert.same(Iterator.prototype[Symbol.toStringTag], 'Iterator', 'Iterator::@@toStringTag is `Iterator`');\n  assert.same(String(Iterator.from({\n    next: () => ({ done: Math.random() > 0.9, value: Math.random() * 10 | 0 }),\n  })), '[object Iterator]', 'correct stringification');\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.dispose.js",
    "content": "const { create } = Object;\n\nQUnit.test('Iterator#@@dispose', assert => {\n  const dispose = Iterator.prototype[Symbol.dispose];\n  assert.isFunction(dispose);\n  assert.arity(dispose, 0);\n  assert.looksNative(dispose);\n\n  assert.same(create(Iterator.prototype)[Symbol.dispose](), undefined);\n\n  let called = false;\n  const iterator2 = create(Iterator.prototype);\n  iterator2.return = function () {\n    called = true;\n    assert.same(this, iterator2);\n    return 7;\n  };\n  assert.same(iterator2[Symbol.dispose](), undefined);\n  assert.true(called);\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.drop.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nQUnit.test('Iterator#drop', assert => {\n  const { drop } = Iterator.prototype;\n\n  assert.isFunction(drop);\n  assert.arity(drop, 1);\n  assert.name(drop, 'drop');\n  assert.looksNative(drop);\n  assert.nonEnumerable(Iterator.prototype, 'drop');\n\n  assert.arrayEqual(drop.call(createIterator([1, 2, 3]), 1).toArray(), [2, 3], 'basic functionality');\n  assert.arrayEqual(drop.call(createIterator([1, 2, 3]), 1.5).toArray(), [2, 3], 'float');\n  assert.arrayEqual(drop.call(createIterator([1, 2, 3]), 4).toArray(), [], 'big');\n  assert.arrayEqual(drop.call(createIterator([1, 2, 3]), 0).toArray(), [1, 2, 3], 'zero');\n\n  if (STRICT) {\n    assert.throws(() => drop.call(undefined, 1), TypeError);\n    assert.throws(() => drop.call(null, 1), TypeError);\n  }\n\n  assert.throws(() => drop.call({}, 1).next(), TypeError);\n  assert.throws(() => drop.call([], 1).next(), TypeError);\n  assert.throws(() => drop.call(createIterator([1, 2, 3]), -1), RangeError, 'negative');\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => drop.call(it, NaN), RangeError, 'NaN');\n  assert.true(it.closed, 'drop closes iterator on validation error');\n  // https://issues.chromium.org/issues/336839115\n  assert.throws(() => drop.call({ next: null }, 0).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.every.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('Iterator#every', assert => {\n  const { every } = Iterator.prototype;\n\n  assert.isFunction(every);\n  assert.arity(every, 1);\n  assert.name(every, 'every');\n  assert.looksNative(every);\n  assert.nonEnumerable(Iterator.prototype, 'every');\n\n  assert.true(every.call(createIterator([1, 2, 3]), it => typeof it == 'number'), 'basic functionality #1');\n  assert.false(every.call(createIterator([1, 2, 3]), it => it % 2), 'basic functionality #2');\n  every.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n  });\n\n  if (STRICT) {\n    assert.throws(() => every.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => every.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => every.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => every.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => every.call(it, {}), TypeError);\n  assert.true(it.closed, 'every closes iterator on validation error');\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.filter.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nconst { from } = Array;\n\nQUnit.test('Iterator#filter', assert => {\n  const { filter } = Iterator.prototype;\n\n  assert.isFunction(filter);\n  assert.arity(filter, 1);\n  assert.name(filter, 'filter');\n  assert.looksNative(filter);\n  assert.nonEnumerable(Iterator.prototype, 'filter');\n\n  assert.arrayEqual(filter.call(createIterator([1, 2, 3]), it => it % 2).toArray(), [1, 3], 'basic functionality');\n\n  from(filter.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n  }));\n\n  if (STRICT) {\n    assert.throws(() => filter.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => filter.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => filter.call({}, () => { /* empty */ }).next(), TypeError);\n  assert.throws(() => filter.call([], () => { /* empty */ }).next(), TypeError);\n  assert.throws(() => filter.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => filter.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => filter.call(it, {}), TypeError);\n  assert.true(it.closed, 'filter closes iterator on validation error');\n  // https://issues.chromium.org/issues/336839115\n  assert.throws(() => filter.call({ next: null }, () => { /* empty */ }).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.find.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('Iterator#find', assert => {\n  const { find } = Iterator.prototype;\n\n  assert.isFunction(find);\n  assert.arity(find, 1);\n  assert.name(find, 'find');\n  assert.looksNative(find);\n  assert.nonEnumerable(Iterator.prototype, 'find');\n\n  assert.same(find.call(createIterator([1, 2, 3]), it => !(it % 2)), 2, 'basic functionality');\n  find.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n  });\n\n  if (STRICT) {\n    assert.throws(() => find.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => find.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => find.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => find.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => find.call(it, {}), TypeError);\n  assert.true(it.closed, 'find closes iterator on validation error');\n\n  let returnCount = 0;\n  const it2 = createIterator([1, 2, 3], {\n    return() {\n      returnCount++;\n      throw new Error('close error');\n    },\n  });\n  assert.throws(() => find.call(it2, () => true), Error, 'iterator.return() throwing on stop');\n  assert.same(returnCount, 1, 'iterator.return() called exactly once when it throws');\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.flat-map.js",
    "content": "import { createIterator, createIterable } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('Iterator#flatMap', assert => {\n  const { flatMap } = Iterator.prototype;\n\n  assert.isFunction(flatMap);\n  assert.arity(flatMap, 1);\n  assert.name(flatMap, 'flatMap');\n  assert.looksNative(flatMap);\n  assert.nonEnumerable(Iterator.prototype, 'flatMap');\n\n  assert.arrayEqual(\n    flatMap.call(createIterator([1, [], 2, createIterable([3, 4]), [5, 6]]), it => typeof it == 'number' ? [-it] : it).toArray(),\n    [-1, -2, 3, 4, 5, 6],\n    'basic functionality',\n  );\n  flatMap.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n    return [arg];\n  }).toArray();\n\n  // Should not throw an error for an iterator without `return` method. Fixed in Safari 26.2\n  // https://bugs.webkit.org/show_bug.cgi?id=297532\n  assert.notThrows(() => {\n    const iter = flatMap.call(new Map([[4, 5]]).entries(), v => v);\n    iter.next();\n    iter.return();\n  }, 'iterator without `return` method');\n\n  if (STRICT) {\n    assert.throws(() => flatMap.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => flatMap.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => flatMap.call({}, () => { /* empty */ }).next(), TypeError);\n  assert.throws(() => flatMap.call([], () => { /* empty */ }).next(), TypeError);\n  assert.throws(() => flatMap.call(createIterator([1]), it => it).next(), TypeError);\n  assert.throws(() => flatMap.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => flatMap.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => flatMap.call(it, {}), TypeError);\n  assert.true(it.closed, 'flatMap closes iterator on validation error');\n  // https://issues.chromium.org/issues/336839115\n  assert.throws(() => flatMap.call({ next: null }, () => { /* empty */ }).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.for-each.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('Iterator#forEach', assert => {\n  const { forEach } = Iterator.prototype;\n\n  assert.isFunction(forEach);\n  assert.arity(forEach, 1);\n  assert.name(forEach, 'forEach');\n  assert.looksNative(forEach);\n  assert.nonEnumerable(Iterator.prototype, 'forEach');\n\n  const array = [];\n\n  forEach.call(createIterator([1, 2, 3]), it => array.push(it));\n\n  assert.arrayEqual(array, [1, 2, 3], 'basic functionality');\n\n  forEach.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n  });\n\n  if (STRICT) {\n    assert.throws(() => forEach.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => forEach.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => forEach.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => forEach.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => forEach.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => forEach.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => forEach.call(it, {}), TypeError);\n  assert.true(it.closed, 'forEach closes iterator on validation error');\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.from.js",
    "content": "import { createIterable, createIterator } from '../helpers/helpers.js';\n\nconst { assign } = Object;\n\nQUnit.test('Iterator.from', assert => {\n  const { from } = Iterator;\n\n  assert.isFunction(from);\n  assert.arity(from, 1);\n  assert.name(from, 'from');\n  assert.looksNative(from);\n  assert.nonEnumerable(Iterator, 'from');\n\n  assert.true(Iterator.from(createIterator([1, 2, 3])) instanceof Iterator, 'proxy, iterator');\n\n  assert.true(Iterator.from(createIterable([1, 2, 3])) instanceof Iterator, 'proxy, iterable');\n\n  assert.arrayEqual(Iterator.from(createIterable([1, 2, 3])).toArray(), [1, 2, 3], 'just a proxy');\n\n  assert.throws(() => from(undefined), TypeError);\n  assert.throws(() => from(null), TypeError);\n  assert.throws(() => from({}).next(), TypeError);\n  assert.throws(() => from(assign(new Iterator(), { next: 42 })).next(), TypeError);\n\n  // Should not throw when an underlying iterator's `return` method is null\n  // https://bugs.webkit.org/show_bug.cgi?id=288714\n  const iterator = createIterator([], { return: null });\n  const result = from(iterator).return('ignored');\n  assert.true(result.done, 'iterator with null return #1');\n  assert.strictEqual(result.value, undefined, 'iterator with null return #2');\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.map.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('Iterator#map', assert => {\n  const { map } = Iterator.prototype;\n\n  assert.isFunction(map);\n  assert.arity(map, 1);\n  assert.name(map, 'map');\n  assert.looksNative(map);\n  assert.nonEnumerable(Iterator.prototype, 'map');\n\n  assert.arrayEqual(map.call(createIterator([1, 2, 3]), it => it ** 2).toArray(), [1, 4, 9], 'basic functionality');\n  map.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n  }).toArray();\n\n  if (STRICT) {\n    assert.throws(() => map.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => map.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => map.call({}, () => { /* empty */ }).next(), TypeError);\n  assert.throws(() => map.call([], () => { /* empty */ }).next(), TypeError);\n  assert.throws(() => map.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => map.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => map.call(it, {}), TypeError);\n  assert.true(it.closed, 'map closes iterator on validation error');\n\n  {\n    let returnCount = 0;\n    const it2 = createIterator([1], {\n      return() {\n        returnCount++;\n        return { done: true, value: undefined };\n      },\n    });\n    const mapped = map.call(it2, x => x);\n    mapped.next();\n    mapped.next(); // exhaust\n    mapped.return();\n    assert.same(returnCount, 0, '.return() on exhausted iterator does not call underlying return');\n  }\n\n  // https://issues.chromium.org/issues/336839115\n  assert.throws(() => map.call({ next: null }, () => { /* empty */ }).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.reduce.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('Iterator#reduce', assert => {\n  const { reduce } = Iterator.prototype;\n\n  assert.isFunction(reduce);\n  assert.arity(reduce, 1);\n  assert.name(reduce, 'reduce');\n  assert.looksNative(reduce);\n  assert.nonEnumerable(Iterator.prototype, 'reduce');\n\n  assert.same(reduce.call(createIterator([1, 2, 3]), (a, b) => a + b, 1), 7, 'basic functionality');\n  assert.same(reduce.call(createIterator([1, 2, 3]), (a, b) => a + b), 6, 'basic functionality, no init');\n  reduce.call(createIterator([2]), function (a, b, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 3, 'arguments length');\n    assert.same(a, 1, 'argument 1');\n    assert.same(b, 2, 'argument 2');\n    assert.same(counter, 0, 'counter');\n  }, 1);\n\n  if (STRICT) {\n    assert.throws(() => reduce.call(undefined, (a, b) => a + b, 0), TypeError);\n    assert.throws(() => reduce.call(null, (a, b) => a + b, 0), TypeError);\n  }\n\n  assert.throws(() => reduce.call({}, (a, b) => a + b, 0), TypeError);\n  assert.throws(() => reduce.call([], (a, b) => a + b, 0), TypeError);\n  assert.throws(() => reduce.call(createIterator([1]), undefined, 1), TypeError);\n  assert.throws(() => reduce.call(createIterator([1]), null, 1), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => reduce.call(it, {}, 1), TypeError);\n  assert.true(it.closed, 'reduce closes iterator on validation error');\n  assert.notThrows(() => reduce.call(createIterator([]), () => false, undefined), 'does not fail on undefined initial parameter');\n  assert.same(reduce.call(createIterator([]), () => false, undefined), undefined, 'correct result on undefined initial parameter');\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.some.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('Iterator#some', assert => {\n  const { some } = Iterator.prototype;\n\n  assert.isFunction(some);\n  assert.arity(some, 1);\n  assert.name(some, 'some');\n  assert.looksNative(some);\n  assert.nonEnumerable(Iterator.prototype, 'some');\n\n  assert.true(some.call(createIterator([1, 2, 3]), it => it % 2), 'basic functionality #1');\n  assert.false(some.call(createIterator([1, 2, 3]), it => typeof it == 'string'), 'basic functionality #2');\n  some.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n  });\n\n  if (STRICT) {\n    assert.throws(() => some.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => some.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => some.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => some.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => some.call(it, {}), TypeError);\n  assert.true(it.closed, 'some closes iterator on validation error');\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.take.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nQUnit.test('Iterator#take', assert => {\n  const { take } = Iterator.prototype;\n\n  assert.isFunction(take);\n  assert.arity(take, 1);\n  assert.name(take, 'take');\n  assert.looksNative(take);\n  assert.nonEnumerable(Iterator.prototype, 'take');\n\n  assert.arrayEqual(take.call(createIterator([1, 2, 3]), 2).toArray(), [1, 2], 'basic functionality');\n  assert.arrayEqual(take.call(createIterator([1, 2, 3]), 1.5).toArray(), [1], 'float');\n  assert.arrayEqual(take.call(createIterator([1, 2, 3]), 4).toArray(), [1, 2, 3], 'big');\n  assert.arrayEqual(take.call(createIterator([1, 2, 3]), 0).toArray(), [], 'zero');\n\n  if (STRICT) {\n    assert.throws(() => take.call(undefined, 1), TypeError);\n    assert.throws(() => take.call(null, 1), TypeError);\n  }\n\n  assert.throws(() => take.call({}, 1).next(), TypeError);\n  assert.throws(() => take.call([], 1).next(), TypeError);\n  assert.throws(() => take.call(createIterator([1, 2, 3]), -1), RangeError, 'negative');\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => take.call(it, NaN), RangeError, 'NaN');\n  assert.true(it.closed, 'take closes iterator on validation error');\n  // https://issues.chromium.org/issues/336839115\n  assert.throws(() => take.call({ next: null }, 1).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.iterator.to-array.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterable, createIterator } from '../helpers/helpers.js';\n\nQUnit.test('Iterator#toArray', assert => {\n  const { toArray } = Iterator.prototype;\n\n  assert.isFunction(toArray);\n  assert.arity(toArray, 0);\n  assert.name(toArray, 'toArray');\n  assert.looksNative(toArray);\n  assert.nonEnumerable(Iterator.prototype, 'toArray');\n\n  assert.arrayEqual([1, 2, 3].values().toArray(), [1, 2, 3]);\n  assert.arrayEqual(new Set([1, 2, 3]).values().toArray(), [1, 2, 3]);\n\n  assert.arrayEqual(Iterator.from('123').toArray(), ['1', '2', '3']);\n  assert.arrayEqual(Iterator.from(createIterable([1, 2, 3])).toArray(), [1, 2, 3]);\n\n  assert.arrayEqual(toArray.call(createIterator([1, 2, 3])), [1, 2, 3]);\n\n  if (STRICT) {\n    assert.throws(() => toArray.call(undefined), TypeError);\n    assert.throws(() => toArray.call(null), TypeError);\n  }\n\n  assert.throws(() => toArray.call({}), TypeError);\n  assert.throws(() => toArray.call([]), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.json.is-raw-json.js",
    "content": "QUnit.test('JSON.isRawJSON', assert => {\n  const { isRawJSON, rawJSON } = JSON;\n  const { freeze } = Object;\n\n  assert.isFunction(isRawJSON);\n  assert.arity(isRawJSON, 1);\n  assert.name(isRawJSON, 'isRawJSON');\n  assert.looksNative(isRawJSON);\n\n  assert.true(isRawJSON(rawJSON(1)), 'raw1');\n  assert.true(isRawJSON(rawJSON(null)), 'raw2');\n  assert.false(isRawJSON(freeze({ rawJSON: '123' })), 'fake');\n  assert.false(isRawJSON(undefined), 'undefined');\n  assert.false(isRawJSON(null), 'null');\n  assert.false(isRawJSON(1), 'number');\n  assert.false(isRawJSON('qwe'), 'string');\n  assert.false(isRawJSON(true), 'bool');\n  assert.false(isRawJSON(Symbol('JSON.isRawJSON test')), 'sym');\n  assert.false(isRawJSON({}), 'object');\n  assert.false(isRawJSON([]), 'array');\n});\n"
  },
  {
    "path": "tests/unit-global/es.json.parse.js",
    "content": "// Some tests adopted from Test262 project and governed by the BSD license.\n// Copyright (c) 2012 Ecma International. All rights reserved.\n/* eslint-disable unicorn/escape-case -- testing */\nimport { DESCRIPTORS, REDEFINABLE_PROTO } from '../helpers/constants.js';\n\nQUnit.test('JSON.parse', assert => {\n  const { parse } = JSON;\n  const { defineProperty, hasOwn, keys } = Object;\n  assert.isFunction(parse);\n  assert.arity(parse, 2);\n  assert.name(parse, 'parse');\n  assert.looksNative(parse);\n\n  for (const [reviver, note] of [[undefined, 'without reviver'], [(key, value) => value, 'with reviver']]) {\n    assert.throws(() => parse('12\\t\\r\\n 34', reviver), SyntaxError, `15.12.1.1-0-1 ${ note }`); // should produce a syntax error as whitespace results in two tokens\n    assert.throws(() => parse('\\u000b1234', reviver), SyntaxError, `15.12.1.1-0-2 ${ note }`); // should produce a syntax error\n    assert.throws(() => parse('\\u000c1234', reviver), SyntaxError, `15.12.1.1-0-3 ${ note }`); // should produce a syntax error\n    assert.throws(() => parse('\\u00a01234', reviver), SyntaxError, `15.12.1.1-0-4 ${ note }`); // should produce a syntax error\n    assert.throws(() => parse('\\u200b1234', reviver), SyntaxError, `15.12.1.1-0-5 ${ note }`); // should produce a syntax error\n    assert.throws(() => parse('\\ufeff1234', reviver), SyntaxError, `15.12.1.1-0-6 ${ note }`); // should produce a syntax error\n    assert.throws(() => parse('\\u2028\\u20291234', reviver), SyntaxError, `15.12.1.1-0-8 ${ note }`); // should produce a syntax error\n    assert.notThrows(() => parse('\\t\\r \\n{\\t\\r \\n\"property\"\\t\\r \\n:\\t\\r \\n{\\t\\r \\n}\\t\\r \\n,\\t\\r \\n\"prop2\"\\t\\r \\n:\\t\\r \\n' +\n      '[\\t\\r \\ntrue\\t\\r \\n,\\t\\r \\nnull\\t\\r \\n,123.456\\t\\r \\n]\\t\\r \\n}\\t\\r \\n', reviver), SyntaxError, `15.12.1.1-0-9 ${ note }`); // should JSON parse without error\n    assert.same(parse('\\t1234', reviver), 1234, `15.12.1.1-g1-1-1 ${ note }`); // '<TAB> should be ignored'\n    assert.throws(() => parse('12\\t34', reviver), SyntaxError, `15.12.1.1-g1-1-2 ${ note }`); // <TAB> should produce a syntax error as whitespace results in two tokens\n    assert.same(parse('\\r1234', reviver), 1234, `15.12.1.1-g1-2-1 ${ note }`); // '<CR> should be ignored'\n    assert.throws(() => parse('12\\r34', reviver), SyntaxError, `15.12.1.1-g1-2-2 ${ note }`); // <CR> should produce a syntax error as whitespace results in two tokens\n    assert.same(parse('\\n1234', reviver), 1234, `15.12.1.1-g1-3-1 ${ note }`); // '<LF> should be ignored'\n    assert.throws(() => parse('12\\n34', reviver), SyntaxError, `15.12.1.1-g1-3-2 ${ note }`); // <LF> should produce a syntax error as whitespace results in two tokens\n    assert.same(parse(' 1234', reviver), 1234, `15.12.1.1-g1-4-1 ${ note }`); // '<SP> should be ignored'\n    assert.throws(() => parse('12 34', reviver), SyntaxError, `15.12.1.1-g1-4-2 ${ note }`); // <SP> should produce a syntax error as whitespace results in two tokens\n    assert.same(parse('\"abc\"', reviver), 'abc', `15.12.1.1-g2-1 ${ note }`);\n    assert.throws(() => parse(\"'abc'\", reviver), SyntaxError, `15.12.1.1-g2-2 ${ note }`);\n    assert.throws(() => parse('\\\\u0022abc\\\\u0022', reviver), SyntaxError, `15.12.1.1-g2-3 ${ note }`);\n    assert.throws(() => parse('\"abc\\'', reviver), SyntaxError, `15.12.1.1-g2-4 ${ note }`);\n    assert.same(parse('\"\"', reviver), '', `15.12.1.1-g2-5 ${ note }`);\n    // invalid string characters should produce a syntax error\n    assert.throws(() => parse('\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\"', reviver), SyntaxError, `15.12.1.1-g4-1 ${ note }`);\n    assert.throws(() => parse('\"\\u0008\\u0009\\u000a\\u000b\\u000c\\u000d\\u000e\\u000f\"', reviver), SyntaxError, `15.12.1.1-g4-2 ${ note }`);\n    assert.throws(() => parse('\"\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\"', reviver), SyntaxError, `15.12.1.1-g4-3 ${ note }`);\n    assert.throws(() => parse('\"\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f\"', reviver), SyntaxError, `15.12.1.1-g4-4 ${ note }`);\n    assert.same(parse('\"\\\\u0058\"', reviver), 'X', `15.12.1.1-g5-1 ${ note }`);\n    assert.throws(() => parse('\"\\\\u005\"', reviver), SyntaxError, `15.12.1.1-g5-2 ${ note }`);\n    assert.throws(() => parse('\"\\\\u0X50\"', reviver), SyntaxError, `15.12.1.1-g5-3 ${ note }`);\n    assert.same(parse('\"\\\\/\"', reviver), '/', `15.12.1.1-g6-1 ${ note }`);\n    assert.same(parse('\"\\\\\\\\\"', reviver), '\\\\', `15.12.1.1-g6-2 ${ note }`);\n    assert.same(parse('\"\\\\b\"', reviver), '\\b', `15.12.1.1-g6-3 ${ note }`);\n    assert.same(parse('\"\\\\f\"', reviver), '\\f', `15.12.1.1-g6-4 ${ note }`);\n    assert.same(parse('\"\\\\n\"', reviver), '\\n', `15.12.1.1-g6-5 ${ note }`);\n    assert.same(parse('\"\\\\r\"', reviver), '\\r', `15.12.1.1-g6-6 ${ note }`);\n    assert.same(parse('\"\\\\t\"', reviver), '\\t', `15.12.1.1-g6-7 ${ note }`);\n\n    const nullChars = [\n      '\"\\u0000\"',\n      '\"\\u0001\"',\n      '\"\\u0002\"',\n      '\"\\u0003\"',\n      '\"\\u0004\"',\n      '\"\\u0005\"',\n      '\"\\u0006\"',\n      '\"\\u0007\"',\n      '\"\\u0008\"',\n      '\"\\u0009\"',\n      '\"\\u000A\"',\n      '\"\\u000B\"',\n      '\"\\u000C\"',\n      '\"\\u000D\"',\n      '\"\\u000E\"',\n      '\"\\u000F\"',\n      '\"\\u0010\"',\n      '\"\\u0011\"',\n      '\"\\u0012\"',\n      '\"\\u0013\"',\n      '\"\\u0014\"',\n      '\"\\u0015\"',\n      '\"\\u0016\"',\n      '\"\\u0017\"',\n      '\"\\u0018\"',\n      '\"\\u0019\"',\n      '\"\\u001A\"',\n      '\"\\u001B\"',\n      '\"\\u001C\"',\n      '\"\\u001D\"',\n      '\"\\u001E\"',\n      '\"\\u001F\"',\n    ];\n\n    for (let i = 0; i < nullChars.length; i++) {\n      assert.throws(() => parse(`{${ nullChars[i] } : \"John\" }`, reviver), SyntaxError, `15.12.2-2-1-${ i } ${ note }`);\n      assert.throws(() => parse(`{${ nullChars[i] }name : \"John\" }`, reviver), SyntaxError, `15.12.2-2-2-${ i } ${ note }`);\n      assert.throws(() => parse(`{name${ nullChars[i] } : \"John\" }`, reviver), SyntaxError, `15.12.2-2-3-${ i } ${ note }`);\n      assert.throws(() => parse(`{${ nullChars[i] }name${ nullChars[i] } : \"John\" }`, reviver), SyntaxError, `15.12.2-2-4-${ i } ${ note }`);\n      assert.throws(() => parse(`{na${ nullChars[i] }me : \"John\" }`, reviver), SyntaxError, `15.12.2-2-5-${ i } ${ note }`);\n      assert.throws(() => parse(`{ \"name\" : ${ nullChars[i] } }`, reviver), SyntaxError, `15.12.2-2-6-${ i } ${ note }`);\n      assert.throws(() => parse(`{ \"name\" : ${ nullChars[i] }John }`, reviver), SyntaxError, `15.12.2-2-7-${ i } ${ note }`);\n      assert.throws(() => parse(`{ \"name\" : John${ nullChars[i] } }`, reviver), SyntaxError, `15.12.2-2-8-${ i } ${ note }`);\n      assert.throws(() => parse(`{ \"name\" : ${ nullChars[i] }John${ nullChars[i] } }`, reviver), SyntaxError, `15.12.2-2-9-${ i } ${ note }`);\n      assert.throws(() => parse(`{ \"name\" : Jo${ nullChars[i] }hn }`, reviver), SyntaxError, `15.12.2-2-10-${ i } ${ note }`);\n    }\n\n    if (REDEFINABLE_PROTO) {\n      // eslint-disable-next-line no-proto -- testing\n      assert.same(parse('{ \"__proto__\": 1, \"__proto__\": 2 }', reviver).__proto__, 2, `duplicate proto ${ note }`);\n    }\n\n    assert.throws(() => parse('\\u16801', reviver), SyntaxError, `15.12.1.1-0-7-1 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u180e1', reviver), SyntaxError, `15.12.1.1-0-7-2 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20001', reviver), SyntaxError, `15.12.1.1-0-7-3 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20011', reviver), SyntaxError, `15.12.1.1-0-7-4 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20021', reviver), SyntaxError, `15.12.1.1-0-7-5 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20031', reviver), SyntaxError, `15.12.1.1-0-7-6 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20041', reviver), SyntaxError, `15.12.1.1-0-7-7 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20051', reviver), SyntaxError, `15.12.1.1-0-7-8 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20061', reviver), SyntaxError, `15.12.1.1-0-7-9 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20071', reviver), SyntaxError, `15.12.1.1-0-7-10 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20081', reviver), SyntaxError, `15.12.1.1-0-7-11 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20091', reviver), SyntaxError, `15.12.1.1-0-7-12 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u200a1', reviver), SyntaxError, `15.12.1.1-0-7-13 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u202f1', reviver), SyntaxError, `15.12.1.1-0-7-14 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u205f1', reviver), SyntaxError, `15.12.1.1-0-7-15 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u30001', reviver), SyntaxError, `15.12.1.1-0-7-16 ${ note }`); // invalid whitespace\n\n    assert.same(parse('-0', reviver), -0, `negative-zero-1 ${ note }`);\n    assert.same(parse(' \\n-0', reviver), -0, `negative-zero-2 ${ note }`);\n    assert.same(parse('-0  \\t', reviver), -0, `negative-zero-3 ${ note }`);\n    assert.same(parse('\\n\\t -0\\n   ', reviver), -0, `negative-zero-4 ${ note }`);\n    assert.same(parse(-0, reviver), 0, `negative-zero-5 ${ note }`);\n\n    assert.throws(() => parse('1.', reviver), SyntaxError, `number-fraction-no-digits-1 ${ note }`);\n    assert.throws(() => parse('-0.', reviver), SyntaxError, `number-fraction-no-digits-2 ${ note }`);\n    assert.throws(() => parse('1.e5', reviver), SyntaxError, `number-fraction-no-digits-3 ${ note }`);\n    assert.throws(() => parse('[1.,2]', reviver), SyntaxError, `number-fraction-no-digits-4 ${ note }`);\n\n    assert.throws(() => parse('{', reviver), SyntaxError, `unterminated-object-1 ${ note }`);\n    assert.throws(() => parse('{\"a\":1,', reviver), SyntaxError, `unterminated-object-2 ${ note }`);\n    assert.throws(() => parse('[', reviver), SyntaxError, `unterminated-array-1 ${ note }`);\n    assert.throws(() => parse('[1,', reviver), SyntaxError, `unterminated-array-2 ${ note }`);\n\n    assert.throws(() => parse(undefined, reviver), SyntaxError, `undefined ${ note }`);\n    assert.throws(() => parse(Symbol('JSON.parse test'), reviver), TypeError, `symbol ${ note }`);\n    assert.same(parse(null, reviver), null, `null ${ note }`);\n    assert.same(parse(false, reviver), false, `false ${ note }`);\n    assert.same(parse(true, reviver), true, `true ${ note }`);\n    assert.same(parse(0, reviver), 0, `0 ${ note }`);\n    assert.same(parse(3.14, reviver), 3.14, `3.14 ${ note }`);\n\n    assert.same(parse({\n      toString() {\n        return '\"string\"';\n      },\n      valueOf() {\n        return '\"default_or_number\"';\n      },\n    }, reviver), 'string', `text-object ${ note }`);\n\n    assert.throws(() => parse({\n      toString: null,\n      valueOf() {\n        throw new EvalError('t262');\n      },\n    }, reviver), EvalError, `text-object-abrupt-1 ${ note }`);\n\n    assert.throws(() => parse({\n      toString() {\n        throw new EvalError('t262');\n      },\n    }, reviver), EvalError, `text-object-abrupt-2 ${ note }`);\n  }\n\n  // eslint-disable-next-line no-extend-native -- testing\n  Array.prototype[1] = 3;\n  const arr1 = parse('[1, 2]', function (key, value) {\n    if (key === '0') delete this[1];\n    return value;\n  });\n  delete Array.prototype[1];\n  assert.same(arr1[0], 1, 'reviver-array-get-prop-from-prototype-1');\n  assert.true(hasOwn(arr1, '1'), 'reviver-array-get-prop-from-prototype-2');\n  assert.same(arr1[1], 3, 'reviver-array-get-prop-from-prototype-3');\n\n  // eslint-disable-next-line no-extend-native -- testing\n  Object.prototype.b = 3;\n  const obj1 = parse('{\"a\": 1, \"b\": 2}', function (key, value) {\n    if (key === 'a') delete this.b;\n    return value;\n  });\n  delete Object.prototype.b;\n  assert.same(obj1.a, 1, 'reviver-object-get-prop-from-prototype-1');\n  assert.true(hasOwn(obj1, 'b'), 'reviver-object-get-prop-from-prototype-2');\n  assert.same(obj1.b, 3, 'reviver-object-get-prop-from-prototype-3');\n\n  if (DESCRIPTORS) {\n    const arr2 = parse('[1, 2]', function (key, value) {\n      if (key === '0') defineProperty(this, '1', { configurable: false });\n      if (key === '1') return 22;\n      return value;\n    });\n    assert.same(arr2[0], 1, 'reviver-array-non-configurable-prop-create-1');\n    assert.same(arr2[1], 2, 'reviver-array-non-configurable-prop-create-2');\n\n    const arr3 = parse('[1, 2]', function (key, value) {\n      if (key === '0') defineProperty(this, '1', { configurable: false });\n      if (key === '1') return;\n      return value;\n    });\n    assert.same(arr3[0], 1, 'reviver-array-non-configurable-prop-delete-1');\n    assert.true(hasOwn(arr3, '1'), 'reviver-array-non-configurable-prop-delete-2');\n    assert.same(arr3[1], 2, 'reviver-array-non-configurable-prop-delete-3');\n\n    const obj2 = parse('{\"a\": 1, \"b\": 2}', function (key, value) {\n      if (key === 'a') defineProperty(this, 'b', { configurable: false });\n      if (key === 'b') return 22;\n      return value;\n    });\n    assert.same(obj2.a, 1, 'reviver-object-non-configurable-prop-create-1');\n    assert.same(obj2.b, 2, 'reviver-object-non-configurable-prop-create-2');\n\n    const obj3 = parse('{\"a\": 1, \"b\": 2}', function (key, value) {\n      if (key === 'a') defineProperty(this, 'b', { configurable: false });\n      if (key === 'b') return;\n      return value;\n    });\n    assert.same(obj3.a, 1, 'reviver-object-non-configurable-prop-delete-1');\n    assert.true(hasOwn(obj3, 'b'), 'reviver-object-non-configurable-prop-delete-2');\n    assert.same(obj3.b, 2, 'reviver-object-non-configurable-prop-delete-3');\n\n    assert.throws(() => parse('[0,0]', function () {\n      defineProperty(this, '1', { get: () => { throw new EvalError('t262'); } });\n    }), EvalError, 'reviver-get-name-err');\n  }\n\n  assert.throws(() => parse('0', () => { throw new EvalError('t262'); }), EvalError, 'reviver-call-err');\n\n  // FF20- enumeration order issue\n  if (keys({ k: 1, 2: 3 })[0] === '2') {\n    const calls = [];\n    parse('{\"p1\":0,\"p2\":0,\"p1\":0,\"2\":0,\"1\":0}', (name, val) => {\n      calls.push(name);\n      return val;\n    });\n    // The empty string is the _rootName_ in JSON.parse\n    assert.arrayEqual(calls, ['1', '2', 'p1', 'p2', ''], 'reviver-call-order');\n  }\n\n  assert.throws(() => parse(), SyntaxError, 'no args');\n});\n\nQUnit.test('JSON.parse source access', assert => {\n  const { parse } = JSON;\n  const spy = (k, v, { source: $source }) => source = $source;\n  let source;\n  parse('1234', spy);\n  assert.same(source, '1234', '1234');\n  parse('\"1234\"', spy);\n  assert.same(source, '\"1234\"', '\"1234\"');\n  parse('null', spy);\n  assert.same(source, 'null', 'null');\n  parse('true', spy);\n  assert.same(source, 'true', 'true');\n  parse('false', spy);\n  assert.same(source, 'false', 'false');\n  parse('{}', spy);\n  assert.same(source, undefined, '{}');\n  parse('[]', spy);\n  assert.same(source, undefined, '[]');\n  parse('9007199254740993', spy);\n  assert.same(source, '9007199254740993', '9007199254740993');\n});\n"
  },
  {
    "path": "tests/unit-global/es.json.raw-json.js",
    "content": "import { FREEZING } from '../helpers/constants.js';\n\nQUnit.test('JSON.rawJSON', assert => {\n  const { rawJSON, stringify } = JSON;\n  const { isFrozen, hasOwn } = Object;\n\n  assert.isFunction(rawJSON);\n  assert.arity(rawJSON, 1);\n  assert.name(rawJSON, 'rawJSON');\n  assert.looksNative(rawJSON);\n\n  const raw = rawJSON(1);\n  assert.true(hasOwn(raw, 'rawJSON'), 'own rawJSON');\n  assert.same(raw.rawJSON, '1', 'is string 1');\n  if (FREEZING) assert.true(isFrozen(raw), 'frozen');\n\n  assert.same(stringify(rawJSON('\"qwe\"')), '\"qwe\"');\n  assert.same(stringify(rawJSON('null')), 'null');\n  assert.same(stringify(rawJSON('true')), 'true');\n  assert.same(stringify(rawJSON('9007199254740993')), '9007199254740993');\n  assert.same(stringify({ key: rawJSON('9007199254740993') }), '{\"key\":9007199254740993}');\n  assert.same(stringify([rawJSON('9007199254740993')]), '[9007199254740993]');\n\n  assert.throws(() => rawJSON('\"qwe'), SyntaxError, 'invalid 1');\n  assert.throws(() => rawJSON({}), SyntaxError, 'invalid 2');\n  assert.throws(() => rawJSON(''), SyntaxError, 'invalid 3');\n});\n"
  },
  {
    "path": "tests/unit-global/es.json.stringify.js",
    "content": "// Some tests adopted from Test262 project and governed by the BSD license.\n// Copyright (c) 2012 Ecma International. All rights reserved.\n/* eslint-disable es/no-bigint,unicorn/no-hex-escape -- testing */\nimport { DESCRIPTORS, GLOBAL } from '../helpers/constants.js';\n\nif (GLOBAL.JSON?.stringify) {\n  QUnit.test('JSON.stringify', assert => {\n    const { stringify } = JSON;\n    const { defineProperty, keys, values } = Object;\n\n    assert.isFunction(stringify);\n    assert.arity(stringify, 3);\n    assert.name(stringify, 'stringify');\n    assert.looksNative(stringify);\n\n    assert.same(stringify({ a: 1, b: 2 }, []), '{}', 'replacer-array-empty-1');\n    assert.same(stringify({ a: 1, b: { c: 2 } }, []), '{}', 'replacer-array-empty-2');\n    assert.same(stringify([1, { a: 2 }], []), '[1,{}]', 'replacer-array-empty-3');\n\n    const num1 = new Number(10);\n    num1.toString = () => 'toString';\n    num1.valueOf = () => { throw new EvalError('should not be called'); };\n    assert.same(stringify({\n      10: 1,\n      toString: 2,\n      valueOf: 3,\n    }, [num1]), '{\"toString\":2}', 'replacer-array-number-object');\n\n    const obj1 = {\n      0: 0,\n      1: 1,\n      '-4': 2,\n      0.3: 3,\n      '-Infinity': 4,\n      NaN: 5,\n    };\n    assert.same(stringify(obj1, [\n      -0,\n      1,\n      -4,\n      0.3,\n      -Infinity,\n      NaN,\n    ]), stringify(obj1), 'replacer-array-number');\n\n    const str1 = new String('str');\n    str1.toString = () => 'toString';\n    str1.valueOf = () => { throw new EvalError('should not be called'); };\n    assert.same(stringify({\n      str: 1,\n      toString: 2,\n      valueOf: 3,\n    }, [str1]), '{\"toString\":2}', 'replacer-array-string-object');\n\n    assert.same(stringify({ undefined: 1 }, [undefined]), '{}', 'replacer-array-undefined-1');\n    // eslint-disable-next-line no-sparse-arrays -- testing\n    assert.same(stringify({ key: 1, undefined: 2 }, [,,,]), '{}', 'replacer-array-undefined-2');\n    const sparse = Array(3);\n    sparse[1] = 'key';\n    assert.same(stringify({ undefined: 1, key: 2 }, sparse), '{\"key\":2}', 'replacer-array-undefined-3');\n\n    assert.throws(() => stringify({}, () => { throw new EvalError('should not be called'); }), EvalError, 'replacer-function-abrupt');\n\n    const calls = [];\n    const b1 = [1, 2];\n    const b2 = { c1: true, c2: false };\n    const a1 = {\n      b1,\n      b2: {\n        toJSON() { return b2; },\n      },\n    };\n    const obj2 = { a1, a2: 'a2' };\n    assert.same(stringify(obj2, function (key, value) {\n      if (key !== '') calls.push([this, key, value]);\n      return value;\n    }), stringify(obj2), 'replacer-function-arguments-1');\n    assert.arrayEqual(calls[0], [obj2, 'a1', a1], 'replacer-function-arguments-2');\n    assert.arrayEqual(calls[1], [a1, 'b1', b1], 'replacer-function-arguments-3');\n    assert.arrayEqual(calls[2], [b1, '0', 1], 'replacer-function-arguments-4');\n    assert.arrayEqual(calls[3], [b1, '1', 2], 'replacer-function-arguments-5');\n    assert.arrayEqual(calls[4], [a1, 'b2', b2], 'replacer-function-arguments-6');\n    assert.arrayEqual(calls[5], [b2, 'c1', true], 'replacer-function-arguments-7');\n    assert.arrayEqual(calls[6], [b2, 'c2', false], 'replacer-function-arguments-8');\n    assert.arrayEqual(calls[7], [obj2, 'a2', 'a2'], 'replacer-function-arguments-9');\n\n    const circular1 = [{}];\n    assert.throws(() => stringify(circular1, () => circular1), TypeError, 'replacer-function-array-circular');\n\n    const direct1 = { prop: {} };\n    assert.throws(() => stringify(direct1, () => direct1), TypeError, 'replacer-function-object-circular-1');\n    const indirect1 = { p1: { p2: {} } };\n    assert.throws(() => stringify(indirect1, (key, value) => key === 'p2' ? indirect1 : value), TypeError, 'replacer-function-object-circular-2');\n\n    assert.same(stringify(1, () => { /* empty */ }), undefined, 'replacer-function-result-undefined-1');\n    assert.same(stringify([1], () => { /* empty */ }), undefined, 'replacer-function-result-undefined-2');\n    assert.same(stringify({ prop: 1 }, () => { /* empty */ }), undefined, 'replacer-function-result-undefined-3');\n    assert.same(stringify([1], (key, value) => value === 1 ? undefined : value), '[null]', 'replacer-function-result-undefined-4');\n    assert.same(stringify({ prop: 1 }, (key, value) => value === 1 ? undefined : value), '{}', 'replacer-function-result-undefined-5');\n    assert.same(stringify({ a: { b: [1] } }, (key, value) => value === 1 ? undefined : value), '{\"a\":{\"b\":[null]}}', 'replacer-function-result-undefined-6');\n\n    assert.same(stringify(null, (key, value) => {\n      assert.same(value, null);\n      switch (key) {\n        case '': return { a1: null, a2: null };\n        case 'a1': return { b1: null, b2: null };\n        case 'a2': return 'a2';\n        case 'b1': return [null, null];\n        case 'b2': return { c1: null, c2: null };\n        case '0': return 1;\n        case '1': return 2;\n        case 'c1': return true;\n        case 'c2': return false;\n      } throw new EvalError('unreachable');\n    }), stringify({\n      a1: {\n        b1: [1, 2],\n        b2: {\n          c1: true,\n          c2: false,\n        },\n      },\n      a2: 'a2',\n    }), 'replacer-function-result');\n\n    assert.same(stringify({\n      toJSON() { return 'toJSON'; },\n    }, (_key, value) => `${ value }|replacer`), '\"toJSON|replacer\"', 'replacer-function-tojson-1');\n\n    assert.same(stringify({\n      toJSON() { return { calls: 'toJSON' }; },\n    }, (_key, value) => {\n      if (value && value.calls) value.calls += '|replacer';\n      return value;\n    }), '{\"calls\":\"toJSON|replacer\"}', 'replacer-function-tojson-2');\n\n    const obj4 = { key: [1] };\n    const json1 = '{\"key\":[1]}';\n    assert.same(stringify(obj4, {}), json1, 'replacer-wrong-type-1');\n    assert.same(stringify(obj4, new String('str')), json1, 'replacer-wrong-type-2');\n    assert.same(stringify(obj4, new Number(6.1)), json1, 'replacer-wrong-type-3');\n    assert.same(stringify(obj4, null), json1, 'replacer-wrong-type-4');\n    assert.same(stringify(obj4, ''), json1, 'replacer-wrong-type-5');\n    assert.same(stringify(obj4, 0), json1, 'replacer-wrong-type-6');\n    assert.same(stringify(obj4, Symbol('stringify replacer test')), json1, 'replacer-wrong-type-7');\n    assert.same(stringify(obj4, true), json1, 'replacer-wrong-type-8');\n\n    const obj5 = {\n      a1: {\n        b1: [1, 2, 3, 4],\n        b2: {\n          c1: 1,\n          c2: 2,\n        },\n      },\n      a2: 'a2',\n    };\n\n    assert.same(stringify(obj5, null, -1.99999), stringify(obj5, null, -1), 'space-number-float-1');\n    assert.same(stringify(obj5, null, new Number(5.11111)), stringify(obj5, null, 5), 'space-number-float-2');\n    assert.same(stringify(obj5, null, 6.99999), stringify(obj5, null, 6), 'space-number-float-3');\n\n    assert.same(stringify(obj5, null, new Number(1)), stringify(obj5, null, 1), 'space-number-object-1');\n    const num2 = new Number(1);\n    num2.toString = () => { throw new EvalError('should not be called'); };\n    num2.valueOf = () => 3;\n    assert.same(stringify(obj5, null, num2), stringify(obj5, null, 3), 'space-number-object-2');\n    const abrupt1 = new Number(4);\n    abrupt1.toString = () => { throw new EvalError('t262'); };\n    abrupt1.valueOf = () => { throw new EvalError('t262'); };\n    assert.throws(() => stringify(obj5, null, abrupt1), EvalError, 'space-number-object-3');\n\n    assert.same(stringify(obj5, null, new Number(-5)), stringify(obj5, null, 0), 'space-number-range-1');\n    assert.same(stringify(obj5, null, 10), stringify(obj5, null, 100), 'space-number-range-2');\n\n    assert.same(stringify(obj5, null, 0), stringify(obj5, null, ''), 'space-number-1');\n    assert.same(stringify(obj5, null, 4), stringify(obj5, null, '    '), 'space-number-2');\n\n    assert.same(stringify(obj5, null, new String('xxx')), stringify(obj5, null, 'xxx'), 'space-string-object-1');\n    const str2 = new String('xxx');\n    str2.toString = () => '---';\n    str2.valueOf = () => { throw new EvalError('should not be called'); };\n    assert.same(stringify(obj5, null, str2), stringify(obj5, null, '---'), 'space-string-object-2');\n    const abrupt2 = new String('xxx');\n    abrupt2.toString = () => { throw new EvalError('t262'); };\n    abrupt2.valueOf = () => { throw new EvalError('t262'); };\n    assert.throws(() => stringify(obj5, null, abrupt2), EvalError, 'space-string-object-3');\n\n    assert.same(stringify(obj5, null, '0123456789xxxxxxxxx'), stringify(obj5, null, '0123456789'), 'space-string-range');\n\n    assert.same(stringify(obj5, null, ''), stringify(obj5), 'space-string-1');\n    assert.same(stringify(obj5, null, '  '), `{\n  \"a1\": {\n    \"b1\": [\n      1,\n      2,\n      3,\n      4\n    ],\n    \"b2\": {\n      \"c1\": 1,\n      \"c2\": 2\n    }\n  },\n  \"a2\": \"a2\"\n}`, 'space-string-2');\n\n    assert.same(stringify(obj5), stringify(obj5, null, null), 'space-wrong-type-1');\n    assert.same(stringify(obj5), stringify(obj5, null, true), 'space-wrong-type-2');\n    assert.same(stringify(obj5), stringify(obj5, null, new Boolean(false)), 'space-wrong-type-3');\n    assert.same(stringify(obj5), stringify(obj5, null, Symbol('stringify space test')), 'space-wrong-type-4');\n    assert.same(stringify(obj5), stringify(obj5, null, {}), 'space-wrong-type-5');\n\n    const direct2 = [];\n    direct2.push(direct2);\n    assert.throws(() => stringify(direct2), TypeError, 'value-array-circular-1');\n    const indirect2 = [];\n    indirect2.push([[indirect2]]);\n    assert.throws(() => stringify(indirect2), TypeError, 'value-array-circular-2');\n\n    if (typeof BigInt == 'function') {\n      assert.same(stringify(BigInt(0), (k, v) => typeof v === 'bigint' ? 'bigint' : v), '\"bigint\"', 'value-bigint-replacer-1');\n      assert.same(stringify({ x: BigInt(0) }, (k, v) => typeof v === 'bigint' ? 'bigint' : v), '{\"x\":\"bigint\"}', 'value-bigint-replacer-2');\n      assert.throws(() => stringify(BigInt(0)), TypeError, 'value-bigint-1');\n      assert.throws(() => stringify(Object(BigInt(0))), TypeError, 'value-bigint-2');\n      assert.throws(() => stringify({ x: BigInt(0) }), TypeError, 'value-bigint-3');\n    }\n\n    assert.same(stringify(new Boolean(true)), 'true', 'value-boolean-object-1');\n    assert.same(stringify({\n      toJSON() {\n        return { key: new Boolean(false) };\n      },\n    }), '{\"key\":false}', 'value-boolean-object-2');\n    assert.same(stringify([1], (k, v) => v === 1 ? new Boolean(true) : v), '[true]', 'value-boolean-object-3');\n\n    assert.same(stringify(() => { /* empty */ }), undefined, 'value-function-1');\n    assert.same(stringify([() => { /* empty */ }]), '[null]', 'value-function-2');\n    assert.same(stringify({ key() { /* empty */ } }), '{}', 'value-function-3');\n\n    assert.same(stringify(-0), '0', 'value-number-negative-zero-1');\n    assert.same(stringify(['-0', 0, -0]), '[\"-0\",0,0]', 'value-number-negative-zero-2');\n    assert.same(stringify({ key: -0 }), '{\"key\":0}', 'value-number-negative-zero-3');\n\n    assert.same(stringify(Infinity), 'null', 'value-number-non-finite-1');\n    assert.same(stringify({ key: -Infinity }), '{\"key\":null}', 'value-number-non-finite-2');\n    assert.same(stringify([NaN]), '[null]', 'value-number-non-finite-3');\n\n    assert.same(stringify(new Number(8.5)), '8.5', 'value-number-object-1');\n    assert.same(stringify(['str'], (key, value) => {\n      if (value === 'str') {\n        const num = new Number(42);\n        num.toString = () => { throw new EvalError('should not be called'); };\n        num.valueOf = () => 2;\n        return num;\n      } return value;\n    }), '[2]', 'value-number-object-2');\n    assert.throws(() => stringify({\n      key: {\n        toJSON() {\n          const num = new Number(3.14);\n          num.toString = () => { throw new EvalError('t262'); };\n          num.valueOf = () => { throw new EvalError('t262'); };\n          return num;\n        },\n      },\n    }), EvalError, 'value-number-object-3');\n\n    const direct3 = { prop: null };\n    direct3.prop = direct3;\n    assert.throws(() => stringify(direct3), TypeError, 'value-object-circular-1');\n    const indirect3 = { p1: { p2: {} } };\n    indirect3.p1.p2.p3 = indirect3;\n    assert.throws(() => stringify(indirect3), TypeError, 'value-object-circular-2');\n\n    assert.same(stringify(null), 'null', 'null');\n    assert.same(stringify(true), 'true', 'true');\n    assert.same(stringify(false), 'false', 'false');\n    assert.same(stringify('str'), '\"str\"', '\"str\"');\n    assert.same(stringify(123), '123', '123');\n    assert.same(stringify(undefined), undefined, 'undefined');\n\n    const charToJson = {\n      '\"': '\\\\\"',\n      '\\\\': '\\\\\\\\',\n      '\\x00': '\\\\u0000',\n      '\\x01': '\\\\u0001',\n      '\\x02': '\\\\u0002',\n      '\\x03': '\\\\u0003',\n      '\\x04': '\\\\u0004',\n      '\\x05': '\\\\u0005',\n      '\\x06': '\\\\u0006',\n      '\\x07': '\\\\u0007',\n      '\\x08': '\\\\b',\n      '\\x09': '\\\\t',\n      '\\x0A': '\\\\n',\n      '\\x0B': '\\\\u000b',\n      '\\x0C': '\\\\f',\n      '\\x0D': '\\\\r',\n      '\\x0E': '\\\\u000e',\n      '\\x0F': '\\\\u000f',\n      '\\x10': '\\\\u0010',\n      '\\x11': '\\\\u0011',\n      '\\x12': '\\\\u0012',\n      '\\x13': '\\\\u0013',\n      '\\x14': '\\\\u0014',\n      '\\x15': '\\\\u0015',\n      '\\x16': '\\\\u0016',\n      '\\x17': '\\\\u0017',\n      '\\x18': '\\\\u0018',\n      '\\x19': '\\\\u0019',\n      '\\x1A': '\\\\u001a',\n      '\\x1B': '\\\\u001b',\n      '\\x1C': '\\\\u001c',\n      '\\x1D': '\\\\u001d',\n      '\\x1E': '\\\\u001e',\n      '\\x1F': '\\\\u001f',\n    };\n    const chars = keys(charToJson).join('');\n    const charsReversed = keys(charToJson).reverse().join('');\n    const jsonChars = values(charToJson).join('');\n    const jsonCharsReversed = values(charToJson).reverse().join('');\n    const json = stringify({ [`name${ chars }${ charsReversed }`]: `${ charsReversed }${ chars }value` });\n    for (const chr in charToJson) {\n      const count = json.split(charToJson[chr]).length - 1;\n      assert.same(count, 4, `Every ASCII 0x${ chr.charCodeAt(0).toString(16) } serializes to ${ charToJson[chr] }`);\n    }\n    assert.same(\n      json,\n      `{\"name${ jsonChars }${ jsonCharsReversed }\":\"${ jsonCharsReversed }${ jsonChars }value\"}`,\n      'JSON.stringify(objectUsingControlCharacters)',\n    );\n\n    assert.same(stringify('\\uD834'), '\"\\\\ud834\"', 'JSON.stringify(\"\\\\uD834\")');\n    assert.same(stringify('\\uDF06'), '\"\\\\udf06\"', 'JSON.stringify(\"\\\\uDF06\")');\n    assert.same(stringify('\\uD834\\uDF06'), '\"𝌆\"', 'JSON.stringify(\"\\\\uD834\\\\uDF06\")');\n    assert.same(stringify('\\uD834\\uD834\\uDF06\\uD834'), '\"\\\\ud834𝌆\\\\ud834\"', 'JSON.stringify(\"\\\\uD834\\\\uD834\\\\uDF06\\\\uD834\")');\n    assert.same(stringify('\\uD834\\uD834\\uDF06\\uDF06'), '\"\\\\ud834𝌆\\\\udf06\"', 'JSON.stringify(\"\\\\uD834\\\\uD834\\\\uDF06\\\\uDF06\")');\n    assert.same(stringify('\\uDF06\\uD834\\uDF06\\uD834'), '\"\\\\udf06𝌆\\\\ud834\"', 'JSON.stringify(\"\\\\uDF06\\\\uD834\\\\uDF06\\\\uD834\")');\n    assert.same(stringify('\\uDF06\\uD834\\uDF06\\uDF06'), '\"\\\\udf06𝌆\\\\udf06\"', 'JSON.stringify(\"\\\\uDF06\\\\uD834\\\\uDF06\\\\uDF06\")');\n    assert.same(stringify('\\uDF06\\uD834'), '\"\\\\udf06\\\\ud834\"', 'JSON.stringify(\"\\\\uDF06\\\\uD834\")');\n    assert.same(stringify('\\uD834\\uDF06\\uD834\\uD834'), '\"𝌆\\\\ud834\\\\ud834\"', 'JSON.stringify(\"\\\\uD834\\\\uDF06\\\\uD834\\\\uD834\")');\n    assert.same(stringify('\\uD834\\uDF06\\uD834\\uDF06'), '\"𝌆𝌆\"', 'JSON.stringify(\"\\\\uD834\\\\uDF06\\\\uD834\\\\uDF06\")');\n    assert.same(stringify('\\uDF06\\uDF06\\uD834\\uD834'), '\"\\\\udf06\\\\udf06\\\\ud834\\\\ud834\"', 'JSON.stringify(\"\\\\uDF06\\\\uDF06\\\\uD834\\\\uD834\")');\n    assert.same(stringify('\\uDF06\\uDF06\\uD834\\uDF06'), '\"\\\\udf06\\\\udf06𝌆\"', 'JSON.stringify(\"\\\\uDF06\\\\uDF06\\\\uD834\\\\uDF06\")');\n\n    assert.same(stringify(new String('str')), '\"str\"', 'value-string-object-1');\n    assert.same(stringify({\n      key: {\n        toJSON() {\n          const str = new String('str');\n          str.toString = () => 'toString';\n          str.valueOf = () => { throw new EvalError('should not be called'); };\n          return str;\n        },\n      },\n    }), '{\"key\":\"toString\"}', 'value-string-object-2');\n    assert.throws(() => stringify([true], (key, value) => {\n      if (value === true) {\n        const str = new String('str');\n        str.toString = () => { throw new EvalError('t262'); };\n        str.valueOf = () => { throw new EvalError('t262'); };\n        return str;\n      } return value;\n    }), 'value-string-object-3');\n\n    assert.throws(() => stringify({\n      toJSON() { throw new EvalError('t262'); },\n    }), EvalError, 'value-tojson-abrupt-1');\n\n    let callCount = 0;\n    let $this, $key;\n    const obj6 = {\n      toJSON(key) {\n        callCount += 1;\n        $this = this;\n        $key = key;\n      },\n    };\n    assert.same(stringify(obj6), undefined, 'value-tojson-arguments-1');\n    assert.same(callCount, 1, 'value-tojson-arguments-2');\n    assert.same($this, obj6, 'value-tojson-arguments-3');\n    assert.same($key, '', 'value-tojson-arguments-4');\n    assert.same(stringify([1, obj6, 3]), '[1,null,3]', 'value-tojson-arguments-5');\n    assert.same(callCount, 2, 'value-tojson-arguments-6');\n    assert.same($this, obj6, 'value-tojson-arguments-7');\n    // some old implementations (like WebKit) could pass numbers as keys\n    // assert.same($key, '1', 'value-tojson-arguments-8');\n    assert.same(stringify({ key: obj6 }), '{}', 'value-tojson-arguments-9');\n    assert.same(callCount, 3, 'value-tojson-arguments-10');\n    assert.same($this, obj6, 'value-tojson-arguments-11');\n    assert.same($key, 'key', 'value-tojson-arguments-12');\n\n    const arr1 = [];\n    const circular2 = [arr1];\n    // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- testing\n    arr1.toJSON = () => circular2;\n    assert.throws(() => stringify(circular2), TypeError, 'value-tojson-array-circular');\n\n    assert.same(stringify({ toJSON: null }), '{\"toJSON\":null}', 'value-tojson-not-function-1');\n    assert.same(stringify({ toJSON: false }), '{\"toJSON\":false}', 'value-tojson-not-function-2');\n    assert.same(stringify({ toJSON: [] }), '{\"toJSON\":[]}', 'value-tojson-not-function-3');\n    assert.same(stringify({ toJSON: /re/ }), '{\"toJSON\":{}}', 'value-tojson-not-function-4');\n\n    const obj7 = {};\n    const circular3 = { prop: obj7 };\n    obj7.toJSON = () => circular3;\n    assert.throws(() => stringify(circular3), TypeError, 'value-tojson-object-circular');\n\n    assert.same(stringify({ toJSON() { return [false]; } }), '[false]', 'value-tojson-result-1');\n    const arr2 = [true];\n    // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- testing\n    arr2.toJSON = () => { /* empty */ };\n    assert.same(stringify(arr2), undefined, 'value-tojson-result-2');\n    const str3 = new String('str');\n    // eslint-disable-next-line es/no-nonstandard-string-prototype-properties -- testing\n    str3.toJSON = () => null;\n    assert.same(stringify({ key: str3 }), '{\"key\":null}', 'value-tojson-result-3');\n    const num3 = new Number(14);\n    // eslint-disable-next-line es/no-nonstandard-number-prototype-properties -- testing\n    num3.toJSON = () => ({ key: 7 });\n    assert.same(stringify([num3]), '[{\"key\":7}]', 'value-tojson-result-4');\n\n    if (DESCRIPTORS) {\n      // This getter will be triggered during enumeration, but the property it adds should not be enumerated.\n      /* IE issue\n      const o = defineProperty({\n        p1: 'p1',\n        p2: 'p2',\n        p3: 'p3',\n      }, 'add', {\n        enumerable: true,\n        get() {\n          o.extra = 'extra';\n          return 'add';\n        },\n      });\n      o.p4 = 'p4';\n      o[2] = '2';\n      o[0] = '0';\n      o[1] = '1';\n      delete o.p1;\n      delete o.p3;\n      o.p1 = 'p1';\n      assert.same(stringify(o), '{\"0\":\"0\",\"1\":\"1\",\"2\":\"2\",\"p2\":\"p2\",\"add\":\"add\",\"p4\":\"p4\",\"p1\":\"p1\"}', 'property-order');\n      */\n\n      let getCalls = 0;\n      assert.same(stringify(defineProperty({}, 'key', {\n        enumerable: true,\n        get() {\n          getCalls += 1;\n          return true;\n        },\n      }), ['key', 'key']), '{\"key\":true}', 'replacer-array-duplicates-1');\n      assert.same(getCalls, 1, 'replacer-array-duplicates-2');\n\n      /* old WebKit bug - however, fixing of this is not in priority\n      const obj3 = defineProperty({}, 'a', {\n        enumerable: true,\n        get() {\n          delete this.b;\n          return 1;\n        },\n      });\n      obj3.b = 2;\n      assert.same(stringify(obj3, (key, value) => {\n        if (key === 'b') {\n          assert.same(value, undefined, 'replacer-function-object-deleted-property-1');\n          return '<replaced>';\n        } return value;\n      }), '{\"a\":1,\"b\":\"<replaced>\"}', 'replacer-function-object-deleted-property-2');\n      */\n\n      assert.throws(() => stringify({ key: defineProperty(Array(1), '0', {\n        get() { throw new EvalError('t262'); },\n      }) }), EvalError, 'value-array-abrupt');\n\n      assert.throws(() => stringify(defineProperty({}, 'key', {\n        enumerable: true,\n        get() { throw new EvalError('t262'); },\n      })), EvalError, 'value-object-abrupt');\n\n      assert.throws(() => stringify(defineProperty({}, 'toJSON', {\n        get() { throw new EvalError('t262'); },\n      })), EvalError, 'value-tojson-abrupt-2');\n    }\n  });\n\n  QUnit.test('Symbols & JSON.stringify', assert => {\n    const { stringify } = JSON;\n\n    const symbol1 = Symbol('symbol & stringify test 1');\n    const symbol2 = Symbol('symbol & stringify test 2');\n\n    assert.same(stringify([\n      1,\n      symbol1,\n      false,\n      symbol2,\n      {},\n    ]), '[1,null,false,null,{}]', 'array value');\n    assert.same(stringify({\n      symbol: symbol1,\n    }), '{}', 'object value');\n    if (DESCRIPTORS) {\n      const object = { bar: 2 };\n      object[symbol1] = 1;\n      assert.same(stringify(object), '{\"bar\":2}', 'object key');\n    }\n    assert.same(stringify(symbol1), undefined, 'symbol value');\n    if (typeof symbol1 == 'symbol') {\n      assert.same(stringify(Object(symbol1)), '{}', 'boxed symbol');\n    }\n    assert.same(stringify(undefined, () => 42), '42', 'replacer works with top-level undefined');\n  });\n\n  QUnit.test('Well‑formed JSON.stringify', assert => {\n    const { stringify } = JSON;\n\n    assert.same(stringify({ foo: 'bar' }), '{\"foo\":\"bar\"}', 'basic');\n    assert.same(stringify('\\uDEAD'), '\"\\\\udead\"', 'r1');\n    assert.same(stringify('\\uDF06\\uD834'), '\"\\\\udf06\\\\ud834\"', 'r2');\n    assert.same(stringify('\\uDF06ab\\uD834'), '\"\\\\udf06ab\\\\ud834\"', 'r3');\n    assert.same(stringify('𠮷'), '\"𠮷\"', 'r4');\n    assert.same(stringify('\\uD834\\uDF06'), '\"𝌆\"', 'r5');\n    assert.same(stringify('\\uD834\\uD834\\uDF06'), '\"\\\\ud834𝌆\"', 'r6');\n    assert.same(stringify('\\uD834\\uDF06\\uDF06'), '\"𝌆\\\\udf06\"', 'r7');\n    assert.same(stringify({ '𠮷': ['\\uDF06\\uD834'] }), '{\"𠮷\":[\"\\\\udf06\\\\ud834\"]}', 'r8');\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.map.get-or-insert-computed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Map#getOrInsertComputed', assert => {\n  const { getOrInsertComputed } = Map.prototype;\n  const { from } = Array;\n  assert.isFunction(getOrInsertComputed);\n  assert.arity(getOrInsertComputed, 2);\n  assert.name(getOrInsertComputed, 'getOrInsertComputed');\n  assert.looksNative(getOrInsertComputed);\n  assert.nonEnumerable(Map.prototype, 'getOrInsertComputed');\n\n  let map = new Map([['a', 2]]);\n  assert.same(map.getOrInsertComputed('a', () => 3), 2, 'result#1');\n  assert.deepEqual(from(map), [['a', 2]], 'map#1');\n  map = new Map([['a', 2]]);\n  assert.same(map.getOrInsertComputed('b', () => 3), 3, 'result#2');\n  assert.deepEqual(from(map), [['a', 2], ['b', 3]], 'map#2');\n\n  map = new Map([['a', 2]]);\n  map.getOrInsertComputed('a', () => assert.avoid());\n\n  map = new Map([['a', 2]]);\n  map.getOrInsertComputed('b', function (key) {\n    if (STRICT) assert.same(this, undefined, 'correct handler in callback');\n    assert.same(arguments.length, 1, 'correct number of callback arguments');\n    assert.same(key, 'b', 'correct key in callback');\n  });\n\n  map = new Map([['a', 2]]);\n  map.getOrInsertComputed(-0, key => assert.same(key, 0, 'CanonicalizeKeyedCollectionKey'));\n\n  map = new Map([['a', 2]]);\n  assert.same(map.getOrInsertComputed('b', key => {\n    map.set(key, 4);\n    return 3;\n  }), 3, 'callback inserts same key');\n  assert.deepEqual(from(map), [['a', 2], ['b', 3]], 'map after callback inserts same key');\n\n  assert.throws(() => new Map().getOrInsertComputed('a', {}), TypeError, 'non-callable#1');\n  assert.throws(() => new Map().getOrInsertComputed('a', 1), TypeError, 'non-callable#2');\n  assert.throws(() => new Map().getOrInsertComputed('a', null), TypeError, 'non-callable#3');\n  assert.throws(() => new Map().getOrInsertComputed('a', undefined), TypeError, 'non-callable#4');\n  assert.throws(() => new Map().getOrInsertComputed('a'), TypeError, 'non-callable#5');\n  assert.throws(() => getOrInsertComputed.call({}, 'a', () => 3), TypeError, 'non-generic#1');\n  assert.throws(() => getOrInsertComputed.call([], 'a', () => 3), TypeError, 'non-generic#2');\n  assert.throws(() => getOrInsertComputed.call(undefined, 'a', () => 3), TypeError, 'non-generic#3');\n  assert.throws(() => getOrInsertComputed.call(null, 'a', () => 3), TypeError, 'non-generic#4');\n});\n"
  },
  {
    "path": "tests/unit-global/es.map.get-or-insert.js",
    "content": "QUnit.test('Map#getOrInsert', assert => {\n  const { getOrInsert } = Map.prototype;\n  const { from } = Array;\n  assert.isFunction(getOrInsert);\n  assert.arity(getOrInsert, 2);\n  assert.name(getOrInsert, 'getOrInsert');\n  assert.looksNative(getOrInsert);\n  assert.nonEnumerable(Map.prototype, 'getOrInsert');\n\n  let map = new Map([['a', 2]]);\n  assert.same(map.getOrInsert('a', 3), 2, 'result#1');\n  assert.deepEqual(from(map), [['a', 2]], 'map#1');\n  map = new Map([['a', 2]]);\n  assert.same(map.getOrInsert('b', 3), 3, 'result#2');\n  assert.deepEqual(from(map), [['a', 2], ['b', 3]], 'map#2');\n\n  assert.throws(() => getOrInsert.call({}, 'a', 1), TypeError, 'non-generic#1');\n  assert.throws(() => getOrInsert.call([], 'a', 1), TypeError, 'non-generic#2');\n  assert.throws(() => getOrInsert.call(undefined, 'a', 1), TypeError, 'non-generic#3');\n  assert.throws(() => getOrInsert.call(null, 'a', 1), TypeError, 'non-generic#4');\n});\n"
  },
  {
    "path": "tests/unit-global/es.map.group-by.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Map.groupBy', assert => {\n  const { groupBy } = Map;\n  const toArray = Array.from;\n\n  assert.isFunction(groupBy);\n  assert.arity(groupBy, 2);\n  assert.name(groupBy, 'groupBy');\n  assert.looksNative(groupBy);\n  assert.nonEnumerable(Map, 'groupBy');\n\n  assert.true(Map.groupBy([], it => it) instanceof Map);\n\n  assert.deepEqual(toArray(groupBy([], it => it)), []);\n  assert.deepEqual(toArray(groupBy([1, 2], it => it ** 2)), [[1, [1]], [4, [2]]]);\n  assert.deepEqual(toArray(groupBy([1, 2, 1], it => it ** 2)), [[1, [1, 1]], [4, [2]]]);\n  assert.deepEqual(toArray(groupBy(createIterable([1, 2]), it => it ** 2)), [[1, [1]], [4, [2]]]);\n  assert.deepEqual(toArray(groupBy('qwe', it => it)), [['q', ['q']], ['w', ['w']], ['e', ['e']]], 'iterable string');\n\n  const element = {};\n  groupBy([element], function (it, i) {\n    assert.same(arguments.length, 2, 'correct number of callback arguments');\n    assert.same(it, element, 'correct value in callback');\n    assert.same(i, 0, 'correct index in callback');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/es.map.js",
    "content": "/* eslint-disable sonarjs/no-element-overwrite -- required for testing */\n\nimport { DESCRIPTORS, GLOBAL, NATIVE } from '../helpers/constants.js';\nimport { createIterable, is, nativeSubclass } from '../helpers/helpers.js';\n\nconst Symbol = GLOBAL.Symbol || {};\nconst { getOwnPropertyDescriptor, keys, getOwnPropertyNames, getOwnPropertySymbols, freeze } = Object;\nconst { ownKeys } = GLOBAL.Reflect || {};\n\nQUnit.test('Map', assert => {\n  assert.isFunction(Map);\n  assert.arity(Map, 0);\n  assert.name(Map, 'Map');\n  assert.looksNative(Map);\n  assert.true('clear' in Map.prototype, 'clear in Map.prototype');\n  assert.true('delete' in Map.prototype, 'delete in Map.prototype');\n  assert.true('forEach' in Map.prototype, 'forEach in Map.prototype');\n  assert.true('get' in Map.prototype, 'get in Map.prototype');\n  assert.true('has' in Map.prototype, 'has in Map.prototype');\n  assert.true('set' in Map.prototype, 'set in Map.prototype');\n  assert.true(new Map() instanceof Map, 'new Map instanceof Map');\n  assert.same(new Map(createIterable([[1, 1], [2, 2], [3, 3]])).size, 3, 'Init from iterable');\n  assert.same(new Map([[freeze({}), 1], [2, 3]]).size, 2, 'Support frozen objects');\n  let done = false;\n  try {\n    new Map(createIterable([null, 1, 2], {\n      return() {\n        return done = true;\n      },\n    }));\n  } catch { /* empty */ }\n  assert.true(done, '.return #throw');\n  const array = [];\n  done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return [][Symbol.iterator].call(this);\n  };\n  new Map(array);\n  assert.true(done);\n  const object = {};\n  new Map().set(object, 1);\n  if (DESCRIPTORS) {\n    const results = [];\n    for (const key in object) results.push(key);\n    assert.arrayEqual(results, []);\n    assert.arrayEqual(keys(object), []);\n  }\n  assert.arrayEqual(getOwnPropertyNames(object), []);\n  if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []);\n  if (ownKeys) assert.arrayEqual(ownKeys(object), []);\n  if (nativeSubclass) {\n    const Subclass = nativeSubclass(Map);\n    assert.true(new Subclass() instanceof Subclass, 'correct subclassing with native classes #1');\n    assert.true(new Subclass() instanceof Map, 'correct subclassing with native classes #2');\n    assert.same(new Subclass().set(1, 2).get(1), 2, 'correct subclassing with native classes #3');\n  }\n\n  const buffer = new ArrayBuffer(8);\n  const map = new Map([[buffer, 8]]);\n  assert.true(map.has(buffer), 'works with ArrayBuffer keys');\n});\n\nQUnit.test('Map#clear', assert => {\n  assert.isFunction(Map.prototype.clear);\n  assert.arity(Map.prototype.clear, 0);\n  assert.name(Map.prototype.clear, 'clear');\n  assert.looksNative(Map.prototype.clear);\n  assert.nonEnumerable(Map.prototype, 'clear');\n  let map = new Map();\n  map.clear();\n  assert.same(map.size, 0);\n  map = new Map();\n  map.set(1, 2);\n  map.set(2, 3);\n  map.set(1, 4);\n  map.clear();\n  assert.same(map.size, 0);\n  assert.false(map.has(1));\n  assert.false(map.has(2));\n  const frozen = freeze({});\n  map = new Map();\n  map.set(1, 2);\n  map.set(frozen, 3);\n  map.clear();\n  assert.same(map.size, 0, 'Support frozen objects');\n  assert.false(map.has(1));\n  assert.false(map.has(frozen));\n});\n\nQUnit.test('Map#delete', assert => {\n  assert.isFunction(Map.prototype.delete);\n  assert.arity(Map.prototype.delete, 1);\n  if (NATIVE) assert.name(Map.prototype.delete, 'delete');\n  assert.looksNative(Map.prototype.delete);\n  assert.nonEnumerable(Map.prototype, 'delete');\n  const object = {};\n  const map = new Map();\n  map.set(NaN, 1);\n  map.set(2, 1);\n  map.set(3, 7);\n  map.set(2, 5);\n  map.set(1, 4);\n  map.set(object, 9);\n  assert.same(map.size, 5);\n  assert.true(map.delete(NaN));\n  assert.same(map.size, 4);\n  assert.false(map.delete(4));\n  assert.same(map.size, 4);\n  map.delete([]);\n  assert.same(map.size, 4);\n  map.delete(object);\n  assert.same(map.size, 3);\n  const frozen = freeze({});\n  map.set(frozen, 42);\n  assert.same(map.size, 4);\n  map.delete(frozen);\n  assert.same(map.size, 3);\n});\n\nQUnit.test('Map#forEach', assert => {\n  assert.isFunction(Map.prototype.forEach);\n  assert.arity(Map.prototype.forEach, 1);\n  assert.name(Map.prototype.forEach, 'forEach');\n  assert.looksNative(Map.prototype.forEach);\n  assert.nonEnumerable(Map.prototype, 'forEach');\n  let result = {};\n  let count = 0;\n  const object = {};\n  let map = new Map();\n  map.set(NaN, 1);\n  map.set(2, 1);\n  map.set(3, 7);\n  map.set(2, 5);\n  map.set(1, 4);\n  map.set(object, 9);\n  map.forEach((value, key) => {\n    count++;\n    result[value] = key;\n  });\n  assert.same(count, 5);\n  assert.deepEqual(result, {\n    1: NaN,\n    7: 3,\n    5: 2,\n    4: 1,\n    9: object,\n  });\n  map = new Map();\n  map.set('0', 9);\n  map.set('1', 9);\n  map.set('2', 9);\n  map.set('3', 9);\n  result = '';\n  map.forEach((value, key) => {\n    result += key;\n    if (key === '2') {\n      map.delete('2');\n      map.delete('3');\n      map.delete('1');\n      map.set('4', 9);\n    }\n  });\n  assert.same(result, '0124');\n  map = new Map([['0', 1]]);\n  result = '';\n  map.forEach(it => {\n    map.delete('0');\n    if (result !== '') throw new Error();\n    result += it;\n  });\n  assert.same(result, '1');\n  assert.throws(() => {\n    Map.prototype.forEach.call(new Set(), () => { /* empty */ });\n  }, 'non-generic');\n});\n\nQUnit.test('Map#get', assert => {\n  assert.isFunction(Map.prototype.get);\n  assert.name(Map.prototype.get, 'get');\n  assert.arity(Map.prototype.get, 1);\n  assert.looksNative(Map.prototype.get);\n  assert.nonEnumerable(Map.prototype, 'get');\n  const object = {};\n  const frozen = freeze({});\n  const map = new Map();\n  map.set(NaN, 1);\n  map.set(2, 1);\n  map.set(3, 1);\n  map.set(2, 5);\n  map.set(1, 4);\n  map.set(frozen, 42);\n  map.set(object, object);\n  assert.same(map.get(NaN), 1);\n  assert.same(map.get(4), undefined);\n  assert.same(map.get({}), undefined);\n  assert.same(map.get(object), object);\n  assert.same(map.get(frozen), 42);\n  assert.same(map.get(2), 5);\n});\n\nQUnit.test('Map#has', assert => {\n  assert.isFunction(Map.prototype.has);\n  assert.name(Map.prototype.has, 'has');\n  assert.arity(Map.prototype.has, 1);\n  assert.looksNative(Map.prototype.has);\n  assert.nonEnumerable(Map.prototype, 'has');\n  const object = {};\n  const frozen = freeze({});\n  const map = new Map();\n  map.set(NaN, 1);\n  map.set(2, 1);\n  map.set(3, 1);\n  map.set(2, 5);\n  map.set(1, 4);\n  map.set(frozen, 42);\n  map.set(object, object);\n  assert.true(map.has(NaN));\n  assert.true(map.has(object));\n  assert.true(map.has(2));\n  assert.true(map.has(frozen));\n  assert.false(map.has(4));\n  assert.false(map.has({}));\n});\n\nQUnit.test('Map#set', assert => {\n  assert.isFunction(Map.prototype.set);\n  assert.name(Map.prototype.set, 'set');\n  assert.arity(Map.prototype.set, 2);\n  assert.looksNative(Map.prototype.set);\n  assert.nonEnumerable(Map.prototype, 'set');\n  const object = {};\n  let map = new Map();\n  map.set(NaN, 1);\n  map.set(2, 1);\n  map.set(3, 1);\n  map.set(2, 5);\n  map.set(1, 4);\n  map.set(object, object);\n  assert.same(map.size, 5);\n  const chain = map.set(7, 2);\n  assert.same(chain, map);\n  map.set(7, 2);\n  assert.same(map.size, 6);\n  assert.same(map.get(7), 2);\n  assert.same(map.get(NaN), 1);\n  map.set(NaN, 42);\n  assert.same(map.size, 6);\n  assert.same(map.get(NaN), 42);\n  map.set({}, 11);\n  assert.same(map.size, 7);\n  assert.same(map.get(object), object);\n  map.set(object, 27);\n  assert.same(map.size, 7);\n  assert.same(map.get(object), 27);\n  map = new Map();\n  map.set(NaN, 2);\n  map.set(NaN, 3);\n  map.set(NaN, 4);\n  assert.same(map.size, 1);\n  const frozen = freeze({});\n  map = new Map().set(frozen, 42);\n  assert.same(map.get(frozen), 42);\n});\n\nQUnit.test('Map#size', assert => {\n  assert.nonEnumerable(Map.prototype, 'size');\n  const map = new Map();\n  map.set(2, 1);\n  const { size } = map;\n  assert.same(typeof size, 'number', 'size is number');\n  assert.same(size, 1, 'size is correct');\n  if (DESCRIPTORS) {\n    const sizeDescriptor = getOwnPropertyDescriptor(Map.prototype, 'size');\n    const getter = sizeDescriptor && sizeDescriptor.get;\n    const setter = sizeDescriptor && sizeDescriptor.set;\n    assert.same(typeof getter, 'function', 'size is getter');\n    assert.same(typeof setter, 'undefined', 'size is not setter');\n    assert.throws(() => Map.prototype.size, TypeError);\n  }\n});\n\nQUnit.test('Map & -0', assert => {\n  let map = new Map();\n  map.set(-0, 1);\n  assert.same(map.size, 1);\n  assert.true(map.has(0));\n  assert.true(map.has(-0));\n  assert.same(map.get(0), 1);\n  assert.same(map.get(-0), 1);\n  map.forEach((val, key) => {\n    assert.false(is(key, -0));\n  });\n  map.delete(-0);\n  assert.same(map.size, 0);\n  map = new Map([[-0, 1]]);\n  map.forEach((val, key) => {\n    assert.false(is(key, -0));\n  });\n  map = new Map();\n  map.set(4, 4);\n  map.set(3, 3);\n  map.set(2, 2);\n  map.set(1, 1);\n  map.set(0, 0);\n  assert.true(map.has(-0));\n});\n\nQUnit.test('Map#@@toStringTag', assert => {\n  assert.same(Map.prototype[Symbol.toStringTag], 'Map', 'Map::@@toStringTag is `Map`');\n  assert.same(String(new Map()), '[object Map]', 'correct stringification');\n});\n\nQUnit.test('Map Iterator', assert => {\n  const map = new Map();\n  map.set('a', 1);\n  map.set('b', 2);\n  map.set('c', 3);\n  map.set('d', 4);\n  const results = [];\n  const iterator = map.keys();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.nonEnumerable(iterator, 'next');\n  assert.nonEnumerable(iterator, Symbol.iterator);\n  results.push(iterator.next().value);\n  assert.true(map.delete('a'));\n  assert.true(map.delete('b'));\n  assert.true(map.delete('c'));\n  map.set('e');\n  results.push(iterator.next().value, iterator.next().value);\n  assert.true(iterator.next().done);\n  map.set('f');\n  assert.true(iterator.next().done);\n  assert.deepEqual(results, ['a', 'd', 'e']);\n});\n\nQUnit.test('Map#keys', assert => {\n  assert.isFunction(Map.prototype.keys);\n  assert.name(Map.prototype.keys, 'keys');\n  assert.arity(Map.prototype.keys, 0);\n  assert.looksNative(Map.prototype.keys);\n  assert.nonEnumerable(Map.prototype, 'keys');\n  const map = new Map();\n  map.set('a', 'q');\n  map.set('s', 'w');\n  map.set('d', 'e');\n  const iterator = map.keys();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Map Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'a',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 's',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'd',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Map#values', assert => {\n  assert.isFunction(Map.prototype.values);\n  assert.name(Map.prototype.values, 'values');\n  assert.arity(Map.prototype.values, 0);\n  assert.looksNative(Map.prototype.values);\n  assert.nonEnumerable(Map.prototype, 'values');\n  const map = new Map();\n  map.set('a', 'q');\n  map.set('s', 'w');\n  map.set('d', 'e');\n  const iterator = map.values();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Map Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Map#entries', assert => {\n  assert.isFunction(Map.prototype.entries);\n  assert.name(Map.prototype.entries, 'entries');\n  assert.arity(Map.prototype.entries, 0);\n  assert.looksNative(Map.prototype.entries);\n  assert.nonEnumerable(Map.prototype, 'entries');\n  const map = new Map();\n  map.set('a', 'q');\n  map.set('s', 'w');\n  map.set('d', 'e');\n  const iterator = map.entries();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Map Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: ['a', 'q'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: ['s', 'w'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: ['d', 'e'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Map#@@iterator', assert => {\n  assert.isIterable(Map.prototype);\n  assert.name(Map.prototype.entries, 'entries');\n  assert.arity(Map.prototype.entries, 0);\n  assert.looksNative(Map.prototype[Symbol.iterator]);\n  assert.same(Map.prototype[Symbol.iterator], Map.prototype.entries);\n  assert.nonEnumerable(Map.prototype, Symbol.iterator);\n  const map = new Map();\n  map.set('a', 'q');\n  map.set('s', 'w');\n  map.set('d', 'e');\n  const iterator = map[Symbol.iterator]();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Map Iterator');\n  assert.same(String(iterator), '[object Map Iterator]');\n  assert.deepEqual(iterator.next(), {\n    value: ['a', 'q'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: ['s', 'w'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: ['d', 'e'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.acosh.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.acosh', assert => {\n  const { acosh } = Math;\n  assert.isFunction(acosh);\n  assert.name(acosh, 'acosh');\n  assert.arity(acosh, 1);\n  assert.looksNative(acosh);\n  assert.nonEnumerable(Math, 'acosh');\n  assert.same(acosh(NaN), NaN);\n  assert.same(acosh(0.5), NaN);\n  assert.same(acosh(-1), NaN);\n  assert.same(acosh(-1e300), NaN);\n  assert.same(acosh(1), 0);\n  assert.same(acosh(Infinity), Infinity);\n  assert.closeTo(acosh(1234), 7.811163220849231, 1e-11);\n  assert.closeTo(acosh(8.88), 2.8737631531629235, 1e-11);\n  assert.closeTo(acosh(1e+160), 369.10676205960726, 1e-11);\n  assert.closeTo(acosh(Number.MAX_VALUE), 710.475860073944, 1e-11);\n  assert.closeTo(acosh(1 + Number.EPSILON), 2.1073424255447017e-8, 1e-11);\n\n  const checker = createConversionChecker(1234);\n  assert.closeTo(acosh(checker), 7.811163220849231, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.asinh.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.asinh', assert => {\n  const { asinh } = Math;\n  assert.isFunction(asinh);\n  assert.name(asinh, 'asinh');\n  assert.arity(asinh, 1);\n  assert.looksNative(asinh);\n  assert.nonEnumerable(Math, 'asinh');\n  assert.same(asinh(NaN), NaN);\n  assert.same(asinh(0), 0);\n  assert.same(asinh(-0), -0);\n  assert.same(asinh(Infinity), Infinity);\n  assert.same(asinh(-Infinity), -Infinity);\n  assert.closeTo(asinh(1234), 7.811163549201245, 1e-11);\n  assert.closeTo(asinh(9.99), 2.997227420191335, 1e-11);\n  assert.closeTo(asinh(1e150), 346.0809111296668, 1e-11);\n  assert.closeTo(asinh(1e7), 16.811242831518268, 1e-11);\n  assert.closeTo(asinh(-1e7), -16.811242831518268, 1e-11);\n  assert.closeTo(asinh(1e200), 461.2101657793691, 1e-6, 'large value 1e200');\n  assert.closeTo(asinh(1e300), 691.4686750787736, 1e-6, 'large value 1e300');\n  assert.closeTo(asinh(Number.MAX_VALUE), 710.4758600739439, 1e-6, 'Number.MAX_VALUE');\n  assert.closeTo(asinh(-1e200), -461.2101657793691, 1e-6, 'large negative value');\n\n  const checker = createConversionChecker(1234);\n  assert.closeTo(asinh(checker), 7.811163549201245, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.atanh.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.atanh', assert => {\n  const { atanh } = Math;\n  assert.isFunction(atanh);\n  assert.name(atanh, 'atanh');\n  assert.arity(atanh, 1);\n  assert.looksNative(atanh);\n  assert.nonEnumerable(Math, 'atanh');\n  assert.same(atanh(NaN), NaN);\n  assert.same(atanh(-2), NaN);\n  assert.same(atanh(-1.5), NaN);\n  assert.same(atanh(2), NaN);\n  assert.same(atanh(1.5), NaN);\n  assert.same(atanh(-1), -Infinity);\n  assert.same(atanh(1), Infinity);\n  assert.same(atanh(0), 0);\n  assert.same(atanh(-0), -0);\n  assert.same(atanh(-1e300), NaN);\n  assert.same(atanh(1e300), NaN);\n  assert.closeTo(atanh(0.5), 0.5493061443340549, 1e-11);\n  assert.closeTo(atanh(-0.5), -0.5493061443340549, 1e-11);\n  assert.closeTo(atanh(0.444), 0.47720201260109457, 1e-11);\n\n  assert.closeTo(atanh(1e-10), 1e-10, 1e-25, 'small value 1e-10');\n  assert.closeTo(atanh(1e-17), 1e-17, 1e-32, 'small value 1e-17');\n  assert.notSame(atanh(1e-20), 0, 'atanh(1e-20) should not be 0');\n\n  const checker = createConversionChecker(0.5);\n  assert.closeTo(atanh(checker), 0.5493061443340549, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.cbrt.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.cbrt', assert => {\n  const { cbrt } = Math;\n  assert.isFunction(cbrt);\n  assert.name(cbrt, 'cbrt');\n  assert.arity(cbrt, 1);\n  assert.looksNative(cbrt);\n  assert.nonEnumerable(Math, 'cbrt');\n  assert.same(cbrt(NaN), NaN);\n  assert.same(cbrt(0), 0);\n  assert.same(cbrt(-0), -0);\n  assert.same(cbrt(Infinity), Infinity);\n  assert.same(cbrt(-Infinity), -Infinity);\n  assert.same(cbrt(-8), -2);\n  assert.same(cbrt(8), 2);\n  assert.closeTo(cbrt(-1000), -10, 1e-11);\n  assert.closeTo(cbrt(1000), 10, 1e-11);\n\n  const checker = createConversionChecker(1000);\n  assert.closeTo(cbrt(checker), 10, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.clz32.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.clz32', assert => {\n  const { clz32 } = Math;\n  assert.isFunction(clz32);\n  assert.name(clz32, 'clz32');\n  assert.arity(clz32, 1);\n  assert.looksNative(clz32);\n  assert.nonEnumerable(Math, 'clz32');\n  assert.same(clz32(0), 32);\n  assert.same(clz32(1), 31);\n  assert.same(clz32(-1), 0);\n  assert.same(clz32(0.6), 32);\n  assert.same(clz32(2 ** 32 - 1), 0);\n  assert.same(clz32(2 ** 32), 32);\n\n  const checker = createConversionChecker(1);\n  assert.same(clz32(checker), 31, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.cosh.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.cosh', assert => {\n  const { cosh } = Math;\n  assert.isFunction(cosh);\n  assert.name(cosh, 'cosh');\n  assert.arity(cosh, 1);\n  assert.looksNative(cosh);\n  assert.nonEnumerable(Math, 'cosh');\n  assert.same(cosh(NaN), NaN);\n  assert.same(cosh(0), 1);\n  assert.same(cosh(-0), 1);\n  assert.same(cosh(Infinity), Infinity);\n  assert.same(cosh(-Infinity), Infinity);\n  assert.closeTo(cosh(12), 81377.395712574, 1e-9);\n  assert.closeTo(cosh(22), 1792456423.065796, 1e-5);\n  assert.closeTo(cosh(-10), 11013.232920103323, 1e-11);\n  assert.closeTo(cosh(-23), 4872401723.124452, 1e-5);\n  assert.closeTo(cosh(710), 1.1169973830808557e+308, 1e+295);\n\n  const checker = createConversionChecker(12);\n  assert.closeTo(cosh(checker), 81377.395712574, 1e-9, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.expm1.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.expm1', assert => {\n  const { expm1 } = Math;\n  assert.isFunction(expm1);\n  assert.name(expm1, 'expm1');\n  assert.arity(expm1, 1);\n  assert.looksNative(expm1);\n  assert.nonEnumerable(Math, 'expm1');\n  assert.same(expm1(NaN), NaN);\n  assert.same(expm1(0), 0);\n  assert.same(expm1(-0), -0);\n  assert.same(expm1(Infinity), Infinity);\n  assert.same(expm1(-Infinity), -1);\n  assert.closeTo(expm1(10), 22025.465794806718, 1e-11);\n  assert.closeTo(expm1(-10), -0.9999546000702375, 1e-11);\n\n  const checker = createConversionChecker(10);\n  assert.closeTo(expm1(checker), 22025.465794806718, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.f16round.js",
    "content": "// some asserts based on https://github.com/petamoriken/float16/blob/master/test/f16round.js\nimport { createConversionChecker } from '../helpers/helpers.js';\n\nconst { MAX_VALUE, MIN_VALUE } = Number;\n\nQUnit.test('Math.f16round', assert => {\n  const { f16round } = Math;\n  assert.isFunction(f16round);\n  assert.name(f16round, 'f16round');\n  assert.arity(f16round, 1);\n  assert.looksNative(f16round);\n  assert.nonEnumerable(Math, 'f16round');\n  assert.same(f16round(), NaN);\n  assert.same(f16round(undefined), NaN);\n  assert.same(f16round(NaN), NaN);\n  assert.same(f16round(null), 0);\n  assert.same(f16round(0), 0);\n  assert.same(f16round(-0), -0);\n  assert.same(f16round(MIN_VALUE), 0);\n  assert.same(f16round(-MIN_VALUE), -0);\n  assert.same(f16round(Infinity), Infinity);\n  assert.same(f16round(-Infinity), -Infinity);\n  assert.same(f16round(MAX_VALUE), Infinity);\n  assert.same(f16round(-MAX_VALUE), -Infinity);\n\n  const MAX_FLOAT16 = 65504;\n  const MIN_FLOAT16 = 2 ** -24;\n\n  assert.same(f16round(MAX_FLOAT16), MAX_FLOAT16);\n  assert.same(f16round(-MAX_FLOAT16), -MAX_FLOAT16);\n  assert.same(f16round(MIN_FLOAT16), MIN_FLOAT16);\n  assert.same(f16round(-MIN_FLOAT16), -MIN_FLOAT16);\n  assert.same(f16round(MIN_FLOAT16 / 2), 0);\n  assert.same(f16round(-MIN_FLOAT16 / 2), -0);\n  assert.same(f16round(2.980232238769531911744490042422139897126953655970282852649688720703125e-8), MIN_FLOAT16);\n  assert.same(f16round(-2.980232238769531911744490042422139897126953655970282852649688720703125e-8), -MIN_FLOAT16);\n\n  assert.same(f16round(1.337), 1.3369140625);\n  assert.same(f16round(0.499994), 0.5);\n  assert.same(f16round(7.9999999), 8);\n\n  const checker = createConversionChecker(1.1);\n  assert.same(f16round(checker), 1.099609375, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.fround.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nconst { MAX_VALUE, MIN_VALUE } = Number;\n\nQUnit.test('Math.fround', assert => {\n  const { fround } = Math;\n  assert.isFunction(fround);\n  assert.name(fround, 'fround');\n  assert.arity(fround, 1);\n  assert.looksNative(fround);\n  assert.nonEnumerable(Math, 'fround');\n  assert.same(fround(), NaN);\n  assert.same(fround(undefined), NaN);\n  assert.same(fround(NaN), NaN);\n  assert.same(fround(null), 0);\n  assert.same(fround(0), 0);\n  assert.same(fround(-0), -0);\n  assert.same(fround(MIN_VALUE), 0);\n  assert.same(fround(-MIN_VALUE), -0);\n  assert.same(fround(Infinity), Infinity);\n  assert.same(fround(-Infinity), -Infinity);\n  assert.same(fround(MAX_VALUE), Infinity);\n  assert.same(fround(-MAX_VALUE), -Infinity);\n  assert.same(fround(3.4028235677973366e+38), Infinity);\n  assert.same(fround(3), 3);\n  assert.same(fround(-3), -3);\n  const maxFloat32 = 3.4028234663852886e+38;\n  const minFloat32 = 1.401298464324817e-45;\n  assert.same(fround(maxFloat32), maxFloat32);\n  assert.same(fround(-maxFloat32), -maxFloat32);\n  assert.same(fround(maxFloat32 + 2 ** 102), maxFloat32);\n  assert.same(fround(minFloat32), minFloat32);\n  assert.same(fround(-minFloat32), -minFloat32);\n  assert.same(fround(minFloat32 / 2), 0);\n  assert.same(fround(-minFloat32 / 2), -0);\n  assert.same(fround(minFloat32 / 2 + 2 ** -202), minFloat32);\n  assert.same(fround(-minFloat32 / 2 - 2 ** -202), -minFloat32);\n\n  const maxSubnormal32 = 1.1754942106924411e-38;\n  const minNormal32 = 1.1754943508222875e-38;\n  assert.same(fround(1.1754942807573642e-38), maxSubnormal32, 'fround(1.1754942807573642e-38)');\n  assert.same(fround(1.1754942807573643e-38), minNormal32, 'fround(1.1754942807573643e-38)');\n  assert.same(fround(1.1754942807573644e-38), minNormal32, 'fround(1.1754942807573644e-38)');\n  assert.same(fround(-1.1754942807573642e-38), -maxSubnormal32, 'fround(-1.1754942807573642e-38)');\n  assert.same(fround(-1.1754942807573643e-38), -minNormal32, 'fround(-1.1754942807573643e-38)');\n  assert.same(fround(-1.1754942807573644e-38), -minNormal32, 'fround(-1.1754942807573644e-38)');\n\n  const checker = createConversionChecker(1.1754942807573642e-38);\n  assert.same(fround(checker), maxSubnormal32, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.hypot.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.hypot', assert => {\n  const { hypot, sqrt } = Math;\n  assert.isFunction(hypot);\n  assert.name(hypot, 'hypot');\n  assert.arity(hypot, 2);\n  assert.looksNative(hypot);\n  assert.nonEnumerable(Math, 'hypot');\n  assert.same(hypot(), 0);\n  assert.same(hypot(1), 1);\n  assert.same(hypot('', 0), 0);\n  assert.same(hypot(0, ''), 0);\n  assert.same(hypot(Infinity, 0), Infinity, 'Infinity, 0');\n  assert.same(hypot(-Infinity, 0), Infinity, '-Infinity, 0');\n  assert.same(hypot(0, Infinity), Infinity, '0, Infinity');\n  assert.same(hypot(0, -Infinity), Infinity, '0, -Infinity');\n  assert.same(hypot(Infinity, NaN), Infinity, 'Infinity, NaN');\n  assert.same(hypot(NaN, -Infinity), Infinity, 'NaN, -Infinity');\n  assert.same(hypot(NaN, 0), NaN, 'NaN, 0');\n  assert.same(hypot(0, NaN), NaN, '0, NaN');\n  assert.same(hypot(0, -0), 0);\n  assert.same(hypot(0, 0), 0);\n  assert.same(hypot(-0, -0), 0);\n  assert.same(hypot(-0, 0), 0);\n  assert.same(hypot(0, 1), 1);\n  assert.same(hypot(0, -1), 1);\n  assert.same(hypot(-0, 1), 1);\n  assert.same(hypot(-0, -1), 1);\n  assert.same(hypot(0), 0);\n  assert.same(hypot(1), 1);\n  assert.same(hypot(2), 2);\n  assert.same(hypot(0, 0, 1), 1);\n  assert.same(hypot(0, 1, 0), 1);\n  assert.same(hypot(1, 0, 0), 1);\n  assert.same(hypot(2, 3, 4), sqrt(2 ** 2 + 3 ** 2 + 4 ** 2));\n  assert.same(hypot(2, 3, 4, 5), sqrt(2 ** 2 + 3 ** 2 + 4 ** 2 + 5 ** 2));\n  assert.closeTo(hypot(66, 66), 93.33809511662427, 1e-11);\n  assert.closeTo(hypot(0.1, 100), 100.0000499999875, 1e-11);\n  assert.same(hypot(1e+300, 1e+300), 1.4142135623730952e+300);\n  assert.same(Math.floor(hypot(1e-300, 1e-300) * 1e308), 141421356);\n  assert.same(hypot(1e+300, 1e+300, 2, 3), 1.4142135623730952e+300);\n  assert.same(hypot(-3, 4), 5);\n  assert.same(hypot(3, -4), 5);\n\n  const checker1 = createConversionChecker(2);\n  const checker2 = createConversionChecker(3);\n  const checker3 = createConversionChecker(4);\n  const checker4 = createConversionChecker(5);\n  assert.same(hypot(checker1, checker2, checker3, checker4), sqrt(2 ** 2 + 3 ** 2 + 4 ** 2 + 5 ** 2), 'object wrapper');\n  assert.same(checker1.$valueOf, 1, 'checker1 valueOf calls');\n  assert.same(checker1.$toString, 0, 'checker1 toString calls');\n  assert.same(checker2.$valueOf, 1, 'checker2 valueOf calls');\n  assert.same(checker2.$toString, 0, 'checker2 toString calls');\n  assert.same(checker3.$valueOf, 1, 'checker3 valueOf calls');\n  assert.same(checker3.$toString, 0, 'checker3 toString calls');\n  assert.same(checker4.$valueOf, 1, 'checker4 valueOf calls');\n  assert.same(checker4.$toString, 0, 'checker4 toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.imul.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.imul', assert => {\n  const { imul } = Math;\n  assert.isFunction(imul);\n  assert.name(imul, 'imul');\n  assert.arity(imul, 2);\n  assert.looksNative(imul);\n  assert.nonEnumerable(Math, 'imul');\n  assert.same(imul(0, 0), 0);\n  assert.same(imul(123, 456), 56088);\n  assert.same(imul(-123, 456), -56088);\n  assert.same(imul(123, -456), -56088);\n  assert.same(imul(19088743, 4275878552), 602016552);\n  assert.same(imul(false, 7), 0);\n  assert.same(imul(7, false), 0);\n  assert.same(imul(false, false), 0);\n  assert.same(imul(true, 7), 7);\n  assert.same(imul(7, true), 7);\n  assert.same(imul(true, true), 1);\n  assert.same(imul(undefined, 7), 0);\n  assert.same(imul(7, undefined), 0);\n  assert.same(imul(undefined, undefined), 0);\n  assert.same(imul('str', 7), 0);\n  assert.same(imul(7, 'str'), 0);\n  assert.same(imul({}, 7), 0);\n  assert.same(imul(7, {}), 0);\n  assert.same(imul([], 7), 0);\n  assert.same(imul(7, []), 0);\n  assert.same(imul(0xFFFFFFFF, 5), -5);\n  assert.same(imul(0xFFFFFFFE, 5), -10);\n  assert.same(imul(2, 4), 8);\n  assert.same(imul(-1, 8), -8);\n  assert.same(imul(-2, -2), 4);\n  assert.same(imul(-0, 7), 0);\n  assert.same(imul(7, -0), 0);\n  assert.same(imul(0.1, 7), 0);\n  assert.same(imul(7, 0.1), 0);\n  assert.same(imul(0.9, 7), 0);\n  assert.same(imul(7, 0.9), 0);\n  assert.same(imul(1.1, 7), 7);\n  assert.same(imul(7, 1.1), 7);\n  assert.same(imul(1.9, 7), 7);\n  assert.same(imul(7, 1.9), 7);\n\n  const checker1 = createConversionChecker(-123);\n  const checker2 = createConversionChecker(456);\n  assert.same(imul(checker1, checker2), -56088, 'object wrapper');\n  assert.same(checker1.$valueOf, 1, 'checker1 valueOf calls');\n  assert.same(checker1.$toString, 0, 'checker1 toString calls');\n  assert.same(checker2.$valueOf, 1, 'checker2 valueOf calls');\n  assert.same(checker2.$toString, 0, 'checker2 toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.log10.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.log10', assert => {\n  const { log10 } = Math;\n  assert.isFunction(log10);\n  assert.name(log10, 'log10');\n  assert.arity(log10, 1);\n  assert.looksNative(log10);\n  assert.nonEnumerable(Math, 'log10');\n  assert.same(log10(''), log10(0));\n  assert.same(log10(NaN), NaN);\n  assert.same(log10(-1), NaN);\n  assert.same(log10(0), -Infinity);\n  assert.same(log10(-0), -Infinity);\n  assert.same(log10(1), 0);\n  assert.same(log10(Infinity), Infinity);\n  assert.closeTo(log10(0.1), -1, 1e-11);\n  assert.closeTo(log10(0.5), -0.3010299956639812, 1e-11);\n  assert.closeTo(log10(1.5), 0.17609125905568124, 1e-11);\n  assert.closeTo(log10(5), 0.6989700043360189, 1e-11);\n  assert.closeTo(log10(50), 1.6989700043360187, 1e-11);\n  assert.closeTo(log10(1000), 3, 1e-11);\n\n  const checker = createConversionChecker(0.5);\n  assert.closeTo(log10(checker), -0.3010299956639812, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.log1p.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.log1p', assert => {\n  const { log1p } = Math;\n  assert.isFunction(log1p);\n  assert.name(log1p, 'log1p');\n  assert.arity(log1p, 1);\n  assert.looksNative(log1p);\n  assert.nonEnumerable(Math, 'log1p');\n  assert.same(log1p(''), log1p(0));\n  assert.same(log1p(NaN), NaN);\n  assert.same(log1p(-2), NaN);\n  assert.same(log1p(-1), -Infinity);\n  assert.same(log1p(0), 0);\n  assert.same(log1p(-0), -0);\n  assert.same(log1p(Infinity), Infinity);\n  assert.closeTo(log1p(5), 1.791759469228055, 1e-11);\n  assert.closeTo(log1p(50), 3.9318256327243257, 1e-11);\n\n  const checker = createConversionChecker(5);\n  assert.closeTo(log1p(checker), 1.791759469228055, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.log2.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.log2', assert => {\n  const { log2 } = Math;\n  assert.isFunction(log2);\n  assert.name(log2, 'log2');\n  assert.arity(log2, 1);\n  assert.looksNative(log2);\n  assert.nonEnumerable(Math, 'log2');\n  assert.same(log2(''), log2(0));\n  assert.same(log2(NaN), NaN);\n  assert.same(log2(-1), NaN);\n  assert.same(log2(0), -Infinity);\n  assert.same(log2(-0), -Infinity);\n  assert.same(log2(1), 0);\n  assert.same(log2(Infinity), Infinity);\n  assert.same(log2(0.5), -1);\n  assert.same(log2(32), 5);\n  assert.closeTo(log2(5), 2.321928094887362, 1e-11);\n\n  const checker = createConversionChecker(5);\n  assert.closeTo(log2(checker), 2.321928094887362, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.sign.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.sign', assert => {\n  const { sign } = Math;\n  assert.isFunction(sign);\n  assert.name(sign, 'sign');\n  assert.arity(sign, 1);\n  assert.looksNative(sign);\n  assert.nonEnumerable(Math, 'sign');\n  assert.same(sign(NaN), NaN);\n  assert.same(sign(), NaN);\n  assert.same(sign(-0), -0);\n  assert.same(sign(0), 0);\n  assert.same(sign(Infinity), 1);\n  assert.same(sign(-Infinity), -1);\n  assert.same(sign(13510798882111488), 1);\n  assert.same(sign(-13510798882111488), -1);\n  assert.same(sign(42.5), 1);\n  assert.same(sign(-42.5), -1);\n\n  const checker = createConversionChecker(-42.5);\n  assert.same(sign(checker), -1, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.sinh.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.sinh', assert => {\n  const { sinh } = Math;\n  assert.isFunction(sinh);\n  assert.name(sinh, 'sinh');\n  assert.arity(sinh, 1);\n  assert.looksNative(sinh);\n  assert.nonEnumerable(Math, 'sinh');\n  assert.same(sinh(NaN), NaN);\n  assert.same(sinh(0), 0);\n  assert.same(sinh(-0), -0);\n  assert.same(sinh(Infinity), Infinity);\n  assert.same(sinh(-Infinity), -Infinity);\n  assert.closeTo(sinh(-5), -74.20321057778875, 1e-11);\n  assert.closeTo(sinh(2), 3.6268604078470186, 1e-11);\n  assert.same(sinh(-2e-17), -2e-17);\n\n  const checker = createConversionChecker(-5);\n  assert.closeTo(sinh(checker), -74.20321057778875, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.sum-precise.js",
    "content": "/* eslint-disable @stylistic/max-len -- ok */\nimport { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Math.sumPrecise', assert => {\n  const { sumPrecise } = Math;\n  assert.isFunction(sumPrecise);\n  assert.name(sumPrecise, 'sumPrecise');\n  assert.arity(sumPrecise, 1);\n  assert.looksNative(sumPrecise);\n  assert.nonEnumerable(Math, 'sumPrecise');\n\n  assert.same(sumPrecise([1, 2, 3]), 6, 'basic');\n  assert.same(sumPrecise(createIterable([1, 2, 3])), 6, 'custom iterable');\n\n  assert.throws(() => sumPrecise(undefined), TypeError, 'undefined');\n  assert.throws(() => sumPrecise(null), TypeError, 'null');\n  assert.throws(() => sumPrecise({ 0: 1 }), TypeError, 'non-iterable');\n  assert.throws(() => sumPrecise(1, 2), TypeError, 'non-iterable #2');\n  assert.throws(() => sumPrecise([1, '2']), TypeError, 'non-number elements');\n\n  // Adapted from https://github.com/tc39/test262\n  // Copyright (C) 2024 Kevin Gibbons. All rights reserved.\n  // This code is governed by the BSD license\n  assert.same(sumPrecise([NaN]), NaN, '[NaN]');\n  assert.same(sumPrecise([Infinity, -Infinity]), NaN, '[Infinity, -Infinity]');\n  assert.same(sumPrecise([-Infinity, Infinity]), NaN, '[-Infinity, Infinity]');\n  assert.same(sumPrecise([Infinity]), Infinity, '[Infinity]');\n  assert.same(sumPrecise([Infinity, Infinity]), Infinity, '[Infinity, Infinity]');\n  assert.same(sumPrecise([-Infinity]), -Infinity, '[-Infinity]');\n  assert.same(sumPrecise([-Infinity, -Infinity]), -Infinity, '[-Infinity, -Infinity]');\n  assert.same(sumPrecise([]), -0, '[]');\n  assert.same(sumPrecise([-0]), -0, '[-0]');\n  assert.same(sumPrecise([-0, -0]), -0, '[-0, -0]');\n  assert.same(sumPrecise([-0, 0]), 0, '[-0, 0]');\n  assert.same(sumPrecise([1e308]), 1e308, '[1e308]');\n  assert.same(sumPrecise([1e308, -1e308]), 0, '[1e308, -1e308]');\n  assert.same(sumPrecise([0.1]), 0.1, '[0.1]');\n  assert.same(sumPrecise([0.1, 0.1]), 0.2, '[0.1, 0.1]');\n  assert.same(sumPrecise([0.1, -0.1]), 0, '[0.1, -0.1]');\n  assert.same(sumPrecise([1e308, 1e308, 0.1, 0.1, 1e30, 0.1, -1e30, -1e308, -1e308]), 0.30000000000000004, '[1e308, 1e308, 0.1, 0.1, 1e30, 0.1, -1e30, -1e308, -1e308]');\n  assert.same(sumPrecise([1e30, 0.1, -1e30]), 0.1, '[1e30, 0.1, -1e30]');\n  assert.same(sumPrecise([8.98846567431158e+307, 8.988465674311579e+307, -Number.MAX_VALUE]), 9.9792015476736e+291, '[8.98846567431158e+307, 8.988465674311579e+307, -Number.MAX_VALUE]');\n  assert.same(sumPrecise([-5.630637621603525e+255, 9.565271205476345e+307, 2.9937604643020797e+292]), 9.565271205476347e+307, '[-5.630637621603525e+255, 9.565271205476345e+307, 2.9937604643020797e+292]');\n  assert.same(sumPrecise([6.739986666787661e+66, 2, -1.2689709186578243e-116, 1.7046015739467354e+308, -9.979201547673601e+291, 6.160926733208294e+307, -3.179557053031852e+234, -7.027282978772846e+307, -0.7500000000000001]), 1.61796594939028e+308, '[6.739986666787661e+66, 2, -1.2689709186578243e-116, 1.7046015739467354e+308, -9.979201547673601e+291, 6.160926733208294e+307, -3.179557053031852e+234, -7.027282978772846e+307, -0.7500000000000001]');\n  assert.same(sumPrecise([0.31150493246968836, -8.988465674311582e+307, 1.8315037361673755e-270, -15.999999999999996, 2.9999999999999996, 7.345200721499384e+164, -2.033582473639399, -8.98846567431158e+307, -3.5737295155405993e+292, 4.13894772383715e-124, -3.6111186457260667e-35, 2.387234887098013e+180, 7.645295562778372e-298, 3.395189016861822e-103, -2.6331611115768973e-149]), -Infinity, '[0.31150493246968836, -8.988465674311582e+307, 1.8315037361673755e-270, -15.999999999999996, 2.9999999999999996, 7.345200721499384e+164, -2.033582473639399, -8.98846567431158e+307, -3.5737295155405993e+292, 4.13894772383715e-124, -3.6111186457260667e-35, 2.387234887098013e+180, 7.645295562778372e-298, 3.395189016861822e-103, -2.6331611115768973e-149]');\n  assert.same(sumPrecise([-1.1442589134409902e+308, 9.593842098384855e+138, 4.494232837155791e+307, -1.3482698511467367e+308, 4.494232837155792e+307]), -1.5936821971565685e+308, '[-1.1442589134409902e+308, 9.593842098384855e+138, 4.494232837155791e+307, -1.3482698511467367e+308, 4.494232837155792e+307]');\n  assert.same(sumPrecise([-1.1442589134409902e+308, 4.494232837155791e+307, -1.3482698511467367e+308, 4.494232837155792e+307]), -1.5936821971565687e+308, '[-1.1442589134409902e+308, 4.494232837155791e+307, -1.3482698511467367e+308, 4.494232837155792e+307]');\n  assert.same(sumPrecise([9.593842098384855e+138, -6.948356297254111e+307, -1.3482698511467367e+308, 4.494232837155792e+307]), -1.5936821971565685e+308, '[9.593842098384855e+138, -6.948356297254111e+307, -1.3482698511467367e+308, 4.494232837155792e+307]');\n  assert.same(sumPrecise([-2.534858246857893e+115, 8.988465674311579e+307, 8.98846567431158e+307]), Number.MAX_VALUE, '[-2.534858246857893e+115, 8.988465674311579e+307, 8.98846567431158e+307]');\n  assert.same(sumPrecise([1.3588124894186193e+308, 1.4803986201152006e+223, 6.741349255733684e+307]), Infinity, '[1.3588124894186193e+308, 1.4803986201152006e+223, 6.741349255733684e+307]');\n  assert.same(sumPrecise([6.741349255733684e+307, 1.7976931348623155e+308, -7.388327292663961e+41]), Infinity, '[6.741349255733684e+307, 1.7976931348623155e+308, -7.388327292663961e+41]');\n  assert.same(sumPrecise([-1.9807040628566093e+28, Number.MAX_VALUE, 9.9792015476736e+291]), Number.MAX_VALUE, '[-1.9807040628566093e+28, Number.MAX_VALUE, 9.9792015476736e+291]');\n  assert.same(sumPrecise([-1.0214557991173964e+61, Number.MAX_VALUE, 8.98846567431158e+307, -8.988465674311579e+307]), Number.MAX_VALUE, '[-1.0214557991173964e+61, Number.MAX_VALUE, 8.98846567431158e+307, -8.988465674311579e+307]');\n  assert.same(sumPrecise([Number.MAX_VALUE, 7.999999999999999, -1.908963895403937e-230, 1.6445950082320264e+292, 2.0734856707605806e+205]), Infinity, '[Number.MAX_VALUE, 7.999999999999999, -1.908963895403937e-230, 1.6445950082320264e+292, 2.0734856707605806e+205]');\n  assert.same(sumPrecise([6.197409167220438e-223, -9.979201547673601e+291, -Number.MAX_VALUE]), -Infinity, '[6.197409167220438e-223, -9.979201547673601e+291, -Number.MAX_VALUE]');\n  assert.same(sumPrecise([4.49423283715579e+307, 8.944251746776101e+307, -0.0002441406250000001, 1.1752060710043817e+308, 4.940846717201632e+292, -1.6836699406454528e+308]), 8.353845887521184e+307, '[4.49423283715579e+307, 8.944251746776101e+307, -0.0002441406250000001, 1.1752060710043817e+308, 4.940846717201632e+292, -1.6836699406454528e+308]');\n  assert.same(sumPrecise([8.988465674311579e+307, 7.999999999999998, 7.029158107234023e-308, -2.2303483759420562e-172, -Number.MAX_VALUE, -8.98846567431158e+307]), -Number.MAX_VALUE, '[8.988465674311579e+307, 7.999999999999998, 7.029158107234023e-308, -2.2303483759420562e-172, -Number.MAX_VALUE, -8.98846567431158e+307]');\n  assert.same(sumPrecise([8.98846567431158e+307, 8.98846567431158e+307]), Infinity, '[8.98846567431158e+307, 8.98846567431158e+307]');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.tanh.js",
    "content": "import { NATIVE } from '../helpers/constants.js';\nimport { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.tanh', assert => {\n  const { tanh } = Math;\n  assert.isFunction(tanh);\n  assert.name(tanh, 'tanh');\n  assert.arity(tanh, 1);\n  assert.looksNative(tanh);\n  assert.nonEnumerable(Math, 'tanh');\n  assert.same(tanh(NaN), NaN);\n  assert.same(tanh(0), 0);\n  assert.same(tanh(-0), -0);\n  assert.same(tanh(Infinity), 1);\n  assert.same(tanh(90), 1);\n  assert.closeTo(tanh(10), 0.9999999958776927, 1e-11);\n  if (NATIVE) assert.same(tanh(710), 1);\n\n  const checker = createConversionChecker(10);\n  assert.closeTo(tanh(checker), 0.9999999958776927, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.to-string-tag.js",
    "content": "QUnit.test('Math[@@toStringTag]', assert => {\n  assert.same(Math[Symbol.toStringTag], 'Math', 'Math[@@toStringTag] is `Math`');\n});\n"
  },
  {
    "path": "tests/unit-global/es.math.trunc.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.trunc', assert => {\n  const { trunc } = Math;\n  assert.isFunction(trunc);\n  assert.name(trunc, 'trunc');\n  assert.arity(trunc, 1);\n  assert.looksNative(trunc);\n  assert.nonEnumerable(Math, 'trunc');\n  assert.same(trunc(NaN), NaN, 'NaN -> NaN');\n  assert.same(trunc(-0), -0, '-0 -> -0');\n  assert.same(trunc(0), 0, '0 -> 0');\n  assert.same(trunc(Infinity), Infinity, 'Infinity -> Infinity');\n  assert.same(trunc(-Infinity), -Infinity, '-Infinity -> -Infinity');\n  assert.same(trunc(null), 0, 'null -> 0');\n  assert.same(trunc({}), NaN, '{} -> NaN');\n  assert.same(trunc([]), 0, '[] -> 0');\n  assert.same(trunc(1.01), 1, '1.01 -> 1');\n  assert.same(trunc(1.99), 1, '1.99 -> 1');\n  assert.same(trunc(-1), -1, '-1 -> -1');\n  assert.same(trunc(-1.99), -1, '-1.99 -> -1');\n  assert.same(trunc(-555.555), -555, '-555.555 -> -555');\n  assert.same(trunc(9007199254740992), 9007199254740992, '9007199254740992 -> 9007199254740992');\n  assert.same(trunc(-9007199254740992), -9007199254740992, '-9007199254740992 -> -9007199254740992');\n\n  const checker = createConversionChecker(-1.99);\n  assert.same(trunc(checker), -1, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.constructor.js",
    "content": "import { WHITESPACES } from '../helpers/constants.js';\nimport { nativeSubclass } from '../helpers/helpers.js';\n\nfunction getCheck(assert) {\n  return function (a, b) {\n    assert.same(Number(a), b, `Number ${ typeof a } ${ a } -> ${ b }`);\n    const x = new Number(a);\n    assert.same(x, Object(x), `new Number ${ typeof a } ${ a } is object`);\n    assert.same({}.toString.call(x).slice(8, -1), 'Number', `classof new Number ${ typeof a } ${ a } is Number`);\n    assert.same(x.valueOf(), b, `new Number(${ typeof a } ${ a }).valueOf() -> ${ b }`);\n  };\n}\n\nQUnit.test('Number constructor: regression', assert => {\n  const check = getCheck(assert);\n  assert.isFunction(Number);\n  assert.arity(Number, 1);\n  assert.name(Number, 'Number');\n  assert.looksNative(Number);\n  assert.same(Number.prototype.constructor, Number);\n  assert.same(1.0.constructor, Number);\n  const constants = ['MAX_VALUE', 'MIN_VALUE', 'NaN', 'NEGATIVE_INFINITY', 'POSITIVE_INFINITY'];\n  for (const constant of constants) {\n    assert.true(constant in Number, `Number.${ constant }`);\n    assert.nonEnumerable(Number, constant);\n  }\n  assert.same(Number(), 0);\n  assert.same(new Number().valueOf(), 0);\n  check(42, 42);\n  check(42.42, 42.42);\n  check(new Number(42), 42);\n  check(new Number(42.42), 42.42);\n  check('42', 42);\n  check('42.42', 42.42);\n  check('0x42', 66);\n  check('0X42', 66);\n  check('0xzzz', NaN);\n  check('0x1g', NaN);\n  check('+0x1', NaN);\n  check('-0x1', NaN);\n  check('+0X1', NaN);\n  check('-0X1', NaN);\n  check(new String('42'), 42);\n  check(new String('42.42'), 42.42);\n  check(new String('0x42'), 66);\n  check(null, 0);\n  check(undefined, NaN);\n  check(false, 0);\n  check(true, 1);\n  check(new Boolean(false), 0);\n  check(new Boolean(true), 1);\n  check({}, NaN);\n  check({\n    valueOf: '1.1',\n  }, NaN);\n  check({\n    valueOf: '1.1',\n    toString() {\n      return '2.2';\n    },\n  }, 2.2);\n  check({\n    valueOf() {\n      return '1.1';\n    },\n  }, 1.1);\n  check({\n    valueOf() {\n      return '1.1';\n    },\n    toString() {\n      return '2.2';\n    },\n  }, 1.1);\n  check({\n    valueOf() {\n      return '-0x1a2b3c';\n    },\n  }, NaN);\n  check({\n    toString() {\n      return '-0x1a2b3c';\n    },\n  }, NaN);\n  check({\n    valueOf() {\n      return 42;\n    },\n  }, 42);\n  check({\n    valueOf() {\n      return '42';\n    },\n  }, 42);\n  check({\n    valueOf() {\n      return null;\n    },\n  }, 0);\n  check({\n    toString() {\n      return 42;\n    },\n  }, 42);\n  check({\n    toString() {\n      return '42';\n    },\n  }, 42);\n  check({\n    valueOf() {\n      return 1;\n    },\n    toString() {\n      return 2;\n    },\n  }, 1);\n  check({\n    valueOf: 1,\n    toString() {\n      return 2;\n    },\n  }, 2);\n  let number = 1;\n  assert.same(Number({\n    valueOf() {\n      return ++number;\n    },\n  }), 2, 'Number call valueOf only once #1');\n  assert.same(number, 2, 'Number call valueOf only once #2');\n  number = 1;\n  assert.same(Number({\n    toString() {\n      return ++number;\n    },\n  }), 2, 'Number call toString only once #1');\n  assert.same(number, 2, 'Number call toString only once #2');\n  number = 1;\n  assert.same(new Number({\n    valueOf() {\n      return ++number;\n    },\n  }).valueOf(), 2, 'new Number call valueOf only once #1');\n  assert.same(number, 2, 'new Number call valueOf only once #2');\n  number = 1;\n  assert.same(new Number({\n    toString() {\n      return ++number;\n    },\n  }).valueOf(), 2, 'new Number call toString only once #1');\n  assert.same(number, 2, 'new Number call toString only once #2');\n  assert.throws(() => Number(Object.create(null)), TypeError, 'Number assert.throws on object w/o valueOf and toString');\n  assert.throws(() => Number({\n    valueOf: 1,\n    toString: 2,\n  }), TypeError, 'Number assert.throws on object then valueOf and toString are not functions');\n  assert.throws(() => new Number(Object.create(null)), TypeError, 'new Number assert.throws on object w/o valueOf and toString');\n  assert.throws(() => new Number({\n    valueOf: 1,\n    toString: 2,\n  }), TypeError, 'new Number assert.throws on object then valueOf and toString are not functions');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('Number constructor test');\n    assert.throws(() => Number(symbol), 'throws on symbol argument');\n    assert.throws(() => new Number(symbol), 'throws on symbol argument, new');\n  }\n\n  number = new Number(42);\n  assert.same(typeof number.constructor(number), 'number');\n  check(`${ WHITESPACES }42`, 42);\n  check(`42${ WHITESPACES }`, 42);\n  check(`${ WHITESPACES }42${ WHITESPACES }`, 42);\n  check(`${ WHITESPACES }0x42`, 66);\n  check(`0x42${ WHITESPACES }`, 66);\n  check(`${ WHITESPACES }0x42${ WHITESPACES }`, 66);\n  check(`${ WHITESPACES }0X42`, 66);\n  check(`0X42${ WHITESPACES }`, 66);\n  check(`${ WHITESPACES }0X42${ WHITESPACES }`, 66);\n  if (nativeSubclass) {\n    const Subclass = nativeSubclass(Number);\n    assert.true(new Subclass() instanceof Subclass, 'correct subclassing with native classes #1');\n    assert.true(new Subclass() instanceof Number, 'correct subclassing with native classes #2');\n    assert.same(new Subclass(1).toFixed(2), '1.00', 'correct subclassing with native classes #3');\n  }\n});\n\nQUnit.test('Number constructor: binary', assert => {\n  const check = getCheck(assert);\n  check('0b1', 1);\n  check('0B1', 1);\n  check('0b12', NaN);\n  check('0b234', NaN);\n  check('0b1!', NaN);\n  check('+0b1', NaN);\n  check('-0b1', NaN);\n  check(' 0b1', 1);\n  check('0b1\\n', 1);\n  check('\\n 0b1\\n ', 1);\n  check(' 0B1', 1);\n  check('0B1\\n', 1);\n  check('\\n 0B1\\n ', 1);\n  check({\n    valueOf() {\n      return '0b11';\n    },\n  }, 3);\n  check({\n    toString() {\n      return '0b111';\n    },\n  }, 7);\n  check({\n    valueOf() {\n      return '0b101010';\n    },\n  }, 42);\n  check({\n    toString() {\n      return '0b101010';\n    },\n  }, 42);\n  check(`${ WHITESPACES }0b11`, 3);\n  check(`0b11${ WHITESPACES }`, 3);\n  check(`${ WHITESPACES }0b11${ WHITESPACES }`, 3);\n  check(`${ WHITESPACES }0B11`, 3);\n  check(`0B11${ WHITESPACES }`, 3);\n  check(`${ WHITESPACES }0B11${ WHITESPACES }`, 3);\n});\n\nQUnit.test('Number constructor: octal', assert => {\n  const check = getCheck(assert);\n  check('0o7', 7);\n  check('0O7', 7);\n  check('0o18', NaN);\n  check('0o89a', NaN);\n  check('0o1!', NaN);\n  check('+0o1', NaN);\n  check('-0o1', NaN);\n  check(' 0o1', 1);\n  check('0o1\\n', 1);\n  check('\\n 0o1\\n ', 1);\n  check(' 0O1', 1);\n  check('0O1\\n', 1);\n  check('\\n 0O1\\n ', 1);\n  check({\n    valueOf() {\n      return '0o77';\n    },\n  }, 63);\n  check({\n    toString() {\n      return '0o777';\n    },\n  }, 511);\n  check({\n    valueOf() {\n      return '0o12345';\n    },\n  }, 5349);\n  check({\n    toString() {\n      return '0o12345';\n    },\n  }, 5349);\n  check(`${ WHITESPACES }0o11`, 9);\n  check(`0o11${ WHITESPACES }`, 9);\n  check(`${ WHITESPACES }0o11${ WHITESPACES }`, 9);\n  check(`${ WHITESPACES }0O11`, 9);\n  check(`0O11${ WHITESPACES }`, 9);\n  check(`${ WHITESPACES }0O11${ WHITESPACES }`, 9);\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.epsilon.js",
    "content": "QUnit.test('Number.EPSILON', assert => {\n  const { EPSILON } = Number;\n  assert.true('EPSILON' in Number, 'EPSILON in Number');\n  assert.nonEnumerable(Number, 'EPSILON');\n  assert.nonConfigurable(Number, 'EPSILON');\n  assert.nonWritable(Number, 'EPSILON');\n  // eslint-disable-next-line math/prefer-number-epsilon -- testing\n  assert.same(EPSILON, 2 ** -52, 'Is 2^-52');\n  assert.notSame(1 + EPSILON, 1, '1 is not 1 + EPSILON');\n  assert.same(1 + EPSILON / 2, 1, '1 is 1 + EPSILON / 2');\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.is-finite.js",
    "content": "QUnit.test('Number.isFinite', assert => {\n  const { isFinite } = Number;\n  const { create } = Object;\n  assert.isFunction(isFinite);\n  assert.name(isFinite, 'isFinite');\n  assert.arity(isFinite, 1);\n  assert.looksNative(isFinite);\n  assert.nonEnumerable(Number, 'isFinite');\n  const finite = [\n    1,\n    0.1,\n    -1,\n    2 ** 16,\n    2 ** 16 - 1,\n    2 ** 31,\n    2 ** 31 - 1,\n    2 ** 32,\n    2 ** 32 - 1,\n    -0,\n  ];\n  for (const value of finite) {\n    assert.true(isFinite(value), `isFinite ${ typeof value } ${ value }`);\n  }\n  const notFinite = [\n    NaN,\n    Infinity,\n    'NaN',\n    '5',\n    false,\n    new Number(NaN),\n    new Number(Infinity),\n    new Number(5),\n    new Number(0.1),\n    undefined,\n    null,\n    {},\n    function () { /* empty */ },\n  ];\n  for (const value of notFinite) {\n    assert.false(isFinite(value), `not isFinite ${ typeof value } ${ value }`);\n  }\n  assert.false(isFinite(create(null)), 'Number.isFinite(Object.create(null)) -> false');\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.is-integer.js",
    "content": "QUnit.test('Number.isInteger', assert => {\n  const { isInteger } = Number;\n  const { create } = Object;\n  assert.isFunction(isInteger);\n  assert.name(isInteger, 'isInteger');\n  assert.arity(isInteger, 1);\n  assert.looksNative(isInteger);\n  assert.nonEnumerable(Number, 'isInteger');\n  const integers = [\n    1,\n    -1,\n    2 ** 16,\n    2 ** 16 - 1,\n    2 ** 31,\n    2 ** 31 - 1,\n    2 ** 32,\n    2 ** 32 - 1,\n    -0,\n  ];\n  for (const value of integers) {\n    assert.true(isInteger(value), `isInteger ${ typeof value } ${ value }`);\n  }\n  const notIntegers = [\n    NaN,\n    0.1,\n    Infinity,\n    'NaN',\n    '5',\n    false,\n    new Number(NaN),\n    new Number(Infinity),\n    new Number(5),\n    new Number(0.1),\n    undefined,\n    null,\n    {},\n    function () { /* empty */ },\n  ];\n  for (const value of notIntegers) {\n    assert.false(isInteger(value), `not isInteger ${ typeof value } ${ value }`);\n  }\n  assert.false(isInteger(create(null)), 'Number.isInteger(Object.create(null)) -> false');\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.is-nan.js",
    "content": "QUnit.test('Number.isNaN', assert => {\n  const { isNaN } = Number;\n  const { create } = Object;\n  assert.isFunction(isNaN);\n  assert.name(isNaN, 'isNaN');\n  assert.arity(isNaN, 1);\n  assert.looksNative(isNaN);\n  assert.nonEnumerable(Number, 'isNaN');\n  assert.true(isNaN(NaN), 'Number.isNaN NaN');\n  const notNaNs = [\n    1,\n    0.1,\n    -1,\n    2 ** 16,\n    2 ** 16 - 1,\n    2 ** 31,\n    2 ** 31 - 1,\n    2 ** 32,\n    2 ** 32 - 1,\n    -0,\n    Infinity,\n    'NaN',\n    '5',\n    false,\n    new Number(NaN),\n    new Number(Infinity),\n    new Number(5),\n    new Number(0.1),\n    undefined,\n    null,\n    {},\n    function () { /* empty */ },\n  ];\n  for (const value of notNaNs) {\n    assert.false(isNaN(value), `not Number.isNaN ${ typeof value } ${ value }`);\n  }\n  assert.false(isNaN(create(null)), 'Number.isNaN(Object.create(null)) -> false');\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.is-safe-integer.js",
    "content": "import { MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js';\n\nQUnit.test('Number.isSafeInteger', assert => {\n  const { isSafeInteger } = Number;\n  const { create } = Object;\n  assert.isFunction(isSafeInteger);\n  assert.name(isSafeInteger, 'isSafeInteger');\n  assert.arity(isSafeInteger, 1);\n  assert.looksNative(isSafeInteger);\n  assert.nonEnumerable(Number, 'isSafeInteger');\n  const safeIntegers = [\n    1,\n    -1,\n    2 ** 16,\n    2 ** 16 - 1,\n    2 ** 31,\n    2 ** 31 - 1,\n    2 ** 32,\n    2 ** 32 - 1,\n    -0,\n    MAX_SAFE_INTEGER,\n    MIN_SAFE_INTEGER,\n  ];\n  for (const value of safeIntegers) {\n    assert.true(isSafeInteger(value), `isSafeInteger ${ typeof value } ${ value }`);\n  }\n  const notSafeIntegers = [\n    MAX_SAFE_INTEGER + 1,\n    MIN_SAFE_INTEGER - 1,\n    NaN,\n    0.1,\n    Infinity,\n    'NaN',\n    '5',\n    false,\n    new Number(NaN),\n    new Number(Infinity),\n    new Number(5),\n    new Number(0.1),\n    undefined,\n    null,\n    {},\n    function () { /* empty */ },\n  ];\n  for (const value of notSafeIntegers) {\n    assert.false(isSafeInteger(value), `not isSafeInteger ${ typeof value } ${ value }`);\n  }\n  assert.false(isSafeInteger(create(null)), 'Number.isSafeInteger(Object.create(null)) -> false');\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.max-safe-integer.js",
    "content": "QUnit.test('Number.MAX_SAFE_INTEGER', assert => {\n  assert.true('MAX_SAFE_INTEGER' in Number);\n  assert.nonEnumerable(Number, 'MAX_SAFE_INTEGER');\n  assert.nonConfigurable(Number, 'MAX_SAFE_INTEGER');\n  assert.nonWritable(Number, 'MAX_SAFE_INTEGER');\n  // eslint-disable-next-line math/prefer-number-max-safe-integer -- testing\n  assert.same(Number.MAX_SAFE_INTEGER, 2 ** 53 - 1, 'Is 2^53 - 1');\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.min-safe-integer.js",
    "content": "QUnit.test('Number.MIN_SAFE_INTEGER', assert => {\n  assert.true('MIN_SAFE_INTEGER' in Number);\n  assert.nonEnumerable(Number, 'MIN_SAFE_INTEGER');\n  assert.nonConfigurable(Number, 'MIN_SAFE_INTEGER');\n  assert.nonWritable(Number, 'MIN_SAFE_INTEGER');\n  // eslint-disable-next-line math/prefer-number-min-safe-integer -- testing\n  assert.same(Number.MIN_SAFE_INTEGER, -(2 ** 53) + 1, 'Is -2^53 + 1');\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.parse-float.js",
    "content": "import { GLOBAL, WHITESPACES } from '../helpers/constants.js';\n\nQUnit.test('Number.parseFloat', assert => {\n  const { parseFloat } = Number;\n  assert.isFunction(parseFloat);\n  assert.name(parseFloat, 'parseFloat');\n  assert.arity(parseFloat, 1);\n  assert.looksNative(parseFloat);\n  assert.nonEnumerable(Number, 'parseFloat');\n  assert.same(parseFloat, GLOBAL.parseFloat);\n  assert.same(parseFloat('0'), 0);\n  assert.same(parseFloat(' 0'), 0);\n  assert.same(parseFloat('+0'), 0);\n  assert.same(parseFloat(' +0'), 0);\n  assert.same(parseFloat('-0'), -0);\n  assert.same(parseFloat(' -0'), -0);\n  assert.same(parseFloat(`${ WHITESPACES }+0`), 0);\n  assert.same(parseFloat(`${ WHITESPACES }-0`), -0);\n  assert.same(parseFloat(null), NaN);\n  assert.same(parseFloat(undefined), NaN);\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('Number.parseFloat test');\n    assert.throws(() => parseFloat(symbol), 'throws on symbol argument');\n    assert.throws(() => parseFloat(Object(symbol)), 'throws on boxed symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.parse-int.js",
    "content": "/* eslint-disable prefer-numeric-literals -- required for testing */\nimport { GLOBAL, WHITESPACES } from '../helpers/constants.js';\n\nQUnit.test('Number.parseInt', assert => {\n  const { parseInt } = Number;\n  assert.isFunction(parseInt);\n  assert.name(parseInt, 'parseInt');\n  assert.arity(parseInt, 2);\n  assert.looksNative(parseInt);\n  assert.nonEnumerable(Number, 'parseInt');\n  assert.same(parseInt, GLOBAL.parseInt);\n  for (let radix = 2; radix <= 36; ++radix) {\n    assert.same(parseInt('10', radix), radix, `radix ${ radix }`);\n  }\n  const strings = ['01', '08', '10', '42'];\n  for (const string of strings) {\n    assert.same(parseInt(string), parseInt(string, 10), `default radix is 10: ${ string }`);\n  }\n  assert.same(parseInt('0x16'), parseInt('0x16', 16), 'default radix is 16: 0x16');\n  assert.same(parseInt('  0x16'), parseInt('0x16', 16), 'ignores leading whitespace #1');\n  assert.same(parseInt('  42'), parseInt('42', 10), 'ignores leading whitespace #2');\n  assert.same(parseInt('  08'), parseInt('08', 10), 'ignores leading whitespace #3');\n  assert.same(parseInt(`${ WHITESPACES }08`), parseInt('08', 10), 'ignores leading whitespace #4');\n  assert.same(parseInt(`${ WHITESPACES }0x16`), parseInt('0x16', 16), 'ignores leading whitespace #5');\n  const fakeZero = {\n    valueOf() {\n      return 0;\n    },\n  };\n  assert.same(parseInt('08', fakeZero), parseInt('08', 10), 'valueOf #1');\n  assert.same(parseInt('0x16', fakeZero), parseInt('0x16', 16), 'valueOf #2');\n  assert.same(parseInt('-0xF'), -15, 'signed hex #1');\n  assert.same(parseInt('-0xF', 16), -15, 'signed hex #2');\n  assert.same(parseInt('+0xF'), 15, 'signed hex #3');\n  assert.same(parseInt('+0xF', 16), 15, 'signed hex #4');\n  assert.same(parseInt('10', -4294967294), 2, 'radix uses ToUint32');\n  assert.same(parseInt(null), NaN);\n  assert.same(parseInt(undefined), NaN);\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('Number.parseInt test');\n    assert.throws(() => parseInt(symbol), 'throws on symbol argument');\n    assert.throws(() => parseInt(Object(symbol)), 'throws on boxed symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.to-exponential.js",
    "content": "QUnit.test('Number#toExponential', assert => {\n  const { toExponential } = Number.prototype;\n  assert.isFunction(toExponential);\n  assert.name(toExponential, 'toExponential');\n  assert.arity(toExponential, 1);\n  assert.looksNative(toExponential);\n  assert.nonEnumerable(Number.prototype, 'toExponential');\n\n  assert.same(toExponential.call(0.00008, 3), '8.000e-5');\n  assert.same(toExponential.call(0.9, 0), '9e-1');\n  assert.same(toExponential.call(1.255, 2), '1.25e+0'); // Chakra Edge 14- / IE11- bug\n  assert.same(toExponential.call(1843654265.0774949, 5), '1.84365e+9');\n  assert.same(toExponential.call(1000000000000000128.0, 0), '1e+18');\n\n  assert.same(toExponential.call(1), '1e+0');\n  assert.same(toExponential.call(1, 0), '1e+0');\n  assert.same(toExponential.call(1, 1), '1.0e+0');\n  assert.same(toExponential.call(1, 1.1), '1.0e+0');\n  assert.same(toExponential.call(1, 0.9), '1e+0');\n  assert.same(toExponential.call(1, '0'), '1e+0');\n  assert.same(toExponential.call(1, '1'), '1.0e+0');\n  assert.same(toExponential.call(1, '1.1'), '1.0e+0');\n  assert.same(toExponential.call(1, '0.9'), '1e+0');\n  assert.same(toExponential.call(1, NaN), '1e+0');\n  assert.same(toExponential.call(1, 'some string'), '1e+0');\n  assert.notThrows(() => toExponential.call(1, -0.1) === '1e+0');\n  assert.same(toExponential.call(new Number(1)), '1e+0');\n  assert.same(toExponential.call(new Number(1), 0), '1e+0');\n  assert.same(toExponential.call(new Number(1), 1), '1.0e+0');\n  assert.same(toExponential.call(new Number(1), 1.1), '1.0e+0');\n  assert.same(toExponential.call(new Number(1), 0.9), '1e+0');\n  assert.same(toExponential.call(new Number(1), '0'), '1e+0');\n  assert.same(toExponential.call(new Number(1), '1'), '1.0e+0');\n  assert.same(toExponential.call(new Number(1), '1.1'), '1.0e+0');\n  assert.same(toExponential.call(new Number(1), '0.9'), '1e+0');\n  assert.same(toExponential.call(new Number(1), NaN), '1e+0');\n  assert.same(toExponential.call(new Number(1), 'some string'), '1e+0');\n  assert.notThrows(() => toExponential.call(new Number(1), -0.1) === '1e+0');\n  assert.same(toExponential.call(NaN), 'NaN');\n  assert.same(toExponential.call(NaN, 0), 'NaN');\n  assert.same(toExponential.call(NaN, 1), 'NaN');\n  assert.same(toExponential.call(NaN, 1.1), 'NaN');\n  assert.same(toExponential.call(NaN, 0.9), 'NaN');\n  assert.same(toExponential.call(NaN, '0'), 'NaN');\n  assert.same(toExponential.call(NaN, '1'), 'NaN');\n  assert.same(toExponential.call(NaN, '1.1'), 'NaN');\n  assert.same(toExponential.call(NaN, '0.9'), 'NaN');\n  assert.same(toExponential.call(NaN, NaN), 'NaN');\n  assert.same(toExponential.call(NaN, 'some string'), 'NaN');\n  assert.notThrows(() => toExponential.call(NaN, -0.1) === 'NaN');\n\n  assert.same(toExponential.call(new Number(1e21)), '1e+21');\n  assert.same(toExponential.call(new Number(1e21), 0), '1e+21');\n  assert.same(toExponential.call(new Number(1e21), 1), '1.0e+21');\n  assert.same(toExponential.call(new Number(1e21), 1.1), '1.0e+21');\n  assert.same(toExponential.call(new Number(1e21), 0.9), '1e+21');\n  assert.same(toExponential.call(new Number(1e21), '0'), '1e+21');\n  assert.same(toExponential.call(new Number(1e21), '1'), '1.0e+21');\n  assert.same(toExponential.call(new Number(1e21), '1.1'), '1.0e+21');\n  assert.same(toExponential.call(new Number(1e21), '0.9'), '1e+21');\n  assert.same(toExponential.call(new Number(1e21), NaN), '1e+21');\n  assert.same(toExponential.call(new Number(1e21), 'some string'), '1e+21');\n\n  // somehow that randomly fails in FF16- on Linux\n  assert.same(toExponential.call(5, 19), '5.0000000000000000000e+0', '5, 19');\n\n  // ported from tests262, the license: https://github.com/tc39/test262/blob/main/LICENSE\n  assert.same(toExponential.call(123.456, 0), '1e+2');\n  assert.same(toExponential.call(123.456, 1), '1.2e+2');\n  assert.same(toExponential.call(123.456, 2), '1.23e+2');\n  assert.same(toExponential.call(123.456, 3), '1.235e+2');\n  assert.same(toExponential.call(123.456, 4), '1.2346e+2');\n  assert.same(toExponential.call(123.456, 5), '1.23456e+2');\n  assert.same(toExponential.call(123.456, 6), '1.234560e+2');\n  assert.same(toExponential.call(123.456, 7), '1.2345600e+2');\n  // assert.same(toExponential.call(123.456, 17), '1.23456000000000003e+2');\n  // assert.same(toExponential.call(123.456, 20), '1.23456000000000003070e+2');\n\n  assert.same(toExponential.call(-123.456, 0), '-1e+2');\n  assert.same(toExponential.call(-123.456, 1), '-1.2e+2');\n  assert.same(toExponential.call(-123.456, 2), '-1.23e+2');\n  assert.same(toExponential.call(-123.456, 3), '-1.235e+2');\n  assert.same(toExponential.call(-123.456, 4), '-1.2346e+2');\n  assert.same(toExponential.call(-123.456, 5), '-1.23456e+2');\n  assert.same(toExponential.call(-123.456, 6), '-1.234560e+2');\n  assert.same(toExponential.call(-123.456, 7), '-1.2345600e+2');\n  // assert.same(toExponential.call(-123.456, 17), '-1.23456000000000003e+2');\n  // assert.same(toExponential.call(-123.456, 20), '-1.23456000000000003070e+2');\n\n  assert.same(toExponential.call(0.0001, 0), '1e-4');\n  assert.same(toExponential.call(0.0001, 1), '1.0e-4');\n  assert.same(toExponential.call(0.0001, 2), '1.00e-4');\n  assert.same(toExponential.call(0.0001, 3), '1.000e-4');\n  assert.same(toExponential.call(0.0001, 4), '1.0000e-4');\n  // assert.same(toExponential.call(0.0001, 16), '1.0000000000000000e-4');\n  // assert.same(toExponential.call(0.0001, 17), '1.00000000000000005e-4');\n  // assert.same(toExponential.call(0.0001, 18), '1.000000000000000048e-4');\n  // assert.same(toExponential.call(0.0001, 19), '1.0000000000000000479e-4');\n  // assert.same(toExponential.call(0.0001, 20), '1.00000000000000004792e-4');\n\n  assert.same(toExponential.call(0.9999, 0), '1e+0');\n  assert.same(toExponential.call(0.9999, 1), '1.0e+0');\n  assert.same(toExponential.call(0.9999, 2), '1.00e+0');\n  assert.same(toExponential.call(0.9999, 3), '9.999e-1');\n  assert.same(toExponential.call(0.9999, 4), '9.9990e-1');\n  // assert.same(toExponential.call(0.9999, 16), '9.9990000000000001e-1');\n  // assert.same(toExponential.call(0.9999, 17), '9.99900000000000011e-1');\n  // assert.same(toExponential.call(0.9999, 18), '9.999000000000000110e-1');\n  // assert.same(toExponential.call(0.9999, 19), '9.9990000000000001101e-1');\n  // assert.same(toExponential.call(0.9999, 20), '9.99900000000000011013e-1');\n\n  assert.same(toExponential.call(25, 0), '3e+1'); // FF86- and Chrome 49-50 bugs\n  assert.same(toExponential.call(12345, 3), '1.235e+4'); // FF86- and Chrome 49-50 bugs\n\n  assert.same(toExponential.call(Number.prototype, 0), '0e+0', 'Number.prototype, 0');\n  assert.same(toExponential.call(0, 0), '0e+0', '0, 0');\n  assert.same(toExponential.call(-0, 0), '0e+0', '-0, 0');\n  assert.same(toExponential.call(0, -0), '0e+0', '0, -0');\n  assert.same(toExponential.call(-0, -0), '0e+0', '-0, -0');\n  assert.same(toExponential.call(0, 1), '0.0e+0', '0 and 1');\n  assert.same(toExponential.call(0, 2), '0.00e+0', '0 and 2');\n  assert.same(toExponential.call(0, 7), '0.0000000e+0', '0 and 7');\n  assert.same(toExponential.call(0, 20), '0.00000000000000000000e+0', '0 and 20');\n  assert.same(toExponential.call(-0, 1), '0.0e+0', '-0 and 1');\n  assert.same(toExponential.call(-0, 2), '0.00e+0', '-0 and 2');\n  assert.same(toExponential.call(-0, 7), '0.0000000e+0', '-0 and 7');\n  assert.same(toExponential.call(-0, 20), '0.00000000000000000000e+0', '-0 and 20');\n\n  // overflow / underflow edge cases\n  assert.same(toExponential.call(9e307, 0), '9e+307', '9e307, 0');\n  assert.same(toExponential.call(-9e307, 0), '-9e+307', '-9e307, 0');\n  assert.same(toExponential.call(Number.MAX_VALUE, 0), '2e+308', 'MAX_VALUE, 0');\n  assert.same(toExponential.call(Number.MAX_VALUE, 5), '1.79769e+308', 'MAX_VALUE, 5');\n  assert.same(toExponential.call(Number.MIN_VALUE, 0), '5e-324', 'MIN_VALUE, 0');\n  assert.same(toExponential.call(Number.MIN_VALUE, 1), '4.9e-324', 'MIN_VALUE, 1');\n  assert.same(toExponential.call(1e-323, 0), '1e-323', '1e-323, 0');\n\n  assert.same(toExponential.call(NaN, 1000), 'NaN', 'NaN check before fractionDigits check');\n  assert.same(toExponential.call(Infinity, 1000), 'Infinity', 'Infinity check before fractionDigits check');\n  assert.notThrows(() => toExponential.call(new Number(1e21), -0.1) === '1e+21');\n  assert.throws(() => toExponential.call(1.0, -101), RangeError, 'If f < 0 or f > 20 (100), throw a RangeError exception.');\n  assert.throws(() => toExponential.call(1.0, 101), RangeError, 'If f < 0 or f > 20 (100), throw a RangeError exception.');\n  assert.throws(() => toExponential.call({}, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toExponential.call('123', 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toExponential.call(false, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toExponential.call(null, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toExponential.call(undefined, 1), TypeError, '? thisNumberValue(this value)');\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.to-fixed.js",
    "content": "/* eslint-disable unicorn/require-number-to-fixed-digits-argument -- required for testing */\nQUnit.test('Number#toFixed', assert => {\n  const { toFixed } = Number.prototype;\n  assert.isFunction(toFixed);\n  assert.name(toFixed, 'toFixed');\n  assert.arity(toFixed, 1);\n  assert.looksNative(toFixed);\n  assert.nonEnumerable(Number.prototype, 'toFixed');\n  assert.same(0.00008.toFixed(3), '0.000');\n  assert.same(0.9.toFixed(0), '1');\n  assert.same(1.255.toFixed(2), '1.25');\n  assert.same(1843654265.0774949.toFixed(5), '1843654265.07749');\n  assert.same(1000000000000000128.0.toFixed(0), '1000000000000000128');\n  assert.same(toFixed.call(1), '1');\n  assert.same(toFixed.call(1, 0), '1');\n  assert.same(toFixed.call(1, 1), '1.0');\n  assert.same(toFixed.call(1, 1.1), '1.0');\n  assert.same(toFixed.call(1, 0.9), '1');\n  assert.same(toFixed.call(1, '0'), '1');\n  assert.same(toFixed.call(1, '1'), '1.0');\n  assert.same(toFixed.call(1, '1.1'), '1.0');\n  assert.same(toFixed.call(1, '0.9'), '1');\n  assert.same(toFixed.call(1, NaN), '1');\n  assert.same(toFixed.call(1, 'some string'), '1');\n  assert.notThrows(() => toFixed.call(1, -0.1) === '1');\n  assert.same(new Number(1).toFixed(), '1');\n  assert.same(new Number(1).toFixed(0), '1');\n  assert.same(new Number(1).toFixed(1), '1.0');\n  assert.same(new Number(1).toFixed(1.1), '1.0');\n  assert.same(new Number(1).toFixed(0.9), '1');\n  assert.same(new Number(1).toFixed('0'), '1');\n  assert.same(new Number(1).toFixed('1'), '1.0');\n  assert.same(new Number(1).toFixed('1.1'), '1.0');\n  assert.same(new Number(1).toFixed('0.9'), '1');\n  assert.same(new Number(1).toFixed(NaN), '1');\n  assert.same(new Number(1).toFixed('some string'), '1');\n  assert.notThrows(() => new Number(1).toFixed(-0.1) === '1');\n  assert.same(NaN.toFixed(), 'NaN');\n  assert.same(NaN.toFixed(0), 'NaN');\n  assert.same(NaN.toFixed(1), 'NaN');\n  assert.same(NaN.toFixed(1.1), 'NaN');\n  assert.same(NaN.toFixed(0.9), 'NaN');\n  assert.same(NaN.toFixed('0'), 'NaN');\n  assert.same(NaN.toFixed('1'), 'NaN');\n  assert.same(NaN.toFixed('1.1'), 'NaN');\n  assert.same(NaN.toFixed('0.9'), 'NaN');\n  assert.same(NaN.toFixed(NaN), 'NaN');\n  assert.same(NaN.toFixed('some string'), 'NaN');\n  assert.notThrows(() => NaN.toFixed(-0.1) === 'NaN');\n  assert.same(new Number(1e21).toFixed(), String(1e21));\n  assert.same(new Number(1e21).toFixed(0), String(1e21));\n  assert.same(new Number(1e21).toFixed(1), String(1e21));\n  assert.same(new Number(1e21).toFixed(1.1), String(1e21));\n  assert.same(new Number(1e21).toFixed(0.9), String(1e21));\n  assert.same(new Number(1e21).toFixed('0'), String(1e21));\n  assert.same(new Number(1e21).toFixed('1'), String(1e21));\n  assert.same(new Number(1e21).toFixed('1.1'), String(1e21));\n  assert.same(new Number(1e21).toFixed('0.9'), String(1e21));\n  assert.same(new Number(1e21).toFixed(NaN), String(1e21));\n  assert.same(new Number(1e21).toFixed('some string'), String(1e21));\n  assert.notThrows(() => new Number(1e21).toFixed(-0.1) === String(1e21));\n  assert.throws(() => 1.0.toFixed(-101), RangeError, 'If f < 0 or f > 20 (100), throw a RangeError exception.');\n  assert.throws(() => 1.0.toFixed(101), RangeError, 'If f < 0 or f > 20 (100), throw a RangeError exception.');\n  assert.throws(() => NaN.toFixed(Infinity), RangeError, 'If f < 0 or f > 20 (100), throw a RangeError exception.');\n  assert.throws(() => toFixed.call({}, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toFixed.call('123', 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toFixed.call(false, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toFixed.call(null, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toFixed.call(undefined, 1), TypeError, '? thisNumberValue(this value)');\n});\n"
  },
  {
    "path": "tests/unit-global/es.number.to-precision.js",
    "content": "QUnit.test('Number#toPrecision', assert => {\n  const { toPrecision } = Number.prototype;\n  assert.isFunction(toPrecision);\n  assert.name(toPrecision, 'toPrecision');\n  assert.arity(toPrecision, 1);\n  assert.looksNative(toPrecision);\n  assert.nonEnumerable(Number.prototype, 'toPrecision');\n  assert.same(0.00008.toPrecision(3), '0.0000800', '0.00008.toPrecision(3)');\n  assert.same(1.255.toPrecision(2), '1.3', '1.255.toPrecision(2)');\n  assert.same(1843654265.0774949.toPrecision(13), '1843654265.077', '1843654265.0774949.toPrecision(13)');\n  assert.same(NaN.toPrecision(1), 'NaN', 'If x is NaN, return the String \"NaN\".');\n  assert.same(123.456.toPrecision(), '123.456', 'If precision is undefined, return ! ToString(x).');\n  assert.same(123.456.toPrecision(undefined), '123.456', 'If precision is undefined, return ! ToString(x).');\n  assert.throws(() => 0.9.toPrecision(0), RangeError, 'If p < 1 or p > 21, throw a RangeError exception.');\n  assert.throws(() => 0.9.toPrecision(101), RangeError, 'If p < 1 or p > 21, throw a RangeError exception.');\n  assert.throws(() => toPrecision.call({}, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toPrecision.call('123', 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toPrecision.call(false, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toPrecision.call(null, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toPrecision.call(undefined, 1), TypeError, '? thisNumberValue(this value)');\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.assign.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Object.assign', assert => {\n  const { assign, keys, defineProperty } = Object;\n  assert.isFunction(assign);\n  assert.arity(assign, 2);\n  assert.name(assign, 'assign');\n  assert.looksNative(assign);\n  assert.nonEnumerable(Object, 'assign');\n  let object = { q: 1 };\n  assert.same(object, assign(object, { bar: 2 }), 'assign return target');\n  assert.same(object.bar, 2, 'assign define properties');\n  assert.deepEqual(assign({}, { q: 1 }, { w: 2 }), { q: 1, w: 2 });\n  assert.deepEqual(assign({}, 'qwe'), { 0: 'q', 1: 'w', 2: 'e' });\n  assert.throws(() => assign(null, { q: 1 }), TypeError);\n  assert.throws(() => assign(undefined, { q: 1 }), TypeError);\n  let string = assign('qwe', { q: 1 });\n  assert.same(typeof string, 'object');\n  assert.same(String(string), 'qwe');\n  assert.same(string.q, 1);\n  assert.same(assign({}, { valueOf: 42 }).valueOf, 42, 'IE enum keys bug');\n  if (DESCRIPTORS) {\n    object = { baz: 1 };\n    assign(object, defineProperty({}, 'bar', {\n      get() {\n        return this.baz + 1;\n      },\n    }));\n    assert.same(object.bar, undefined, \"assign don't copy descriptors\");\n    object = { a: 'a' };\n    const c = Symbol('c');\n    const d = Symbol('d');\n    object[c] = 'c';\n    defineProperty(object, 'b', { value: 'b' });\n    defineProperty(object, d, { value: 'd' });\n    const object2 = assign({}, object);\n    assert.same(object2.a, 'a', 'a');\n    assert.same(object2.b, undefined, 'b');\n    assert.same(object2[c], 'c', 'c');\n    assert.same(object2[d], undefined, 'd');\n    try {\n      assert.same(Function('assign', `\n        return assign({ b: 1 }, { get a() {\n          delete this.b;\n        }, b: 2 });\n      `)(assign).b, 1);\n    } catch { /* empty */ }\n    try {\n      assert.same(Function('assign', `\n        return assign({ b: 1 }, { get a() {\n          Object.defineProperty(this, \"b\", {\n            value: 3,\n            enumerable: false\n          });\n        }, b: 2 });\n      `)(assign).b, 1);\n    } catch { /* empty */ }\n  }\n  string = 'abcdefghijklmnopqrst';\n  const result = {};\n  for (let i = 0, { length } = string; i < length; ++i) {\n    const chr = string.charAt(i);\n    result[chr] = chr;\n  }\n  assert.same(keys(assign({}, result)).join(''), string);\n});\n\n"
  },
  {
    "path": "tests/unit-global/es.object.create.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Object.create', assert => {\n  const { create, getPrototypeOf, getOwnPropertyNames } = Object;\n  function getPropertyNames(object) {\n    let result = [];\n    do {\n      result = result.concat(getOwnPropertyNames(object));\n    } while (object = getPrototypeOf(object));\n    return result;\n  }\n  assert.isFunction(create);\n  assert.arity(create, 2);\n  assert.name(create, 'create');\n  assert.looksNative(create);\n  assert.nonEnumerable(Object, 'create');\n  let object = { q: 1 };\n  assert.true({}.isPrototypeOf.call(object, create(object)));\n  assert.same(create(object).q, 1);\n  function F() {\n    return this.a = 1;\n  }\n  assert.true(create(new F()) instanceof F);\n  assert.same(F.prototype, getPrototypeOf(getPrototypeOf(create(new F()))));\n  assert.same(create(new F()).a, 1);\n  assert.same(create({}, { a: { value: 42 } }).a, 42);\n  object = create(null, { w: { value: 2 } });\n  assert.same(object, Object(object));\n  assert.false('toString' in object);\n  assert.same(object.w, 2);\n  assert.deepEqual(getPropertyNames(create(null)), []);\n});\n\nQUnit.test('Object.create.sham flag', assert => {\n  assert.same(Object.create.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.define-getter.js",
    "content": "import { DESCRIPTORS, STRICT } from '../helpers/constants.js';\n\nif (DESCRIPTORS) {\n  QUnit.test('Object#__defineGetter__', assert => {\n    const { __defineGetter__ } = Object.prototype;\n    assert.isFunction(__defineGetter__);\n    assert.arity(__defineGetter__, 2);\n    assert.name(__defineGetter__, '__defineGetter__');\n    assert.looksNative(__defineGetter__);\n    assert.nonEnumerable(Object.prototype, '__defineGetter__');\n    const object = {};\n    assert.same(object.__defineGetter__('key', () => 42), undefined, 'void');\n    assert.same(object.key, 42, 'works');\n    object.__defineSetter__('key', function () {\n      this.foo = 43;\n    });\n    object.key = 44;\n    assert.same(object.key, 42, 'works with setter #1');\n    assert.same(object.foo, 43, 'works with setter #2');\n    if (STRICT) {\n      assert.throws(() => __defineGetter__.call(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`');\n      assert.throws(() => __defineGetter__.call(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`');\n    }\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.object.define-properties.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Object.defineProperties', assert => {\n  const { defineProperties } = Object;\n  assert.isFunction(defineProperties);\n  assert.arity(defineProperties, 2);\n  assert.name(defineProperties, 'defineProperties');\n  assert.looksNative(defineProperties);\n  assert.nonEnumerable(Object, 'defineProperties');\n  const source = {};\n  const result = defineProperties(source, { q: { value: 42 }, w: { value: 33 } });\n  assert.same(result, source);\n  assert.same(result.q, 42);\n  assert.same(result.w, 33);\n\n  if (DESCRIPTORS) {\n    // eslint-disable-next-line prefer-arrow-callback -- required for testing\n    assert.same(defineProperties(function () { /* empty */ }, { prototype: {\n      value: 42,\n      writable: false,\n    } }).prototype, 42, 'function prototype with non-writable descriptor');\n  }\n});\n\nQUnit.test('Object.defineProperties.sham flag', assert => {\n  assert.same(Object.defineProperties.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.define-property.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Object.defineProperty', assert => {\n  const { defineProperty, create } = Object;\n  assert.isFunction(defineProperty);\n  assert.arity(defineProperty, 3);\n  assert.name(defineProperty, 'defineProperty');\n  assert.looksNative(defineProperty);\n  assert.nonEnumerable(Object, 'defineProperty');\n  const source = {};\n  const result = defineProperty(source, 'q', {\n    value: 42,\n  });\n  assert.same(result, source);\n  assert.same(result.q, 42);\n\n  if (DESCRIPTORS) {\n    // eslint-disable-next-line prefer-arrow-callback -- required for testing\n    assert.same(defineProperty(function () { /* empty */ }, 'prototype', {\n      value: 42,\n      writable: false,\n    }).prototype, 42, 'function prototype with non-writable descriptor');\n  }\n\n  assert.throws(() => defineProperty(42, 1, {}));\n  assert.throws(() => defineProperty({}, create(null), {}));\n  assert.throws(() => defineProperty({}, 1, 1));\n});\n\nQUnit.test('Object.defineProperty.sham flag', assert => {\n  assert.same(Object.defineProperty.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.define-setter.js",
    "content": "import { DESCRIPTORS, STRICT } from '../helpers/constants.js';\n\nif (DESCRIPTORS) {\n  QUnit.test('Object#__defineSetter__', assert => {\n    const { __defineSetter__ } = Object.prototype;\n    assert.isFunction(__defineSetter__);\n    assert.arity(__defineSetter__, 2);\n    assert.name(__defineSetter__, '__defineSetter__');\n    assert.looksNative(__defineSetter__);\n    assert.nonEnumerable(Object.prototype, '__defineSetter__');\n    let object = {};\n    assert.same(object.__defineSetter__('key', function () {\n      this.foo = 43;\n    }), undefined, 'void');\n    object.key = 44;\n    assert.same(object.foo, 43, 'works');\n    object = {};\n    object.__defineSetter__('key', function () {\n      this.foo = 43;\n    });\n    object.__defineGetter__('key', () => 42);\n    object.key = 44;\n    assert.same(object.key, 42, 'works with getter #1');\n    assert.same(object.foo, 43, 'works with getter #2');\n    if (STRICT) {\n      assert.throws(() => __defineSetter__.call(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`');\n      assert.throws(() => __defineSetter__.call(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`');\n    }\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.object.entries.js",
    "content": "QUnit.test('Object.entries', assert => {\n  const { entries, create, assign } = Object;\n  assert.isFunction(entries);\n  assert.arity(entries, 1);\n  assert.name(entries, 'entries');\n  assert.looksNative(entries);\n  assert.nonEnumerable(Object, 'entries');\n  assert.deepEqual(entries({ q: 1, w: 2, e: 3 }), [['q', 1], ['w', 2], ['e', 3]]);\n  assert.deepEqual(entries(new String('qwe')), [['0', 'q'], ['1', 'w'], ['2', 'e']]);\n  assert.deepEqual(entries(assign(create({ q: 1, w: 2, e: 3 }), { a: 4, s: 5, d: 6 })), [['a', 4], ['s', 5], ['d', 6]]);\n  assert.deepEqual(entries({ valueOf: 42 }), [['valueOf', 42]], 'IE enum keys bug');\n  try {\n    assert.deepEqual(Function('entries', `\n      return entries({\n        a: 1,\n        get b() {\n          delete this.c;\n          return 2;\n        },\n        c: 3\n      });\n    `)(entries), [['a', 1], ['b', 2]]);\n  } catch { /* empty */ }\n  try {\n    assert.deepEqual(Function('entries', `\n      return entries({\n        a: 1,\n        get b() {\n          Object.defineProperty(this, \"c\", {\n            value: 4,\n            enumerable: false\n          });\n          return 2;\n        },\n        c: 3\n      });\n    `)(entries), [['a', 1], ['b', 2]]);\n  } catch { /* empty */ }\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.freeze.js",
    "content": "import { GLOBAL, NATIVE } from '../helpers/constants.js';\n\nQUnit.test('Object.freeze', assert => {\n  const { freeze, isFrozen, keys, getOwnPropertyNames, getOwnPropertySymbols } = Object;\n  const { ownKeys } = GLOBAL.Reflect || {};\n  assert.isFunction(freeze);\n  assert.arity(freeze, 1);\n  assert.name(freeze, 'freeze');\n  assert.looksNative(freeze);\n  assert.nonEnumerable(Object, 'freeze');\n  const data = [42, 'foo', false, null, undefined, {}];\n  for (const value of data) {\n    assert.notThrows(() => freeze(value) || true, `accept ${ {}.toString.call(value).slice(8, -1) }`);\n    assert.same(freeze(value), value, `returns target on ${ {}.toString.call(value).slice(8, -1) }`);\n  }\n  if (NATIVE) assert.true(isFrozen(freeze({})));\n  const results = [];\n  for (const key in freeze({})) results.push(key);\n  assert.arrayEqual(results, []);\n  assert.arrayEqual(keys(freeze({})), []);\n  assert.arrayEqual(getOwnPropertyNames(freeze({})), []);\n  if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(freeze({})), []);\n  if (ownKeys) assert.arrayEqual(ownKeys(freeze({})), []);\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.from-entries.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Object.fromEntries', assert => {\n  const { fromEntries } = Object;\n  assert.isFunction(fromEntries);\n  assert.arity(fromEntries, 1);\n  assert.name(fromEntries, 'fromEntries');\n  assert.looksNative(fromEntries);\n  assert.nonEnumerable(Object, 'fromEntries');\n\n  assert.true(fromEntries([]) instanceof Object);\n  assert.same(fromEntries([['foo', 1]]).foo, 1);\n  assert.same(fromEntries(createIterable([['bar', 2]])).bar, 2);\n\n  class Unit {\n    constructor(id) {\n      this.id = id;\n    }\n    toString() {\n      return `unit${ this.id }`;\n    }\n  }\n  const units = new Set([new Unit(101), new Unit(102), new Unit(103)]);\n  const object = fromEntries(units.entries());\n  assert.same(object.unit101.id, 101);\n  assert.same(object.unit102.id, 102);\n  assert.same(object.unit103.id, 103);\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.get-own-property-descriptor.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Object.getOwnPropertyDescriptor', assert => {\n  const { getOwnPropertyDescriptor } = Object;\n  assert.isFunction(getOwnPropertyDescriptor);\n  assert.arity(getOwnPropertyDescriptor, 2);\n  assert.name(getOwnPropertyDescriptor, 'getOwnPropertyDescriptor');\n  assert.looksNative(getOwnPropertyDescriptor);\n  assert.nonEnumerable(Object, 'getOwnPropertyDescriptor');\n  assert.deepEqual(getOwnPropertyDescriptor({ q: 42 }, 'q'), {\n    writable: true,\n    enumerable: true,\n    configurable: true,\n    value: 42,\n  });\n  assert.same(getOwnPropertyDescriptor({}, 'toString'), undefined);\n  const primitives = [42, 'foo', false];\n  for (const value of primitives) {\n    assert.notThrows(() => getOwnPropertyDescriptor(value) || true, `accept ${ typeof value }`);\n  }\n  assert.throws(() => getOwnPropertyDescriptor(null), TypeError, 'throws on null');\n  assert.throws(() => getOwnPropertyDescriptor(undefined), TypeError, 'throws on undefined');\n});\n\nQUnit.test('Object.getOwnPropertyDescriptor.sham flag', assert => {\n  assert.same(Object.getOwnPropertyDescriptor.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.get-own-property-descriptors.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Object.getOwnPropertyDescriptors', assert => {\n  const { create, getOwnPropertyDescriptors } = Object;\n  assert.isFunction(getOwnPropertyDescriptors);\n  assert.arity(getOwnPropertyDescriptors, 1);\n  assert.name(getOwnPropertyDescriptors, 'getOwnPropertyDescriptors');\n  assert.looksNative(getOwnPropertyDescriptors);\n  assert.nonEnumerable(Object, 'getOwnPropertyDescriptors');\n  const object = create({ q: 1 }, { e: { value: 3 } });\n  object.w = 2;\n  const symbol = Symbol('4');\n  object[symbol] = 4;\n  const descriptors = getOwnPropertyDescriptors(object);\n  assert.same(descriptors.q, undefined);\n  assert.deepEqual(descriptors.w, {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 2,\n  });\n  if (DESCRIPTORS) {\n    assert.deepEqual(descriptors.e, {\n      enumerable: false,\n      configurable: false,\n      writable: false,\n      value: 3,\n    });\n  } else {\n    assert.deepEqual(descriptors.e, {\n      enumerable: true,\n      configurable: true,\n      writable: true,\n      value: 3,\n    });\n  }\n  assert.same(descriptors[symbol].value, 4);\n});\n\nQUnit.test('Object.getOwnPropertyDescriptors.sham flag', assert => {\n  assert.same(Object.getOwnPropertyDescriptors.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.get-own-property-names.js",
    "content": "import { includes } from '../helpers/helpers.js';\n\nQUnit.test('Object.getOwnPropertyNames', assert => {\n  const { freeze, getOwnPropertyNames } = Object;\n  assert.isFunction(getOwnPropertyNames);\n  assert.arity(getOwnPropertyNames, 1);\n  assert.name(getOwnPropertyNames, 'getOwnPropertyNames');\n  assert.looksNative(getOwnPropertyNames);\n  assert.nonEnumerable(Object, 'getOwnPropertyNames');\n  function F1() {\n    this.w = 1;\n  }\n  function F2() {\n    this.toString = 1;\n  }\n  F1.prototype.q = F2.prototype.q = 1;\n  const names = getOwnPropertyNames([1, 2, 3]);\n  assert.same(names.length, 4);\n  assert.true(includes(names, '0'));\n  assert.true(includes(names, '1'));\n  assert.true(includes(names, '2'));\n  assert.true(includes(names, 'length'));\n  assert.deepEqual(getOwnPropertyNames(new F1()), ['w']);\n  assert.deepEqual(getOwnPropertyNames(new F2()), ['toString']);\n  assert.true(includes(getOwnPropertyNames(Array.prototype), 'toString'));\n  assert.true(includes(getOwnPropertyNames(Object.prototype), 'toString'));\n  assert.true(includes(getOwnPropertyNames(Object.prototype), 'constructor'));\n  assert.deepEqual(getOwnPropertyNames(freeze({})), [], 'frozen');\n  const primitives = [42, 'foo', false];\n  for (const value of primitives) {\n    assert.notThrows(() => getOwnPropertyNames(value), `accept ${ typeof value }`);\n  }\n  assert.throws(() => {\n    getOwnPropertyNames(null);\n  }, TypeError, 'throws on null');\n  assert.throws(() => {\n    getOwnPropertyNames(undefined);\n  }, TypeError, 'throws on undefined');\n  /* Chakra bug\n  if (typeof document != 'undefined' && document.createElement) {\n    assert.notThrows(() => {\n      const iframe = document.createElement('iframe');\n      iframe.src = 'http://example.com';\n      document.documentElement.appendChild(iframe);\n      const window = iframe.contentWindow;\n      document.documentElement.removeChild(iframe);\n      return getOwnPropertyNames(window);\n    }, 'IE11 bug with iframe and window');\n  }\n  */\n});\n\n"
  },
  {
    "path": "tests/unit-global/es.object.get-own-property-symbols.js",
    "content": "const {\n  getOwnPropertyNames,\n  getOwnPropertySymbols,\n  create,\n} = Object;\n\nQUnit.test('Object.getOwnPropertySymbols', assert => {\n  assert.isFunction(getOwnPropertySymbols);\n  assert.nonEnumerable(Object, 'getOwnPropertySymbols');\n  assert.same(getOwnPropertySymbols.length, 1, 'arity is 1');\n  assert.name(getOwnPropertySymbols, 'getOwnPropertySymbols');\n  assert.looksNative(getOwnPropertySymbols);\n  const prototype = { q: 1, w: 2, e: 3 };\n  prototype[Symbol('getOwnPropertySymbols test 1')] = 42;\n  prototype[Symbol('getOwnPropertySymbols test 2')] = 43;\n  assert.deepEqual(getOwnPropertyNames(prototype).sort(), ['e', 'q', 'w']);\n  assert.same(getOwnPropertySymbols(prototype).length, 2);\n  const object = create(prototype);\n  object.a = 1;\n  object.s = 2;\n  object.d = 3;\n  object[Symbol('getOwnPropertySymbols test 3')] = 44;\n  assert.deepEqual(getOwnPropertyNames(object).sort(), ['a', 'd', 's']);\n  assert.same(getOwnPropertySymbols(object).length, 1);\n  assert.same(getOwnPropertySymbols(Object.prototype).length, 0);\n  const primitives = [42, 'foo', false];\n  for (const value of primitives) {\n    assert.notThrows(() => getOwnPropertySymbols(value), `accept ${ typeof value }`);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.get-prototype-of.js",
    "content": "import { CORRECT_PROTOTYPE_GETTER } from '../helpers/constants.js';\n\nQUnit.test('Object.getPrototypeOf', assert => {\n  const { create, getPrototypeOf } = Object;\n  assert.isFunction(getPrototypeOf);\n  assert.arity(getPrototypeOf, 1);\n  assert.name(getPrototypeOf, 'getPrototypeOf');\n  assert.looksNative(getPrototypeOf);\n  assert.nonEnumerable(Object, 'getPrototypeOf');\n  assert.same(getPrototypeOf({}), Object.prototype);\n  assert.same(getPrototypeOf([]), Array.prototype);\n  function F() { /* empty */ }\n  assert.same(getPrototypeOf(new F()), F.prototype);\n  const object = { q: 1 };\n  assert.same(getPrototypeOf(create(object)), object);\n  assert.same(getPrototypeOf(create(null)), null);\n  assert.same(getPrototypeOf(getPrototypeOf({})), null);\n  function Foo() { /* empty */ }\n  Foo.prototype.foo = 'foo';\n  function Bar() { /* empty */ }\n  Bar.prototype = create(Foo.prototype);\n  Bar.prototype.constructor = Bar;\n  assert.same(getPrototypeOf(Bar.prototype).foo, 'foo');\n  const primitives = [42, 'foo', false];\n  for (const value of primitives) {\n    assert.notThrows(() => getPrototypeOf(value), `accept ${ typeof value }`);\n  }\n  assert.throws(() => getPrototypeOf(null), TypeError, 'throws on null');\n  assert.throws(() => getPrototypeOf(undefined), TypeError, 'throws on undefined');\n  assert.same(getPrototypeOf('foo'), String.prototype);\n});\n\nQUnit.test('Object.getPrototypeOf.sham flag', assert => {\n  assert.same(Object.getPrototypeOf.sham, CORRECT_PROTOTYPE_GETTER ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.group-by.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Object.groupBy', assert => {\n  const { groupBy, getPrototypeOf, entries } = Object;\n\n  assert.isFunction(groupBy);\n  assert.arity(groupBy, 2);\n  assert.name(groupBy, 'groupBy');\n  assert.looksNative(groupBy);\n  assert.nonEnumerable(Object, 'groupBy');\n\n  assert.same(getPrototypeOf(groupBy([], it => it)), null, 'null proto');\n\n  assert.deepEqual(entries(groupBy([], it => it)), []);\n  assert.deepEqual(entries(groupBy([1, 2], it => it ** 2)), [['1', [1]], ['4', [2]]]);\n  assert.deepEqual(entries(groupBy([1, 2, 1], it => it ** 2)), [['1', [1, 1]], ['4', [2]]]);\n  assert.deepEqual(entries(groupBy(createIterable([1, 2]), it => it ** 2)), [['1', [1]], ['4', [2]]]);\n  assert.deepEqual(entries(groupBy('qwe', it => it)), [['q', ['q']], ['w', ['w']], ['e', ['e']]], 'iterable string');\n\n  const element = {};\n  groupBy([element], function (it, i) {\n    assert.same(arguments.length, 2, 'correct number of callback arguments');\n    assert.same(it, element, 'correct value in callback');\n    assert.same(i, 0, 'correct index in callback');\n  });\n\n  const even = Symbol('even');\n  const odd = Symbol('odd');\n  const grouped = Object.groupBy([1, 2, 3, 4, 5, 6], num => {\n    if (num % 2 === 0) return even;\n    return odd;\n  });\n  assert.deepEqual(grouped[even], [2, 4, 6]);\n  assert.deepEqual(grouped[odd], [1, 3, 5]);\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.has-own.js",
    "content": "QUnit.test('Object.hasOwn', assert => {\n  const { create, hasOwn } = Object;\n  assert.isFunction(hasOwn);\n  assert.arity(hasOwn, 2);\n  assert.name(hasOwn, 'hasOwn');\n  assert.looksNative(hasOwn);\n  assert.nonEnumerable(Object, 'hasOwn');\n  assert.true(hasOwn({ q: 42 }, 'q'));\n  assert.false(hasOwn({ q: 42 }, 'w'));\n  assert.false(hasOwn(create({ q: 42 }), 'q'));\n  assert.true(hasOwn(Object.prototype, 'hasOwnProperty'));\n  let called = false;\n  try {\n    hasOwn(null, { toString() { called = true; } });\n  } catch { /* empty */ }\n  assert.false(called, 'modern behaviour');\n  assert.throws(() => hasOwn(null, 'foo'), TypeError, 'throws on null');\n  assert.throws(() => hasOwn(undefined, 'foo'), TypeError, 'throws on undefined');\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.is-extensible.js",
    "content": "import { NATIVE } from '../helpers/constants.js';\n\nQUnit.test('Object.isExtensible', assert => {\n  const { preventExtensions, isExtensible } = Object;\n  assert.isFunction(isExtensible);\n  assert.arity(isExtensible, 1);\n  assert.name(isExtensible, 'isExtensible');\n  assert.nonEnumerable(Object, 'isExtensible');\n  assert.looksNative(isExtensible);\n  const primitives = [42, 'string', false, null, undefined];\n  for (const value of primitives) {\n    assert.notThrows(() => isExtensible(value) || true, `accept ${ value }`);\n    assert.false(isExtensible(value), `returns false on ${ value }`);\n  }\n  assert.true(isExtensible({}));\n  if (NATIVE) assert.false(isExtensible(preventExtensions({})));\n});\n\n"
  },
  {
    "path": "tests/unit-global/es.object.is-frozen.js",
    "content": "import { NATIVE } from '../helpers/constants.js';\n\nQUnit.test('Object.isFrozen', assert => {\n  const { freeze, isFrozen } = Object;\n  assert.isFunction(isFrozen);\n  assert.arity(isFrozen, 1);\n  assert.name(isFrozen, 'isFrozen');\n  assert.looksNative(isFrozen);\n  assert.nonEnumerable(Object, 'isFrozen');\n  const primitives = [42, 'string', false, null, undefined];\n  for (const value of primitives) {\n    assert.notThrows(() => isFrozen(value) || true, `accept ${ value }`);\n    assert.true(isFrozen(value), `returns true on ${ value }`);\n  }\n  assert.false(isFrozen({}));\n  if (NATIVE) assert.true(isFrozen(freeze({})));\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.is-sealed.js",
    "content": "import { NATIVE } from '../helpers/constants.js';\n\nQUnit.test('Object.isSealed', assert => {\n  const { seal, isSealed } = Object;\n  assert.isFunction(isSealed);\n  assert.arity(isSealed, 1);\n  assert.name(isSealed, 'isSealed');\n  assert.looksNative(isSealed);\n  assert.nonEnumerable(Object, 'isSealed');\n  const primitives = [42, 'string', false, null, undefined];\n  for (const value of primitives) {\n    assert.notThrows(() => isSealed(value) || true, `accept ${ value }`);\n    assert.true(isSealed(value), `returns true on ${ value }`);\n  }\n  assert.false(isSealed({}));\n  if (NATIVE) assert.true(isSealed(seal({})));\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.is.js",
    "content": "QUnit.test('Object.is', assert => {\n  const { is } = Object;\n  assert.isFunction(is);\n  assert.arity(is, 2);\n  assert.name(is, 'is');\n  assert.looksNative(is);\n  assert.nonEnumerable(Object, 'is');\n  assert.true(is(1, 1), '1 is 1');\n  assert.true(is(NaN, NaN), 'NaN is NaN');\n  assert.false(is(0, -0), '0 is not -0');\n  assert.false(is({}, {}), '{} is not {}');\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.keys.js",
    "content": "import { includes } from '../helpers/helpers.js';\n\nQUnit.test('Object.keys', assert => {\n  const { keys } = Object;\n  assert.isFunction(keys);\n  assert.arity(keys, 1);\n  assert.name(keys, 'keys');\n  assert.looksNative(keys);\n  assert.nonEnumerable(Object, 'keys');\n  function F1() {\n    this.w = 1;\n  }\n  function F2() {\n    this.toString = 1;\n  }\n  F1.prototype.q = F2.prototype.q = 1;\n  assert.deepEqual(keys([1, 2, 3]), ['0', '1', '2']);\n  assert.deepEqual(keys(new F1()), ['w']);\n  assert.deepEqual(keys(new F2()), ['toString']);\n  assert.false(includes(keys(Array.prototype), 'push'));\n  const primitives = [42, 'foo', false];\n  for (const value of primitives) {\n    assert.notThrows(() => keys(value), `accept ${ typeof value }`);\n  }\n  assert.throws(() => keys(null), TypeError, 'throws on null');\n  assert.throws(() => keys(undefined), TypeError, 'throws on undefined');\n});\n\n"
  },
  {
    "path": "tests/unit-global/es.object.lookup-getter.js",
    "content": "import { DESCRIPTORS, STRICT } from '../helpers/constants.js';\n\nif (DESCRIPTORS) {\n  QUnit.test('Object#__lookupGetter__', assert => {\n    const { __lookupGetter__ } = Object.prototype;\n    const { create } = Object;\n    assert.isFunction(__lookupGetter__);\n    assert.arity(__lookupGetter__, 1);\n    assert.name(__lookupGetter__, '__lookupGetter__');\n    assert.looksNative(__lookupGetter__);\n    assert.nonEnumerable(Object.prototype, '__lookupGetter__');\n    assert.same({}.__lookupGetter__('key'), undefined, 'empty object');\n    assert.same({ key: 42 }.__lookupGetter__('key'), undefined, 'data descriptor');\n    const object = {};\n    function getter() { /* empty */ }\n    object.__defineGetter__('key', getter);\n    assert.same(object.__lookupGetter__('key'), getter, 'own getter');\n    assert.same(create(object).__lookupGetter__('key'), getter, 'proto getter');\n    assert.same(create(object).__lookupGetter__('foo'), undefined, 'empty proto');\n    if (STRICT) {\n      assert.throws(() => __lookupGetter__.call(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`');\n      assert.throws(() => __lookupGetter__.call(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`');\n    }\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.object.lookup-setter.js",
    "content": "import { DESCRIPTORS, STRICT } from '../helpers/constants.js';\n\nif (DESCRIPTORS) {\n  QUnit.test('Object#__lookupSetter__', assert => {\n    const { __lookupSetter__ } = Object.prototype;\n    const { create } = Object;\n    assert.isFunction(__lookupSetter__);\n    assert.arity(__lookupSetter__, 1);\n    assert.name(__lookupSetter__, '__lookupSetter__');\n    assert.looksNative(__lookupSetter__);\n    assert.nonEnumerable(Object.prototype, '__lookupSetter__');\n    assert.same({}.__lookupSetter__('key'), undefined, 'empty object');\n    assert.same({ key: 42 }.__lookupSetter__('key'), undefined, 'data descriptor');\n    const object = {};\n    function setter() { /* empty */ }\n    object.__defineSetter__('key', setter);\n    assert.same(object.__lookupSetter__('key'), setter, 'own setter');\n    assert.same(create(object).__lookupSetter__('key'), setter, 'proto setter');\n    assert.same(create(object).__lookupSetter__('foo'), undefined, 'empty proto');\n    if (STRICT) {\n      assert.throws(() => __lookupSetter__.call(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`');\n      assert.throws(() => __lookupSetter__.call(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`');\n    }\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.object.prevent-extensions.js",
    "content": "import { GLOBAL, NATIVE } from '../helpers/constants.js';\n\nQUnit.test('Object.preventExtensions', assert => {\n  const { preventExtensions, keys, isExtensible, getOwnPropertyNames, getOwnPropertySymbols } = Object;\n  const { ownKeys } = GLOBAL.Reflect || {};\n  assert.isFunction(preventExtensions);\n  assert.arity(preventExtensions, 1);\n  assert.name(preventExtensions, 'preventExtensions');\n  assert.looksNative(preventExtensions);\n  assert.nonEnumerable(Object, 'preventExtensions');\n  const data = [42, 'foo', false, null, undefined, {}];\n  for (const value of data) {\n    assert.notThrows(() => preventExtensions(value) || true, `accept ${ {}.toString.call(value).slice(8, -1) }`);\n    assert.same(preventExtensions(value), value, `returns target on ${ {}.toString.call(value).slice(8, -1) }`);\n  }\n  if (NATIVE) assert.false(isExtensible(preventExtensions({})));\n  const results = [];\n  for (const key in preventExtensions({})) results.push(key);\n  assert.arrayEqual(results, []);\n  assert.arrayEqual(keys(preventExtensions({})), []);\n  assert.arrayEqual(getOwnPropertyNames(preventExtensions({})), []);\n  if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(preventExtensions({})), []);\n  if (ownKeys) assert.arrayEqual(ownKeys(preventExtensions({})), []);\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.proto.js",
    "content": "/* eslint-disable no-proto -- required for testing */\nimport { DESCRIPTORS, PROTO } from '../helpers/constants.js';\n\nif (PROTO && DESCRIPTORS) QUnit.test('Object.prototype.__proto__', assert => {\n  assert.true('__proto__' in Object.prototype, 'in Object.prototype');\n  const O = {};\n  assert.same(O.__proto__, Object.prototype);\n  O.__proto__ = Array.prototype;\n  assert.same(O.__proto__, Array.prototype);\n  assert.same(Object.getPrototypeOf(O), Array.prototype);\n  assert.true(O instanceof Array);\n  O.__proto__ = null;\n  assert.same(Object.getPrototypeOf(O), null);\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.seal.js",
    "content": "import { GLOBAL, NATIVE } from '../helpers/constants.js';\n\nQUnit.test('Object.seal', assert => {\n  const { seal, isSealed, keys, getOwnPropertyNames, getOwnPropertySymbols } = Object;\n  const { ownKeys } = GLOBAL.Reflect || {};\n  assert.isFunction(seal);\n  assert.arity(seal, 1);\n  assert.name(seal, 'seal');\n  assert.looksNative(seal);\n  assert.nonEnumerable(Object, 'seal');\n  const data = [42, 'foo', false, null, undefined, {}];\n  for (const value of data) {\n    assert.notThrows(() => seal(value) || true, `accept ${ {}.toString.call(value).slice(8, -1) }`);\n    assert.same(seal(value), value, `returns target on ${ {}.toString.call(value).slice(8, -1) }`);\n  }\n  if (NATIVE) assert.true(isSealed(seal({})));\n  const results = [];\n  for (const key in seal({})) results.push(key);\n  assert.arrayEqual(results, []);\n  assert.arrayEqual(keys(seal({})), []);\n  assert.arrayEqual(getOwnPropertyNames(seal({})), []);\n  if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(seal({})), []);\n  if (ownKeys) assert.arrayEqual(ownKeys(seal({})), []);\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.set-prototype-of.js",
    "content": "import { PROTO } from '../helpers/constants.js';\n\nif (PROTO) QUnit.test('Object.setPrototypeOf', assert => {\n  const { setPrototypeOf } = Object;\n  assert.isFunction(setPrototypeOf);\n  assert.arity(setPrototypeOf, 2);\n  assert.name(setPrototypeOf, 'setPrototypeOf');\n  assert.looksNative(setPrototypeOf);\n  assert.nonEnumerable(Object, 'setPrototypeOf');\n  assert.true('apply' in setPrototypeOf({}, Function.prototype), 'Parent properties in target');\n  assert.same(setPrototypeOf({ a: 2 }, {\n    b() {\n      return this.a ** 2;\n    },\n  }).b(), 4, 'Child and parent properties in target');\n  const object = {};\n  assert.same(setPrototypeOf(object, { a: 1 }), object, 'setPrototypeOf return target');\n  assert.false('toString' in setPrototypeOf({}, null), 'Can set null as prototype');\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.to-string.js",
    "content": "import { GLOBAL, STRICT } from '../helpers/constants.js';\n\nQUnit.test('Object#toString', assert => {\n  const { toString } = Object.prototype;\n  const Symbol = GLOBAL.Symbol || {};\n  assert.arity(toString, 0);\n  assert.name(toString, 'toString');\n  assert.looksNative(toString);\n  assert.nonEnumerable(Object.prototype, 'toString');\n  if (STRICT) {\n    assert.same(toString.call(null), '[object Null]', 'null -> `Null`');\n    assert.same(toString.call(undefined), '[object Undefined]', 'undefined -> `Undefined`');\n  }\n  assert.same(toString.call(true), '[object Boolean]', 'bool -> `Boolean`');\n  assert.same(toString.call('string'), '[object String]', 'string -> `String`');\n  assert.same(toString.call(7), '[object Number]', 'number -> `Number`');\n  assert.same(`${ {} }`, '[object Object]', '{} -> `Object`');\n  assert.same(toString.call([]), '[object Array]', ' [] -> `Array`');\n  assert.same(toString.call(() => { /* empty */ }), '[object Function]', 'function -> `Function`');\n  assert.same(toString.call(/./), '[object RegExp]', 'regexp -> `RegExp`');\n  assert.same(toString.call(new TypeError()), '[object Error]', 'new TypeError -> `Error`');\n  assert.same(toString.call(function () {\n    // eslint-disable-next-line prefer-rest-params -- required for testing\n    return arguments;\n  }()), '[object Arguments]', 'arguments -> `Arguments`');\n  const constructors = [\n    'Array',\n    'RegExp',\n    'Boolean',\n    'String',\n    'Number',\n    'Error',\n    'Int8Array',\n    'Uint8Array',\n    'Uint8ClampedArray',\n    'Int16Array',\n    'Uint16Array',\n    'Int32Array',\n    'Uint32Array',\n    'Float32Array',\n    'Float64Array',\n    'ArrayBuffer',\n  ];\n  for (const name of constructors) {\n    const Constructor = GLOBAL[name];\n    if (Constructor) {\n      assert.same(toString.call(new Constructor(1)), `[object ${ name }]`, `new ${ name }(1) -> \\`${ name }\\``);\n    }\n  }\n  if (GLOBAL.DataView) {\n    assert.same(`${ new DataView(new ArrayBuffer(1)) }`, '[object DataView]', 'dataview -> `DataView`');\n  }\n  if (GLOBAL.Set) {\n    assert.same(`${ new Set() }`, '[object Set]', 'set -> `Set`');\n  }\n  if (GLOBAL.Map) {\n    assert.same(`${ new Map() }`, '[object Map]', 'map -> `Map`');\n  }\n  if (GLOBAL.WeakSet) {\n    assert.same(`${ new WeakSet() }`, '[object WeakSet]', 'weakset -> `WeakSet`');\n  }\n  if (GLOBAL.WeakMap) {\n    assert.same(`${ new WeakMap() }`, '[object WeakMap]', 'weakmap -> `WeakMap`');\n  }\n  if (GLOBAL.Promise) {\n    assert.same(`${ new Promise(() => { /* empty */ }) }`, '[object Promise]', 'promise -> `Promise`');\n  }\n  if (''[Symbol.iterator]) {\n    assert.same(`${ ''[Symbol.iterator]() }`, '[object String Iterator]', 'String Iterator -> `String Iterator`');\n  }\n  if ([].entries) {\n    assert.same(`${ [].entries() }`, '[object Array Iterator]', 'Array Iterator -> `Array Iterator`');\n  }\n  if (GLOBAL.Set && Set.prototype.entries) {\n    assert.same(`${ new Set().entries() }`, '[object Set Iterator]', 'Set Iterator -> `Set Iterator`');\n  }\n  if (GLOBAL.Map && Map.prototype.entries) {\n    assert.same(`${ new Map().entries() }`, '[object Map Iterator]', 'Map Iterator -> `Map Iterator`');\n  }\n  assert.same(`${ Math }`, '[object Math]', 'Math -> `Math`');\n  if (GLOBAL.JSON) {\n    assert.same(`${ JSON }`, '[object JSON]', 'JSON -> `JSON`');\n  }\n  function Class() { /* empty */ }\n  Class.prototype[Symbol.toStringTag] = 'Class';\n  assert.same(`${ new Class() }`, '[object Class]', 'user class instance -> [Symbol.toStringTag]');\n});\n"
  },
  {
    "path": "tests/unit-global/es.object.values.js",
    "content": "QUnit.test('Object.values', assert => {\n  const { values, create, assign } = Object;\n  assert.isFunction(values);\n  assert.arity(values, 1);\n  assert.name(values, 'values');\n  assert.looksNative(values);\n  assert.nonEnumerable(Object, 'values');\n  assert.deepEqual(values({ q: 1, w: 2, e: 3 }), [1, 2, 3]);\n  assert.deepEqual(values(new String('qwe')), ['q', 'w', 'e']);\n  assert.deepEqual(values(assign(create({ q: 1, w: 2, e: 3 }), { a: 4, s: 5, d: 6 })), [4, 5, 6]);\n  assert.deepEqual(values({ valueOf: 42 }), [42], 'IE enum keys bug');\n  try {\n    assert.deepEqual(Function('values', `\n      return values({ a: 1, get b() {\n        delete this.c;\n        return 2;\n      }, c: 3 });\n    `)(values), [1, 2]);\n  } catch { /* empty */ }\n  try {\n    assert.deepEqual(Function('values', `\n      return values({ a: 1, get b() {\n        Object.defineProperty(this, \"c\", {\n          value: 4,\n          enumerable: false\n        });\n        return 2;\n      }, c: 3 });\n    `)(values), [1, 2]);\n  } catch { /* empty */ }\n});\n"
  },
  {
    "path": "tests/unit-global/es.parse-float.js",
    "content": "import { WHITESPACES } from '../helpers/constants.js';\n\nQUnit.test('parseFloat', assert => {\n  assert.isFunction(parseFloat);\n  assert.name(parseFloat, 'parseFloat');\n  assert.arity(parseFloat, 1);\n  assert.looksNative(parseFloat);\n  assert.same(parseFloat('0'), 0);\n  assert.same(parseFloat(' 0'), 0);\n  assert.same(parseFloat('+0'), 0);\n  assert.same(parseFloat(' +0'), 0);\n  assert.same(parseFloat('-0'), -0);\n  assert.same(parseFloat(' -0'), -0);\n  assert.same(parseFloat(`${ WHITESPACES }+0`), 0);\n  assert.same(parseFloat(`${ WHITESPACES }-0`), -0);\n  // eslint-disable-next-line math/no-static-nan-calculations -- feature detection\n  assert.same(parseFloat(null), NaN);\n  // eslint-disable-next-line math/no-static-nan-calculations -- feature detection\n  assert.same(parseFloat(undefined), NaN);\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('parseFloat test');\n    assert.throws(() => parseFloat(symbol), 'throws on symbol argument');\n    assert.throws(() => parseFloat(Object(symbol)), 'throws on boxed symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.parse-int.js",
    "content": "/* eslint-disable prefer-numeric-literals -- required for testing */\nimport { WHITESPACES } from '../helpers/constants.js';\n\n/* eslint-disable radix -- required for testing */\nQUnit.test('parseInt', assert => {\n  assert.isFunction(parseInt);\n  assert.name(parseInt, 'parseInt');\n  assert.arity(parseInt, 2);\n  assert.looksNative(parseInt);\n  for (let radix = 2; radix <= 36; ++radix) {\n    assert.same(parseInt('10', radix), radix, `radix ${ radix }`);\n  }\n  const strings = ['01', '08', '10', '42'];\n  for (const string of strings) {\n    assert.same(parseInt(string), parseInt(string, 10), `default radix is 10: ${ string }`);\n  }\n  assert.same(parseInt('0x16'), parseInt('0x16', 16), 'default radix is 16: 0x16');\n  assert.same(parseInt('  0x16'), parseInt('0x16', 16), 'ignores leading whitespace #1');\n  assert.same(parseInt('  42'), parseInt('42', 10), 'ignores leading whitespace #2');\n  assert.same(parseInt('  08'), parseInt('08', 10), 'ignores leading whitespace #3');\n  assert.same(parseInt(`${ WHITESPACES }08`), parseInt('08', 10), 'ignores leading whitespace #4');\n  assert.same(parseInt(`${ WHITESPACES }0x16`), parseInt('0x16', 16), 'ignores leading whitespace #5');\n  const fakeZero = {\n    valueOf() {\n      return 0;\n    },\n  };\n  assert.same(parseInt('08', fakeZero), parseInt('08', 10), 'valueOf #1');\n  assert.same(parseInt('0x16', fakeZero), parseInt('0x16', 16), 'valueOf #2');\n  assert.same(parseInt('-0xF'), -15, 'signed hex #1');\n  assert.same(parseInt('-0xF', 16), -15, 'signed hex #2');\n  assert.same(parseInt('+0xF'), 15, 'signed hex #3');\n  assert.same(parseInt('+0xF', 16), 15, 'signed hex #4');\n  assert.same(parseInt('10', -4294967294), 2, 'radix uses ToUint32');\n  // eslint-disable-next-line math/no-static-nan-calculations -- feature detection\n  assert.same(parseInt(null), NaN);\n  // eslint-disable-next-line math/no-static-nan-calculations -- feature detection\n  assert.same(parseInt(undefined), NaN);\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('parseInt test');\n    assert.throws(() => parseInt(symbol), 'throws on symbol argument');\n    assert.throws(() => parseInt(Object(symbol)), 'throws on boxed symbol argument');\n  }\n});\n\n"
  },
  {
    "path": "tests/unit-global/es.promise.all-settled.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Promise.allSettled', assert => {\n  assert.isFunction(Promise.allSettled);\n  assert.name(Promise.allSettled, 'allSettled');\n  assert.arity(Promise.allSettled, 1);\n  assert.looksNative(Promise.allSettled);\n  assert.nonEnumerable(Promise, 'allSettled');\n  assert.true(Promise.allSettled([1, 2, 3]) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise.allSettled, resolved', assert => {\n  return Promise.allSettled([\n    Promise.resolve(1),\n    Promise.resolve(2),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.deepEqual(it, [\n      { value: 1, status: 'fulfilled' },\n      { value: 2, status: 'fulfilled' },\n      { value: 3, status: 'fulfilled' },\n    ], 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.allSettled, resolved with rejection', assert => {\n  return Promise.allSettled([\n    Promise.resolve(1),\n    Promise.reject(2),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.deepEqual(it, [\n      { value: 1, status: 'fulfilled' },\n      { reason: 2, status: 'rejected' },\n      { value: 3, status: 'fulfilled' },\n    ], 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.allSettled, rejected', assert => {\n  // eslint-disable-next-line promise/valid-params -- required for testing\n  return Promise.allSettled().then(() => {\n    assert.avoid();\n  }, () => {\n    assert.required('rejected as expected');\n  });\n});\n\nQUnit.test('Promise.allSettled, resolved with timeouts', assert => {\n  return Promise.allSettled([\n    Promise.resolve(1),\n    new Promise(resolve => setTimeout(() => resolve(2), 10)),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.deepEqual(it, [\n      { value: 1, status: 'fulfilled' },\n      { value: 2, status: 'fulfilled' },\n      { value: 3, status: 'fulfilled' },\n    ], 'keeps correct mapping, even with delays');\n  });\n});\n\nQUnit.test('Promise.allSettled, subclassing', assert => {\n  const { allSettled, resolve } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  SubPromise.resolve = resolve.bind(Promise);\n  assert.true(allSettled.call(SubPromise, [1, 2, 3]) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = resolve.bind(Promise);\n  assert.throws(() => {\n    allSettled.call(FakePromise1, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    allSettled.call(FakePromise2, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    allSettled.call(FakePromise3, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.allSettled, iterables', assert => {\n  const iterable = createIterable([1, 2, 3]);\n  Promise.allSettled(iterable).catch(() => { /* empty */ });\n  assert.true(iterable.received, 'works with iterables: iterator received');\n  assert.true(iterable.called, 'works with iterables: next called');\n});\n\nQUnit.test('Promise.allSettled, iterables 2', assert => {\n  const array = [];\n  let done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return [][Symbol.iterator].call(this);\n  };\n  Promise.allSettled(array);\n  assert.true(done);\n});\n\nQUnit.test('Promise.allSettled, iterator closing', assert => {\n  const { resolve } = Promise;\n  let done = false;\n  try {\n    Promise.resolve = function () {\n      throw new Error();\n    };\n    Promise.allSettled(createIterable([1, 2, 3], {\n      return() {\n        done = true;\n      },\n    })).catch(() => { /* empty */ });\n  } catch { /* empty */ }\n  Promise.resolve = resolve;\n  assert.true(done, 'iteration closing');\n});\n\nQUnit.test('Promise.allSettled, without constructor context', assert => {\n  const { allSettled } = Promise;\n  assert.throws(() => allSettled([]), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => allSettled.call(null, []), TypeError, 'Throws if called with null as this');\n});\n"
  },
  {
    "path": "tests/unit-global/es.promise.all.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Promise.all', assert => {\n  const { all } = Promise;\n  assert.isFunction(all);\n  assert.arity(all, 1);\n  assert.name(all, 'all');\n  assert.looksNative(all);\n  assert.nonEnumerable(Promise, 'all');\n  assert.true(Promise.all([]) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise.all, resolved', assert => {\n  return Promise.all([\n    Promise.resolve(1),\n    Promise.resolve(2),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.deepEqual(it, [1, 2, 3], 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.all, resolved with rejection', assert => {\n  return Promise.all([\n    Promise.resolve(1),\n    Promise.reject(2),\n    Promise.resolve(3),\n  ]).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 2, 'rejected with a correct value');\n  });\n});\n\nQUnit.test('Promise.all, resolved with empty array', assert => {\n  return Promise.all([]).then(it => {\n    assert.deepEqual(it, [], 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.all, resolved with timeouts', assert => {\n  return Promise.all([\n    Promise.resolve(1),\n    new Promise(resolve => setTimeout(() => resolve(2), 10)),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.deepEqual(it, [1, 2, 3], 'keeps correct mapping, even with delays');\n  });\n});\n\nQUnit.test('Promise.all, subclassing', assert => {\n  const { all, resolve } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  SubPromise.resolve = resolve.bind(Promise);\n  assert.true(all.call(SubPromise, [1, 2, 3]) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = resolve.bind(Promise);\n  assert.throws(() => {\n    all.call(FakePromise1, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    all.call(FakePromise2, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    all.call(FakePromise3, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.all, iterables', assert => {\n  const iterable = createIterable([1, 2, 3]);\n  Promise.all(iterable).catch(() => { /* empty */ });\n  assert.true(iterable.received, 'works with iterables: iterator received');\n  assert.true(iterable.called, 'works with iterables: next called');\n});\n\nQUnit.test('Promise.all, iterables 2', assert => {\n  const array = [];\n  let done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return [][Symbol.iterator].call(this);\n  };\n  Promise.all(array);\n  assert.true(done);\n});\n\nQUnit.test('Promise.all, iterator closing', assert => {\n  const { resolve } = Promise;\n  let done = false;\n  try {\n    Promise.resolve = function () {\n      throw new Error();\n    };\n    Promise.all(createIterable([1, 2, 3], {\n      return() {\n        done = true;\n      },\n    })).catch(() => { /* empty */ });\n  } catch { /* empty */ }\n  Promise.resolve = resolve;\n  assert.true(done, 'iteration closing');\n});\n\nQUnit.test('Promise.all, without constructor context', assert => {\n  const { all } = Promise;\n  assert.throws(() => all([]), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => all.call(null, []), TypeError, 'Throws if called with null as this');\n});\n"
  },
  {
    "path": "tests/unit-global/es.promise.any.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Promise.any', assert => {\n  assert.isFunction(Promise.any);\n  assert.name(Promise.any, 'any');\n  assert.arity(Promise.any, 1);\n  assert.looksNative(Promise.any);\n  assert.nonEnumerable(Promise, 'any');\n  assert.true(Promise.any([1, 2, 3]) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise.any, resolved', assert => {\n  return Promise.any([\n    Promise.resolve(1),\n    Promise.reject(2),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.same(it, 1, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.any, rejected #1', assert => {\n  return Promise.any([\n    Promise.reject(1),\n    Promise.reject(2),\n    Promise.reject(3),\n  ]).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof AggregateError, 'instanceof AggregateError');\n    assert.deepEqual(error.errors, [1, 2, 3], 'rejected with a correct value');\n  });\n});\n\nQUnit.test('Promise.any, rejected #2', assert => {\n  // eslint-disable-next-line promise/valid-params -- required for testing\n  return Promise.any().then(() => {\n    assert.avoid();\n  }, () => {\n    assert.required('rejected as expected');\n  });\n});\n\nQUnit.test('Promise.any, rejected #3', assert => {\n  return Promise.any([]).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof AggregateError, 'instanceof AggregateError');\n    assert.deepEqual(error.errors, [], 'rejected with a correct value');\n  });\n});\n\nQUnit.test('Promise.any, resolved with timeout', assert => {\n  return Promise.any([\n    new Promise(resolve => setTimeout(() => resolve(1), 50)),\n    Promise.resolve(2),\n  ]).then(it => {\n    assert.same(it, 2, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.any, subclassing', assert => {\n  const { any, resolve } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  SubPromise.resolve = resolve.bind(Promise);\n  assert.true(any.call(SubPromise, [1, 2, 3]) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = resolve.bind(Promise);\n  assert.throws(() => {\n    any.call(FakePromise1, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    any.call(FakePromise2, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    any.call(FakePromise3, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.any, iterables', assert => {\n  const iterable = createIterable([1, 2, 3]);\n  Promise.any(iterable).catch(() => { /* empty */ });\n  assert.true(iterable.received, 'works with iterables: iterator received');\n  assert.true(iterable.called, 'works with iterables: next called');\n});\n\nQUnit.test('Promise.any, empty iterables', assert => {\n  const array = [];\n  let done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return [][Symbol.iterator].call(this);\n  };\n  return Promise.any(array).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof AggregateError, 'instanceof AggregateError');\n    assert.true(done, 'iterator called');\n  });\n});\n\nQUnit.test('Promise.any, iterator closing', assert => {\n  const { resolve } = Promise;\n  let done = false;\n  try {\n    Promise.resolve = function () {\n      throw new Error();\n    };\n    Promise.any(createIterable([1, 2, 3], {\n      return() {\n        done = true;\n      },\n    })).catch(() => { /* empty */ });\n  } catch { /* empty */ }\n  Promise.resolve = resolve;\n  assert.true(done, 'iteration closing');\n});\n\nQUnit.test('Promise.any, without constructor context', assert => {\n  const { any } = Promise;\n  assert.throws(() => any([]), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => any.call(null, []), TypeError, 'Throws if called with null as this');\n});\n"
  },
  {
    "path": "tests/unit-global/es.promise.catch.js",
    "content": "import { NATIVE } from '../helpers/constants.js';\n\nQUnit.test('Promise#catch', assert => {\n  assert.isFunction(Promise.prototype.catch);\n  if (NATIVE) assert.arity(Promise.prototype.catch, 1);\n  if (NATIVE) assert.name(Promise.prototype.catch, 'catch');\n  assert.looksNative(Promise.prototype.catch);\n  assert.nonEnumerable(Promise.prototype, 'catch');\n  let promise = new Promise(resolve => {\n    resolve(42);\n  });\n  const FakePromise1 = promise.constructor = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  const FakePromise2 = FakePromise1[Symbol.species] = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  assert.true(promise.catch(() => { /* empty */ }) instanceof FakePromise2, 'subclassing, @@species pattern');\n  promise = new Promise(resolve => {\n    resolve(42);\n  });\n  promise.constructor = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  assert.true(promise.catch(() => { /* empty */ }) instanceof Promise, 'subclassing, incorrect `this` pattern');\n  promise = new Promise(resolve => {\n    resolve(42);\n  });\n  const FakePromise3 = promise.constructor = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  FakePromise3[Symbol.species] = function () { /* empty */ };\n  assert.throws(() => {\n    promise.catch(() => { /* empty */ });\n  }, 'NewPromiseCapability validations, #1');\n  FakePromise3[Symbol.species] = function (executor) {\n    executor(null, () => { /* empty */ });\n  };\n  assert.throws(() => {\n    promise.catch(() => { /* empty */ });\n  }, 'NewPromiseCapability validations, #2');\n  FakePromise3[Symbol.species] = function (executor) {\n    executor(() => { /* empty */ }, null);\n  };\n  assert.throws(() => {\n    promise.catch(() => { /* empty */ });\n  }, 'NewPromiseCapability validations, #3');\n  assert.same(Promise.prototype.catch.call({\n    // eslint-disable-next-line unicorn/no-thenable -- required for testing\n    then(x, y) {\n      return y;\n    },\n  }, 42), 42, 'calling `.then`');\n});\n"
  },
  {
    "path": "tests/unit-global/es.promise.constructor.js",
    "content": "import { DESCRIPTORS, GLOBAL, NATIVE, PROTO, STRICT } from '../helpers/constants.js';\n\nconst Symbol = GLOBAL.Symbol || {};\nconst { setPrototypeOf, create } = Object;\n\nQUnit.test('Promise', assert => {\n  assert.isFunction(Promise);\n  assert.arity(Promise, 1);\n  assert.name(Promise, 'Promise');\n  assert.looksNative(Promise);\n  assert.throws(() => {\n    Promise();\n  }, 'throws w/o `new`');\n  new Promise(function (resolve, reject) {\n    assert.isFunction(resolve, 'resolver is function');\n    assert.isFunction(reject, 'rejector is function');\n    if (STRICT) assert.same(this, undefined, 'correct executor context');\n  });\n});\n\nif (DESCRIPTORS) QUnit.test('Promise operations order', assert => {\n  let $resolve, $resolve2;\n  assert.expect(1);\n  const EXPECTED_ORDER = 'DEHAFGBC';\n  const async = assert.async();\n  let result = '';\n  const promise1 = new Promise(resolve => {\n    $resolve = resolve;\n  });\n  $resolve({\n    // eslint-disable-next-line unicorn/no-thenable -- required for testing\n    then() {\n      result += 'A';\n      throw new Error();\n    },\n  });\n  promise1.catch(() => {\n    result += 'B';\n  });\n  promise1.catch(() => {\n    result += 'C';\n    assert.same(result, EXPECTED_ORDER);\n    async();\n  });\n  const promise2 = new Promise(resolve => {\n    $resolve2 = resolve;\n  });\n  // eslint-disable-next-line unicorn/no-thenable -- required for testing\n  $resolve2(Object.defineProperty({}, 'then', {\n    get() {\n      result += 'D';\n      throw new Error();\n    },\n  }));\n  result += 'E';\n  promise2.catch(() => {\n    result += 'F';\n  });\n  promise2.catch(() => {\n    result += 'G';\n  });\n  result += 'H';\n  setTimeout(() => {\n    if (!~result.indexOf('C')) {\n      assert.same(result, EXPECTED_ORDER);\n      async();\n    }\n  }, 1e3);\n});\n\nQUnit.test('Promise#then', assert => {\n  assert.isFunction(Promise.prototype.then);\n  if (NATIVE) assert.arity(Promise.prototype.then, 2);\n  assert.name(Promise.prototype.then, 'then');\n  assert.looksNative(Promise.prototype.then);\n  assert.nonEnumerable(Promise.prototype, 'then');\n  let promise = new Promise(resolve => {\n    resolve(42);\n  });\n  const FakePromise1 = promise.constructor = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  const FakePromise2 = FakePromise1[Symbol.species] = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  assert.true(promise.then(() => { /* empty */ }) instanceof FakePromise2, 'subclassing, @@species pattern');\n  promise = new Promise(resolve => {\n    resolve(42);\n  });\n  promise.constructor = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  assert.true(promise.then(() => { /* empty */ }) instanceof Promise, 'subclassing, incorrect `this` pattern');\n  promise = new Promise(resolve => {\n    resolve(42);\n  });\n  const FakePromise3 = promise.constructor = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  FakePromise3[Symbol.species] = function () { /* empty */ };\n  assert.throws(() => {\n    promise.then(() => { /* empty */ });\n  }, 'NewPromiseCapability validations, #1');\n  FakePromise3[Symbol.species] = function (executor) {\n    executor(null, () => { /* empty */ });\n  };\n  assert.throws(() => {\n    promise.then(() => { /* empty */ });\n  }, 'NewPromiseCapability validations, #2');\n  FakePromise3[Symbol.species] = function (executor) {\n    executor(() => { /* empty */ }, null);\n  };\n  assert.throws(() => {\n    promise.then(() => { /* empty */ });\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise#@@toStringTag', assert => {\n  assert.same(Promise.prototype[Symbol.toStringTag], 'Promise', 'Promise::@@toStringTag is `Promise`');\n  assert.same(String(new Promise(() => { /* empty */ })), '[object Promise]', 'correct stringification');\n});\n\nif (PROTO) QUnit.test('Promise subclassing', assert => {\n  function SubPromise(executor) {\n    const self = new Promise(executor);\n    setPrototypeOf(self, SubPromise.prototype);\n    // eslint-disable-next-line es/no-nonstandard-promise-prototype-properties -- safe\n    self.mine = 'subclass';\n    return self;\n  }\n  setPrototypeOf(SubPromise, Promise);\n  SubPromise.prototype = create(Promise.prototype);\n  SubPromise.prototype.constructor = SubPromise;\n  let promise1 = SubPromise.resolve(5);\n  assert.same(promise1.mine, 'subclass');\n  promise1 = promise1.then(it => {\n    assert.same(it, 5);\n  });\n  assert.same(promise1.mine, 'subclass');\n  let promise2 = new SubPromise(resolve => {\n    resolve(6);\n  });\n  assert.same(promise2.mine, 'subclass');\n  promise2 = promise2.then(it => {\n    assert.same(it, 6);\n  });\n  assert.same(promise2.mine, 'subclass');\n  const promise3 = SubPromise.all([promise1, promise2]);\n  assert.same(promise3.mine, 'subclass');\n  assert.true(promise3 instanceof Promise);\n  assert.true(promise3 instanceof SubPromise);\n  promise3.then(assert.async(), error => {\n    assert.avoid(error);\n  });\n});\n\n// qunit@2.5 strange bug\nQUnit.skip('Unhandled rejection tracking', assert => {\n  let done = false;\n  const resume = assert.async();\n  if (GLOBAL.process) {\n    assert.expect(3);\n    function onunhandledrejection(reason, promise) {\n      process.removeListener('unhandledRejection', onunhandledrejection);\n      assert.same(promise, $promise, 'unhandledRejection, promise');\n      assert.same(reason, 42, 'unhandledRejection, reason');\n      $promise.catch(() => {\n        // empty\n      });\n    }\n    function onrejectionhandled(promise) {\n      process.removeListener('rejectionHandled', onrejectionhandled);\n      assert.same(promise, $promise, 'rejectionHandled, promise');\n      done || resume();\n      done = true;\n    }\n    process.on('unhandledRejection', onunhandledrejection);\n    process.on('rejectionHandled', onrejectionhandled);\n  } else {\n    if (GLOBAL.addEventListener) {\n      assert.expect(8);\n      function onunhandledrejection(it) {\n        assert.same(it.promise, $promise, 'addEventListener(unhandledrejection), promise');\n        assert.same(it.reason, 42, 'addEventListener(unhandledrejection), reason');\n        GLOBAL.removeEventListener('unhandledrejection', onunhandledrejection);\n      }\n      GLOBAL.addEventListener('unhandledrejection', onunhandledrejection);\n      function onrejectionhandled(it) {\n        assert.same(it.promise, $promise, 'addEventListener(rejectionhandled), promise');\n        assert.same(it.reason, 42, 'addEventListener(rejectionhandled), reason');\n        GLOBAL.removeEventListener('rejectionhandled', onrejectionhandled);\n      }\n      GLOBAL.addEventListener('rejectionhandled', onrejectionhandled);\n    } else assert.expect(4);\n    GLOBAL.onunhandledrejection = function (it) {\n      assert.same(it.promise, $promise, 'onunhandledrejection, promise');\n      assert.same(it.reason, 42, 'onunhandledrejection, reason');\n      setTimeout(() => {\n        $promise.catch(() => {\n          // empty\n        });\n      }, 1);\n      GLOBAL.onunhandledrejection = null;\n    };\n    GLOBAL.onrejectionhandled = function (it) {\n      assert.same(it.promise, $promise, 'onrejectionhandled, promise');\n      assert.same(it.reason, 42, 'onrejectionhandled, reason');\n      GLOBAL.onrejectionhandled = null;\n      done || resume();\n      done = true;\n    };\n  }\n  Promise.reject(43).catch(() => {\n    // empty\n  });\n  const $promise = Promise.reject(42);\n  setTimeout(() => {\n    done || resume();\n    done = true;\n  }, 3e3);\n});\n\nconst promise = (() => {\n  try {\n    return Function('return (async function () { /* empty */ })()')();\n  } catch { /* empty */ }\n})();\n\nif (promise) QUnit.test('Native Promise, maybe patched', assert => {\n  assert.isFunction(promise.then);\n  assert.arity(promise.then, 2);\n  assert.looksNative(promise.then);\n  assert.nonEnumerable(promise.constructor.prototype, 'then');\n  function empty() { /* empty */ }\n  assert.true(promise.then(empty) instanceof Promise, '`.then` returns `Promise` instance #1');\n  assert.true(new promise.constructor(empty).then(empty) instanceof Promise, '`.then` returns `Promise` instance #2');\n  assert.true(promise.catch(empty) instanceof Promise, '`.catch` returns `Promise` instance #1');\n  assert.true(new promise.constructor(empty).catch(empty) instanceof Promise, '`.catch` returns `Promise` instance #2');\n  assert.true(promise.finally(empty) instanceof Promise, '`.finally` returns `Promise` instance #1');\n  assert.true(new promise.constructor(empty).finally(empty) instanceof Promise, '`.finally` returns `Promise` instance #2');\n});\n"
  },
  {
    "path": "tests/unit-global/es.promise.finally.js",
    "content": "QUnit.test('Promise#finally', assert => {\n  assert.isFunction(Promise.prototype.finally);\n  assert.arity(Promise.prototype.finally, 1);\n  assert.looksNative(Promise.prototype.finally);\n  assert.nonEnumerable(Promise.prototype, 'finally');\n  assert.true(Promise.resolve(42).finally(() => { /* empty */ }) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise#finally, resolved', assert => {\n  let called = 0;\n  let argument = null;\n  return Promise.resolve(42).finally(it => {\n    called++;\n    argument = it;\n  }).then(it => {\n    assert.same(it, 42, 'resolved with a correct value');\n    assert.same(called, 1, 'onFinally function called one time');\n    assert.same(argument, undefined, 'onFinally function called with a correct argument');\n  });\n});\n\nQUnit.test('Promise#finally, rejected', assert => {\n  let called = 0;\n  let argument = null;\n  return Promise.reject(42).finally(it => {\n    called++;\n    argument = it;\n  }).then(() => {\n    assert.avoid();\n  }, () => {\n    assert.same(called, 1, 'onFinally function called one time');\n    assert.same(argument, undefined, 'onFinally function called with a correct argument');\n  });\n});\n\nconst promise = (() => {\n  try {\n    return Function('return (async function () { /* empty */ })()')();\n  } catch { /* empty */ }\n})();\n\nif (promise && promise.constructor !== Promise) QUnit.test('Native Promise, patched', assert => {\n  assert.isFunction(promise.finally);\n  assert.arity(promise.finally, 1);\n  assert.looksNative(promise.finally);\n  assert.nonEnumerable(promise.constructor.prototype, 'finally');\n  function empty() { /* empty */ }\n  assert.true(promise.finally(empty) instanceof Promise, '`.finally` returns `Promise` instance #1');\n  assert.true(new promise.constructor(empty).finally(empty) instanceof Promise, '`.finally` returns `Promise` instance #2');\n});\n\n"
  },
  {
    "path": "tests/unit-global/es.promise.race.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Promise.race', assert => {\n  const { race } = Promise;\n  assert.isFunction(race);\n  assert.arity(race, 1);\n  assert.name(race, 'race');\n  assert.looksNative(race);\n  assert.nonEnumerable(Promise, 'race');\n  assert.true(Promise.race([]) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise.race, resolved', assert => {\n  return Promise.race([\n    Promise.resolve(1),\n    Promise.resolve(2),\n  ]).then(it => {\n    assert.same(it, 1, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.race, resolved with rejection', assert => {\n  return Promise.race([\n    Promise.reject(1),\n    Promise.resolve(2),\n  ]).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 1, 'rejected with a correct value');\n  });\n});\n\nQUnit.test('Promise.race, resolved with timeouts', assert => {\n  return Promise.race([\n    new Promise(resolve => setTimeout(() => resolve(1), 50)),\n    Promise.resolve(2),\n  ]).then(it => {\n    assert.same(it, 2, 'keeps correct mapping, even with delays');\n  });\n});\n\nQUnit.test('Promise.race, subclassing', assert => {\n  const { race, resolve } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  SubPromise.resolve = resolve.bind(Promise);\n  assert.true(race.call(SubPromise, [1, 2, 3]) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = resolve.bind(Promise);\n  assert.throws(() => {\n    race.call(FakePromise1, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    race.call(FakePromise2, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    race.call(FakePromise3, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.race, iterables', assert => {\n  const iterable = createIterable([1, 2, 3]);\n  Promise.race(iterable).catch(() => { /* empty */ });\n  assert.true(iterable.received, 'works with iterables: iterator received');\n  assert.true(iterable.called, 'works with iterables: next called');\n});\n\nQUnit.test('Promise.race, iterables 2', assert => {\n  const array = [];\n  let done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return [][Symbol.iterator].call(this);\n  };\n  Promise.race(array);\n  assert.true(done);\n});\n\nQUnit.test('Promise.race, iterator closing', assert => {\n  const { resolve } = Promise;\n  let done = false;\n  try {\n    Promise.resolve = function () {\n      throw new Error();\n    };\n    Promise.race(createIterable([1, 2, 3], {\n      return() {\n        done = true;\n      },\n    })).catch(() => { /* empty */ });\n  } catch { /* empty */ }\n  Promise.resolve = resolve;\n  assert.true(done, 'iteration closing');\n});\n\nQUnit.test('Promise.race, without constructor context', assert => {\n  const { race } = Promise;\n  assert.throws(() => race([]), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => race.call(null, []), TypeError, 'Throws if called with null as this');\n});\n"
  },
  {
    "path": "tests/unit-global/es.promise.reject.js",
    "content": "import { NATIVE } from '../helpers/constants.js';\n\nQUnit.test('Promise.reject', assert => {\n  const { reject } = Promise;\n  assert.isFunction(reject);\n  if (NATIVE) assert.arity(reject, 1);\n  assert.name(reject, 'reject');\n  assert.looksNative(reject);\n  assert.nonEnumerable(Promise, 'reject');\n});\n\nQUnit.test('Promise.reject, rejects with value', assert => {\n  return Promise.reject(42)\n    .then(() => {\n      assert.avoid('Should not resolve');\n    }, error => {\n      assert.same(error, 42, 'rejected with correct reason');\n    });\n});\n\nQUnit.test('Promise.reject, rejects with undefined', assert => {\n  return Promise.reject()\n    .then(() => {\n      assert.avoid('Should not resolve');\n    }, error => {\n      assert.same(error, undefined, 'rejected with correct reason');\n    });\n});\n\nQUnit.test('Promise.reject, subclassing', assert => {\n  const { reject } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  assert.true(reject.call(SubPromise, 42) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  assert.throws(() => {\n    reject.call(FakePromise1, 42);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    reject.call(FakePromise2, 42);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    reject.call(FakePromise3, 42);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.reject, without constructor context', assert => {\n  const { reject } = Promise;\n  assert.throws(() => reject(''), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => reject.call(null, ''), TypeError, 'Throws if called with null as this');\n});\n"
  },
  {
    "path": "tests/unit-global/es.promise.resolve.js",
    "content": "QUnit.test('Promise.resolve', assert => {\n  const { resolve } = Promise;\n  assert.isFunction(resolve);\n  assert.arity(resolve, 1);\n  assert.name(resolve, 'resolve');\n  assert.looksNative(resolve);\n  assert.nonEnumerable(Promise, 'resolve');\n  assert.true(Promise.resolve(42) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise.resolve, resolves with value', assert => {\n  return Promise.resolve(42).then(result => {\n    assert.same(result, 42, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.resolve, resolves with thenable', assert => {\n  const thenable = {\n    // eslint-disable-next-line unicorn/no-thenable -- safe\n    then(resolve) { resolve('foo'); },\n  };\n  return Promise.resolve(thenable).then(result => {\n    assert.same(result, 'foo', 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.resolve, returns input if input is already promise', assert => {\n  const p = Promise.resolve('ok');\n  assert.same(Promise.resolve(p), p, 'resolved with a correct value');\n});\n\nQUnit.test('Promise.resolve, resolves with undefined', assert => {\n  return Promise.resolve().then(result => {\n    assert.same(result, undefined, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.resolve, subclassing', assert => {\n  const { resolve } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  SubPromise[Symbol.species] = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  assert.true(resolve.call(SubPromise, 42) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  assert.throws(() => {\n    resolve.call(FakePromise1, 42);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    resolve.call(FakePromise2, 42);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    resolve.call(FakePromise3, 42);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.resolve, without constructor context', assert => {\n  const { resolve } = Promise;\n  assert.throws(() => resolve(''), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => resolve.call(null, ''), TypeError, 'Throws if called with null as this');\n});\n"
  },
  {
    "path": "tests/unit-global/es.promise.try.js",
    "content": "QUnit.test('Promise.try', assert => {\n  assert.isFunction(Promise.try);\n  assert.arity(Promise.try, 1);\n  assert.looksNative(Promise.try);\n  assert.nonEnumerable(Promise, 'try');\n  assert.true(Promise.try(() => 42) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise.try, resolved', assert => {\n  return Promise.try(() => 42).then(it => {\n    assert.same(it, 42, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.try, resolved, with args', assert => {\n  return Promise.try((a, b) => Promise.resolve(a + b), 1, 2).then(it => {\n    assert.same(it, 3, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.try, rejected', assert => {\n  return Promise.try(() => {\n    throw new Error();\n  }).then(() => {\n    assert.avoid();\n  }, () => {\n    assert.required('rejected as expected');\n  });\n});\n\nQUnit.test('Promise.try, subclassing', assert => {\n  const { try: promiseTry, resolve } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  SubPromise.resolve = resolve.bind(Promise);\n  assert.true(promiseTry.call(SubPromise, () => 42) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = resolve.bind(Promise);\n  assert.throws(() => {\n    promiseTry.call(FakePromise1, () => 42);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    promiseTry.call(FakePromise2, () => 42);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    promiseTry.call(FakePromise3, () => 42);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.try, without constructor context', assert => {\n  const { try: promiseTry } = Promise;\n  assert.throws(() => promiseTry(() => 42), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => promiseTry.call(null, () => 42), TypeError, 'Throws if called with null as this');\n});\n"
  },
  {
    "path": "tests/unit-global/es.promise.with-resolvers.js",
    "content": "const { getPrototypeOf } = Object;\n\nQUnit.test('Promise.withResolvers', assert => {\n  const { withResolvers } = Promise;\n  assert.isFunction(withResolvers);\n  assert.arity(withResolvers, 0);\n  assert.name(withResolvers, 'withResolvers');\n  assert.nonEnumerable(Promise, 'withResolvers');\n  assert.looksNative(withResolvers);\n\n  const d1 = Promise.withResolvers();\n  assert.same(getPrototypeOf(d1), Object.prototype, 'proto is Object.prototype');\n  assert.true(d1.promise instanceof Promise, 'promise is promise');\n  assert.isFunction(d1.resolve, 'resolve is function');\n  assert.isFunction(d1.reject, 'reject is function');\n\n  const promise = {};\n  const resolve = () => { /* empty */ };\n  let reject = () => { /* empty */ };\n\n  function P(exec) {\n    exec(resolve, reject);\n    return promise;\n  }\n\n  const d2 = withResolvers.call(P);\n  assert.same(d2.promise, promise, 'promise is promise #2');\n  assert.same(d2.resolve, resolve, 'resolve is resolve #2');\n  assert.same(d2.reject, reject, 'reject is reject #2');\n\n  reject = {};\n\n  assert.throws(() => withResolvers.call(P), TypeError, 'broken resolver');\n  assert.throws(() => withResolvers.call({}), TypeError, 'broken constructor #1');\n  assert.throws(() => withResolvers.call(null), TypeError, 'broken constructor #2');\n});\n\nQUnit.test('Promise.withResolvers, resolve', assert => {\n  const d = Promise.withResolvers();\n  d.resolve(42);\n  return d.promise.then(it => {\n    assert.same(it, 42, 'resolved as expected');\n  }, () => {\n    assert.avoid();\n  });\n});\n\nQUnit.test('Promise.withResolvers, reject', assert => {\n  const d = Promise.withResolvers();\n  d.reject(42);\n  return d.promise.then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejected as expected');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/es.reflect.apply.js",
    "content": "QUnit.test('Reflect.apply', assert => {\n  const { apply } = Reflect;\n  assert.isFunction(apply);\n  assert.arity(apply, 3);\n  assert.name(apply, 'apply');\n  assert.looksNative(apply);\n  assert.nonEnumerable(Reflect, 'apply');\n  assert.same(apply(Array.prototype.push, [1, 2], [3, 4, 5]), 5);\n  function f(a, b, c) {\n    return a + b + c;\n  }\n  f.apply = 42;\n  assert.same(apply(f, null, ['foo', 'bar', 'baz']), 'foobarbaz', 'works with redefined apply');\n  assert.throws(() => apply(42, null, []), TypeError, 'throws on primitive');\n  assert.throws(() => apply(() => { /* empty */ }, null), TypeError, 'throws without third argument');\n  assert.throws(() => apply(() => { /* empty */ }, null, '123'), TypeError, 'throws on primitive as third argument');\n});\n"
  },
  {
    "path": "tests/unit-global/es.reflect.construct.js",
    "content": "QUnit.test('Reflect.construct', assert => {\n  const { construct } = Reflect;\n  const { getPrototypeOf } = Object;\n  assert.isFunction(construct);\n  assert.arity(construct, 2);\n  assert.name(construct, 'construct');\n  assert.looksNative(construct);\n  assert.nonEnumerable(Reflect, 'construct');\n  function A(a, b, c) {\n    this.qux = a + b + c;\n  }\n  assert.same(construct(A, ['foo', 'bar', 'baz']).qux, 'foobarbaz', 'basic');\n  A.apply = 42;\n  assert.same(construct(A, ['foo', 'bar', 'baz']).qux, 'foobarbaz', 'works with redefined apply');\n  const instance = construct(function () {\n    this.x = 42;\n  }, [], Array);\n  assert.same(instance.x, 42, 'constructor with newTarget');\n  assert.true(instance instanceof Array, 'prototype with newTarget');\n  assert.throws(() => construct(42, []), TypeError, 'throws on primitive');\n  function B() { /* empty */ }\n  B.prototype = 42;\n  assert.notThrows(() => getPrototypeOf(construct(B, [])) === Object.prototype);\n  assert.notThrows(() => typeof construct(Date, []).getTime() == 'number', 'works with native constructors with 2 arguments');\n  // eslint-disable-next-line prefer-arrow-callback -- testing\n  assert.throws(() => construct(function () { /* empty */ }), TypeError, 'throws when the second argument is not an object');\n});\n\n"
  },
  {
    "path": "tests/unit-global/es.reflect.define-property.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Reflect.defineProperty', assert => {\n  const { defineProperty } = Reflect;\n  const { getOwnPropertyDescriptor, create } = Object;\n  assert.isFunction(defineProperty);\n  assert.arity(defineProperty, 3);\n  assert.name(defineProperty, 'defineProperty');\n  assert.looksNative(defineProperty);\n  assert.nonEnumerable(Reflect, 'defineProperty');\n  let object = {};\n  assert.true(defineProperty(object, 'foo', { value: 123 }));\n  assert.same(object.foo, 123);\n  if (DESCRIPTORS) {\n    object = {};\n    defineProperty(object, 'foo', {\n      value: 123,\n      enumerable: true,\n    });\n    assert.deepEqual(getOwnPropertyDescriptor(object, 'foo'), {\n      value: 123,\n      enumerable: true,\n      configurable: false,\n      writable: false,\n    });\n    assert.false(defineProperty(object, 'foo', {\n      value: 42,\n    }));\n  }\n  assert.throws(() => defineProperty(42, 'foo', {\n    value: 42,\n  }), TypeError, 'throws on primitive');\n  assert.throws(() => defineProperty(42, 1, {}));\n  assert.throws(() => defineProperty({}, create(null), {}));\n  assert.throws(() => defineProperty({}, 1, 1));\n  // ToPropertyDescriptor errors should throw, not return false\n  assert.throws(() => defineProperty({}, 'a', { get: 42 }), TypeError, 'throws on non-callable getter');\n  assert.throws(() => defineProperty({}, 'a', { set: 'str' }), TypeError, 'throws on non-callable setter');\n  assert.throws(() => defineProperty({}, 'a', { get: null }), TypeError, 'throws on null getter');\n  assert.throws(() => defineProperty({}, 'a', { get: false }), TypeError, 'throws on false getter');\n  if (DESCRIPTORS) {\n    assert.throws(() => defineProperty({}, 'a', { get() { /* empty */ }, value: 1 }), TypeError, 'throws on mixed accessor/data descriptor');\n    assert.true(defineProperty({}, 'a', { get: undefined }), 'undefined getter is valid');\n  }\n});\n\nQUnit.test('Reflect.defineProperty.sham flag', assert => {\n  assert.same(Reflect.defineProperty.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-global/es.reflect.delete-property.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\nimport { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Reflect.deleteProperty', assert => {\n  const { deleteProperty } = Reflect;\n  const { defineProperty, keys } = Object;\n  assert.isFunction(deleteProperty);\n  assert.arity(deleteProperty, 2);\n  assert.name(deleteProperty, 'deleteProperty');\n  assert.looksNative(deleteProperty);\n  assert.nonEnumerable(Reflect, 'deleteProperty');\n  const object = { bar: 456 };\n  assert.true(deleteProperty(object, 'bar'));\n  assert.same(keys(object).length, 0);\n  if (DESCRIPTORS) {\n    assert.false(deleteProperty(defineProperty({}, 'foo', {\n      value: 42,\n    }), 'foo'));\n  }\n  assert.throws(() => deleteProperty(42, 'foo'), TypeError, 'throws on primitive');\n\n  // ToPropertyKey should be called exactly once\n  const keyObj = createConversionChecker(1, 'bar');\n  deleteProperty({ bar: 1 }, keyObj);\n  assert.same(keyObj.$valueOf, 0, 'ToPropertyKey called once in Reflect.deleteProperty, #1');\n  assert.same(keyObj.$toString, 1, 'ToPropertyKey called once in Reflect.deleteProperty, #2');\n\n  // argument order: target should be validated before ToPropertyKey\n  const orderChecker = createConversionChecker(1, 'qux');\n  assert.throws(() => deleteProperty(42, orderChecker), TypeError, 'throws on primitive before ToPropertyKey');\n  assert.same(orderChecker.$toString, 0, 'ToPropertyKey not called before target validation in Reflect.deleteProperty');\n});\n"
  },
  {
    "path": "tests/unit-global/es.reflect.get-own-property-descriptor.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Reflect.getOwnPropertyDescriptor', assert => {\n  const { getOwnPropertyDescriptor } = Reflect;\n  assert.isFunction(getOwnPropertyDescriptor);\n  assert.arity(getOwnPropertyDescriptor, 2);\n  assert.name(getOwnPropertyDescriptor, 'getOwnPropertyDescriptor');\n  assert.looksNative(getOwnPropertyDescriptor);\n  assert.nonEnumerable(Reflect, 'getOwnPropertyDescriptor');\n  const object = { baz: 789 };\n  const descriptor = getOwnPropertyDescriptor(object, 'baz');\n  assert.same(descriptor.value, 789);\n  assert.throws(() => getOwnPropertyDescriptor(42, 'constructor'), TypeError, 'throws on primitive');\n});\n\nQUnit.test('Reflect.getOwnPropertyDescriptor.sham flag', assert => {\n  assert.same(Reflect.getOwnPropertyDescriptor.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-global/es.reflect.get-prototype-of.js",
    "content": "import { CORRECT_PROTOTYPE_GETTER } from '../helpers/constants.js';\n\nQUnit.test('Reflect.getPrototypeOf', assert => {\n  const { getPrototypeOf } = Reflect;\n  assert.isFunction(getPrototypeOf);\n  assert.arity(getPrototypeOf, 1);\n  assert.name(getPrototypeOf, 'getPrototypeOf');\n  assert.looksNative(getPrototypeOf);\n  assert.nonEnumerable(Reflect, 'getPrototypeOf');\n  assert.same(getPrototypeOf([]), Array.prototype);\n  assert.throws(() => getPrototypeOf(42), TypeError, 'throws on primitive');\n});\n\nQUnit.test('Reflect.getPrototypeOf.sham flag', assert => {\n  assert.same(Reflect.getPrototypeOf.sham, CORRECT_PROTOTYPE_GETTER ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-global/es.reflect.get.js",
    "content": "import { DESCRIPTORS, NATIVE } from '../helpers/constants.js';\nimport { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Reflect.get', assert => {\n  const { defineProperty, create } = Object;\n  const { get } = Reflect;\n  assert.isFunction(get);\n  if (NATIVE) assert.arity(get, 2);\n  assert.name(get, 'get');\n  assert.looksNative(get);\n  assert.nonEnumerable(Reflect, 'get');\n  assert.same(get({ qux: 987 }, 'qux'), 987);\n  if (DESCRIPTORS) {\n    const target = create(defineProperty({ z: 3 }, 'w', {\n      get() {\n        return this;\n      },\n    }), {\n      x: {\n        value: 1,\n      },\n      y: {\n        get() {\n          return this;\n        },\n      },\n    });\n    const receiver = {};\n    assert.same(get(target, 'x', receiver), 1, 'get x');\n    assert.same(get(target, 'y', receiver), receiver, 'get y');\n    assert.same(get(target, 'z', receiver), 3, 'get z');\n    assert.same(get(target, 'w', receiver), receiver, 'get w');\n    assert.same(get(target, 'u', receiver), undefined, 'get u');\n\n    // ToPropertyKey should be called exactly once even with prototype chain traversal\n    const keyObj = createConversionChecker(1, 'x');\n    get(create({ x: 42 }), keyObj, {});\n    assert.same(keyObj.$valueOf, 0, 'ToPropertyKey called once in Reflect.get, #1');\n    assert.same(keyObj.$toString, 1, 'ToPropertyKey called once in Reflect.get, #2');\n  }\n  assert.throws(() => get(42, 'constructor'), TypeError, 'throws on primitive');\n\n  // argument order: target should be validated before ToPropertyKey\n  const orderChecker = createConversionChecker(1, 'qux');\n  assert.throws(() => get(42, orderChecker), TypeError, 'throws on primitive before ToPropertyKey');\n  assert.same(orderChecker.$toString, 0, 'ToPropertyKey not called before target validation in Reflect.get');\n});\n\n"
  },
  {
    "path": "tests/unit-global/es.reflect.has.js",
    "content": "QUnit.test('Reflect.has', assert => {\n  const { has } = Reflect;\n  assert.isFunction(has);\n  assert.arity(has, 2);\n  assert.name(has, 'has');\n  assert.looksNative(has);\n  assert.nonEnumerable(Reflect, 'has');\n  const object = { qux: 987 };\n  assert.true(has(object, 'qux'));\n  assert.false(has(object, 'qwe'));\n  assert.true(has(object, 'toString'));\n  assert.throws(() => has(42, 'constructor'), TypeError, 'throws on primitive');\n});\n"
  },
  {
    "path": "tests/unit-global/es.reflect.is-extensible.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Reflect.isExtensible', assert => {\n  const { isExtensible } = Reflect;\n  const { preventExtensions } = Object;\n  assert.isFunction(isExtensible);\n  assert.arity(isExtensible, 1);\n  assert.name(isExtensible, 'isExtensible');\n  assert.looksNative(isExtensible);\n  assert.nonEnumerable(Reflect, 'isExtensible');\n  assert.true(isExtensible({}));\n  if (DESCRIPTORS) {\n    assert.false(isExtensible(preventExtensions({})));\n  }\n  assert.throws(() => isExtensible(42), TypeError, 'throws on primitive');\n});\n\n"
  },
  {
    "path": "tests/unit-global/es.reflect.own-keys.js",
    "content": "import { includes } from '../helpers/helpers.js';\n\nQUnit.test('Reflect.ownKeys', assert => {\n  const { ownKeys } = Reflect;\n  const { defineProperty, create } = Object;\n  const symbol = Symbol('c');\n  assert.isFunction(ownKeys);\n  assert.arity(ownKeys, 1);\n  assert.name(ownKeys, 'ownKeys');\n  assert.looksNative(ownKeys);\n  assert.nonEnumerable(Reflect, 'ownKeys');\n  const object = { a: 1 };\n  defineProperty(object, 'b', {\n    value: 2,\n  });\n  object[symbol] = 3;\n  let keys = ownKeys(object);\n  assert.same(keys.length, 3, 'ownKeys return all own keys');\n  assert.true(includes(keys, 'a'), 'ownKeys return all own keys: simple');\n  assert.true(includes(keys, 'b'), 'ownKeys return all own keys: hidden');\n  assert.same(object[keys[2]], 3, 'ownKeys return all own keys: symbol');\n  keys = ownKeys(create(object));\n  assert.same(keys.length, 0, 'ownKeys return only own keys');\n  assert.throws(() => ownKeys(42), TypeError, 'throws on primitive');\n});\n"
  },
  {
    "path": "tests/unit-global/es.reflect.prevent-extensions.js",
    "content": "import { DESCRIPTORS, FREEZING } from '../helpers/constants.js';\n\nQUnit.test('Reflect.preventExtensions', assert => {\n  const { preventExtensions } = Reflect;\n  const { isExtensible } = Object;\n  assert.isFunction(preventExtensions);\n  assert.arity(preventExtensions, 1);\n  assert.name(preventExtensions, 'preventExtensions');\n  assert.looksNative(preventExtensions);\n  assert.nonEnumerable(Reflect, 'preventExtensions');\n  const object = {};\n  assert.true(preventExtensions(object));\n  if (DESCRIPTORS) {\n    assert.false(isExtensible(object));\n  }\n  assert.throws(() => preventExtensions(42), TypeError, 'throws on primitive');\n});\n\nQUnit.test('Reflect.preventExtensions.sham flag', assert => {\n  assert.same(Reflect.preventExtensions.sham, FREEZING ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-global/es.reflect.set-prototype-of.js",
    "content": "import { NATIVE, PROTO } from '../helpers/constants.js';\n\nif (PROTO) QUnit.test('Reflect.setPrototypeOf', assert => {\n  const { setPrototypeOf } = Reflect;\n  assert.isFunction(setPrototypeOf);\n  if (NATIVE) assert.arity(setPrototypeOf, 2);\n  assert.name(setPrototypeOf, 'setPrototypeOf');\n  assert.looksNative(setPrototypeOf);\n  assert.nonEnumerable(Reflect, 'setPrototypeOf');\n  let object = {};\n  assert.true(setPrototypeOf(object, Array.prototype));\n  assert.true(object instanceof Array);\n  assert.throws(() => setPrototypeOf({}, 42), TypeError);\n  assert.throws(() => setPrototypeOf(42, {}), TypeError, 'throws on primitive');\n  object = {};\n  assert.false(setPrototypeOf(object, object), 'false on recursive __proto__');\n});\n"
  },
  {
    "path": "tests/unit-global/es.reflect.set.js",
    "content": "import { DESCRIPTORS, FREEZING, NATIVE } from '../helpers/constants.js';\nimport { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Reflect.set', assert => {\n  const { set } = Reflect;\n  const { defineProperty, getOwnPropertyDescriptor, create, getPrototypeOf } = Object;\n  assert.isFunction(set);\n  if (NATIVE) assert.arity(set, 3);\n  assert.name(set, 'set');\n  assert.looksNative(set);\n  assert.nonEnumerable(Reflect, 'set');\n  const object = {};\n  assert.true(set(object, 'quux', 654));\n  assert.same(object.quux, 654);\n  let target = {};\n  const receiver = {};\n  set(target, 'foo', 1, receiver);\n  assert.same(target.foo, undefined, 'target.foo === undefined');\n  assert.same(receiver.foo, 1, 'receiver.foo === 1');\n  if (DESCRIPTORS) {\n    defineProperty(receiver, 'bar', {\n      value: 0,\n      writable: true,\n      enumerable: false,\n      configurable: true,\n    });\n    set(target, 'bar', 1, receiver);\n    assert.same(receiver.bar, 1, 'receiver.bar === 1');\n    assert.false(getOwnPropertyDescriptor(receiver, 'bar').enumerable, 'enumerability not overridden');\n    let out;\n    target = create(defineProperty({ z: 3 }, 'w', {\n      set() {\n        out = this;\n      },\n    }), {\n      x: {\n        value: 1,\n        writable: true,\n        configurable: true,\n      },\n      y: {\n        set() {\n          out = this;\n        },\n      },\n      c: {\n        value: 1,\n        writable: false,\n        configurable: false,\n      },\n    });\n    assert.true(set(target, 'x', 2, target), 'set x');\n    assert.same(target.x, 2, 'set x');\n    out = null;\n    assert.true(set(target, 'y', 2, target), 'set y');\n    assert.same(out, target, 'set y');\n    assert.true(set(target, 'z', 4, target));\n    assert.same(target.z, 4, 'set z');\n    out = null;\n    assert.true(set(target, 'w', 1, target), 'set w');\n    assert.same(out, target, 'set w');\n    assert.true(set(target, 'u', 0, target), 'set u');\n    assert.same(target.u, 0, 'set u');\n    assert.false(set(target, 'c', 2, target), 'set c');\n    assert.same(target.c, 1, 'set c');\n\n    // https://github.com/zloirock/core-js/issues/392\n    let o = defineProperty({}, 'test', {\n      writable: false,\n      configurable: true,\n    });\n    assert.false(set(getPrototypeOf(o), 'test', 1, o));\n\n    // https://github.com/zloirock/core-js/issues/393\n    o = defineProperty({}, 'test', {\n      get() { /* empty */ },\n    });\n    assert.notThrows(() => !set(getPrototypeOf(o), 'test', 1, o));\n    o = defineProperty({}, 'test', {\n      // eslint-disable-next-line no-unused-vars -- required for testing\n      set(v) { /* empty */ },\n    });\n    assert.notThrows(() => !set(getPrototypeOf(o), 'test', 1, o));\n\n    // accessor descriptor with get: undefined, set: undefined on receiver should return false\n    const accessorReceiver = {};\n    defineProperty(accessorReceiver, 'prop', { get: undefined, set: undefined, configurable: true });\n    const accessorTarget = defineProperty({}, 'prop', { value: 1, writable: true, configurable: true });\n    assert.false(set(accessorTarget, 'prop', 2, accessorReceiver), 'accessor descriptor on receiver with undefined get/set');\n\n    // ToPropertyKey should be called exactly once\n    const keyObj = createConversionChecker(1, 'x');\n    set(create({ x: 42 }), keyObj, 1);\n    assert.same(keyObj.$valueOf, 0, 'ToPropertyKey called once in Reflect.set, #1');\n    assert.same(keyObj.$toString, 1, 'ToPropertyKey called once in Reflect.set, #2');\n  }\n\n  assert.throws(() => set(42, 'q', 42), TypeError, 'throws on primitive');\n\n  // Reflect.set should pass only { value: V } to [[DefineOwnProperty]] when updating existing data property\n  if (DESCRIPTORS) {\n    const obj = defineProperty({}, 'x', { value: 1, writable: true, enumerable: true, configurable: true });\n    assert.true(set(obj, 'x', 42), 'set existing writable property');\n    const desc = getOwnPropertyDescriptor(obj, 'x');\n    assert.same(desc.value, 42, 'value updated');\n    assert.true(desc.writable, 'writable preserved');\n    assert.true(desc.enumerable, 'enumerable preserved');\n    assert.true(desc.configurable, 'configurable preserved');\n  }\n\n  // argument order: target should be validated before ToPropertyKey\n  const orderChecker = createConversionChecker(1, 'qux');\n  assert.throws(() => set(42, orderChecker, 1), TypeError, 'throws on primitive before ToPropertyKey');\n\n  // non-extensible receiver should return false, not throw\n  if (FREEZING) {\n    assert.false(set({}, 'x', 42, Object.freeze({})), 'frozen empty receiver returns false');\n    assert.false(set({}, 'x', 42, Object.preventExtensions({})), 'non-extensible receiver returns false');\n    assert.false(set({}, 'x', 42, Object.seal({})), 'sealed empty receiver returns false');\n  }\n\n  assert.same(orderChecker.$toString, 0, 'ToPropertyKey not called before target validation in Reflect.set');\n});\n"
  },
  {
    "path": "tests/unit-global/es.reflect.to-string-tag.js",
    "content": "QUnit.test('Reflect[@@toStringTag]', assert => {\n  assert.same(Reflect[Symbol.toStringTag], 'Reflect', 'Reflect[@@toStringTag] is `Reflect`');\n});\n"
  },
  {
    "path": "tests/unit-global/es.regexp.constructor.js",
    "content": "/* eslint-disable prefer-regex-literals, regexp/no-invalid-regexp, regexp/sort-flags -- required for testing */\n/* eslint-disable regexp/no-useless-assertions, regexp/no-useless-character-class, regexp/no-useless-flag -- required for testing */\nimport { DESCRIPTORS, GLOBAL } from '../helpers/constants.js';\nimport { nativeSubclass } from '../helpers/helpers.js';\n\nconst { getPrototypeOf } = Object;\n\nif (DESCRIPTORS) {\n  QUnit.test('RegExp constructor', assert => {\n    const Symbol = GLOBAL.Symbol || {};\n    assert.isFunction(RegExp);\n    assert.arity(RegExp, 2);\n    assert.name(RegExp, 'RegExp');\n    assert.looksNative(RegExp);\n    assert.same({}.toString.call(RegExp()).slice(8, -1), 'RegExp');\n    assert.same({}.toString.call(new RegExp()).slice(8, -1), 'RegExp');\n    let regexp = /a/g;\n    assert.notSame(regexp, new RegExp(regexp), 'new RegExp(regexp) is not regexp');\n    assert.same(regexp, RegExp(regexp), 'RegExp(regexp) is regexp');\n    regexp[Symbol.match] = false;\n    assert.notSame(regexp, RegExp(regexp), 'RegExp(regexp) is not regexp, changed Symbol.match');\n    const object = {};\n    assert.notSame(object, RegExp(object), 'RegExp(O) is not O');\n    object[Symbol.match] = true;\n    object.constructor = RegExp;\n    assert.same(object, RegExp(object), 'RegExp(O) is O, changed Symbol.match');\n    assert.same(String(regexp), '/a/g', 'regexp is /a/g');\n    assert.same(String(new RegExp(/a/g, 'mi')), '/a/im', 'Allows a regex with flags');\n    assert.true(new RegExp(/a/g, 'im') instanceof RegExp, 'Works with instanceof');\n    assert.same(new RegExp(/a/g, 'im').constructor, RegExp, 'Has the right constructor');\n\n    const orig = /^https?:\\/\\//i;\n    regexp = new RegExp(orig);\n    assert.notSame(regexp, orig, 'new + re + no flags #1');\n    assert.same(String(regexp), '/^https?:\\\\/\\\\//i', 'new + re + no flags #2');\n    let result = regexp.exec('http://github.com');\n    assert.deepEqual(result, ['http://'], 'new + re + no flags #3');\n\n    /(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)/.exec('abcdefghijklmnopq');\n    result = true;\n    const characters = 'bcdefghij';\n    for (let i = 0, { length } = characters; i < length; ++i) {\n      const chr = characters[i];\n      if (RegExp[`$${ i + 1 }`] !== chr) {\n        result = false;\n      }\n    }\n    assert.true(result, 'Updates RegExp globals');\n    if (nativeSubclass) {\n      const Subclass = nativeSubclass(RegExp);\n      assert.true(new Subclass() instanceof Subclass, 'correct subclassing with native classes #1');\n      assert.true(new Subclass() instanceof RegExp, 'correct subclassing with native classes #2');\n      assert.true(new Subclass('^abc$').test('abc'), 'correct subclassing with native classes #3');\n    }\n\n    assert.throws(() => RegExp(Symbol(1)), 'throws on symbol argument');\n  });\n\n  QUnit.test('RegExp dotAll', assert => {\n    assert.false(RegExp('.', '').test('\\n'), 'dotAll missed');\n    assert.true(RegExp('.', 's').test('\\n'), 'dotAll basic');\n    assert.false(RegExp('[.]', 's').test('\\n'), 'dotAll brackets #1');\n    assert.false(RegExp('[.].', '').test('.\\n'), 'dotAll brackets #2');\n    assert.true(RegExp('[.].', 's').test('.\\n'), 'dotAll brackets #3');\n    assert.true(RegExp('[[].', 's').test('[\\n'), 'dotAll brackets #4');\n    assert.same(RegExp('.[.[].\\\\..', 's').source, '.[.[].\\\\..', 'dotAll correct source');\n\n    const string = '123\\n456789\\n012';\n    const re = RegExp('(\\\\d{3}).\\\\d{3}', 'sy');\n\n    let match = re.exec(string);\n    assert.same(match[1], '123', 's with y #1');\n    assert.same(re.lastIndex, 7, 's with y #2');\n\n    match = re.exec(string);\n    assert.same(match[1], '789', 's with y #3');\n    assert.same(re.lastIndex, 14, 's with y #4');\n\n    // dotAll combined with NCG - groups should be populated\n    const dotAllNCG = RegExp('(?<a>.).(?<b>.)', 's').exec('a\\nb');\n    assert.same(dotAllNCG?.groups?.a, 'a', 'dotAll + NCG groups #1');\n    assert.same(dotAllNCG?.groups?.b, 'b', 'dotAll + NCG groups #2');\n  });\n\n  QUnit.test('RegExp NCG', assert => {\n    assert.same(RegExp('(?<a>b)').exec('b').groups?.a, 'b', 'NCG #1');\n    // eslint-disable-next-line regexp/no-unused-capturing-group -- required for testing\n    assert.same(RegExp('(b)').exec('b').groups, undefined, 'NCG #2');\n    const { groups } = RegExp('foo:(?<foo>\\\\w+),bar:(?<bar>\\\\w+)').exec('foo:abc,bar:def');\n    assert.same(getPrototypeOf(groups), null, 'null prototype');\n    assert.deepEqual(groups, { foo: 'abc', bar: 'def' }, 'NCG #3');\n    // eslint-disable-next-line regexp/no-useless-non-capturing-group -- required for testing\n    const { groups: nonCaptured, length } = RegExp('foo:(?:value=(?<foo>\\\\w+)),bar:(?:value=(?<bar>\\\\w+))').exec('foo:value=abc,bar:value=def');\n    assert.deepEqual(nonCaptured, { foo: 'abc', bar: 'def' }, 'NCG #4');\n    assert.same(length, 3, 'incorrect number of matched entries #1');\n\n    // eslint-disable-next-line regexp/no-unused-capturing-group -- required for testing\n    const { groups: skipBar } = RegExp('foo:(?<foo>\\\\w+),bar:(\\\\w+),buz:(?<buz>\\\\w+)').exec('foo:abc,bar:def,buz:ghi');\n    assert.deepEqual(skipBar, { foo: 'abc', buz: 'ghi' }, 'NCG #5');\n\n    // fails in Safari\n    // assert.same(Object.getPrototypeOf(groups), null, 'NCG #4');\n    assert.same('foo:abc,bar:def'.replace(RegExp('foo:(?<foo>\\\\w+),bar:(?<bar>\\\\w+)'), '$<bar>,$<foo>'), 'def,abc', 'replace #1');\n    assert.same('foo:abc,bar:def'.replace(RegExp('foo:(?<foo>\\\\w+),bar:(?<bar>\\\\w+)'), (...args) => {\n      const { foo, bar } = args.pop();\n      return `${ bar },${ foo }`;\n    }), 'def,abc', 'replace #2');\n    assert.same('12345'.replaceAll(RegExp('(?<d>[2-4])', 'g'), '$<d>$<d>'), '12233445', 'replaceAll');\n    assert.throws(() => RegExp('(?<1a>b)'), SyntaxError, 'incorrect group name #1');\n    assert.throws(() => RegExp('(?<a#>b)'), SyntaxError, 'incorrect group name #2');\n    assert.throws(() => RegExp('(?< a >b)'), SyntaxError, 'incorrect group name #3');\n\n    // regression — lookahead / lookbehind assertions should not increment group counter\n    assert.same(RegExp('(?=b)(?<a>b)').exec('b').groups?.a, 'b', 'NCG with positive lookahead');\n    assert.same(RegExp('(?!c)(?<a>b)').exec('b').groups?.a, 'b', 'NCG with negative lookahead');\n    // prevent crash in ancient engines without lookbehind support\n    try {\n      assert.same(RegExp('(?<=a)(?<b>b)').exec('ab').groups?.b, 'b', 'NCG with positive lookbehind');\n      assert.same(RegExp('(?<!c)(?<a>b)').exec('ab').groups?.a, 'b', 'NCG with negative lookbehind');\n    } catch { /* empty */ }\n    // eslint-disable-next-line regexp/no-unused-capturing-group -- required for testing\n    assert.same(RegExp('(?=b)(b)(?<a>c)').exec('bc').groups?.a, 'c', 'NCG with lookahead and capturing group');\n\n    // named backreferences\n    assert.same(RegExp('(?<year>\\\\d{4})-\\\\k<year>').exec('2024-2024')?.[0], '2024-2024', 'NCG \\\\k backreference #1');\n    assert.same(RegExp('(?<year>\\\\d{4})-\\\\k<year>').exec('2024-2025'), null, 'NCG \\\\k backreference #2');\n    assert.same(RegExp('(?<a>.)(?<b>.)\\\\k<b>\\\\k<a>').exec('abba')?.[0], 'abba', 'NCG \\\\k multiple backreferences');\n\n    // escaped backslash before `k<name>` should not be treated as backreference\n    // eslint-disable-next-line regexp/no-unused-capturing-group -- required for testing\n    assert.same(RegExp('(?<a>x)\\\\\\\\k<a>').exec('x\\\\k<a>')?.[0], 'x\\\\k<a>', 'NCG \\\\\\\\k not confused with \\\\k backreference');\n    assert.same(RegExp('(?<a>x)\\\\\\\\\\\\k<a>').exec('x\\\\x')?.[0], 'x\\\\x', 'NCG escaped backslash before backreference');\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.regexp.dot-all.js",
    "content": "/* eslint-disable prefer-regex-literals -- required for testing */\nimport { DESCRIPTORS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) {\n  QUnit.test('RegExp#dotAll', assert => {\n    const re = RegExp('.', 's');\n    assert.true(re.dotAll, '.dotAll is true');\n    assert.same(re.flags, 's', '.flags contains s');\n    assert.false(RegExp('.').dotAll, 'no');\n    assert.false(/a/.dotAll, 'no in literal');\n\n    const dotAllGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'dotAll').get;\n    if (typeof dotAllGetter == 'function') {\n      assert.throws(() => {\n        dotAllGetter.call({});\n      }, undefined, '.dotAll getter can only be called on RegExp instances');\n      try {\n        dotAllGetter.call(/a/);\n        assert.required('.dotAll getter works on literals');\n      } catch {\n        assert.avoid('.dotAll getter works on literals');\n      }\n      try {\n        dotAllGetter.call(new RegExp('a'));\n        assert.required('.dotAll getter works on instances');\n      } catch {\n        assert.avoid('.dotAll getter works on instances');\n      }\n\n      assert.true(Object.hasOwn(RegExp.prototype, 'dotAll'), 'prototype has .dotAll property');\n    }\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.regexp.escape.js",
    "content": "/* eslint-disable @stylistic/max-len -- ok*/\nQUnit.test('RegExp.escape', assert => {\n  const { escape } = RegExp;\n  assert.isFunction(escape);\n  assert.arity(escape, 1);\n  assert.name(escape, 'escape');\n  assert.looksNative(escape);\n  assert.nonEnumerable(RegExp, 'escape');\n\n  assert.same(escape('10$'), '\\\\x310\\\\$', '10$');\n  assert.same(escape('abcdefg_123456'), '\\\\x61bcdefg_123456', 'abcdefg_123456');\n  assert.same(escape('Привет'), 'Привет', 'Привет');\n  assert.same(\n    escape('(){}[]|,.?*+-^$=<>\\\\/#&!%:;@~\\'\"`'),\n    '\\\\(\\\\)\\\\{\\\\}\\\\[\\\\]\\\\|\\\\x2c\\\\.\\\\?\\\\*\\\\+\\\\x2d\\\\^\\\\$\\\\x3d\\\\x3c\\\\x3e\\\\\\\\\\\\/\\\\x23\\\\x26\\\\x21\\\\x25\\\\x3a\\\\x3b\\\\x40\\\\x7e\\\\x27\\\\x22\\\\x60',\n    '(){}[]|,.?*+-^$=<>\\\\/#&!%:;@~\\'\"`',\n  );\n  assert.same(\n    escape('\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF'),\n    '\\\\t\\\\n\\\\v\\\\f\\\\r\\\\x20\\\\xa0\\\\u1680\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029\\\\ufeff',\n    'whitespaces and control',\n  );\n\n  assert.same(escape('💩'), '💩', '💩');\n  assert.same(escape('\\uD83D'), '\\\\ud83d', '\\\\ud83d');\n  assert.same(escape('\\uDCA9'), '\\\\udca9', '\\\\udca9');\n  assert.same(escape('\\uDCA9\\uD83D'), '\\\\udca9\\\\ud83d', '\\\\udca9\\\\ud83d');\n\n  assert.throws(() => escape(42), TypeError, 'throws on non-string #1');\n  assert.throws(() => escape({}), TypeError, 'throws on non-string #2');\n\n  // Test262\n  // Copyright 2024 Leo Balter. All rights reserved.\n  // This code is governed by the BSD license found in the https://github.com/tc39/test262/blob/main/LICENSE file.\n  assert.same(escape('\\u2028'), '\\\\u2028', 'line terminator \\\\u2028 is escaped correctly to \\\\\\\\u2028');\n  assert.same(escape('\\u2029'), '\\\\u2029', 'line terminator \\\\u2029 is escaped correctly to \\\\\\\\u2029');\n  assert.same(escape('\\u2028\\u2029'), '\\\\u2028\\\\u2029', 'line terminators are escaped correctly');\n  assert.same(escape('\\u2028a\\u2029a'), '\\\\u2028a\\\\u2029a', 'mixed line terminators are escaped correctly');\n\n  assert.same(escape('.a/b'), '\\\\.a\\\\/b', 'mixed string with solidus character is escaped correctly');\n  assert.same(escape('/./'), '\\\\/\\\\.\\\\/', 'solidus character is escaped correctly - regexp similar');\n  assert.same(escape('./a\\\\/*b+c?d^e$f|g{2}h[i]j\\\\k'), '\\\\.\\\\/a\\\\\\\\\\\\/\\\\*b\\\\+c\\\\?d\\\\^e\\\\$f\\\\|g\\\\{2\\\\}h\\\\[i\\\\]j\\\\\\\\k', 'complex string with multiple special characters is escaped correctly');\n\n  assert.same(escape('/'), '\\\\/', 'solidus character is escaped correctly');\n  assert.same(escape('//'), '\\\\/\\\\/', 'solidus character is escaped correctly - multiple occurrences 1');\n  assert.same(escape('///'), '\\\\/\\\\/\\\\/', 'solidus character is escaped correctly - multiple occurrences 2');\n  assert.same(escape('////'), '\\\\/\\\\/\\\\/\\\\/', 'solidus character is escaped correctly - multiple occurrences 3');\n\n  assert.same(escape('.'), '\\\\.', 'dot character is escaped correctly');\n  assert.same(escape('*'), '\\\\*', 'asterisk character is escaped correctly');\n  assert.same(escape('+'), '\\\\+', 'plus character is escaped correctly');\n  assert.same(escape('?'), '\\\\?', 'question mark character is escaped correctly');\n  assert.same(escape('^'), '\\\\^', 'caret character is escaped correctly');\n  assert.same(escape('$'), '\\\\$', 'dollar character is escaped correctly');\n  assert.same(escape('|'), '\\\\|', 'pipe character is escaped correctly');\n  assert.same(escape('('), '\\\\(', 'open parenthesis character is escaped correctly');\n  assert.same(escape(')'), '\\\\)', 'close parenthesis character is escaped correctly');\n  assert.same(escape('['), '\\\\[', 'open bracket character is escaped correctly');\n  assert.same(escape(']'), '\\\\]', 'close bracket character is escaped correctly');\n  assert.same(escape('{'), '\\\\{', 'open brace character is escaped correctly');\n  assert.same(escape('}'), '\\\\}', 'close brace character is escaped correctly');\n  assert.same(escape('\\\\'), '\\\\\\\\', 'backslash character is escaped correctly');\n\n  const codePoints = String.fromCharCode(0x100, 0x200, 0x300);\n  assert.same(escape(codePoints), codePoints, 'characters are correctly not escaped');\n\n  assert.same(escape('你好'), '你好', 'Chinese characters are correctly not escaped');\n  assert.same(escape('こんにちは'), 'こんにちは', 'Japanese characters are correctly not escaped');\n  assert.same(escape('안녕하세요'), '안녕하세요', 'Korean characters are correctly not escaped');\n  assert.same(escape('Привет'), 'Привет', 'Cyrillic characters are correctly not escaped');\n  assert.same(escape('مرحبا'), 'مرحبا', 'Arabic characters are correctly not escaped');\n  assert.same(escape('हेलो'), 'हेलो', 'Devanagari characters are correctly not escaped');\n  assert.same(escape('Γειά σου'), 'Γειά\\\\x20σου', 'Greek characters are correctly not escaped');\n  assert.same(escape('שלום'), 'שלום', 'Hebrew characters are correctly not escaped');\n  assert.same(escape('สวัสดี'), 'สวัสดี', 'Thai characters are correctly not escaped');\n  assert.same(escape('नमस्ते'), 'नमस्ते', 'Hindi characters are correctly not escaped');\n  assert.same(escape('ሰላም'), 'ሰላም', 'Amharic characters are correctly not escaped');\n  assert.same(escape('हैलो'), 'हैलो', 'Hindi characters with diacritics are correctly not escaped');\n  assert.same(escape('안녕!'), '안녕\\\\x21', 'Korean character with special character is correctly escaped');\n  assert.same(escape('.hello\\uD7FFworld'), '\\\\.hello\\uD7FFworld', 'Mixed ASCII and Unicode characters are correctly escaped');\n\n  assert.same(escape('\\uFEFF'), '\\\\ufeff', 'whitespace \\\\uFEFF is escaped correctly to \\\\uFEFF');\n  assert.same(escape('\\u0020'), '\\\\x20', 'whitespace \\\\u0020 is escaped correctly to \\\\x20');\n  assert.same(escape('\\u00A0'), '\\\\xa0', 'whitespace \\\\u00A0 is escaped correctly to \\\\xA0');\n  assert.same(escape('\\u202F'), '\\\\u202f', 'whitespace \\\\u202F is escaped correctly to \\\\u202F');\n  assert.same(escape('\\u0009'), '\\\\t', 'whitespace \\\\u0009 is escaped correctly to \\\\t');\n  assert.same(escape('\\u000B'), '\\\\v', 'whitespace \\\\u000B is escaped correctly to \\\\v');\n  assert.same(escape('\\u000C'), '\\\\f', 'whitespace \\\\u000C is escaped correctly to \\\\f');\n  assert.same(escape('\\uFEFF\\u0020\\u00A0\\u202F\\u0009\\u000B\\u000C'), '\\\\ufeff\\\\x20\\\\xa0\\\\u202f\\\\t\\\\v\\\\f', 'whitespaces are escaped correctly');\n\n  // Escaping initial digits\n  assert.same(escape('1111'), '\\\\x31111', 'Initial decimal digit 1 is escaped');\n  assert.same(escape('2222'), '\\\\x32222', 'Initial decimal digit 2 is escaped');\n  assert.same(escape('3333'), '\\\\x33333', 'Initial decimal digit 3 is escaped');\n  assert.same(escape('4444'), '\\\\x34444', 'Initial decimal digit 4 is escaped');\n  assert.same(escape('5555'), '\\\\x35555', 'Initial decimal digit 5 is escaped');\n  assert.same(escape('6666'), '\\\\x36666', 'Initial decimal digit 6 is escaped');\n  assert.same(escape('7777'), '\\\\x37777', 'Initial decimal digit 7 is escaped');\n  assert.same(escape('8888'), '\\\\x38888', 'Initial decimal digit 8 is escaped');\n  assert.same(escape('9999'), '\\\\x39999', 'Initial decimal digit 9 is escaped');\n  assert.same(escape('0000'), '\\\\x30000', 'Initial decimal digit 0 is escaped');\n\n  // Escaping initial ASCII letters\n  assert.same(escape('aaa'), '\\\\x61aa', 'Initial ASCII letter a is escaped');\n  assert.same(escape('bbb'), '\\\\x62bb', 'Initial ASCII letter b is escaped');\n  assert.same(escape('ccc'), '\\\\x63cc', 'Initial ASCII letter c is escaped');\n  assert.same(escape('ddd'), '\\\\x64dd', 'Initial ASCII letter d is escaped');\n  assert.same(escape('eee'), '\\\\x65ee', 'Initial ASCII letter e is escaped');\n  assert.same(escape('fff'), '\\\\x66ff', 'Initial ASCII letter f is escaped');\n  assert.same(escape('ggg'), '\\\\x67gg', 'Initial ASCII letter g is escaped');\n  assert.same(escape('hhh'), '\\\\x68hh', 'Initial ASCII letter h is escaped');\n  assert.same(escape('iii'), '\\\\x69ii', 'Initial ASCII letter i is escaped');\n  assert.same(escape('jjj'), '\\\\x6ajj', 'Initial ASCII letter j is escaped');\n  assert.same(escape('kkk'), '\\\\x6bkk', 'Initial ASCII letter k is escaped');\n  assert.same(escape('lll'), '\\\\x6cll', 'Initial ASCII letter l is escaped');\n  assert.same(escape('mmm'), '\\\\x6dmm', 'Initial ASCII letter m is escaped');\n  assert.same(escape('nnn'), '\\\\x6enn', 'Initial ASCII letter n is escaped');\n  assert.same(escape('ooo'), '\\\\x6foo', 'Initial ASCII letter o is escaped');\n  assert.same(escape('ppp'), '\\\\x70pp', 'Initial ASCII letter p is escaped');\n  assert.same(escape('qqq'), '\\\\x71qq', 'Initial ASCII letter q is escaped');\n  assert.same(escape('rrr'), '\\\\x72rr', 'Initial ASCII letter r is escaped');\n  assert.same(escape('sss'), '\\\\x73ss', 'Initial ASCII letter s is escaped');\n  assert.same(escape('ttt'), '\\\\x74tt', 'Initial ASCII letter t is escaped');\n  assert.same(escape('uuu'), '\\\\x75uu', 'Initial ASCII letter u is escaped');\n  assert.same(escape('vvv'), '\\\\x76vv', 'Initial ASCII letter v is escaped');\n  assert.same(escape('www'), '\\\\x77ww', 'Initial ASCII letter w is escaped');\n  assert.same(escape('xxx'), '\\\\x78xx', 'Initial ASCII letter x is escaped');\n  assert.same(escape('yyy'), '\\\\x79yy', 'Initial ASCII letter y is escaped');\n  assert.same(escape('zzz'), '\\\\x7azz', 'Initial ASCII letter z is escaped');\n  assert.same(escape('AAA'), '\\\\x41AA', 'Initial ASCII letter A is escaped');\n  assert.same(escape('BBB'), '\\\\x42BB', 'Initial ASCII letter B is escaped');\n  assert.same(escape('CCC'), '\\\\x43CC', 'Initial ASCII letter C is escaped');\n  assert.same(escape('DDD'), '\\\\x44DD', 'Initial ASCII letter D is escaped');\n  assert.same(escape('EEE'), '\\\\x45EE', 'Initial ASCII letter E is escaped');\n  assert.same(escape('FFF'), '\\\\x46FF', 'Initial ASCII letter F is escaped');\n  assert.same(escape('GGG'), '\\\\x47GG', 'Initial ASCII letter G is escaped');\n  assert.same(escape('HHH'), '\\\\x48HH', 'Initial ASCII letter H is escaped');\n  assert.same(escape('III'), '\\\\x49II', 'Initial ASCII letter I is escaped');\n  assert.same(escape('JJJ'), '\\\\x4aJJ', 'Initial ASCII letter J is escaped');\n  assert.same(escape('KKK'), '\\\\x4bKK', 'Initial ASCII letter K is escaped');\n  assert.same(escape('LLL'), '\\\\x4cLL', 'Initial ASCII letter L is escaped');\n  assert.same(escape('MMM'), '\\\\x4dMM', 'Initial ASCII letter M is escaped');\n  assert.same(escape('NNN'), '\\\\x4eNN', 'Initial ASCII letter N is escaped');\n  assert.same(escape('OOO'), '\\\\x4fOO', 'Initial ASCII letter O is escaped');\n  assert.same(escape('PPP'), '\\\\x50PP', 'Initial ASCII letter P is escaped');\n  assert.same(escape('QQQ'), '\\\\x51QQ', 'Initial ASCII letter Q is escaped');\n  assert.same(escape('RRR'), '\\\\x52RR', 'Initial ASCII letter R is escaped');\n  assert.same(escape('SSS'), '\\\\x53SS', 'Initial ASCII letter S is escaped');\n  assert.same(escape('TTT'), '\\\\x54TT', 'Initial ASCII letter T is escaped');\n  assert.same(escape('UUU'), '\\\\x55UU', 'Initial ASCII letter U is escaped');\n  assert.same(escape('VVV'), '\\\\x56VV', 'Initial ASCII letter V is escaped');\n  assert.same(escape('WWW'), '\\\\x57WW', 'Initial ASCII letter W is escaped');\n  assert.same(escape('XXX'), '\\\\x58XX', 'Initial ASCII letter X is escaped');\n  assert.same(escape('YYY'), '\\\\x59YY', 'Initial ASCII letter Y is escaped');\n  assert.same(escape('ZZZ'), '\\\\x5aZZ', 'Initial ASCII letter Z is escaped');\n\n  // Mixed case with special characters\n  assert.same(escape('1+1'), '\\\\x31\\\\+1', 'Initial decimal digit 1 with special character is escaped');\n  assert.same(escape('2+2'), '\\\\x32\\\\+2', 'Initial decimal digit 2 with special character is escaped');\n  assert.same(escape('3+3'), '\\\\x33\\\\+3', 'Initial decimal digit 3 with special character is escaped');\n  assert.same(escape('4+4'), '\\\\x34\\\\+4', 'Initial decimal digit 4 with special character is escaped');\n  assert.same(escape('5+5'), '\\\\x35\\\\+5', 'Initial decimal digit 5 with special character is escaped');\n  assert.same(escape('6+6'), '\\\\x36\\\\+6', 'Initial decimal digit 6 with special character is escaped');\n  assert.same(escape('7+7'), '\\\\x37\\\\+7', 'Initial decimal digit 7 with special character is escaped');\n  assert.same(escape('8+8'), '\\\\x38\\\\+8', 'Initial decimal digit 8 with special character is escaped');\n  assert.same(escape('9+9'), '\\\\x39\\\\+9', 'Initial decimal digit 9 with special character is escaped');\n  assert.same(escape('0+0'), '\\\\x30\\\\+0', 'Initial decimal digit 0 with special character is escaped');\n\n  assert.same(escape('a*a'), '\\\\x61\\\\*a', 'Initial ASCII letter a with special character is escaped');\n  assert.same(escape('b*b'), '\\\\x62\\\\*b', 'Initial ASCII letter b with special character is escaped');\n  assert.same(escape('c*c'), '\\\\x63\\\\*c', 'Initial ASCII letter c with special character is escaped');\n  assert.same(escape('d*d'), '\\\\x64\\\\*d', 'Initial ASCII letter d with special character is escaped');\n  assert.same(escape('e*e'), '\\\\x65\\\\*e', 'Initial ASCII letter e with special character is escaped');\n  assert.same(escape('f*f'), '\\\\x66\\\\*f', 'Initial ASCII letter f with special character is escaped');\n  assert.same(escape('g*g'), '\\\\x67\\\\*g', 'Initial ASCII letter g with special character is escaped');\n  assert.same(escape('h*h'), '\\\\x68\\\\*h', 'Initial ASCII letter h with special character is escaped');\n  assert.same(escape('i*i'), '\\\\x69\\\\*i', 'Initial ASCII letter i with special character is escaped');\n  assert.same(escape('j*j'), '\\\\x6a\\\\*j', 'Initial ASCII letter j with special character is escaped');\n  assert.same(escape('k*k'), '\\\\x6b\\\\*k', 'Initial ASCII letter k with special character is escaped');\n  assert.same(escape('l*l'), '\\\\x6c\\\\*l', 'Initial ASCII letter l with special character is escaped');\n  assert.same(escape('m*m'), '\\\\x6d\\\\*m', 'Initial ASCII letter m with special character is escaped');\n  assert.same(escape('n*n'), '\\\\x6e\\\\*n', 'Initial ASCII letter n with special character is escaped');\n  assert.same(escape('o*o'), '\\\\x6f\\\\*o', 'Initial ASCII letter o with special character is escaped');\n  assert.same(escape('p*p'), '\\\\x70\\\\*p', 'Initial ASCII letter p with special character is escaped');\n  assert.same(escape('q*q'), '\\\\x71\\\\*q', 'Initial ASCII letter q with special character is escaped');\n  assert.same(escape('r*r'), '\\\\x72\\\\*r', 'Initial ASCII letter r with special character is escaped');\n  assert.same(escape('s*s'), '\\\\x73\\\\*s', 'Initial ASCII letter s with special character is escaped');\n  assert.same(escape('t*t'), '\\\\x74\\\\*t', 'Initial ASCII letter t with special character is escaped');\n  assert.same(escape('u*u'), '\\\\x75\\\\*u', 'Initial ASCII letter u with special character is escaped');\n  assert.same(escape('v*v'), '\\\\x76\\\\*v', 'Initial ASCII letter v with special character is escaped');\n  assert.same(escape('w*w'), '\\\\x77\\\\*w', 'Initial ASCII letter w with special character is escaped');\n  assert.same(escape('x*x'), '\\\\x78\\\\*x', 'Initial ASCII letter x with special character is escaped');\n  assert.same(escape('y*y'), '\\\\x79\\\\*y', 'Initial ASCII letter y with special character is escaped');\n  assert.same(escape('z*z'), '\\\\x7a\\\\*z', 'Initial ASCII letter z with special character is escaped');\n  assert.same(escape('A*A'), '\\\\x41\\\\*A', 'Initial ASCII letter A with special character is escaped');\n  assert.same(escape('B*B'), '\\\\x42\\\\*B', 'Initial ASCII letter B with special character is escaped');\n  assert.same(escape('C*C'), '\\\\x43\\\\*C', 'Initial ASCII letter C with special character is escaped');\n  assert.same(escape('D*D'), '\\\\x44\\\\*D', 'Initial ASCII letter D with special character is escaped');\n  assert.same(escape('E*E'), '\\\\x45\\\\*E', 'Initial ASCII letter E with special character is escaped');\n  assert.same(escape('F*F'), '\\\\x46\\\\*F', 'Initial ASCII letter F with special character is escaped');\n  assert.same(escape('G*G'), '\\\\x47\\\\*G', 'Initial ASCII letter G with special character is escaped');\n  assert.same(escape('H*H'), '\\\\x48\\\\*H', 'Initial ASCII letter H with special character is escaped');\n  assert.same(escape('I*I'), '\\\\x49\\\\*I', 'Initial ASCII letter I with special character is escaped');\n  assert.same(escape('J*J'), '\\\\x4a\\\\*J', 'Initial ASCII letter J with special character is escaped');\n  assert.same(escape('K*K'), '\\\\x4b\\\\*K', 'Initial ASCII letter K with special character is escaped');\n  assert.same(escape('L*L'), '\\\\x4c\\\\*L', 'Initial ASCII letter L with special character is escaped');\n  assert.same(escape('M*M'), '\\\\x4d\\\\*M', 'Initial ASCII letter M with special character is escaped');\n  assert.same(escape('N*N'), '\\\\x4e\\\\*N', 'Initial ASCII letter N with special character is escaped');\n  assert.same(escape('O*O'), '\\\\x4f\\\\*O', 'Initial ASCII letter O with special character is escaped');\n  assert.same(escape('P*P'), '\\\\x50\\\\*P', 'Initial ASCII letter P with special character is escaped');\n  assert.same(escape('Q*Q'), '\\\\x51\\\\*Q', 'Initial ASCII letter Q with special character is escaped');\n  assert.same(escape('R*R'), '\\\\x52\\\\*R', 'Initial ASCII letter R with special character is escaped');\n  assert.same(escape('S*S'), '\\\\x53\\\\*S', 'Initial ASCII letter S with special character is escaped');\n  assert.same(escape('T*T'), '\\\\x54\\\\*T', 'Initial ASCII letter T with special character is escaped');\n  assert.same(escape('U*U'), '\\\\x55\\\\*U', 'Initial ASCII letter U with special character is escaped');\n  assert.same(escape('V*V'), '\\\\x56\\\\*V', 'Initial ASCII letter V with special character is escaped');\n  assert.same(escape('W*W'), '\\\\x57\\\\*W', 'Initial ASCII letter W with special character is escaped');\n  assert.same(escape('X*X'), '\\\\x58\\\\*X', 'Initial ASCII letter X with special character is escaped');\n  assert.same(escape('Y*Y'), '\\\\x59\\\\*Y', 'Initial ASCII letter Y with special character is escaped');\n  assert.same(escape('Z*Z'), '\\\\x5a\\\\*Z', 'Initial ASCII letter Z with special character is escaped');\n\n  assert.same(escape('_'), '_', 'Single underscore character is not escaped');\n  assert.same(escape('__'), '__', 'Thunderscore character is not escaped');\n  assert.same(escape('hello_world'), '\\\\x68ello_world', 'String starting with ASCII letter and containing underscore is not escaped');\n  assert.same(escape('1_hello_world'), '\\\\x31_hello_world', 'String starting with digit and containing underscore is correctly escaped');\n  assert.same(escape('a_b_c'), '\\\\x61_b_c', 'String starting with ASCII letter and containing multiple underscores is correctly escaped');\n  assert.same(escape('3_b_4'), '\\\\x33_b_4', 'String starting with digit and containing multiple underscores is correctly escaped');\n  assert.same(escape('_hello'), '_hello', 'String starting with underscore and containing other characters is not escaped');\n  assert.same(escape('_1hello'), '_1hello', 'String starting with underscore and digit is not escaped');\n  assert.same(escape('_a_1_2'), '_a_1_2', 'String starting with underscore and mixed characters is not escaped');\n\n  // Specific surrogate points\n  assert.same(escape('\\uD800'), '\\\\ud800', 'High surrogate \\\\uD800 is correctly escaped');\n  assert.same(escape('\\uDBFF'), '\\\\udbff', 'High surrogate \\\\uDBFF is correctly escaped');\n  assert.same(escape('\\uDC00'), '\\\\udc00', 'Low surrogate \\\\uDC00 is correctly escaped');\n  assert.same(escape('\\uDFFF'), '\\\\udfff', 'Low surrogate \\\\uDFFF is correctly escaped');\n\n  // Leading Surrogates\n  const highSurrogatesGroup1 = '\\uD800\\uD801\\uD802\\uD803\\uD804\\uD805\\uD806\\uD807\\uD808\\uD809\\uD80A\\uD80B\\uD80C\\uD80D\\uD80E\\uD80F';\n  const highSurrogatesGroup2 = '\\uD810\\uD811\\uD812\\uD813\\uD814\\uD815\\uD816\\uD817\\uD818\\uD819\\uD81A\\uD81B\\uD81C\\uD81D\\uD81E\\uD81F';\n  const highSurrogatesGroup3 = '\\uD820\\uD821\\uD822\\uD823\\uD824\\uD825\\uD826\\uD827\\uD828\\uD829\\uD82A\\uD82B\\uD82C\\uD82D\\uD82E\\uD82F';\n  const highSurrogatesGroup4 = '\\uD830\\uD831\\uD832\\uD833\\uD834\\uD835\\uD836\\uD837\\uD838\\uD839\\uD83A\\uD83B\\uD83C\\uD83D\\uD83E\\uD83F';\n  const highSurrogatesGroup5 = '\\uD840\\uD841\\uD842\\uD843\\uD844\\uD845\\uD846\\uD847\\uD848\\uD849\\uD84A\\uD84B\\uD84C\\uD84D\\uD84E\\uD84F';\n  const highSurrogatesGroup6 = '\\uD850\\uD851\\uD852\\uD853\\uD854\\uD855\\uD856\\uD857\\uD858\\uD859\\uD85A\\uD85B\\uD85C\\uD85D\\uD85E\\uD85F';\n  const highSurrogatesGroup7 = '\\uD860\\uD861\\uD862\\uD863\\uD864\\uD865\\uD866\\uD867\\uD868\\uD869\\uD86A\\uD86B\\uD86C\\uD86D\\uD86E\\uD86F';\n  const highSurrogatesGroup8 = '\\uD870\\uD871\\uD872\\uD873\\uD874\\uD875\\uD876\\uD877\\uD878\\uD879\\uD87A\\uD87B\\uD87C\\uD87D\\uD87E\\uD87F';\n  const highSurrogatesGroup9 = '\\uD880\\uD881\\uD882\\uD883\\uD884\\uD885\\uD886\\uD887\\uD888\\uD889\\uD88A\\uD88B\\uD88C\\uD88D\\uD88E\\uD88F';\n  const highSurrogatesGroup10 = '\\uD890\\uD891\\uD892\\uD893\\uD894\\uD895\\uD896\\uD897\\uD898\\uD899\\uD89A\\uD89B\\uD89C\\uD89D\\uD89E\\uD89F';\n  const highSurrogatesGroup11 = '\\uD8A0\\uD8A1\\uD8A2\\uD8A3\\uD8A4\\uD8A5\\uD8A6\\uD8A7\\uD8A8\\uD8A9\\uD8AA\\uD8AB\\uD8AC\\uD8AD\\uD8AE\\uD8AF';\n  const highSurrogatesGroup12 = '\\uD8B0\\uD8B1\\uD8B2\\uD8B3\\uD8B4\\uD8B5\\uD8B6\\uD8B7\\uD8B8\\uD8B9\\uD8BA\\uD8BB\\uD8BC\\uD8BD\\uD8BE\\uD8BF';\n  const highSurrogatesGroup13 = '\\uD8C0\\uD8C1\\uD8C2\\uD8C3\\uD8C4\\uD8C5\\uD8C6\\uD8C7\\uD8C8\\uD8C9\\uD8CA\\uD8CB\\uD8CC\\uD8CD\\uD8CE\\uD8CF';\n  const highSurrogatesGroup14 = '\\uD8D0\\uD8D1\\uD8D2\\uD8D3\\uD8D4\\uD8D5\\uD8D6\\uD8D7\\uD8D8\\uD8D9\\uD8DA\\uD8DB\\uD8DC\\uD8DD\\uD8DE\\uD8DF';\n  const highSurrogatesGroup15 = '\\uD8E0\\uD8E1\\uD8E2\\uD8E3\\uD8E4\\uD8E5\\uD8E6\\uD8E7\\uD8E8\\uD8E9\\uD8EA\\uD8EB\\uD8EC\\uD8ED\\uD8EE\\uD8EF';\n  const highSurrogatesGroup16 = '\\uD8F0\\uD8F1\\uD8F2\\uD8F3\\uD8F4\\uD8F5\\uD8F6\\uD8F7\\uD8F8\\uD8F9\\uD8FA\\uD8FB\\uD8FC\\uD8FD\\uD8FE\\uD8FF';\n\n  assert.same(escape(highSurrogatesGroup1), '\\\\ud800\\\\ud801\\\\ud802\\\\ud803\\\\ud804\\\\ud805\\\\ud806\\\\ud807\\\\ud808\\\\ud809\\\\ud80a\\\\ud80b\\\\ud80c\\\\ud80d\\\\ud80e\\\\ud80f', 'High surrogates group 1 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup2), '\\\\ud810\\\\ud811\\\\ud812\\\\ud813\\\\ud814\\\\ud815\\\\ud816\\\\ud817\\\\ud818\\\\ud819\\\\ud81a\\\\ud81b\\\\ud81c\\\\ud81d\\\\ud81e\\\\ud81f', 'High surrogates group 2 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup3), '\\\\ud820\\\\ud821\\\\ud822\\\\ud823\\\\ud824\\\\ud825\\\\ud826\\\\ud827\\\\ud828\\\\ud829\\\\ud82a\\\\ud82b\\\\ud82c\\\\ud82d\\\\ud82e\\\\ud82f', 'High surrogates group 3 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup4), '\\\\ud830\\\\ud831\\\\ud832\\\\ud833\\\\ud834\\\\ud835\\\\ud836\\\\ud837\\\\ud838\\\\ud839\\\\ud83a\\\\ud83b\\\\ud83c\\\\ud83d\\\\ud83e\\\\ud83f', 'High surrogates group 4 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup5), '\\\\ud840\\\\ud841\\\\ud842\\\\ud843\\\\ud844\\\\ud845\\\\ud846\\\\ud847\\\\ud848\\\\ud849\\\\ud84a\\\\ud84b\\\\ud84c\\\\ud84d\\\\ud84e\\\\ud84f', 'High surrogates group 5 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup6), '\\\\ud850\\\\ud851\\\\ud852\\\\ud853\\\\ud854\\\\ud855\\\\ud856\\\\ud857\\\\ud858\\\\ud859\\\\ud85a\\\\ud85b\\\\ud85c\\\\ud85d\\\\ud85e\\\\ud85f', 'High surrogates group 6 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup7), '\\\\ud860\\\\ud861\\\\ud862\\\\ud863\\\\ud864\\\\ud865\\\\ud866\\\\ud867\\\\ud868\\\\ud869\\\\ud86a\\\\ud86b\\\\ud86c\\\\ud86d\\\\ud86e\\\\ud86f', 'High surrogates group 7 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup8), '\\\\ud870\\\\ud871\\\\ud872\\\\ud873\\\\ud874\\\\ud875\\\\ud876\\\\ud877\\\\ud878\\\\ud879\\\\ud87a\\\\ud87b\\\\ud87c\\\\ud87d\\\\ud87e\\\\ud87f', 'High surrogates group 8 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup9), '\\\\ud880\\\\ud881\\\\ud882\\\\ud883\\\\ud884\\\\ud885\\\\ud886\\\\ud887\\\\ud888\\\\ud889\\\\ud88a\\\\ud88b\\\\ud88c\\\\ud88d\\\\ud88e\\\\ud88f', 'High surrogates group 9 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup10), '\\\\ud890\\\\ud891\\\\ud892\\\\ud893\\\\ud894\\\\ud895\\\\ud896\\\\ud897\\\\ud898\\\\ud899\\\\ud89a\\\\ud89b\\\\ud89c\\\\ud89d\\\\ud89e\\\\ud89f', 'High surrogates group 10 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup11), '\\\\ud8a0\\\\ud8a1\\\\ud8a2\\\\ud8a3\\\\ud8a4\\\\ud8a5\\\\ud8a6\\\\ud8a7\\\\ud8a8\\\\ud8a9\\\\ud8aa\\\\ud8ab\\\\ud8ac\\\\ud8ad\\\\ud8ae\\\\ud8af', 'High surrogates group 11 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup12), '\\\\ud8b0\\\\ud8b1\\\\ud8b2\\\\ud8b3\\\\ud8b4\\\\ud8b5\\\\ud8b6\\\\ud8b7\\\\ud8b8\\\\ud8b9\\\\ud8ba\\\\ud8bb\\\\ud8bc\\\\ud8bd\\\\ud8be\\\\ud8bf', 'High surrogates group 12 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup13), '\\\\ud8c0\\\\ud8c1\\\\ud8c2\\\\ud8c3\\\\ud8c4\\\\ud8c5\\\\ud8c6\\\\ud8c7\\\\ud8c8\\\\ud8c9\\\\ud8ca\\\\ud8cb\\\\ud8cc\\\\ud8cd\\\\ud8ce\\\\ud8cf', 'High surrogates group 13 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup14), '\\\\ud8d0\\\\ud8d1\\\\ud8d2\\\\ud8d3\\\\ud8d4\\\\ud8d5\\\\ud8d6\\\\ud8d7\\\\ud8d8\\\\ud8d9\\\\ud8da\\\\ud8db\\\\ud8dc\\\\ud8dd\\\\ud8de\\\\ud8df', 'High surrogates group 14 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup15), '\\\\ud8e0\\\\ud8e1\\\\ud8e2\\\\ud8e3\\\\ud8e4\\\\ud8e5\\\\ud8e6\\\\ud8e7\\\\ud8e8\\\\ud8e9\\\\ud8ea\\\\ud8eb\\\\ud8ec\\\\ud8ed\\\\ud8ee\\\\ud8ef', 'High surrogates group 15 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup16), '\\\\ud8f0\\\\ud8f1\\\\ud8f2\\\\ud8f3\\\\ud8f4\\\\ud8f5\\\\ud8f6\\\\ud8f7\\\\ud8f8\\\\ud8f9\\\\ud8fa\\\\ud8fb\\\\ud8fc\\\\ud8fd\\\\ud8fe\\\\ud8ff', 'High surrogates group 16 are correctly escaped');\n\n  // Trailing Surrogates\n  const lowSurrogatesGroup1 = '\\uDC00\\uDC01\\uDC02\\uDC03\\uDC04\\uDC05\\uDC06\\uDC07\\uDC08\\uDC09\\uDC0A\\uDC0B\\uDC0C\\uDC0D\\uDC0E\\uDC0F';\n  const lowSurrogatesGroup2 = '\\uDC10\\uDC11\\uDC12\\uDC13\\uDC14\\uDC15\\uDC16\\uDC17\\uDC18\\uDC19\\uDC1A\\uDC1B\\uDC1C\\uDC1D\\uDC1E\\uDC1F';\n  const lowSurrogatesGroup3 = '\\uDC20\\uDC21\\uDC22\\uDC23\\uDC24\\uDC25\\uDC26\\uDC27\\uDC28\\uDC29\\uDC2A\\uDC2B\\uDC2C\\uDC2D\\uDC2E\\uDC2F';\n  const lowSurrogatesGroup4 = '\\uDC30\\uDC31\\uDC32\\uDC33\\uDC34\\uDC35\\uDC36\\uDC37\\uDC38\\uDC39\\uDC3A\\uDC3B\\uDC3C\\uDC3D\\uDC3E\\uDC3F';\n  const lowSurrogatesGroup5 = '\\uDC40\\uDC41\\uDC42\\uDC43\\uDC44\\uDC45\\uDC46\\uDC47\\uDC48\\uDC49\\uDC4A\\uDC4B\\uDC4C\\uDC4D\\uDC4E\\uDC4F';\n  const lowSurrogatesGroup6 = '\\uDC50\\uDC51\\uDC52\\uDC53\\uDC54\\uDC55\\uDC56\\uDC57\\uDC58\\uDC59\\uDC5A\\uDC5B\\uDC5C\\uDC5D\\uDC5E\\uDC5F';\n  const lowSurrogatesGroup7 = '\\uDC60\\uDC61\\uDC62\\uDC63\\uDC64\\uDC65\\uDC66\\uDC67\\uDC68\\uDC69\\uDC6A\\uDC6B\\uDC6C\\uDC6D\\uDC6E\\uDC6F';\n  const lowSurrogatesGroup8 = '\\uDC70\\uDC71\\uDC72\\uDC73\\uDC74\\uDC75\\uDC76\\uDC77\\uDC78\\uDC79\\uDC7A\\uDC7B\\uDC7C\\uDC7D\\uDC7E\\uDC7F';\n  const lowSurrogatesGroup9 = '\\uDC80\\uDC81\\uDC82\\uDC83\\uDC84\\uDC85\\uDC86\\uDC87\\uDC88\\uDC89\\uDC8A\\uDC8B\\uDC8C\\uDC8D\\uDC8E\\uDC8F';\n  const lowSurrogatesGroup10 = '\\uDC90\\uDC91\\uDC92\\uDC93\\uDC94\\uDC95\\uDC96\\uDC97\\uDC98\\uDC99\\uDC9A\\uDC9B\\uDC9C\\uDC9D\\uDC9E\\uDC9F';\n  const lowSurrogatesGroup11 = '\\uDCA0\\uDCA1\\uDCA2\\uDCA3\\uDCA4\\uDCA5\\uDCA6\\uDCA7\\uDCA8\\uDCA9\\uDCAA\\uDCAB\\uDCAC\\uDCAD\\uDCAE\\uDCAF';\n  const lowSurrogatesGroup12 = '\\uDCB0\\uDCB1\\uDCB2\\uDCB3\\uDCB4\\uDCB5\\uDCB6\\uDCB7\\uDCB8\\uDCB9\\uDCBA\\uDCBB\\uDCBC\\uDCBD\\uDCBE\\uDCBF';\n  const lowSurrogatesGroup13 = '\\uDCC0\\uDCC1\\uDCC2\\uDCC3\\uDCC4\\uDCC5\\uDCC6\\uDCC7\\uDCC8\\uDCC9\\uDCCA\\uDCCB\\uDCCC\\uDCCD\\uDCCE\\uDCCF';\n  const lowSurrogatesGroup14 = '\\uDCD0\\uDCD1\\uDCD2\\uDCD3\\uDCD4\\uDCD5\\uDCD6\\uDCD7\\uDCD8\\uDCD9\\uDCDA\\uDCDB\\uDCDC\\uDCDD\\uDCDE\\uDCDF';\n  const lowSurrogatesGroup15 = '\\uDCE0\\uDCE1\\uDCE2\\uDCE3\\uDCE4\\uDCE5\\uDCE6\\uDCE7\\uDCE8\\uDCE9\\uDCEA\\uDCEB\\uDCEC\\uDCED\\uDCEE\\uDCEF';\n  const lowSurrogatesGroup16 = '\\uDCF0\\uDCF1\\uDCF2\\uDCF3\\uDCF4\\uDCF5\\uDCF6\\uDCF7\\uDCF8\\uDCF9\\uDCFA\\uDCFB\\uDCFC\\uDCFD\\uDCFE\\uDCFF';\n\n  assert.same(escape(lowSurrogatesGroup1), '\\\\udc00\\\\udc01\\\\udc02\\\\udc03\\\\udc04\\\\udc05\\\\udc06\\\\udc07\\\\udc08\\\\udc09\\\\udc0a\\\\udc0b\\\\udc0c\\\\udc0d\\\\udc0e\\\\udc0f', 'Low surrogates group 1 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup2), '\\\\udc10\\\\udc11\\\\udc12\\\\udc13\\\\udc14\\\\udc15\\\\udc16\\\\udc17\\\\udc18\\\\udc19\\\\udc1a\\\\udc1b\\\\udc1c\\\\udc1d\\\\udc1e\\\\udc1f', 'Low surrogates group 2 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup3), '\\\\udc20\\\\udc21\\\\udc22\\\\udc23\\\\udc24\\\\udc25\\\\udc26\\\\udc27\\\\udc28\\\\udc29\\\\udc2a\\\\udc2b\\\\udc2c\\\\udc2d\\\\udc2e\\\\udc2f', 'Low surrogates group 3 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup4), '\\\\udc30\\\\udc31\\\\udc32\\\\udc33\\\\udc34\\\\udc35\\\\udc36\\\\udc37\\\\udc38\\\\udc39\\\\udc3a\\\\udc3b\\\\udc3c\\\\udc3d\\\\udc3e\\\\udc3f', 'Low surrogates group 4 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup5), '\\\\udc40\\\\udc41\\\\udc42\\\\udc43\\\\udc44\\\\udc45\\\\udc46\\\\udc47\\\\udc48\\\\udc49\\\\udc4a\\\\udc4b\\\\udc4c\\\\udc4d\\\\udc4e\\\\udc4f', 'Low surrogates group 5 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup6), '\\\\udc50\\\\udc51\\\\udc52\\\\udc53\\\\udc54\\\\udc55\\\\udc56\\\\udc57\\\\udc58\\\\udc59\\\\udc5a\\\\udc5b\\\\udc5c\\\\udc5d\\\\udc5e\\\\udc5f', 'Low surrogates group 6 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup7), '\\\\udc60\\\\udc61\\\\udc62\\\\udc63\\\\udc64\\\\udc65\\\\udc66\\\\udc67\\\\udc68\\\\udc69\\\\udc6a\\\\udc6b\\\\udc6c\\\\udc6d\\\\udc6e\\\\udc6f', 'Low surrogates group 7 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup8), '\\\\udc70\\\\udc71\\\\udc72\\\\udc73\\\\udc74\\\\udc75\\\\udc76\\\\udc77\\\\udc78\\\\udc79\\\\udc7a\\\\udc7b\\\\udc7c\\\\udc7d\\\\udc7e\\\\udc7f', 'Low surrogates group 8 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup9), '\\\\udc80\\\\udc81\\\\udc82\\\\udc83\\\\udc84\\\\udc85\\\\udc86\\\\udc87\\\\udc88\\\\udc89\\\\udc8a\\\\udc8b\\\\udc8c\\\\udc8d\\\\udc8e\\\\udc8f', 'Low surrogates group 9 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup10), '\\\\udc90\\\\udc91\\\\udc92\\\\udc93\\\\udc94\\\\udc95\\\\udc96\\\\udc97\\\\udc98\\\\udc99\\\\udc9a\\\\udc9b\\\\udc9c\\\\udc9d\\\\udc9e\\\\udc9f', 'Low surrogates group 10 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup11), '\\\\udca0\\\\udca1\\\\udca2\\\\udca3\\\\udca4\\\\udca5\\\\udca6\\\\udca7\\\\udca8\\\\udca9\\\\udcaa\\\\udcab\\\\udcac\\\\udcad\\\\udcae\\\\udcaf', 'Low surrogates group 11 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup12), '\\\\udcb0\\\\udcb1\\\\udcb2\\\\udcb3\\\\udcb4\\\\udcb5\\\\udcb6\\\\udcb7\\\\udcb8\\\\udcb9\\\\udcba\\\\udcbb\\\\udcbc\\\\udcbd\\\\udcbe\\\\udcbf', 'Low surrogates group 12 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup13), '\\\\udcc0\\\\udcc1\\\\udcc2\\\\udcc3\\\\udcc4\\\\udcc5\\\\udcc6\\\\udcc7\\\\udcc8\\\\udcc9\\\\udcca\\\\udccb\\\\udccc\\\\udccd\\\\udcce\\\\udccf', 'Low surrogates group 13 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup14), '\\\\udcd0\\\\udcd1\\\\udcd2\\\\udcd3\\\\udcd4\\\\udcd5\\\\udcd6\\\\udcd7\\\\udcd8\\\\udcd9\\\\udcda\\\\udcdb\\\\udcdc\\\\udcdd\\\\udcde\\\\udcdf', 'Low surrogates group 14 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup15), '\\\\udce0\\\\udce1\\\\udce2\\\\udce3\\\\udce4\\\\udce5\\\\udce6\\\\udce7\\\\udce8\\\\udce9\\\\udcea\\\\udceb\\\\udcec\\\\udced\\\\udcee\\\\udcef', 'Low surrogates group 15 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup16), '\\\\udcf0\\\\udcf1\\\\udcf2\\\\udcf3\\\\udcf4\\\\udcf5\\\\udcf6\\\\udcf7\\\\udcf8\\\\udcf9\\\\udcfa\\\\udcfb\\\\udcfc\\\\udcfd\\\\udcfe\\\\udcff', 'Low surrogates group 16 are correctly escaped');\n\n  assert.same(escape('.a.b'), '\\\\.a\\\\.b', 'mixed string with dot character is escaped correctly');\n  assert.same(escape('.1+2'), '\\\\.1\\\\+2', 'mixed string with plus character is escaped correctly');\n  assert.same(escape('.a(b)c'), '\\\\.a\\\\(b\\\\)c', 'mixed string with parentheses is escaped correctly');\n  assert.same(escape('.a*b+c'), '\\\\.a\\\\*b\\\\+c', 'mixed string with asterisk and plus characters is escaped correctly');\n  assert.same(escape('.a?b^c'), '\\\\.a\\\\?b\\\\^c', 'mixed string with question mark and caret characters is escaped correctly');\n  assert.same(escape('.a{2}'), '\\\\.a\\\\{2\\\\}', 'mixed string with curly braces is escaped correctly');\n  assert.same(escape('.a|b'), '\\\\.a\\\\|b', 'mixed string with pipe character is escaped correctly');\n  assert.same(escape('.a\\\\b'), '\\\\.a\\\\\\\\b', 'mixed string with backslash is escaped correctly');\n  assert.same(escape('.a\\\\\\\\b'), '\\\\.a\\\\\\\\\\\\\\\\b', 'mixed string with backslash is escaped correctly');\n  assert.same(escape('.a^b'), '\\\\.a\\\\^b', 'mixed string with caret character is escaped correctly');\n  assert.same(escape('.a$b'), '\\\\.a\\\\$b', 'mixed string with dollar sign is escaped correctly');\n  assert.same(escape('.a[b]'), '\\\\.a\\\\[b\\\\]', 'mixed string with square brackets is escaped correctly');\n  assert.same(escape('.a.b(c)'), '\\\\.a\\\\.b\\\\(c\\\\)', 'mixed string with dot and parentheses is escaped correctly');\n  assert.same(escape('.a*b+c?d^e$f|g{2}h[i]j\\\\k'), '\\\\.a\\\\*b\\\\+c\\\\?d\\\\^e\\\\$f\\\\|g\\\\{2\\\\}h\\\\[i\\\\]j\\\\\\\\k', 'complex string with multiple special characters is escaped correctly');\n\n  assert.same(escape('^$\\\\.*+?()[]{}|'), '\\\\^\\\\$\\\\\\\\\\\\.\\\\*\\\\+\\\\?\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}\\\\|', 'Syntax characters are correctly escaped');\n\n  assert.throws(() => escape(123), TypeError, 'non-string input (number) throws TypeError');\n  assert.throws(() => escape({}), TypeError, 'non-string input (object) throws TypeError');\n  assert.throws(() => escape([]), TypeError, 'non-string input (array) throws TypeError');\n  assert.throws(() => escape(null), TypeError, 'non-string input (null) throws TypeError');\n  assert.throws(() => escape(undefined), TypeError, 'non-string input (undefined) throws TypeError');\n});\n"
  },
  {
    "path": "tests/unit-global/es.regexp.exec.js",
    "content": "/* eslint-disable prefer-regex-literals -- required for testing */\nimport { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('RegExp#exec lastIndex updating', assert => {\n  let re = /b/;\n  assert.same(re.lastIndex, 0, '.lastIndex starts at 0 for non-global regexps');\n  re.exec('abc');\n  assert.same(re.lastIndex, 0, '.lastIndex is not updated for non-global regexps');\n\n  re = /b/g;\n  assert.same(re.lastIndex, 0, '.lastIndex starts at 0 for global regexps');\n  re.exec('abc');\n  assert.same(re.lastIndex, 2, '.lastIndex is updated for global regexps');\n\n  re = /b*/;\n  re.exec('a');\n  assert.same(re.lastIndex, 0, '.lastIndex is not updated for non-global regexps if the match is empty');\n\n  re = /b*/g;\n  re.exec('a');\n  assert.same(re.lastIndex, 0, '.lastIndex is not updated for global regexps if the match is empty');\n});\n\nQUnit.test('RegExp#exec capturing groups', assert => {\n  assert.deepEqual(/(a?)/.exec('x'), ['', ''], '/(a?)/.exec(\"x\") returns [\"\", \"\"]');\n  assert.deepEqual(/(a)?/.exec('x'), ['', undefined], '/(a)?/.exec(\"x\") returns [\"\", undefined]');\n\n  // @nicolo-ribaudo: I don't know how to fix this in IE8. For the `/(a)?/` case it is fixed using\n  // #replace, but here also #replace is buggy :(\n  // assert.deepEqual(/(a?)?/.exec('x'), ['', undefined], '/(a?)?/.exec(\"x\") returns [\"\", undefined]');\n});\n\nif (DESCRIPTORS) {\n  QUnit.test('RegExp#exec regression', assert => {\n    assert.throws(() => /l/.exec(Symbol('RegExp#exec test')), 'throws on symbol argument');\n  });\n\n  QUnit.test('RegExp#exec sticky', assert => {\n    const re = new RegExp('a', 'y');\n    const str = 'bbabaab';\n    assert.same(re.lastIndex, 0, '#1');\n\n    assert.same(re.exec(str), null, '#2');\n    assert.same(re.lastIndex, 0, '#3');\n\n    re.lastIndex = 1;\n    assert.same(re.exec(str), null, '#4');\n    assert.same(re.lastIndex, 0, '#5');\n\n    re.lastIndex = 2;\n    const result = re.exec(str);\n    assert.deepEqual(result, ['a'], '#6');\n    assert.same(result.index, 2, '#7');\n    assert.same(result.input, str, 'match.input is the original string');\n    assert.same(re.lastIndex, 3, '#8');\n\n    assert.same(re.exec(str), null, '#9');\n    assert.same(re.lastIndex, 0, '#10');\n\n    re.lastIndex = 4;\n    assert.deepEqual(re.exec(str), ['a'], '#11');\n    assert.same(re.lastIndex, 5, '#12');\n\n    assert.deepEqual(re.exec(str), ['a'], '#13');\n    assert.same(re.lastIndex, 6, '#14');\n\n    assert.same(re.exec(str), null, '#15');\n    assert.same(re.lastIndex, 0, '#16');\n  });\n\n  QUnit.test('RegExp#exec sticky anchored', assert => {\n    const regex = new RegExp('^foo', 'y');\n    assert.deepEqual(regex.exec('foo'), ['foo'], '#1');\n    regex.lastIndex = 2;\n    assert.same(regex.exec('..foo'), null, '#2');\n    regex.lastIndex = 2;\n    assert.same(regex.exec('.\\nfoo'), null, '#3');\n\n    const regex2 = new RegExp('^foo', 'my');\n    regex2.lastIndex = 2;\n    assert.same(regex2.exec('..foo'), null, '#4');\n    regex2.lastIndex = 2;\n    assert.deepEqual(regex2.exec('.\\nfoo'), ['foo'], '#5');\n    assert.same(regex2.lastIndex, 5, '#6');\n\n    // all line terminators should allow ^ to match in multiline+sticky mode\n    const regex3 = new RegExp('^bar', 'my');\n    regex3.lastIndex = 2;\n    assert.deepEqual(regex3.exec('.\\rbar'), ['bar'], 'multiline sticky after \\\\r');\n    const regex4 = new RegExp('^bar', 'my');\n    regex4.lastIndex = 2;\n    assert.deepEqual(regex4.exec('.\\u2028bar'), ['bar'], 'multiline sticky after \\\\u2028');\n    const regex5 = new RegExp('^bar', 'my');\n    regex5.lastIndex = 2;\n    assert.deepEqual(regex5.exec('.\\u2029bar'), ['bar'], 'multiline sticky after \\\\u2029');\n  });\n\n  QUnit.test('RegExp#exec sticky with alternation', assert => {\n    const re = new RegExp('a|b', 'y');\n    re.lastIndex = 1;\n    const result = re.exec('cb');\n    assert.deepEqual(result, ['b'], 'alternation matches non-first alternative at lastIndex');\n    assert.same(re.lastIndex, 2, 'lastIndex updated correctly');\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.regexp.flags.js",
    "content": "/* eslint-disable prefer-regex-literals, regexp/sort-flags, regexp/no-useless-flag -- required for testing */\nimport { DESCRIPTORS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) {\n  QUnit.test('RegExp#flags', assert => {\n    assert.nonEnumerable(RegExp.prototype, 'flags');\n    assert.same(/./g.flags, 'g', '/./g.flags is \"g\"');\n    assert.same(/./.flags, '', '/./.flags is \"\"');\n    assert.same(RegExp('.', 'gim').flags, 'gim', 'RegExp(\".\", \"gim\").flags is \"gim\"');\n    assert.same(RegExp('.').flags, '', 'RegExp(\".\").flags is \"\"');\n    assert.same(/./gim.flags, 'gim', '/./gim.flags is \"gim\"');\n    assert.same(/./gmi.flags, 'gim', '/./gmi.flags is \"gim\"');\n    assert.same(/./mig.flags, 'gim', '/./mig.flags is \"gim\"');\n    assert.same(/./mgi.flags, 'gim', '/./mgi.flags is \"gim\"');\n\n    let INDICES_SUPPORT = true;\n    try {\n      RegExp('.', 'd');\n    } catch {\n      INDICES_SUPPORT = false;\n    }\n\n    const O = {};\n    // modern V8 bug\n    let calls = '';\n    const expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n    function addGetter(key, chr) {\n      Object.defineProperty(O, key, { get() {\n        calls += chr;\n        return true;\n      } });\n    }\n\n    const pairs = {\n      dotAll: 's',\n      global: 'g',\n      ignoreCase: 'i',\n      multiline: 'm',\n      sticky: 'y',\n    };\n\n    if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n    for (const key in pairs) addGetter(key, pairs[key]);\n\n    const result = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(O);\n\n    assert.same(result, expected, 'proper order, result');\n    assert.same(calls, expected, 'proper order, calls');\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.regexp.sticky.js",
    "content": "/* eslint-disable prefer-regex-literals -- required for testing */\nimport { DESCRIPTORS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) {\n  QUnit.test('RegExp#sticky', assert => {\n    const re = new RegExp('a', 'y');\n    assert.true(re.sticky, '.sticky is true');\n    assert.same(re.flags, 'y', '.flags contains y');\n    assert.false(/a/.sticky);\n\n    const stickyGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'sticky').get;\n    if (typeof stickyGetter == 'function') {\n      // Old firefox versions set a non-configurable non-writable .sticky property\n      // It works correctly, but it isn't a getter and it can't be polyfilled.\n      // We need to skip these tests.\n\n      assert.throws(() => {\n        stickyGetter.call({});\n      }, undefined, '.sticky getter can only be called on RegExp instances');\n      try {\n        stickyGetter.call(/a/);\n        assert.required('.sticky getter works on literals');\n      } catch {\n        assert.avoid('.sticky getter works on literals');\n      }\n      try {\n        stickyGetter.call(new RegExp('a'));\n        assert.required('.sticky getter works on instances');\n      } catch {\n        assert.avoid('.sticky getter works on instances');\n      }\n\n      assert.true(Object.hasOwn(RegExp.prototype, 'sticky'), 'prototype has .sticky property');\n      // relaxed for early implementations\n      // assert.same(RegExp.prototype.sticky, undefined, '.sticky is undefined on prototype');\n    }\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.regexp.test.js",
    "content": "\nQUnit.test('RegExp#test delegates to exec', assert => {\n  const exec = function (...args) {\n    execCalled = true;\n    return /./.exec.apply(this, args);\n  };\n\n  let execCalled = false;\n  let re = /[ac]/;\n  re.exec = exec;\n  assert.true(re.test('abc'), '#1');\n  assert.true(execCalled, '#2');\n\n  re = /a/;\n  // Not a function, should be ignored\n  re.exec = 3;\n  assert.true(re.test('abc'), '#3');\n\n  re = /a/;\n  // Does not return an object, should throw\n  re.exec = () => 3;\n  assert.throws(() => re.test('abc'), '#4');\n});\n"
  },
  {
    "path": "tests/unit-global/es.regexp.to-string.js",
    "content": "/* eslint-disable prefer-regex-literals, regexp/sort-flags, regexp/no-useless-flag -- required for testing */\nimport { STRICT } from '../helpers/constants.js';\n\nQUnit.test('RegExp#toString', assert => {\n  const { toString } = RegExp.prototype;\n  assert.isFunction(toString);\n  assert.arity(toString, 0);\n  assert.name(toString, 'toString');\n  assert.looksNative(toString);\n  assert.nonEnumerable(RegExp.prototype, 'toString');\n  assert.same(String(/pattern/), '/pattern/');\n  assert.same(String(/pattern/i), '/pattern/i');\n  assert.same(String(/pattern/mi), '/pattern/im');\n  assert.same(String(/pattern/im), '/pattern/im');\n  assert.same(String(/pattern/mgi), '/pattern/gim');\n  assert.same(String(new RegExp('pattern')), '/pattern/');\n  assert.same(String(new RegExp('pattern', 'i')), '/pattern/i');\n  assert.same(String(new RegExp('pattern', 'mi')), '/pattern/im');\n  assert.same(String(new RegExp('pattern', 'im')), '/pattern/im');\n  assert.same(String(new RegExp('pattern', 'mgi')), '/pattern/gim');\n  assert.same(toString.call({\n    source: 'foo',\n    flags: 'bar',\n  }), '/foo/bar');\n  assert.same(toString.call({}), '/undefined/undefined');\n  if (STRICT) {\n    assert.throws(() => toString.call(7));\n    assert.throws(() => toString.call('a'));\n    assert.throws(() => toString.call(false));\n    assert.throws(() => toString.call(null));\n    assert.throws(() => toString.call(undefined));\n  }\n\n  assert.throws(() => toString.call({\n    source: Symbol('RegExp#toString test'),\n    flags: 'g',\n  }), 'throws on symbol');\n});\n"
  },
  {
    "path": "tests/unit-global/es.set.difference.js",
    "content": "import { createIterable, createSetLike } from '../helpers/helpers.js';\n\nQUnit.test('Set#difference', assert => {\n  const { difference } = Set.prototype;\n  const { from } = Array;\n\n  assert.isFunction(difference);\n  assert.arity(difference, 1);\n  assert.name(difference, 'difference');\n  assert.looksNative(difference);\n  assert.nonEnumerable(Set.prototype, 'difference');\n\n  const set = new Set([1]);\n  assert.notSame(set.difference(new Set()), set);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).difference(new Set([4, 5]))), [1, 2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).difference(new Set([3, 4]))), [1, 2]);\n  assert.deepEqual(from(new Set([1, 2, 3]).difference(createSetLike([4, 5]))), [1, 2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).difference(createSetLike([3, 4]))), [1, 2]);\n\n  // TODO: drop from core-js@4\n  assert.deepEqual(from(new Set([1, 2, 3]).difference([4, 5])), [1, 2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).difference([3, 4])), [1, 2]);\n  assert.deepEqual(from(new Set([1, 2, 3]).difference(createIterable([3, 4]))), [1, 2]);\n\n  assert.same(new Set([42, 43]).difference({\n    size: Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }).size, 0);\n\n  assert.throws(() => new Set().difference({\n    size: -Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  assert.throws(() => new Set([1, 2, 3]).difference(), TypeError);\n\n  assert.throws(() => difference.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => difference.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => difference.call(null, [1, 2, 3]), TypeError);\n\n  // A WebKit bug occurs when `this` is updated while Set.prototype.difference is being executed\n  // https://bugs.webkit.org/show_bug.cgi?id=288595\n  const values = [2];\n  const setLike = {\n    size: values.length,\n    has() { return true; },\n    keys() {\n      let index = 0;\n      return {\n        next() {\n          const done = index >= values.length;\n          if (baseSet.has(1)) baseSet.clear();\n          return { done, value: values[index++] };\n        },\n      };\n    },\n  };\n\n  const baseSet = new Set([1, 2, 3, 4]);\n  const result = baseSet.difference(setLike);\n  assert.deepEqual(from(result), [1, 3, 4], 'incorrect behavior when this updated while Set#difference is being executed');\n\n  // Mutation via has() in the size(O) <= otherRec.size branch should not skip elements\n  const mutatingSet = new Set([1, 2, 3]);\n  const mutatingResult = mutatingSet.difference({\n    size: 10,\n    has(v) {\n      if (v === 1) {\n        mutatingSet.delete(2);\n        return true;\n      }\n      return false;\n    },\n    keys() { return { next() { return { done: true }; } }; },\n  });\n  assert.deepEqual(from(mutatingResult), [2, 3], 'iterates copy, not live set in has() branch');\n});\n"
  },
  {
    "path": "tests/unit-global/es.set.intersection.js",
    "content": "import { createIterable, createSetLike } from '../helpers/helpers.js';\n\nQUnit.test('Set#intersection', assert => {\n  const { intersection } = Set.prototype;\n  const { from } = Array;\n\n  assert.isFunction(intersection);\n  assert.arity(intersection, 1);\n  assert.name(intersection, 'intersection');\n  assert.looksNative(intersection);\n  assert.nonEnumerable(Set.prototype, 'intersection');\n\n  const set = new Set([1]);\n  assert.notSame(set.intersection(new Set()), set);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(new Set([4, 5]))), []);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(new Set([2, 3, 4]))), [2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([4, 5]))), []);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([2, 3, 4]))), [2, 3]);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(new Set([3, 2]))), [3, 2]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(new Set([3, 2, 1]))), [1, 2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(new Set([3, 2, 1, 0]))), [1, 2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([3, 2]))), [3, 2]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([3, 2, 1]))), [1, 2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([3, 2, 1, 0]))), [1, 2, 3]);\n\n  // TODO: drop from core-js@4\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection([4, 5])), []);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection([2, 3, 4])), [2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(createIterable([2, 3, 4]))), [2, 3]);\n\n  assert.deepEqual(from(new Set([42, 43]).intersection({\n    size: Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  })), [42, 43]);\n\n  assert.throws(() => new Set().intersection({\n    size: -Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  const s1 = new Set([1, 2, 3]);\n  assert.deepEqual(from(s1.intersection({\n    size: 10,\n    has(v) { s1.delete(v + 1); return true; },\n    keys() { throw new Error('Unexpected call to |keys| method'); },\n  })), [1, 3], 'Set.prototype.intersection re-checks SetDataHas after has()');\n\n  assert.throws(() => new Set([1, 2, 3]).intersection(), TypeError);\n\n  assert.throws(() => intersection.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => intersection.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => intersection.call(null, [1, 2, 3]), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.set.is-disjoint-from.js",
    "content": "import { createIterable, createSetLike } from '../helpers/helpers.js';\n\nQUnit.test('Set#isDisjointFrom', assert => {\n  const { isDisjointFrom } = Set.prototype;\n\n  assert.isFunction(isDisjointFrom);\n  assert.arity(isDisjointFrom, 1);\n  assert.name(isDisjointFrom, 'isDisjointFrom');\n  assert.looksNative(isDisjointFrom);\n  assert.nonEnumerable(Set.prototype, 'isDisjointFrom');\n\n  assert.true(new Set([1]).isDisjointFrom(new Set([2])));\n  assert.false(new Set([1]).isDisjointFrom(new Set([1])));\n  assert.true(new Set([1, 2, 3]).isDisjointFrom(new Set([4, 5, 6])));\n  assert.false(new Set([1, 2, 3]).isDisjointFrom(new Set([5, 4, 3])));\n  assert.true(new Set([1]).isDisjointFrom(createSetLike([2])));\n  assert.false(new Set([1]).isDisjointFrom(createSetLike([1])));\n  assert.true(new Set([1, 2, 3]).isDisjointFrom(createSetLike([4, 5, 6])));\n  assert.false(new Set([1, 2, 3]).isDisjointFrom(createSetLike([5, 4, 3])));\n\n  // TODO: drop from core-js@4\n  assert.true(new Set([1]).isDisjointFrom([2]));\n  assert.false(new Set([1]).isDisjointFrom([1]));\n  assert.true(new Set([1, 2, 3]).isDisjointFrom([4, 5, 6]));\n  assert.false(new Set([1, 2, 3]).isDisjointFrom([5, 4, 3]));\n  assert.true(new Set([1]).isDisjointFrom(createIterable([2])));\n  assert.false(new Set([1]).isDisjointFrom(createIterable([1])));\n\n  assert.false(new Set([42, 43]).isDisjointFrom({\n    size: Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  assert.throws(() => new Set().isDisjointFrom({\n    size: -Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  let closed = false;\n  assert.false(new Set([1, 2, 3, 4]).isDisjointFrom({\n    size: 3,\n    has() { return true; },\n    keys() {\n      let index = 0;\n      return {\n        next() {\n          return { value: [5, 1, 6][index++], done: index > 3 };\n        },\n        return() {\n          closed = true;\n          return { done: true };\n        },\n      };\n    },\n  }));\n  assert.true(closed, 'iterator is closed on early exit');\n\n  assert.throws(() => new Set([1, 2, 3]).isDisjointFrom(), TypeError);\n  assert.throws(() => isDisjointFrom.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => isDisjointFrom.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => isDisjointFrom.call(null, [1, 2, 3]), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.set.is-subset-of.js",
    "content": "import { createIterable, createSetLike } from '../helpers/helpers.js';\n\nQUnit.test('Set#isSubsetOf', assert => {\n  const { isSubsetOf } = Set.prototype;\n\n  assert.isFunction(isSubsetOf);\n  assert.arity(isSubsetOf, 1);\n  assert.name(isSubsetOf, 'isSubsetOf');\n  assert.looksNative(isSubsetOf);\n  assert.nonEnumerable(Set.prototype, 'isSubsetOf');\n\n  assert.true(new Set([1]).isSubsetOf(new Set([1, 2, 3])));\n  assert.false(new Set([1]).isSubsetOf(new Set([2, 3, 4])));\n  assert.true(new Set([1, 2, 3]).isSubsetOf(new Set([5, 4, 3, 2, 1])));\n  assert.false(new Set([1, 2, 3]).isSubsetOf(new Set([5, 4, 3, 2])));\n  assert.true(new Set([1]).isSubsetOf(createSetLike([1, 2, 3])));\n  assert.false(new Set([1]).isSubsetOf(createSetLike([2, 3, 4])));\n  assert.true(new Set([1, 2, 3]).isSubsetOf(createSetLike([5, 4, 3, 2, 1])));\n  assert.false(new Set([1, 2, 3]).isSubsetOf(createSetLike([5, 4, 3, 2])));\n\n  // TODO: drop from core-js@4\n  assert.true(new Set([1]).isSubsetOf([1, 2, 3]));\n  assert.false(new Set([1]).isSubsetOf([2, 3, 4]));\n  assert.true(new Set([1, 2, 3]).isSubsetOf([5, 4, 3, 2, 1]));\n  assert.false(new Set([1, 2, 3]).isSubsetOf([5, 4, 3, 2]));\n  assert.true(new Set([1]).isSubsetOf(createIterable([1, 2, 3])));\n  assert.false(new Set([1]).isSubsetOf(createIterable([2, 3, 4])));\n\n  assert.true(new Set([42, 43]).isSubsetOf({\n    size: Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  assert.throws(() => new Set().isSubsetOf({\n    size: -Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  assert.throws(() => new Set([1, 2, 3]).isSubsetOf(), TypeError);\n  assert.throws(() => isSubsetOf.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => isSubsetOf.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => isSubsetOf.call(null, [1, 2, 3]), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.set.is-superset-of.js",
    "content": "import { createIterable, createSetLike } from '../helpers/helpers.js';\n\nQUnit.test('Set#isSupersetOf', assert => {\n  const { isSupersetOf } = Set.prototype;\n\n  assert.isFunction(isSupersetOf);\n  assert.arity(isSupersetOf, 1);\n  assert.name(isSupersetOf, 'isSupersetOf');\n  assert.looksNative(isSupersetOf);\n  assert.nonEnumerable(Set.prototype, 'isSupersetOf');\n\n  assert.true(new Set([1, 2, 3]).isSupersetOf(new Set([1])));\n  assert.false(new Set([2, 3, 4]).isSupersetOf(new Set([1])));\n  assert.true(new Set([5, 4, 3, 2, 1]).isSupersetOf(new Set([1, 2, 3])));\n  assert.false(new Set([5, 4, 3, 2]).isSupersetOf(new Set([1, 2, 3])));\n  assert.true(new Set([1, 2, 3]).isSupersetOf(createSetLike([1])));\n  assert.false(new Set([2, 3, 4]).isSupersetOf(createSetLike([1])));\n  assert.true(new Set([5, 4, 3, 2, 1]).isSupersetOf(createSetLike([1, 2, 3])));\n  assert.false(new Set([5, 4, 3, 2]).isSupersetOf(createSetLike([1, 2, 3])));\n\n  // TODO: drop from core-js@4\n  assert.true(new Set([1, 2, 3]).isSupersetOf([1]));\n  assert.false(new Set([2, 3, 4]).isSupersetOf([1]));\n  assert.true(new Set([5, 4, 3, 2, 1]).isSupersetOf([1, 2, 3]));\n  assert.false(new Set([5, 4, 3, 2]).isSupersetOf([1, 2, 3]));\n  assert.true(new Set([1, 2, 3]).isSupersetOf(createIterable([1])));\n  assert.false(new Set([2, 3, 4]).isSupersetOf(createIterable([1])));\n\n  assert.false(new Set([42, 43]).isSupersetOf({\n    size: Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  assert.throws(() => new Set().isSupersetOf({\n    size: -Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  let closed = false;\n  assert.false(new Set([1, 2, 3, 4]).isSupersetOf({\n    size: 3,\n    has() { return true; },\n    keys() {\n      let index = 0;\n      return {\n        next() {\n          return { value: [1, 5, 3][index++], done: index > 3 };\n        },\n        return() {\n          closed = true;\n          return { done: true };\n        },\n      };\n    },\n  }));\n  assert.true(closed, 'iterator is closed on early exit');\n\n  assert.throws(() => new Set([1, 2, 3]).isSupersetOf(), TypeError);\n  assert.throws(() => isSupersetOf.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => isSupersetOf.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => isSupersetOf.call(null, [1, 2, 3]), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.set.js",
    "content": "/* eslint-disable sonarjs/no-element-overwrite -- required for testing */\n\nimport { DESCRIPTORS, GLOBAL, NATIVE } from '../helpers/constants.js';\nimport { createIterable, is, nativeSubclass } from '../helpers/helpers.js';\n\nconst Symbol = GLOBAL.Symbol || {};\nconst { getOwnPropertyDescriptor, keys, getOwnPropertyNames, getOwnPropertySymbols, freeze } = Object;\nconst { ownKeys } = GLOBAL.Reflect || {};\nconst { from } = Array;\n\nQUnit.test('Set', assert => {\n  assert.isFunction(Set);\n  assert.name(Set, 'Set');\n  assert.arity(Set, 0);\n  assert.looksNative(Set);\n  assert.true('add' in Set.prototype, 'add in Set.prototype');\n  assert.true('clear' in Set.prototype, 'clear in Set.prototype');\n  assert.true('delete' in Set.prototype, 'delete in Set.prototype');\n  assert.true('forEach' in Set.prototype, 'forEach in Set.prototype');\n  assert.true('has' in Set.prototype, 'has in Set.prototype');\n  assert.true(new Set() instanceof Set, 'new Set instanceof Set');\n  let set = new Set();\n  set.add(1);\n  set.add(2);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  assert.same(set.size, 3);\n  const result = [];\n  set.forEach(val => {\n    result.push(val);\n  });\n  assert.deepEqual(result, [1, 2, 3]);\n  assert.same(new Set(createIterable([1, 2, 3])).size, 3, 'Init from iterable');\n  assert.same(new Set([freeze({}), 1]).size, 2, 'Support frozen objects');\n  assert.same(new Set([NaN, NaN, NaN]).size, 1);\n  assert.deepEqual(from(new Set([3, 4]).add(2).add(1)), [3, 4, 2, 1]);\n  let done = false;\n  const { add } = Set.prototype;\n  // eslint-disable-next-line no-extend-native -- required for testing\n  Set.prototype.add = function () {\n    throw new Error();\n  };\n  try {\n    new Set(createIterable([null, 1, 2], {\n      return() {\n        return done = true;\n      },\n    }));\n  } catch { /* empty */ }\n  // eslint-disable-next-line no-extend-native -- required for testing\n  Set.prototype.add = add;\n  assert.true(done, '.return #throw');\n  const array = [];\n  done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return [][Symbol.iterator].call(this);\n  };\n  new Set(array);\n  assert.true(done);\n  const object = {};\n  new Set().add(object);\n  if (DESCRIPTORS) {\n    const results = [];\n    for (const key in object) results.push(key);\n    assert.arrayEqual(results, []);\n    assert.arrayEqual(keys(object), []);\n  }\n  assert.arrayEqual(getOwnPropertyNames(object), []);\n  if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []);\n  if (ownKeys) assert.arrayEqual(ownKeys(object), []);\n  if (nativeSubclass) {\n    const Subclass = nativeSubclass(Set);\n    assert.true(new Subclass() instanceof Subclass, 'correct subclassing with native classes #1');\n    assert.true(new Subclass() instanceof Set, 'correct subclassing with native classes #2');\n    assert.true(new Subclass().add(2).has(2), 'correct subclassing with native classes #3');\n  }\n\n  const buffer = new ArrayBuffer(8);\n  set = new Set([buffer]);\n  assert.true(set.has(buffer), 'works with ArrayBuffer keys');\n});\n\nQUnit.test('Set#add', assert => {\n  assert.isFunction(Set.prototype.add);\n  assert.name(Set.prototype.add, 'add');\n  assert.arity(Set.prototype.add, 1);\n  assert.looksNative(Set.prototype.add);\n  assert.nonEnumerable(Set.prototype, 'add');\n  const array = [];\n  let set = new Set();\n  set.add(NaN);\n  set.add(2);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  set.add(array);\n  assert.same(set.size, 5);\n  const chain = set.add(NaN);\n  assert.same(chain, set);\n  assert.same(set.size, 5);\n  set.add(2);\n  assert.same(set.size, 5);\n  set.add(array);\n  assert.same(set.size, 5);\n  set.add([]);\n  assert.same(set.size, 6);\n  set.add(4);\n  assert.same(set.size, 7);\n  const frozen = freeze({});\n  set = new Set();\n  set.add(frozen);\n  assert.true(set.has(frozen));\n});\n\nQUnit.test('Set#clear', assert => {\n  assert.isFunction(Set.prototype.clear);\n  assert.name(Set.prototype.clear, 'clear');\n  assert.arity(Set.prototype.clear, 0);\n  assert.looksNative(Set.prototype.clear);\n  assert.nonEnumerable(Set.prototype, 'clear');\n  let set = new Set();\n  set.clear();\n  assert.same(set.size, 0);\n  set = new Set();\n  set.add(1);\n  set.add(2);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  set.clear();\n  assert.same(set.size, 0);\n  assert.false(set.has(1));\n  assert.false(set.has(2));\n  assert.false(set.has(3));\n  const frozen = freeze({});\n  set = new Set();\n  set.add(1);\n  set.add(frozen);\n  set.clear();\n  assert.same(set.size, 0, 'Support frozen objects');\n  assert.false(set.has(1));\n  assert.false(set.has(frozen));\n});\n\nQUnit.test('Set#delete', assert => {\n  assert.isFunction(Set.prototype.delete);\n  if (NATIVE) assert.name(Set.prototype.delete, 'delete');\n  assert.arity(Set.prototype.delete, 1);\n  assert.looksNative(Set.prototype.delete);\n  assert.nonEnumerable(Set.prototype, 'delete');\n  const array = [];\n  const set = new Set();\n  set.add(NaN);\n  set.add(2);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  set.add(array);\n  assert.same(set.size, 5);\n  assert.true(set.delete(NaN));\n  assert.same(set.size, 4);\n  assert.false(set.delete(4));\n  assert.same(set.size, 4);\n  set.delete([]);\n  assert.same(set.size, 4);\n  set.delete(array);\n  assert.same(set.size, 3);\n  const frozen = freeze({});\n  set.add(frozen);\n  assert.same(set.size, 4);\n  set.delete(frozen);\n  assert.same(set.size, 3);\n});\n\nQUnit.test('Set#forEach', assert => {\n  assert.isFunction(Set.prototype.forEach);\n  assert.name(Set.prototype.forEach, 'forEach');\n  assert.arity(Set.prototype.forEach, 1);\n  assert.looksNative(Set.prototype.forEach);\n  assert.nonEnumerable(Set.prototype, 'forEach');\n  let result = [];\n  let count = 0;\n  let set = new Set();\n  set.add(1);\n  set.add(2);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  set.forEach(value => {\n    count++;\n    result.push(value);\n  });\n  assert.same(count, 3);\n  assert.deepEqual(result, [1, 2, 3]);\n  set = new Set();\n  set.add('0');\n  set.add('1');\n  set.add('2');\n  set.add('3');\n  result = '';\n  set.forEach(it => {\n    result += it;\n    if (it === '2') {\n      set.delete('2');\n      set.delete('3');\n      set.delete('1');\n      set.add('4');\n    }\n  });\n  assert.same(result, '0124');\n  set = new Set();\n  set.add('0');\n  result = '';\n  set.forEach(it => {\n    set.delete('0');\n    if (result !== '') throw new Error();\n    result += it;\n  });\n  assert.same(result, '0');\n  assert.throws(() => {\n    Set.prototype.forEach.call(new Map(), () => { /* empty */ });\n  }, 'non-generic');\n});\n\nQUnit.test('Set#has', assert => {\n  assert.isFunction(Set.prototype.has);\n  assert.name(Set.prototype.has, 'has');\n  assert.arity(Set.prototype.has, 1);\n  assert.looksNative(Set.prototype.has);\n  assert.nonEnumerable(Set.prototype, 'has');\n  const array = [];\n  const frozen = freeze({});\n  const set = new Set();\n  set.add(NaN);\n  set.add(2);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  set.add(frozen);\n  set.add(array);\n  assert.true(set.has(NaN));\n  assert.true(set.has(array));\n  assert.true(set.has(frozen));\n  assert.true(set.has(2));\n  assert.false(set.has(4));\n  assert.false(set.has([]));\n});\n\nQUnit.test('Set#size', assert => {\n  assert.nonEnumerable(Set.prototype, 'size');\n  const set = new Set();\n  set.add(1);\n  const { size } = set;\n  assert.same(typeof size, 'number', 'size is number');\n  assert.same(size, 1, 'size is correct');\n  if (DESCRIPTORS) {\n    const sizeDescriptor = getOwnPropertyDescriptor(Set.prototype, 'size');\n    const getter = sizeDescriptor && sizeDescriptor.get;\n    const setter = sizeDescriptor && sizeDescriptor.set;\n    assert.same(typeof getter, 'function', 'size is getter');\n    assert.same(typeof setter, 'undefined', 'size is not setter');\n    assert.throws(() => Set.prototype.size, TypeError);\n  }\n});\n\nQUnit.test('Set & -0', assert => {\n  let set = new Set();\n  set.add(-0);\n  assert.same(set.size, 1);\n  assert.true(set.has(0));\n  assert.true(set.has(-0));\n  set.forEach(it => {\n    assert.false(is(it, -0));\n  });\n  set.delete(-0);\n  assert.same(set.size, 0);\n  set = new Set([-0]);\n  set.forEach(key => {\n    assert.false(is(key, -0));\n  });\n  set = new Set();\n  set.add(4);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  set.add(0);\n  assert.true(set.has(-0));\n});\n\nQUnit.test('Set#@@toStringTag', assert => {\n  assert.same(Set.prototype[Symbol.toStringTag], 'Set', 'Set::@@toStringTag is `Set`');\n  assert.same(String(new Set()), '[object Set]', 'correct stringification');\n});\n\nQUnit.test('Set Iterator', assert => {\n  const set = new Set();\n  set.add('a');\n  set.add('b');\n  set.add('c');\n  set.add('d');\n  const results = [];\n  const iterator = set.keys();\n  results.push(iterator.next().value);\n  assert.true(set.delete('a'));\n  assert.true(set.delete('b'));\n  assert.true(set.delete('c'));\n  set.add('e');\n  results.push(iterator.next().value, iterator.next().value);\n  assert.true(iterator.next().done);\n  set.add('f');\n  assert.true(iterator.next().done);\n  assert.deepEqual(results, ['a', 'd', 'e']);\n});\n\nQUnit.test('Set#keys', assert => {\n  assert.isFunction(Set.prototype.keys);\n  assert.name(Set.prototype.keys, 'values');\n  assert.arity(Set.prototype.keys, 0);\n  assert.looksNative(Set.prototype.keys);\n  assert.same(Set.prototype.keys, Set.prototype.values);\n  assert.nonEnumerable(Set.prototype, 'keys');\n  const set = new Set();\n  set.add('q');\n  set.add('w');\n  set.add('e');\n  const iterator = set.keys();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Set Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Set#values', assert => {\n  assert.isFunction(Set.prototype.values);\n  assert.name(Set.prototype.values, 'values');\n  assert.arity(Set.prototype.values, 0);\n  assert.looksNative(Set.prototype.values);\n  assert.nonEnumerable(Set.prototype, 'values');\n  const set = new Set();\n  set.add('q');\n  set.add('w');\n  set.add('e');\n  const iterator = set.values();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Set Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Set#entries', assert => {\n  assert.isFunction(Set.prototype.entries);\n  assert.name(Set.prototype.entries, 'entries');\n  assert.arity(Set.prototype.entries, 0);\n  assert.looksNative(Set.prototype.entries);\n  assert.nonEnumerable(Set.prototype, 'entries');\n  const set = new Set();\n  set.add('q');\n  set.add('w');\n  set.add('e');\n  const iterator = set.entries();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Set Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: ['q', 'q'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: ['w', 'w'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: ['e', 'e'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Set#@@iterator', assert => {\n  assert.isIterable(Set.prototype);\n  assert.name(Set.prototype[Symbol.iterator], 'values');\n  assert.arity(Set.prototype[Symbol.iterator], 0);\n  assert.looksNative(Set.prototype[Symbol.iterator]);\n  assert.same(Set.prototype[Symbol.iterator], Set.prototype.values);\n  assert.nonEnumerable(Set.prototype, Symbol.iterator);\n  const set = new Set();\n  set.add('q');\n  set.add('w');\n  set.add('e');\n  const iterator = set[Symbol.iterator]();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Set Iterator');\n  assert.same(String(iterator), '[object Set Iterator]');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/es.set.symmetric-difference.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\nimport { createIterable, createSetLike } from '../helpers/helpers.js';\n\nQUnit.test('Set#symmetricDifference', assert => {\n  const { symmetricDifference } = Set.prototype;\n  const { from } = Array;\n  const { defineProperty } = Object;\n\n  assert.isFunction(symmetricDifference);\n  assert.arity(symmetricDifference, 1);\n  assert.name(symmetricDifference, 'symmetricDifference');\n  assert.looksNative(symmetricDifference);\n  assert.nonEnumerable(Set.prototype, 'symmetricDifference');\n\n  const set = new Set([1]);\n  assert.notSame(set.symmetricDifference(new Set()), set);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(new Set([4, 5]))), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(new Set([3, 4]))), [1, 2, 4]);\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createSetLike([4, 5]))), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createSetLike([3, 4]))), [1, 2, 4]);\n\n  // TODO: drop from core-js@4\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference([4, 5])), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference([3, 4])), [1, 2, 4]);\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createIterable([4, 5]))), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createIterable([3, 4]))), [1, 2, 4]);\n\n  assert.throws(() => new Set([1, 2, 3]).symmetricDifference(), TypeError);\n\n  assert.throws(() => symmetricDifference.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => symmetricDifference.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => symmetricDifference.call(null, [1, 2, 3]), TypeError);\n\n  // Duplicate keys in other's iterator: value present in O should be removed idempotently\n  {\n    const baseSet = new Set([1, 2, 3]);\n    const setLike = {\n      size: 2,\n      has() { return false; },\n      keys() {\n        const vals = [2, 2];\n        let i = 0;\n        return { next() { return i < vals.length ? { done: false, value: vals[i++] } : { done: true }; } };\n      },\n    };\n    // 2 is in O → both occurrences remove 2 from result (second is a no-op)\n    assert.deepEqual(from(baseSet.symmetricDifference(setLike)), [1, 3]);\n  }\n\n  {\n    // https://github.com/WebKit/WebKit/pull/27264/files#diff-7bdbbad7ceaa222787994f2db702dd45403fa98e14d6270aa65aaf09754dcfe0R8\n    const baseSet = new Set(['a', 'b', 'c', 'd', 'e']);\n    const values = ['f', 'g', 'h', 'i', 'j'];\n    const setLike = {\n      size: values.length,\n      has() { return true; },\n      keys() {\n        let index = 0;\n        return {\n          next() {\n            const done = index >= values.length;\n            if (!baseSet.has('f')) baseSet.add('f');\n            return { done, value: values[index++] };\n          },\n        };\n      },\n    };\n    assert.deepEqual(from(baseSet.symmetricDifference(setLike)), ['a', 'b', 'c', 'd', 'e', 'g', 'h', 'i', 'j']);\n  }\n\n  if (DESCRIPTORS) {\n    // Should get iterator record of a set-like object before cloning this\n    // https://bugs.webkit.org/show_bug.cgi?id=289430\n    const baseSet = new Set();\n    const setLike = {\n      size: 0,\n      has() { return true; },\n      keys() {\n        return defineProperty({}, 'next', { get() {\n          baseSet.clear();\n          baseSet.add(4);\n          return function () {\n            return { done: true };\n          };\n        } });\n      },\n    };\n    assert.deepEqual(from(baseSet.symmetricDifference(setLike)), [4]);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.set.union.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\nimport { createIterable, createSetLike } from '../helpers/helpers.js';\n\nQUnit.test('Set#union', assert => {\n  const { union } = Set.prototype;\n  const { from } = Array;\n  const { defineProperty } = Object;\n\n  assert.isFunction(union);\n  assert.arity(union, 1);\n  assert.name(union, 'union');\n  assert.looksNative(union);\n  assert.nonEnumerable(Set.prototype, 'union');\n\n  const set = new Set([1]);\n  assert.notSame(set.union(new Set()), set);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).union(new Set([4, 5]))), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).union(new Set([3, 4]))), [1, 2, 3, 4]);\n  assert.deepEqual(from(new Set([1, 2, 3]).union(createSetLike([4, 5]))), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).union(createSetLike([3, 4]))), [1, 2, 3, 4]);\n\n  // TODO: drop from core-js@4\n  assert.deepEqual(from(new Set([1, 2, 3]).union([4, 5])), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).union([3, 4])), [1, 2, 3, 4]);\n  assert.deepEqual(from(new Set([1, 2, 3]).union(createIterable([3, 4]))), [1, 2, 3, 4]);\n\n  assert.throws(() => new Set([1, 2, 3]).union(), TypeError);\n\n  assert.throws(() => union.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => union.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => union.call(null, [1, 2, 3]), TypeError);\n\n  if (DESCRIPTORS) {\n    // Should get iterator record of a set-like object before cloning this\n    // https://bugs.webkit.org/show_bug.cgi?id=289430\n    const baseSet = new Set();\n    const setLike = {\n      size: 0,\n      has() { return true; },\n      keys() {\n        return defineProperty({}, 'next', { get() {\n          baseSet.clear();\n          baseSet.add(4);\n          return function () {\n            return { done: true };\n          };\n        } });\n      },\n    };\n    assert.deepEqual(from(baseSet.union(setLike)), [4]);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.anchor.js",
    "content": "QUnit.test('String#anchor', assert => {\n  const { anchor } = String.prototype;\n  assert.isFunction(anchor);\n  assert.arity(anchor, 1);\n  assert.name(anchor, 'anchor');\n  assert.looksNative(anchor);\n  assert.nonEnumerable(String.prototype, 'anchor');\n  assert.same('a'.anchor('b'), '<a name=\"b\">a</a>', 'lower case');\n  assert.same('a'.anchor('\"'), '<a name=\"&quot;\">a</a>', 'escape quotes');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('anchor test');\n    assert.throws(() => anchor.call(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => anchor.call('a', symbol), 'throws on symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.at-alternative.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('String#at', assert => {\n  const { at } = String.prototype;\n  assert.isFunction(at);\n  assert.arity(at, 1);\n  assert.name(at, 'at');\n  assert.looksNative(at);\n  assert.nonEnumerable(String.prototype, 'at');\n  assert.same('123'.at(0), '1');\n  assert.same('123'.at(1), '2');\n  assert.same('123'.at(2), '3');\n  assert.same('123'.at(3), undefined);\n  assert.same('123'.at(-1), '3');\n  assert.same('123'.at(-2), '2');\n  assert.same('123'.at(-3), '1');\n  assert.same('123'.at(-4), undefined);\n  assert.same('123'.at(0.4), '1');\n  assert.same('123'.at(0.5), '1');\n  assert.same('123'.at(0.6), '1');\n  assert.same('1'.at(NaN), '1');\n  assert.same('1'.at(), '1');\n  assert.same('123'.at(-0), '1');\n  // TODO: disabled by default because of the conflict with old proposal\n  // assert.same('𠮷'.at(), '\\uD842');\n  assert.same(at.call({ toString() { return '123'; } }, 0), '1');\n\n  assert.throws(() => at.call(Symbol('at-alternative test'), 0), 'throws on symbol context');\n\n  if (STRICT) {\n    assert.throws(() => at.call(null, 0), TypeError);\n    assert.throws(() => at.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.big.js",
    "content": "QUnit.test('String#big', assert => {\n  const { big } = String.prototype;\n  assert.isFunction(big);\n  assert.arity(big, 0);\n  assert.name(big, 'big');\n  assert.looksNative(big);\n  assert.nonEnumerable(String.prototype, 'big');\n  assert.same('a'.big(), '<big>a</big>', 'lower case');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => big.call(Symbol('big test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.blink.js",
    "content": "QUnit.test('String#blink', assert => {\n  const { blink } = String.prototype;\n  assert.isFunction(blink);\n  assert.arity(blink, 0);\n  assert.name(blink, 'blink');\n  assert.looksNative(blink);\n  assert.nonEnumerable(String.prototype, 'blink');\n  assert.same('a'.blink(), '<blink>a</blink>', 'lower case');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => blink.call(Symbol('blink test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.bold.js",
    "content": "QUnit.test('String#bold', assert => {\n  const { bold } = String.prototype;\n  assert.isFunction(bold);\n  assert.arity(bold, 0);\n  assert.name(bold, 'bold');\n  assert.looksNative(bold);\n  assert.nonEnumerable(String.prototype, 'bold');\n  assert.same('a'.bold(), '<b>a</b>', 'lower case');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => bold.call(Symbol('bold test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.code-point-at.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('String#codePointAt', assert => {\n  const { codePointAt } = String.prototype;\n  assert.isFunction(codePointAt);\n  assert.arity(codePointAt, 1);\n  assert.name(codePointAt, 'codePointAt');\n  assert.looksNative(codePointAt);\n  assert.nonEnumerable(String.prototype, 'codePointAt');\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(''), 0x61);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt('_'), 0x61);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(), 0x61);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(-Infinity), undefined);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(-1), undefined);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(-0), 0x61);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(0), 0x61);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(3), 0x1D306);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(4), 0xDF06);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(5), 0x64);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(42), undefined);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(Infinity), undefined);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(-Infinity), undefined);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(NaN), 0x61);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(false), 0x61);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(null), 0x61);\n  assert.same('abc\\uD834\\uDF06def'.codePointAt(undefined), 0x61);\n  assert.same('\\uD834\\uDF06def'.codePointAt(''), 0x1D306);\n  assert.same('\\uD834\\uDF06def'.codePointAt('1'), 0xDF06);\n  assert.same('\\uD834\\uDF06def'.codePointAt('_'), 0x1D306);\n  assert.same('\\uD834\\uDF06def'.codePointAt(), 0x1D306);\n  assert.same('\\uD834\\uDF06def'.codePointAt(-1), undefined);\n  assert.same('\\uD834\\uDF06def'.codePointAt(-0), 0x1D306);\n  assert.same('\\uD834\\uDF06def'.codePointAt(0), 0x1D306);\n  assert.same('\\uD834\\uDF06def'.codePointAt(1), 0xDF06);\n  assert.same('\\uD834\\uDF06def'.codePointAt(42), undefined);\n  assert.same('\\uD834\\uDF06def'.codePointAt(false), 0x1D306);\n  assert.same('\\uD834\\uDF06def'.codePointAt(null), 0x1D306);\n  assert.same('\\uD834\\uDF06def'.codePointAt(undefined), 0x1D306);\n  assert.same('\\uD834abc'.codePointAt(''), 0xD834);\n  assert.same('\\uD834abc'.codePointAt('_'), 0xD834);\n  assert.same('\\uD834abc'.codePointAt(), 0xD834);\n  assert.same('\\uD834abc'.codePointAt(-1), undefined);\n  assert.same('\\uD834abc'.codePointAt(-0), 0xD834);\n  assert.same('\\uD834abc'.codePointAt(0), 0xD834);\n  assert.same('\\uD834abc'.codePointAt(false), 0xD834);\n  assert.same('\\uD834abc'.codePointAt(NaN), 0xD834);\n  assert.same('\\uD834abc'.codePointAt(null), 0xD834);\n  assert.same('\\uD834abc'.codePointAt(undefined), 0xD834);\n  assert.same('\\uDF06abc'.codePointAt(''), 0xDF06);\n  assert.same('\\uDF06abc'.codePointAt('_'), 0xDF06);\n  assert.same('\\uDF06abc'.codePointAt(), 0xDF06);\n  assert.same('\\uDF06abc'.codePointAt(-1), undefined);\n  assert.same('\\uDF06abc'.codePointAt(-0), 0xDF06);\n  assert.same('\\uDF06abc'.codePointAt(0), 0xDF06);\n  assert.same('\\uDF06abc'.codePointAt(false), 0xDF06);\n  assert.same('\\uDF06abc'.codePointAt(NaN), 0xDF06);\n  assert.same('\\uDF06abc'.codePointAt(null), 0xDF06);\n  assert.same('\\uDF06abc'.codePointAt(undefined), 0xDF06);\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => codePointAt.call(Symbol('codePointAt test'), 1), 'throws on symbol context');\n  }\n\n  if (STRICT) {\n    assert.throws(() => codePointAt.call(null, 0), TypeError);\n    assert.throws(() => codePointAt.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.ends-with.js",
    "content": "import { GLOBAL, STRICT } from '../helpers/constants.js';\n\nconst Symbol = GLOBAL.Symbol || {};\n\nQUnit.test('String#endsWith', assert => {\n  const { endsWith } = String.prototype;\n  assert.isFunction(endsWith);\n  assert.arity(endsWith, 1);\n  assert.name(endsWith, 'endsWith');\n  assert.looksNative(endsWith);\n  assert.nonEnumerable(String.prototype, 'endsWith');\n  assert.true('undefined'.endsWith());\n  assert.false('undefined'.endsWith(null));\n  assert.true('abc'.endsWith(''));\n  assert.true('abc'.endsWith('c'));\n  assert.true('abc'.endsWith('bc'));\n  assert.false('abc'.endsWith('ab'));\n  assert.true('abc'.endsWith('', NaN));\n  assert.false('abc'.endsWith('c', -1));\n  assert.true('abc'.endsWith('a', 1));\n  assert.true('abc'.endsWith('c', Infinity));\n  assert.true('abc'.endsWith('a', true));\n  assert.false('abc'.endsWith('c', 'x'));\n  assert.false('abc'.endsWith('a', 'x'));\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('endsWith test');\n    assert.throws(() => endsWith.call(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => endsWith.call('a', symbol), 'throws on symbol argument');\n  }\n\n  if (STRICT) {\n    assert.throws(() => endsWith.call(null, '.'), TypeError);\n    assert.throws(() => endsWith.call(undefined, '.'), TypeError);\n  }\n\n  const regexp = /./;\n  assert.throws(() => '/./'.endsWith(regexp), TypeError);\n  regexp[Symbol.match] = false;\n  assert.notThrows(() => '/./'.endsWith(regexp));\n  const object = {};\n  assert.notThrows(() => '[object Object]'.endsWith(object));\n  object[Symbol.match] = true;\n  assert.throws(() => '[object Object]'.endsWith(object), TypeError);\n  // side-effect ordering: ToString(searchString) should happen before ToIntegerOrInfinity(endPosition)\n  const order = [];\n  'abc'.endsWith(\n    { toString() { order.push('search'); return 'c'; } },\n    { valueOf() { order.push('pos'); return 3; } },\n  );\n  assert.deepEqual(order, ['search', 'pos'], 'ToString(searchString) before ToIntegerOrInfinity(endPosition)');\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.fixed.js",
    "content": "QUnit.test('String#fixed', assert => {\n  const { fixed } = String.prototype;\n  assert.isFunction(fixed);\n  assert.arity(fixed, 0);\n  assert.name(fixed, 'fixed');\n  assert.looksNative(fixed);\n  assert.nonEnumerable(String.prototype, 'fixed');\n  assert.same('a'.fixed(), '<tt>a</tt>', 'lower case');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => fixed.call(Symbol('fixed test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.fontcolor.js",
    "content": "QUnit.test('String#fontcolor', assert => {\n  const { fontcolor } = String.prototype;\n  assert.isFunction(fontcolor);\n  assert.arity(fontcolor, 1);\n  assert.name(fontcolor, 'fontcolor');\n  assert.looksNative(fontcolor);\n  assert.nonEnumerable(String.prototype, 'fontcolor');\n  assert.same('a'.fontcolor('b'), '<font color=\"b\">a</font>', 'lower case');\n  assert.same('a'.fontcolor('\"'), '<font color=\"&quot;\">a</font>', 'escape quotes');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('fontcolor test');\n    assert.throws(() => fontcolor.call(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => fontcolor.call('a', symbol), 'throws on symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.fontsize.js",
    "content": "QUnit.test('String#fontsize', assert => {\n  const { fontsize } = String.prototype;\n  assert.isFunction(fontsize);\n  assert.arity(fontsize, 1);\n  assert.name(fontsize, 'fontsize');\n  assert.looksNative(fontsize);\n  assert.nonEnumerable(String.prototype, 'fontsize');\n  assert.same('a'.fontsize('b'), '<font size=\"b\">a</font>', 'lower case');\n  assert.same('a'.fontsize('\"'), '<font size=\"&quot;\">a</font>', 'escape quotes');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('fontsize test');\n    assert.throws(() => fontsize.call(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => fontsize.call('a', symbol), 'throws on symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.from-code-point.js",
    "content": "/* eslint-disable prefer-spread -- required for testing */\nQUnit.test('String.fromCodePoint', assert => {\n  const { fromCodePoint } = String;\n  assert.isFunction(fromCodePoint);\n  assert.arity(fromCodePoint, 1);\n  assert.name(fromCodePoint, 'fromCodePoint');\n  assert.looksNative(fromCodePoint);\n  assert.nonEnumerable(String, 'fromCodePoint');\n  assert.same(fromCodePoint(''), '\\0');\n  assert.same(fromCodePoint(), '');\n  assert.same(fromCodePoint(-0), '\\0');\n  assert.same(fromCodePoint(0), '\\0');\n  assert.same(fromCodePoint(0x1D306), '\\uD834\\uDF06');\n  assert.same(fromCodePoint(0x1D306, 0x61, 0x1D307), '\\uD834\\uDF06a\\uD834\\uDF07');\n  assert.same(fromCodePoint(0x61, 0x62, 0x1D307), 'ab\\uD834\\uDF07');\n  assert.same(fromCodePoint(false), '\\0');\n  assert.same(fromCodePoint(null), '\\0');\n  assert.throws(() => fromCodePoint('_'), RangeError);\n  assert.throws(() => fromCodePoint('+Infinity'), RangeError);\n  assert.throws(() => fromCodePoint('-Infinity'), RangeError);\n  assert.throws(() => fromCodePoint(-1), RangeError);\n  assert.throws(() => fromCodePoint(0x10FFFF + 1), RangeError);\n  assert.throws(() => fromCodePoint(3.14), RangeError);\n  assert.throws(() => fromCodePoint(3e-2), RangeError);\n  assert.throws(() => fromCodePoint(-Infinity), RangeError);\n  assert.throws(() => fromCodePoint(Infinity), RangeError);\n  assert.throws(() => fromCodePoint(NaN), RangeError);\n  assert.throws(() => fromCodePoint(undefined), RangeError);\n  assert.throws(() => fromCodePoint({}), RangeError);\n  assert.throws(() => fromCodePoint(/./), RangeError);\n  let number = 0x60;\n  assert.same(fromCodePoint({\n    valueOf() {\n      return ++number;\n    },\n  }), 'a');\n  assert.same(number, 0x61);\n  // one code unit per symbol\n  let counter = 2 ** 15 * 3 / 2;\n  let result = [];\n  while (--counter >= 0) result.push(0);\n  // should not throw\n  fromCodePoint.apply(null, result);\n  counter = 2 ** 15 * 3 / 2;\n  result = [];\n  while (--counter >= 0) result.push(0xFFFF + 1);\n  // should not throw\n  fromCodePoint.apply(null, result);\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.includes.js",
    "content": "import { GLOBAL, STRICT } from '../helpers/constants.js';\n\nconst Symbol = GLOBAL.Symbol || {};\n\nQUnit.test('String#includes', assert => {\n  const { includes } = String.prototype;\n  assert.isFunction(includes);\n  assert.arity(includes, 1);\n  assert.name(includes, 'includes');\n  assert.looksNative(includes);\n  assert.nonEnumerable(String.prototype, 'includes');\n  assert.false('abc'.includes());\n  assert.true('aundefinedb'.includes());\n  assert.true('abcd'.includes('b', 1));\n  assert.false('abcd'.includes('b', 2));\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('includes test');\n    assert.throws(() => includes.call(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => includes.call('a', symbol), 'throws on symbol argument');\n  }\n\n  if (STRICT) {\n    assert.throws(() => includes.call(null, '.'), TypeError);\n    assert.throws(() => includes.call(undefined, '.'), TypeError);\n  }\n\n  const regexp = /./;\n  assert.throws(() => '/./'.includes(regexp), TypeError);\n  regexp[Symbol.match] = false;\n  assert.notThrows(() => '/./'.includes(regexp));\n  const object = {};\n  assert.notThrows(() => '[object Object]'.includes(object));\n  object[Symbol.match] = true;\n  assert.throws(() => '[object Object]'.includes(object), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.is-well-formed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('String#isWellFormed', assert => {\n  const { isWellFormed } = String.prototype;\n  assert.isFunction(isWellFormed);\n  assert.arity(isWellFormed, 0);\n  assert.name(isWellFormed, 'isWellFormed');\n  assert.looksNative(isWellFormed);\n  assert.nonEnumerable(String.prototype, 'isWellFormed');\n\n  assert.true(isWellFormed.call('a'), 'a');\n  assert.true(isWellFormed.call('abc'), 'abc');\n  assert.true(isWellFormed.call('💩'), '💩');\n  assert.true(isWellFormed.call('💩b'), '💩b');\n  assert.true(isWellFormed.call('a💩'), 'a💩');\n  assert.true(isWellFormed.call('a💩b'), 'a💩b');\n  assert.true(isWellFormed.call('💩a💩'), '💩a💩');\n  assert.true(!isWellFormed.call('\\uD83D'), '\\uD83D');\n  assert.true(!isWellFormed.call('\\uDCA9'), '\\uDCA9');\n  assert.true(!isWellFormed.call('\\uDCA9\\uD83D'), '\\uDCA9\\uD83D');\n  assert.true(!isWellFormed.call('a\\uD83D'), 'a\\uD83D');\n  assert.true(!isWellFormed.call('\\uDCA9a'), '\\uDCA9a');\n  assert.true(!isWellFormed.call('a\\uD83Da'), 'a\\uD83Da');\n  assert.true(!isWellFormed.call('a\\uDCA9a'), 'a\\uDCA9a');\n\n  assert.true(isWellFormed.call({\n    toString() {\n      return 'abc';\n    },\n  }), 'conversion #1');\n\n  assert.true(!isWellFormed.call({\n    toString() {\n      return '\\uD83D';\n    },\n  }), 'conversion #2');\n\n  if (STRICT) {\n    assert.throws(() => isWellFormed.call(null), TypeError, 'coercible #1');\n    assert.throws(() => isWellFormed.call(undefined), TypeError, 'coercible #2');\n  }\n\n  assert.throws(() => isWellFormed.call(Symbol('isWellFormed test')), 'throws on symbol context');\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.italics.js",
    "content": "QUnit.test('String#italics', assert => {\n  const { italics } = String.prototype;\n  assert.isFunction(italics);\n  assert.arity(italics, 0);\n  assert.name(italics, 'italics');\n  assert.looksNative(italics);\n  assert.nonEnumerable(String.prototype, 'italics');\n  assert.same('a'.italics(), '<i>a</i>', 'lower case');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => italics.call(Symbol('italics test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.iterator.js",
    "content": "import { GLOBAL } from '../helpers/constants.js';\n\nconst Symbol = GLOBAL.Symbol || {};\n\nQUnit.test('String#@@iterator', assert => {\n  assert.isIterable(String.prototype);\n  let iterator = 'qwe'[Symbol.iterator]();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'String Iterator');\n  assert.same(String(iterator), '[object String Iterator]');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  assert.same(Array.from('𠮷𠮷𠮷').length, 3);\n  iterator = '𠮷𠮷𠮷'[Symbol.iterator]();\n  assert.deepEqual(iterator.next(), {\n    value: '𠮷',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: '𠮷',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: '𠮷',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n\n  // early FF case with native method, but polyfilled `Symbol`\n  // assert.throws(() => ''[Symbol.iterator].call(Symbol()), 'throws on symbol context');\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.link.js",
    "content": "QUnit.test('String#link', assert => {\n  const { link } = String.prototype;\n  assert.isFunction(link);\n  assert.arity(link, 1);\n  assert.name(link, 'link');\n  assert.looksNative(link);\n  assert.nonEnumerable(String.prototype, 'link');\n  assert.same('a'.link('b'), '<a href=\"b\">a</a>', 'lower case');\n  assert.same('a'.link('\"'), '<a href=\"&quot;\">a</a>', 'escape quotes');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('link test');\n    assert.throws(() => link.call(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => link.call('a', symbol), 'throws on symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.match-all.js",
    "content": "import { DESCRIPTORS, STRICT } from '../helpers/constants.js';\n\nQUnit.test('String#matchAll', assert => {\n  const { matchAll } = String.prototype;\n  const { assign } = Object;\n  assert.isFunction(matchAll);\n  assert.arity(matchAll, 1);\n  assert.name(matchAll, 'matchAll');\n  assert.looksNative(matchAll);\n  assert.nonEnumerable(String.prototype, 'matchAll');\n  let data = ['aabc', { toString() { return 'aabc'; } }];\n  for (const target of data) {\n    const iterator = matchAll.call(target, /[ac]/g);\n    assert.isIterator(iterator);\n    assert.isIterable(iterator);\n    assert.deepEqual(iterator.next(), {\n      value: assign(['a'], {\n        input: 'aabc',\n        index: 0,\n      }),\n      done: false,\n    });\n    assert.deepEqual(iterator.next(), {\n      value: assign(['a'], {\n        input: 'aabc',\n        index: 1,\n      }),\n      done: false,\n    });\n    assert.deepEqual(iterator.next(), {\n      value: assign(['c'], {\n        input: 'aabc',\n        index: 3,\n      }),\n      done: false,\n    });\n    assert.deepEqual(iterator.next(), {\n      value: undefined,\n      done: true,\n    });\n  }\n  let iterator = '1111a2b3cccc'.matchAll(/(\\d)(\\D)/g);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'RegExp String Iterator');\n  assert.same(String(iterator), '[object RegExp String Iterator]');\n  assert.deepEqual(iterator.next(), {\n    value: assign(['1a', '1', 'a'], {\n      input: '1111a2b3cccc',\n      index: 3,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: assign(['2b', '2', 'b'], {\n      input: '1111a2b3cccc',\n      index: 5,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: assign(['3c', '3', 'c'], {\n      input: '1111a2b3cccc',\n      index: 7,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  // eslint-disable-next-line regexp/no-missing-g-flag -- required for testing\n  assert.throws(() => '1111a2b3cccc'.matchAll(/(\\d)(\\D)/), TypeError);\n  iterator = '1111a2b3cccc'.matchAll('(\\\\d)(\\\\D)');\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.deepEqual(iterator.next(), {\n    value: assign(['1a', '1', 'a'], {\n      input: '1111a2b3cccc',\n      index: 3,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: assign(['2b', '2', 'b'], {\n      input: '1111a2b3cccc',\n      index: 5,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: assign(['3c', '3', 'c'], {\n      input: '1111a2b3cccc',\n      index: 7,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  /* IE8- issue\n  iterator = 'abc'.matchAll(/\\B/g);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.deepEqual(iterator.next(), {\n    value: assign([''], {\n      input: 'abc',\n      index: 1,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: assign([''], {\n      input: 'abc',\n      index: 2,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  */\n  data = [null, undefined, NaN, 42, {}, []];\n  for (const target of data) {\n    assert.notThrows(() => ''.matchAll(target), `Not throws on ${ target } as the first argument`);\n  }\n\n  if (DESCRIPTORS && typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('matchAll test');\n    assert.throws(() => matchAll.call(symbol, /./), 'throws on symbol context');\n    assert.throws(() => matchAll.call('a', symbol), 'throws on symbol argument');\n  }\n\n  if (STRICT) {\n    assert.throws(() => matchAll.call(null, /./g), TypeError, 'Throws on null as `this`');\n    assert.throws(() => matchAll.call(undefined, /./g), TypeError, 'Throws on undefined as `this`');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.match.js",
    "content": "// TODO: fix escaping in regexps\n/* eslint-disable prefer-regex-literals, regexp/prefer-regexp-exec -- required for testing */\nimport { GLOBAL, NATIVE, STRICT } from '../helpers/constants.js';\nimport { patchRegExp$exec } from '../helpers/helpers.js';\n\nconst Symbol = GLOBAL.Symbol || {};\n\nconst run = assert => {\n  assert.isFunction(''.match);\n  assert.arity(''.match, 1);\n  assert.name(''.match, 'match');\n  assert.looksNative(''.match);\n  assert.nonEnumerable(String.prototype, 'match');\n  let instance = Object(true);\n  instance.match = String.prototype.match;\n  assert.same(instance.match(true)[0], 'true', 'S15.5.4.10_A1_T1');\n  instance = Object(false);\n  instance.match = String.prototype.match;\n  assert.same(instance.match(false)[0], 'false', 'S15.5.4.10_A1_T2');\n  let matched = ''.match();\n  let expected = RegExp().exec('');\n  assert.same(matched.length, expected.length, 'S15.5.4.10_A1_T4 #1');\n  assert.same(matched.index, expected.index, 'S15.5.4.10_A1_T4 #2');\n  assert.same(matched.input, expected.input, 'S15.5.4.10_A1_T4 #3');\n  assert.same('gnulluna'.match(null)[0], 'null', 'S15.5.4.10_A1_T5');\n  matched = Object('undefined').match(undefined);\n  expected = RegExp(undefined).exec('undefined');\n  assert.same(matched.length, expected.length, 'S15.5.4.10_A1_T6 #1');\n  assert.same(matched.index, expected.index, 'S15.5.4.10_A1_T6 #2');\n  assert.same(matched.input, expected.input, 'S15.5.4.10_A1_T6 #3');\n  let object = { toString() { /* empty */ } };\n  matched = String(object).match(undefined);\n  expected = RegExp(undefined).exec('undefined');\n  assert.same(matched.length, expected.length, 'S15.5.4.10_A1_T8 #1');\n  assert.same(matched.index, expected.index, 'S15.5.4.10_A1_T8 #2');\n  assert.same(matched.input, expected.input, 'S15.5.4.10_A1_T8 #3');\n  object = { toString() { return '\\u0041B'; } };\n  let string = 'ABB\\u0041BABAB';\n  assert.same(string.match(object)[0], 'AB', 'S15.5.4.10_A1_T10');\n  object = { toString() { throw new Error('intostr'); } };\n  try {\n    string.match(object);\n    assert.avoid('S15.5.4.10_A1_T11 #1 lead to throwing exception');\n  } catch (error) {\n    assert.same(error.message, 'intostr', `S15.5.4.10_A1_T11 #1.1: Exception === \"intostr\". Actual: ${ error }`);\n  }\n  object = {\n    toString() {\n      return {};\n    },\n    valueOf() {\n      throw new Error('intostr');\n    },\n  };\n  try {\n    string.match(object);\n    assert.avoid('S15.5.4.10_A1_T12 #1 lead to throwing exception');\n  } catch (error) {\n    assert.same(error.message, 'intostr', `S15.5.4.10_A1_T12 #1.1: Exception === \"intostr\". Actual: ${ error }`);\n  }\n  object = {\n    toString() {\n      return {};\n    },\n    valueOf() {\n      return 1;\n    },\n  };\n  assert.same('ABB\\u0041B\\u0031ABAB\\u0031BBAA'.match(object)[0], '1', 'S15.5.4.10_A1_T13 #1');\n  assert.same('ABB\\u0041B\\u0031ABAB\\u0031BBAA'.match(object).length, 1, 'S15.5.4.10_A1_T13 #2');\n  let regexp = RegExp('77');\n  assert.same('ABB\\u0041BABAB\\u0037\\u0037BBAA'.match(regexp)[0], '77', 'S15.5.4.10_A1_T14');\n  string = '1234567890';\n  assert.same(string.match(3)[0], '3', 'S15.5.4.10_A2_T1 #1');\n  assert.same(string.match(3).length, 1, 'S15.5.4.10_A2_T1 #2');\n  assert.same(string.match(3).index, 2, 'S15.5.4.10_A2_T1 #3');\n  assert.same(string.match(3).input, string, 'S15.5.4.10_A2_T1 #4');\n  let matches = ['34', '34', '34'];\n  string = '343443444';\n  assert.same(string.match(/34/g).length, 3, 'S15.5.4.10_A2_T2 #1');\n  for (let i = 0, { length } = matches; i < length; ++i) {\n    assert.same(string.match(/34/g)[i], matches[i], 'S15.5.4.10_A2_T2 #2');\n  }\n  matches = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];\n  string = '123456abcde7890';\n  assert.same(string.match(/\\d/g).length, 10, 'S15.5.4.10_A2_T3 #1');\n  for (let i = 0, { length } = matches; i < length; ++i) {\n    assert.same(string.match(/\\d/g)[i], matches[i], 'S15.5.4.10_A2_T3 #2');\n  }\n  matches = ['12', '34', '56', '78', '90'];\n  assert.same(string.match(/\\d{2}/g).length, 5, 'S15.5.4.10_A2_T4 #1');\n  for (let i = 0, { length } = matches; i < length; ++i) {\n    assert.same(string.match(/\\d{2}/g)[i], matches[i], 'S15.5.4.10_A2_T4 #2');\n  }\n  matches = ['ab', 'cd'];\n  assert.same(string.match(/\\D{2}/g).length, 2, 'S15.5.4.10_A2_T5 #1');\n  for (let i = 0, { length } = matches; i < length; ++i) {\n    assert.same(string.match(/\\D{2}/g)[i], matches[i], 'S15.5.4.10_A2_T5 #2');\n  }\n  string = 'Boston, Mass. 02134';\n  assert.same(string.match(/(\\d{5})([ -]?\\d{4})?$/)[0], '02134', 'S15.5.4.10_A2_T6 #1');\n  assert.same(string.match(/(\\d{5})([ -]?\\d{4})?$/)[1], '02134', 'S15.5.4.10_A2_T6 #2');\n  if (NATIVE) assert.same(string.match(/(\\d{5})([ -]?\\d{4})?$/)[2], undefined, 'S15.5.4.10_A2_T6 #3');\n  assert.same(string.match(/(\\d{5})([ -]?\\d{4})?$/).length, 3, 'S15.5.4.10_A2_T6 #4');\n  assert.same(string.match(/(\\d{5})([ -]?\\d{4})?$/).index, 14, 'S15.5.4.10_A2_T6 #5');\n  assert.same(string.match(/(\\d{5})([ -]?\\d{4})?$/).input, string, 'S15.5.4.10_A2_T6 #6');\n  assert.same(string.match(/(\\d{5})([ -]?\\d{4})?$/g).length, 1, 'S15.5.4.10_A2_T7 #1');\n  assert.same(string.match(/(\\d{5})([ -]?\\d{4})?$/g)[0], '02134', 'S15.5.4.10_A2_T7 #2');\n  /* IE8- buggy here (empty string instead of `undefined`), but we don't polyfill base `.match` logic\n  matches = ['02134', '02134', undefined];\n  string = 'Boston, MA 02134';\n  regexp = /([\\d]{5})([-\\ ]?[\\d]{4})?$/;\n  regexp.lastIndex = 0;\n  assert.same(string.match(regexp).length, 3, 'S15.5.4.10_A2_T8 #1');\n  assert.same(string.match(regexp).index, string.lastIndexOf('0'), 'S15.5.4.10_A2_T8 #2');\n  for (let i = 0, { length } = matches; i < length; ++i) {\n    assert.same(string.match(regexp)[i], matches[i], 'S15.5.4.10_A2_T8 #3');\n  }\n  string = 'Boston, MA 02134';\n  matches = ['02134', '02134', undefined];\n  regexp = /([\\d]{5})([-\\ ]?[\\d]{4})?$/;\n  regexp.lastIndex = string.length;\n  assert.same(string.match(regexp).length, 3, 'S15.5.4.10_A2_T9 #1');\n  assert.same(string.match(regexp).index, string.lastIndexOf('0'), 'S15.5.4.10_A2_T9 #2');\n  for (let i = 0, { length } = matches; i < length; ++i) {\n    assert.same(string.match(regexp)[i], matches[i], 'S15.5.4.10_A2_T9 #3');\n  }\n  string = 'Boston, MA 02134';\n  matches = ['02134', '02134', undefined];\n  regexp = /([\\d]{5})([-\\ ]?[\\d]{4})?$/;\n  regexp.lastIndex = string.lastIndexOf('0');\n  assert.same(string.match(regexp).length, 3, 'S15.5.4.10_A2_T10 #1');\n  assert.same(string.match(regexp).index, string.lastIndexOf('0'), 'S15.5.4.10_A2_T10 #2');\n  for (let i = 0, { length } = matches; i < length; ++i) {\n    assert.same(string.match(regexp)[i], matches[i], 'S15.5.4.10_A2_T10 #3');\n  }\n  string = 'Boston, MA 02134';\n  matches = ['02134', '02134', undefined];\n  regexp = /([\\d]{5})([-\\ ]?[\\d]{4})?$/;\n  regexp.lastIndex = string.lastIndexOf('0') + 1;\n  assert.same(string.match(regexp).length, 3, 'S15.5.4.10_A2_T11 #1');\n  assert.same(string.match(regexp).index, string.lastIndexOf('0'), 'S15.5.4.10_A2_T11 #2');\n  for (let i = 0, { length } = matches; i < length; ++i) {\n    assert.same(string.match(regexp)[i], matches[i], 'S15.5.4.10_A2_T11 #3');\n  }\n  */\n  string = 'Boston, MA 02134';\n  regexp = /(\\d{5})([ -]?\\d{4})?$/g;\n  assert.same(string.match(regexp).length, 1, 'S15.5.4.10_A2_T12 #1');\n  assert.same(string.match(regexp)[0], '02134', 'S15.5.4.10_A2_T12 #2');\n  regexp.lastIndex = 0;\n  assert.same(string.match(regexp).length, 1, 'S15.5.4.10_A2_T13 #1');\n  assert.same(string.match(regexp)[0], '02134', 'S15.5.4.10_A2_T13 #2');\n  regexp.lastIndex = string.length;\n  assert.same(string.match(regexp).length, 1, 'S15.5.4.10_A2_T14 #1');\n  assert.same(string.match(regexp)[0], '02134', 'S15.5.4.10_A2_T14 #2');\n  regexp.lastIndex = string.lastIndexOf('0');\n  assert.same(string.match(regexp).length, 1, 'S15.5.4.10_A2_T15 #1');\n  assert.same(string.match(regexp)[0], '02134', 'S15.5.4.10_A2_T15 #2');\n  regexp.lastIndex = string.lastIndexOf('0') + 1;\n  assert.same(string.match(regexp).length, 1, 'S15.5.4.10_A2_T16 #1');\n  assert.same(string.match(regexp)[0], '02134', 'S15.5.4.10_A2_T16 #2');\n  regexp = /0./;\n  const number = 10203040506070809000;\n  assert.same(''.match.call(number, regexp)[0], '02', 'S15.5.4.10_A2_T17 #1');\n  assert.same(''.match.call(number, regexp).length, 1, 'S15.5.4.10_A2_T17 #2');\n  assert.same(''.match.call(number, regexp).index, 1, 'S15.5.4.10_A2_T17 #3');\n  assert.same(''.match.call(number, regexp).input, String(number), 'S15.5.4.10_A2_T17 #4');\n  regexp.lastIndex = 0;\n  assert.same(''.match.call(number, regexp)[0], '02', 'S15.5.4.10_A2_T18 #1');\n  assert.same(''.match.call(number, regexp).length, 1, 'S15.5.4.10_A2_T18 #2');\n  assert.same(''.match.call(number, regexp).index, 1, 'S15.5.4.10_A2_T18 #3');\n  assert.same(''.match.call(number, regexp).input, String(number), 'S15.5.4.10_A2_T18 #4');\n\n  assert.throws(() => ''.match.call(Symbol('match test'), /./), 'throws on symbol context');\n};\n\nQUnit.test('String#match regression', run);\n\nQUnit.test('RegExp#@@match appearance', assert => {\n  const match = /./[Symbol.match];\n  assert.isFunction(match);\n  // assert.name(match, '[Symbol.match]');\n  assert.arity(match, 1);\n  assert.looksNative(match);\n  assert.nonEnumerable(RegExp.prototype, Symbol.match);\n});\n\nQUnit.test('RegExp#@@match basic behavior', assert => {\n  const string = '123456abcde7890';\n  const matches = ['12', '34', '56', '78', '90'];\n  assert.same(/\\d{2}/g[Symbol.match](string).length, 5);\n  for (let i = 0, { length } = matches; i < length; ++i) {\n    assert.same(/\\d{2}/g[Symbol.match](string)[i], matches[i]);\n  }\n});\n\nQUnit.test('String#match delegates to @@match', assert => {\n  const string = STRICT ? 'string' : Object('string');\n  const number = STRICT ? 42 : Object(42);\n  const object = {};\n  object[Symbol.match] = function (it) {\n    return { value: it };\n  };\n  assert.same(string.match(object).value, string);\n  assert.same(''.match.call(number, object).value, number);\n  const regexp = /./;\n  regexp[Symbol.match] = function (it) {\n    return { value: it };\n  };\n  assert.same(string.match(regexp).value, string);\n  assert.same(''.match.call(number, regexp).value, number);\n});\n\nQUnit.test('RegExp#@@match delegates to exec', assert => {\n  const exec = function (...args) {\n    execCalled = true;\n    return /./.exec.apply(this, args);\n  };\n\n  let execCalled = false;\n  let re = /[ac]/;\n  re.exec = exec;\n  assert.deepEqual(re[Symbol.match]('abc'), ['a']);\n  assert.true(execCalled);\n\n  re = /a/;\n  // Not a function, should be ignored\n  re.exec = 3;\n  assert.deepEqual(re[Symbol.match]('abc'), ['a']);\n\n  re = /a/;\n  // Does not return an object, should throw\n  re.exec = () => 3;\n  assert.throws(() => re[Symbol.match]('abc'));\n});\n\nQUnit.test('RegExp#@@match implementation', patchRegExp$exec(run));\n\nQUnit.test('RegExp#@@match global+unicode empty match at string end', assert => {\n  // eslint-disable-next-line regexp/no-empty-group -- testing\n  const result = 'abc'.match(/(?:)/gu);\n  assert.arrayEqual(result, ['', '', '', ''], 'does not infinite loop on global+unicode empty match');\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.pad-end.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('String#padEnd', assert => {\n  const { padEnd } = String.prototype;\n  assert.isFunction(padEnd);\n  assert.arity(padEnd, 1);\n  assert.name(padEnd, 'padEnd');\n  assert.looksNative(padEnd);\n  assert.nonEnumerable(String.prototype, 'padEnd');\n  assert.same('abc'.padEnd(5), 'abc  ');\n  assert.same('abc'.padEnd(4, 'de'), 'abcd');\n  assert.same('abc'.padEnd(), 'abc');\n  assert.same('abc'.padEnd(5, '_'), 'abc__');\n  assert.same(''.padEnd(0), '');\n  assert.same('foo'.padEnd(1), 'foo');\n  assert.same('foo'.padEnd(5, ''), 'foo');\n\n  const thrower = { toString() { throw new Error('oops'); } };\n  assert.throws(() => 'a'.padEnd(10, thrower), 'throws on thrower argument conversion');\n  assert.same('abc'.padEnd(2, thrower), 'abc', 'does not throw on thrower argument when no padding needed');\n\n  const symbol = Symbol('padEnd test');\n  assert.throws(() => padEnd.call(symbol, 10, 'a'), 'throws on symbol context');\n  assert.throws(() => padEnd.call('a', 10, symbol), 'throws on symbol argument');\n  assert.same('abc'.padEnd(2, symbol), 'abc', 'does not throw on symbol fillString when no padding needed');\n\n  if (STRICT) {\n    assert.throws(() => padEnd.call(null, 0), TypeError);\n    assert.throws(() => padEnd.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.pad-start.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('String#padStart', assert => {\n  const { padStart } = String.prototype;\n  assert.isFunction(padStart);\n  assert.arity(padStart, 1);\n  assert.name(padStart, 'padStart');\n  assert.looksNative(padStart);\n  assert.nonEnumerable(String.prototype, 'padStart');\n  assert.same('abc'.padStart(5), '  abc');\n  assert.same('abc'.padStart(4, 'de'), 'dabc');\n  assert.same('abc'.padStart(), 'abc');\n  assert.same('abc'.padStart(5, '_'), '__abc');\n  assert.same(''.padStart(0), '');\n  assert.same('foo'.padStart(1), 'foo');\n  assert.same('foo'.padStart(5, ''), 'foo');\n\n  const thrower = { toString() { throw new Error('oops'); } };\n  assert.throws(() => 'a'.padStart(10, thrower), 'throws on thrower argument conversion');\n  assert.same('abc'.padStart(2, thrower), 'abc', 'does not throw on thrower argument when no padding needed');\n\n  const symbol = Symbol('padStart test');\n  assert.throws(() => padStart.call(symbol, 10, 'a'), 'throws on symbol context');\n  assert.throws(() => padStart.call('a', 10, symbol), 'throws on symbol argument');\n  assert.same('abc'.padStart(2, symbol), 'abc', 'does not throw on symbol fillString when no padding needed');\n\n  if (STRICT) {\n    assert.throws(() => padStart.call(null, 0), TypeError);\n    assert.throws(() => padStart.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.raw.js",
    "content": "QUnit.test('String.raw', assert => {\n  const { raw } = String;\n  assert.isFunction(raw);\n  assert.arity(raw, 1);\n  assert.name(raw, 'raw');\n  assert.looksNative(raw);\n  assert.nonEnumerable(String, 'raw');\n  assert.same(raw({ raw: ['Hi\\\\n', '!'] }, 'Bob'), 'Hi\\\\nBob!', 'raw is array');\n  assert.same(raw({ raw: 'test' }, 0, 1, 2), 't0e1s2t', 'raw is string');\n  assert.same(raw({ raw: 'test' }, 0), 't0est', 'lacks substituting');\n  assert.same(raw({ raw: [] }), '', 'empty template');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('raw test');\n    assert.throws(() => raw({ raw: [symbol] }, 0), TypeError, 'throws on symbol #1');\n    assert.throws(() => raw({ raw: 'test' }, symbol), TypeError, 'throws on symbol #2');\n  }\n\n  assert.throws(() => raw({}), TypeError);\n  assert.throws(() => raw({ raw: null }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.repeat.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('String#repeat', assert => {\n  const { repeat } = String.prototype;\n  assert.isFunction(repeat);\n  assert.arity(repeat, 1);\n  assert.name(repeat, 'repeat');\n  assert.looksNative(repeat);\n  assert.nonEnumerable(String.prototype, 'repeat');\n  assert.same('qwe'.repeat(3), 'qweqweqwe');\n  assert.same('qwe'.repeat(2.5), 'qweqwe');\n  assert.throws(() => 'qwe'.repeat(-1), RangeError);\n  assert.throws(() => 'qwe'.repeat(Infinity), RangeError);\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => repeat.call(Symbol('repeat test')), 'throws on symbol context');\n  }\n\n  if (STRICT) {\n    assert.throws(() => repeat.call(null, 1), TypeError);\n    assert.throws(() => repeat.call(undefined, 1), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.replace-all.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('String#replaceAll', assert => {\n  const { replaceAll } = String.prototype;\n  assert.isFunction(replaceAll);\n  assert.arity(replaceAll, 2);\n  assert.name(replaceAll, 'replaceAll');\n  assert.looksNative(replaceAll);\n  assert.nonEnumerable(String.prototype, 'replaceAll');\n  assert.same('q=query+string+parameters'.replaceAll('+', ' '), 'q=query string parameters');\n  assert.same('foo'.replaceAll('o', {}), 'f[object Object][object Object]');\n  assert.same('[object Object]x[object Object]'.replaceAll({}, 'y'), 'yxy');\n  assert.same(replaceAll.call({}, 'bject', 'lolo'), '[ololo Ololo]');\n  assert.same('aba'.replaceAll('b', (search, i, string) => {\n    assert.same(search, 'b', '`search` is `b`');\n    assert.same(i, 1, '`i` is 1');\n    assert.same(string, 'aba', '`string` is `aba`');\n    return 'c';\n  }), 'aca');\n  const searcher = {\n    [Symbol.replace](O, replaceValue) {\n      assert.same(this, searcher, '`this` is `searcher`');\n      assert.same(String(O), 'aba', '`O` is `aba`');\n      assert.same(String(replaceValue), 'c', '`replaceValue` is `c`');\n      return 'foo';\n    },\n  };\n  assert.same('aba'.replaceAll(searcher, 'c'), 'foo');\n  assert.same('aba'.replaceAll('b'), 'aundefineda');\n  assert.same('xxx'.replaceAll('', '_'), '_x_x_x_');\n  assert.same('121314'.replaceAll('1', '$$'), '$2$3$4', '$$');\n  assert.same('121314'.replaceAll('1', '$&'), '121314', '$&');\n  assert.same('121314'.replaceAll('1', '$`'), '212312134', '$`');\n  assert.same('121314'.replaceAll('1', \"$'\"), '213142314344', \"$'\");\n\n  const symbol = Symbol('replaceAll test');\n  assert.throws(() => replaceAll.call(symbol, 'a', 'b'), 'throws on symbol context');\n  assert.throws(() => replaceAll.call('a', symbol, 'b'), 'throws on symbol argument 1');\n  assert.throws(() => replaceAll.call('a', 'b', symbol), 'throws on symbol argument 2');\n\n  if (STRICT) {\n    assert.throws(() => replaceAll.call(null, 'a', 'b'), TypeError);\n    assert.throws(() => replaceAll.call(undefined, 'a', 'b'), TypeError);\n  }\n\n  // eslint-disable-next-line regexp/no-missing-g-flag -- required for testing\n  assert.throws(() => 'b.b.b.b.b'.replaceAll(/\\./, 'a'), TypeError);\n  // eslint-disable-next-line unicorn/prefer-string-replace-all -- required for testing\n  assert.same('b.b.b.b.b'.replaceAll(/\\./g, 'a'), 'babababab');\n  const object = {};\n  assert.same('[object Object]'.replaceAll(object, 'a'), 'a');\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.replace.js",
    "content": "/* eslint-disable prefer-regex-literals, regexp/no-unused-capturing-group, sonarjs/slow-regex, unicorn/prefer-string-replace-all -- required for testing */\nimport { GLOBAL, NATIVE, STRICT } from '../helpers/constants.js';\nimport { patchRegExp$exec } from '../helpers/helpers.js';\n\nconst Symbol = GLOBAL.Symbol || {};\n\nconst run = assert => {\n  assert.isFunction(''.replace);\n  assert.arity(''.replace, 2);\n  assert.name(''.replace, 'replace');\n  assert.looksNative(''.replace);\n  assert.nonEnumerable(String.prototype, 'replace');\n  let instance = Object(true);\n  instance.replace = String.prototype.replace;\n  assert.same(instance.replace(true, 1), '1', 'S15.5.4.11_A1_T1');\n  instance = Object(false);\n  instance.replace = String.prototype.replace;\n  assert.same(instance.replace(false, undefined), 'undefined', 'S15.5.4.11_A1_T2');\n  assert.same('gnulluna'.replace(null, (a1, a2) => `${ a2 }`), 'g1una', 'S15.5.4.11_A1_T4');\n  assert.same('gnulluna'.replace(null, () => { /* empty */ }), 'gundefineduna', 'S15.5.4.11_A1_T5');\n  assert.same(Object('undefined').replace(undefined, (a1, a2) => a2 + 42), '42', 'S15.5.4.11_A1_T6');\n  assert.same('undefined'.replace('e', undefined), 'undundefinedfined', 'S15.5.4.11_A1_T7');\n  assert.same(String({\n    toString() { /* empty */ },\n  }).replace(/e/g, undefined), 'undundefinedfinundefinedd', 'S15.5.4.11_A1_T8');\n  assert.same(new String({\n    valueOf() { /* empty */ },\n    toString: undefined,\n  }).replace(function () { /* empty */ }(), (a1, a2, a3) => a1 + a2 + a3), 'undefined0undefined', 'S15.5.4.11_A1_T9');\n  assert.same('ABB\\u0041BABAB'.replace({\n    toString() {\n      return '\\u0041B';\n    },\n  }, () => { /* empty */ }), 'undefinedBABABAB', 'S15.5.4.11_A1_T10');\n  if (NATIVE) {\n    try {\n      'ABB\\u0041BABAB'.replace({\n        toString() {\n          throw new Error('insearchValue');\n        },\n      }, {\n        toString() {\n          throw new Error('inreplaceValue');\n        },\n      });\n      assert.avoid('S15.5.4.11_A1_T11 #1 lead to throwing exception');\n    } catch (error) {\n      assert.same(error.message, 'insearchValue', 'S15.5.4.11_A1_T11 #2');\n    }\n    try {\n      Object('ABB\\u0041BABAB').replace({\n        toString() {\n          return {};\n        },\n        valueOf() {\n          throw new Error('insearchValue');\n        },\n      }, {\n        toString() {\n          throw new Error('inreplaceValue');\n        },\n      });\n      assert.avoid('S15.5.4.11_A1_T12 #1 lead to throwing exception');\n    } catch (error) {\n      assert.same(error.message, 'insearchValue', 'S15.5.4.11_A1_T12 #2');\n    }\n  }\n  try {\n    'ABB\\u0041BABAB\\u0031BBAA'.replace({\n      toString() {\n        return {};\n      },\n      valueOf() {\n        throw new Error('insearchValue');\n      },\n    }, {\n      toString() {\n        return 1;\n      },\n    });\n    assert.avoid('S15.5.4.11_A1_T13 #1 lead to throwing exception');\n  } catch (error) {\n    assert.same(error.message, 'insearchValue', 'S15.5.4.11_A1_T13 #2');\n  }\n  assert.same('ABB\\u0041BABAB\\u0037\\u0037BBAA'.replace(new RegExp('77'), 1), 'ABBABABAB\\u0031BBAA', 'S15.5.4.11_A1_T14');\n  instance = Object(1100.00777001);\n  instance.replace = String.prototype.replace;\n  try {\n    instance.replace({\n      toString() {\n        return /77/;\n      },\n    }, 1);\n    assert.avoid('S15.5.4.11_A1_T15 #1 lead to throwing exception');\n  } catch (error) {\n    assert.true(error instanceof TypeError, 'S15.5.4.11_A1_T15 #2');\n  }\n  instance = Object(1100.00777001);\n  instance.replace = String.prototype.replace;\n  try {\n    instance.replace(/77/, {\n      toString() {\n        return (a1, a2) => `${ a2 }z`;\n      },\n    });\n    assert.avoid('S15.5.4.11_A1_T16 #1 lead to throwing exception');\n  } catch (error) {\n    assert.true(error instanceof TypeError, 'S15.5.4.11_A1_T16 #2');\n  }\n  assert.same('asdf'.replace(RegExp('', 'g'), '1'), '1a1s1d1f1', 'S15.5.4.11_A1_T17');\n  assert.same('She sells seashells by the seashore.'.replace(/sh/g, 'sch'), 'She sells seaschells by the seaschore.', 'S15.5.4.11_A2_T1');\n  assert.same('She sells seashells by the seashore.'.replace(/sh/g, '$$sch'), 'She sells sea$schells by the sea$schore.', 'S15.5.4.11_A2_T2');\n  assert.same('She sells seashells by the seashore.'.replace(/sh/g, '$&sch'), 'She sells seashschells by the seashschore.', 'S15.5.4.11_A2_T3');\n  assert.same('She sells seashells by the seashore.'.replace(/sh/g, '$`sch'), 'She sells seaShe sells seaschells by the seaShe sells seashells by the seaschore.', 'S15.5.4.11_A2_T4');\n  assert.same('She sells seashells by the seashore.'.replace(/sh/g, \"$'sch\"), 'She sells seaells by the seashore.schells by the seaore.schore.', 'S15.5.4.11_A2_T5');\n  assert.same('She sells seashells by the seashore.'.replace(/sh/, 'sch'), 'She sells seaschells by the seashore.', 'S15.5.4.11_A2_T6');\n  assert.same('She sells seashells by the seashore.'.replace(/sh/, '$$sch'), 'She sells sea$schells by the seashore.', 'S15.5.4.11_A2_T7');\n  assert.same('She sells seashells by the seashore.'.replace(/sh/, '$&sch'), 'She sells seashschells by the seashore.', 'S15.5.4.11_A2_T8');\n  assert.same('She sells seashells by the seashore.'.replace(/sh/, '$`sch'), 'She sells seaShe sells seaschells by the seashore.', 'S15.5.4.11_A2_T9');\n  assert.same('She sells seashells by the seashore.'.replace(/sh/, \"$'sch\"), 'She sells seaells by the seashore.schells by the seashore.', 'S15.5.4.11_A2_T10');\n  assert.same('uid=31'.replace(/(uid=)(\\d+)/, '$1115'), 'uid=115', 'S15.5.4.11_A3_T1');\n  assert.same('uid=31'.replace(/(uid=)(\\d+)/, '$11A15'), 'uid=1A15', 'S15.5.4.11_A3_T3');\n  assert.same('abc12 def34'.replace(/([a-z]+)(\\d+)/, (a, b, c) => c + b), '12abc def34', 'S15.5.4.11_A4_T1');\n  // eslint-disable-next-line regexp/optimal-quantifier-concatenation -- required for testing\n  assert.same('aaaaaaaaaa,aaaaaaaaaaaaaaa'.replace(/^(a+)\\1*,\\1+$/, '$1'), 'aaaaa', 'S15.5.4.11_A5_T1');\n\n  // https://github.com/zloirock/core-js/issues/471\n  // eslint-disable-next-line regexp/no-useless-dollar-replacements, regexp/strict -- required for testing\n  assert.same('{price} Retail'.replace(/{price}/g, '$25.00'), '$25.00 Retail');\n  // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n  assert.same('a'.replace(/(.)/, '$0'), '$0');\n\n  assert.throws(() => ''.replace.call(Symbol('replace test'), /./, ''), 'throws on symbol context');\n\n  assert.same('.a'.replace(new RegExp('a', 'y'), '.'), '.a', 'Replacement for y');\n};\n\nQUnit.test('String#replace regression', run);\n\nQUnit.test('RegExp#@@replace appearance', assert => {\n  const replace = /./[Symbol.replace];\n  assert.isFunction(replace);\n  // assert.name(replace, '[Symbol.replace]');\n  assert.arity(replace, 2);\n  assert.looksNative(replace);\n  assert.nonEnumerable(RegExp.prototype, Symbol.replace);\n});\n\nQUnit.test('RegExp#@@replace basic behavior', assert => {\n  assert.same(/([a-z]+)(\\d+)/[Symbol.replace]('abc12 def34', (a, b, c) => c + b), '12abc def34');\n});\n\nQUnit.test('String#replace delegates to @@replace', assert => {\n  const string = STRICT ? 'string' : Object('string');\n  const number = STRICT ? 42 : Object(42);\n  const object = {};\n  object[Symbol.replace] = function (a, b) {\n    return { a, b };\n  };\n  assert.same(string.replace(object, 42).a, string);\n  assert.same(string.replace(object, 42).b, 42);\n  assert.same(''.replace.call(number, object, 42).a, number);\n  assert.same(''.replace.call(number, object, 42).b, 42);\n  const regexp = /./;\n  regexp[Symbol.replace] = function (a, b) {\n    return { a, b };\n  };\n  assert.same(string.replace(regexp, 42).a, string);\n  assert.same(string.replace(regexp, 42).b, 42);\n  assert.same(''.replace.call(number, regexp, 42).a, number);\n  assert.same(''.replace.call(number, regexp, 42).b, 42);\n});\n\nQUnit.test('RegExp#@@replace delegates to exec', assert => {\n  const exec = function (...args) {\n    execCalled = true;\n    return /./.exec.apply(this, args);\n  };\n\n  let execCalled = false;\n  let re = /[ac]/;\n  re.exec = exec;\n  assert.deepEqual(re[Symbol.replace]('abc', 'f'), 'fbc');\n  assert.true(execCalled);\n  assert.same(re.lastIndex, 0);\n\n  execCalled = false;\n  re = /[ac]/g;\n  re.exec = exec;\n  assert.deepEqual(re[Symbol.replace]('abc', 'f'), 'fbf');\n  assert.true(execCalled);\n  assert.same(re.lastIndex, 0);\n\n  re = /a/;\n  // Not a function, should be ignored\n  re.exec = 3;\n  assert.deepEqual(re[Symbol.replace]('abc', 'f'), 'fbc');\n\n  re = /a/;\n  // Does not return an object, should throw\n  re.exec = () => 3;\n  assert.throws(() => re[Symbol.replace]('abc', 'f'));\n});\n\nQUnit.test('RegExp#@@replace correctly handles substitutions', assert => {\n  const re = /./;\n  re.exec = function () {\n    const result = ['23', '7'];\n    result.groups = { '!!!': '7' };\n    result.index = 1;\n    return result;\n  };\n  // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n  assert.same('1234'.replace(re, '$1'), '174');\n  // eslint-disable-next-line regexp/no-useless-dollar-replacements -- required for testing\n  assert.same('1234'.replace(re, '$<!!!>'), '174');\n  assert.same('1234'.replace(re, '$`'), '114');\n  assert.same('1234'.replace(re, \"$'\"), '144');\n  assert.same('1234'.replace(re, '$$'), '1$4');\n  assert.same('1234'.replace(re, '$&'), '1234');\n  // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n  assert.same('1234'.replace(re, '$x'), '1$x4');\n\n  let args;\n  assert.same('1234'.replace(re, (...$args) => {\n    args = $args;\n    return 'x';\n  }), '1x4');\n  assert.deepEqual(args, ['23', '7', 1, '1234', { '!!!': '7' }]);\n});\n\nQUnit.test('RegExp#@@replace implementation', patchRegExp$exec(run));\n\nQUnit.test('RegExp#@@replace global+unicode empty match at string end', assert => {\n  // eslint-disable-next-line regexp/no-empty-group -- testing\n  assert.same('abc'.replace(/(?:)/gu, '-'), '-a-b-c-', 'does not infinite loop on global+unicode empty match');\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.search.js",
    "content": "/* eslint-disable prefer-regex-literals -- required for testing */\nimport { GLOBAL, STRICT } from '../helpers/constants.js';\nimport { patchRegExp$exec } from '../helpers/helpers.js';\n\nconst Symbol = GLOBAL.Symbol || {};\n\nconst run = assert => {\n  assert.isFunction(''.search);\n  assert.arity(''.search, 1);\n  assert.name(''.search, 'search');\n  assert.looksNative(''.search);\n  assert.nonEnumerable(String.prototype, 'search');\n  let instance = Object(true);\n  instance.search = String.prototype.search;\n  assert.same(instance.search(true), 0, 'S15.5.4.12_A1_T1');\n  instance = Object(false);\n  instance.search = String.prototype.search;\n  assert.same(instance.search(false), 0, 'S15.5.4.12_A1_T2');\n  assert.same(''.search(), 0, 'S15.5.4.12_A1_T4 #1');\n  assert.same('--undefined--'.search(), 0, 'S15.5.4.12_A1_T4 #2');\n  assert.same('gnulluna'.search(null), 1, 'S15.5.4.12_A1_T5');\n  assert.same(Object('undefined').search(undefined), 0, 'S15.5.4.12_A1_T6');\n  assert.same('undefined'.search(undefined), 0, 'S15.5.4.12_A1_T7');\n  assert.same(String({\n    toString() { /* empty */ },\n  }).search(undefined), 0, 'S15.5.4.12_A1_T8');\n  assert.same('ssABB\\u0041BABAB'.search({\n    toString() {\n      return '\\u0041B';\n    },\n  }), 2, 'S15.5.4.12_A1_T10');\n  try {\n    'ABB\\u0041BABAB'.search({\n      toString() {\n        throw new Error('intostr');\n      },\n    });\n    assert.avoid('S15.5.4.12_A1_T11 #1 lead to throwing exception');\n  } catch (error) {\n    assert.same(error.message, 'intostr', 'S15.5.4.12_A1_T11 #2');\n  }\n  try {\n    Object('ABB\\u0041BABAB').search({\n      toString() {\n        return {};\n      },\n      valueOf() {\n        throw new Error('intostr');\n      },\n    });\n    assert.avoid('S15.5.4.12_A1_T12 #1 lead to throwing exception');\n  } catch (error) {\n    assert.same(error.message, 'intostr', 'S15.5.4.12_A1_T12 #2');\n  }\n  assert.same('ABB\\u0041B\\u0031ABAB\\u0031BBAA'.search({\n    toString() {\n      return {};\n    },\n    valueOf() {\n      return 1;\n    },\n  }), 5, 'S15.5.4.12_A1_T13');\n  assert.same('ABB\\u0041BABAB\\u0037\\u0037BBAA'.search(RegExp('77')), 9, 'S15.5.4.12_A1_T14');\n  assert.same(Object('test string').search('string'), 5, 'S15.5.4.12_A2_T1');\n  assert.same(Object('test string').search('String'), -1, 'S15.5.4.12_A2_T2');\n  assert.same(Object('test string').search(/string/i), 5, 'S15.5.4.12_A2_T3');\n  assert.same(Object('test string').search(/Four/), -1, 'S15.5.4.12_A2_T4');\n  assert.same(Object('one two three four five').search(/four/), 14, 'S15.5.4.12_A2_T5');\n  assert.same(Object('test string').search('nonexistent'), -1, 'S15.5.4.12_A2_T6');\n  assert.same(Object('test string probe').search('string pro'), 5, 'S15.5.4.12_A2_T7');\n  let string = Object('power of the power of the power of the power of the power of the power of the great sword');\n  assert.same(string.search(/the/), string.search(/the/g), 'S15.5.4.12_A3_T1');\n  string = Object('power \\u006F\\u0066 the power of the power \\u006F\\u0066 the power of the power \\u006F\\u0066 the power of the great sword');\n  assert.same(string.search(/of/), string.search(/of/g), 'S15.5.4.12_A3_T2');\n\n  assert.throws(() => ''.search.call(Symbol('search test'), /./), 'throws on symbol context');\n};\n\nQUnit.test('String#search regression', run);\n\nQUnit.test('RegExp#@@search appearance', assert => {\n  const search = /./[Symbol.search];\n  assert.isFunction(search);\n  // assert.name(search, '[Symbol.search]');\n  assert.arity(search, 1);\n  assert.looksNative(search);\n  assert.nonEnumerable(RegExp.prototype, Symbol.search);\n});\n\nQUnit.test('RegExp#@@search basic behavior', assert => {\n  assert.same(/four/[Symbol.search]('one two three four five'), 14);\n  assert.same(/Four/[Symbol.search]('one two three four five'), -1);\n});\n\nQUnit.test('String#search delegates to @@search', assert => {\n  const string = STRICT ? 'string' : Object('string');\n  const number = STRICT ? 42 : Object(42);\n  const object = {};\n  object[Symbol.search] = function (it) {\n    return { value: it };\n  };\n  assert.same(string.search(object).value, string);\n  assert.same(''.search.call(number, object).value, number);\n  const regexp = /./;\n  regexp[Symbol.search] = function (it) {\n    return { value: it };\n  };\n  assert.same(string.search(regexp).value, string);\n  assert.same(''.search.call(number, regexp).value, number);\n});\n\nQUnit.test('RegExp#@@search delegates to exec', assert => {\n  let execCalled = false;\n  let re = /b/;\n  re.lastIndex = 7;\n  re.exec = function (...args) {\n    execCalled = true;\n    return /./.exec.apply(this, args);\n  };\n  assert.deepEqual(re[Symbol.search]('abc'), 1);\n  assert.true(execCalled);\n  assert.same(re.lastIndex, 7);\n\n  re = /b/;\n  // Not a function, should be ignored\n  re.exec = 3;\n  assert.deepEqual(re[Symbol.search]('abc'), 1);\n\n  re = /b/;\n  // Does not return an object, should throw\n  re.exec = () => 3;\n  assert.throws(() => re[Symbol.search]('abc'));\n});\n\nQUnit.test('RegExp#@@search implementation', patchRegExp$exec(run));\n"
  },
  {
    "path": "tests/unit-global/es.string.small.js",
    "content": "QUnit.test('String#small', assert => {\n  const { small } = String.prototype;\n  assert.isFunction(small);\n  assert.arity(small, 0);\n  assert.name(small, 'small');\n  assert.looksNative(small);\n  assert.nonEnumerable(String.prototype, 'small');\n  assert.same('a'.small(), '<small>a</small>', 'lower case');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => small.call(Symbol('small test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.split.js",
    "content": "/* eslint-disable prefer-regex-literals -- required for testing */\n/* eslint-disable regexp/no-empty-group, regexp/no-empty-capturing-group -- required for testing */\n/* eslint-disable regexp/optimal-lookaround-quantifier, regexp/no-lazy-ends -- required for testing */\nimport { GLOBAL, NATIVE, STRICT } from '../helpers/constants.js';\nimport { patchRegExp$exec } from '../helpers/helpers.js';\n\nconst Symbol = GLOBAL.Symbol || {};\n\nconst run = assert => {\n  assert.isFunction(''.split);\n  assert.arity(''.split, 2);\n  assert.name(''.split, 'split');\n  assert.looksNative(''.split);\n  assert.nonEnumerable(String.prototype, 'split');\n  assert.arrayEqual('ab'.split(), ['ab'], 'If \"separator\" is undefined must return Array with one String - \"this\" string');\n  assert.arrayEqual('ab'.split(undefined), ['ab'], 'If \"separator\" is undefined must return Array with one String - \"this\" string');\n  assert.arrayEqual('ab'.split(undefined, 0), [], 'If \"separator\" is undefined and \"limit\" set to 0 must return Array[]');\n  assert.arrayEqual(''.split(), [''], \"''.split() results in ['']\");\n  assert.arrayEqual(''.split(/./), [''], \"''.split(/./) results in ['']\");\n  assert.arrayEqual(''.split(/.?/), [], \"''.split(/.?/) results in []\");\n  assert.arrayEqual(''.split(/.??/), [], \"''.split(/.??/) results in []\");\n  assert.arrayEqual('ab'.split(/a*/), ['', 'b'], \"'ab'.split(/a*/) results in ['', 'b']\");\n  assert.arrayEqual('ab'.split(/a*?/), ['a', 'b'], \"'ab'.split(/a*?/) results in ['a', 'b']\");\n  // eslint-disable-next-line regexp/no-useless-non-capturing-group -- required for testing\n  assert.arrayEqual('ab'.split(/(?:ab)/), ['', ''], \"'ab'.split(/(?:ab)/) results in ['', '']\");\n  assert.arrayEqual('ab'.split(/(?:ab)*/), ['', ''], \"'ab'.split(/(?:ab)*/) results in ['', '']\");\n  assert.arrayEqual('ab'.split(/(?:ab)*?/), ['a', 'b'], \"'ab'.split(/(?:ab)*?/) results in ['a', 'b']\");\n  assert.arrayEqual('test'.split(''), ['t', 'e', 's', 't'], \"'test'.split('') results in ['t', 'e', 's', 't']\");\n  assert.arrayEqual('test'.split(), ['test'], \"'test'.split() results in ['test']\");\n  assert.arrayEqual('111'.split(1), ['', '', '', ''], \"'111'.split(1) results in ['', '', '', '']\");\n  assert.arrayEqual('test'.split(/(?:)/, 2), ['t', 'e'], \"'test'.split(/(?:)/, 2) results in ['t', 'e']\");\n  assert.arrayEqual('test'.split(/(?:)/, -1), ['t', 'e', 's', 't'], \"'test'.split(/(?:)/, -1) results in ['t', 'e', 's', 't']\");\n  assert.arrayEqual('test'.split(/(?:)/, undefined), ['t', 'e', 's', 't'], \"'test'.split(/(?:)/, undefined) results in ['t', 'e', 's', 't']\");\n  assert.arrayEqual('test'.split(/(?:)/, null), [], \"'test'.split(/(?:)/, null) results in []\");\n  assert.arrayEqual('test'.split(/(?:)/, NaN), [], \"'test'.split(/(?:)/, NaN) results in []\");\n  assert.arrayEqual('test'.split(/(?:)/, true), ['t'], \"'test'.split(/(?:)/, true) results in ['t']\");\n  assert.arrayEqual('test'.split(/(?:)/, '2'), ['t', 'e'], \"'test'.split(/(?:)/, '2') results in ['t', 'e']\");\n  assert.arrayEqual('test'.split(/(?:)/, 'two'), [], \"'test'.split(/(?:)/, 'two') results in []\");\n  assert.arrayEqual('a'.split(/-/), ['a'], \"'a'.split(/-/) results in ['a']\");\n  assert.arrayEqual('a'.split(/-?/), ['a'], \"'a'.split(/-?/) results in ['a']\");\n  assert.arrayEqual('a'.split(/-??/), ['a'], \"'a'.split(/-??/) results in ['a']\");\n  assert.arrayEqual('a'.split(/a/), ['', ''], \"'a'.split(/a/) results in ['', '']\");\n  assert.arrayEqual('a'.split(/a?/), ['', ''], \"'a'.split(/a?/) results in ['', '']\");\n  assert.arrayEqual('a'.split(/a??/), ['a'], \"'a'.split(/a??/) results in ['a']\");\n  assert.arrayEqual('ab'.split(/-/), ['ab'], \"'ab'.split(/-/) results in ['ab']\");\n  assert.arrayEqual('ab'.split(/-?/), ['a', 'b'], \"'ab'.split(/-?/) results in ['a', 'b']\");\n  assert.arrayEqual('ab'.split(/-??/), ['a', 'b'], \"'ab'.split(/-??/) results in ['a', 'b']\");\n  assert.arrayEqual('a-b'.split(/-/), ['a', 'b'], \"'a-b'.split(/-/) results in ['a', 'b']\");\n  assert.arrayEqual('a-b'.split(/-?/), ['a', 'b'], \"'a-b'.split(/-?/) results in ['a', 'b']\");\n  assert.arrayEqual('a-b'.split(/-??/), ['a', '-', 'b'], \"'a-b'.split(/-??/) results in ['a', '-', 'b']\");\n  assert.arrayEqual('a--b'.split(/-/), ['a', '', 'b'], \"'a--b'.split(/-/) results in ['a', '', 'b']\");\n  assert.arrayEqual('a--b'.split(/-?/), ['a', '', 'b'], \"'a--b'.split(/-?/) results in ['a', '', 'b']\");\n  assert.arrayEqual('a--b'.split(/-??/), ['a', '-', '-', 'b'], \"'a--b'.split(/-??/) results in ['a', '-', '-', 'b']\");\n  assert.arrayEqual(''.split(/()()/), [], \"''.split(/()()/) results in []\");\n  assert.arrayEqual('.'.split(/()()/), ['.'], \"'.'.split(/()()/) results in ['.']\");\n  assert.arrayEqual('.'.split(/(.?)(.?)/), ['', '.', '', ''], \"'.'.split(/(.?)(.?)/) results in ['', '.', '', '']\");\n  assert.arrayEqual('.'.split(/(.??)(.??)/), ['.'], \"'.'.split(/(.??)(.??)/) results in ['.']\");\n  // eslint-disable-next-line regexp/optimal-quantifier-concatenation -- ignore\n  assert.arrayEqual('.'.split(/(.)?(.)?/), ['', '.', undefined, ''], \"'.'.split(/(.)?(.)?/) results in ['', '.', undefined, '']\");\n  assert.arrayEqual('A<B>bold</B>and<CODE>coded</CODE>'.split(/<(\\/)?([^<>]+)>/), ['A', undefined, 'B', 'bold', '/', 'B', 'and', undefined, 'CODE', 'coded', '/', 'CODE', ''], \"'A<B>bold</B>and<CODE>coded</CODE>'.split(/<(\\\\/)?([^<>]+)>/) results in ['A', undefined, 'B', 'bold', '/', 'B', 'and', undefined, 'CODE', 'coded', '/', 'CODE', '']\");\n  assert.arrayEqual('tesst'.split(/(s)*/), ['t', undefined, 'e', 's', 't'], \"'tesst'.split(/(s)*/) results in ['t', undefined, 'e', 's', 't']\");\n  assert.arrayEqual('tesst'.split(/(s)*?/), ['t', undefined, 'e', undefined, 's', undefined, 's', undefined, 't'], \"'tesst'.split(/(s)*?/) results in ['t', undefined, 'e', undefined, 's', undefined, 's', undefined, 't']\");\n  assert.arrayEqual('tesst'.split(/(s*)/), ['t', '', 'e', 'ss', 't'], \"'tesst'.split(/(s*)/) results in ['t', '', 'e', 'ss', 't']\");\n  assert.arrayEqual('tesst'.split(/(s*?)/), ['t', '', 'e', '', 's', '', 's', '', 't'], \"'tesst'.split(/(s*?)/) results in ['t', '', 'e', '', 's', '', 's', '', 't']\");\n  assert.arrayEqual('tesst'.split(/s*/), ['t', 'e', 't'], \"'tesst'.split(/s*/) results in ['t', 'e', 't']\");\n  assert.arrayEqual('tesst'.split(/(?=s+)/), ['te', 's', 'st'], \"'tesst'.split(/(?=s+)/) results in ['te', 's', 'st']\");\n  assert.arrayEqual('test'.split('t'), ['', 'es', ''], \"'test'.split('t') results in ['', 'es', '']\");\n  assert.arrayEqual('test'.split('es'), ['t', 't'], \"'test'.split('es') results in ['t', 't']\");\n  assert.arrayEqual('test'.split(/t/), ['', 'es', ''], \"'test'.split(/t/) results in ['', 'es', '']\");\n  assert.arrayEqual('test'.split(/es/), ['t', 't'], \"'test'.split(/es/) results in ['t', 't']\");\n  assert.arrayEqual('test'.split(/(t)/), ['', 't', 'es', 't', ''], \"'test'.split(/(t)/) results in ['', 't', 'es', 't', '']\");\n  assert.arrayEqual('test'.split(/(es)/), ['t', 'es', 't'], \"'test'.split(/(es)/) results in ['t', 'es', 't']\");\n  assert.arrayEqual('test'.split(/(t)(e)(s)(t)/), ['', 't', 'e', 's', 't', ''], \"'test'.split(/(t)(e)(s)(t)/) results in ['', 't', 'e', 's', 't', '']\");\n  assert.arrayEqual('.'.split(/(((.((.??)))))/), ['', '.', '.', '.', '', '', ''], \"'.'.split(/(((.((.??)))))/) results in ['', '.', '.', '.', '', '', '']\");\n  assert.arrayEqual('.'.split(/(((((.??)))))/), ['.'], \"'.'.split(/(((((.??)))))/) results in ['.']\");\n  assert.arrayEqual('a b c d'.split(/ /, -(2 ** 32) + 1), ['a'], \"'a b c d'.split(/ /, -(2 ** 32) + 1) results in ['a']\");\n  assert.arrayEqual('a b c d'.split(/ /, 2 ** 32 + 1), ['a'], \"'a b c d'.split(/ /, 2 ** 32 + 1) results in ['a']\");\n  assert.arrayEqual('a b c d'.split(/ /, Infinity), [], \"'a b c d'.split(/ /, Infinity) results in []\");\n  let instance = Object(true);\n  instance.split = String.prototype.split;\n  let split = instance.split(true, false);\n  assert.same(typeof split, 'object', 'S15.5.4.14_A1_T1 #1');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A1_T1 #2');\n  assert.same(split.length, 0, 'S15.5.4.14_A1_T1 #3');\n  instance = Object(false);\n  instance.split = String.prototype.split;\n  split = instance.split(false, 0, null);\n  assert.same(typeof split, 'object', 'S15.5.4.14_A1_T2 #1');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A1_T2 #2');\n  assert.same(split.length, 0, 'S15.5.4.14_A1_T2 #3');\n  split = ''.split();\n  assert.same(typeof split, 'object', 'S15.5.4.14_A1_T4 #1');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A1_T4 #2');\n  assert.same(split.length, 1, 'S15.5.4.14_A1_T4 #3');\n  assert.same(split[0], '', 'S15.5.4.14_A1_T4 #4');\n  split = 'gnulluna'.split(null);\n  assert.same(typeof split, 'object', 'S15.5.4.14_A1_T5 #1');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A1_T5 #2');\n  assert.same(split.length, 2, 'S15.5.4.14_A1_T5 #3');\n  assert.same(split[0], 'g', 'S15.5.4.14_A1_T5 #4');\n  assert.same(split[1], 'una', 'S15.5.4.14_A1_T5 #5');\n  if (NATIVE) {\n    split = Object('1undefined').split(undefined);\n    assert.same(typeof split, 'object', 'S15.5.4.14_A1_T6 #1');\n    assert.same(split.constructor, Array, 'S15.5.4.14_A1_T6 #2');\n    assert.same(split.length, 1, 'S15.5.4.14_A1_T6 #3');\n    assert.same(split[0], '1undefined', 'S15.5.4.14_A1_T6 #4');\n    split = 'undefinedd'.split(undefined);\n    assert.same(typeof split, 'object', 'S15.5.4.14_A1_T7 #1');\n    assert.same(split.constructor, Array, 'S15.5.4.14_A1_T7 #2');\n    assert.same(split.length, 1, 'S15.5.4.14_A1_T7 #3');\n    assert.same(split[0], 'undefinedd', 'S15.5.4.14_A1_T7 #4');\n    split = String({\n      toString() { /* empty */ },\n    }).split(undefined);\n    assert.same(typeof split, 'object', 'S15.5.4.14_A1_T8 #1');\n    assert.same(split.constructor, Array, 'S15.5.4.14_A1_T8 #2');\n    assert.same(split.length, 1, 'S15.5.4.14_A1_T8 #3');\n    assert.same(split[0], 'undefined', 'S15.5.4.14_A1_T8 #4');\n  }\n  split = new String({\n    valueOf() { /* empty */ },\n    toString: undefined,\n  }).split(() => { /* empty */ });\n  assert.same(typeof split, 'object', 'S15.5.4.14_A1_T9 #1');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A1_T9 #2');\n  assert.same(split.length, 1, 'S15.5.4.14_A1_T9 #3');\n  assert.same(split[0], 'undefined', 'S15.5.4.14_A1_T9 #4');\n  split = 'ABB\\u0041BABAB'.split({\n    toString() {\n      return '\\u0042B';\n    },\n  }, {\n    valueOf() {\n      return true;\n    },\n  });\n  assert.same(typeof split, 'object', 'S15.5.4.14_A1_T10 #1');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A1_T10 #2');\n  assert.same(split.length, 1, 'S15.5.4.14_A1_T10 #3');\n  assert.same(split[0], 'A', 'S15.5.4.14_A1_T10 #4');\n  try {\n    'ABB\\u0041BABAB'.split({\n      toString() {\n        return '\\u0041B';\n      },\n    }, {\n      valueOf() {\n        throw new Error('intointeger');\n      },\n    });\n    assert.avoid('S15.5.4.14_A1_T11 #1 lead to throwing exception');\n  } catch (error) {\n    assert.same(error.message, 'intointeger', 'S15.5.4.14_A1_T11 #2');\n  }\n  if (NATIVE) {\n    try {\n      new String('ABB\\u0041BABAB').split({\n        toString() {\n          return '\\u0041B';\n        },\n      }, {\n        valueOf() {\n          return {};\n        },\n        toString() {\n          throw new Error('intointeger');\n        },\n      });\n      assert.avoid('S15.5.4.14_A1_T12 #1 lead to throwing exception');\n    } catch (error) {\n      assert.same(error.message, 'intointeger', 'S15.5.4.14_A1_T12 #2');\n    }\n  }\n  split = 'ABB\\u0041BABAB\\u0042cc^^\\u0042Bvv%%B\\u0042xxx'.split({\n    toString() {\n      return '\\u0042\\u0042';\n    },\n  }, {\n    valueOf() {\n      return {};\n    },\n    toString() {\n      return '2';\n    },\n  });\n  assert.same(typeof split, 'object', 'S15.5.4.14_A1_T13 #1');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A1_T13 #2');\n  assert.same(split.length, 2, 'S15.5.4.14_A1_T13 #3');\n  assert.same(split[0], 'A', 'S15.5.4.14_A1_T13 #4');\n  assert.same(split[1], 'ABABA', 'S15.5.4.14_A1_T13 #5');\n  if (NATIVE) {\n    try {\n      instance = Object(10001.10001);\n      instance.split = String.prototype.split;\n      instance.split({\n        toString() {\n          throw new Error('intostr');\n        },\n      }, {\n        valueOf() {\n          throw new Error('intoint');\n        },\n      });\n      assert.avoid('S15.5.4.14_A1_T14 #1 lead to throwing exception');\n    } catch (error) {\n      assert.same(error.message, 'intoint', 'S15.5.4.14_A1_T14 #2');\n    }\n    try {\n      class F {\n        constructor(value) {\n          this.value = value;\n        }\n        valueOf() {\n          return `${ this.value }`;\n        }\n        toString() {\n          return new Number();\n        }\n      }\n      F.prototype.split = String.prototype.split;\n      new F().split({\n        toString() {\n          return {};\n        },\n        valueOf() {\n          throw new Error('intostr');\n        },\n      }, {\n        valueOf() {\n          throw new Error('intoint');\n        },\n      });\n      assert.avoid('S15.5.4.14_A1_T15 #1 lead to throwing exception');\n    } catch (error) {\n      assert.same(error.message, 'intoint', 'S15.5.4.14_A1_T15 #2');\n    }\n  }\n  try {\n    String.prototype.split.call(6776767677.006771, {\n      toString() {\n        return /77/g;\n      },\n    });\n    assert.avoid('S15.5.4.14_A1_T16 #1 lead to throwing exception');\n  } catch (error) {\n    assert.true(error instanceof TypeError, 'S15.5.4.14_A1_T16 #2');\n  }\n  split = String.prototype.split.call(6776767677.006771, /77/g);\n  assert.same(typeof split, 'object', 'S15.5.4.14_A1_T17 #1');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A1_T17 #2');\n  assert.same(split.length, 4, 'S15.5.4.14_A1_T17 #3');\n  assert.same(split[0], '6', 'S15.5.4.14_A1_T17 #4');\n  assert.same(split[1], '67676', 'S15.5.4.14_A1_T17 #5');\n  assert.same(split[2], '.006', 'S15.5.4.14_A1_T17 #6');\n  assert.same(split[3], '1', 'S15.5.4.14_A1_T17 #7');\n  split = String.prototype.split.call(6776767677.006771, /00/, 1);\n  assert.same(typeof split, 'object', 'S15.5.4.14_A1_T18 #1');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A1_T18 #2');\n  assert.same(split.length, 1, 'S15.5.4.14_A1_T18 #3');\n  assert.same(split[0], '6776767677.', 'S15.5.4.14_A1_T18 #4');\n  split = Object('one,two,three,four,five').split(',');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T1 #1');\n  assert.same(split.length, 5, 'S15.5.4.14_A2_T1 #2');\n  assert.same(split[0], 'one', 'S15.5.4.14_A2_T1 #3');\n  assert.same(split[1], 'two', 'S15.5.4.14_A2_T1 #4');\n  assert.same(split[2], 'three', 'S15.5.4.14_A2_T1 #5');\n  assert.same(split[3], 'four', 'S15.5.4.14_A2_T1 #6');\n  assert.same(split[4], 'five', 'S15.5.4.14_A2_T1 #7');\n  split = Object('one two three four five').split(' ');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T2 #1');\n  assert.same(split.length, 5, 'S15.5.4.14_A2_T2 #2');\n  assert.same(split[0], 'one', 'S15.5.4.14_A2_T2 #3');\n  assert.same(split[1], 'two', 'S15.5.4.14_A2_T2 #4');\n  assert.same(split[2], 'three', 'S15.5.4.14_A2_T2 #5');\n  assert.same(split[3], 'four', 'S15.5.4.14_A2_T2 #6');\n  assert.same(split[4], 'five', 'S15.5.4.14_A2_T2 #7');\n  split = Object('one two three four five').split(RegExp(' '), 2);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T3 #1');\n  assert.same(split.length, 2, 'S15.5.4.14_A2_T3 #2');\n  assert.same(split[0], 'one', 'S15.5.4.14_A2_T3 #3');\n  assert.same(split[1], 'two', 'S15.5.4.14_A2_T3 #4');\n  split = Object('one two three').split('');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T4 #1');\n  assert.same(split.length, 'one two three'.length, 'S15.5.4.14_A2_T4 #2');\n  assert.same(split[0], 'o', 'S15.5.4.14_A2_T4 #3');\n  assert.same(split[1], 'n', 'S15.5.4.14_A2_T4 #4');\n  assert.same(split[11], 'e', 'S15.5.4.14_A2_T4 #5');\n  assert.same(split[12], 'e', 'S15.5.4.14_A2_T4 #6');\n  split = Object('one-1,two-2,four-4').split(/,/);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T5 #1');\n  assert.same(split.length, 3, 'S15.5.4.14_A2_T5 #2');\n  assert.same(split[0], 'one-1', 'S15.5.4.14_A2_T5 #3');\n  assert.same(split[1], 'two-2', 'S15.5.4.14_A2_T5 #4');\n  assert.same(split[2], 'four-4', 'S15.5.4.14_A2_T5 #5');\n  let string = Object('one-1 two-2 three-3');\n  split = string.split('');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T6 #1');\n  assert.same(split.length, string.length, 'S15.5.4.14_A2_T6 #2');\n  for (let i = 0, { length } = split; i < length; ++i) {\n    assert.same(split[i], string.charAt(i), `S15.5.4.14_A2_T6 #${ i + 3 }`);\n  }\n  if (NATIVE) {\n    string = 'thisundefinedisundefinedaundefinedstringundefinedobject';\n    split = string.split(undefined);\n    assert.same(split.constructor, Array, 'S15.5.4.14_A2_T7 #1');\n    assert.same(split.length, 1, 'S15.5.4.14_A2_T7 #2');\n    assert.same(split[0], string, 'S15.5.4.14_A2_T7 #3');\n  }\n  string = 'thisnullisnullanullstringnullobject';\n  let expected = ['this', 'is', 'a', 'string', 'object'];\n  split = string.split(null);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T8 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A2_T8 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A2_T8 #${ i + 3 }`);\n  }\n  string = 'thistrueistrueatruestringtrueobject';\n  expected = ['this', 'is', 'a', 'string', 'object'];\n  split = string.split(true);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T9 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A2_T9 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A2_T9 #${ i + 3 }`);\n  }\n  string = 'this123is123a123string123object';\n  expected = ['this', 'is', 'a', 'string', 'object'];\n  split = string.split(123);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T10 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A2_T10 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A2_T10 #${ i + 3 }`);\n  }\n  split = Object('one-1,two-2,four-4').split(':');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T11 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A2_T11 #2');\n  assert.same(split[0], 'one-1,two-2,four-4', 'S15.5.4.14_A2_T11 #3');\n  split = Object('one-1 two-2 four-4').split('r-42');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T12 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A2_T12 #2');\n  assert.same(split[0], 'one-1 two-2 four-4', 'S15.5.4.14_A2_T12 #3');\n  split = Object('one-1 two-2 four-4').split('-4');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T13 #1');\n  assert.same(split.length, 2, 'S15.5.4.14_A2_T13 #2');\n  assert.same(split[0], 'one-1 two-2 four', 'S15.5.4.14_A2_T13 #3');\n  assert.same(split[1], '', 'S15.5.4.14_A2_T13 #4');\n  split = Object('one-1 two-2 four-4').split('on');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T14 #1');\n  assert.same(split.length, 2, 'S15.5.4.14_A2_T14 #2');\n  assert.same(split[0], '', 'S15.5.4.14_A2_T14 #3');\n  assert.same(split[1], 'e-1 two-2 four-4', 'S15.5.4.14_A2_T14 #4');\n  split = new String().split('');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T15 #1');\n  assert.same(split.length, 0, 'S15.5.4.14_A2_T15 #2');\n  assert.same(split[0], undefined, 'S15.5.4.14_A2_T15 #3');\n  split = new String().split(' ');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T16 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A2_T16 #2');\n  assert.same(split[0], '', 'S15.5.4.14_A2_T16 #3');\n  split = Object(' ').split('');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T17 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A2_T17 #2');\n  assert.same(split[0], ' ', 'S15.5.4.14_A2_T17 #3');\n  split = Object(' ').split(' ');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T18 #1');\n  assert.same(split.length, 2, 'S15.5.4.14_A2_T18 #2');\n  assert.same(split[0], '', 'S15.5.4.14_A2_T18 #3');\n  assert.same(split[1], '', 'S15.5.4.14_A2_T18 #4');\n  split = ''.split('x');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T19 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A2_T19 #2');\n  assert.same(split[0], '', 'S15.5.4.14_A2_T19 #3');\n  string = Object('one-1 two-2 three-3');\n  split = string.split(new RegExp());\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T20 #1');\n  assert.same(split.length, string.length, 'S15.5.4.14_A2_T20 #2');\n  for (let i = 0, { length } = split; i < length; ++i) {\n    assert.same(split[i], string.charAt(i), `S15.5.4.14_A2_T20 #${ i + 3 }`);\n  }\n  split = Object('hello').split('ll');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T21 #1');\n  assert.same(split.length, 2, 'S15.5.4.14_A2_T21 #2');\n  assert.same(split[0], 'he', 'S15.5.4.14_A2_T21 #3');\n  assert.same(split[1], 'o', 'S15.5.4.14_A2_T21 #4');\n  split = Object('hello').split('l');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T22 #1');\n  assert.same(split.length, 3, 'S15.5.4.14_A2_T22 #2');\n  assert.same(split[0], 'he', 'S15.5.4.14_A2_T22 #3');\n  assert.same(split[1], '', 'S15.5.4.14_A2_T22 #4');\n  assert.same(split[2], 'o', 'S15.5.4.14_A2_T22 #5');\n  split = Object('hello').split('x');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T23 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A2_T23 #2');\n  assert.same(split[0], 'hello', 'S15.5.4.14_A2_T23 #3');\n  split = Object('hello').split('h');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T24 #1');\n  assert.same(split.length, 2, 'S15.5.4.14_A2_T24 #2');\n  assert.same(split[0], '', 'S15.5.4.14_A2_T24 #3');\n  assert.same(split[1], 'ello', 'S15.5.4.14_A2_T24 #4');\n  split = Object('hello').split('o');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T25 #1');\n  assert.same(split.length, 2, 'S15.5.4.14_A2_T25 #2');\n  assert.same(split[0], 'hell', 'S15.5.4.14_A2_T25 #3');\n  assert.same(split[1], '', 'S15.5.4.14_A2_T25 #4');\n  split = Object('hello').split('hello');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T26 #1');\n  assert.same(split.length, 2, 'S15.5.4.14_A2_T26 #2');\n  assert.same(split[0], '', 'S15.5.4.14_A2_T26 #3');\n  assert.same(split[1], '', 'S15.5.4.14_A2_T26 #4');\n  split = Object('hello').split(undefined);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T27 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A2_T27 #2');\n  assert.same(split[0], 'hello', 'S15.5.4.14_A2_T27 #3');\n  split = Object('hello').split('hellothere');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T28 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A2_T28 #2');\n  assert.same(split[0], 'hello', 'S15.5.4.14_A2_T28 #3');\n  instance = Object(100111122133144160);\n  instance.split = String.prototype.split;\n  split = instance.split(1);\n  expected = ['', '00', '', '', '', '22', '33', '44', '60'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T29 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A2_T29 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A2_T29 #${ i + 3 }`);\n  }\n  instance = Object(100111122133144160);\n  instance.split = String.prototype.split;\n  split = instance.split(1, 1);\n  expected = [''];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T30 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A2_T30 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A2_T30 #${ i + 3 }`);\n  }\n  instance = Object(100111122133144160);\n  instance.split = String.prototype.split;\n  split = instance.split(1, 2);\n  expected = ['', '00'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T31 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A2_T31 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A2_T31 #${ i + 3 }`);\n  }\n  instance = Object(100111122133144160);\n  instance.split = String.prototype.split;\n  split = instance.split(1, 0);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T32 #1');\n  assert.same(split.length, 0, 'S15.5.4.14_A2_T32 #2');\n  instance = Object(100111122133144160);\n  instance.split = String.prototype.split;\n  split = instance.split(1, 100);\n  expected = ['', '00', '', '', '', '22', '33', '44', '60'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T33 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A2_T33 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A2_T33 #${ i + 3 }`);\n  }\n  instance = Object(100111122133144160);\n  instance.split = String.prototype.split;\n  split = instance.split(1, undefined);\n  expected = ['', '00', '', '', '', '22', '33', '44', '60'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T34 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A2_T34 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A2_T34 #${ i + 3 }`);\n  }\n  instance = Object(100111122133144160);\n  instance.split = String.prototype.split;\n  split = instance.split(1, 2 ** 32 - 1);\n  expected = ['', '00', '', '', '', '22', '33', '44', '60'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T35 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A2_T35 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A2_T35 #${ i + 3 }`);\n  }\n  instance = Object(100111122133144160);\n  instance.split = String.prototype.split;\n  split = instance.split(1, 'boo');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T36 #1');\n  assert.same(split.length, 0, 'S15.5.4.14_A2_T36 #2');\n  instance = Object(100111122133144160);\n  instance.split = String.prototype.split;\n  split = instance.split(1, -(2 ** 32) + 1);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T37 #1');\n  assert.arrayEqual(split, [''], 'S15.5.4.14_A2_T37 #2');\n  instance = Object(100111122133144160);\n  instance.split = String.prototype.split;\n  split = instance.split(1, NaN);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T38 #1');\n  assert.same(split.length, 0, 'S15.5.4.14_A2_T38 #2');\n  split = Object('hello').split('l', 0);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T39 #1');\n  assert.same(split.length, 0, 'S15.5.4.14_A2_T39 #2');\n  split = Object('hello').split('l', 1);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T40 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A2_T40 #2');\n  assert.same(split[0], 'he', 'S15.5.4.14_A2_T40 #3');\n  split = Object('hello').split('l', 2);\n  expected = ['he', ''];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T41 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A2_T41 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A2_T41 #${ i + 3 }`);\n  }\n  split = Object('hello').split('l', 3);\n  expected = ['he', '', 'o'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T42 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A2_T42 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A2_T42 #${ i + 3 }`);\n  }\n  split = Object('hello').split('l', 4);\n  expected = ['he', '', 'o'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A2_T43 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A2_T43 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A2_T43 #${ i + 3 }`);\n  }\n  split = Object('one,two,three,four,five').split();\n  assert.same(split.constructor, Array, 'S15.5.4.14_A3_T1 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A3_T1 #2');\n  assert.same(split[0], 'one,two,three,four,five', 'S15.5.4.14_A3_T1 #3');\n  split = String.prototype.split.call({});\n  assert.same(split.constructor, Array, 'S15.5.4.14_A3_T2 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A3_T2 #2');\n  assert.same(split[0], '[object Object]', 'S15.5.4.14_A3_T2 #3');\n  split = String.prototype.split.call({\n    toString() {\n      return 'function(){}';\n    },\n  });\n  assert.same(split.constructor, Array, 'S15.5.4.14_A3_T3 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A3_T3 #2');\n  assert.same(split[0], 'function(){}', 'S15.5.4.14_A3_T3 #3');\n  split = String.prototype.split.call(Object(NaN));\n  assert.same(split.constructor, Array, 'S15.5.4.14_A3_T4 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A3_T4 #2');\n  assert.same(split[0], 'NaN', 'S15.5.4.14_A3_T4 #3');\n  split = String.prototype.split.call(Object(-1234567890));\n  assert.same(split.constructor, Array, 'S15.5.4.14_A3_T5 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A3_T5 #2');\n  assert.same(split[0], '-1234567890', 'S15.5.4.14_A3_T5 #3');\n  instance = Object(-1e21);\n  split = String.prototype.split.call(instance);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A3_T6 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A3_T6 #2');\n  assert.same(split[0], instance.toString(), 'S15.5.4.14_A3_T6 #3');\n  split = String.prototype.split.call(Math);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A3_T7 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A3_T7 #2');\n  assert.same(split[0], '[object Math]', 'S15.5.4.14_A3_T7 #3');\n  split = String.prototype.split.call([1, 2, 3, 4, 5]);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A3_T8 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A3_T8 #2');\n  assert.same(split[0], '1,2,3,4,5', 'S15.5.4.14_A3_T8 #3');\n  split = String.prototype.split.call(Object(false));\n  assert.same(split.constructor, Array, 'S15.5.4.14_A3_T9 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A3_T9 #2');\n  assert.same(split[0], 'false', 'S15.5.4.14_A3_T9 #3');\n  split = String.prototype.split.call(new String());\n  assert.same(split.constructor, Array, 'S15.5.4.14_A3_T10 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A3_T10 #2');\n  assert.same(split[0], '', 'S15.5.4.14_A3_T10 #3');\n  split = String.prototype.split.call(Object(' '));\n  assert.same(split.constructor, Array, 'S15.5.4.14_A3_T11 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A3_T11 #2');\n  assert.same(split[0], ' ', 'S15.5.4.14_A3_T11 #3');\n  if (NATIVE) {\n    split = Object('hello').split(/l/);\n    assert.same(split.constructor, Array, 'S15.5.4.14_A4_T1 #1');\n    assert.same(split.length, 3, 'S15.5.4.14_A4_T1 #2');\n    assert.same(split[0], 'he', 'S15.5.4.14_A4_T1 #3');\n    assert.same(split[1], '', 'S15.5.4.14_A4_T1 #4');\n    assert.same(split[2], 'o', 'S15.5.4.14_A4_T1 #5');\n  }\n  split = Object('hello').split(/l/, 0);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T2 #1');\n  assert.same(split.length, 0, 'S15.5.4.14_A4_T2 #2');\n  split = Object('hello').split(/l/, 1);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T3 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A4_T3 #2');\n  assert.same(split[0], 'he', 'S15.5.4.14_A4_T3 #3');\n  if (NATIVE) {\n    split = Object('hello').split(/l/, 2);\n    assert.same(split.constructor, Array, 'S15.5.4.14_A4_T4 #1');\n    assert.same(split.length, 2, 'S15.5.4.14_A4_T4 #2');\n    assert.same(split[0], 'he', 'S15.5.4.14_A4_T4 #3');\n    assert.same(split[1], '', 'S15.5.4.14_A4_T4 #4');\n    split = Object('hello').split(/l/, 3);\n    assert.same(split.constructor, Array, 'S15.5.4.14_A4_T5 #1');\n    assert.same(split.length, 3, 'S15.5.4.14_A4_T5 #2');\n    assert.same(split[0], 'he', 'S15.5.4.14_A4_T5 #3');\n    assert.same(split[1], '', 'S15.5.4.14_A4_T5 #4');\n    assert.same(split[2], 'o', 'S15.5.4.14_A4_T5 #5');\n    split = Object('hello').split(/l/, 4);\n    assert.same(split.constructor, Array, 'S15.5.4.14_A4_T6 #1');\n    assert.same(split.length, 3, 'S15.5.4.14_A4_T6 #2');\n    assert.same(split[0], 'he', 'S15.5.4.14_A4_T6 #3');\n    assert.same(split[1], '', 'S15.5.4.14_A4_T6 #4');\n    assert.same(split[2], 'o', 'S15.5.4.14_A4_T6 #5');\n    split = Object('hello').split(/l/, undefined);\n    assert.same(split.constructor, Array, 'S15.5.4.14_A4_T7 #1');\n    assert.same(split.length, 3, 'S15.5.4.14_A4_T7 #2');\n    assert.same(split[0], 'he', 'S15.5.4.14_A4_T7 #3');\n    assert.same(split[1], '', 'S15.5.4.14_A4_T7 #4');\n    assert.same(split[2], 'o', 'S15.5.4.14_A4_T7 #5');\n  }\n  split = Object('hello').split(/l/, 'hi');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T8 #1');\n  assert.same(split.length, 0, 'S15.5.4.14_A4_T8 #2');\n  split = Object('hello').split(new RegExp());\n  expected = ['h', 'e', 'l', 'l', 'o'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T10 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A4_T10 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A4_T10 #${ i + 3 }`);\n  }\n  split = Object('hello').split(new RegExp(), 0);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T11 #1');\n  assert.same(split.length, 0, 'S15.5.4.14_A4_T11 #2');\n  split = Object('hello').split(new RegExp(), 1);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T12 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A4_T12 #2');\n  assert.same(split[0], 'h', 'S15.5.4.14_A4_T12 #3');\n  split = Object('hello').split(new RegExp(), 2);\n  expected = ['h', 'e'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T13 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A4_T13 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A4_T13 #${ i + 3 }`);\n  }\n  split = Object('hello').split(new RegExp(), 3);\n  expected = ['h', 'e', 'l'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T14 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A4_T14 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A4_T14 #${ i + 3 }`);\n  }\n  split = Object('hello').split(new RegExp(), 4);\n  expected = ['h', 'e', 'l', 'l'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T15 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A4_T15 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A4_T15 #${ i + 3 }`);\n  }\n  split = Object('hello').split(new RegExp(), undefined);\n  expected = ['h', 'e', 'l', 'l', 'o'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T16 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A4_T16 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A4_T16 #${ i + 3 }`);\n  }\n  split = Object('hello').split(new RegExp(), 'hi');\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T18 #1');\n  assert.same(split.length, 0, 'S15.5.4.14_A4_T18 #2');\n  split = Object('a b c de f').split(/\\s/);\n  expected = ['a', 'b', 'c', 'de', 'f'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T19 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A4_T19 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A4_T19 #${ i + 3 }`);\n  }\n  split = Object('a b c de f').split(/\\s/, 3);\n  expected = ['a', 'b', 'c'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T20 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A4_T20 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A4_T20 #${ i + 3 }`);\n  }\n  split = Object('a b c de f').split(/X/);\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T21 #1');\n  assert.same(split.length, 1, 'S15.5.4.14_A4_T21 #2');\n  assert.same(split[0], 'a b c de f', 'S15.5.4.14_A4_T21 #3');\n  split = Object('dfe23iu 34 =+65--').split(/\\d+/);\n  expected = ['dfe', 'iu ', ' =+', '--'];\n  assert.same(split.constructor, Array, 'S15.5.4.14_A4_T22 #1');\n  assert.same(split.length, expected.length, 'S15.5.4.14_A4_T22 #2');\n  for (let i = 0, { length } = expected; i < length; ++i) {\n    assert.same(expected[i], split[i], `S15.5.4.14_A4_T22 #${ i + 3 }`);\n  }\n  if (NATIVE) {\n    split = Object('abc').split(/[a-z]/);\n    expected = ['', '', '', ''];\n    assert.same(split.constructor, Array, 'S15.5.4.14_A4_T24 #1');\n    assert.same(split.length, expected.length, 'S15.5.4.14_A4_T24 #2');\n    for (let i = 0, { length } = expected; i < length; ++i) {\n      assert.same(expected[i], split[i], `S15.5.4.14_A4_T24 #${ i + 3 }`);\n    }\n  }\n\n  assert.throws(() => ''.split.call(Symbol('split test'), /./), 'throws on symbol context');\n};\n\nQUnit.test('String#split regression', run);\n\nQUnit.test('RegExp#@@split appearance', assert => {\n  const split = /./[Symbol.split];\n  assert.isFunction(split);\n  // assert.name(split, '[Symbol.split]');\n  assert.arity(split, 2);\n  assert.looksNative(split);\n  assert.nonEnumerable(RegExp.prototype, Symbol.split);\n});\n\nQUnit.test('RegExp#@@split basic behavior', assert => {\n  assert.same(/\\s/[Symbol.split]('a b c de f').length, 5);\n  assert.same(/\\s/[Symbol.split]('a b c de f', undefined).length, 5);\n  assert.same(/\\s/[Symbol.split]('a b c de f', 1).length, 1);\n  assert.same(/\\s/[Symbol.split]('a b c de f', 10).length, 5);\n});\n\nQUnit.test('String#split delegates to @@split', assert => {\n  const string = STRICT ? 'string' : Object('string');\n  const number = STRICT ? 42 : Object(42);\n  const object = {};\n  object[Symbol.split] = function (a, b) {\n    return { a, b };\n  };\n  assert.same(string.split(object, 42).a, string);\n  assert.same(string.split(object, 42).b, 42);\n  assert.same(''.split.call(number, object, 42).a, number);\n  assert.same(''.split.call(number, object, 42).b, 42);\n  const regexp = /./;\n  regexp[Symbol.split] = function (a, b) {\n    return { a, b };\n  };\n  assert.same(string.split(regexp, 42).a, string);\n  assert.same(string.split(regexp, 42).b, 42);\n  assert.same(''.split.call(number, regexp, 42).a, number);\n  assert.same(''.split.call(number, regexp, 42).b, 42);\n});\n\nQUnit.test('RegExp#@@split delegates to exec', assert => {\n  let execCalled = false;\n  let speciesCalled = false;\n  let execSpeciesCalled = false;\n  const re = /[24]/;\n  re.exec = function (...args) {\n    execCalled = true;\n    return /./.exec.apply(this, args);\n  };\n  re.constructor = {\n    // eslint-disable-next-line object-shorthand -- constructor\n    [Symbol.species]: function (source, flags) {\n      const re2 = new RegExp(source, flags);\n      speciesCalled = true;\n      re2.exec = function (...args) {\n        execSpeciesCalled = true;\n        return /./.exec.apply(this, args);\n      };\n      return re2;\n    },\n  };\n  assert.deepEqual(re[Symbol.split]('123451234'), ['1', '3', '51', '3', '']);\n  assert.false(execCalled);\n  assert.true(speciesCalled);\n  assert.true(execSpeciesCalled);\n\n  re.constructor = {\n    // eslint-disable-next-line object-shorthand -- constructor\n    [Symbol.species]: function (source, flags) {\n      const re2 = new RegExp(source, flags);\n      // Not a function, should be ignored\n      re2.exec = 3;\n      return re2;\n    },\n  };\n  assert.deepEqual(re[Symbol.split]('123451234'), ['1', '3', '51', '3', '']);\n\n  re.constructor = {\n    // eslint-disable-next-line object-shorthand -- constructor\n    [Symbol.species]: function (source, flags) {\n      const re2 = new RegExp(source, flags);\n      // Does not return an object, should throw\n      re2.exec = () => 3;\n      return re2;\n    },\n  };\n  assert.throws(() => re[Symbol.split]('123451234'));\n});\n\nQUnit.test('RegExp#@@split implementation', patchRegExp$exec(run));\n"
  },
  {
    "path": "tests/unit-global/es.string.starts-with.js",
    "content": "import { GLOBAL, STRICT } from '../helpers/constants.js';\n\nconst Symbol = GLOBAL.Symbol || {};\n\nQUnit.test('String#startsWith', assert => {\n  const { startsWith } = String.prototype;\n  assert.isFunction(startsWith);\n  assert.arity(startsWith, 1);\n  assert.name(startsWith, 'startsWith');\n  assert.looksNative(startsWith);\n  assert.nonEnumerable(String.prototype, 'startsWith');\n  assert.true('undefined'.startsWith());\n  assert.false('undefined'.startsWith(null));\n  assert.true('abc'.startsWith(''));\n  assert.true('abc'.startsWith('a'));\n  assert.true('abc'.startsWith('ab'));\n  assert.false('abc'.startsWith('bc'));\n  assert.true('abc'.startsWith('', NaN));\n  assert.true('abc'.startsWith('a', -1));\n  assert.false('abc'.startsWith('a', 1));\n  assert.false('abc'.startsWith('a', Infinity));\n  assert.true('abc'.startsWith('b', true));\n  assert.true('abc'.startsWith('a', 'x'));\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('startsWith test');\n    assert.throws(() => startsWith.call(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => startsWith.call('a', symbol), 'throws on symbol argument');\n  }\n\n  if (STRICT) {\n    assert.throws(() => startsWith.call(null, '.'), TypeError);\n    assert.throws(() => startsWith.call(undefined, '.'), TypeError);\n  }\n\n  const regexp = /./;\n  assert.throws(() => '/./'.startsWith(regexp), TypeError);\n  regexp[Symbol.match] = false;\n  assert.notThrows(() => '/./'.startsWith(regexp));\n  const object = {};\n  assert.notThrows(() => '[object Object]'.startsWith(object));\n  object[Symbol.match] = true;\n  assert.throws(() => '[object Object]'.startsWith(object), TypeError);\n  // side-effect ordering: ToString(searchString) should happen before ToIntegerOrInfinity(position)\n  const order = [];\n  'abc'.startsWith(\n    { toString() { order.push('search'); return 'a'; } },\n    { valueOf() { order.push('pos'); return 0; } },\n  );\n  assert.deepEqual(order, ['search', 'pos'], 'ToString(searchString) before ToIntegerOrInfinity(position)');\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.strike.js",
    "content": "QUnit.test('String#strike', assert => {\n  const { strike } = String.prototype;\n  assert.isFunction(strike);\n  assert.arity(strike, 0);\n  assert.name(strike, 'strike');\n  assert.looksNative(strike);\n  assert.nonEnumerable(String.prototype, 'strike');\n  assert.same('a'.strike(), '<strike>a</strike>', 'lower case');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => strike.call(Symbol('strike test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.sub.js",
    "content": "QUnit.test('String#sub', assert => {\n  const { sub } = String.prototype;\n  assert.isFunction(sub);\n  assert.arity(sub, 0);\n  assert.name(sub, 'sub');\n  assert.looksNative(sub);\n  assert.nonEnumerable(String.prototype, 'sub');\n  assert.same('a'.sub(), '<sub>a</sub>', 'lower case');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => sub.call(Symbol('sub test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.substr.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('String#substr', assert => {\n  const { substr } = String.prototype;\n  assert.isFunction(substr);\n  assert.arity(substr, 2);\n  assert.name(substr, 'substr');\n  assert.looksNative(substr);\n  assert.nonEnumerable(String.prototype, 'substr');\n\n  assert.same('12345'.substr(1, 3), '234');\n\n  assert.same('ab'.substr(-1), 'b');\n\n  assert.same('hello'.substr(Infinity), '', 'Infinity start returns empty string');\n  assert.same('hello'.substr(1, Infinity), 'ello', 'Infinity length returns rest of string');\n  assert.same('hello'.substr(-Infinity), 'hello', '-Infinity start treated as 0');\n  assert.same('hello'.substr(0, -1), '', 'negative length returns empty string');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => substr.call(Symbol('substr test'), 1, 3), 'throws on symbol context');\n  }\n\n  if (STRICT) {\n    assert.throws(() => substr.call(null, 1, 3), TypeError, 'Throws on null as `this`');\n    assert.throws(() => substr.call(undefined, 1, 3), TypeError, 'Throws on undefined as `this`');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.sup.js",
    "content": "QUnit.test('String#sup', assert => {\n  const { sup } = String.prototype;\n  assert.isFunction(sup);\n  assert.arity(sup, 0);\n  assert.name(sup, 'sup');\n  assert.looksNative(sup);\n  assert.nonEnumerable(String.prototype, 'sup');\n  assert.same('a'.sup(), '<sup>a</sup>', 'lower case');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => sup.call(Symbol('sup test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.to-well-formed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('String#toWellFormed', assert => {\n  const { toWellFormed } = String.prototype;\n  assert.isFunction(toWellFormed);\n  assert.arity(toWellFormed, 0);\n  assert.name(toWellFormed, 'toWellFormed');\n  assert.looksNative(toWellFormed);\n  assert.nonEnumerable(String.prototype, 'toWellFormed');\n\n  assert.same(toWellFormed.call('a'), 'a', 'a');\n  assert.same(toWellFormed.call('abc'), 'abc', 'abc');\n  assert.same(toWellFormed.call('💩'), '💩', '💩');\n  assert.same(toWellFormed.call('💩b'), '💩b', '💩b');\n  assert.same(toWellFormed.call('a💩'), 'a💩', 'a💩');\n  assert.same(toWellFormed.call('a💩b'), 'a💩b', 'a💩b');\n  assert.same(toWellFormed.call('💩a💩'), '💩a💩');\n  assert.same(toWellFormed.call('\\uD83D'), '\\uFFFD', '\\uD83D');\n  assert.same(toWellFormed.call('\\uDCA9'), '\\uFFFD', '\\uDCA9');\n  assert.same(toWellFormed.call('\\uDCA9\\uD83D'), '\\uFFFD\\uFFFD', '\\uDCA9\\uD83D');\n  assert.same(toWellFormed.call('a\\uD83D'), 'a\\uFFFD', 'a\\uD83D');\n  assert.same(toWellFormed.call('\\uDCA9a'), '\\uFFFDa', '\\uDCA9a');\n  assert.same(toWellFormed.call('a\\uD83Da'), 'a\\uFFFDa', 'a\\uD83Da');\n  assert.same(toWellFormed.call('a\\uDCA9a'), 'a\\uFFFDa', 'a\\uDCA9a');\n\n  assert.same(toWellFormed.call({\n    toString() {\n      return 'abc';\n    },\n  }), 'abc', 'conversion #1');\n\n  assert.same(toWellFormed.call(1), '1', 'conversion #2');\n\n  if (STRICT) {\n    assert.throws(() => toWellFormed.call(null), TypeError, 'coercible #1');\n    assert.throws(() => toWellFormed.call(undefined), TypeError, 'coercible #2');\n  }\n\n  assert.throws(() => toWellFormed.call(Symbol('toWellFormed test')), 'throws on symbol context');\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.trim-end.js",
    "content": "import { STRICT, WHITESPACES } from '../helpers/constants.js';\n\nQUnit.test('String#trimEnd', assert => {\n  const { trimEnd, trimRight } = String.prototype;\n  assert.isFunction(trimEnd);\n  assert.arity(trimEnd, 0);\n  assert.name(trimEnd, 'trimEnd');\n  assert.looksNative(trimEnd);\n  assert.nonEnumerable(String.prototype, 'trimEnd');\n  assert.same(trimEnd, trimRight, 'same #trimRight');\n  assert.same(' \\n  q w e \\n  '.trimEnd(), ' \\n  q w e', 'removes whitespaces at right side of string');\n  assert.same(WHITESPACES.trimEnd(), '', 'removes all whitespaces');\n  assert.same('\\u200B\\u0085'.trimEnd(), '\\u200B\\u0085', \"shouldn't remove this symbols\");\n\n  assert.throws(() => trimEnd.call(Symbol('trimEnd test')), 'throws on symbol context');\n\n  if (STRICT) {\n    assert.throws(() => trimEnd.call(null, 0), TypeError);\n    assert.throws(() => trimEnd.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.trim-left.js",
    "content": "/* eslint-disable unicorn/prefer-string-trim-start-end -- required for testing */\nimport { STRICT, WHITESPACES } from '../helpers/constants.js';\n\nQUnit.test('String#trimLeft', assert => {\n  const { trimLeft } = String.prototype;\n  assert.isFunction(trimLeft);\n  assert.arity(trimLeft, 0);\n  assert.name(trimLeft, 'trimStart');\n  assert.looksNative(trimLeft);\n  assert.nonEnumerable(String.prototype, 'trimLeft');\n  assert.same(' \\n  q w e \\n  '.trimLeft(), 'q w e \\n  ', 'removes whitespaces at left side of string');\n  assert.same(WHITESPACES.trimLeft(), '', 'removes all whitespaces');\n  assert.same('\\u200B\\u0085'.trimLeft(), '\\u200B\\u0085', \"shouldn't remove this symbols\");\n\n  assert.throws(() => trimLeft.call(Symbol('trimLeft test')), 'throws on symbol context');\n\n  if (STRICT) {\n    assert.throws(() => trimLeft.call(null, 0), TypeError);\n    assert.throws(() => trimLeft.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.trim-right.js",
    "content": "/* eslint-disable unicorn/prefer-string-trim-start-end -- required for testing */\nimport { STRICT, WHITESPACES } from '../helpers/constants.js';\n\nQUnit.test('String#trimRight', assert => {\n  const { trimRight } = String.prototype;\n  assert.isFunction(trimRight);\n  assert.arity(trimRight, 0);\n  assert.name(trimRight, 'trimEnd');\n  assert.looksNative(trimRight);\n  assert.nonEnumerable(String.prototype, 'trimRight');\n  assert.same(' \\n  q w e \\n  '.trimRight(), ' \\n  q w e', 'removes whitespaces at right side of string');\n  assert.same(WHITESPACES.trimRight(), '', 'removes all whitespaces');\n  assert.same('\\u200B\\u0085'.trimRight(), '\\u200B\\u0085', \"shouldn't remove this symbols\");\n\n  assert.throws(() => trimRight.call(Symbol('trimRight test')), 'throws on symbol context');\n\n  if (STRICT) {\n    assert.throws(() => trimRight.call(null, 0), TypeError);\n    assert.throws(() => trimRight.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.trim-start.js",
    "content": "import { STRICT, WHITESPACES } from '../helpers/constants.js';\n\nQUnit.test('String#trimStart', assert => {\n  const { trimStart, trimLeft } = String.prototype;\n  assert.isFunction(trimStart);\n  assert.arity(trimStart, 0);\n  assert.name(trimStart, 'trimStart');\n  assert.looksNative(trimStart);\n  assert.nonEnumerable(String.prototype, 'trimStart');\n  assert.same(trimStart, trimLeft, 'same #trimLeft');\n  assert.same(' \\n  q w e \\n  '.trimStart(), 'q w e \\n  ', 'removes whitespaces at left side of string');\n  assert.same(WHITESPACES.trimStart(), '', 'removes all whitespaces');\n  assert.same('\\u200B\\u0085'.trimStart(), '\\u200B\\u0085', \"shouldn't remove this symbols\");\n\n  assert.throws(() => trimStart.call(Symbol('trimStart test')), 'throws on symbol context');\n\n  if (STRICT) {\n    assert.throws(() => trimStart.call(null, 0), TypeError);\n    assert.throws(() => trimStart.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.string.trim.js",
    "content": "import { STRICT, WHITESPACES } from '../helpers/constants.js';\n\nQUnit.test('String#trim', assert => {\n  const { trim } = String.prototype;\n  assert.isFunction(''.trim);\n  assert.arity(trim, 0);\n  assert.name(trim, 'trim');\n  assert.looksNative(trim);\n  assert.nonEnumerable(String.prototype, 'trim');\n  assert.same(' \\n  q w e \\n  '.trim(), 'q w e', 'removes whitespaces at left & right side of string');\n  assert.same(WHITESPACES.trim(), '', 'removes all whitespaces');\n  assert.same('\\u200B\\u0085'.trim(), '\\u200B\\u0085', \"shouldn't remove this symbols\");\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => trim.call(Symbol('trim test')), 'throws on symbol context');\n  }\n\n  if (STRICT) {\n    assert.throws(() => trim.call(null, 0), TypeError);\n    assert.throws(() => trim.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.suppressed-error.constructor.js",
    "content": "/* eslint-disable unicorn/throw-new-error -- testing */\nQUnit.test('SuppressedError', assert => {\n  assert.isFunction(SuppressedError);\n  assert.arity(SuppressedError, 3);\n  assert.name(SuppressedError, 'SuppressedError');\n  assert.looksNative(SuppressedError);\n  assert.true(new SuppressedError() instanceof SuppressedError);\n  assert.true(new SuppressedError() instanceof Error);\n  assert.true(SuppressedError() instanceof SuppressedError);\n  assert.true(SuppressedError() instanceof Error);\n\n  assert.same(SuppressedError().error, undefined);\n  assert.same(SuppressedError().suppressed, undefined);\n  assert.same(SuppressedError().message, '');\n  assert.same(SuppressedError().cause, undefined);\n  assert.false('cause' in SuppressedError());\n  assert.same(SuppressedError().name, 'SuppressedError');\n\n  assert.same(new SuppressedError().error, undefined);\n  assert.same(new SuppressedError().suppressed, undefined);\n  assert.same(new SuppressedError().message, '');\n  assert.same(new SuppressedError().cause, undefined);\n  assert.false('cause' in new SuppressedError());\n  assert.same(new SuppressedError().name, 'SuppressedError');\n\n  const error1 = SuppressedError(1, 2, 3, { cause: 4 });\n\n  assert.same(error1.error, 1);\n  assert.same(error1.suppressed, 2);\n  assert.same(error1.message, '3');\n  assert.same(error1.cause, undefined);\n  assert.false('cause' in error1);\n  assert.same(error1.name, 'SuppressedError');\n\n  const error2 = new SuppressedError(1, 2, 3, { cause: 4 });\n\n  assert.same(error2.error, 1);\n  assert.same(error2.suppressed, 2);\n  assert.same(error2.message, '3');\n  assert.same(error2.cause, undefined);\n  assert.false('cause' in error2);\n  assert.same(error2.name, 'SuppressedError');\n\n  assert.throws(() => SuppressedError(1, 2, Symbol('SuppressedError constructor test')), 'throws on symbol as a message');\n  assert.same({}.toString.call(SuppressedError()), '[object Error]', 'Object#toString');\n\n  assert.same(SuppressedError.prototype.constructor, SuppressedError, 'prototype constructor');\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  assert.false(SuppressedError.prototype.hasOwnProperty('cause'), 'prototype has not cause');\n});\n"
  },
  {
    "path": "tests/unit-global/es.symbol.async-dispose.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Symbol.asyncDispose', assert => {\n  assert.true('asyncDispose' in Symbol, 'Symbol.asyncDispose available');\n  assert.true(Object(Symbol.asyncDispose) instanceof Symbol, 'Symbol.asyncDispose is symbol');\n  // Node 20.4.0 add `Symbol.asyncDispose`, but with incorrect descriptor\n  // https://github.com/nodejs/node/issues/48699\n  if (DESCRIPTORS) {\n    const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'asyncDispose');\n    assert.false(descriptor.enumerable, 'non-enumerable');\n    assert.false(descriptor.writable, 'non-writable');\n    assert.false(descriptor.configurable, 'non-configurable');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.symbol.async-iterator.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Symbol.asyncIterator', assert => {\n  assert.true('asyncIterator' in Symbol, 'Symbol.asyncIterator available');\n  assert.nonEnumerable(Symbol, 'asyncIterator');\n  assert.true(Object(Symbol.asyncIterator) instanceof Symbol, 'Symbol.asyncIterator is symbol');\n  if (DESCRIPTORS) {\n    const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'asyncIterator');\n    assert.false(descriptor.enumerable, 'non-enumerable');\n    assert.false(descriptor.writable, 'non-writable');\n    assert.false(descriptor.configurable, 'non-configurable');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.symbol.constructor.js",
    "content": "import { DESCRIPTORS, GLOBAL, NATIVE } from '../helpers/constants.js';\n\nconst {\n  defineProperty,\n  defineProperties,\n  getOwnPropertyDescriptor,\n  getOwnPropertyNames,\n  getOwnPropertySymbols,\n  keys,\n  create,\n} = Object;\nconst { ownKeys } = GLOBAL.Reflect || {};\n\nQUnit.test('Symbol', assert => {\n  assert.isFunction(Symbol);\n  if (NATIVE) assert.same(Symbol.length, 0, 'arity is 0');\n  assert.name(Symbol, 'Symbol');\n  assert.looksNative(Symbol);\n  const symbol1 = Symbol('symbol');\n  const symbol2 = Symbol('symbol');\n  assert.notSame(symbol1, symbol2, 'Symbol(\"symbol\") !== Symbol(\"symbol\")');\n  const object = {};\n  object[symbol1] = 42;\n  assert.same(object[symbol1], 42, 'Symbol() work as key');\n  assert.notSame(object[symbol2], 42, 'Various symbols from one description are various keys');\n  // assert.throws(() => Symbol(Symbol('foo')), 'throws on symbol argument');\n  if (DESCRIPTORS) {\n    let count = 0;\n    // eslint-disable-next-line no-unused-vars -- required for testing\n    for (const key in object) count++;\n    assert.same(count, 0, 'object[Symbol()] is not enumerable');\n  }\n});\n\nQUnit.test('Symbol as global key', assert => {\n  const TEXT = 'test global symbol key';\n  const symbol = Symbol(TEXT);\n  GLOBAL[symbol] = TEXT;\n  assert.same(GLOBAL[symbol], TEXT, TEXT);\n});\n\nQUnit.test('Well-known Symbols', assert => {\n  const wks = [\n    'hasInstance',\n    'isConcatSpreadable',\n    'iterator',\n    'match',\n    'matchAll',\n    'replace',\n    'search',\n    'species',\n    'split',\n    'toPrimitive',\n    'toStringTag',\n    'unscopables',\n  ];\n  for (const name of wks) {\n    assert.true(name in Symbol, `Symbol.${ name } available`);\n    assert.true(Object(Symbol[name]) instanceof Symbol, `Symbol.${ name } is symbol`);\n    if (DESCRIPTORS) {\n      const descriptor = getOwnPropertyDescriptor(Symbol, name);\n      assert.false(descriptor.enumerable, 'non-enumerable');\n      assert.false(descriptor.writable, 'non-writable');\n      assert.false(descriptor.configurable, 'non-configurable');\n    }\n  }\n});\n\nQUnit.test('Symbol#@@toPrimitive', assert => {\n  const symbol = Symbol('Symbol#@@toPrimitive test');\n  assert.isFunction(Symbol.prototype[Symbol.toPrimitive]);\n  assert.same(symbol, symbol[Symbol.toPrimitive](), 'works');\n});\n\nQUnit.test('Symbol#@@toStringTag', assert => {\n  assert.same(Symbol.prototype[Symbol.toStringTag], 'Symbol', 'Symbol::@@toStringTag is `Symbol`');\n});\n\nif (DESCRIPTORS) {\n  QUnit.test('Symbols & descriptors', assert => {\n    const d = Symbol('d');\n    const e = Symbol('e');\n    const f = Symbol('f');\n    const i = Symbol('i');\n    const j = Symbol('j');\n    const prototype = { g: 'g' };\n    prototype[i] = 'i';\n    defineProperty(prototype, 'h', {\n      value: 'h',\n    });\n    defineProperty(prototype, j, {\n      value: 'j',\n    });\n    const object = create(prototype);\n    object.a = 'a';\n    object[d] = 'd';\n    defineProperty(object, 'b', {\n      value: 'b',\n    });\n    defineProperty(object, 'c', {\n      value: 'c',\n      enumerable: true,\n    });\n    defineProperty(object, e, {\n      configurable: true,\n      writable: true,\n      value: 'e',\n    });\n    const descriptor = {\n      value: 'f',\n      enumerable: true,\n    };\n    defineProperty(object, f, descriptor);\n    assert.true(descriptor.enumerable, 'defineProperty not changes descriptor object');\n    assert.deepEqual(getOwnPropertyDescriptor(object, 'a'), {\n      configurable: true,\n      writable: true,\n      enumerable: true,\n      value: 'a',\n    }, 'getOwnPropertyDescriptor a');\n    assert.deepEqual(getOwnPropertyDescriptor(object, 'b'), {\n      configurable: false,\n      writable: false,\n      enumerable: false,\n      value: 'b',\n    }, 'getOwnPropertyDescriptor b');\n    assert.deepEqual(getOwnPropertyDescriptor(object, 'c'), {\n      configurable: false,\n      writable: false,\n      enumerable: true,\n      value: 'c',\n    }, 'getOwnPropertyDescriptor c');\n    assert.deepEqual(getOwnPropertyDescriptor(object, d), {\n      configurable: true,\n      writable: true,\n      enumerable: true,\n      value: 'd',\n    }, 'getOwnPropertyDescriptor d');\n    assert.deepEqual(getOwnPropertyDescriptor(object, e), {\n      configurable: true,\n      writable: true,\n      enumerable: false,\n      value: 'e',\n    }, 'getOwnPropertyDescriptor e');\n    assert.deepEqual(getOwnPropertyDescriptor(object, f), {\n      configurable: false,\n      writable: false,\n      enumerable: true,\n      value: 'f',\n    }, 'getOwnPropertyDescriptor f');\n    assert.same(getOwnPropertyDescriptor(object, 'g'), undefined, 'getOwnPropertyDescriptor g');\n    assert.same(getOwnPropertyDescriptor(object, 'h'), undefined, 'getOwnPropertyDescriptor h');\n    assert.same(getOwnPropertyDescriptor(object, i), undefined, 'getOwnPropertyDescriptor i');\n    assert.same(getOwnPropertyDescriptor(object, j), undefined, 'getOwnPropertyDescriptor j');\n    assert.same(getOwnPropertyDescriptor(object, 'k'), undefined, 'getOwnPropertyDescriptor k');\n    assert.false(getOwnPropertyDescriptor(Object.prototype, 'toString').enumerable, 'getOwnPropertyDescriptor on Object.prototype');\n    assert.same(getOwnPropertyDescriptor(Object.prototype, d), undefined, 'getOwnPropertyDescriptor on Object.prototype missed symbol');\n    assert.same(keys(object).length, 2, 'Object.keys');\n    assert.same(getOwnPropertyNames(object).length, 3, 'Object.getOwnPropertyNames');\n    assert.same(getOwnPropertySymbols(object).length, 3, 'Object.getOwnPropertySymbols');\n    assert.same(ownKeys(object).length, 6, 'Reflect.ownKeys');\n    delete object[e];\n    object[e] = 'e';\n    assert.deepEqual(getOwnPropertyDescriptor(object, e), {\n      configurable: true,\n      writable: true,\n      enumerable: true,\n      value: 'e',\n    }, 'redefined non-enum key');\n    const g = Symbol('g');\n    defineProperty(object, g, { configurable: true, enumerable: true, writable: true, value: 1 });\n    defineProperty(object, g, { value: 2 });\n    assert.deepEqual(getOwnPropertyDescriptor(object, g), {\n      configurable: true,\n      writable: true,\n      enumerable: true,\n      value: 2,\n    }, 'redefine with partial descriptor preserves enumerable');\n  });\n\n  QUnit.test('Symbols & Object.defineProperties', assert => {\n    const c = Symbol('c');\n    const d = Symbol('d');\n    const descriptors = {\n      a: {\n        value: 'a',\n      },\n    };\n    descriptors[c] = {\n      value: 'c',\n    };\n    defineProperty(descriptors, 'b', {\n      value: {\n        value: 'b',\n      },\n    });\n    defineProperty(descriptors, d, {\n      value: {\n        value: 'd',\n      },\n    });\n    const object = defineProperties({}, descriptors);\n    assert.same(object.a, 'a', 'a');\n    assert.same(object.b, undefined, 'b');\n    assert.same(object[c], 'c', 'c');\n    assert.same(object[d], undefined, 'd');\n  });\n\n  QUnit.test('Symbols & Object.create', assert => {\n    const c = Symbol('c');\n    const d = Symbol('d');\n    const descriptors = {\n      a: {\n        value: 'a',\n      },\n    };\n    descriptors[c] = {\n      value: 'c',\n    };\n    defineProperty(descriptors, 'b', {\n      value: {\n        value: 'b',\n      },\n    });\n    defineProperty(descriptors, d, {\n      value: {\n        value: 'd',\n      },\n    });\n    const object = create(null, descriptors);\n    assert.same(object.a, 'a', 'a');\n    assert.same(object.b, undefined, 'b');\n    assert.same(object[c], 'c', 'c');\n    assert.same(object[d], undefined, 'd');\n  });\n\n  const constructors = ['Map', 'Set', 'Promise'];\n  for (const name of constructors) {\n    QUnit.test(`${ name }@@species`, assert => {\n      assert.same(GLOBAL[name][Symbol.species], GLOBAL[name], `${ name }@@species === ${ name }`);\n      const Subclass = create(GLOBAL[name]);\n      assert.same(Subclass[Symbol.species], Subclass, `${ name } subclass`);\n    });\n  }\n\n  QUnit.test('Array@@species', assert => {\n    assert.same(Array[Symbol.species], Array, 'Array@@species === Array');\n    const Subclass = create(Array);\n    assert.same(Subclass[Symbol.species], Subclass, 'Array subclass');\n  });\n\n  QUnit.test('Symbol.sham flag', assert => {\n    assert.same(Symbol.sham, typeof Symbol('Symbol.sham flag test') == 'symbol' ? undefined : true);\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/es.symbol.description.js",
    "content": "/* eslint-disable symbol-description -- required for testing */\nimport { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Symbol#description', assert => {\n  assert.same(Symbol('foo').description, 'foo');\n  assert.same(Symbol('').description, '');\n  assert.same(Symbol(')').description, ')');\n  assert.same(Symbol({}).description, '[object Object]');\n  assert.same(Symbol(null).description, 'null');\n  assert.same(Symbol(undefined).description, undefined);\n  assert.same(Symbol().description, undefined);\n  assert.same(Object(Symbol('foo')).description, 'foo');\n  assert.same(Object(Symbol()).description, undefined);\n  if (DESCRIPTORS) {\n    assert.false(Object.hasOwn(Symbol('foo'), 'description'));\n    const descriptor = Object.getOwnPropertyDescriptor(Symbol.prototype, 'description');\n    assert.false(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n  }\n  if (typeof Symbol() == 'symbol') {\n    assert.same(Symbol('foo').toString(), 'Symbol(foo)');\n    assert.same(String(Symbol('foo')), 'Symbol(foo)');\n    assert.same(Symbol('').toString(), 'Symbol()');\n    assert.same(String(Symbol('')), 'Symbol()');\n    assert.same(Symbol().toString(), 'Symbol()');\n    assert.same(String(Symbol()), 'Symbol()');\n  }\n  // Symbol.for with empty string key should have '' description\n  assert.same(Symbol.for('').description, '', 'Symbol.for(\"\").description');\n  assert.same(Symbol.for('foo').description, 'foo', 'Symbol.for(\"foo\").description');\n});\n"
  },
  {
    "path": "tests/unit-global/es.symbol.dispose.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Symbol.dispose', assert => {\n  assert.true('dispose' in Symbol, 'Symbol.dispose available');\n  assert.true(Object(Symbol.dispose) instanceof Symbol, 'Symbol.dispose is symbol');\n  // Node 20.4.0 add `Symbol.dispose`, but with incorrect descriptor\n  // https://github.com/nodejs/node/issues/48699\n  if (DESCRIPTORS) {\n    const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'dispose');\n    assert.false(descriptor.enumerable, 'non-enumerable');\n    assert.false(descriptor.writable, 'non-writable');\n    assert.false(descriptor.configurable, 'non-configurable');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.symbol.for.js",
    "content": "import { NATIVE } from '../helpers/constants.js';\n\nQUnit.test('Symbol.for', assert => {\n  assert.isFunction(Symbol.for, 'Symbol.for is function');\n  assert.nonEnumerable(Symbol, 'for');\n  assert.arity(Symbol.for, 1, 'Symbol.for arity is 1');\n  if (NATIVE) assert.name(Symbol.for, 'for', 'Symbol.for.name is \"for\"');\n  assert.looksNative(Symbol.for, 'Symbol.for looks like native');\n  const symbol = Symbol.for('foo');\n  assert.same(Symbol.for('foo'), symbol, 'registry');\n  assert.true(Object(symbol) instanceof Symbol, 'returns symbol');\n  assert.throws(() => Symbol.for(Symbol('foo')), 'throws on symbol argument');\n});\n"
  },
  {
    "path": "tests/unit-global/es.symbol.key-for.js",
    "content": "QUnit.test('Symbol.keyFor', assert => {\n  assert.isFunction(Symbol.keyFor, 'Symbol.keyFor is function');\n  assert.nonEnumerable(Symbol, 'keyFor');\n  assert.arity(Symbol.keyFor, 1, 'Symbol.keyFor arity is 1');\n  assert.name(Symbol.keyFor, 'keyFor', 'Symbol.keyFor.name is \"keyFor\"');\n  assert.looksNative(Symbol.keyFor, 'Symbol.keyFor looks like native');\n  assert.same(Symbol.keyFor(Symbol.for('foo')), 'foo');\n  assert.same(Symbol.keyFor(Symbol('foo')), undefined);\n  assert.throws(() => Symbol.keyFor('foo'), 'throws on non-symbol');\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.at.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.at', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { at } = TypedArray.prototype;\n    assert.isFunction(at, `${ name }::at is function`);\n    assert.arity(at, 1, `${ name }::at arity is 1`);\n    assert.name(at, 'at', `${ name }::at name is 'at'`);\n    assert.looksNative(at, `${ name }::at looks native`);\n    assert.same(new TypedArray([1, 2, 3]).at(0), 1);\n    assert.same(new TypedArray([1, 2, 3]).at(1), 2);\n    assert.same(new TypedArray([1, 2, 3]).at(2), 3);\n    assert.same(new TypedArray([1, 2, 3]).at(3), undefined);\n    assert.same(new TypedArray([1, 2, 3]).at(-1), 3);\n    assert.same(new TypedArray([1, 2, 3]).at(-2), 2);\n    assert.same(new TypedArray([1, 2, 3]).at(-3), 1);\n    assert.same(new TypedArray([1, 2, 3]).at(-4), undefined);\n    assert.same(new TypedArray([1, 2, 3]).at(0.4), 1);\n    assert.same(new TypedArray([1, 2, 3]).at(0.5), 1);\n    assert.same(new TypedArray([1, 2, 3]).at(0.6), 1);\n    assert.same(new TypedArray([1]).at(NaN), 1);\n    assert.same(new TypedArray([1]).at(), 1);\n    assert.same(new TypedArray([1, 2, 3]).at(-0), 1);\n    assert.throws(() => at.call({ 0: 1, length: 1 }, 0), TypeError);\n    assert.throws(() => at.call(null, 0), TypeError);\n    assert.throws(() => at.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.constructors.js",
    "content": "import { DESCRIPTORS, NATIVE, TYPED_ARRAYS } from '../helpers/constants.js';\nimport { createIterable } from '../helpers/helpers.js';\n\nconst { keys, getOwnPropertyDescriptor, getPrototypeOf, defineProperty, assign } = Object;\n\nif (DESCRIPTORS) {\n  for (const { name, TypedArray, bytes } of TYPED_ARRAYS) {\n    QUnit.test(`${ name } constructor`, assert => {\n      assert.isFunction(TypedArray);\n      assert.arity(TypedArray, 3);\n      assert.name(TypedArray, name);\n      // Safari 5 bug\n      if (NATIVE) assert.looksNative(TypedArray);\n      assert.same(TypedArray.BYTES_PER_ELEMENT, bytes, `${ name }.BYTES_PER_ELEMENT`);\n      let array = new TypedArray(4);\n      assert.same(array.BYTES_PER_ELEMENT, bytes, '#BYTES_PER_ELEMENT');\n      assert.same(array.byteOffset, 0, `${ name }#byteOffset, passed number`);\n      assert.same(array.byteLength, 4 * bytes, '#byteLength, passed number');\n      assert.arrayEqual(array, [0, 0, 0, 0], 'correct values, passed number');\n      assert.notThrows(() => {\n        // throws in IE / Edge / FF\n        array = new TypedArray('0x4');\n        assert.same(array.byteOffset, 0, '#byteOffset, passed string');\n        assert.same(array.byteLength, 4 * bytes, '#byteLength, passed string');\n        assert.arrayEqual(array, [0, 0, 0, 0], 'correct values, passed string');\n        return true;\n      }, 'passed string');\n      assert.notThrows(() => {\n        // throws in IE / Edge / FF\n        array = new TypedArray(true);\n        assert.same(array.byteOffset, 0, '#byteOffset, passed boolean');\n        assert.same(array.byteLength, 1 * bytes, '#byteLength, passed boolean');\n        assert.arrayEqual(array, [0], 'correct values, passed boolean');\n        return true;\n      }, 'passed boolean');\n      assert.notThrows(() => {\n        array = new TypedArray();\n        assert.same(array.byteOffset, 0, '#byteOffset, without arguments');\n        assert.same(array.byteLength, 0, '#byteLength, without arguments');\n        assert.arrayEqual(array, [], 'correct values, without arguments');\n        return true;\n      }, 'without arguments');\n      assert.notThrows(() => {\n        array = new TypedArray(undefined);\n        assert.same(array.byteOffset, 0, '#byteOffset, passed undefined');\n        assert.same(array.byteLength, 0, '#byteLength, passed undefined');\n        assert.arrayEqual(array, [], 'correct values, passed undefined');\n        return true;\n      }, 'passed undefined');\n      assert.notThrows(() => {\n        array = new TypedArray(-0);\n        assert.same(array.byteOffset, 0, '#byteOffset, passed -0');\n        assert.same(array.byteLength, 0, '#byteLength, passed -0');\n        assert.arrayEqual(array, [], 'correct values, passed -0');\n        return true;\n      }, 'passed -0');\n      assert.notThrows(() => {\n        array = new TypedArray(NaN);\n        assert.same(array.byteOffset, 0, '#byteOffset, passed NaN');\n        assert.same(array.byteLength, 0, '#byteLength, passed NaN');\n        assert.arrayEqual(array, [], 'correct values, passed NaN');\n        return true;\n      }, 'passed NaN');\n      assert.notThrows(() => {\n        array = new TypedArray(1.5);\n        assert.same(array.byteOffset, 0, '#byteOffset, passed 1.5');\n        assert.same(array.byteLength, 1 * bytes, '#byteLength, passed 1.5');\n        assert.arrayEqual(array, [0], 'correct values, passed 1.5');\n        return true;\n      }, 'passed 1.5');\n      if (NATIVE) assert.throws(() => new TypedArray(-1), RangeError, 'throws on -1');\n      assert.notThrows(() => {\n        array = new TypedArray(null);\n        assert.same(array.byteOffset, 0, '#byteOffset, passed null');\n        assert.same(array.byteLength, 0, '#byteLength, passed null');\n        assert.arrayEqual(array, [], 'correct values, passed null');\n        return true;\n      }, 'passed null');\n      array = new TypedArray([1, 2, 3, 4]);\n      assert.same(array.byteOffset, 0, '#byteOffset, passed array');\n      assert.same(array.byteLength, 4 * bytes, '#byteLength, passed array');\n      assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed array');\n      array = new TypedArray({\n        0: 1,\n        1: 2,\n        2: 3,\n        3: 4,\n        length: 4,\n      });\n      assert.same(array.byteOffset, 0, '#byteOffset, passed array-like');\n      assert.same(array.byteLength, 4 * bytes, '#byteLength, passed array-like');\n      assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed array-like');\n      assert.notThrows(() => {\n        // throws in IE / Edge\n        array = new TypedArray({});\n        assert.same(array.byteOffset, 0, '#byteOffset, passed empty object (also array-like case)');\n        assert.same(array.byteLength, 0, '#byteLength, passed empty object (also array-like case)');\n        assert.arrayEqual(array, [], 'correct values, passed empty object (also array-like case)');\n        return true;\n      }, 'passed empty object (also array-like case)');\n      assert.notThrows(() => {\n        array = new TypedArray(createIterable([1, 2, 3, 4]));\n        assert.same(array.byteOffset, 0, '#byteOffset, passed iterable');\n        assert.same(array.byteLength, 4 * bytes, '#byteLength, passed iterable');\n        assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed iterable');\n        return true;\n      }, 'passed iterable');\n      assert.notThrows(() => {\n        array = new TypedArray([{ valueOf() { return 2; } }]);\n        assert.same(array.byteOffset, 0, '#byteOffset, passed array with object convertible to primitive');\n        assert.same(array.byteLength, bytes, '#byteLength, passed array with object convertible to primitive');\n        assert.arrayEqual(array, [2], 'correct values, passed array with object convertible to primitive');\n        return true;\n      }, 'passed array with object convertible to primitive');\n      assert.notThrows(() => {\n        array = new TypedArray(createIterable([{ valueOf() { return 2; } }]));\n        assert.same(array.byteOffset, 0, '#byteOffset, passed iterable with object convertible to primitive');\n        assert.same(array.byteLength, bytes, '#byteLength, passed iterable with object convertible to primitive');\n        assert.arrayEqual(array, [2], 'correct values, passed iterable with object convertible to primitive');\n        return true;\n      }, 'passed iterable with object convertible to primitive');\n      array = new TypedArray(new TypedArray([1, 2, 3, 4]));\n      assert.same(array.byteOffset, 0, '#byteOffset, passed typed array');\n      assert.same(array.byteLength, 4 * bytes, '#byteLength, passed typed array');\n      assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed typed array');\n      const fake = new TypedArray([1, 2, 3, 4]);\n      fake[Symbol.iterator] = function () {\n        return createIterable([4, 3, 2, 1])[Symbol.iterator]();\n      };\n      array = new TypedArray(fake);\n      assert.same(array.byteOffset, 0, '#byteOffset, passed typed array with custom iterator');\n      assert.same(array.byteLength, 4 * bytes, '#byteLength, passed typed array with custom iterator');\n      // https://code.google.com/p/v8/issues/detail?id=4552\n      assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed typed array with custom iterator');\n      array = new TypedArray(new ArrayBuffer(8));\n      assert.same(array.byteOffset, 0, '#byteOffset, passed buffer');\n      assert.same(array.byteLength, 8, '#byteLength, passed buffer');\n      assert.same(array.length, 8 / bytes, 'correct length, passed buffer');\n      array = new TypedArray(new ArrayBuffer(16), 8);\n      assert.same(array.byteOffset, 8, '#byteOffset, passed buffer and byteOffset');\n      assert.same(array.byteLength, 8, '#byteLength, passed buffer and byteOffset');\n      assert.same(array.length, 8 / bytes, 'correct length, passed buffer and byteOffset');\n      array = new TypedArray(new ArrayBuffer(24), 8, 8 / bytes);\n      assert.same(array.byteOffset, 8, '#byteOffset, passed buffer, byteOffset and length');\n      assert.same(array.byteLength, 8, '#byteLength, passed buffer, byteOffset and length');\n      assert.same(array.length, 8 / bytes, 'correct length, passed buffer, byteOffset and length');\n      array = new TypedArray(new ArrayBuffer(8), undefined);\n      assert.same(array.byteOffset, 0, '#byteOffset, passed buffer and undefined');\n      assert.same(array.byteLength, 8, '#byteLength, passed buffer and undefined');\n      assert.same(array.length, 8 / bytes, 'correct length, passed buffer and undefined');\n      array = new TypedArray(new ArrayBuffer(16), 8, undefined);\n      assert.same(array.byteOffset, 8, '#byteOffset, passed buffer, byteOffset and undefined');\n      assert.same(array.byteLength, 8, '#byteLength, passed buffer, byteOffset and undefined');\n      assert.same(array.length, 8 / bytes, 'correct length, passed buffer, byteOffset and undefined');\n      array = new TypedArray(new ArrayBuffer(8), 8);\n      assert.same(array.byteOffset, 8, '#byteOffset, passed buffer and byteOffset with buffer length');\n      assert.same(array.byteLength, 0, '#byteLength, passed buffer and byteOffset with buffer length');\n      assert.arrayEqual(array, [], 'correct values, passed buffer and byteOffset with buffer length');\n      // FF bug - TypeError instead of RangeError\n      assert.throws(() => new TypedArray(new ArrayBuffer(8), -1), RangeError, 'If offset < 0, throw a RangeError exception');\n      if (bytes !== 1) {\n        // FF bug - TypeError instead of RangeError\n        assert.throws(() => new TypedArray(new ArrayBuffer(8), 3), RangeError, 'If offset modulo elementSize ≠ 0, throw a RangeError exception');\n      }\n      if (NATIVE) {\n        if (bytes !== 1) {\n          // fails in Opera 12\n          assert.throws(() => new TypedArray(new ArrayBuffer(9)), RangeError, 'If bufferByteLength modulo elementSize ≠ 0, throw a RangeError exception');\n        }\n        assert.throws(() => new TypedArray(new ArrayBuffer(8), 16), RangeError, 'If newByteLength < 0, throw a RangeError exception');\n        assert.throws(() => new TypedArray(new ArrayBuffer(24), 8, 24), RangeError, 'If offset+newByteLength > bufferByteLength, throw a RangeError exception');\n      } else { // FF bug - TypeError instead of RangeError\n        assert.throws(() => new TypedArray(new ArrayBuffer(8), 16), 'If newByteLength < 0, throw a RangeError exception');\n        assert.throws(() => new TypedArray(new ArrayBuffer(24), 8, 24), 'If offset+newByteLength > bufferByteLength, throw a RangeError exception');\n      }\n      // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n      assert.throws(() => TypedArray(1), TypeError, 'throws without `new`');\n      assert.same(TypedArray[Symbol.species], TypedArray, '@@species');\n    });\n\n    QUnit.test(`${ name } descriptors`, assert => {\n      const array = new TypedArray(2);\n      const descriptor = getOwnPropertyDescriptor(array, 0);\n      const base = NATIVE ? {\n        writable: true,\n        enumerable: true,\n        configurable: false,\n      } : {\n        writable: descriptor.writable,\n        enumerable: true,\n        configurable: descriptor.configurable,\n      };\n      assert.deepEqual(getOwnPropertyDescriptor(array, 0), assign({\n        value: 0,\n      }, base), 'Object.getOwnPropertyDescriptor');\n      if (NATIVE) {\n        // fails in old WebKit\n        assert.arrayEqual(keys(array), ['0', '1'], 'Object.keys');\n        const results = [];\n        for (const key in array) results.push(key);\n        // fails in old WebKit\n        assert.arrayEqual(results, ['0', '1'], 'for-in');\n        defineProperty(array, 0, {\n          value: 1,\n          writable: true,\n          enumerable: true,\n          configurable: false,\n        });\n        array[0] = array[1] = 2.5;\n        assert.deepEqual(getOwnPropertyDescriptor(array, 0), assign({\n          value: array[1],\n        }, base), 'Object.defineProperty, valid descriptor #1');\n        defineProperty(array, 0, {\n          value: 1,\n        });\n        array[0] = array[1] = 3.5;\n        assert.deepEqual(getOwnPropertyDescriptor(array, 0), assign({\n          value: array[1],\n        }, base), 'Object.defineProperty, valid descriptor #2');\n        assert.throws(() => defineProperty(array, 0, {\n          value: 2,\n          writable: false,\n          enumerable: true,\n          configurable: false,\n        }), 'Object.defineProperty, invalid descriptor #1');\n        assert.throws(() => defineProperty(array, 0, {\n          value: 2,\n          writable: true,\n          enumerable: false,\n          configurable: false,\n        }), 'Object.defineProperty, invalid descriptor #2');\n        assert.throws(() => defineProperty(array, 0, {\n          get() {\n            return 2;\n          },\n        }), 'Object.defineProperty, invalid descriptor #3');\n      }\n      assert.throws(() => defineProperty(array, 0, {\n        value: 2,\n        get() {\n          return 2;\n        },\n      }), 'Object.defineProperty, invalid descriptor #4');\n    });\n\n    QUnit.test(`${ name } @@toStringTag`, assert => {\n      const TypedArrayPrototype = getPrototypeOf(TypedArray.prototype);\n      const descriptor = getOwnPropertyDescriptor(TypedArrayPrototype, Symbol.toStringTag);\n      const getter = descriptor.get;\n      assert.isFunction(getter);\n      assert.same(getter.call(new Int8Array(1)), 'Int8Array');\n      assert.same(getter.call(new TypedArray(1)), name);\n      assert.same(getter.call([]), undefined);\n      assert.same(getter.call({}), undefined);\n      assert.same(getter.call(), undefined);\n    });\n\n    QUnit.test(`${ name }.sham`, assert => {\n      if (TypedArray.sham) assert.required(`${ name }.sham flag exists`);\n      else assert.required(`${ name }.sham flag missed`);\n    });\n  }\n}\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.copy-within.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.copyWithin', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { copyWithin } = TypedArray.prototype;\n    assert.isFunction(copyWithin, `${ name }::copyWithin is function`);\n    assert.arity(copyWithin, 2, `${ name }::copyWithin arity is 2`);\n    assert.name(copyWithin, 'copyWithin', `${ name }::copyWithin name is 'copyWithin'`);\n    assert.looksNative(copyWithin, `${ name }::copyWithin looks native`);\n    const array = new TypedArray(5);\n    assert.same(array.copyWithin(0), array, 'return this');\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4, 5]).copyWithin(0, 3), [4, 5, 3, 4, 5]);\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4, 5]).copyWithin(1, 3), [1, 4, 5, 4, 5]);\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4, 5]).copyWithin(1, 2), [1, 3, 4, 5, 5]);\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4, 5]).copyWithin(2, 2), [1, 2, 3, 4, 5]);\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4, 5]).copyWithin(0, 3, 4), [4, 2, 3, 4, 5]);\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4, 5]).copyWithin(1, 3, 4), [1, 4, 3, 4, 5]);\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4, 5]).copyWithin(1, 2, 4), [1, 3, 4, 4, 5]);\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4, 5]).copyWithin(0, -2), [4, 5, 3, 4, 5]);\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4, 5]).copyWithin(0, -2, -1), [4, 2, 3, 4, 5]);\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4, 5]).copyWithin(-4, -3, -2), [1, 3, 3, 4, 5]);\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4, 5]).copyWithin(-4, -3, -1), [1, 3, 4, 4, 5]);\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4, 5]).copyWithin(-4, -3), [1, 3, 4, 5, 5]);\n    assert.throws(() => copyWithin.call([0], 1), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.every.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.every', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { every } = TypedArray.prototype;\n    assert.isFunction(every, `${ name }::every is function`);\n    assert.arity(every, 1, `${ name }::every arity is 1`);\n    assert.name(every, 'every', `${ name }::every name is 'every'`);\n    assert.looksNative(every, `${ name }::every looks native`);\n    const array = new TypedArray([1]);\n    const context = {};\n    array.every(function (value, key, that) {\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n      assert.same(this, context, 'correct callback context');\n    }, context);\n    assert.true(new TypedArray([1, 2, 3]).every(it => typeof it == 'number'));\n    assert.true(new TypedArray([1, 2, 3]).every(it => it < 4));\n    assert.false(new TypedArray([1, 2, 3]).every(it => it < 3));\n    assert.false(new TypedArray([1, 2, 3]).every(it => typeof it == 'string'));\n    assert.true(new TypedArray([1, 2, 3]).every(function () {\n      return +this === 1;\n    }, 1));\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).every((value, key) => {\n      values += value;\n      keys += key;\n      return true;\n    });\n    assert.same(values, '123');\n    assert.same(keys, '012');\n    assert.throws(() => every.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.fill.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\nimport { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.fill', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { fill } = TypedArray.prototype;\n    assert.isFunction(fill, `${ name }::fill is function`);\n    assert.arity(fill, 1, `${ name }::fill arity is 1`);\n    assert.name(fill, 'fill', `${ name }::fill name is 'fill'`);\n    assert.looksNative(fill, `${ name }::fill looks native`);\n    const array = new TypedArray(5);\n    assert.same(array.fill(5), array, 'return this');\n    assert.arrayEqual(new TypedArray(5).fill(5), [5, 5, 5, 5, 5], 'basic');\n    assert.arrayEqual(new TypedArray(5).fill(5, 1), [0, 5, 5, 5, 5], 'start index');\n    assert.arrayEqual(new TypedArray(5).fill(5, 1, 4), [0, 5, 5, 5, 0], 'end index');\n    assert.arrayEqual(new TypedArray(5).fill(5, 6, 1), [0, 0, 0, 0, 0], 'start > end');\n    assert.arrayEqual(new TypedArray(5).fill(5, -3, 4), [0, 0, 5, 5, 0], 'negative start index');\n    assert.throws(() => fill.call([0], 1), \"isn't generic\");\n\n    const checker = createConversionChecker(10);\n    assert.same(new TypedArray(5).fill(checker)[2], 10);\n    assert.same(checker.$valueOf, 1, 'valueOf calls');\n    assert.same(checker.$toString, 0, 'toString calls');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.filter.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.filter', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { filter } = TypedArray.prototype;\n    assert.isFunction(filter, `${ name }::filter is function`);\n    assert.arity(filter, 1, `${ name }::filter arity is 1`);\n    assert.name(filter, 'filter', `${ name }::filter name is 'filter'`);\n    assert.looksNative(filter, `${ name }::filter looks native`);\n    const array = new TypedArray([1]);\n    const context = {};\n    array.filter(function (value, key, that) {\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n      assert.same(this, context, 'correct callback context');\n    }, context);\n    const instance = new TypedArray([1, 2, 3, 4, 5, 6, 7, 8, 9]).filter(it => it % 2);\n    assert.true(instance instanceof TypedArray, 'correct instance');\n    assert.arrayEqual(instance, [1, 3, 5, 7, 9], 'works');\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).filter((value, key) => {\n      values += value;\n      keys += key;\n    });\n    assert.same(values, '123');\n    assert.same(keys, '012');\n    assert.throws(() => filter.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.find-index.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.findIndex', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { findIndex } = TypedArray.prototype;\n    assert.isFunction(findIndex, `${ name }::findIndex is function`);\n    assert.arity(findIndex, 1, `${ name }::findIndex arity is 1`);\n    assert.name(findIndex, 'findIndex', `${ name }::findIndex name is 'findIndex'`);\n    assert.looksNative(findIndex, `${ name }::findIndex looks native`);\n    const array = new TypedArray([1]);\n    const context = {};\n    array.findIndex(function (value, key, that) {\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n      assert.same(this, context, 'correct callback context');\n    }, context);\n    assert.same(new TypedArray([1, 2, 3]).findIndex(it => !(it % 2)), 1);\n    // eslint-disable-next-line unicorn/prefer-array-index-of -- ignore\n    assert.same(new TypedArray([1, 2, 3]).findIndex(it => it === 4), -1);\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).findIndex((value, key) => {\n      values += value;\n      keys += key;\n    });\n    assert.same(values, '123');\n    assert.same(keys, '012');\n    assert.throws(() => findIndex.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.find-last-index.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.findLastIndex', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { findLastIndex } = TypedArray.prototype;\n    assert.isFunction(findLastIndex, `${ name }::findLastIndex is function`);\n    assert.arity(findLastIndex, 1, `${ name }::findLastIndex arity is 1`);\n    assert.name(findLastIndex, 'findLastIndex', `${ name }::findLastIndex name is 'findLastIndex'`);\n    assert.looksNative(findLastIndex, `${ name }::findLastIndex looks native`);\n    const array = new TypedArray([1]);\n    const context = {};\n    array.findLastIndex(function (value, key, that) {\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n      assert.same(this, context, 'correct callback context');\n    }, context);\n    assert.same(new TypedArray([1, 2, 3, 2, 1]).findLastIndex(it => !(it % 2)), 3);\n    assert.same(new TypedArray([1, 2, 3, 2, 1]).findLastIndex(it => it > 3), -1);\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).findLastIndex((value, key) => {\n      values += value;\n      keys += key;\n    });\n    assert.same(values, '321');\n    assert.same(keys, '210');\n    assert.throws(() => findLastIndex.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.find-last.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.findLast', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { findLast } = TypedArray.prototype;\n    assert.isFunction(findLast, `${ name }::findLast is function`);\n    assert.arity(findLast, 1, `${ name }::findLast arity is 1`);\n    assert.name(findLast, 'findLast', `${ name }::findLast name is 'findLast'`);\n    assert.looksNative(findLast, `${ name }::findLast looks native`);\n    const array = new TypedArray([1]);\n    const context = {};\n    array.findLast(function (value, key, that) {\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n      assert.same(this, context, 'correct callback context');\n    }, context);\n    assert.same(new TypedArray([1, 2, 3, 4, 5]).findLast(it => !(it % 2)), 4);\n    assert.same(new TypedArray([1, 2, 3, 4, 5]).findLast(it => it === 6), undefined);\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).findLast((value, key) => {\n      values += value;\n      keys += key;\n    });\n    assert.same(values, '321');\n    assert.same(keys, '210');\n    assert.throws(() => findLast.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.find.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.find', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { find } = TypedArray.prototype;\n    assert.isFunction(find, `${ name }::find is function`);\n    assert.arity(find, 1, `${ name }::find arity is 1`);\n    assert.name(find, 'find', `${ name }::find name is 'find'`);\n    assert.looksNative(find, `${ name }::find looks native`);\n    const array = new TypedArray([1]);\n    const context = {};\n    array.find(function (value, key, that) {\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n      assert.same(this, context, 'correct callback context');\n    }, context);\n    assert.same(new TypedArray([1, 2, 3]).find(it => !(it % 2)), 2);\n    assert.same(new TypedArray([1, 2, 3]).find(it => it === 4), undefined);\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).find((value, key) => {\n      values += value;\n      keys += key;\n    });\n    assert.same(values, '123');\n    assert.same(keys, '012');\n    assert.throws(() => find.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.for-each.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.forEach', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { forEach } = TypedArray.prototype;\n    assert.isFunction(forEach, `${ name }::forEach is function`);\n    assert.arity(forEach, 1, `${ name }::forEach arity is 1`);\n    assert.name(forEach, 'forEach', `${ name }::forEach name is 'forEach'`);\n    assert.looksNative(forEach, `${ name }::forEach looks native`);\n    const array = new TypedArray([1]);\n    const context = {};\n    array.forEach(function (value, key, that) {\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n      assert.same(this, context, 'correct callback context');\n    }, context);\n    assert.same(new TypedArray([1, 2, 3]).forEach(it => it % 2), undefined);\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).forEach((value, key) => {\n      values += value;\n      keys += key;\n    });\n    assert.same(values, '123');\n    assert.same(keys, '012');\n    assert.throws(() => forEach.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.from.js",
    "content": "import { DESCRIPTORS, NATIVE, TYPED_ARRAYS_WITH_BIG_INT } from '../helpers/constants.js';\nimport { createIterable } from '../helpers/helpers.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArray%.from', assert => {\n  // we can't implement %TypedArray% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray, $ } of TYPED_ARRAYS_WITH_BIG_INT) {\n    assert.isFunction(TypedArray.from, `${ name }.from is function`);\n    assert.arity(TypedArray.from, 1, `${ name }.from arity is 1`);\n    assert.name(TypedArray.from, 'from', `${ name }.from name is 'from'`);\n    assert.looksNative(TypedArray.from, `${ name }.from looks native`);\n    let instance = TypedArray.from([$(1), $(2), $(3)]);\n    assert.true(instance instanceof TypedArray, 'correct instance with array');\n    assert.deepEqual(instance, new TypedArray([$(1), $(2), $(3)]), 'correct elements with array');\n    instance = TypedArray.from({\n      0: $(1),\n      1: $(2),\n      2: $(3),\n      length: 3,\n    });\n    assert.true(instance instanceof TypedArray, 'correct instance with array-like');\n    assert.deepEqual(instance, new TypedArray([$(1), $(2), $(3)]), 'correct elements with array-like');\n    instance = TypedArray.from(createIterable([$(1), $(2), $(3)]));\n    assert.true(instance instanceof TypedArray, 'correct instance with iterable');\n    assert.deepEqual(instance, new TypedArray([$(1), $(2), $(3)]), 'correct elements with iterable');\n    assert.deepEqual(TypedArray.from([1, 2, 3], it => String(it ** 2)), new TypedArray([$(1), $(4), $(9)]), 'accept callback');\n    assert.deepEqual(TypedArray.from([{ valueOf() { return $(2); } }]), new TypedArray([$(2)]), 'passed array with object convertible to primitive');\n    assert.deepEqual(TypedArray.from(createIterable([{ valueOf() { return $(2); } }])), new TypedArray([$(2)]), 'passed iterable with object convertible to primitive');\n    const context = {};\n    TypedArray.from([$(1)], function (value, key) {\n      assert.same(arguments.length, 2, 'correct number of callback arguments');\n      assert.same(value, $(1), 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(this, context, 'correct callback context');\n      return $(1);\n    }, context);\n    assert.throws(() => TypedArray.from.call(undefined, []), \"isn't generic #1\");\n    if (NATIVE) {\n      assert.throws(() => TypedArray.from.call(Array, []), \"isn't generic #2\");\n      assert.notThrows(() => TypedArray.from({\n        0: $(1),\n        length: -1,\n      }, () => {\n        throw new Error();\n      }), 'uses ToLength');\n    }\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.includes.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.includes', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { includes } = TypedArray.prototype;\n    assert.isFunction(includes, `${ name }::includes is function`);\n    assert.arity(includes, 1, `${ name }::includes arity is 1`);\n    assert.name(includes, 'includes', `${ name }::includes name is 'includes'`);\n    assert.looksNative(includes, `${ name }::includes looks native`);\n    assert.true(new TypedArray([1, 1, 1]).includes(1));\n    assert.false(new TypedArray([1, 2, 3]).includes(1, 1));\n    assert.true(new TypedArray([1, 2, 3]).includes(2, 1));\n    assert.false(new TypedArray([1, 2, 3]).includes(2, -1));\n    assert.true(new TypedArray([1, 2, 3]).includes(2, -2));\n    assert.throws(() => includes.call([1], 1), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.index-of.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.indexOf', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { indexOf } = TypedArray.prototype;\n    assert.isFunction(indexOf, `${ name }::indexOf is function`);\n    assert.arity(indexOf, 1, `${ name }::indexOf arity is 1`);\n    assert.name(indexOf, 'indexOf', `${ name }::indexOf name is 'indexOf'`);\n    assert.looksNative(indexOf, `${ name }::indexOf looks native`);\n    assert.same(new TypedArray([1, 1, 1]).indexOf(1), 0);\n    assert.same(new TypedArray([1, 2, 3]).indexOf(1, 1), -1);\n    assert.same(new TypedArray([1, 2, 3]).indexOf(2, 1), 1);\n    assert.same(new TypedArray([1, 2, 3]).indexOf(2, -1), -1);\n    assert.same(new TypedArray([1, 2, 3]).indexOf(2, -2), 1);\n    assert.throws(() => indexOf.call([1], 1), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.iterator.js",
    "content": "import { DESCRIPTORS, GLOBAL, NATIVE, TYPED_ARRAYS } from '../helpers/constants.js';\n\nconst Symbol = GLOBAL.Symbol || {};\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.keys', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { keys } = TypedArray.prototype;\n    assert.isFunction(keys, `${ name }::keys is function`);\n    assert.arity(keys, 0, `${ name }::keys arity is 0`);\n    assert.name(keys, 'keys', `${ name }::keys name is 'keys'`);\n    assert.looksNative(keys, `${ name }::keys looks native`);\n    const iterator = new TypedArray([1, 2, 3]).keys();\n    assert.isIterator(iterator);\n    assert.isIterable(iterator);\n    assert.same(iterator[Symbol.toStringTag], 'Array Iterator');\n    assert.deepEqual(iterator.next(), {\n      value: 0,\n      done: false,\n    }, 'step 1');\n    assert.deepEqual(iterator.next(), {\n      value: 1,\n      done: false,\n    }, 'step 2');\n    assert.deepEqual(iterator.next(), {\n      value: 2,\n      done: false,\n    }, 'step 3');\n    assert.deepEqual(iterator.next(), {\n      value: undefined,\n      done: true,\n    }, 'done');\n    if (NATIVE) assert.throws(() => keys.call([1, 2]), \"isn't generic\");\n  }\n});\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.values', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { values } = TypedArray.prototype;\n    assert.isFunction(values, `${ name }::values is function`);\n    assert.arity(values, 0, `${ name }::values arity is 0`);\n    assert.name(values, 'values', `${ name }::values name is 'values'`);\n    assert.looksNative(values, `${ name }::values looks native`);\n    const iterator = new TypedArray([1, 2, 3]).values();\n    assert.isIterator(iterator);\n    assert.isIterable(iterator);\n    assert.same(iterator[Symbol.toStringTag], 'Array Iterator');\n    assert.deepEqual(iterator.next(), {\n      value: 1,\n      done: false,\n    }, 'step 1');\n    assert.deepEqual(iterator.next(), {\n      value: 2,\n      done: false,\n    }, 'step 2');\n    assert.deepEqual(iterator.next(), {\n      value: 3,\n      done: false,\n    }, 'step 3');\n    assert.deepEqual(iterator.next(), {\n      value: undefined,\n      done: true,\n    }, 'done');\n    if (NATIVE) assert.throws(() => values.call([1, 2]), \"isn't generic\");\n  }\n});\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.entries', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { entries } = TypedArray.prototype;\n    assert.isFunction(entries, `${ name }::entries is function`);\n    assert.arity(entries, 0, `${ name }::entries arity is 0`);\n    assert.name(entries, 'entries', `${ name }::entries name is 'entries'`);\n    assert.looksNative(entries, `${ name }::entries looks native`);\n    const iterator = new TypedArray([1, 2, 3]).entries();\n    assert.isIterator(iterator);\n    assert.isIterable(iterator);\n    assert.same(iterator[Symbol.toStringTag], 'Array Iterator');\n    assert.deepEqual(iterator.next(), {\n      value: [0, 1],\n      done: false,\n    }, 'step 1');\n    assert.deepEqual(iterator.next(), {\n      value: [1, 2],\n      done: false,\n    }, 'step 2');\n    assert.deepEqual(iterator.next(), {\n      value: [2, 3],\n      done: false,\n    }, 'step 3');\n    assert.deepEqual(iterator.next(), {\n      value: undefined,\n      done: true,\n    }, 'done');\n    if (NATIVE) assert.throws(() => entries.call([1, 2]), \"isn't generic\");\n  }\n});\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.@@iterator', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    assert.isIterable(TypedArray.prototype, `${ name } is iterable`);\n    assert.arity(TypedArray.prototype[Symbol.iterator], 0, `${ name }::@@iterator arity is 0`);\n    assert.name(TypedArray.prototype[Symbol.iterator], 'values', `${ name }::@@iterator name is 'values'`);\n    assert.looksNative(TypedArray.prototype[Symbol.iterator], `${ name }::@@iterator looks native`);\n    assert.same(TypedArray.prototype[Symbol.iterator], TypedArray.prototype.values);\n    const iterator = new TypedArray([1, 2, 3])[Symbol.iterator]();\n    assert.isIterator(iterator);\n    assert.isIterable(iterator);\n    assert.same(iterator[Symbol.toStringTag], 'Array Iterator');\n    assert.deepEqual(iterator.next(), {\n      value: 1,\n      done: false,\n    }, 'step 1');\n    assert.deepEqual(iterator.next(), {\n      value: 2,\n      done: false,\n    }, 'step 2');\n    assert.deepEqual(iterator.next(), {\n      value: 3,\n      done: false,\n    }, 'step 3');\n    assert.deepEqual(iterator.next(), {\n      value: undefined,\n      done: true,\n    }, 'done');\n    if (NATIVE) assert.throws(() => TypedArray.prototype[Symbol.iterator].call([1, 2]), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.join.js",
    "content": "/* eslint-disable unicorn/require-array-join-separator -- required for testing */\nimport { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.join', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { join } = TypedArray.prototype;\n    assert.isFunction(join, `${ name }::join is function`);\n    assert.arity(join, 1, `${ name }::join arity is 1`);\n    assert.name(join, 'join', `${ name }::join name is 'join'`);\n    assert.looksNative(join, `${ name }::join looks native`);\n    assert.same(new TypedArray([1, 2, 3]).join('|'), '1|2|3', 'works #1');\n    assert.same(new TypedArray([1, 2, 3]).join(), '1,2,3', 'works #2');\n    assert.throws(() => join.call([1, 2, 3]), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.last-index-of.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.lastIndexOf', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { lastIndexOf } = TypedArray.prototype;\n    assert.isFunction(lastIndexOf, `${ name }::lastIndexOf is function`);\n    assert.arity(lastIndexOf, 1, `${ name }::lastIndexOf arity is 1`);\n    assert.name(lastIndexOf, 'lastIndexOf', `${ name }::lastIndexOf name is 'lastIndexOf'`);\n    assert.looksNative(lastIndexOf, `${ name }::lastIndexOf looks native`);\n    assert.same(new TypedArray([1, 1, 1]).lastIndexOf(1), 2);\n    assert.same(new TypedArray([1, 2, 3]).lastIndexOf(3, 1), -1);\n    assert.same(new TypedArray([1, 2, 3]).lastIndexOf(2, 1), 1);\n    assert.same(new TypedArray([1, 2, 3]).lastIndexOf(2, -3), -1);\n    assert.same(new TypedArray([1, 2, 3]).lastIndexOf(2, -2), 1);\n    assert.throws(() => lastIndexOf.call([1], 1), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.map.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.map', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { map } = TypedArray.prototype;\n    assert.isFunction(map, `${ name }::map is function`);\n    assert.arity(map, 1, `${ name }::map arity is 1`);\n    assert.name(map, 'map', `${ name }::map name is 'map'`);\n    assert.looksNative(map, `${ name }::map looks native`);\n    const array = new TypedArray([1]);\n    const context = {};\n    array.map(function (value, key, that) {\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n      assert.same(this, context, 'correct callback context');\n    }, context);\n    const instance = new TypedArray([1, 2, 3, 4, 5]).map(it => it * 2);\n    assert.true(instance instanceof TypedArray, 'correct instance');\n    assert.arrayEqual(instance, [2, 4, 6, 8, 10], 'works');\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).map((value, key) => {\n      values += value;\n      keys += key;\n    });\n    assert.same(values, '123');\n    assert.same(keys, '012');\n    assert.throws(() => map.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.of.js",
    "content": "import { DESCRIPTORS, NATIVE, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArray%.of', assert => {\n  // we can't implement %TypedArray% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    assert.isFunction(TypedArray.of, `${ name }.of is function`);\n    assert.arity(TypedArray.of, 0, `${ name }.of arity is 0`);\n    assert.name(TypedArray.of, 'of', `${ name }.of name is 'of'`);\n    assert.looksNative(TypedArray.of, `${ name }.of looks native`);\n    let instance = TypedArray.of();\n    assert.true(instance instanceof TypedArray, 'correct instance with 0 arguments');\n    assert.arrayEqual(instance, [], 'correct elements with 0 arguments');\n    instance = TypedArray.of(1);\n    assert.true(instance instanceof TypedArray, 'correct instance with 1 argument');\n    assert.arrayEqual(instance, [1], 'correct elements with 1 argument');\n    instance = TypedArray.of(1, 2, 3);\n    assert.true(instance instanceof TypedArray, 'correct instance with several arguments');\n    assert.arrayEqual(instance, [1, 2, 3], 'correct elements with several arguments');\n    assert.throws(() => TypedArray.of.call(undefined, 1), \"isn't generic #1\");\n    if (NATIVE) assert.throws(() => TypedArray.of.call(Array, 1), \"isn't generic #2\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.reduce-right.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.reduceRight', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { reduceRight } = TypedArray.prototype;\n    assert.isFunction(reduceRight, `${ name }::reduceRight is function`);\n    assert.arity(reduceRight, 1, `${ name }::reduceRight arity is 1`);\n    assert.name(reduceRight, 'reduceRight', `${ name }::reduceRight name is 'reduceRight'`);\n    assert.looksNative(reduceRight, `${ name }::reduceRight looks native`);\n    const array = new TypedArray([1]);\n    const accumulator = {};\n    array.reduceRight(function (memo, value, key, that) {\n      assert.same(arguments.length, 4, 'correct number of callback arguments');\n      assert.same(memo, accumulator, 'correct callback accumulator');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n    }, accumulator);\n    assert.same(new TypedArray([1, 2, 3]).reduceRight((a, b) => a + b, 1), 7, 'works with initial accumulator');\n    new TypedArray([1, 2]).reduceRight((memo, value, key) => {\n      assert.same(memo, 2, 'correct default accumulator');\n      assert.same(value, 1, 'correct start value without initial accumulator');\n      assert.same(key, 0, 'correct start index without initial accumulator');\n    });\n    assert.same(new TypedArray([1, 2, 3]).reduceRight((a, b) => a + b), 6, 'works without initial accumulator');\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).reduceRight((memo, value, key) => {\n      values += value;\n      keys += key;\n    }, 0);\n    assert.same(values, '321', 'correct order #1');\n    assert.same(keys, '210', 'correct order #2');\n    assert.throws(() => reduceRight.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.reduce.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.reduce', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { reduce } = TypedArray.prototype;\n    assert.isFunction(reduce, `${ name }::reduce is function`);\n    assert.arity(reduce, 1, `${ name }::reduce arity is 1`);\n    assert.name(reduce, 'reduce', `${ name }::reduce name is 'reduce'`);\n    assert.looksNative(reduce, `${ name }::reduce looks native`);\n    const array = new TypedArray([1]);\n    const accumulator = {};\n    array.reduce(function (memo, value, key, that) {\n      assert.same(arguments.length, 4, 'correct number of callback arguments');\n      assert.same(memo, accumulator, 'correct callback accumulator');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n    }, accumulator);\n    assert.same(new TypedArray([1, 2, 3]).reduce((a, b) => a + b, 1), 7, 'works with initial accumulator');\n    new TypedArray([1, 2]).reduce((memo, value, key) => {\n      assert.same(memo, 1, 'correct default accumulator');\n      assert.same(value, 2, 'correct start value without initial accumulator');\n      assert.same(key, 1, 'correct start index without initial accumulator');\n    });\n    assert.same(new TypedArray([1, 2, 3]).reduce((a, b) => a + b), 6, 'works without initial accumulator');\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).reduce((memo, value, key) => {\n      values += value;\n      keys += key;\n    }, 0);\n    assert.same(values, '123', 'correct order #1');\n    assert.same(keys, '012', 'correct order #2');\n    assert.throws(() => reduce.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.reverse.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.reverse', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { reverse } = TypedArray.prototype;\n    assert.isFunction(reverse, `${ name }::reverse is function`);\n    assert.arity(reverse, 0, `${ name }::reverse arity is 0`);\n    assert.name(reverse, 'reverse', `${ name }::reverse name is 'reverse'`);\n    assert.looksNative(reverse, `${ name }::reverse looks native`);\n    const array = new TypedArray([1, 2]);\n    assert.same(array.reverse(), array, 'return this');\n    assert.arrayEqual(new TypedArray([1, 2, 3, 4]).reverse(), [4, 3, 2, 1], 'works #1');\n    assert.arrayEqual(new TypedArray([1, 2, 3]).reverse(), [3, 2, 1], 'works #2');\n    assert.throws(() => reverse.call([1, 2]), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.set.js",
    "content": "import { DESCRIPTORS, NATIVE, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.set', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { set } = TypedArray.prototype;\n    assert.isFunction(set, `${ name }::set is function`);\n    if (NATIVE) assert.arity(set, 1, `${ name }::set arity is 1`);\n    assert.name(set, 'set', `${ name }::set name is 'set'`);\n    assert.looksNative(set, `${ name }::set looks native`);\n    assert.same(new TypedArray(1).set([1]), undefined, 'void');\n    const array1 = new TypedArray([1, 2, 3, 4, 5]);\n    const array2 = new TypedArray(5);\n    array2.set(array1);\n    assert.arrayEqual(array2, [1, 2, 3, 4, 5]);\n    assert.throws(() => array2.set(array1, 1));\n    assert.throws(() => array2.set(array1, -1));\n    array2.set(new TypedArray([99, 98]), 2);\n    assert.arrayEqual(array2, [1, 2, 99, 98, 5]);\n    array2.set(new TypedArray([99, 98, 97]), 2);\n    assert.arrayEqual(array2, [1, 2, 99, 98, 97]);\n    assert.throws(() => array2.set(new TypedArray([99, 98, 97, 96]), 2));\n    assert.throws(() => array2.set([101, 102, 103, 104], 4));\n    const array3 = new TypedArray(2);\n    assert.notThrows(() => array3.set({ length: 2, 0: 1, 1: 2 }), 'set array-like #1');\n    assert.arrayEqual(array3, [1, 2], 'set array-like #2');\n    assert.notThrows(() => array3.set('34'), 'set string #1');\n    assert.arrayEqual(array3, [3, 4], 'set string #2');\n    assert.notThrows(() => array3.set(1), 'set number #1');\n    assert.arrayEqual(array3, [3, 4], 'set number #2');\n    assert.throws(() => set.call([1, 2, 3], [1]), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.slice.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.slice', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { slice } = TypedArray.prototype;\n    assert.isFunction(slice, `${ name }::slice is function`);\n    assert.arity(slice, 2, `${ name }::slice arity is 2`);\n    assert.name(slice, 'slice', `${ name }::slice name is 'slice'`);\n    assert.looksNative(slice, `${ name }::slice looks native`);\n    const array = new TypedArray([1, 2, 3, 4, 5]);\n    assert.notSame(array.slice(), array, 'returns new array');\n    assert.true(array.slice() instanceof TypedArray, 'correct instance');\n    assert.notSame(array.slice().buffer, array.buffer, 'with new buffer');\n    assert.arrayEqual(array.slice(), array);\n    assert.arrayEqual(array.slice(1, 3), [2, 3]);\n    assert.arrayEqual(array.slice(1, undefined), [2, 3, 4, 5]);\n    assert.arrayEqual(array.slice(1, -1), [2, 3, 4]);\n    assert.arrayEqual(array.slice(-2, -1), [4]);\n    assert.arrayEqual(array.slice(-2, -3), []);\n    assert.throws(() => slice.call([1, 2], 1), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.some.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.some', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { some } = TypedArray.prototype;\n    assert.isFunction(some, `${ name }::some is function`);\n    assert.arity(some, 1, `${ name }::some arity is 1`);\n    assert.name(some, 'some', `${ name }::some name is 'some'`);\n    assert.looksNative(some, `${ name }::some looks native`);\n    const array = new TypedArray([1]);\n    const context = {};\n    array.some(function (value, key, that) {\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n      assert.same(this, context, 'correct callback context');\n    }, context);\n    assert.true(new TypedArray([1, 2, 3]).some(it => typeof it == 'number'));\n    assert.true(new TypedArray([1, 2, 3]).some(it => it < 3));\n    assert.false(new TypedArray([1, 2, 3]).some(it => it < 0));\n    assert.false(new TypedArray([1, 2, 3]).some(it => typeof it == 'string'));\n    assert.true(new TypedArray([1, 2, 3]).some(function () {\n      return +this === 1;\n    }, 1));\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).some((value, key) => {\n      values += value;\n      keys += key;\n    });\n    assert.same(values, '123');\n    assert.same(keys, '012');\n    assert.throws(() => some.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.sort.js",
    "content": "import { DESCRIPTORS, STRICT, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.sort', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { sort } = TypedArray.prototype;\n    assert.isFunction(sort, `${ name }::sort is function`);\n    assert.arity(sort, 1, `${ name }::sort arity is 1`);\n    assert.name(sort, 'sort', `${ name }::sort name is 'sort'`);\n    assert.looksNative(sort, `${ name }::sort looks native`);\n\n    if (name.indexOf('Float') === 0) {\n      assert.deepEqual(new TypedArray([1, -1, 3, NaN, 2, 0, 11, -0]).sort(), new TypedArray([-1, -0, 0, 1, 2, 3, 11, NaN]), '#1');\n      assert.true(1 / new TypedArray([0, -0]).sort()[0] < 0, '-0');\n      assert.deepEqual(new TypedArray([NaN, 1, NaN]).sort(), new TypedArray([1, NaN, NaN]), 'NaN');\n    }\n\n    if (name.indexOf('8') === -1) {\n      const expected = Array(516);\n      let array = new TypedArray(516);\n      let index, mod, j, k, postfix;\n\n      for (index = 0; index < 516; index++) {\n        mod = index % 4;\n        array[index] = 515 - index;\n        expected[index] = index - 2 * mod + 3;\n      }\n\n      array.sort((a, b) => (a / 4 | 0) - (b / 4 | 0));\n\n      assert.same(String(array), String(expected), 'stable #1');\n\n      let result = '';\n      array = new TypedArray(520);\n      index = 0;\n\n      for (j = 0; j < 10; j++) {\n        switch (j) {\n          case 1: case 4: case 5: case 7: postfix = 3; break;\n          case 3: case 6: postfix = 4; break;\n          default: postfix = 2;\n        }\n\n        for (k = 0; k < 52; k++) {\n          array[index] = 10 * index++ + postfix;\n        }\n      }\n\n      array.sort((a, b) => b % 10 - a % 10);\n\n      for (index = 0; index < array.length; index++) {\n        j = String((array[index] / 520) | 0);\n        if (result.charAt(result.length - 1) !== j) result += j;\n      }\n\n      assert.same(result, '3614570289', 'stable #2');\n    }\n\n    assert.throws(() => sort.call([0], () => { /* empty */ }), \"isn't generic\");\n    assert.notThrows(() => new TypedArray([1, 2, 3]).sort(undefined).length === 3, 'works with undefined');\n    assert.throws(() => new TypedArray([1, 2, 3]).sort(null), TypeError, 'throws on null');\n    assert.throws(() => new TypedArray([1, 2, 3]).sort({}), TypeError, 'throws on {}');\n    if (STRICT) {\n      assert.throws(() => sort.call(null), TypeError, 'ToObject(this)');\n      assert.throws(() => sort.call(undefined), TypeError, 'ToObject(this)');\n    }\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.subarray.js",
    "content": "import { DESCRIPTORS, NATIVE, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.subarray', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { subarray } = TypedArray.prototype;\n    assert.isFunction(subarray, `${ name }::subarray is function`);\n    if (NATIVE) assert.arity(subarray, 2, `${ name }::subarray arity is 2`);\n    assert.name(subarray, 'subarray', `${ name }::subarray name is 'subarray'`);\n    assert.looksNative(subarray, `${ name }::subarray looks native`);\n    const array1 = new TypedArray([1, 2, 3, 4, 5]);\n    const array2 = array1.subarray(3);\n    assert.notSame(array1, array2, 'creates new array');\n    assert.true(array2 instanceof TypedArray, `instance ${ name }`);\n    assert.same(array1.buffer, array2.buffer, 'with the same buffer');\n    assert.arrayEqual(array2, [4, 5]);\n    assert.arrayEqual(array1.subarray(1, 3), [2, 3]);\n    assert.arrayEqual(array1.subarray(-3), [3, 4, 5]);\n    assert.arrayEqual(array1.subarray(-3, -1), [3, 4]);\n    assert.arrayEqual(array1.subarray(3, 2), []);\n    assert.arrayEqual(array1.subarray(-2, -3), []);\n    assert.arrayEqual(array1.subarray(4, 1), []);\n    assert.arrayEqual(array1.subarray(-1, -4), []);\n    assert.arrayEqual(array1.subarray(1).subarray(1), [3, 4, 5]);\n    assert.arrayEqual(array1.subarray(1, 4).subarray(1, 2), [3]);\n    assert.throws(() => subarray.call([1, 2, 3], 1), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.to-locale-string.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.toLocaleString', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { toLocaleString } = TypedArray.prototype;\n    assert.isFunction(toLocaleString, `${ name }::toLocaleString is function`);\n    assert.arity(toLocaleString, 0, `${ name }::toLocaleString arity is 0`);\n    assert.name(toLocaleString, 'toLocaleString', `${ name }::toLocaleString name is 'toLocaleString'`);\n    assert.looksNative(toLocaleString, `${ name }::toLocaleString looks native`);\n    assert.same(new TypedArray([1, 2, 3]).toLocaleString(), [1, 2, 3].toLocaleString(), 'works');\n    assert.throws(() => toLocaleString.call([1, 2, 3]), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.to-reversed.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS_WITH_BIG_INT } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.toReversed', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray, $ } of TYPED_ARRAYS_WITH_BIG_INT) {\n    const { toReversed } = TypedArray.prototype;\n\n    assert.isFunction(toReversed, `${ name }::toReversed is function`);\n    assert.arity(toReversed, 0, `${ name }::toReversed arity is 0`);\n    assert.name(toReversed, 'toReversed', `${ name }::toReversed name is 'toReversed'`);\n    assert.looksNative(toReversed, `${ name }::toReversed looks native`);\n\n    const array = new TypedArray([$(1), $(2)]);\n    assert.notSame(array.toReversed(), array, 'immutable');\n    assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4)]).toReversed(), new TypedArray([$(4), $(3), $(2), $(1)]), 'works #1');\n    assert.deepEqual(new TypedArray([$(1), $(2), $(3)]).toReversed(), new TypedArray([$(3), $(2), $(1)]), 'works #2');\n\n    assert.throws(() => toReversed.call(null), TypeError, \"isn't generic #1\");\n    assert.throws(() => toReversed.call(undefined), TypeError, \"isn't generic #2\");\n    assert.throws(() => toReversed.call([$(1), $(2)]), TypeError, \"isn't generic #3\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.to-sorted.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.toSorted', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { toSorted } = TypedArray.prototype;\n\n    assert.isFunction(toSorted, `${ name }::toSorted is function`);\n    assert.arity(toSorted, 1, `${ name }::toSorted arity is 1`);\n    assert.name(toSorted, 'toSorted', `${ name }::toSorted name is 'toSorted'`);\n    assert.looksNative(toSorted, `${ name }::toSorted looks native`);\n\n    let array = new TypedArray([1]);\n    assert.notSame(array.toSorted(), array, 'immutable');\n\n    if (name.indexOf('Float') === 0) {\n      assert.deepEqual(new TypedArray([1, -1, 3, NaN, 2, 0, 11, -0]).toSorted(), new TypedArray([-1, -0, 0, 1, 2, 3, 11, NaN]), '#1');\n      assert.true(1 / new TypedArray([0, -0]).toSorted()[0] < 0, '-0');\n      assert.deepEqual(new TypedArray([NaN, 1, NaN]).toSorted(), new TypedArray([1, NaN, NaN]), 'NaN');\n    }\n\n    if (name.indexOf('8') === -1) {\n      const expected = Array(516);\n      array = new TypedArray(516);\n      let index, mod, j, k, postfix;\n\n      for (index = 0; index < 516; index++) {\n        mod = index % 4;\n        array[index] = 515 - index;\n        expected[index] = index - 2 * mod + 3;\n      }\n\n      array = array.toSorted((a, b) => (a / 4 | 0) - (b / 4 | 0));\n\n      assert.arrayEqual(array, expected, 'stable #1');\n\n      let result = '';\n      array = new TypedArray(520);\n      index = 0;\n\n      for (j = 0; j < 10; j++) {\n        switch (j) {\n          case 1: case 4: case 5: case 7: postfix = 3; break;\n          case 3: case 6: postfix = 4; break;\n          default: postfix = 2;\n        }\n\n        for (k = 0; k < 52; k++) {\n          array[index] = 10 * index++ + postfix;\n        }\n      }\n\n      array = array.toSorted((a, b) => b % 10 - a % 10);\n\n      for (index = 0; index < array.length; index++) {\n        j = String((array[index] / 520) | 0);\n        if (result.charAt(result.length - 1) !== j) result += j;\n      }\n\n      assert.same(result, '3614570289', 'stable #2');\n    }\n\n    assert.notThrows(() => new TypedArray([1, 2, 3]).toSorted(undefined).length === 3, 'works with undefined');\n    assert.throws(() => new TypedArray([1, 2, 3]).toSorted(null), TypeError, 'throws on null');\n    assert.throws(() => new TypedArray([1, 2, 3]).toSorted({}), TypeError, 'throws on {}');\n\n    assert.throws(() => toSorted.call(null), TypeError, \"isn't generic #1\");\n    assert.throws(() => toSorted.call(undefined), TypeError, \"isn't generic #2\");\n    assert.throws(() => toSorted.call([1, 2]), TypeError, \"isn't generic #3\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.to-string.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.toString', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { toString } = TypedArray.prototype;\n    assert.isFunction(toString, `${ name }::toString is function`);\n    assert.arity(toString, 0, `${ name }::toString arity is 0`);\n    assert.name(toString, 'toString', `${ name }::toString name is 'toString'`);\n    assert.looksNative(toString, `${ name }::toString looks native`);\n    assert.same(new TypedArray([1, 2, 3]).toString(), '1,2,3', 'works');\n    assert.same(toString.call([1, 2, 3]), '1,2,3', 'generic');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed-array.with.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\nimport { DESCRIPTORS, TYPED_ARRAYS_WITH_BIG_INT } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.with', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray, $ } of TYPED_ARRAYS_WITH_BIG_INT) {\n    const { with: withAt } = TypedArray.prototype;\n\n    assert.isFunction(withAt, `${ name }::with is function`);\n    assert.arity(withAt, 2, `${ name }::with arity is 2`);\n    // assert.name(withAt, 'with', `${ name }::with name is 'with'`);\n    assert.looksNative(withAt, `${ name }::with looks native`);\n\n    const array = new TypedArray([$(1), $(2), $(3), $(4), $(5)]);\n    assert.notSame(array.with(2, $(1)), array, 'immutable');\n\n    assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).with(2, $(6)), new TypedArray([$(1), $(2), $(6), $(4), $(5)]));\n    assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).with(-2, $(6)), new TypedArray([$(1), $(2), $(3), $(6), $(5)]));\n    assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).with('1', $(6)), new TypedArray([$(1), $(6), $(3), $(4), $(5)]));\n\n    assert.throws(() => new TypedArray([$(1), $(2), $(3), $(4), $(5)]).with(5, $(6)), RangeError);\n    assert.throws(() => new TypedArray([$(1), $(2), $(3), $(4), $(5)]).with(-6, $(6)), RangeError);\n\n    assert.throws(() => withAt.call(null, 1, $(2)), TypeError, \"isn't generic #1\");\n    assert.throws(() => withAt.call(undefined, 1, $(2)), TypeError, \"isn't generic #2\");\n    assert.throws(() => withAt.call([1, 2], 1, $(3)), TypeError, \"isn't generic #3\");\n\n    const checker = createConversionChecker($(10));\n    assert.same(new TypedArray(5).with(2, checker)[2], $(10));\n    assert.same(checker.$valueOf, 1, 'valueOf calls');\n    assert.same(checker.$toString, 0, 'toString calls');\n\n    assert.true(!!function () {\n      try {\n        new TypedArray(1).with(2, { valueOf() { throw 8; } });\n      } catch (error) {\n        // some early implementations, like WebKit, does not follow the final semantic\n        // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n        return error === 8;\n      }\n    }(), 'proper order of operations');\n\n    // WebKit doesn't handle this correctly. It should truncate a negative fractional index to zero, but instead throws an error\n    assert.same(new TypedArray(1).with(-0.5, $(1))[0], $(1));\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed.conversions.float32.js",
    "content": "import { DESCRIPTORS, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Float32 conversions', assert => {\n  const float32array = new Float32Array(1);\n  const uint8array = new Uint8Array(float32array.buffer);\n  const dataview = new DataView(float32array.buffer);\n\n  function viewFrom(it) {\n    return new DataView(new Uint8Array(it).buffer);\n  }\n  function toString(it) {\n    return it === 0 && 1 / it === -Infinity ? '-0' : it;\n  }\n\n  const data = [\n    [0, 0, [0, 0, 0, 0]],\n    [-0, -0, [0, 0, 0, 128]],\n    [1, 1, [0, 0, 128, 63]],\n    [-1, -1, [0, 0, 128, 191]],\n    [1.1, 1.100000023841858, [205, 204, 140, 63]],\n    [-1.1, -1.100000023841858, [205, 204, 140, 191]],\n    [1.9, 1.899999976158142, [51, 51, 243, 63]],\n    [-1.9, -1.899999976158142, [51, 51, 243, 191]],\n    [127, 127, [0, 0, 254, 66]],\n    [-127, -127, [0, 0, 254, 194]],\n    [128, 128, [0, 0, 0, 67]],\n    [-128, -128, [0, 0, 0, 195]],\n    [255, 255, [0, 0, 127, 67]],\n    [-255, -255, [0, 0, 127, 195]],\n    // eslint-disable-next-line no-loss-of-precision -- false positive\n    [255.1, 255.10000610351562, [154, 25, 127, 67]],\n    [255.9, 255.89999389648438, [102, 230, 127, 67]],\n    [256, 256, [0, 0, 128, 67]],\n    [32767, 32767, [0, 254, 255, 70]],\n    [-32767, -32767, [0, 254, 255, 198]],\n    [32768, 32768, [0, 0, 0, 71]],\n    [-32768, -32768, [0, 0, 0, 199]],\n    [65535, 65535, [0, 255, 127, 71]],\n    [65536, 65536, [0, 0, 128, 71]],\n    [65537, 65537, [128, 0, 128, 71]],\n    [65536.54321, 65536.546875, [70, 0, 128, 71]],\n    [-65536.54321, -65536.546875, [70, 0, 128, 199]],\n    [2147483647, 2147483648, [0, 0, 0, 79]],\n    [-2147483647, -2147483648, [0, 0, 0, 207]],\n    [2147483648, 2147483648, [0, 0, 0, 79]],\n    [-2147483648, -2147483648, [0, 0, 0, 207]],\n    [2147483649, 2147483648, [0, 0, 0, 79]],\n    [-2147483649, -2147483648, [0, 0, 0, 207]],\n    [4294967295, 4294967296, [0, 0, 128, 79]],\n    [4294967296, 4294967296, [0, 0, 128, 79]],\n    [4294967297, 4294967296, [0, 0, 128, 79]],\n    [MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1, [0, 0, 0, 90]],\n    [MIN_SAFE_INTEGER, MIN_SAFE_INTEGER - 1, [0, 0, 0, 218]],\n    [MAX_SAFE_INTEGER + 1, MAX_SAFE_INTEGER + 1, [0, 0, 0, 90]],\n    [MIN_SAFE_INTEGER - 1, MIN_SAFE_INTEGER - 1, [0, 0, 0, 218]],\n    [MAX_SAFE_INTEGER + 3, MAX_SAFE_INTEGER + 1, [0, 0, 0, 90]],\n    [MIN_SAFE_INTEGER - 3, MIN_SAFE_INTEGER - 1, [0, 0, 0, 218]],\n    [Infinity, Infinity, [0, 0, 128, 127]],\n    [-Infinity, -Infinity, [0, 0, 128, 255]],\n    [Number.MAX_VALUE, Infinity, [0, 0, 128, 127]],\n    [-Number.MAX_VALUE, -Infinity, [0, 0, 128, 255]],\n    [Number.MIN_VALUE, 0, [0, 0, 0, 0]],\n    [-Number.MIN_VALUE, -0, [0, 0, 0, 128]],\n  ];\n  for (const [value, conversion, little] of data) {\n    const big = little.slice().reverse();\n    const representation = LITTLE_ENDIAN ? little : big;\n    float32array[0] = value;\n    assert.same(float32array[0], conversion, `Float32Array ${ toString(value) } -> ${ toString(conversion) }`);\n    assert.arrayEqual(uint8array, representation, `Float32Array ${ toString(value) } -> [${ representation }]`);\n    dataview.setFloat32(0, value);\n    assert.arrayEqual(uint8array, big, `dataview.setFloat32(0, ${ toString(value) }) -> [${ big }]`);\n    assert.same(viewFrom(big).getFloat32(0), conversion, `dataview{${ big }}.getFloat32(0) -> ${ toString(conversion) }`);\n    dataview.setFloat32(0, value, false);\n    assert.arrayEqual(uint8array, big, `dataview.setFloat32(0, ${ toString(value) }, false) -> [${ big }]`);\n    assert.same(viewFrom(big).getFloat32(0, false), conversion, `dataview{${ big }}.getFloat32(0, false) -> ${ toString(conversion) }`);\n    dataview.setFloat32(0, value, true);\n    assert.arrayEqual(uint8array, little, `dataview.setFloat32(0, ${ toString(value) }, true) -> [${ little }]`);\n    assert.same(viewFrom(little).getFloat32(0, true), conversion, `dataview{${ little }}.getFloat32(0, true) -> ${ toString(conversion) }`);\n  }\n  float32array[0] = NaN;\n  assert.same(float32array[0], NaN, 'NaN -> NaN');\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed.conversions.float64.js",
    "content": "import { DESCRIPTORS, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Float64 conversions', assert => {\n  const float64array = new Float64Array(1);\n  const uint8array = new Uint8Array(float64array.buffer);\n  const dataview = new DataView(float64array.buffer);\n\n  function viewFrom(it) {\n    return new DataView(new Uint8Array(it).buffer);\n  }\n  function toString(it) {\n    return it === 0 && 1 / it === -Infinity ? '-0' : it;\n  }\n\n  const data = [\n    [0, 0, [0, 0, 0, 0, 0, 0, 0, 0]],\n    [-0, -0, [0, 0, 0, 0, 0, 0, 0, 128]],\n    [1, 1, [0, 0, 0, 0, 0, 0, 240, 63]],\n    [-1, -1, [0, 0, 0, 0, 0, 0, 240, 191]],\n    [1.1, 1.1, [154, 153, 153, 153, 153, 153, 241, 63]],\n    [-1.1, -1.1, [154, 153, 153, 153, 153, 153, 241, 191]],\n    [1.9, 1.9, [102, 102, 102, 102, 102, 102, 254, 63]],\n    [-1.9, -1.9, [102, 102, 102, 102, 102, 102, 254, 191]],\n    [127, 127, [0, 0, 0, 0, 0, 192, 95, 64]],\n    [-127, -127, [0, 0, 0, 0, 0, 192, 95, 192]],\n    [128, 128, [0, 0, 0, 0, 0, 0, 96, 64]],\n    [-128, -128, [0, 0, 0, 0, 0, 0, 96, 192]],\n    [255, 255, [0, 0, 0, 0, 0, 224, 111, 64]],\n    [-255, -255, [0, 0, 0, 0, 0, 224, 111, 192]],\n    [255.1, 255.1, [51, 51, 51, 51, 51, 227, 111, 64]],\n    [255.9, 255.9, [205, 204, 204, 204, 204, 252, 111, 64]],\n    [256, 256, [0, 0, 0, 0, 0, 0, 112, 64]],\n    [32767, 32767, [0, 0, 0, 0, 192, 255, 223, 64]],\n    [-32767, -32767, [0, 0, 0, 0, 192, 255, 223, 192]],\n    [32768, 32768, [0, 0, 0, 0, 0, 0, 224, 64]],\n    [-32768, -32768, [0, 0, 0, 0, 0, 0, 224, 192]],\n    [65535, 65535, [0, 0, 0, 0, 224, 255, 239, 64]],\n    [65536, 65536, [0, 0, 0, 0, 0, 0, 240, 64]],\n    [65537, 65537, [0, 0, 0, 0, 16, 0, 240, 64]],\n    [65536.54321, 65536.54321, [14, 248, 252, 176, 8, 0, 240, 64]],\n    [-65536.54321, -65536.54321, [14, 248, 252, 176, 8, 0, 240, 192]],\n    [2147483647, 2147483647, [0, 0, 192, 255, 255, 255, 223, 65]],\n    [-2147483647, -2147483647, [0, 0, 192, 255, 255, 255, 223, 193]],\n    [2147483648, 2147483648, [0, 0, 0, 0, 0, 0, 224, 65]],\n    [-2147483648, -2147483648, [0, 0, 0, 0, 0, 0, 224, 193]],\n    [2147483649, 2147483649, [0, 0, 32, 0, 0, 0, 224, 65]],\n    [-2147483649, -2147483649, [0, 0, 32, 0, 0, 0, 224, 193]],\n    [4294967295, 4294967295, [0, 0, 224, 255, 255, 255, 239, 65]],\n    [4294967296, 4294967296, [0, 0, 0, 0, 0, 0, 240, 65]],\n    [4294967297, 4294967297, [0, 0, 16, 0, 0, 0, 240, 65]],\n    [MAX_SAFE_INTEGER, MAX_SAFE_INTEGER, [255, 255, 255, 255, 255, 255, 63, 67]],\n    [MIN_SAFE_INTEGER, MIN_SAFE_INTEGER, [255, 255, 255, 255, 255, 255, 63, 195]],\n    [MAX_SAFE_INTEGER + 1, MAX_SAFE_INTEGER + 1, [0, 0, 0, 0, 0, 0, 64, 67]],\n    [MIN_SAFE_INTEGER - 1, MIN_SAFE_INTEGER - 1, [0, 0, 0, 0, 0, 0, 64, 195]],\n    [MAX_SAFE_INTEGER + 3, MAX_SAFE_INTEGER + 3, [1, 0, 0, 0, 0, 0, 64, 67]],\n    [MIN_SAFE_INTEGER - 3, MIN_SAFE_INTEGER - 3, [1, 0, 0, 0, 0, 0, 64, 195]],\n    [Infinity, Infinity, [0, 0, 0, 0, 0, 0, 240, 127]],\n    [-Infinity, -Infinity, [0, 0, 0, 0, 0, 0, 240, 255]],\n    [-Number.MAX_VALUE, -Number.MAX_VALUE, [255, 255, 255, 255, 255, 255, 239, 255]],\n    [Number.MAX_VALUE, Number.MAX_VALUE, [255, 255, 255, 255, 255, 255, 239, 127]],\n    [Number.MIN_VALUE, Number.MIN_VALUE, [1, 0, 0, 0, 0, 0, 0, 0]],\n    [-Number.MIN_VALUE, -Number.MIN_VALUE, [1, 0, 0, 0, 0, 0, 0, 128]],\n  ];\n  for (const [value, conversion, little] of data) {\n    const big = little.slice().reverse();\n    const representation = LITTLE_ENDIAN ? little : big;\n    float64array[0] = value;\n    assert.same(float64array[0], conversion, `Float64Array ${ toString(value) } -> ${ toString(conversion) }`);\n    assert.arrayEqual(uint8array, representation, `Float64Array ${ toString(value) } -> [${ representation }]`);\n    dataview.setFloat64(0, value);\n    assert.arrayEqual(uint8array, big, `dataview.setFloat64(0, ${ toString(value) }) -> [${ big }]`);\n    assert.same(viewFrom(big).getFloat64(0), conversion, `dataview{${ big }}.getFloat64(0) -> ${ toString(conversion) }`);\n    dataview.setFloat64(0, value, false);\n    assert.arrayEqual(uint8array, big, `dataview.setFloat64(0, ${ toString(value) }, false) -> [${ big }]`);\n    assert.same(viewFrom(big).getFloat64(0, false), conversion, `dataview{${ big }}.getFloat64(0, false) -> ${ toString(conversion) }`);\n    dataview.setFloat64(0, value, true);\n    assert.arrayEqual(uint8array, little, `dataview.setFloat64(0, ${ toString(value) }, true) -> [${ little }]`);\n    assert.same(viewFrom(little).getFloat64(0, true), conversion, `dataview{${ little }}.getFloat64(0, true) -> ${ toString(conversion) }`);\n  }\n  float64array[0] = NaN;\n  assert.same(float64array[0], NaN, 'NaN -> NaN');\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed.conversions.int16.js",
    "content": "import { DESCRIPTORS, GLOBAL, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, NATIVE } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Int16 conversions', assert => {\n  const int16array = new Int16Array(1);\n  const uint8array = new Uint8Array(int16array.buffer);\n  const dataview = new DataView(int16array.buffer);\n\n  function viewFrom(it) {\n    return new DataView(new Uint8Array(it).buffer);\n  }\n  function toString(it) {\n    return it === 0 && 1 / it === -Infinity ? '-0' : it;\n  }\n\n  const data = [\n    [0, 0, [0, 0]],\n    [-0, 0, [0, 0]],\n    [1, 1, [1, 0]],\n    [-1, -1, [255, 255]],\n    [1.1, 1, [1, 0]],\n    [-1.1, -1, [255, 255]],\n    [1.9, 1, [1, 0]],\n    [-1.9, -1, [255, 255]],\n    [127, 127, [127, 0]],\n    [-127, -127, [129, 255]],\n    [128, 128, [128, 0]],\n    [-128, -128, [128, 255]],\n    [255, 255, [255, 0]],\n    [-255, -255, [1, 255]],\n    [255.1, 255, [255, 0]],\n    [255.9, 255, [255, 0]],\n    [256, 256, [0, 1]],\n    [32767, 32767, [255, 127]],\n    [-32767, -32767, [1, 128]],\n    [32768, -32768, [0, 128]],\n    [-32768, -32768, [0, 128]],\n    [65535, -1, [255, 255]],\n    [65536, 0, [0, 0]],\n    [65537, 1, [1, 0]],\n    [65536.54321, 0, [0, 0]],\n    [-65536.54321, 0, [0, 0]],\n    [2147483647, -1, [255, 255]],\n    [-2147483647, 1, [1, 0]],\n    [2147483648, 0, [0, 0]],\n    [-2147483648, 0, [0, 0]],\n    [4294967296, 0, [0, 0]],\n    [MAX_SAFE_INTEGER + 1, 0, [0, 0]],\n    [MIN_SAFE_INTEGER - 1, 0, [0, 0]],\n    [Infinity, 0, [0, 0]],\n    [-Infinity, 0, [0, 0]],\n    [-Number.MAX_VALUE, 0, [0, 0]],\n    [Number.MAX_VALUE, 0, [0, 0]],\n    [Number.MIN_VALUE, 0, [0, 0]],\n    [-Number.MIN_VALUE, 0, [0, 0]],\n    [NaN, 0, [0, 0]],\n  ];\n  // Android 4.3- bug\n  if (NATIVE || !/Android [2-4]/.test(GLOBAL.navigator && navigator.userAgent)) {\n    data.push(\n      [2147483649, 1, [1, 0]],\n      [-2147483649, -1, [255, 255]],\n      [4294967295, -1, [255, 255]],\n      [4294967297, 1, [1, 0]],\n      [MAX_SAFE_INTEGER, -1, [255, 255]],\n      [MIN_SAFE_INTEGER, 1, [1, 0]],\n      [MAX_SAFE_INTEGER + 3, 2, [2, 0]],\n      [MIN_SAFE_INTEGER - 3, -2, [254, 255]],\n    );\n  }\n  for (const [value, conversion, little] of data) {\n    const big = little.slice().reverse();\n    const representation = LITTLE_ENDIAN ? little : big;\n    int16array[0] = value;\n    assert.same(int16array[0], conversion, `Int16Array ${ toString(value) } -> ${ toString(conversion) }`);\n    assert.arrayEqual(uint8array, representation, `Int16Array ${ toString(value) } -> [${ representation }]`);\n    dataview.setInt16(0, value);\n    assert.arrayEqual(uint8array, big, `dataview.setInt16(0, ${ toString(value) }) -> [${ big }]`);\n    assert.same(viewFrom(big).getInt16(0), conversion, `dataview{${ big }}.getInt16(0) -> ${ toString(conversion) }`);\n    dataview.setInt16(0, value, false);\n    assert.arrayEqual(uint8array, big, `dataview.setInt16(0, ${ toString(value) }, false) -> [${ big }]`);\n    assert.same(viewFrom(big).getInt16(0, false), conversion, `dataview{${ big }}.getInt16(0, false) -> ${ toString(conversion) }`);\n    dataview.setInt16(0, value, true);\n    assert.arrayEqual(uint8array, little, `dataview.setInt16(0, ${ toString(value) }, true) -> [${ little }]`);\n    assert.same(viewFrom(little).getInt16(0, true), conversion, `dataview{${ little }}.getInt16(0, true) -> ${ toString(conversion) }`);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed.conversions.int32.js",
    "content": "import { DESCRIPTORS, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Int32 conversions', assert => {\n  const int32array = new Int32Array(1);\n  const uint8array = new Uint8Array(int32array.buffer);\n  const dataview = new DataView(int32array.buffer);\n\n  function viewFrom(it) {\n    return new DataView(new Uint8Array(it).buffer);\n  }\n  function toString(it) {\n    return it === 0 && 1 / it === -Infinity ? '-0' : it;\n  }\n\n  const data = [\n    [0, 0, [0, 0, 0, 0]],\n    [-0, 0, [0, 0, 0, 0]],\n    [1, 1, [1, 0, 0, 0]],\n    [-1, -1, [255, 255, 255, 255]],\n    [1.1, 1, [1, 0, 0, 0]],\n    [-1.1, -1, [255, 255, 255, 255]],\n    [1.9, 1, [1, 0, 0, 0]],\n    [-1.9, -1, [255, 255, 255, 255]],\n    [127, 127, [127, 0, 0, 0]],\n    [-127, -127, [129, 255, 255, 255]],\n    [128, 128, [128, 0, 0, 0]],\n    [-128, -128, [128, 255, 255, 255]],\n    [255, 255, [255, 0, 0, 0]],\n    [-255, -255, [1, 255, 255, 255]],\n    [255.1, 255, [255, 0, 0, 0]],\n    [255.9, 255, [255, 0, 0, 0]],\n    [256, 256, [0, 1, 0, 0]],\n    [32767, 32767, [255, 127, 0, 0]],\n    [-32767, -32767, [1, 128, 255, 255]],\n    [32768, 32768, [0, 128, 0, 0]],\n    [-32768, -32768, [0, 128, 255, 255]],\n    [65535, 65535, [255, 255, 0, 0]],\n    [65536, 65536, [0, 0, 1, 0]],\n    [65537, 65537, [1, 0, 1, 0]],\n    [65536.54321, 65536, [0, 0, 1, 0]],\n    [-65536.54321, -65536, [0, 0, 255, 255]],\n    [2147483647, 2147483647, [255, 255, 255, 127]],\n    [-2147483647, -2147483647, [1, 0, 0, 128]],\n    [2147483648, -2147483648, [0, 0, 0, 128]],\n    [-2147483648, -2147483648, [0, 0, 0, 128]],\n    [2147483649, -2147483647, [1, 0, 0, 128]],\n    [-2147483649, 2147483647, [255, 255, 255, 127]],\n    [4294967295, -1, [255, 255, 255, 255]],\n    [4294967296, 0, [0, 0, 0, 0]],\n    [4294967297, 1, [1, 0, 0, 0]],\n    [MAX_SAFE_INTEGER, -1, [255, 255, 255, 255]],\n    [MIN_SAFE_INTEGER, 1, [1, 0, 0, 0]],\n    [MAX_SAFE_INTEGER + 1, 0, [0, 0, 0, 0]],\n    [MIN_SAFE_INTEGER - 1, 0, [0, 0, 0, 0]],\n    [MAX_SAFE_INTEGER + 3, 2, [2, 0, 0, 0]],\n    [MIN_SAFE_INTEGER - 3, -2, [254, 255, 255, 255]],\n    [Infinity, 0, [0, 0, 0, 0]],\n    [-Infinity, 0, [0, 0, 0, 0]],\n    [-Number.MAX_VALUE, 0, [0, 0, 0, 0]],\n    [Number.MAX_VALUE, 0, [0, 0, 0, 0]],\n    [Number.MIN_VALUE, 0, [0, 0, 0, 0]],\n    [-Number.MIN_VALUE, 0, [0, 0, 0, 0]],\n    [NaN, 0, [0, 0, 0, 0]],\n  ];\n  for (const [value, conversion, little] of data) {\n    const big = little.slice().reverse();\n    const representation = LITTLE_ENDIAN ? little : big;\n    int32array[0] = value;\n    assert.same(int32array[0], conversion, `Int32Array ${ toString(value) } -> ${ toString(conversion) }`);\n    assert.arrayEqual(uint8array, representation, `Int32Array ${ toString(value) } -> [${ representation }]`);\n    dataview.setInt32(0, value);\n    assert.arrayEqual(uint8array, big, `dataview.setInt32(0, ${ toString(value) }) -> [${ big }]`);\n    assert.same(viewFrom(big).getInt32(0), conversion, `dataview{${ big }}.getInt32(0) -> ${ toString(conversion) }`);\n    dataview.setInt32(0, value, false);\n    assert.arrayEqual(uint8array, big, `dataview.setInt32(0, ${ toString(value) }, false) -> [${ big }]`);\n    assert.same(viewFrom(big).getInt32(0, false), conversion, `dataview{${ big }}.getInt32(0, false) -> ${ toString(conversion) }`);\n    dataview.setInt32(0, value, true);\n    assert.arrayEqual(uint8array, little, `dataview.setInt32(0, ${ toString(value) }, true) -> [${ little }]`);\n    assert.same(viewFrom(little).getInt32(0, true), conversion, `dataview{${ little }}.getInt32(0, true) -> ${ toString(conversion) }`);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed.conversions.int8.js",
    "content": "import { DESCRIPTORS, GLOBAL, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, NATIVE } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Int8 conversions', assert => {\n  const int8array = new Int8Array(1);\n  const uint8array = new Uint8Array(int8array.buffer);\n  const dataview = new DataView(int8array.buffer);\n\n  function viewFrom(it) {\n    return new DataView(new Uint8Array(it).buffer);\n  }\n  function toString(it) {\n    return it === 0 && 1 / it === -Infinity ? '-0' : it;\n  }\n\n  const data = [\n    [0, 0, [0]],\n    [-0, 0, [0]],\n    [1, 1, [1]],\n    [-1, -1, [255]],\n    [1.1, 1, [1]],\n    [-1.1, -1, [255]],\n    [1.9, 1, [1]],\n    [-1.9, -1, [255]],\n    [127, 127, [127]],\n    [-127, -127, [129]],\n    [128, -128, [128]],\n    [-128, -128, [128]],\n    [255, -1, [255]],\n    [-255, 1, [1]],\n    [255.1, -1, [255]],\n    [255.9, -1, [255]],\n    [256, 0, [0]],\n    [32767, -1, [255]],\n    [-32767, 1, [1]],\n    [32768, 0, [0]],\n    [-32768, 0, [0]],\n    [65535, -1, [255]],\n    [65536, 0, [0]],\n    [65537, 1, [1]],\n    [65536.54321, 0, [0]],\n    [-65536.54321, 0, [0]],\n    [2147483647, -1, [255]],\n    [-2147483647, 1, [1]],\n    [2147483648, 0, [0]],\n    [-2147483648, 0, [0]],\n    [4294967296, 0, [0]],\n    [MAX_SAFE_INTEGER + 1, 0, [0]],\n    [MIN_SAFE_INTEGER - 1, 0, [0]],\n    [Infinity, 0, [0]],\n    [-Infinity, 0, [0]],\n    [-Number.MAX_VALUE, 0, [0]],\n    [Number.MAX_VALUE, 0, [0]],\n    [Number.MIN_VALUE, 0, [0]],\n    [-Number.MIN_VALUE, 0, [0]],\n    [NaN, 0, [0]],\n  ];\n  // Android 4.3- bug\n  if (NATIVE || !/Android [2-4]/.test(GLOBAL.navigator && navigator.userAgent)) {\n    data.push(\n      [2147483649, 1, [1]],\n      [-2147483649, -1, [255]],\n      [4294967295, -1, [255]],\n      [4294967297, 1, [1]],\n      [MAX_SAFE_INTEGER, -1, [255]],\n      [MIN_SAFE_INTEGER, 1, [1]],\n      [MAX_SAFE_INTEGER + 3, 2, [2]],\n      [MIN_SAFE_INTEGER - 3, -2, [254]],\n    );\n  }\n  for (const [value, conversion, little] of data) {\n    const big = little.slice().reverse();\n    const representation = LITTLE_ENDIAN ? little : big;\n    int8array[0] = value;\n    assert.same(int8array[0], conversion, `Int8Array ${ toString(value) } -> ${ toString(conversion) }`);\n    assert.arrayEqual(uint8array, representation, `Int8Array ${ toString(value) } -> [${ representation }]`);\n    dataview.setInt8(0, value);\n    assert.arrayEqual(uint8array, big, `dataview.setInt8(0, ${ toString(value) }) -> [${ big }]`);\n    assert.same(viewFrom(big).getInt8(0), conversion, `dataview{${ big }}.getInt8(0) -> ${ toString(conversion) }`);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed.conversions.uint16.js",
    "content": "import { DESCRIPTORS, GLOBAL, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, NATIVE } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Uint16 conversions', assert => {\n  const uint16array = new Uint16Array(1);\n  const uint8array = new Uint8Array(uint16array.buffer);\n  const dataview = new DataView(uint16array.buffer);\n\n  function viewFrom(it) {\n    return new DataView(new Uint8Array(it).buffer);\n  }\n  function toString(it) {\n    return it === 0 && 1 / it === -Infinity ? '-0' : it;\n  }\n\n  const data = [\n    [0, 0, [0, 0]],\n    [-0, 0, [0, 0]],\n    [1, 1, [1, 0]],\n    [-1, 65535, [255, 255]],\n    [1.1, 1, [1, 0]],\n    [-1.1, 65535, [255, 255]],\n    [1.9, 1, [1, 0]],\n    [-1.9, 65535, [255, 255]],\n    [127, 127, [127, 0]],\n    [-127, 65409, [129, 255]],\n    [128, 128, [128, 0]],\n    [-128, 65408, [128, 255]],\n    [255, 255, [255, 0]],\n    [-255, 65281, [1, 255]],\n    [255.1, 255, [255, 0]],\n    [255.9, 255, [255, 0]],\n    [256, 256, [0, 1]],\n    [32767, 32767, [255, 127]],\n    [-32767, 32769, [1, 128]],\n    [32768, 32768, [0, 128]],\n    [-32768, 32768, [0, 128]],\n    [65535, 65535, [255, 255]],\n    [65536, 0, [0, 0]],\n    [65537, 1, [1, 0]],\n    [65536.54321, 0, [0, 0]],\n    [-65536.54321, 0, [0, 0]],\n    [2147483647, 65535, [255, 255]],\n    [-2147483647, 1, [1, 0]],\n    [2147483648, 0, [0, 0]],\n    [-2147483648, 0, [0, 0]],\n    [4294967296, 0, [0, 0]],\n    [MAX_SAFE_INTEGER + 1, 0, [0, 0]],\n    [MIN_SAFE_INTEGER - 1, 0, [0, 0]],\n    [Infinity, 0, [0, 0]],\n    [-Infinity, 0, [0, 0]],\n    [-Number.MAX_VALUE, 0, [0, 0]],\n    [Number.MAX_VALUE, 0, [0, 0]],\n    [Number.MIN_VALUE, 0, [0, 0]],\n    [-Number.MIN_VALUE, 0, [0, 0]],\n    [NaN, 0, [0, 0]],\n  ];\n  // Android 4.3- bug\n  if (NATIVE || !/Android [2-4]/.test(GLOBAL.navigator && navigator.userAgent)) {\n    data.push(\n      [2147483649, 1, [1, 0]],\n      [-2147483649, 65535, [255, 255]],\n      [4294967295, 65535, [255, 255]],\n      [4294967297, 1, [1, 0]],\n      [MAX_SAFE_INTEGER, 65535, [255, 255]],\n      [MIN_SAFE_INTEGER, 1, [1, 0]],\n      [MAX_SAFE_INTEGER + 3, 2, [2, 0]],\n      [MIN_SAFE_INTEGER - 3, 65534, [254, 255]],\n    );\n  }\n  for (const [value, conversion, little] of data) {\n    const big = little.slice().reverse();\n    const representation = LITTLE_ENDIAN ? little : big;\n    uint16array[0] = value;\n    assert.same(uint16array[0], conversion, `Uint16Array ${ toString(value) } -> ${ toString(conversion) }`);\n    assert.arrayEqual(uint8array, representation, `Uint16Array ${ toString(value) } -> [${ representation }]`);\n    dataview.setUint16(0, value);\n    assert.arrayEqual(uint8array, big, `dataview.setUint16(0, ${ toString(value) }) -> [${ big }]`);\n    assert.same(viewFrom(big).getUint16(0), conversion, `dataview{${ big }}.getUint16(0) -> ${ toString(conversion) }`);\n    dataview.setUint16(0, value, false);\n    assert.arrayEqual(uint8array, big, `dataview.setUint16(0, ${ toString(value) }, false) -> [${ big }]`);\n    assert.same(viewFrom(big).getUint16(0, false), conversion, `dataview{${ big }}.getUint16(0, false) -> ${ toString(conversion) }`);\n    dataview.setUint16(0, value, true);\n    assert.arrayEqual(uint8array, little, `dataview.setUint16(0, ${ toString(value) }, true) -> [${ little }]`);\n    assert.same(viewFrom(little).getUint16(0, true), conversion, `dataview{${ little }}.getUint16(0, true) -> ${ toString(conversion) }`);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed.conversions.uint32.js",
    "content": "import { DESCRIPTORS, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Uint32 conversions', assert => {\n  const uint32array = new Uint32Array(1);\n  const uint8array = new Uint8Array(uint32array.buffer);\n  const dataview = new DataView(uint32array.buffer);\n\n  function viewFrom(it) {\n    return new DataView(new Uint8Array(it).buffer);\n  }\n  function toString(it) {\n    return it === 0 && 1 / it === -Infinity ? '-0' : it;\n  }\n\n  const data = [\n    [0, 0, [0, 0, 0, 0]],\n    [-0, 0, [0, 0, 0, 0]],\n    [1, 1, [1, 0, 0, 0]],\n    [-1, 4294967295, [255, 255, 255, 255]],\n    [1.1, 1, [1, 0, 0, 0]],\n    [-1.1, 4294967295, [255, 255, 255, 255]],\n    [1.9, 1, [1, 0, 0, 0]],\n    [-1.9, 4294967295, [255, 255, 255, 255]],\n    [127, 127, [127, 0, 0, 0]],\n    [-127, 4294967169, [129, 255, 255, 255]],\n    [128, 128, [128, 0, 0, 0]],\n    [-128, 4294967168, [128, 255, 255, 255]],\n    [255, 255, [255, 0, 0, 0]],\n    [-255, 4294967041, [1, 255, 255, 255]],\n    [255.1, 255, [255, 0, 0, 0]],\n    [255.9, 255, [255, 0, 0, 0]],\n    [256, 256, [0, 1, 0, 0]],\n    [32767, 32767, [255, 127, 0, 0]],\n    [-32767, 4294934529, [1, 128, 255, 255]],\n    [32768, 32768, [0, 128, 0, 0]],\n    [-32768, 4294934528, [0, 128, 255, 255]],\n    [65535, 65535, [255, 255, 0, 0]],\n    [65536, 65536, [0, 0, 1, 0]],\n    [65537, 65537, [1, 0, 1, 0]],\n    [65536.54321, 65536, [0, 0, 1, 0]],\n    [-65536.54321, 4294901760, [0, 0, 255, 255]],\n    [2147483647, 2147483647, [255, 255, 255, 127]],\n    [-2147483647, 2147483649, [1, 0, 0, 128]],\n    [2147483648, 2147483648, [0, 0, 0, 128]],\n    [-2147483648, 2147483648, [0, 0, 0, 128]],\n    [2147483649, 2147483649, [1, 0, 0, 128]],\n    [-2147483649, 2147483647, [255, 255, 255, 127]],\n    [4294967295, 4294967295, [255, 255, 255, 255]],\n    [4294967296, 0, [0, 0, 0, 0]],\n    [4294967297, 1, [1, 0, 0, 0]],\n    [MAX_SAFE_INTEGER, 4294967295, [255, 255, 255, 255]],\n    [MIN_SAFE_INTEGER, 1, [1, 0, 0, 0]],\n    [MAX_SAFE_INTEGER + 1, 0, [0, 0, 0, 0]],\n    [MIN_SAFE_INTEGER - 1, 0, [0, 0, 0, 0]],\n    [MAX_SAFE_INTEGER + 3, 2, [2, 0, 0, 0]],\n    [MIN_SAFE_INTEGER - 3, 4294967294, [254, 255, 255, 255]],\n    [Infinity, 0, [0, 0, 0, 0]], [-Infinity, 0, [0, 0, 0, 0]],\n    [-Number.MAX_VALUE, 0, [0, 0, 0, 0]],\n    [Number.MAX_VALUE, 0, [0, 0, 0, 0]],\n    [Number.MIN_VALUE, 0, [0, 0, 0, 0]],\n    [-Number.MIN_VALUE, 0, [0, 0, 0, 0]],\n    [NaN, 0, [0, 0, 0, 0]],\n  ];\n  for (const [value, conversion, little] of data) {\n    const big = little.slice().reverse();\n    const representation = LITTLE_ENDIAN ? little : big;\n    uint32array[0] = value;\n    assert.same(uint32array[0], conversion, `Uint32Array ${ toString(value) } -> ${ toString(conversion) }`);\n    assert.arrayEqual(uint8array, representation, `Uint32Array ${ toString(value) } -> [${ representation }]`);\n    dataview.setUint32(0, value);\n    assert.arrayEqual(uint8array, big, `dataview.setUint32(0, ${ toString(value) }) -> [${ big }]`);\n    assert.same(viewFrom(big).getUint32(0), conversion, `dataview{${ big }}.getUint32(0) -> ${ toString(conversion) }`);\n    dataview.setUint32(0, value, false);\n    assert.arrayEqual(uint8array, big, `dataview.setUint32(0, ${ toString(value) }, false) -> [${ big }]`);\n    assert.same(viewFrom(big).getUint32(0, false), conversion, `dataview{${ big }}.getUint32(0, false) -> ${ toString(conversion) }`);\n    dataview.setUint32(0, value, true);\n    assert.arrayEqual(uint8array, little, `dataview.setUint32(0, ${ toString(value) }, true) -> [${ little }]`);\n    assert.same(viewFrom(little).getUint32(0, true), conversion, `dataview{${ little }}.getUint32(0, true) -> ${ toString(conversion) }`);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed.conversions.uint8-clamped.js",
    "content": "import { DESCRIPTORS, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Uint8Clamped conversions', assert => {\n  const uint8clamped = new Uint8ClampedArray(1);\n  const uint8array = new Uint8Array(uint8clamped.buffer);\n\n  function toString(it) {\n    return it === 0 && 1 / it === -Infinity ? '-0' : it;\n  }\n\n  const data = [\n    [0, 0, [0]],\n    [-0, 0, [0]],\n    [1, 1, [1]],\n    [-1, 0, [0]],\n    [1.1, 1, [1]],\n    [-1.1, 0, [0]],\n    [1.9, 2, [2]],\n    [-1.9, 0, [0]],\n    // round-half-to-even (banker's rounding)\n    [0.5, 0, [0]],\n    [1.5, 2, [2]],\n    [2.5, 2, [2]],\n    [3.5, 4, [4]],\n    [4.5, 4, [4]],\n    [253.5, 254, [254]],\n    [254.5, 254, [254]],\n    [127, 127, [127]],\n    [-127, 0, [0]],\n    [128, 128, [128]],\n    [-128, 0, [0]],\n    [255, 255, [255]],\n    [-255, 0, [0]],\n    [255.1, 255, [255]],\n    [255.9, 255, [255]],\n    [256, 255, [255]],\n    [32767, 255, [255]],\n    [-32767, 0, [0]],\n    [32768, 255, [255]],\n    [-32768, 0, [0]],\n    [65535, 255, [255]],\n    [65536, 255, [255]],\n    [65537, 255, [255]],\n    [65536.54321, 255, [255]],\n    [-65536.54321, 0, [0]],\n    [2147483647, 255, [255]],\n    [-2147483647, 0, [0]],\n    [2147483648, 255, [255]],\n    [-2147483648, 0, [0]],\n    [2147483649, 255, [255]],\n    [-2147483649, 0, [0]],\n    [4294967295, 255, [255]],\n    [4294967296, 255, [255]],\n    [4294967297, 255, [255]],\n    [MAX_SAFE_INTEGER, 255, [255]],\n    [MIN_SAFE_INTEGER, 0, [0]],\n    [MAX_SAFE_INTEGER + 1, 255, [255]],\n    [MIN_SAFE_INTEGER - 1, 0, [0]],\n    [MAX_SAFE_INTEGER + 3, 255, [255]],\n    [MIN_SAFE_INTEGER - 3, 0, [0]],\n    [Infinity, 255, [255]],\n    [-Infinity, 0, [0]],\n    [-Number.MAX_VALUE, 0, [0]],\n    [Number.MAX_VALUE, 255, [255]],\n    [Number.MIN_VALUE, 0, [0]],\n    [-Number.MIN_VALUE, 0, [0]],\n    [NaN, 0, [0]],\n  ];\n  for (const [value, conversion, little] of data) {\n    uint8clamped[0] = value;\n    assert.same(uint8clamped[0], conversion, `Uint8ClampedArray ${ toString(value) } -> ${ toString(conversion) }`);\n    assert.arrayEqual(uint8array, little, `Uint8ClampedArray ${ toString(value) } -> [${ little }]`);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.typed.conversions.uint8.js",
    "content": "import { DESCRIPTORS, GLOBAL, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, NATIVE } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Uint8 conversions', assert => {\n  const uint8array = new Uint8Array(1);\n  const dataview = new DataView(uint8array.buffer);\n\n  function viewFrom(it) {\n    return new DataView(new Uint8Array(it).buffer);\n  }\n  function toString(it) {\n    return it === 0 && 1 / it === -Infinity ? '-0' : it;\n  }\n\n  const data = [\n    [0, 0, [0]],\n    [-0, 0, [0]],\n    [1, 1, [1]],\n    [-1, 255, [255]],\n    [1.1, 1, [1]],\n    [-1.1, 255, [255]],\n    [1.9, 1, [1]],\n    [-1.9, 255, [255]],\n    [127, 127, [127]],\n    [-127, 129, [129]],\n    [128, 128, [128]],\n    [-128, 128, [128]],\n    [255, 255, [255]],\n    [-255, 1, [1]],\n    [255.1, 255, [255]],\n    [255.9, 255, [255]],\n    [256, 0, [0]],\n    [32767, 255, [255]],\n    [-32767, 1, [1]],\n    [32768, 0, [0]],\n    [-32768, 0, [0]],\n    [65535, 255, [255]],\n    [65536, 0, [0]],\n    [65537, 1, [1]],\n    [65536.54321, 0, [0]],\n    [-65536.54321, 0, [0]],\n    [2147483647, 255, [255]],\n    [-2147483647, 1, [1]],\n    [2147483648, 0, [0]],\n    [-2147483648, 0, [0]],\n    [4294967296, 0, [0]],\n    [MAX_SAFE_INTEGER + 1, 0, [0]],\n    [MIN_SAFE_INTEGER - 1, 0, [0]],\n    [Infinity, 0, [0]], [-Infinity, 0, [0]],\n    [-Number.MAX_VALUE, 0, [0]],\n    [Number.MAX_VALUE, 0, [0]],\n    [Number.MIN_VALUE, 0, [0]],\n    [-Number.MIN_VALUE, 0, [0]],\n    [NaN, 0, [0]],\n  ];\n  // Android 4.3- bug\n  if (NATIVE || !/Android [2-4]/.test(GLOBAL.navigator && navigator.userAgent)) {\n    data.push(\n      [2147483649, 1, [1]],\n      [-2147483649, 255, [255]],\n      [4294967295, 255, [255]],\n      [4294967297, 1, [1]],\n      [MAX_SAFE_INTEGER, 255, [255]],\n      [MIN_SAFE_INTEGER, 1, [1]],\n      [MAX_SAFE_INTEGER + 3, 2, [2]],\n      [MIN_SAFE_INTEGER - 3, 254, [254]],\n    );\n  }\n  for (const [value, conversion, little] of data) {\n    uint8array[0] = value;\n    assert.same(uint8array[0], conversion, `Uint8Array ${ toString(value) } -> ${ toString(conversion) }`);\n    assert.arrayEqual(uint8array, little, `Uint8Array ${ toString(value) } -> [${ little }]`);\n    dataview.setUint8(0, value);\n    assert.arrayEqual(uint8array, little, `dataview.setUint8(0, ${ toString(value) }) -> [${ little }]`);\n    assert.same(viewFrom(little).getUint8(0), conversion, `dataview{${ little }}.getUint8(0) -> ${ toString(conversion) }`);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.uint8-array.from-base64.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Uint8Array.fromBase64', assert => {\n  const { fromBase64 } = Uint8Array;\n  assert.isFunction(fromBase64);\n  assert.arity(fromBase64, 1);\n  assert.name(fromBase64, 'fromBase64');\n  assert.looksNative(fromBase64);\n\n  const array = new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]);\n\n  assert.true(fromBase64('SGVsbG8gV29ybGQ=') instanceof Uint8Array, 'returns Uint8Array instance #1');\n  assert.true(fromBase64.call(Int16Array, 'SGVsbG8gV29ybGQ=') instanceof Uint8Array, 'returns Uint8Array instance #2');\n\n  assert.deepEqual(fromBase64('SGVsbG8gV29ybGQ='), array, 'proper result');\n\n  assert.deepEqual(fromBase64('12/3'), new Uint8Array([215, 111, 247]), 'encoding #1');\n  assert.throws(() => fromBase64('12_3'), SyntaxError, 'encoding #2');\n  assert.deepEqual(fromBase64('12+3'), new Uint8Array([215, 111, 183]), 'encoding #3');\n  assert.throws(() => fromBase64('12-3'), SyntaxError, 'encoding #4');\n  assert.deepEqual(fromBase64('12/3', { alphabet: 'base64' }), new Uint8Array([215, 111, 247]), 'encoding #5');\n  assert.throws(() => fromBase64('12_3', { alphabet: 'base64' }), SyntaxError, 'encoding #6');\n  assert.deepEqual(fromBase64('12+3', { alphabet: 'base64' }), new Uint8Array([215, 111, 183]), 'encoding #7');\n  assert.throws(() => fromBase64('12-3', { alphabet: 'base64' }), SyntaxError, 'encoding #8');\n  assert.deepEqual(fromBase64('12_3', { alphabet: 'base64url' }), new Uint8Array([215, 111, 247]), 'encoding #9');\n  assert.throws(() => fromBase64('12/3', { alphabet: 'base64url' }), SyntaxError, 'encoding #10');\n  assert.deepEqual(fromBase64('12-3', { alphabet: 'base64url' }), new Uint8Array([215, 111, 183]), 'encoding #11');\n  assert.throws(() => fromBase64('12+3', { alphabet: 'base64url' }), SyntaxError, 'encoding #12');\n\n  assert.throws(() => fromBase64(null), TypeError, \"isn't generic #1\");\n  assert.throws(() => fromBase64(undefined), TypeError, \"isn't generic #2\");\n  assert.throws(() => fromBase64(1234), TypeError, \"isn't generic #3\");\n  assert.throws(() => fromBase64(Object('SGVsbG8gV29ybGQ=')), TypeError, \"isn't generic #4\");\n  assert.throws(() => fromBase64('SGVsbG8gV29ybG%='), SyntaxError, 'throws on invalid #1');\n  assert.throws(() => fromBase64('SGVsbG8gV29ybGQ1='), SyntaxError, 'throws on invalid #2');\n  assert.throws(() => fromBase64('SGVsbG8gV29ybGQ1=', null), TypeError, 'incorrect options argument #1');\n  assert.throws(() => fromBase64('SGVsbG8gV29ybGQ1=', 1), TypeError, 'incorrect options argument #2');\n  assert.throws(() => fromBase64('SGVsbG8gV29ybGQ1=', { alphabet: 'base32' }), TypeError, 'incorrect encoding');\n  assert.throws(() => fromBase64('SGVsbG8gV29ybGQ1=', { lastChunkHandling: 'fff' }), TypeError, 'incorrect lastChunkHandling');\n\n  assert.deepEqual(fromBase64('BBB'), new Uint8Array([4, 16]), 'ending #1');\n  assert.deepEqual(fromBase64('BBB', { lastChunkHandling: 'loose' }), new Uint8Array([4, 16]), 'ending #2');\n  assert.deepEqual(fromBase64('BBB', { lastChunkHandling: 'stop-before-partial' }), new Uint8Array([]), 'ending #3');\n  assert.throws(() => fromBase64('BBB', { lastChunkHandling: 'strict' }), SyntaxError, 'ending #4');\n  assert.deepEqual(fromBase64('SGVsbG8gV29ybGQ'), array, 'ending #5');\n  assert.deepEqual(fromBase64('SGVsbG8gV29ybGQ', { lastChunkHandling: 'loose' }), array, 'ending #6');\n  assert.deepEqual(fromBase64('SGVsbG8gV29ybGQ', { lastChunkHandling: 'stop-before-partial' }), array.slice(0, -2), 'ending #7');\n  assert.throws(() => fromBase64('SGVsbG8gV29ybGQ', { lastChunkHandling: 'strict' }), SyntaxError, 'ending #8');\n\n  assert.deepEqual(fromBase64('SGVsbG8gV29ybGQ= '), array, 'spaces #1');\n  assert.deepEqual(fromBase64('SGVsbG8gV2 9ybGQ='), array, 'spaces #2');\n  assert.deepEqual(fromBase64('SGVsbG8gV29ybGQ=\\n'), array, 'spaces #3');\n  assert.deepEqual(fromBase64('SGVsbG8gV2\\n9ybGQ='), array, 'spaces #4');\n  assert.deepEqual(fromBase64('SGVsbG8gV29ybGQ= ', { lastChunkHandling: 'loose' }), array, 'spaces #5');\n  assert.deepEqual(fromBase64('SGVsbG8gV2 9ybGQ=', { lastChunkHandling: 'loose' }), array, 'spaces #6');\n  assert.deepEqual(fromBase64('SGVsbG8gV29ybGQ=\\n', { lastChunkHandling: 'loose' }), array, 'spaces #7');\n  assert.deepEqual(fromBase64('SGVsbG8gV2\\n9ybGQ=', { lastChunkHandling: 'loose' }), array, 'spaces #8');\n  assert.deepEqual(fromBase64('SGVsbG8gV29ybGQ= ', { lastChunkHandling: 'stop-before-partial' }), array, 'spaces #9');\n  assert.deepEqual(fromBase64('SGVsbG8gV2 9ybGQ=', { lastChunkHandling: 'stop-before-partial' }), array, 'spaces #10');\n  assert.deepEqual(fromBase64('SGVsbG8gV29ybGQ=\\n', { lastChunkHandling: 'stop-before-partial' }), array, 'spaces #11');\n  assert.deepEqual(fromBase64('SGVsbG8gV2\\n9ybGQ=', { lastChunkHandling: 'stop-before-partial' }), array, 'spaces #12');\n  assert.deepEqual(fromBase64('SGVsbG8gV29ybGQ= ', { lastChunkHandling: 'strict' }), array, 'spaces #13');\n  assert.deepEqual(fromBase64('SGVsbG8gV2 9ybGQ=', { lastChunkHandling: 'strict' }), array, 'spaces #14');\n  assert.deepEqual(fromBase64('SGVsbG8gV29ybGQ=\\n', { lastChunkHandling: 'strict' }), array, 'spaces #15');\n  assert.deepEqual(fromBase64('SGVsbG8gV2\\n9ybGQ=', { lastChunkHandling: 'strict' }), array, 'spaces #16');\n\n  // Test262\n  // Copyright 2024 Kevin Gibbons. All rights reserved.\n  // This code is governed by the BSD license found in the https://github.com/tc39/test262/blob/main/LICENSE file.\n  assert.arrayEqual(Uint8Array.fromBase64('x+/y'), [199, 239, 242]);\n  assert.arrayEqual(Uint8Array.fromBase64('x+/y', { alphabet: 'base64' }), [199, 239, 242]);\n  assert.throws(() => Uint8Array.fromBase64('x+/y', { alphabet: 'base64url' }), SyntaxError);\n  assert.arrayEqual(Uint8Array.fromBase64('x-_y', { alphabet: 'base64url' }), [199, 239, 242]);\n  assert.throws(() => Uint8Array.fromBase64('x-_y'), SyntaxError);\n  assert.throws(() => Uint8Array.fromBase64('x-_y', { alphabet: 'base64' }), SyntaxError);\n\n  [\n    'Zm.9v',\n    'Zm9v^',\n    'Zg==&',\n    'Z−==', // U+2212 'Minus Sign'\n    'Z＋==', // U+FF0B 'Fullwidth Plus Sign'\n    'Zg\\u00A0==', // nbsp\n    'Zg\\u2009==', // thin space\n    'Zg\\u2028==', // line separator\n  ].forEach(value => assert.throws(() => Uint8Array.fromBase64(value), SyntaxError));\n\n  // padding\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZg=='), [101, 120, 97, 102]);\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZg==', { lastChunkHandling: 'loose' }), [101, 120, 97, 102]);\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZg==', { lastChunkHandling: 'stop-before-partial' }), [101, 120, 97, 102]);\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZg==', { lastChunkHandling: 'strict' }), [101, 120, 97, 102]);\n\n  // no padding\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZg'), [101, 120, 97, 102]);\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZg', { lastChunkHandling: 'loose' }), [101, 120, 97, 102]);\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZg', { lastChunkHandling: 'stop-before-partial' }), [101, 120, 97]);\n  assert.throws(() => Uint8Array.fromBase64('ZXhhZg', { lastChunkHandling: 'strict' }), SyntaxError);\n\n  // non-zero padding bits\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZh=='), [101, 120, 97, 102]);\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZh==', { lastChunkHandling: 'loose' }), [101, 120, 97, 102]);\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZh==', { lastChunkHandling: 'stop-before-partial' }), [101, 120, 97, 102]);\n  assert.throws(() => Uint8Array.fromBase64('ZXhhZh==', { lastChunkHandling: 'strict' }), SyntaxError);\n\n  // non-zero padding bits, no padding\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZh'), [101, 120, 97, 102]);\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZh', { lastChunkHandling: 'loose' }), [101, 120, 97, 102]);\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZh', { lastChunkHandling: 'stop-before-partial' }), [101, 120, 97]);\n  assert.throws(() => Uint8Array.fromBase64('ZXhhZh', { lastChunkHandling: 'strict' }), SyntaxError);\n\n  // partial padding\n  assert.throws(() => Uint8Array.fromBase64('ZXhhZg='), SyntaxError);\n  assert.throws(() => Uint8Array.fromBase64('ZXhhZg=', { lastChunkHandling: 'loose' }), SyntaxError);\n  assert.arrayEqual(Uint8Array.fromBase64('ZXhhZg=', { lastChunkHandling: 'stop-before-partial' }), [101, 120, 97]);\n  assert.throws(() => Uint8Array.fromBase64('ZXhhZg=', { lastChunkHandling: 'strict' }), SyntaxError);\n\n  // excess padding\n  assert.throws(() => Uint8Array.fromBase64('ZXhhZg==='), SyntaxError);\n  assert.throws(() => Uint8Array.fromBase64('ZXhhZg===', { lastChunkHandling: 'loose' }), SyntaxError);\n  assert.throws(() => Uint8Array.fromBase64('ZXhhZg===', { lastChunkHandling: 'stop-before-partial' }), SyntaxError);\n  assert.throws(() => Uint8Array.fromBase64('ZXhhZg===', { lastChunkHandling: 'strict' }), SyntaxError);\n\n  // standard test vectors from https://datatracker.ietf.org/doc/html/rfc4648#section-10\n  [\n    ['', []],\n    ['Zg==', [102]],\n    ['Zm8=', [102, 111]],\n    ['Zm9v', [102, 111, 111]],\n    ['Zm9vYg==', [102, 111, 111, 98]],\n    ['Zm9vYmE=', [102, 111, 111, 98, 97]],\n    ['Zm9vYmFy', [102, 111, 111, 98, 97, 114]],\n  ].forEach(([string, bytes]) => {\n    const result = Uint8Array.fromBase64(string);\n    assert.same(Object.getPrototypeOf(result), Uint8Array.prototype, `decoding ${ string }`);\n    assert.same(result.length, bytes.length, `decoding ${ string }`);\n    assert.same(result.buffer.byteLength, bytes.length, `decoding ${ string }`);\n    assert.arrayEqual(result, bytes, `decoding ${ string }`);\n  });\n\n  [\n    ['Z g==', 'space'],\n    ['Z\\tg==', 'tab'],\n    ['Z\\u000Ag==', 'LF'],\n    ['Z\\u000Cg==', 'FF'],\n    ['Z\\u000Dg==', 'CR'],\n  ].forEach(([string, name]) => {\n    const arr = Uint8Array.fromBase64(string);\n    assert.same(arr.length, 1);\n    assert.same(arr.buffer.byteLength, 1);\n    assert.arrayEqual(arr, [102], `ascii whitespace: ${ name }`);\n  });\n\n  assert.throws(() => Uint8Array.fromBase64('a'), SyntaxError, 'throws error on incorrect length of base64 string');\n});\n"
  },
  {
    "path": "tests/unit-global/es.uint8-array.from-hex.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Uint8Array.fromHex', assert => {\n  const { fromHex } = Uint8Array;\n  assert.isFunction(fromHex);\n  assert.arity(fromHex, 1);\n  assert.name(fromHex, 'fromHex');\n  assert.looksNative(fromHex);\n\n  assert.true(fromHex('48656c6c6f20576f726c64') instanceof Uint8Array, 'returns Uint8Array instance #1');\n  assert.true(fromHex.call(Int16Array, '48656c6c6f20576f726c64') instanceof Uint8Array, 'returns Uint8Array instance #2');\n\n  assert.deepEqual(fromHex('48656c6c6f20576f726c64'), new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]), 'proper result');\n\n  assert.throws(() => fromHex(null), TypeError, \"isn't generic #1\");\n  assert.throws(() => fromHex(undefined), TypeError, \"isn't generic #2\");\n  assert.throws(() => fromHex(1234), TypeError, \"isn't generic #3\");\n  assert.throws(() => fromHex(Object('48656c6c6f20576f726c64')), TypeError, \"isn't generic #4\");\n  assert.throws(() => fromHex('4865gc6c6f20576f726c64'), SyntaxError, 'throws on invalid #1');\n  assert.throws(() => fromHex('48656c6c6f20576f726c641'), SyntaxError, 'throws on invalid #2');\n  assert.throws(() => fromHex('48656c6c6f20576f726c64 '), SyntaxError, 'throws on invalid #3');\n  assert.throws(() => fromHex('48656c6c6f20576f726c64\\n'), SyntaxError, 'throws on invalid #4');\n\n  // Test262\n  // Copyright 2024 Kevin Gibbons. All rights reserved.\n  // This code is governed by the BSD license found in the https://github.com/tc39/test262/blob/main/LICENSE file.\n  [\n    'a.a',\n    'aa^',\n    'a a',\n    'a\\ta',\n    'a\\u000Aa',\n    'a\\u000Ca',\n    'a\\u000Da',\n    'a\\u00A0a', // nbsp\n    'a\\u2009a', // thin space\n    'a\\u2028a', // line separator\n  ].forEach(value => assert.throws(() => Uint8Array.fromHex(value), SyntaxError));\n\n  assert.throws(() => Uint8Array.fromHex('a'), SyntaxError);\n\n  [\n    ['', []],\n    ['66', [102]],\n    ['666f', [102, 111]],\n    ['666F', [102, 111]],\n    ['666f6f', [102, 111, 111]],\n    ['666F6f', [102, 111, 111]],\n    ['666f6f62', [102, 111, 111, 98]],\n    ['666f6f6261', [102, 111, 111, 98, 97]],\n    ['666f6f626172', [102, 111, 111, 98, 97, 114]],\n  ].forEach(([string, bytes]) => {\n    const arr = Uint8Array.fromHex(string);\n    assert.same(Object.getPrototypeOf(arr), Uint8Array.prototype, `decoding ${ string }`);\n    assert.same(arr.length, bytes.length, `decoding ${ string }`);\n    assert.same(arr.buffer.byteLength, bytes.length, `decoding ${ string }`);\n    assert.arrayEqual(arr, bytes, `decoding ${ string }`);\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/es.uint8-array.set-from-base64.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Uint8Array.prototype.setFromBase64', assert => {\n  const { setFromBase64 } = Uint8Array.prototype;\n  assert.isFunction(setFromBase64);\n  assert.arity(setFromBase64, 1);\n  assert.name(setFromBase64, 'setFromBase64');\n  assert.looksNative(setFromBase64);\n\n  const template = new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 0, 0, 0, 0, 0]);\n\n  const array1 = new Uint8Array(16);\n  const result1 = array1.setFromBase64('SGVsbG8gV29ybGQ=');\n\n  assert.deepEqual(array1, template, 'proper result array #1');\n  assert.deepEqual(result1, { read: 16, written: 11 }, 'proper result #1');\n\n  assert.throws(() => setFromBase64.call(Array(16), 'SGVsbG8gV29ybGQ='), TypeError, \"isn't generic, this #1\");\n  assert.throws(() => setFromBase64.call(new Int8Array(16), 'SGVsbG8gV29ybGQ='), TypeError, \"isn't generic, this #2\");\n  assert.throws(() => new Uint8Array(16).setFromBase64(null), TypeError, \"isn't generic, arg #1\");\n  assert.throws(() => new Uint8Array(16).setFromBase64(undefined), TypeError, \"isn't generic, arg #2\");\n  assert.throws(() => new Uint8Array(16).setFromBase64(1234), TypeError, \"isn't generic, arg #3\");\n  assert.throws(() => new Uint8Array(16).setFromBase64(Object('SGVsbG8gV29ybGQ=')), TypeError, \"isn't generic, arg #4\");\n  assert.throws(() => new Uint8Array(16).setFromBase64('^'), SyntaxError, 'throws on invalid #1');\n  assert.throws(() => new Uint8Array(16).setFromBase64('SGVsbG8gV29ybGQ=', null), TypeError, 'incorrect options argument #1');\n  assert.throws(() => new Uint8Array(16).setFromBase64('SGVsbG8gV29ybGQ=', 1), TypeError, 'incorrect options argument #2');\n  assert.throws(() => new Uint8Array(16).setFromBase64('SGVsbG8gV29ybGQ=', { alphabet: 'base32' }), TypeError, 'incorrect encoding');\n  assert.throws(() => new Uint8Array(16).setFromBase64('SGVsbG8gV29ybGQ=', { lastChunkHandling: 'fff' }), TypeError, 'incorrect lastChunkHandling');\n\n  if (ArrayBuffer.prototype.transfer) {\n    const array = new Uint8Array(16);\n    array.buffer.transfer();\n\n    assert.throws(() => array.setFromBase64('SGVsbG8gV29ybGQ='), TypeError, 'detached');\n  }\n\n  // Test262\n  // Copyright 2024 Kevin Gibbons. All rights reserved.\n  // This code is governed by the BSD license found in the https://github.com/tc39/test262/blob/main/LICENSE file.\n  let target = new Uint8Array([255, 255, 255, 255]);\n  let result = target.setFromBase64('x+/y');\n  assert.same(result.read, 4);\n  assert.same(result.written, 3);\n  assert.arrayEqual(target, [199, 239, 242, 255]);\n\n  target = new Uint8Array([255, 255, 255, 255]);\n  result = target.setFromBase64('x+/y', { alphabet: 'base64' });\n  assert.same(result.read, 4);\n  assert.same(result.written, 3);\n  assert.arrayEqual(target, [199, 239, 242, 255]);\n\n  assert.throws(() => new Uint8Array([255, 255, 255, 255]).setFromBase64('x+/y', { alphabet: 'base64url' }), SyntaxError);\n\n  target = new Uint8Array([255, 255, 255, 255]);\n  result = target.setFromBase64('x-_y', { alphabet: 'base64url' });\n  assert.same(result.read, 4);\n  assert.same(result.written, 3);\n  assert.arrayEqual(target, [199, 239, 242, 255]);\n\n  assert.throws(() => new Uint8Array([255, 255, 255, 255]).setFromBase64('x-_y'), SyntaxError);\n  assert.throws(() => new Uint8Array([255, 255, 255, 255]).setFromBase64('x-_y', { alphabet: 'base64' }), SyntaxError);\n\n  [\n    'Zm.9v',\n    'Zm9v^',\n    'Zg==&',\n    'Z−==', // U+2212 'Minus Sign'\n    'Z＋==', // U+FF0B 'Fullwidth Plus Sign'\n    'Zg\\u00A0==', // nbsp\n    'Zg\\u2009==', // thin space\n    'Zg\\u2028==', // line separator\n  ].forEach(value => assert.throws(() => new Uint8Array([255, 255, 255, 255, 255]).setFromBase64(value), SyntaxError));\n\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZg==');\n  assert.same(result.read, 8);\n  assert.same(result.written, 4);\n  assert.arrayEqual(target, [101, 120, 97, 102, 255, 255]);\n\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZg==', { lastChunkHandling: 'loose' });\n  assert.same(result.read, 8);\n  assert.same(result.written, 4);\n  assert.arrayEqual(target, [101, 120, 97, 102, 255, 255]);\n\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZg==', { lastChunkHandling: 'stop-before-partial' });\n  assert.same(result.read, 8);\n  assert.same(result.written, 4);\n  assert.arrayEqual(target, [101, 120, 97, 102, 255, 255]);\n\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZg==', { lastChunkHandling: 'strict' });\n  assert.same(result.read, 8);\n  assert.same(result.written, 4);\n  assert.arrayEqual(target, [101, 120, 97, 102, 255, 255]);\n\n  // no padding\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZg');\n  assert.same(result.read, 6);\n  assert.same(result.written, 4);\n  assert.arrayEqual(target, [101, 120, 97, 102, 255, 255]);\n\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZg', { lastChunkHandling: 'loose' });\n  assert.same(result.read, 6);\n  assert.same(result.written, 4);\n  assert.arrayEqual(target, [101, 120, 97, 102, 255, 255]);\n\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZg', { lastChunkHandling: 'stop-before-partial' });\n  assert.same(result.read, 4);\n  assert.same(result.written, 3);\n  assert.arrayEqual(target, [101, 120, 97, 255, 255, 255]);\n\n  assert.throws(() => new Uint8Array([255, 255, 255, 255, 255, 255]).setFromBase64('ZXhhZg', { lastChunkHandling: 'strict' }), SyntaxError);\n\n  // non-zero padding bits\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZh==');\n  assert.same(result.read, 8);\n  assert.same(result.written, 4);\n  assert.arrayEqual(target, [101, 120, 97, 102, 255, 255]);\n\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZh==', { lastChunkHandling: 'loose' });\n  assert.same(result.read, 8);\n  assert.same(result.written, 4);\n  assert.arrayEqual(target, [101, 120, 97, 102, 255, 255]);\n\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZh==', { lastChunkHandling: 'stop-before-partial' });\n  assert.same(result.read, 8);\n  assert.same(result.written, 4);\n  assert.arrayEqual(target, [101, 120, 97, 102, 255, 255]);\n\n  assert.throws(() => new Uint8Array([255, 255, 255, 255, 255, 255]).setFromBase64('ZXhhZh==', { lastChunkHandling: 'strict' }), SyntaxError);\n\n  // non-zero padding bits, no padding\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZh');\n  assert.same(result.read, 6);\n  assert.same(result.written, 4);\n  assert.arrayEqual(target, [101, 120, 97, 102, 255, 255]);\n\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZh', { lastChunkHandling: 'loose' });\n  assert.same(result.read, 6);\n  assert.same(result.written, 4);\n  assert.arrayEqual(target, [101, 120, 97, 102, 255, 255]);\n\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZh', { lastChunkHandling: 'stop-before-partial' });\n  assert.same(result.read, 4);\n  assert.same(result.written, 3);\n  assert.arrayEqual(target, [101, 120, 97, 255, 255, 255]);\n\n  assert.throws(() => new Uint8Array([255, 255, 255, 255, 255, 255]).setFromBase64('ZXhhZh', { lastChunkHandling: 'strict' }), SyntaxError);\n\n  // partial padding\n  assert.throws(() => new Uint8Array([255, 255, 255, 255, 255, 255]).setFromBase64('ZXhhZg='), SyntaxError);\n  assert.throws(() => new Uint8Array([255, 255, 255, 255, 255, 255]).setFromBase64('ZXhhZg=', { lastChunkHandling: 'loose' }), SyntaxError);\n\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('ZXhhZg=', { lastChunkHandling: 'stop-before-partial' });\n  assert.same(result.read, 4);\n  assert.same(result.written, 3);\n  assert.arrayEqual(target, [101, 120, 97, 255, 255, 255]);\n\n  assert.throws(() => new Uint8Array([255, 255, 255, 255, 255, 255]).setFromBase64('ZXhhZg=', { lastChunkHandling: 'strict' }), SyntaxError);\n\n  // excess padding\n  assert.throws(() => new Uint8Array([255, 255, 255, 255, 255, 255]).setFromBase64('ZXhhZg==='), SyntaxError);\n  assert.throws(() => new Uint8Array([255, 255, 255, 255, 255, 255]).setFromBase64('ZXhhZg===', { lastChunkHandling: 'loose' }), SyntaxError);\n  assert.throws(() => new Uint8Array([255, 255, 255, 255, 255, 255]).setFromBase64('ZXhhZg===', { lastChunkHandling: 'stop-before-partial' }), SyntaxError);\n  assert.throws(() => new Uint8Array([255, 255, 255, 255, 255, 255]).setFromBase64('ZXhhZg===', { lastChunkHandling: 'strict' }), SyntaxError);\n\n  // standard test vectors from https://datatracker.ietf.org/doc/html/rfc4648#section-10\n  [\n    ['', []],\n    ['Zg==', [102]],\n    ['Zm8=', [102, 111]],\n    ['Zm9v', [102, 111, 111]],\n    ['Zm9vYg==', [102, 111, 111, 98]],\n    ['Zm9vYmE=', [102, 111, 111, 98, 97]],\n    ['Zm9vYmFy', [102, 111, 111, 98, 97, 114]],\n  ].forEach(([string, bytes]) => {\n    const allFF = [255, 255, 255, 255, 255, 255, 255, 255];\n    target = new Uint8Array(allFF);\n    result = target.setFromBase64(string);\n    assert.same(result.read, string.length);\n    assert.same(result.written, bytes.length);\n\n    const expected = bytes.concat(allFF.slice(bytes.length));\n    assert.arrayEqual(target, expected, `decoding ${ string }`);\n  });\n\n  const base = new Uint8Array([255, 255, 255, 255, 255, 255, 255]);\n  const subarray = base.subarray(2, 5);\n\n  result = subarray.setFromBase64('Zm9vYmFy');\n  assert.same(result.read, 4);\n  assert.same(result.written, 3);\n  assert.arrayEqual(subarray, [102, 111, 111]);\n  assert.arrayEqual(base, [255, 255, 102, 111, 111, 255, 255]);\n\n  // buffer too small\n  target = new Uint8Array([255, 255, 255, 255, 255]);\n  result = target.setFromBase64('Zm9vYmFy');\n  assert.same(result.read, 4);\n  assert.same(result.written, 3);\n  assert.arrayEqual(target, [102, 111, 111, 255, 255]);\n\n  // buffer too small, padded\n  target = new Uint8Array([255, 255, 255, 255]);\n  result = target.setFromBase64('Zm9vYmE=');\n  assert.same(result.read, 4);\n  assert.same(result.written, 3);\n  assert.arrayEqual(target, [102, 111, 111, 255]);\n\n  // buffer exact\n  target = new Uint8Array([255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('Zm9vYmFy');\n  assert.same(result.read, 8);\n  assert.same(result.written, 6);\n  assert.arrayEqual(target, [102, 111, 111, 98, 97, 114]);\n\n  // buffer exact, padded\n  target = new Uint8Array([255, 255, 255, 255, 255]);\n  result = target.setFromBase64('Zm9vYmE=');\n  assert.same(result.read, 8);\n  assert.same(result.written, 5);\n  assert.arrayEqual(target, [102, 111, 111, 98, 97]);\n\n  // buffer exact, not padded\n  target = new Uint8Array([255, 255, 255, 255, 255]);\n  result = target.setFromBase64('Zm9vYmE');\n  assert.same(result.read, 7);\n  assert.same(result.written, 5);\n  assert.arrayEqual(target, [102, 111, 111, 98, 97]);\n\n  // buffer exact, padded, stop-before-partial\n  target = new Uint8Array([255, 255, 255, 255, 255]);\n  result = target.setFromBase64('Zm9vYmE=', { lastChunkHandling: 'stop-before-partial' });\n  assert.same(result.read, 8);\n  assert.same(result.written, 5);\n  assert.arrayEqual(target, [102, 111, 111, 98, 97]);\n\n  // buffer exact, not padded, stop-before-partial\n  target = new Uint8Array([255, 255, 255, 255, 255]);\n  result = target.setFromBase64('Zm9vYmE', { lastChunkHandling: 'stop-before-partial' });\n  assert.same(result.read, 4);\n  assert.same(result.written, 3);\n  assert.arrayEqual(target, [102, 111, 111, 255, 255]);\n\n  // buffer too large\n  target = new Uint8Array([255, 255, 255, 255, 255, 255, 255]);\n  result = target.setFromBase64('Zm9vYmFy');\n  assert.same(result.read, 8);\n  assert.same(result.written, 6);\n  assert.arrayEqual(target, [102, 111, 111, 98, 97, 114, 255]);\n\n  [\n    ['Z g==', 'space'],\n    ['Z\\tg==', 'tab'],\n    ['Z\\u000Ag==', 'LF'],\n    ['Z\\u000Cg==', 'FF'],\n    ['Z\\u000Dg==', 'CR'],\n  ].forEach(([string, name]) => {\n    target = new Uint8Array([255, 255, 255]);\n    result = target.setFromBase64(string);\n    assert.same(result.read, 5);\n    assert.same(result.written, 1);\n    assert.arrayEqual(target, [102, 255, 255], `ascii whitespace: ${ name }`);\n  });\n\n  target = new Uint8Array([255, 255, 255, 255, 255]);\n  assert.throws(() => target.setFromBase64('MjYyZm.9v'), SyntaxError, 'illegal character in second chunk');\n  assert.arrayEqual(target, [50, 54, 50, 255, 255], 'decoding from MjYyZm.9v should only write the valid chunks');\n\n  target = new Uint8Array([255, 255, 255, 255, 255]);\n  assert.throws(() => target.setFromBase64('MjYyZg', { lastChunkHandling: 'strict' }), SyntaxError, 'padding omitted with lastChunkHandling: strict');\n  assert.arrayEqual(target, [50, 54, 50, 255, 255], 'decoding from MjYyZg should only write the valid chunks');\n\n  target = new Uint8Array([255, 255, 255, 255, 255]);\n  assert.throws(() => target.setFromBase64('MjYyZg==='), SyntaxError, 'extra characters after padding');\n  assert.arrayEqual(target, [50, 54, 50, 255, 255], 'decoding from MjYyZg=== should not write the last chunk because it has extra padding');\n\n  target = new Uint8Array([255, 255, 255, 255, 255]);\n  assert.throws(() => target.setFromBase64('a'), SyntaxError, 'throws error on incorrect length of base64 string');\n});\n"
  },
  {
    "path": "tests/unit-global/es.uint8-array.set-from-hex.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Uint8Array.prototype.setFromHex', assert => {\n  const { setFromHex } = Uint8Array.prototype;\n  assert.isFunction(setFromHex);\n  assert.arity(setFromHex, 1);\n  assert.name(setFromHex, 'setFromHex');\n  assert.looksNative(setFromHex);\n\n  const array1 = new Uint8Array(11);\n  const result1 = array1.setFromHex('48656c6c6f20576f726c64');\n\n  assert.deepEqual(array1, new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]), 'array #1');\n  assert.deepEqual(result1, { read: 22, written: 11 }, 'result #1');\n\n  const array2 = new Uint8Array(10);\n  const result2 = array2.setFromHex('48656c6c6f20576f726c64');\n\n  assert.deepEqual(array2, new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108]), 'array #2');\n  assert.deepEqual(result2, { read: 20, written: 10 }, 'result #2');\n\n  const array3 = new Uint8Array(12);\n  const result3 = array3.setFromHex('48656c6c6f20576f726c64');\n\n  assert.deepEqual(array3, new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 0]), 'array #3');\n  assert.deepEqual(result3, { read: 22, written: 11 }, 'result #3');\n\n  const array4 = new Uint8Array(11);\n\n  assert.throws(() => array4.setFromHex('4865gc6c6f20576f726c64'), SyntaxError, 'throws on invalid #1');\n  assert.deepEqual(array4, new Uint8Array([72, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0]), 'array #4');\n\n  if (ArrayBuffer.prototype.transfer) {\n    const array5 = new Uint8Array(11);\n    array5.buffer.transfer();\n\n    assert.throws(() => array5.setFromHex('48656c6c6f20576f726c64'), TypeError, 'detached');\n  }\n\n  // Should not throw an error with an empty string being set.  This verifies that\n  // we aren't using the result of segments = stringMatch(string, /.{2}/g) unsafely\n  // in cases where no matches are found, since it returns null instead of []\n  const arrayEmpty = new Uint8Array(4);\n  const resultEmpty = arrayEmpty.setFromHex('');\n\n  assert.deepEqual(arrayEmpty, new Uint8Array([0, 0, 0, 0]), 'array empty string test');\n  assert.deepEqual(resultEmpty, { read: 0, written: 0 }, 'result empty string test');\n\n  // Should not throw an error on length-tracking views over ResizableArrayBuffer\n  // https://issues.chromium.org/issues/454630441\n  assert.notThrows(() => {\n    const rab = new ArrayBuffer(16, { maxByteLength: 1024 });\n    new Uint8Array(rab).setFromHex('cafed00d');\n  }, 'not throw an error on ResizableArrayBuffer');\n\n  assert.throws(() => setFromHex.call(Array(11), '48656c6c6f20576f726c64'), TypeError, \"isn't generic, this #1\");\n  assert.throws(() => setFromHex.call(new Int8Array(11), '48656c6c6f20576f726c64'), TypeError, \"isn't generic, this #2\");\n  assert.throws(() => new Uint8Array(11).setFromHex(null), TypeError, \"isn't generic, arg #1\");\n  assert.throws(() => new Uint8Array(11).setFromHex(undefined), TypeError, \"isn't generic, arg #2\");\n  assert.throws(() => new Uint8Array(11).setFromHex(1234), TypeError, \"isn't generic, arg #3\");\n  assert.throws(() => new Uint8Array(11).setFromHex(Object('48656c6c6f20576f726c64')), TypeError, \"isn't generic, arg #4\");\n  assert.throws(() => new Uint8Array(11).setFromHex('48656c6c6f20576f726c641'), SyntaxError, 'throws on invalid #2');\n  assert.throws(() => new Uint8Array(11).setFromHex('48656c6c6f20576f726c64 '), SyntaxError, 'throws on invalid #3');\n  assert.throws(() => new Uint8Array(11).setFromHex('48656c6c6f20576f726c64\\n'), SyntaxError, 'throws on invalid #4');\n\n  // Test262\n  // Copyright 2024 Kevin Gibbons. All rights reserved.\n  // This code is governed by the BSD license found in the https://github.com/tc39/test262/blob/main/LICENSE file.\n  [\n    'a.a',\n    'aa^',\n    'a a',\n    'a\\ta',\n    'a\\u000Aa',\n    'a\\u000Ca',\n    'a\\u000Da',\n    'a\\u00A0a', // nbsp\n    'a\\u2009a', // thin space\n    'a\\u2028a', // line separator\n  ].forEach(value => assert.throws(() => new Uint8Array([255, 255, 255, 255, 255]).setFromHex(value), SyntaxError));\n\n  [\n    ['', []],\n    ['66', [102]],\n    ['666f', [102, 111]],\n    ['666F', [102, 111]],\n    ['666f6f', [102, 111, 111]],\n    ['666F6f', [102, 111, 111]],\n    ['666f6f62', [102, 111, 111, 98]],\n    ['666f6f6261', [102, 111, 111, 98, 97]],\n    ['666f6f626172', [102, 111, 111, 98, 97, 114]],\n  ].forEach(([string, bytes]) => {\n    const allFF = [255, 255, 255, 255, 255, 255, 255, 255];\n    const target = new Uint8Array(allFF);\n    const result = target.setFromHex(string);\n    assert.same(result.read, string.length);\n    assert.same(result.written, bytes.length);\n\n    const expected = bytes.concat(allFF.slice(bytes.length));\n    assert.arrayEqual(target, expected, `decoding ${ string }`);\n  });\n\n  const base = new Uint8Array([255, 255, 255, 255, 255, 255, 255]);\n  const subarray = base.subarray(2, 5);\n\n  let result = subarray.setFromHex('aabbcc');\n  assert.same(result.read, 6);\n  assert.same(result.written, 3);\n  assert.arrayEqual(subarray, [170, 187, 204]);\n  assert.arrayEqual(base, [255, 255, 170, 187, 204, 255, 255]);\n\n  // buffer too small\n  let target = new Uint8Array([255, 255]);\n  result = target.setFromHex('aabbcc');\n  assert.same(result.read, 4);\n  assert.same(result.written, 2);\n  assert.arrayEqual(target, [170, 187]);\n\n  // buffer exact\n  target = new Uint8Array([255, 255, 255]);\n  result = target.setFromHex('aabbcc');\n  assert.same(result.read, 6);\n  assert.same(result.written, 3);\n  assert.arrayEqual(target, [170, 187, 204]);\n\n  // buffer too large\n  target = new Uint8Array([255, 255, 255, 255]);\n  result = target.setFromHex('aabbcc');\n  assert.same(result.read, 6);\n  assert.same(result.written, 3);\n  assert.arrayEqual(target, [170, 187, 204, 255]);\n\n  [\n    'aaa ',\n    'aaag',\n  ].forEach(value => {\n    target = new Uint8Array([255, 255, 255, 255, 255]);\n    assert.throws(() => target.setFromHex(value), SyntaxError);\n    assert.arrayEqual(target, [170, 255, 255, 255, 255], `decoding from ${ value }`);\n  });\n\n  target = new Uint8Array([255, 255, 255, 255, 255]);\n  assert.throws(() => target.setFromHex('aaa'), SyntaxError);\n  assert.arrayEqual(target, [255, 255, 255, 255, 255], 'when length is odd no data is written');\n});\n"
  },
  {
    "path": "tests/unit-global/es.uint8-array.to-base64.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Uint8Array.prototype.toBase64', assert => {\n  const { toBase64 } = Uint8Array.prototype;\n  assert.isFunction(toBase64);\n  assert.arity(toBase64, 0);\n  assert.name(toBase64, 'toBase64');\n  assert.looksNative(toBase64);\n\n  const array = new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]);\n\n  assert.same(array.toBase64(), 'SGVsbG8gV29ybGQ=', 'proper result');\n  assert.same(array.toBase64({ alphabet: 'base64' }), 'SGVsbG8gV29ybGQ=', 'proper result, base64');\n  assert.same(array.toBase64({ alphabet: 'base64url' }), 'SGVsbG8gV29ybGQ=', 'proper result, base64url');\n  assert.same(array.toBase64({ omitPadding: true }), 'SGVsbG8gV29ybGQ', 'proper result');\n  assert.same(array.toBase64({ omitPadding: false }), 'SGVsbG8gV29ybGQ=', 'proper result');\n\n  assert.throws(() => array.toBase64(null), TypeError, 'incorrect options argument #1');\n  assert.throws(() => array.toBase64(1), TypeError, 'incorrect options argument #2');\n\n  assert.throws(() => array.toBase64({ alphabet: 'base32' }), TypeError, 'incorrect encoding');\n\n  assert.same(new Uint8Array([215, 111, 247]).toBase64(), '12/3', 'encoding #1');\n  assert.same(new Uint8Array([215, 111, 247]).toBase64({ alphabet: 'base64' }), '12/3', 'encoding #2');\n  assert.same(new Uint8Array([215, 111, 247]).toBase64({ alphabet: 'base64url' }), '12_3', 'encoding #3');\n  assert.same(new Uint8Array([215, 111, 183]).toBase64(), '12+3', 'encoding #4');\n  assert.same(new Uint8Array([215, 111, 183]).toBase64({ alphabet: 'base64' }), '12+3', 'encoding #5');\n  assert.same(new Uint8Array([215, 111, 183]).toBase64({ alphabet: 'base64url' }), '12-3', 'encoding #6');\n\n  if (ArrayBuffer.prototype.transfer) {\n    const array2 = new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]);\n    array2.buffer.transfer();\n\n    assert.throws(() => array2.toBase64(), TypeError, 'detached');\n  }\n\n  assert.throws(() => toBase64.call(null), TypeError, \"isn't generic #1\");\n  assert.throws(() => toBase64.call(undefined), TypeError, \"isn't generic #2\");\n  assert.throws(() => toBase64.call(new Int16Array([1])), TypeError, \"isn't generic #3\");\n  assert.throws(() => toBase64.call([1]), TypeError, \"isn't generic #4\");\n\n  // Test262\n  // Copyright 2024 Kevin Gibbons. All rights reserved.\n  // This code is governed by the BSD license found in the https://github.com/tc39/test262/blob/main/LICENSE file.\n  assert.same(new Uint8Array([199, 239, 242]).toBase64(), 'x+/y');\n  assert.same(new Uint8Array([199, 239, 242]).toBase64({ alphabet: 'base64' }), 'x+/y');\n  assert.same(new Uint8Array([199, 239, 242]).toBase64({ alphabet: 'base64url' }), 'x-_y');\n  assert.throws(() => new Uint8Array([199, 239, 242]).toBase64({ alphabet: 'other' }), TypeError);\n\n  // works with default alphabet\n  assert.same(new Uint8Array([199, 239]).toBase64(), 'x+8=');\n  assert.same(new Uint8Array([199, 239]).toBase64({ omitPadding: false }), 'x+8=');\n  assert.same(new Uint8Array([199, 239]).toBase64({ omitPadding: true }), 'x+8');\n  assert.same(new Uint8Array([255]).toBase64({ omitPadding: true }), '/w');\n\n  // works with base64url alphabet\n  assert.same(new Uint8Array([199, 239]).toBase64({ alphabet: 'base64url' }), 'x-8=');\n  assert.same(new Uint8Array([199, 239]).toBase64({ alphabet: 'base64url', omitPadding: false }), 'x-8=');\n  assert.same(new Uint8Array([199, 239]).toBase64({ alphabet: 'base64url', omitPadding: true }), 'x-8');\n  assert.same(new Uint8Array([255]).toBase64({ alphabet: 'base64url', omitPadding: true }), '_w');\n\n  // performs ToBoolean on the argument\n  assert.same(new Uint8Array([255]).toBase64({ omitPadding: 0 }), '/w==');\n  assert.same(new Uint8Array([255]).toBase64({ omitPadding: 1 }), '/w');\n});\n"
  },
  {
    "path": "tests/unit-global/es.uint8-array.to-hex.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Uint8Array.prototype.toHex', assert => {\n  const { toHex } = Uint8Array.prototype;\n  assert.isFunction(toHex);\n  assert.arity(toHex, 0);\n  assert.name(toHex, 'toHex');\n  assert.looksNative(toHex);\n\n  assert.same(new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]).toHex(), '48656c6c6f20576f726c64', 'proper result #1');\n  assert.same(new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]).toHex(), 'ffffffffffffffff', 'proper result #2');\n\n  if (ArrayBuffer.prototype.transfer) {\n    const array = new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]);\n    array.buffer.transfer();\n\n    assert.throws(() => array.toHex(), TypeError, 'detached');\n  }\n\n  assert.throws(() => toHex.call(null), TypeError, \"isn't generic #1\");\n  assert.throws(() => toHex.call(undefined), TypeError, \"isn't generic #2\");\n  assert.throws(() => toHex.call(new Int16Array([1])), TypeError, \"isn't generic #3\");\n  assert.throws(() => toHex.call([1]), TypeError, \"isn't generic #4\");\n\n  // Test262\n  // Copyright 2024 Kevin Gibbons. All rights reserved.\n  // This code is governed by the BSD license found in the https://github.com/tc39/test262/blob/main/LICENSE file.\n  assert.same(new Uint8Array([]).toHex(), '');\n  assert.same(new Uint8Array([102]).toHex(), '66');\n  assert.same(new Uint8Array([102, 111]).toHex(), '666f');\n  assert.same(new Uint8Array([102, 111, 111]).toHex(), '666f6f');\n  assert.same(new Uint8Array([102, 111, 111, 98]).toHex(), '666f6f62');\n  assert.same(new Uint8Array([102, 111, 111, 98, 97]).toHex(), '666f6f6261');\n  assert.same(new Uint8Array([102, 111, 111, 98, 97, 114]).toHex(), '666f6f626172');\n});\n"
  },
  {
    "path": "tests/unit-global/es.unescape.js",
    "content": "QUnit.test('unescape', assert => {\n  assert.isFunction(unescape);\n  assert.name(unescape, 'unescape');\n  assert.arity(unescape, 1);\n  assert.looksNative(unescape);\n  assert.same(unescape('%21q2%u0444'), '!q2ф');\n  assert.same(unescape('%u044q2%21'), '%u044q2!');\n  assert.same(unescape(null), 'null');\n  assert.same(unescape(undefined), 'undefined');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => unescape(Symbol('unescape test')), 'throws on symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/es.weak-map.get-or-insert-computed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('WeakMap#getOrInsertComputed', assert => {\n  const { getOrInsertComputed } = WeakMap.prototype;\n  assert.isFunction(getOrInsertComputed);\n  assert.arity(getOrInsertComputed, 2);\n  assert.name(getOrInsertComputed, 'getOrInsertComputed');\n  assert.looksNative(getOrInsertComputed);\n  assert.nonEnumerable(WeakMap.prototype, 'getOrInsertComputed');\n\n  const a = {};\n  const b = {};\n\n  let map = new WeakMap([[a, 2]]);\n  assert.same(map.getOrInsertComputed(a, () => 3), 2, 'result#1');\n  assert.same(map.get(a), 2, 'map#1');\n  map = new WeakMap([[a, 2]]);\n  assert.same(map.getOrInsertComputed(b, () => 3), 3, 'result#2');\n  assert.same(map.get(a), 2, 'map#2-1');\n  assert.same(map.get(b), 3, 'map#2-2');\n\n  map = new WeakMap([[a, 2]]);\n  map.getOrInsertComputed(a, () => assert.avoid());\n\n  map = new WeakMap([[a, 2]]);\n  map.getOrInsertComputed(b, function (key) {\n    if (STRICT) assert.same(this, undefined, 'correct handler in callback');\n    assert.same(arguments.length, 1, 'correct number of callback arguments');\n    assert.same(key, b, 'correct key in callback');\n  });\n\n  map = new WeakMap([[a, 2]]);\n  assert.throws(() => {\n    map.getOrInsertComputed(1, () => assert.avoid());\n  }, TypeError, 'key validation before call of callback');\n\n  map = new WeakMap([[a, 2]]);\n  assert.same(map.getOrInsertComputed(b, key => {\n    map.set(key, 4);\n    return 3;\n  }), 3, 'callback inserts same key');\n  assert.same(map.get(b), 3, 'map after callback inserts same key');\n\n  assert.throws(() => new WeakMap().getOrInsertComputed(1, () => 3), TypeError, 'invalid key#1');\n  assert.throws(() => new WeakMap().getOrInsertComputed(null, () => 3), TypeError, 'invalid key#2');\n  assert.throws(() => new WeakMap().getOrInsertComputed(undefined, () => 3), TypeError, 'invalid key#3');\n  assert.throws(() => new WeakMap().getOrInsertComputed(a, {}), TypeError, 'non-callable#1');\n  assert.throws(() => new WeakMap().getOrInsertComputed(a, 1), TypeError, 'non-callable#2');\n  assert.throws(() => new WeakMap().getOrInsertComputed(a, null), TypeError, 'non-callable#3');\n  assert.throws(() => new WeakMap().getOrInsertComputed(a, undefined), TypeError, 'non-callable#4');\n  assert.throws(() => new WeakMap().getOrInsertComputed(a), TypeError, 'non-callable#5');\n  assert.throws(() => getOrInsertComputed.call({}, a, () => 3), TypeError, 'non-generic#1');\n  assert.throws(() => getOrInsertComputed.call([], a, () => 3), TypeError, 'non-generic#2');\n  assert.throws(() => getOrInsertComputed.call(undefined, a, () => 3), TypeError, 'non-generic#3');\n  assert.throws(() => getOrInsertComputed.call(null, a, () => 3), TypeError, 'non-generic#4');\n});\n"
  },
  {
    "path": "tests/unit-global/es.weak-map.get-or-insert.js",
    "content": "QUnit.test('WeakMap#getOrInsert', assert => {\n  const { getOrInsert } = WeakMap.prototype;\n  assert.isFunction(getOrInsert);\n  assert.arity(getOrInsert, 2);\n  assert.name(getOrInsert, 'getOrInsert');\n  assert.looksNative(getOrInsert);\n  assert.nonEnumerable(WeakMap.prototype, 'getOrInsert');\n\n  const a = {};\n  const b = {};\n\n  let map = new WeakMap([[a, 2]]);\n  assert.same(map.getOrInsert(a, 3), 2, 'result#1');\n  assert.same(map.get(a), 2, 'map#1');\n  map = new WeakMap([[a, 2]]);\n  assert.same(map.getOrInsert(b, 3), 3, 'result#2');\n  assert.same(map.get(a), 2, 'map#2-1');\n  assert.same(map.get(b), 3, 'map#2-2');\n\n  assert.throws(() => new WeakMap().getOrInsert(1, 1), TypeError, 'invalid key#1');\n  assert.throws(() => new WeakMap().getOrInsert(null, 1), TypeError, 'invalid key#2');\n  assert.throws(() => new WeakMap().getOrInsert(undefined, 1), TypeError, 'invalid key#3');\n  assert.throws(() => new WeakMap().getOrInsert(), TypeError, 'invalid key#4');\n  assert.throws(() => getOrInsert.call({}, a, 1), TypeError, 'non-generic#1');\n  assert.throws(() => getOrInsert.call([], a, 1), TypeError, 'non-generic#2');\n  assert.throws(() => getOrInsert.call(undefined, a, 1), TypeError, 'non-generic#3');\n  assert.throws(() => getOrInsert.call(null, a, 1), TypeError, 'non-generic#4');\n});\n"
  },
  {
    "path": "tests/unit-global/es.weak-map.js",
    "content": "import { DESCRIPTORS, FREEZING, GLOBAL, NATIVE } from '../helpers/constants.js';\nimport { createIterable, nativeSubclass } from '../helpers/helpers.js';\n\nconst Symbol = GLOBAL.Symbol || {};\nconst { freeze, isFrozen, keys, getOwnPropertyNames, getOwnPropertySymbols } = Object;\nconst { ownKeys } = GLOBAL.Reflect || {};\n\nQUnit.test('WeakMap', assert => {\n  assert.isFunction(WeakMap);\n  assert.name(WeakMap, 'WeakMap');\n  assert.arity(WeakMap, 0);\n  assert.looksNative(WeakMap);\n  assert.true('delete' in WeakMap.prototype, 'delete in WeakMap.prototype');\n  assert.true('get' in WeakMap.prototype, 'get in WeakMap.prototype');\n  assert.true('has' in WeakMap.prototype, 'has in WeakMap.prototype');\n  assert.true('set' in WeakMap.prototype, 'set in WeakMap.prototype');\n  assert.true(new WeakMap() instanceof WeakMap, 'new WeakMap instanceof WeakMap');\n  let object = {};\n  assert.same(new WeakMap(createIterable([[object, 42]])).get(object), 42, 'Init from iterable');\n  let weakmap = new WeakMap();\n  const frozen = freeze({});\n  weakmap.set(frozen, 42);\n  assert.same(weakmap.get(frozen), 42, 'Support frozen objects');\n  weakmap = new WeakMap();\n  weakmap.set(frozen, 42);\n  assert.true(weakmap.has(frozen), 'works with frozen objects, #1');\n  assert.same(weakmap.get(frozen), 42, 'works with frozen objects, #2');\n  weakmap.delete(frozen);\n  assert.false(weakmap.has(frozen), 'works with frozen objects, #3');\n  assert.same(weakmap.get(frozen), undefined, 'works with frozen objects, #4');\n  let done = false;\n  try {\n    new WeakMap(createIterable([null, 1, 2], {\n      return() {\n        return done = true;\n      },\n    }));\n  } catch { /* empty */ }\n  assert.true(done, '.return #throw');\n  assert.false('clear' in WeakMap.prototype, 'should not contains `.clear` method');\n  const array = [];\n  done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return [][Symbol.iterator].call(this);\n  };\n  new WeakMap(array);\n  assert.true(done);\n  object = {};\n  new WeakMap().set(object, 1);\n  if (DESCRIPTORS) {\n    const results = [];\n    for (const key in object) results.push(key);\n    assert.arrayEqual(results, []);\n    assert.arrayEqual(keys(object), []);\n  }\n  assert.arrayEqual(getOwnPropertyNames(object), []);\n  if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []);\n  if (ownKeys) assert.arrayEqual(ownKeys(object), []);\n  if (nativeSubclass) {\n    const Subclass = nativeSubclass(WeakMap);\n    assert.true(new Subclass() instanceof Subclass, 'correct subclassing with native classes #1');\n    assert.true(new Subclass() instanceof WeakMap, 'correct subclassing with native classes #2');\n    object = {};\n    assert.same(new Subclass().set(object, 2).get(object), 2, 'correct subclassing with native classes #3');\n  }\n\n  const buffer = new ArrayBuffer(8);\n  const map = new WeakMap([[buffer, 8]]);\n  assert.true(map.has(buffer), 'works with ArrayBuffer keys');\n});\n\nQUnit.test('WeakMap#delete', assert => {\n  assert.isFunction(WeakMap.prototype.delete);\n  if (NATIVE) assert.name(WeakMap.prototype.delete, 'delete');\n  if (NATIVE) assert.arity(WeakMap.prototype.delete, 1);\n  assert.looksNative(WeakMap.prototype.delete);\n  assert.nonEnumerable(WeakMap.prototype, 'delete');\n  const a = {};\n  const b = {};\n  const weakmap = new WeakMap();\n  weakmap.set(a, 42);\n  weakmap.set(b, 21);\n  assert.true(weakmap.has(a), 'WeakMap has values before .delete() #1');\n  assert.true(weakmap.has(b), 'WeakMap has values before .delete() #2');\n  weakmap.delete(a);\n  assert.false(weakmap.has(a), 'WeakMap has not value after .delete() #1');\n  assert.true(weakmap.has(b), 'WeakMap still has value after .delete() #2');\n  assert.notThrows(() => !weakmap.delete(1), 'return false on primitive');\n  const object = {};\n  weakmap.set(object, 42);\n  freeze(object);\n  assert.true(weakmap.has(object), 'works with frozen objects #1');\n  weakmap.delete(object);\n  assert.false(weakmap.has(object), 'works with frozen objects #2');\n});\n\nQUnit.test('WeakMap#get', assert => {\n  assert.isFunction(WeakMap.prototype.get);\n  assert.name(WeakMap.prototype.get, 'get');\n  if (NATIVE) assert.arity(WeakMap.prototype.get, 1);\n  assert.looksNative(WeakMap.prototype.get);\n  assert.nonEnumerable(WeakMap.prototype, 'get');\n  const weakmap = new WeakMap();\n  assert.same(weakmap.get({}), undefined, 'WeakMap .get() before .set() return undefined');\n  let object = {};\n  weakmap.set(object, 42);\n  assert.same(weakmap.get(object), 42, 'WeakMap .get() return value');\n  weakmap.delete(object);\n  assert.same(weakmap.get(object), undefined, 'WeakMap .get() after .delete() return undefined');\n  assert.notThrows(() => weakmap.get(1) === undefined, 'return undefined on primitive');\n  object = {};\n  weakmap.set(object, 42);\n  freeze(object);\n  assert.same(weakmap.get(object), 42, 'works with frozen objects #1');\n  weakmap.delete(object);\n  assert.same(weakmap.get(object), undefined, 'works with frozen objects #2');\n});\n\nQUnit.test('WeakMap#has', assert => {\n  assert.isFunction(WeakMap.prototype.has);\n  assert.name(WeakMap.prototype.has, 'has');\n  if (NATIVE) assert.arity(WeakMap.prototype.has, 1);\n  assert.looksNative(WeakMap.prototype.has);\n  assert.nonEnumerable(WeakMap.prototype, 'has');\n  const weakmap = new WeakMap();\n  assert.false(weakmap.has({}), 'WeakMap .has() before .set() return false');\n  let object = {};\n  weakmap.set(object, 42);\n  assert.true(weakmap.has(object), 'WeakMap .has() return true');\n  weakmap.delete(object);\n  assert.false(weakmap.has(object), 'WeakMap .has() after .delete() return false');\n  assert.notThrows(() => !weakmap.has(1), 'return false on primitive');\n  object = {};\n  weakmap.set(object, 42);\n  freeze(object);\n  assert.true(weakmap.has(object), 'works with frozen objects #1');\n  weakmap.delete(object);\n  assert.false(weakmap.has(object), 'works with frozen objects #2');\n});\n\nQUnit.test('WeakMap#set', assert => {\n  assert.isFunction(WeakMap.prototype.set);\n  assert.name(WeakMap.prototype.set, 'set');\n  assert.arity(WeakMap.prototype.set, 2);\n  assert.looksNative(WeakMap.prototype.set);\n  assert.nonEnumerable(WeakMap.prototype, 'set');\n  const weakmap = new WeakMap();\n  const object = {};\n  weakmap.set(object, 33);\n  assert.same(weakmap.get(object), 33, 'works with object as keys');\n  assert.same(weakmap.set({}, 42), weakmap, 'chaining');\n  assert.throws(() => new WeakMap().set(42, 42), 'throws with primitive keys');\n  const object1 = freeze({});\n  const object2 = {};\n  weakmap.set(object1, 42);\n  weakmap.set(object2, 42);\n  freeze(object);\n  assert.same(weakmap.get(object1), 42, 'works with frozen objects #1');\n  assert.same(weakmap.get(object2), 42, 'works with frozen objects #2');\n  weakmap.delete(object1);\n  weakmap.delete(object2);\n  assert.same(weakmap.get(object1), undefined, 'works with frozen objects #3');\n  assert.same(weakmap.get(object2), undefined, 'works with frozen objects #4');\n  const array = freeze([]);\n  weakmap.set(array, 42);\n  assert.same(weakmap.get(array), 42, 'works with frozen arrays #1');\n  if (FREEZING) assert.true(isFrozen(array), 'works with frozen arrays #2');\n});\n\nQUnit.test('WeakMap#@@toStringTag', assert => {\n  assert.same(WeakMap.prototype[Symbol.toStringTag], 'WeakMap', 'WeakMap::@@toStringTag is `WeakMap`');\n  assert.same(String(new WeakMap()), '[object WeakMap]', 'correct stringification');\n});\n"
  },
  {
    "path": "tests/unit-global/es.weak-set.js",
    "content": "import { DESCRIPTORS, GLOBAL, NATIVE } from '../helpers/constants.js';\nimport { createIterable, nativeSubclass } from '../helpers/helpers.js';\n\nconst Symbol = GLOBAL.Symbol || {};\nconst { freeze, keys, getOwnPropertyNames, getOwnPropertySymbols } = Object;\nconst { ownKeys } = GLOBAL.Reflect || {};\n\nQUnit.test('WeakSet', assert => {\n  assert.isFunction(WeakSet);\n  assert.name(WeakSet, 'WeakSet');\n  assert.arity(WeakSet, 0);\n  assert.looksNative(WeakSet);\n  assert.true('add' in WeakSet.prototype, 'add in WeakSet.prototype');\n  assert.true('delete' in WeakSet.prototype, 'delete in WeakSet.prototype');\n  assert.true('has' in WeakSet.prototype, 'has in WeakSet.prototype');\n  assert.true(new WeakSet() instanceof WeakSet, 'new WeakSet instanceof WeakSet');\n  let object = {};\n  assert.true(new WeakSet(createIterable([object])).has(object), 'Init from iterable');\n  const weakset = new WeakSet();\n  const frozen = freeze({});\n  weakset.add(frozen);\n  assert.true(weakset.has(frozen), 'works with frozen objects, #1');\n  weakset.delete(frozen);\n  assert.false(weakset.has(frozen), 'works with frozen objects, #2');\n  let done = false;\n  try {\n    new WeakSet(createIterable([null, 1, 2], {\n      return() {\n        return done = true;\n      },\n    }));\n  } catch { /* empty */ }\n  assert.true(done, '.return #throw');\n  assert.false('clear' in WeakSet.prototype, 'should not contains `.clear` method');\n  const array = [];\n  done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return [][Symbol.iterator].call(this);\n  };\n  new WeakSet(array);\n  assert.true(done);\n  object = {};\n  new WeakSet().add(object);\n  if (DESCRIPTORS) {\n    const results = [];\n    for (const key in object) results.push(key);\n    assert.arrayEqual(results, []);\n    assert.arrayEqual(keys(object), []);\n  }\n  assert.arrayEqual(getOwnPropertyNames(object), []);\n  if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []);\n  if (ownKeys) assert.arrayEqual(ownKeys(object), []);\n  if (nativeSubclass) {\n    const Subclass = nativeSubclass(WeakSet);\n    assert.true(new Subclass() instanceof Subclass, 'correct subclassing with native classes #1');\n    assert.true(new Subclass() instanceof WeakSet, 'correct subclassing with native classes #2');\n    object = {};\n    assert.true(new Subclass().add(object).has(object), 'correct subclassing with native classes #3');\n  }\n\n  const buffer = new ArrayBuffer(8);\n  const set = new WeakSet([buffer]);\n  assert.true(set.has(buffer), 'works with ArrayBuffer keys');\n});\n\nQUnit.test('WeakSet#add', assert => {\n  assert.isFunction(WeakSet.prototype.add);\n  assert.name(WeakSet.prototype.add, 'add');\n  assert.arity(WeakSet.prototype.add, 1);\n  assert.looksNative(WeakSet.prototype.add);\n  assert.nonEnumerable(WeakSet.prototype, 'add');\n  const weakset = new WeakSet();\n  assert.same(weakset.add({}), weakset, 'chaining');\n  assert.throws(() => new WeakSet().add(42), 'throws with primitive keys');\n});\n\nQUnit.test('WeakSet#delete', assert => {\n  assert.isFunction(WeakSet.prototype.delete);\n  assert.arity(WeakSet.prototype.delete, 1);\n  if (NATIVE) assert.name(WeakSet.prototype.delete, 'delete');\n  assert.looksNative(WeakSet.prototype.delete);\n  assert.nonEnumerable(WeakSet.prototype, 'delete');\n  const a = {};\n  const b = {};\n  const weakset = new WeakSet().add(a).add(b);\n  assert.true(weakset.has(a), 'WeakSet has values before .delete() #1');\n  assert.true(weakset.has(b), 'WeakSet has values before .delete() #2');\n  weakset.delete(a);\n  assert.false(weakset.has(a), 'WeakSet has not value after .delete() #1');\n  assert.true(weakset.has(b), 'WeakSet still has value after .delete() #2');\n  assert.notThrows(() => !weakset.delete(1), 'return false on primitive');\n});\n\nQUnit.test('WeakSet#has', assert => {\n  assert.isFunction(WeakSet.prototype.has);\n  assert.name(WeakSet.prototype.has, 'has');\n  assert.arity(WeakSet.prototype.has, 1);\n  assert.looksNative(WeakSet.prototype.has);\n  assert.nonEnumerable(WeakSet.prototype, 'has');\n  const weakset = new WeakSet();\n  assert.false(weakset.has({}), 'WeakSet has`nt value');\n  const object = {};\n  weakset.add(object);\n  assert.true(weakset.has(object), 'WeakSet has value after .add()');\n  weakset.delete(object);\n  assert.false(weakset.has(object), 'WeakSet has not value after .delete()');\n  assert.notThrows(() => !weakset.has(1), 'return false on primitive');\n});\n\nQUnit.test('WeakSet#@@toStringTag', assert => {\n  assert.same(WeakSet.prototype[Symbol.toStringTag], 'WeakSet', 'WeakSet#@@toStringTag is `WeakSet`');\n  assert.same(String(new WeakSet()), '[object WeakSet]', 'correct stringification');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.array.filter-out.js",
    "content": "// TODO: Remove from `core-js@4`\nimport { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#filterOut', assert => {\n  const { filterOut } = Array.prototype;\n  assert.isFunction(filterOut);\n  assert.arity(filterOut, 1);\n  assert.name(filterOut, 'filterOut');\n  assert.looksNative(filterOut);\n  assert.nonEnumerable(Array.prototype, 'filterOut');\n  let array = [1];\n  const context = {};\n  array.filterOut(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.deepEqual([1, 2, 3, 'q', {}, 4, true, 5].filterOut(it => typeof it != 'number'), [1, 2, 3, 4, 5]);\n  if (STRICT) {\n    assert.throws(() => filterOut.call(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => filterOut.call(undefined, () => { /* empty */ }), TypeError);\n  }\n  assert.notThrows(() => filterOut.call({\n    length: -1,\n    0: 1,\n  }, () => {\n    throw new Error();\n  }), 'uses ToLength');\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(array.filterOut(Boolean).foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.array.filter-reject.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#filterReject', assert => {\n  const { filterReject } = Array.prototype;\n  assert.isFunction(filterReject);\n  assert.arity(filterReject, 1);\n  assert.name(filterReject, 'filterReject');\n  assert.looksNative(filterReject);\n  assert.nonEnumerable(Array.prototype, 'filterReject');\n  let array = [1];\n  const context = {};\n  array.filterReject(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.deepEqual([1, 2, 3, 'q', {}, 4, true, 5].filterReject(it => typeof it != 'number'), [1, 2, 3, 4, 5]);\n  if (STRICT) {\n    assert.throws(() => filterReject.call(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => filterReject.call(undefined, () => { /* empty */ }), TypeError);\n  }\n  assert.notThrows(() => filterReject.call({\n    length: -1,\n    0: 1,\n  }, () => {\n    throw new Error();\n  }), 'uses ToLength');\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(array.filterReject(Boolean).foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.array.group-by-to-map.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nconst { from } = Array;\n\nQUnit.test('Array#groupByToMap', assert => {\n  const { groupByToMap } = Array.prototype;\n  assert.isFunction(groupByToMap);\n  assert.name(groupByToMap, 'groupToMap');\n  assert.arity(groupByToMap, 1);\n  assert.looksNative(groupByToMap);\n  assert.nonEnumerable(Array.prototype, 'groupByToMap');\n  let array = [1];\n  const context = {};\n  array.groupByToMap(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.true([].groupByToMap(it => it) instanceof Map, 'returns Map');\n  assert.deepEqual(from([1, 2, 3].groupByToMap(it => it % 2)), [[1, [1, 3]], [0, [2]]], '#1');\n  assert.deepEqual(\n    from([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].groupByToMap(it => `i${ it % 5 }`)),\n    [['i1', [1, 6, 11]], ['i2', [2, 7, 12]], ['i3', [3, 8]], ['i4', [4, 9]], ['i0', [5, 10]]],\n    '#2',\n  );\n  assert.deepEqual(from(Array(3).groupByToMap(it => it)), [[undefined, [undefined, undefined, undefined]]], '#3');\n  if (STRICT) {\n    assert.throws(() => groupByToMap.call(null, () => { /* empty */ }), TypeError, 'null this -> TypeError');\n    assert.throws(() => groupByToMap.call(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError');\n  }\n  array = [1];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(array.groupByToMap(Boolean).get(true).foo, undefined, 'no @@species');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.array.group-by.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nconst { getPrototypeOf } = Object;\n\nQUnit.test('Array#groupBy', assert => {\n  const { groupBy } = Array.prototype;\n  assert.isFunction(groupBy);\n  assert.arity(groupBy, 1);\n  assert.name(groupBy, 'groupBy');\n  assert.looksNative(groupBy);\n  assert.nonEnumerable(Array.prototype, 'groupBy');\n  let array = [1];\n  const context = {};\n  array.groupBy(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.same(getPrototypeOf([].groupBy(it => it)), null, 'null proto');\n  assert.deepEqual([1, 2, 3].groupBy(it => it % 2), { 1: [1, 3], 0: [2] }, '#1');\n  assert.deepEqual(\n    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].groupBy(it => `i${ it % 5 }`),\n    { i1: [1, 6, 11], i2: [2, 7, 12], i3: [3, 8], i4: [4, 9], i0: [5, 10] },\n    '#2',\n  );\n  assert.deepEqual(Array(3).groupBy(it => it), { undefined: [undefined, undefined, undefined] }, '#3');\n  if (STRICT) {\n    assert.throws(() => groupBy.call(null, () => { /* empty */ }), TypeError, 'null this -> TypeError');\n    assert.throws(() => groupBy.call(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError');\n  }\n  array = [1];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(array.groupBy(Boolean).true.foo, undefined, 'no @@species');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.array.group-to-map.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nconst { from } = Array;\n\nQUnit.test('Array#groupToMap', assert => {\n  const { groupToMap } = Array.prototype;\n  assert.isFunction(groupToMap);\n  assert.arity(groupToMap, 1);\n  assert.name(groupToMap, 'groupToMap');\n  assert.looksNative(groupToMap);\n  assert.nonEnumerable(Array.prototype, 'groupToMap');\n  let array = [1];\n  const context = {};\n  array.groupToMap(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.true([].groupToMap(it => it) instanceof Map, 'returns Map');\n  assert.deepEqual(from([1, 2, 3].groupToMap(it => it % 2)), [[1, [1, 3]], [0, [2]]], '#1');\n  assert.deepEqual(\n    from([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].groupToMap(it => `i${ it % 5 }`)),\n    [['i1', [1, 6, 11]], ['i2', [2, 7, 12]], ['i3', [3, 8]], ['i4', [4, 9]], ['i0', [5, 10]]],\n    '#2',\n  );\n  assert.deepEqual(from(Array(3).groupToMap(it => it)), [[undefined, [undefined, undefined, undefined]]], '#3');\n  if (STRICT) {\n    assert.throws(() => groupToMap.call(null, () => { /* empty */ }), TypeError, 'null this -> TypeError');\n    assert.throws(() => groupToMap.call(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError');\n  }\n  array = [1];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(array.groupToMap(Boolean).get(true).foo, undefined, 'no @@species');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.array.group.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nconst { getPrototypeOf } = Object;\n\nQUnit.test('Array#group', assert => {\n  const { group } = Array.prototype;\n  assert.isFunction(group);\n  assert.arity(group, 1);\n  assert.name(group, 'group');\n  assert.looksNative(group);\n  assert.nonEnumerable(Array.prototype, 'group');\n  let array = [1];\n  const context = {};\n  array.group(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.same(getPrototypeOf([].group(it => it)), null, 'null proto');\n  assert.deepEqual([1, 2, 3].group(it => it % 2), { 1: [1, 3], 0: [2] }, '#1');\n  assert.deepEqual(\n    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].group(it => `i${ it % 5 }`),\n    { i1: [1, 6, 11], i2: [2, 7, 12], i3: [3, 8], i4: [4, 9], i0: [5, 10] },\n    '#2',\n  );\n  assert.deepEqual(Array(3).group(it => it), { undefined: [undefined, undefined, undefined] }, '#3');\n  if (STRICT) {\n    assert.throws(() => group.call(null, () => { /* empty */ }), TypeError, 'null this -> TypeError');\n    assert.throws(() => group.call(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError');\n  }\n  array = [1];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(array.group(Boolean).true.foo, undefined, 'no @@species');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.array.is-template-object.js",
    "content": "QUnit.test('Array.isTemplateObject', assert => {\n  const { isTemplateObject } = Array;\n  const { freeze } = Object;\n\n  assert.isFunction(isTemplateObject);\n  assert.arity(isTemplateObject, 1);\n  assert.name(isTemplateObject, 'isTemplateObject');\n  assert.looksNative(isTemplateObject);\n  assert.nonEnumerable(Array, 'isTemplateObject');\n\n  assert.false(isTemplateObject(undefined));\n  assert.false(isTemplateObject(null));\n  assert.false(isTemplateObject({}));\n  assert.false(isTemplateObject(function () {\n    // eslint-disable-next-line prefer-rest-params -- required for testing\n    return arguments;\n  }()));\n  assert.false(isTemplateObject([]));\n  assert.false(isTemplateObject(freeze([])), 'frozen string array without .raw should return false #1');\n  assert.false(isTemplateObject(freeze(['hello'])), 'frozen string array without .raw should return false #2');\n\n  const template = (() => {\n    try {\n      // eslint-disable-next-line no-template-curly-in-string -- safe\n      return Function('return (it => it)`qwe${ 123 }asd`')();\n    } catch { /* empty */ }\n  })();\n\n  if (template) assert.true(isTemplateObject(template));\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.array.last-index.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Array#lastIndex', assert => {\n  const descriptor = Object.getOwnPropertyDescriptor(Array.prototype, 'lastIndex');\n  assert.isFunction(descriptor.get);\n  assert.false(descriptor.enumerable);\n  assert.true(descriptor.configurable);\n  assert.same([1, 2, 3].lastIndex, 2);\n  assert.same([].lastIndex, 0);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.array.last-item.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('Array#lastItem', assert => {\n  const descriptor = Object.getOwnPropertyDescriptor(Array.prototype, 'lastItem');\n  assert.isFunction(descriptor.get);\n  assert.isFunction(descriptor.set);\n  assert.false(descriptor.enumerable);\n  assert.true(descriptor.configurable);\n  assert.same([1, 2, 3].lastItem, 3);\n  assert.same([].lastItem, undefined);\n  let array = [1, 2, 3];\n  array.lastItem = 4;\n  assert.deepEqual(array, [1, 2, 4]);\n  array = [];\n  array.lastItem = 5;\n  assert.deepEqual(array, [5]);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.array.unique-by.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Array#uniqueBy', assert => {\n  const { uniqueBy } = Array.prototype;\n  assert.isFunction(uniqueBy);\n  assert.arity(uniqueBy, 1);\n  assert.name(uniqueBy, 'uniqueBy');\n  assert.looksNative(uniqueBy);\n  assert.nonEnumerable(Array.prototype, 'uniqueBy');\n\n  let array = [1, 2, 3, 2, 1];\n  assert.notSame(array.uniqueBy(), array);\n  assert.deepEqual(array.uniqueBy(), [1, 2, 3]);\n\n  array = [\n    {\n      id: 1,\n      uid: 10000,\n    },\n    {\n      id: 2,\n      uid: 10000,\n    },\n    {\n      id: 3,\n      uid: 10001,\n    },\n  ];\n\n  assert.deepEqual(array.uniqueBy(it => it.uid), [\n    {\n      id: 1,\n      uid: 10000,\n    },\n    {\n      id: 3,\n      uid: 10001,\n    },\n  ]);\n\n  assert.deepEqual(array.uniqueBy(({ id, uid }) => `${ id }-${ uid }`), array);\n\n  assert.deepEqual([1, undefined, 2, undefined, null, 1].uniqueBy(), [1, undefined, 2, null]);\n\n  assert.deepEqual([0, -0].uniqueBy(), [0]);\n  assert.deepEqual([NaN, NaN].uniqueBy(), [NaN]);\n\n  assert.deepEqual(uniqueBy.call({ length: 1, 0: 1 }), [1]);\n\n  if (STRICT) {\n    assert.throws(() => uniqueBy.call(null), TypeError);\n    assert.throws(() => uniqueBy.call(undefined), TypeError);\n  }\n  assert.true('uniqueBy' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.as-indexed-pairs.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nQUnit.test('AsyncIterator#asIndexedPairs', assert => {\n  const { asIndexedPairs } = AsyncIterator.prototype;\n\n  assert.isFunction(asIndexedPairs);\n  assert.arity(asIndexedPairs, 0);\n  // assert.name(asIndexedPairs, 'asIndexedPairs');\n  assert.looksNative(asIndexedPairs);\n  assert.nonEnumerable(AsyncIterator.prototype, 'asIndexedPairs');\n\n  if (STRICT) {\n    assert.throws(() => asIndexedPairs.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => asIndexedPairs.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  return asIndexedPairs.call(createIterator(['a', 'b', 'c'])).toArray().then(it => {\n    assert.same(it.toString(), '0,a,1,b,2,c', 'basic functionality');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.constructor.js",
    "content": "import { nativeSubclass } from '../helpers/helpers.js';\n\nconst { getPrototypeOf } = Object;\n\nQUnit.test('AsyncIterator', assert => {\n  assert.isFunction(AsyncIterator);\n  assert.arity(AsyncIterator, 0);\n  assert.name(AsyncIterator, 'AsyncIterator');\n  assert.looksNative(AsyncIterator);\n\n  const asyncGenerator = (() => {\n    try {\n      return Function('return async function*(){}()')();\n    } catch { /* empty */ }\n  })();\n\n  if (asyncGenerator && globalThis.USE_FUNCTION_CONSTRUCTOR) {\n    const proto = getPrototypeOf(getPrototypeOf(getPrototypeOf(asyncGenerator)));\n    if (proto !== Object.prototype && proto !== null) {\n      assert.true(asyncGenerator instanceof AsyncIterator, 'AsyncGenerator');\n    }\n  }\n\n  assert.true(AsyncIterator.from([1, 2, 3]) instanceof AsyncIterator, 'Async From Proxy');\n  assert.true(AsyncIterator.from([1, 2, 3]).drop(1) instanceof AsyncIterator, 'Async Drop Proxy');\n\n  if (nativeSubclass) {\n    const Sub = nativeSubclass(AsyncIterator);\n    assert.true(new Sub() instanceof AsyncIterator, 'abstract constructor');\n  }\n\n  assert.throws(() => new AsyncIterator(), 'direct constructor throws');\n  assert.throws(() => AsyncIterator(), 'throws w/o `new`');\n});\n\nQUnit.test('AsyncIterator#constructor', assert => {\n  assert.same(AsyncIterator.prototype.constructor, AsyncIterator, 'AsyncIterator#constructor is AsyncIterator');\n});\n\nQUnit.test('AsyncIterator#@@toStringTag', assert => {\n  assert.same(AsyncIterator.prototype[Symbol.toStringTag], 'AsyncIterator', 'AsyncIterator::@@toStringTag is `AsyncIterator`');\n  assert.same(String(AsyncIterator.from([1, 2, 3])), '[object AsyncIterator]', 'correct stringification');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.drop.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nQUnit.test('AsyncIterator#drop', assert => {\n  const { drop } = AsyncIterator.prototype;\n\n  assert.isFunction(drop);\n  assert.arity(drop, 1);\n  assert.name(drop, 'drop');\n  assert.looksNative(drop);\n  assert.nonEnumerable(AsyncIterator.prototype, 'drop');\n\n  if (STRICT) {\n    assert.throws(() => drop.call(undefined, 1), TypeError);\n    assert.throws(() => drop.call(null, 1), TypeError);\n  }\n\n  assert.throws(() => drop.call(createIterator([1, 2, 3]), -1), RangeError, 'negative');\n  assert.throws(() => drop.call(createIterator([1, 2, 3]), NaN), RangeError, 'NaN');\n\n  return drop.call(createIterator([1, 2, 3]), 1).toArray().then(it => {\n    assert.arrayEqual(it, [2, 3], 'basic functionality');\n    return drop.call(createIterator([1, 2, 3]), 1.5).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [2, 3], 'float');\n    return drop.call(createIterator([1, 2, 3]), 4).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [], 'big');\n    return drop.call(createIterator([1, 2, 3]), 0).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [1, 2, 3], 'zero');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.every.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('AsyncIterator#every', assert => {\n  const { every } = AsyncIterator.prototype;\n\n  assert.isFunction(every);\n  assert.arity(every, 1);\n  assert.name(every, 'every');\n  assert.looksNative(every);\n  assert.nonEnumerable(AsyncIterator.prototype, 'every');\n\n  if (STRICT) {\n    assert.throws(() => every.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => every.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => every.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => every.call(createIterator([1]), null), TypeError);\n  assert.throws(() => every.call(createIterator([1]), {}), TypeError);\n\n  const counters = [];\n\n  return every.call(createIterator([1, 2, 3]), it => typeof it == 'number').then(result => {\n    assert.true(result, 'basic functionality, +');\n    return every.call(createIterator([1, 2, 3]), it => it === 2);\n  }).then(result => {\n    assert.false(result, 'basic functionality, -');\n    return every.call(createIterator([1, 2, 3]), (value, counter) => {\n      counters.push(counter);\n      return true;\n    });\n  }).then(() => {\n    assert.arrayEqual(counters, [0, 1, 2], 'counter incremented');\n    return every.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n    });\n  }).then(() => {\n    return every.call(createIterator([1]), () => { throw 42; });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  }).then(() => {\n    return every.call(\n      createIterator([1], { return() { throw 43; } }),\n      () => { throw 42; },\n    );\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error even if return() throws');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.filter.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('AsyncIterator#filter', assert => {\n  const { filter } = AsyncIterator.prototype;\n\n  assert.isFunction(filter);\n  assert.arity(filter, 1);\n  assert.name(filter, 'filter');\n  assert.looksNative(filter);\n  assert.nonEnumerable(AsyncIterator.prototype, 'filter');\n\n  if (STRICT) {\n    assert.throws(() => filter.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => filter.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => filter.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => filter.call(createIterator([1]), null), TypeError);\n  assert.throws(() => filter.call(createIterator([1]), {}), TypeError);\n\n  const counters = [];\n\n  return filter.call(createIterator([1, 2, 3]), it => it % 2).toArray().then(it => {\n    assert.arrayEqual(it, [1, 3], 'basic functionality');\n    return filter.call(createIterator([1, 2, 3]), (value, counter) => {\n      counters.push(counter);\n      return value;\n    }).toArray();\n  }).then(() => {\n    assert.arrayEqual(counters, [0, 1, 2], 'counter incremented');\n    return filter.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n    }).toArray();\n  }).then(() => {\n    return filter.call(createIterator([1]), () => { throw 42; }).toArray();\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.find.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('AsyncIterator#find', assert => {\n  const { find } = AsyncIterator.prototype;\n\n  assert.isFunction(find);\n  assert.arity(find, 1);\n  assert.name(find, 'find');\n  assert.looksNative(find);\n  assert.nonEnumerable(AsyncIterator.prototype, 'find');\n\n  if (STRICT) {\n    assert.throws(() => find.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => find.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => find.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => find.call(createIterator([1]), null), TypeError);\n  assert.throws(() => find.call(createIterator([1]), {}), TypeError);\n\n  const counters = [];\n\n  return find.call(createIterator([2, 3, 4]), it => it % 2).then(result => {\n    assert.same(result, 3, 'basic functionality, +');\n    return find.call(createIterator([1, 2, 3]), it => it === 4);\n  }).then(result => {\n    assert.same(result, undefined, 'basic functionality, -');\n    return find.call(createIterator([1, 2, 3]), (value, counter) => {\n      counters.push(counter);\n      return false;\n    });\n  }).then(() => {\n    assert.arrayEqual(counters, [0, 1, 2], 'counter incremented');\n    return find.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n    });\n  }).then(() => {\n    return find.call(createIterator([1]), () => { throw 42; });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  }).then(() => {\n    return find.call(\n      createIterator([1], { return() { throw 43; } }),\n      () => { throw 42; },\n    );\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error even if return() throws');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.flat-map.js",
    "content": "import { createIterator, createIterable } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nconst { from } = AsyncIterator;\n\nQUnit.test('AsyncIterator#flatMap', assert => {\n  const { flatMap } = AsyncIterator.prototype;\n\n  assert.isFunction(flatMap);\n  assert.arity(flatMap, 1);\n  assert.name(flatMap, 'flatMap');\n  assert.looksNative(flatMap);\n  assert.nonEnumerable(AsyncIterator.prototype, 'flatMap');\n\n  if (STRICT) {\n    assert.throws(() => flatMap.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => flatMap.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => flatMap.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => flatMap.call(createIterator([1]), null), TypeError);\n  assert.throws(() => flatMap.call(createIterator([1]), {}), TypeError);\n\n  return flatMap.call(createIterator([1, [], 2, createIterable([3, 4]), [5, 6]]), it => typeof it == 'number' ? [-it] : it).toArray().then(it => {\n    assert.arrayEqual(it, [-1, -2, 3, 4, 5, 6], 'basic functionality');\n    return flatMap.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n      return [arg];\n    }).toArray();\n  }).then(() => {\n    return flatMap.call(createIterator([1]), () => { throw 42; }).toArray();\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  });\n});\n\nQUnit.test('AsyncIterator#flatMap, inner iterator async close on return', assert => {\n  assert.expect(3);\n  const async = assert.async();\n\n  let innerReturnAwaited = false;\n\n  const outer = from({\n    next() {\n      return Promise.resolve({ value: [1, 2, 3], done: false });\n    },\n    return() {\n      assert.true(innerReturnAwaited, 'inner return() fully awaited before outer return()');\n      return Promise.resolve({ value: undefined, done: true });\n    },\n    [Symbol.asyncIterator]() { return this; },\n  });\n\n  const helper = outer.flatMap(arr => {\n    let i = 0;\n    return {\n      next() {\n        return Promise.resolve(i < arr.length\n          ? { value: arr[i++], done: false }\n          : { value: undefined, done: true });\n      },\n      return() {\n        assert.required('inner return() called');\n        return new Promise(resolve => {\n          setTimeout(() => {\n            innerReturnAwaited = true;\n            resolve({ value: undefined, done: true });\n          }, 50);\n        });\n      },\n      [Symbol.asyncIterator]() { return this; },\n    };\n  });\n\n  helper.next().then(first => {\n    assert.same(first.value, 1, 'got first value');\n    return helper.return();\n  }).then(() => {\n    async();\n  }, () => {\n    assert.avoid();\n    async();\n  });\n});\n\nQUnit.test('AsyncIterator#flatMap, return() validates inner return result', assert => {\n  assert.expect(1);\n  const async = assert.async();\n\n  const outer = from({\n    next() {\n      return Promise.resolve({ value: [1, 2], done: false });\n    },\n    return() {\n      return Promise.resolve({ value: undefined, done: true });\n    },\n    [Symbol.asyncIterator]() { return this; },\n  });\n\n  const helper = outer.flatMap(arr => {\n    let i = 0;\n    return {\n      next() {\n        return Promise.resolve(i < arr.length\n          ? { value: arr[i++], done: false }\n          : { value: undefined, done: true });\n      },\n      return() {\n        return null;\n      },\n      [Symbol.asyncIterator]() { return this; },\n    };\n  });\n\n  helper.next().then(() => {\n    return helper.return();\n  }).then(() => {\n    assert.avoid();\n    async();\n  }, error => {\n    assert.true(error instanceof TypeError, 'TypeError when inner return() returns non-object');\n    async();\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.for-each.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('AsyncIterator#forEach', assert => {\n  const { forEach } = AsyncIterator.prototype;\n\n  assert.isFunction(forEach);\n  assert.arity(forEach, 1);\n  assert.name(forEach, 'forEach');\n  assert.looksNative(forEach);\n  assert.nonEnumerable(AsyncIterator.prototype, 'forEach');\n\n  if (STRICT) {\n    assert.throws(() => forEach.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => forEach.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => forEach.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => forEach.call(createIterator([1]), null), TypeError);\n  assert.throws(() => forEach.call(createIterator([1]), {}), TypeError);\n\n  const array = [];\n  const counters = [];\n\n  return forEach.call(createIterator([1, 2, 3]), it => array.push(it)).then(() => {\n    assert.arrayEqual(array, [1, 2, 3], 'basic functionality');\n    return forEach.call(createIterator([1, 2, 3]), (value, counter) => counters.push(counter));\n  }).then(() => {\n    assert.arrayEqual(counters, [0, 1, 2], 'counter incremented');\n    return forEach.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n    });\n  }).then(() => {\n    return forEach.call(createIterator([1]), () => { throw 42; });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  }).then(() => {\n    return forEach.call(\n      createIterator([1], { return() { throw 43; } }),\n      () => { throw 42; },\n    );\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error even if return() throws');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.from.js",
    "content": "const { assign, create } = Object;\n\nQUnit.test('AsyncIterator.from', assert => {\n  const { from } = AsyncIterator;\n\n  assert.isFunction(from);\n  assert.arity(from, 1);\n  assert.name(from, 'from');\n  assert.looksNative(from);\n  assert.nonEnumerable(AsyncIterator, 'from');\n\n  assert.true(AsyncIterator.from([].values()) instanceof AsyncIterator, 'proxy, iterator');\n\n  assert.true(AsyncIterator.from([]) instanceof AsyncIterator, 'proxy, iterable');\n\n  const asyncIterator = assign(create(AsyncIterator.prototype), {\n    next: () => { /* empty */ },\n  });\n\n  assert.same(AsyncIterator.from(asyncIterator), asyncIterator, 'does not wrap AsyncIterator instances');\n\n  assert.throws(() => from(undefined), TypeError);\n  assert.throws(() => from(null), TypeError);\n\n  const closableIterator = {\n    closed: false,\n    [Symbol.iterator]() { return this; },\n    next() {\n      return { value: Promise.reject(42), done: false };\n    },\n    return() {\n      this.closed = true;\n      return { value: undefined, done: true };\n    },\n  };\n\n  return AsyncIterator.from([1, Promise.resolve(2), 3]).toArray().then(result => {\n    assert.arrayEqual(result, [1, 2, 3], 'unwrap promises');\n  }).then(() => {\n    return from(Iterator.from(closableIterator)).toArray();\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a `.next()` promise rejection');\n    assert.true(closableIterator.closed, 'closes sync iterator on promise rejection');\n  });\n});\n\nQUnit.test('AsyncIterator.from, sync iterator value forwarding', assert => {\n  assert.expect(5);\n  const async = assert.async();\n\n  function * gen() {\n    const x = yield 1;\n    yield x;\n  }\n\n  const asyncIter = AsyncIterator.from(gen());\n\n  asyncIter.next().then(r1 => {\n    assert.same(r1.value, 1, 'first yield value');\n    assert.false(r1.done, 'not done after first yield');\n    return asyncIter.next(42);\n  }).then(r2 => {\n    assert.same(r2.value, 42, 'next(value) forwarded to sync generator');\n    assert.false(r2.done, 'not done after second yield');\n    return asyncIter.next();\n  }).then(r3 => {\n    assert.true(r3.done, 'done after generator completes');\n    async();\n  }).catch(() => {\n    assert.avoid();\n    async();\n  });\n});\n\nQUnit.test('AsyncIterator.from, sync iterator throw forwarding', assert => {\n  assert.expect(2);\n  const async = assert.async();\n\n  function * gen() {\n    try {\n      yield 1;\n    } catch (error) {\n      yield `caught: ${ error }`;\n    }\n  }\n\n  const asyncIter = AsyncIterator.from(gen());\n\n  asyncIter.next().then(() => {\n    return asyncIter.throw('boom');\n  }).then(result => {\n    assert.same(result.value, 'caught: boom', 'throw(value) forwarded to sync generator');\n    assert.false(result.done, 'not done after catch yield');\n    async();\n  }).catch(() => {\n    assert.avoid();\n    async();\n  });\n});\n\nQUnit.test('AsyncIterator.from, throw closes iterator without throw method', assert => {\n  assert.expect(2);\n  const async = assert.async();\n\n  let closeCalled = false;\n\n  const iter = AsyncIterator.from({\n    next() { return { value: 1, done: false }; },\n    return() { closeCalled = true; return { value: undefined, done: true }; },\n    [Symbol.iterator]() { return this; },\n  });\n\n  iter.next().then(() => {\n    return iter.throw('error');\n  }).then(() => {\n    assert.avoid();\n    async();\n  }, error => {\n    assert.true(error instanceof TypeError, 'rejects with new TypeError');\n    assert.true(closeCalled, 'closes iterator when no throw method');\n    async();\n  });\n});\n\nQUnit.test('AsyncIterator.from, return(value) without iterator return method', assert => {\n  assert.expect(2);\n  const async = assert.async();\n\n  const iter = AsyncIterator.from({\n    next() { return { value: 1, done: false }; },\n    [Symbol.iterator]() { return this; },\n  });\n\n  iter.return(42).then(result => {\n    assert.same(result.value, 42, 'return(value) forwards value when no return method');\n    assert.true(result.done, 'done is true');\n    async();\n  }).catch(() => {\n    assert.avoid();\n    async();\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.indexed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nQUnit.test('AsyncIterator#indexed', assert => {\n  const { indexed } = AsyncIterator.prototype;\n\n  assert.isFunction(indexed);\n  assert.arity(indexed, 0);\n  assert.name(indexed, 'indexed');\n  assert.looksNative(indexed);\n  assert.nonEnumerable(AsyncIterator.prototype, 'indexed');\n\n  if (STRICT) {\n    assert.throws(() => indexed.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => indexed.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  return indexed.call(createIterator(['a', 'b', 'c'])).toArray().then(it => {\n    assert.same(it.toString(), '0,a,1,b,2,c', 'basic functionality');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.map.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('AsyncIterator#map', assert => {\n  const { map } = AsyncIterator.prototype;\n\n  assert.isFunction(map);\n  assert.arity(map, 1);\n  assert.name(map, 'map');\n  assert.looksNative(map);\n  assert.nonEnumerable(AsyncIterator.prototype, 'map');\n\n  if (STRICT) {\n    assert.throws(() => map.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => map.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => map.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => map.call(createIterator([1]), null), TypeError);\n  assert.throws(() => map.call(createIterator([1]), {}), TypeError);\n\n  const counters = [];\n\n  return map.call(createIterator([1, 2, 3]), it => it ** 2).toArray().then(it => {\n    assert.arrayEqual(it, [1, 4, 9], 'basic functionality');\n    return map.call(createIterator([1, 2, 3]), (value, counter) => {\n      counters.push(counter);\n      return value;\n    }).toArray();\n  }).then(() => {\n    assert.arrayEqual(counters, [0, 1, 2], 'counter incremented');\n    return map.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n    }).toArray();\n  }).then(() => {\n    return map.call(createIterator([1]), () => { throw 42; }).toArray();\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  }).then(() => {\n    let calls = 0;\n    const iterator = createIterator([1, 2, 3], {\n      next() { calls++; throw 43; },\n    });\n    const mapped = map.call(iterator, it => it);\n    return mapped.next().then(() => {\n      assert.avoid();\n    }, error => {\n      assert.same(error, 43, 'rejection on next() sync error');\n      assert.same(calls, 1, 'next() called once');\n      return mapped.next();\n    }).then(result => {\n      assert.true(result.done, 'done after next() sync error');\n      assert.same(calls, 1, 'next() not called again after sync error');\n    });\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.reduce.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('AsyncIterator#reduce', assert => {\n  const { reduce } = AsyncIterator.prototype;\n\n  assert.isFunction(reduce);\n  assert.arity(reduce, 1);\n  assert.name(reduce, 'reduce');\n  assert.looksNative(reduce);\n  assert.nonEnumerable(AsyncIterator.prototype, 'reduce');\n\n  if (STRICT) {\n    assert.throws(() => reduce.call(undefined, () => { /* empty */ }, 1), TypeError);\n    assert.throws(() => reduce.call(null, () => { /* empty */ }, 1), TypeError);\n  }\n\n  assert.throws(() => reduce.call(createIterator([1]), undefined, 1), TypeError);\n  assert.throws(() => reduce.call(createIterator([1]), null, 1), TypeError);\n  assert.throws(() => reduce.call(createIterator([1]), {}, 1), TypeError);\n\n  return reduce.call(createIterator([1, 2, 3]), (a, b) => a + b, 1).then(it => {\n    assert.same(it, 7, 'basic functionality, initial');\n    return reduce.call(createIterator([2]), function (a, b, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 3, 'arguments length');\n      assert.same(a, 1, 'argument 1');\n      assert.same(b, 2, 'argument 2');\n      assert.same(counter, 0, 'counter');\n    }, 1);\n  }).then(() => {\n    return reduce.call(createIterator([1, 2, 3]), (a, b) => a + b);\n  }).then(it => {\n    assert.same(it, 6, 'basic functionality, no initial');\n    // counter increments unconditionally, so first reducer call gets counter=1\n    const countersNoInit = [];\n    return reduce.call(createIterator([10, 20, 30]), (a, b, counter) => {\n      countersNoInit.push(counter);\n      return a + b;\n    }).then(() => {\n      assert.deepEqual(countersNoInit, [1, 2], 'counter without initial value');\n    });\n  }).then(() => {\n    return reduce.call(createIterator([]), (a, b) => a + b);\n  }).catch(() => {\n    assert.required('reduce an empty iterable with no initial');\n    return reduce.call(createIterator([1]), () => { throw 42; }, 1);\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.some.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nQUnit.test('AsyncIterator#some', assert => {\n  const { some } = AsyncIterator.prototype;\n\n  assert.isFunction(some);\n  assert.arity(some, 1);\n  assert.name(some, 'some');\n  assert.looksNative(some);\n  assert.nonEnumerable(AsyncIterator.prototype, 'some');\n\n  if (STRICT) {\n    assert.throws(() => some.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => some.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => some.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => some.call(createIterator([1]), null), TypeError);\n  assert.throws(() => some.call(createIterator([1]), {}), TypeError);\n\n  const counters = [];\n\n  return some.call(createIterator([1, 2, 3]), it => it === 2).then(result => {\n    assert.true(result, 'basic functionality, +');\n    return some.call(createIterator([1, 2, 3]), it => it === 4);\n  }).then(result => {\n    assert.false(result, 'basic functionality, -');\n    return some.call(createIterator([1, 2, 3]), (value, counter) => {\n      counters.push(counter);\n      return false;\n    });\n  }).then(() => {\n    assert.arrayEqual(counters, [0, 1, 2], 'counter incremented');\n    return some.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n    });\n  }).then(() => {\n    return some.call(createIterator([1]), () => { throw 42; });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  }).then(() => {\n    return some.call(\n      createIterator([1], { return() { throw 43; } }),\n      () => { throw 42; },\n    );\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error even if return() throws');\n  }).then(() => {\n    return some.call(\n      createIterator([1, 2, 3], { return() { return 42; } }),\n      it => it === 1,\n    );\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof TypeError, 'rejects when return() yields non-object on normal close');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.take.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nQUnit.test('AsyncIterator#take', assert => {\n  const { take } = AsyncIterator.prototype;\n\n  assert.isFunction(take);\n  assert.arity(take, 1);\n  assert.name(take, 'take');\n  assert.looksNative(take);\n  assert.nonEnumerable(AsyncIterator.prototype, 'take');\n\n  if (STRICT) {\n    assert.throws(() => take.call(undefined, 1), TypeError);\n    assert.throws(() => take.call(null, 1), TypeError);\n  }\n\n  assert.throws(() => take.call(createIterator([1, 2, 3]), -1), RangeError, 'negative');\n  assert.throws(() => take.call(createIterator([1, 2, 3]), NaN), RangeError, 'NaN');\n\n  return take.call(createIterator([1, 2, 3]), 2).toArray().then(it => {\n    assert.arrayEqual(it, [1, 2], 'basic functionality');\n    return take.call(createIterator([1, 2, 3]), 1.5).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [1], 'float');\n    return take.call(createIterator([1, 2, 3]), 4).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [1, 2, 3], 'big');\n    return take.call(createIterator([1, 2, 3]), 0).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [], 'zero');\n  });\n});\n\nQUnit.test('AsyncIterator#take, return() does not pass extra argument', assert => {\n  assert.expect(2);\n  const async = assert.async();\n\n  let returnArgs;\n  const iter = {\n    i: 0,\n    next() { return { value: ++this.i, done: false }; },\n    return(...args) { returnArgs = args; return { value: undefined, done: true }; },\n    [Symbol.iterator]() { return this; },\n  };\n\n  AsyncIterator.from(iter).take(1).toArray().then(() => {\n    assert.same(returnArgs.length, 0, 'return() called with no arguments');\n    assert.true(true, 'take completes successfully');\n    async();\n  }).catch(() => {\n    assert.avoid();\n    async();\n  });\n});\n\nQUnit.test('AsyncIterator#take, return() result validated as object', assert => {\n  assert.expect(1);\n  const async = assert.async();\n\n  const iter = {\n    i: 0,\n    next() { return { value: ++this.i, done: false }; },\n    return() { return 42; },\n    [Symbol.iterator]() { return this; },\n  };\n\n  AsyncIterator.from(iter).take(1).toArray().then(() => {\n    assert.avoid();\n    async();\n  }).catch(error => {\n    assert.true(error instanceof TypeError, 'rejects with TypeError when return() gives non-object');\n    async();\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.async-iterator.to-array.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nQUnit.test('AsyncIterator#toArray', assert => {\n  const { toArray } = AsyncIterator.prototype;\n\n  assert.isFunction(toArray);\n  assert.arity(toArray, 0);\n  assert.name(toArray, 'toArray');\n  assert.looksNative(toArray);\n  assert.nonEnumerable(AsyncIterator.prototype, 'toArray');\n\n  if (STRICT) {\n    assert.throws(() => toArray.call(undefined), TypeError);\n    assert.throws(() => toArray.call(null), TypeError);\n  }\n\n  return toArray.call(createIterator([1, 2, 3])).then(it => {\n    assert.arrayEqual(it, [1, 2, 3]);\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.bigint.range.js",
    "content": "/* eslint-disable es/no-bigint -- safe */\nif (typeof BigInt == 'function') QUnit.test('BigInt.range', assert => {\n  const { range } = BigInt;\n  const { from } = Array;\n  assert.isFunction(range);\n  assert.name(range, 'range');\n  assert.arity(range, 3);\n  assert.looksNative(range);\n  assert.nonEnumerable(BigInt, 'range');\n\n  let iterator = range(BigInt(1), BigInt(2));\n\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.deepEqual(iterator.next(), {\n    value: BigInt(1),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n\n  assert.deepEqual(from(range(BigInt(-1), BigInt(5))), [BigInt(-1), BigInt(0), BigInt(1), BigInt(2), BigInt(3), BigInt(4)]);\n  assert.deepEqual(from(range(BigInt(-5), BigInt(1))), [BigInt(-5), BigInt(-4), BigInt(-3), BigInt(-2), BigInt(-1), BigInt(0)]);\n  assert.deepEqual(\n    from(range(BigInt('9007199254740991'), BigInt('9007199254740992'), { inclusive: true })),\n    [BigInt('9007199254740991'), BigInt('9007199254740992')],\n  );\n  assert.deepEqual(from(range(BigInt(0), BigInt(0))), []);\n  assert.deepEqual(from(range(BigInt(0), BigInt(-5), BigInt(1))), []);\n\n  iterator = range(BigInt(1), BigInt(3));\n  assert.deepEqual(iterator.start, BigInt(1));\n  assert.deepEqual(iterator.end, BigInt(3));\n  assert.deepEqual(iterator.step, BigInt(1));\n  assert.false(iterator.inclusive);\n\n  iterator = range(BigInt(-1), BigInt(-3), { inclusive: true });\n  assert.deepEqual(iterator.start, BigInt(-1));\n  assert.deepEqual(iterator.end, BigInt(-3));\n  assert.same(iterator.step, BigInt(-1));\n  assert.true(iterator.inclusive);\n\n  iterator = range(BigInt(-1), BigInt(-3), { step: BigInt(4), inclusive() { /* empty */ } });\n  assert.same(iterator.start, BigInt(-1));\n  assert.same(iterator.end, BigInt(-3));\n  assert.same(iterator.step, BigInt(4));\n  assert.true(iterator.inclusive);\n\n  iterator = range(BigInt(0), BigInt(5));\n  assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError);\n\n  assert.throws(() => range(Infinity, BigInt(10), BigInt(0)), TypeError);\n  assert.throws(() => range(-Infinity, BigInt(10), BigInt(0)), TypeError);\n  assert.throws(() => range(BigInt(0), BigInt(10), Infinity), TypeError);\n  assert.throws(() => range(BigInt(0), BigInt(10), { step: Infinity }), TypeError);\n\n  assert.throws(() => range({}, BigInt(1)), TypeError);\n  assert.throws(() => range(BigInt(1), {}), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.composite-key.js",
    "content": "\nimport { FREEZING } from '../helpers/constants.js';\n\nconst { getPrototypeOf, isFrozen } = Object;\n\nQUnit.test('compositeKey', assert => {\n  assert.isFunction(compositeKey);\n  assert.name(compositeKey, 'compositeKey');\n  assert.looksNative(compositeKey);\n\n  const key = compositeKey({});\n  assert.same(typeof key, 'object');\n  assert.same({}.toString.call(key), '[object Object]');\n  assert.same(getPrototypeOf(key), null);\n  if (FREEZING) assert.true(isFrozen(key));\n\n  const a = ['a'];\n  const b = ['b'];\n  const c = ['c'];\n\n  assert.same(compositeKey(a), compositeKey(a));\n  assert.notSame(compositeKey(a), compositeKey(['a']));\n  assert.notSame(compositeKey(a), compositeKey(a, 1));\n  assert.notSame(compositeKey(a), compositeKey(a, b));\n  assert.same(compositeKey(a, 1), compositeKey(a, 1));\n  assert.same(compositeKey(a, b), compositeKey(a, b));\n  assert.notSame(compositeKey(a, b), compositeKey(b, a));\n  assert.same(compositeKey(a, b, c), compositeKey(a, b, c));\n  assert.notSame(compositeKey(a, b, c), compositeKey(c, b, a));\n  assert.notSame(compositeKey(a, b, c), compositeKey(a, c, b));\n  assert.notSame(compositeKey(a, b, c, 1), compositeKey(a, b, c));\n  assert.same(compositeKey(a, b, c, 1), compositeKey(a, b, c, 1));\n  assert.same(compositeKey(1, a), compositeKey(1, a));\n  assert.notSame(compositeKey(1, a), compositeKey(a, 1));\n  assert.same(compositeKey(1, a, 2, b), compositeKey(1, a, 2, b));\n  assert.notSame(compositeKey(1, a, 2, b), compositeKey(1, a, b, 2));\n  assert.same(compositeKey(1, 2, a, b), compositeKey(1, 2, a, b));\n  assert.notSame(compositeKey(1, 2, a, b), compositeKey(1, a, b, 2));\n  assert.same(compositeKey(a, a), compositeKey(a, a));\n  assert.notSame(compositeKey(a, a), compositeKey(a, ['a']));\n  assert.notSame(compositeKey(a, a), compositeKey(a, b));\n\n  assert.throws(() => compositeKey(), TypeError);\n  assert.throws(() => compositeKey(1, 2), TypeError);\n  assert.throws(() => compositeKey('foo', null, true), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.composite-symbol.js",
    "content": "\nQUnit.test('compositeSymbol', assert => {\n  assert.isFunction(compositeSymbol);\n  assert.name(compositeSymbol, 'compositeSymbol');\n  assert.looksNative(compositeSymbol);\n\n  assert.true(Object(compositeSymbol({})) instanceof Symbol);\n\n  const a = ['a'];\n  const b = ['b'];\n  const c = ['c'];\n\n  assert.same(compositeSymbol(a), compositeSymbol(a));\n  assert.notSame(compositeSymbol(a), compositeSymbol(['a']));\n  assert.notSame(compositeSymbol(a), compositeSymbol(a, 1));\n  assert.notSame(compositeSymbol(a), compositeSymbol(a, b));\n  assert.same(compositeSymbol(a, 1), compositeSymbol(a, 1));\n  assert.same(compositeSymbol(a, b), compositeSymbol(a, b));\n  assert.notSame(compositeSymbol(a, b), compositeSymbol(b, a));\n  assert.same(compositeSymbol(a, b, c), compositeSymbol(a, b, c));\n  assert.notSame(compositeSymbol(a, b, c), compositeSymbol(c, b, a));\n  assert.notSame(compositeSymbol(a, b, c), compositeSymbol(a, c, b));\n  assert.notSame(compositeSymbol(a, b, c, 1), compositeSymbol(a, b, c));\n  assert.same(compositeSymbol(a, b, c, 1), compositeSymbol(a, b, c, 1));\n  assert.same(compositeSymbol(1, a), compositeSymbol(1, a));\n  assert.notSame(compositeSymbol(1, a), compositeSymbol(a, 1));\n  assert.same(compositeSymbol(1, a, 2, b), compositeSymbol(1, a, 2, b));\n  assert.notSame(compositeSymbol(1, a, 2, b), compositeSymbol(1, a, b, 2));\n  assert.same(compositeSymbol(1, 2, a, b), compositeSymbol(1, 2, a, b));\n  assert.notSame(compositeSymbol(1, 2, a, b), compositeSymbol(1, a, b, 2));\n  assert.same(compositeSymbol(a, a), compositeSymbol(a, a));\n  assert.notSame(compositeSymbol(a, a), compositeSymbol(a, ['a']));\n  assert.notSame(compositeSymbol(a, a), compositeSymbol(a, b));\n  assert.same(compositeSymbol(), compositeSymbol());\n  assert.same(compositeSymbol(1, 2), compositeSymbol(1, 2));\n  assert.notSame(compositeSymbol(1, 2), compositeSymbol(2, 1));\n  assert.same(compositeSymbol('foo', null, true), compositeSymbol('foo', null, true));\n  assert.same(compositeSymbol('string'), Symbol.for('string'));\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.data-view.set-uint8-clamped.js",
    "content": "import { DESCRIPTORS, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js';\n\nQUnit.test('DataView.prototype.{ getUint8Clamped, setUint8Clamped }', assert => {\n  const { getUint8Clamped, setUint8Clamped } = DataView.prototype;\n\n  assert.isFunction(getUint8Clamped);\n  assert.arity(getUint8Clamped, 1);\n  assert.name(getUint8Clamped, 'getUint8Clamped');\n\n  assert.isFunction(setUint8Clamped);\n  assert.arity(setUint8Clamped, 2);\n  assert.name(setUint8Clamped, 'setUint8Clamped');\n\n  assert.same(new DataView(new ArrayBuffer(8)).setUint8Clamped(0, 0), undefined, 'void');\n\n  function toString(it) {\n    return it === 0 && 1 / it === -Infinity ? '-0' : it;\n  }\n\n  const data = [\n    [0, 0, [0]],\n    [-0, 0, [0]],\n    [1, 1, [1]],\n    [-1, 0, [0]],\n    [1.1, 1, [1]],\n    [-1.1, 0, [0]],\n    [1.9, 2, [2]],\n    [-1.9, 0, [0]],\n    // round-half-to-even (banker's rounding)\n    [0.5, 0, [0]],\n    [1.5, 2, [2]],\n    [2.5, 2, [2]],\n    [3.5, 4, [4]],\n    [4.5, 4, [4]],\n    [253.5, 254, [254]],\n    [254.5, 254, [254]],\n    [127, 127, [127]],\n    [-127, 0, [0]],\n    [128, 128, [128]],\n    [-128, 0, [0]],\n    [255, 255, [255]],\n    [-255, 0, [0]],\n    [255.1, 255, [255]],\n    [255.9, 255, [255]],\n    [256, 255, [255]],\n    [32767, 255, [255]],\n    [-32767, 0, [0]],\n    [32768, 255, [255]],\n    [-32768, 0, [0]],\n    [65535, 255, [255]],\n    [65536, 255, [255]],\n    [65537, 255, [255]],\n    [65536.54321, 255, [255]],\n    [-65536.54321, 0, [0]],\n    [2147483647, 255, [255]],\n    [-2147483647, 0, [0]],\n    [2147483648, 255, [255]],\n    [-2147483648, 0, [0]],\n    [2147483649, 255, [255]],\n    [-2147483649, 0, [0]],\n    [4294967295, 255, [255]],\n    [4294967296, 255, [255]],\n    [4294967297, 255, [255]],\n    [MAX_SAFE_INTEGER, 255, [255]],\n    [MIN_SAFE_INTEGER, 0, [0]],\n    [MAX_SAFE_INTEGER + 1, 255, [255]],\n    [MIN_SAFE_INTEGER - 1, 0, [0]],\n    [MAX_SAFE_INTEGER + 3, 255, [255]],\n    [MIN_SAFE_INTEGER - 3, 0, [0]],\n    [Infinity, 255, [255]],\n    [-Infinity, 0, [0]],\n    [-Number.MAX_VALUE, 0, [0]],\n    [Number.MAX_VALUE, 255, [255]],\n    [Number.MIN_VALUE, 0, [0]],\n    [-Number.MIN_VALUE, 0, [0]],\n    [NaN, 0, [0]],\n  ];\n\n  const buffer = new ArrayBuffer(1);\n  const view = new DataView(buffer);\n  const array = DESCRIPTORS ? new Uint8Array(buffer) : null;\n\n  for (const [value, conversion, little] of data) {\n    view.setUint8Clamped(0, value);\n    assert.same(view.getUint8Clamped(0), conversion, `DataView.prototype.setUint8Clamped + DataView.prototype.getUint8Clamped, ${ toString(value) } -> ${ toString(conversion) }`);\n    assert.same(view.getUint8(0), conversion, `DataView.prototype.setUint8Clamped + DataView.prototype.getUint8, ${ toString(value) } -> ${ toString(conversion) }`);\n    if (DESCRIPTORS) assert.arrayEqual(array, little, `DataView.prototype.setUint8Clamped + Uint8Array ${ toString(value) } -> [${ little }]`);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.function.demethodize.js",
    "content": "QUnit.test('Function#demethodize', assert => {\n  const { demethodize } = Function.prototype;\n  assert.isFunction(demethodize);\n  assert.arity(demethodize, 0);\n  assert.name(demethodize, 'demethodize');\n  assert.looksNative(demethodize);\n  assert.nonEnumerable(Function.prototype, 'demethodize');\n  assert.same(function () { return 42; }.demethodize()(), 42);\n  assert.deepEqual(Array.prototype.slice.demethodize()([1, 2, 3], 1), [2, 3]);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.function.is-callable.js",
    "content": "import { fromSource } from '../helpers/helpers.js';\n\nQUnit.test('Function.isCallable', assert => {\n  const { isCallable } = Function;\n  assert.isFunction(isCallable);\n  assert.arity(isCallable, 1);\n  assert.name(isCallable, 'isCallable');\n  assert.looksNative(isCallable);\n  assert.nonEnumerable(Function, 'isCallable');\n  assert.false(isCallable({}), 'object');\n  assert.false(isCallable(function () {\n    // eslint-disable-next-line prefer-rest-params -- required for testing\n    return arguments;\n  }()), 'arguments');\n  assert.false(isCallable([]), 'array');\n  assert.false(isCallable(/./), 'regex');\n  assert.false(isCallable(1), 'number');\n  assert.false(isCallable(true), 'boolean');\n  assert.false(isCallable('1'), 'string');\n  assert.false(isCallable(null), 'null');\n  assert.false(isCallable(), 'undefined');\n  assert.true(isCallable(Function.call), 'native function');\n  // eslint-disable-next-line prefer-arrow-callback -- required\n  assert.true(isCallable(function () { /* empty */ }), 'function');\n\n  const arrow = fromSource('it => it');\n  if (arrow) assert.true(isCallable(arrow), 'arrow');\n  const klass = fromSource('class {}');\n  // Safari 9 and Edge 13- bugs\n  if (klass && !/constructor|function/.test(klass)) assert.false(isCallable(klass), 'class');\n  const gen = fromSource('function * () {}');\n  if (gen) assert.true(isCallable(gen), 'gen');\n  const asyncFunc = fromSource('async function () {}');\n  if (asyncFunc) assert.true(isCallable(asyncFunc), 'asyncFunc');\n  const asyncGen = fromSource('async function* () {}');\n  if (asyncGen) assert.true(isCallable(asyncGen), 'asyncGen');\n  const method = fromSource('({f(){}}).f');\n  // Safari 9 bug\n  if (method && !/function/.test(method)) assert.true(isCallable(method), 'method');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.function.is-constructor.js",
    "content": "import { fromSource } from '../helpers/helpers.js';\n\nQUnit.test('Function.isConstructor', assert => {\n  const { isConstructor } = Function;\n  assert.isFunction(isConstructor);\n  assert.arity(isConstructor, 1);\n  assert.name(isConstructor, 'isConstructor');\n  assert.looksNative(isConstructor);\n  assert.nonEnumerable(Function, 'isConstructor');\n  assert.false(isConstructor({}), 'object');\n  assert.false(isConstructor(function () {\n    // eslint-disable-next-line prefer-rest-params -- required for testing\n    return arguments;\n  }()), 'arguments');\n  assert.false(isConstructor([]), 'array');\n  assert.false(isConstructor(/./), 'regex');\n  assert.false(isConstructor(1), 'number');\n  assert.false(isConstructor(true), 'boolean');\n  assert.false(isConstructor('1'), 'string');\n  assert.false(isConstructor(null), 'null');\n  assert.false(isConstructor(), 'undefined');\n  // assert.false(isConstructor(Function.call), 'native function'); // fails in some old engines\n  // eslint-disable-next-line prefer-arrow-callback -- required\n  assert.true(isConstructor(function () { /* empty */ }), 'function');\n\n  const arrow = fromSource('it => it');\n  if (arrow) assert.false(isConstructor(arrow), 'arrow');\n  const klass = fromSource('class {}');\n  // Safari 9 and Edge 13- bugs\n  if (klass && !/constructor|function/.test(klass)) assert.true(isConstructor(klass), 'class');\n  const Gen = fromSource('function * () {}');\n  // V8 ~ Chrome 49- bug\n  if (Gen) try {\n    new Gen();\n  } catch {\n    assert.false(isConstructor(Gen), 'gen');\n  }\n  const asyncFunc = fromSource('async function () {}');\n  if (asyncFunc) assert.false(isConstructor(asyncFunc), 'asyncFunc');\n  const asyncGen = fromSource('async function* () {}');\n  if (asyncGen) assert.false(isConstructor(asyncGen), 'asyncGen');\n  const method = fromSource('({f(){}}).f');\n  // Safari 9 bug\n  if (method && !/function/.test(method)) assert.false(isConstructor(method), 'method');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.function.metadata.js",
    "content": "QUnit.test('Function#@@metadata', assert => {\n  assert.true(Symbol.metadata in Function.prototype);\n  assert.same(Function.prototype[Symbol.metadata], null, 'is null');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.function.un-this.js",
    "content": "QUnit.test('Function#unThis', assert => {\n  const { unThis } = Function.prototype;\n  assert.isFunction(unThis);\n  assert.arity(unThis, 0);\n  // assert.name(unThis, 'unThis');\n  assert.looksNative(unThis);\n  assert.nonEnumerable(Function.prototype, 'unThis');\n  assert.same(function () { return 42; }.unThis()(), 42);\n  assert.deepEqual(Array.prototype.slice.unThis()([1, 2, 3], 1), [2, 3]);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.iterator.as-indexed-pairs.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nQUnit.test('Iterator#asIndexedPairs', assert => {\n  const { asIndexedPairs } = Iterator.prototype;\n\n  assert.isFunction(asIndexedPairs);\n  assert.arity(asIndexedPairs, 0);\n  // assert.name(asIndexedPairs, 'asIndexedPairs');\n  assert.looksNative(asIndexedPairs);\n  assert.nonEnumerable(Iterator.prototype, 'asIndexedPairs');\n\n  assert.arrayEqual(asIndexedPairs.call(createIterator(['a', 'b', 'c'])).toArray().toString(), '0,a,1,b,2,c', 'basic functionality');\n\n  if (STRICT) {\n    assert.throws(() => asIndexedPairs.call(undefined), TypeError);\n    assert.throws(() => asIndexedPairs.call(null), TypeError);\n  }\n\n  assert.throws(() => asIndexedPairs.call({}).next(), TypeError);\n  assert.throws(() => asIndexedPairs.call([]).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.iterator.chunks.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nconst { from } = Array;\n\nQUnit.test('Iterator#chunks', assert => {\n  const { chunks } = Iterator.prototype;\n\n  assert.isFunction(chunks);\n  assert.arity(chunks, 1);\n  assert.name(chunks, 'chunks');\n  assert.looksNative(chunks);\n  assert.nonEnumerable(Iterator.prototype, 'chunks');\n\n  assert.arrayEqual(from(chunks.call(createIterator([1, 2, 3]), 2)), [[1, 2], [3]], 'basic functionality #1');\n  assert.arrayEqual(from(chunks.call(createIterator([1, 2, 3, 4]), 2)), [[1, 2], [3, 4]], 'basic functionality #2');\n  assert.arrayEqual(from(chunks.call(createIterator([]), 2)), [], 'basic functionality on empty iterable');\n\n  const it = createIterator([1, 2, 3]);\n  const result = chunks.call(it, 3);\n  assert.isIterable(result, 'returns iterable');\n  assert.isIterator(result, 'returns iterator');\n  assert.true(result instanceof Iterator, 'returns iterator');\n  assert.deepEqual(result.next(), { done: false, value: [1, 2, 3] }, '.next with active inner iterator result');\n  assert.deepEqual(result.return(), { done: true, value: undefined }, '.return with active inner iterator result');\n  assert.deepEqual(result.next(), { done: true, value: undefined }, '.next on closed iterator');\n\n  if (STRICT) {\n    assert.throws(() => chunks.call('', 1), TypeError, 'iterable non-object this');\n    assert.throws(() => chunks.call(undefined, 1), TypeError, 'non-iterable-object this #1');\n    assert.throws(() => chunks.call(null, 1), TypeError, 'non-iterable-object this #2');\n    assert.throws(() => chunks.call(5, 1), TypeError, 'non-iterable-object this #3');\n  }\n\n  assert.throws(() => chunks.call(it), RangeError, 'throws on empty argument');\n  assert.throws(() => chunks.call(it, -1), RangeError, 'throws on negative argument');\n\n  const observableReturn = {\n    return() {\n      this.called = true;\n      return { done: true, value: undefined };\n    },\n  };\n  const itObservable = createIterator([1, 2, 3], observableReturn);\n  assert.throws(() => chunks.call(itObservable, 0x100000000), RangeError, 'throws on argument more then 2^32 - 1');\n  assert.true(itObservable.called, 'iterator closed on argument validation error');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.iterator.indexed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nQUnit.test('Iterator#indexed', assert => {\n  const { indexed } = Iterator.prototype;\n\n  assert.isFunction(indexed);\n  assert.arity(indexed, 0);\n  assert.name(indexed, 'indexed');\n  assert.looksNative(indexed);\n  assert.nonEnumerable(Iterator.prototype, 'indexed');\n\n  assert.arrayEqual(indexed.call(createIterator(['a', 'b', 'c'])).toArray().toString(), '0,a,1,b,2,c', 'basic functionality');\n\n  if (STRICT) {\n    assert.throws(() => indexed.call(undefined), TypeError);\n    assert.throws(() => indexed.call(null), TypeError);\n  }\n\n  assert.throws(() => indexed.call({}).next(), TypeError);\n  assert.throws(() => indexed.call([]).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.iterator.range.js",
    "content": "import { MAX_SAFE_INTEGER } from '../helpers/constants.js';\n/* eslint-disable es/no-bigint -- safe */\nQUnit.test('Iterator.range', assert => {\n  const { range } = Iterator;\n  const { from } = Array;\n  assert.isFunction(range);\n  assert.name(range, 'range');\n  assert.arity(range, 3);\n  assert.looksNative(range);\n  assert.nonEnumerable(Iterator, 'range');\n\n  let iterator = range(1, 2);\n\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.deepEqual(iterator.next(), {\n    value: 1,\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n\n  assert.deepEqual(from(range(-1, 5)), [-1, 0, 1, 2, 3, 4]);\n  assert.deepEqual(from(range(-5, 1)), [-5, -4, -3, -2, -1, 0]);\n  assert.deepEqual(\n    from(range(0, 1, 0.1)),\n    [0, 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6000000000000001, 0.7000000000000001, 0.8, 0.9],\n  );\n  assert.deepEqual(\n    from(range(MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1, { inclusive: true })),\n    [MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1],\n  );\n  assert.deepEqual(from(range(0, 0)), []);\n  assert.deepEqual(from(range(0, 0, { step: 1, inclusive: true })), []);\n  assert.deepEqual(from(range(0, 0, -1)), [], 'start === end with negative step yields nothing');\n  assert.deepEqual(from(range(0, 0, { step: -1, inclusive: true })), [0], 'start === end with negative step inclusive yields start');\n  assert.deepEqual(from(range(0, -5, 1)), []);\n\n  assert.throws(() => range(NaN, 0), RangeError, 'NaN as start');\n  assert.throws(() => range(0, NaN), RangeError, 'NaN as end');\n  assert.throws(() => range(NaN, NaN), RangeError, 'NaN as start and end');\n  assert.throws(() => range(0, 0, { step: NaN }), RangeError, 'NaN as step option');\n  assert.throws(() => range(0, 5, NaN), RangeError, 'NaN as step argument');\n\n  iterator = range(1, 3);\n  assert.deepEqual(iterator.start, 1);\n  assert.deepEqual(iterator.end, 3);\n  assert.deepEqual(iterator.step, 1);\n  assert.false(iterator.inclusive);\n\n  iterator = range(-1, -3, { inclusive: true });\n  assert.deepEqual(iterator.start, -1);\n  assert.deepEqual(iterator.end, -3);\n  assert.same(iterator.step, -1);\n  assert.true(iterator.inclusive);\n\n  iterator = range(0, 5, null);\n  assert.same(iterator.start, 0, 'null option: start');\n  assert.same(iterator.end, 5, 'null option: end');\n  assert.same(iterator.step, 1, 'null option: step defaults to 1');\n  assert.false(iterator.inclusive, 'null option: inclusive defaults to false');\n\n  iterator = range(-1, -3, { step: 4, inclusive() { /* empty */ } });\n  assert.same(iterator.start, -1);\n  assert.same(iterator.end, -3);\n  assert.same(iterator.step, 4);\n  assert.true(iterator.inclusive);\n\n  iterator = range(0, 5);\n  assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError);\n\n  assert.throws(() => range(Infinity, 10, 0), RangeError);\n  assert.throws(() => range(-Infinity, 10, 0), RangeError);\n  assert.throws(() => range(0, 10, Infinity), RangeError);\n  assert.throws(() => range(0, 10, { step: Infinity }), RangeError);\n\n  assert.throws(() => range({}, 1), TypeError);\n  assert.throws(() => range(1, {}), TypeError);\n  assert.throws(() => range('1', 2), TypeError);\n  assert.throws(() => range({ valueOf() { return 1; } }, 2), TypeError);\n\n  if (typeof BigInt == 'function') {\n    iterator = range(BigInt(1), BigInt(2));\n\n    assert.isIterator(iterator);\n    assert.isIterable(iterator);\n    assert.deepEqual(iterator.next(), {\n      value: BigInt(1),\n      done: false,\n    });\n    assert.deepEqual(iterator.next(), {\n      value: undefined,\n      done: true,\n    });\n\n    assert.deepEqual(from(range(BigInt(-1), BigInt(5))), [BigInt(-1), BigInt(0), BigInt(1), BigInt(2), BigInt(3), BigInt(4)]);\n    assert.deepEqual(from(range(BigInt(-5), BigInt(1))), [BigInt(-5), BigInt(-4), BigInt(-3), BigInt(-2), BigInt(-1), BigInt(0)]);\n    assert.deepEqual(\n      from(range(BigInt('9007199254740991'), BigInt('9007199254740992'), { inclusive: true })),\n      [BigInt('9007199254740991'), BigInt('9007199254740992')],\n    );\n    assert.deepEqual(from(range(BigInt(0), BigInt(0))), []);\n    assert.deepEqual(from(range(BigInt(0), BigInt(0), { step: BigInt(1), inclusive: true })), []);\n    assert.deepEqual(from(range(BigInt(0), BigInt(0), BigInt(-1))), [], 'BigInt: start === end with negative step yields nothing');\n    assert.deepEqual(from(range(BigInt(0), BigInt(0), { step: BigInt(-1), inclusive: true })), [BigInt(0)], 'BigInt: start === end with negative step inclusive yields start');\n    assert.deepEqual(from(range(BigInt(0), BigInt(-5), BigInt(1))), []);\n\n    iterator = range(BigInt(1), BigInt(3));\n    assert.deepEqual(iterator.start, BigInt(1));\n    assert.deepEqual(iterator.end, BigInt(3));\n    assert.deepEqual(iterator.step, BigInt(1));\n    assert.false(iterator.inclusive);\n\n    iterator = range(BigInt(-1), BigInt(-3), { inclusive: true });\n    assert.deepEqual(iterator.start, BigInt(-1));\n    assert.deepEqual(iterator.end, BigInt(-3));\n    assert.same(iterator.step, BigInt(-1));\n    assert.true(iterator.inclusive);\n\n    iterator = range(BigInt(-1), BigInt(-3), { step: BigInt(4), inclusive() { /* empty */ } });\n    assert.same(iterator.start, BigInt(-1));\n    assert.same(iterator.end, BigInt(-3));\n    assert.same(iterator.step, BigInt(4));\n    assert.true(iterator.inclusive);\n\n    iterator = range(BigInt(0), BigInt(5));\n    assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError);\n\n    assert.throws(() => range(Infinity, BigInt(10), BigInt(0)), TypeError);\n    assert.throws(() => range(-Infinity, BigInt(10), BigInt(0)), TypeError);\n    assert.throws(() => range(BigInt(0), BigInt(10), Infinity), TypeError);\n    assert.throws(() => range(BigInt(0), BigInt(10), { step: Infinity }), TypeError);\n\n    assert.throws(() => range({}, BigInt(1)), TypeError);\n    assert.throws(() => range(BigInt(1), {}), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.iterator.sliding.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nconst { from } = Array;\n\nQUnit.test('Iterator#sliding', assert => {\n  const { sliding } = Iterator.prototype;\n\n  assert.isFunction(sliding);\n  assert.arity(sliding, 1);\n  assert.name(sliding, 'sliding');\n  assert.looksNative(sliding);\n  assert.nonEnumerable(Iterator.prototype, 'sliding');\n\n  assert.arrayEqual(from(sliding.call(createIterator([1, 2, 3]), 2)), [[1, 2], [2, 3]], 'basic functionality #1');\n  assert.arrayEqual(from(sliding.call(createIterator([1, 2, 3, 4]), 2)), [[1, 2], [2, 3], [3, 4]], 'basic functionality #2');\n  assert.arrayEqual(from(sliding.call(createIterator([1, 2]), 3)), [[1, 2]], 'basic functionality #3');\n  assert.arrayEqual(from(sliding.call(createIterator([]), 2)), [], 'basic functionality on empty iterable');\n\n  const it = createIterator([1, 2, 3]);\n  const result = sliding.call(it, 3);\n  assert.isIterable(result, 'returns iterable');\n  assert.isIterator(result, 'returns iterator');\n  assert.true(result instanceof Iterator, 'returns iterator');\n  assert.deepEqual(result.next(), { done: false, value: [1, 2, 3] }, '.next with active inner iterator result');\n  assert.deepEqual(result.return(), { done: true, value: undefined }, '.return with active inner iterator result');\n  assert.deepEqual(result.next(), { done: true, value: undefined }, '.next on closed iterator');\n\n  if (STRICT) {\n    assert.throws(() => sliding.call('', 1), TypeError, 'iterable non-object this');\n    assert.throws(() => sliding.call(undefined, 1), TypeError, 'non-iterable-object this #1');\n    assert.throws(() => sliding.call(null, 1), TypeError, 'non-iterable-object this #2');\n    assert.throws(() => sliding.call(5, 1), TypeError, 'non-iterable-object this #3');\n  }\n\n  assert.throws(() => sliding.call(it), RangeError, 'throws on empty argument');\n  assert.throws(() => sliding.call(it, -1), RangeError, 'throws on negative argument');\n\n  const observableReturn = {\n    return() {\n      this.called = true;\n      return { done: true, value: undefined };\n    },\n  };\n  const itObservable = createIterator([1, 2, 3], observableReturn);\n  assert.throws(() => sliding.call(itObservable, 0x100000000), RangeError, 'throws on argument more then 2^32 - 1');\n  assert.true(itObservable.called, 'iterator closed on argument validation error');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.iterator.to-async.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Iterator#toAsync', assert => {\n  const { toAsync } = Iterator.prototype;\n\n  assert.isFunction(toAsync);\n  assert.arity(toAsync, 0);\n  assert.name(toAsync, 'toAsync');\n  assert.looksNative(toAsync);\n  assert.nonEnumerable(Iterator.prototype, 'toAsync');\n\n  if (STRICT) {\n    assert.throws(() => toAsync.call(undefined), TypeError);\n    assert.throws(() => toAsync.call(null), TypeError);\n  }\n\n  const closableIterator = {\n    closed: false,\n    [Symbol.iterator]() { return this; },\n    next() {\n      return { value: Promise.reject(42), done: false };\n    },\n    return() {\n      this.closed = true;\n      return { value: undefined, done: true };\n    },\n  };\n\n  return [1, 2, 3].values().toAsync().map(it => Promise.resolve(it)).toArray().then(it => {\n    assert.arrayEqual(it, [1, 2, 3]);\n    return new Set([1, 2, 3]).values().toAsync().map(el => Promise.resolve(el)).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [1, 2, 3]);\n  }).then(() => {\n    return Iterator.from(closableIterator).toAsync().toArray();\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a `.next()` promise rejection');\n    assert.true(closableIterator.closed, 'closes sync iterator on promise rejection');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.iterator.windows.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nconst { from } = Array;\n\nQUnit.test('Iterator#windows', assert => {\n  const { windows } = Iterator.prototype;\n\n  assert.isFunction(windows);\n  assert.arity(windows, 1);\n  assert.name(windows, 'windows');\n  assert.looksNative(windows);\n  assert.nonEnumerable(Iterator.prototype, 'windows');\n\n  assert.arrayEqual(from(windows.call(createIterator([1, 2, 3]), 2)), [[1, 2], [2, 3]], 'basic functionality #1');\n  assert.arrayEqual(from(windows.call(createIterator([1, 2, 3, 4]), 2)), [[1, 2], [2, 3], [3, 4]], 'basic functionality #2');\n  assert.arrayEqual(from(windows.call(createIterator([1, 2]), 3)), [], 'basic functionality #3');\n  assert.arrayEqual(from(windows.call(createIterator([]), 2)), [], 'basic functionality on empty iterable');\n\n  assert.arrayEqual(from(windows.call(createIterator([1, 2]), 3, 'only-full')), [], 'undersized #1');\n  assert.arrayEqual(from(windows.call(createIterator([1, 2]), 3, 'allow-partial')), [[1, 2]], 'undersized #2');\n\n  const it = createIterator([1, 2, 3]);\n  const result = windows.call(it, 3);\n  assert.isIterable(result, 'returns iterable');\n  assert.isIterator(result, 'returns iterator');\n  assert.true(result instanceof Iterator, 'returns iterator');\n  assert.deepEqual(result.next(), { done: false, value: [1, 2, 3] }, '.next with active inner iterator result');\n  assert.deepEqual(result.return(), { done: true, value: undefined }, '.return with active inner iterator result');\n  assert.deepEqual(result.next(), { done: true, value: undefined }, '.next on closed iterator');\n\n  if (STRICT) {\n    assert.throws(() => windows.call('', 1), TypeError, 'iterable non-object this');\n    assert.throws(() => windows.call(undefined, 1), TypeError, 'non-iterable-object this #1');\n    assert.throws(() => windows.call(null, 1), TypeError, 'non-iterable-object this #2');\n    assert.throws(() => windows.call(5, 1), TypeError, 'non-iterable-object this #3');\n  }\n\n  assert.throws(() => windows.call(it), RangeError, 'throws on empty argument');\n  assert.throws(() => windows.call(it, -1), RangeError, 'throws on negative argument');\n\n  const observableReturn = {\n    return() {\n      this.called = true;\n      return { done: true, value: undefined };\n    },\n  };\n  const itObservable = createIterator([1, 2, 3], observableReturn);\n  assert.throws(() => windows.call(itObservable, 0x100000000), RangeError, 'throws on argument more then 2^32 - 1');\n  assert.true(itObservable.called, 'iterator closed on argument validation error');\n\n  assert.throws(() => windows.call(createIterator([1]), 2, null), TypeError, 'incorrect `undersized` argument #1');\n  assert.throws(() => windows.call(createIterator([1]), 2, 'allowpartial'), TypeError, 'incorrect `undersized` argument #2');\n\n  // windows should return independent copies (not the same buffer)\n  {\n    const iter = windows.call(createIterator([1, 2, 3, 4, 5]), 3);\n    const w1 = iter.next().value;\n    assert.deepEqual(w1, [1, 2, 3], 'window 1');\n    w1[1] = 99;\n    const w2 = iter.next().value;\n    assert.deepEqual(w2, [2, 3, 4], 'window 2 not affected by mutation of window 1');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.iterator.zip-keyed.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { DESCRIPTORS } from '../helpers/constants.js';\n\nfunction nullProto(obj) {\n  return Object.assign(Object.create(null), obj);\n}\n\nQUnit.test('Iterator.zipKeyed', assert => {\n  const { zipKeyed } = Iterator;\n  const { from } = Array;\n  const { defineProperty } = Object;\n\n  assert.isFunction(zipKeyed);\n  assert.arity(zipKeyed, 1);\n  assert.name(zipKeyed, 'zipKeyed');\n  assert.looksNative(zipKeyed);\n  assert.nonEnumerable(Iterator, 'zipKeyed');\n\n  let result = zipKeyed({ a: [0, 1, 2], b: [3, 4, 5], c: [7, 8, 9] });\n  assert.true(result instanceof Iterator, 'Iterator instance');\n  assert.deepEqual(from(result), [{ a: 0, b: 3, c: 7 }, { a: 1, b: 4, c: 8 }, { a: 2, b: 5, c: 9 }]);\n  result = zipKeyed({ a: [0, 1, 2], b: [3, 4, 5, 6], c: [7, 8, 9] });\n  assert.deepEqual(from(result), [{ a: 0, b: 3, c: 7 }, { a: 1, b: 4, c: 8 }, { a: 2, b: 5, c: 9 }]);\n  result = zipKeyed({ a: [0, 1, 2], b: [3, 4, 5, 6], c: [7, 8, 9] }, { mode: 'longest', padding: { c: 10 } });\n  assert.deepEqual(from(result), [{ a: 0, b: 3, c: 7 }, { a: 1, b: 4, c: 8 }, { a: 2, b: 5, c: 9 }, { a: undefined, b: 6, c: 10 }]);\n  result = zipKeyed({ a: [0, 1, 2], b: [3, 4, 5, 6], c: [7, 8, 9] }, { mode: 'strict' });\n  assert.throws(() => from(result), TypeError);\n\n  if (DESCRIPTORS) {\n    let obj = {};\n    defineProperty(obj, 'a', { get: () => [0, 1, 2], enumerable: true });\n    defineProperty(obj, 'b', { get: () => [3, 4, 5], enumerable: true });\n    defineProperty(obj, 'c', { get: () => [7, 8, 9], enumerable: true });\n    defineProperty(obj, Symbol('d'), { get: () => [10, 11, 12] });\n    assert.deepEqual(from(zipKeyed(obj)), [{ a: 0, b: 3, c: 7 }, { a: 1, b: 4, c: 8 }, { a: 2, b: 5, c: 9 }]);\n\n    const it = createIterator([1, 2], {\n      return() {\n        this.called = true;\n        return { done: true, value: undefined };\n      },\n    });\n    obj = { a: it };\n    defineProperty(obj, 'b', { get: () => { throw new Error(); }, enumerable: true });\n    assert.throws(() => from(zipKeyed(obj)), Error);\n    assert.true(it.called, 'iterator return called');\n\n    const foo = Symbol('foo');\n    const bar = Symbol('bar');\n    const zipped = Iterator.zipKeyed({ [foo]: [1, 2, 3], [bar]: [4, 5, 6], baz: [7, 8, 9] });\n    result = from(zipped);\n    assert.same(result[0][foo], 1);\n    assert.same(result[0][bar], 4);\n    assert.same(result[0].baz, 7);\n\n    assert.same(result[1][foo], 2);\n    assert.same(result[1][bar], 5);\n    assert.same(result[1].baz, 8);\n\n    assert.same(result[2][foo], 3);\n    assert.same(result[2][bar], 6);\n    assert.same(result[2].baz, 9);\n  }\n\n  {\n    const $result = zipKeyed({\n      a: [0, 1, 2],\n      b: [3, 4, 5, 6, 7],\n      c: [8, 9],\n    }, {\n      mode: 'longest',\n    });\n\n    assert.deepEqual(from($result), [\n      nullProto({ a: 0, b: 3, c: 8 }),\n      nullProto({ a: 1, b: 4, c: 9 }),\n      nullProto({ a: 2, b: 5, c: undefined }),\n      nullProto({ a: undefined, b: 6, c: undefined }),\n      nullProto({ a: undefined, b: 7, c: undefined }),\n    ]);\n  }\n\n  {\n    const $result = zipKeyed({\n      a: [0, 1, 2],\n      b: [3, 4, 5, 6, 7],\n      c: [8, 9],\n    }, {\n      mode: 'longest',\n      padding: { a: 'A', b: 'B', c: 'C' },\n    });\n\n    assert.deepEqual(from($result), [\n      nullProto({ a: 0, b: 3, c: 8 }),\n      nullProto({ a: 1, b: 4, c: 9 }),\n      nullProto({ a: 2, b: 5, c: 'C' }),\n      nullProto({ a: 'A', b: 6, c: 'C' }),\n      nullProto({ a: 'A', b: 7, c: 'C' }),\n    ]);\n  }\n\n  assert.throws(() => zipKeyed({ a: [1, 2], b: 'hello' }), TypeError, 'rejects string iterables');\n  assert.throws(() => zipKeyed({ a: [1, 2], b: 42 }), TypeError, 'rejects number iterables');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.iterator.zip.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\n\nQUnit.test('Iterator.zip', assert => {\n  const { zip } = Iterator;\n  const { from } = Array;\n\n  assert.isFunction(zip);\n  assert.arity(zip, 1);\n  assert.name(zip, 'zip');\n  assert.looksNative(zip);\n  assert.nonEnumerable(Iterator, 'zip');\n\n  let result = zip([[1, 2, 3], [4, 5, 6]]);\n  assert.true(result instanceof Iterator, 'Iterator instance');\n  assert.deepEqual(from(result), [[1, 4], [2, 5], [3, 6]]);\n  result = zip([[1, 2, 3], [4, 5, 6, 7]]);\n  assert.deepEqual(from(result), [[1, 4], [2, 5], [3, 6]]);\n  result = zip([[1, 2, 3], [4, 5, 6, 7]], { mode: 'longest', padding: [9] });\n  assert.deepEqual(from(result), [[1, 4], [2, 5], [3, 6], [9, 7]]);\n  result = zip([[1, 2, 3, 4], [5, 6, 7]], { mode: 'longest', padding: [1, 9] });\n  assert.deepEqual(from(result), [[1, 5], [2, 6], [3, 7], [4, 9]]);\n  result = zip([[1, 2, 3], [4, 5, 6], [7, 8, 9]], { mode: 'strict' });\n  assert.deepEqual(from(result), [[1, 4, 7], [2, 5, 8], [3, 6, 9]]);\n  result = zip([[1, 2, 3], [4, 5, 6, 7]], { mode: 'strict' });\n  assert.throws(() => from(result), TypeError);\n\n  const observableReturn = {\n    return() {\n      this.called = true;\n      return { done: true, value: undefined };\n    },\n  };\n\n  {\n    const it1 = createIterator([1, 2], observableReturn);\n    const it2 = createIterator([3, 4], observableReturn);\n    result = zip([it1, it2]);\n    assert.deepEqual(result.next().value, [1, 3]);\n    assert.deepEqual(result.return(), { done: true, value: undefined });\n    assert.deepEqual(result.next(), { done: true, value: undefined });\n    assert.true(it1.called, 'first iterator return called');\n    assert.true(it2.called, 'second iterator return called');\n  }\n\n  {\n    const it = createIterator([1, 2, 3], observableReturn);\n    result = zip([it, [4, 5]], { mode: 'strict' });\n    assert.throws(() => from(result), TypeError);\n    assert.true(it.called, 'iterator return called #1');\n  }\n\n  {\n    const it = createIterator([3, 4, 5], observableReturn);\n    result = zip([[1, 2], it], { mode: 'strict' });\n    assert.throws(() => from(result), TypeError);\n    assert.true(it.called, 'iterator return called #2');\n  }\n\n  {\n    const it1 = createIterator([1, 2], { next() { throw new Error(); } });\n    const it2 = createIterator([3, 4], observableReturn);\n    result = zip([it1, it2]);\n    assert.throws(() => from(result), Error);\n    assert.true(it2.called, 'iterator return called #4');\n  }\n\n  {\n    const expectedError = new TypeError('strict next error');\n    let it2calls = 0;\n    const it2 = createIterator([2], {\n      next() {\n        if (it2calls++) throw expectedError;\n        return { value: 2, done: false };\n      },\n    });\n    result = zip([createIterator([1]), it2], { mode: 'strict' });\n    result.next();\n    let caught;\n    try {\n      result.next();\n    } catch (error) {\n      caught = error;\n    }\n    assert.same(caught, expectedError, 'strict mode propagates error from .next() during exhaustion check');\n  }\n\n  {\n    const $result = zip([\n      [0, 1, 2],\n      [3, 4, 5, 6, 7],\n      [8, 9],\n    ], {\n      mode: 'longest',\n    });\n\n    assert.deepEqual(from($result), [\n      [0, 3, 8],\n      [1, 4, 9],\n      [2, 5, undefined],\n      [undefined, 6, undefined],\n      [undefined, 7, undefined],\n    ]);\n  }\n\n  {\n    const $result = zip([\n      [0, 1, 2],\n      [3, 4, 5, 6, 7],\n      [8, 9],\n    ], {\n      mode: 'longest',\n      padding: ['A', 'B', 'C'],\n    });\n\n    assert.deepEqual(from($result), [\n      [0, 3, 8],\n      [1, 4, 9],\n      [2, 5, 'C'],\n      ['A', 6, 'C'],\n      ['A', 7, 'C'],\n    ]);\n  }\n\n  {\n    const expectedError = new TypeError('not iterable');\n    const badIterable = { [Symbol.iterator]() { throw expectedError; } };\n    const it1 = createIterator([1, 2], observableReturn);\n    let caught;\n    try {\n      zip([it1, badIterable]);\n    } catch (error) {\n      caught = error;\n    }\n    assert.same(caught, expectedError, 'original error is preserved');\n    assert.true(it1.called, 'first iterator return called on non-iterable second element');\n  }\n\n  {\n    const expectedError = new TypeError('inner return error');\n    const throwingReturn = {\n      return() {\n        throw expectedError;\n      },\n    };\n    const it1 = createIterator([1, 2], throwingReturn);\n    const it2 = createIterator([3, 4], observableReturn);\n    result = zip([it1, it2]);\n    result.next();\n    let caught;\n    try {\n      result.return();\n    } catch (error) {\n      caught = error;\n    }\n    assert.same(caught, expectedError, 'propagates the original error from inner return()');\n  }\n\n  assert.throws(() => zip(['hello', [1, 2, 3]]), TypeError, 'rejects string iterables');\n  assert.throws(() => zip([42, [1, 2, 3]]), TypeError, 'rejects number iterables');\n  {\n    // iterator-zip: .next() result must be validated as an object\n    const primitiveNextIter = {\n      [Symbol.iterator]() {\n        return { next() { return 42; } };\n      },\n    };\n    const normalIter = [1, 2, 3];\n    const zipped = zip([primitiveNextIter, normalIter]);\n    assert.throws(() => zipped.next(), TypeError, 'throws on non-object .next() result');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.delete-all.js",
    "content": "QUnit.test('Map#deleteAll', assert => {\n  const { deleteAll } = Map.prototype;\n  const { from } = Array;\n\n  assert.isFunction(deleteAll);\n  assert.arity(deleteAll, 0);\n  assert.name(deleteAll, 'deleteAll');\n  assert.looksNative(deleteAll);\n  assert.nonEnumerable(Map.prototype, 'deleteAll');\n\n  let map = new Map([[1, 2], [2, 3], [3, 4]]);\n  assert.true(map.deleteAll(1, 2));\n  assert.deepEqual(from(map), [[3, 4]]);\n\n  map = new Map([[1, 2], [2, 3], [3, 4]]);\n  assert.false(map.deleteAll(3, 4));\n  assert.deepEqual(from(map), [[1, 2], [2, 3]]);\n\n  map = new Map([[1, 2], [2, 3], [3, 4]]);\n  assert.false(map.deleteAll(4, 5));\n  assert.deepEqual(from(map), [[1, 2], [2, 3], [3, 4]]);\n\n  map = new Map([[1, 2], [2, 3], [3, 4]]);\n  assert.true(map.deleteAll());\n  assert.deepEqual(from(map), [[1, 2], [2, 3], [3, 4]]);\n\n  assert.throws(() => deleteAll.call({ delete() { /* empty */ } }, 1, 2, 3));\n  assert.throws(() => deleteAll.call({}, 1, 2, 3), TypeError);\n  assert.throws(() => deleteAll.call(undefined, 1, 2, 3), TypeError);\n  assert.throws(() => deleteAll.call(null, 1, 2, 3), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.emplace.js",
    "content": "QUnit.test('Map#emplace', assert => {\n  const { emplace } = Map.prototype;\n  assert.isFunction(emplace);\n  assert.arity(emplace, 2);\n  assert.name(emplace, 'emplace');\n  assert.looksNative(emplace);\n  assert.nonEnumerable(Map.prototype, 'emplace');\n\n  const map = new Map([['a', 2]]);\n  let handler = {\n    update(value, key, that) {\n      assert.same(this, handler, 'correct handler in callback');\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 2, 'correct value in callback');\n      assert.same(key, 'a', 'correct key in callback');\n      assert.same(that, map, 'correct map in callback');\n      return value ** 2;\n    },\n    insert() {\n      assert.avoid();\n    },\n  };\n  assert.same(map.emplace('a', handler), 4, 'returns a correct value');\n  handler = {\n    update() {\n      assert.avoid();\n    },\n    insert(key, that) {\n      assert.same(this, handler, 'correct handler in callback');\n      assert.same(arguments.length, 2, 'correct number of callback arguments');\n      assert.same(key, 'b', 'correct key in callback');\n      assert.same(that, map, 'correct map in callback');\n      return 3;\n    },\n  };\n  assert.same(map.emplace('b', handler), 3, 'returns a correct value');\n  assert.same(map.size, 2, 'correct size');\n  assert.same(map.get('a'), 4, 'correct result #1');\n  assert.same(map.get('b'), 3, 'correct result #2');\n\n  assert.same(new Map([['a', 2]]).emplace('b', { insert: () => 3 }), 3);\n  assert.same(new Map([['a', 2]]).emplace('a', { update: value => value ** 2 }), 4);\n\n  handler = { update() { /* empty */ }, insert() { /* empty */ } };\n  assert.throws(() => new Map().emplace('a'), TypeError);\n  assert.throws(() => emplace.call({}, 'a', handler), TypeError);\n  assert.throws(() => emplace.call([], 'a', handler), TypeError);\n  assert.throws(() => emplace.call(undefined, 'a', handler), TypeError);\n  assert.throws(() => emplace.call(null, 'a', handler), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.every.js",
    "content": "QUnit.test('Map#every', assert => {\n  const { every } = Map.prototype;\n  assert.isFunction(every);\n  assert.arity(every, 1);\n  assert.name(every, 'every');\n  assert.looksNative(every);\n  assert.nonEnumerable(Map.prototype, 'every');\n\n  let map = new Map([[9, 1]]);\n  const context = {};\n  map.every(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 9, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  map = new Map([[0, 1], [1, 2], [2, 3]]);\n  assert.true(map.every(it => typeof it == 'number'));\n  assert.true(map.every(it => it < 4));\n  assert.false(map.every(it => it < 3));\n  assert.false(map.every(it => typeof it == 'string'));\n  assert.true(map.every(function () {\n    return +this === 1;\n  }, 1));\n  let result = '';\n  map.every((value, key) => result += key);\n  assert.same(result, '012');\n  assert.true(map.every((value, key, that) => that === map));\n\n  assert.throws(() => every.call(new Set(), () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.filter.js",
    "content": "QUnit.test('Map#filter', assert => {\n  const { filter } = Map.prototype;\n  const { from } = Array;\n\n  assert.isFunction(filter);\n  assert.arity(filter, 1);\n  assert.name(filter, 'filter');\n  assert.looksNative(filter);\n  assert.nonEnumerable(Map.prototype, 'filter');\n\n  const map = new Map([[1, 2]]);\n  const context = {};\n  map.filter(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Map().filter(it => it) instanceof Map);\n\n  assert.deepEqual(from(new Map([\n    ['a', 1],\n    [1, 2],\n    ['b', 3],\n    [2, 'q'],\n    ['c', {}],\n    [3, 4],\n    ['d', true],\n    [4, 5],\n  ]).filter(it => typeof it == 'number')), [\n    ['a', 1],\n    [1, 2],\n    ['b', 3],\n    [3, 4],\n    [4, 5],\n  ]);\n\n  assert.throws(() => filter.call(new Set(), () => { /* empty */ }), TypeError);\n  assert.throws(() => filter.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => filter.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => filter.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => filter.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.find-key.js",
    "content": "QUnit.test('Map#findKey', assert => {\n  const { findKey } = Map.prototype;\n\n  assert.isFunction(findKey);\n  assert.arity(findKey, 1);\n  assert.name(findKey, 'findKey');\n  assert.looksNative(findKey);\n  assert.nonEnumerable(Map.prototype, 'findKey');\n\n  const map = new Map([[1, 2]]);\n  const context = {};\n  map.findKey(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.same(new Map([[1, 2], [2, 3], [3, 4]]).findKey(it => it % 2), 2);\n  assert.same(new Map().findKey(it => it === 42), undefined);\n\n  assert.throws(() => findKey.call(new Set(), () => { /* empty */ }), TypeError);\n  assert.throws(() => findKey.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => findKey.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => findKey.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => findKey.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.find.js",
    "content": "QUnit.test('Map#find', assert => {\n  const { find } = Map.prototype;\n\n  assert.isFunction(find);\n  assert.arity(find, 1);\n  assert.name(find, 'find');\n  assert.looksNative(find);\n  assert.nonEnumerable(Map.prototype, 'find');\n\n  const map = new Map([[1, 2]]);\n  const context = {};\n  map.find(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.same(new Map([[1, 2], [2, 3], [3, 4]]).find(it => it % 2), 3);\n  assert.same(new Map().find(it => it === 42), undefined);\n\n  assert.throws(() => find.call(new Set(), () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.from.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Map.from', assert => {\n  const { from } = Map;\n  const toArray = Array.from;\n  assert.isFunction(from);\n  assert.arity(from, 1);\n  assert.name(from, 'from');\n  assert.looksNative(from);\n  assert.nonEnumerable(Map, 'from');\n  assert.true(from([]) instanceof Map);\n  assert.deepEqual(toArray(from([])), []);\n  assert.deepEqual(toArray(from([[1, 2]])), [[1, 2]]);\n  assert.deepEqual(toArray(from([[1, 2], [2, 3], [1, 4]])), [[1, 4], [2, 3]]);\n  assert.deepEqual(toArray(from(createIterable([[1, 2], [2, 3], [1, 4]]))), [[1, 4], [2, 3]]);\n  const pair = [1, 2];\n  const context = {};\n  from([pair], function (element, index) {\n    assert.same(element, pair);\n    assert.same(index, 0);\n    assert.same(this, context);\n    return element;\n  }, context);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.includes.js",
    "content": "QUnit.test('Map#includes', assert => {\n  const { includes } = Map.prototype;\n  assert.isFunction(includes);\n  assert.name(includes, 'includes');\n  assert.arity(includes, 1);\n  assert.looksNative(includes);\n  assert.nonEnumerable(Map.prototype, 'includes');\n\n  const object = {};\n  const map = new Map([[1, 1], [2, 2], [3, 3], [4, -0], [5, object], [6, NaN]]);\n  assert.true(map.includes(1));\n  assert.true(map.includes(-0));\n  assert.true(map.includes(0));\n  assert.true(map.includes(object));\n  assert.false(map.includes(4));\n  assert.false(map.includes(-0.5));\n  assert.false(map.includes({}));\n  assert.true(map.includes(NaN));\n\n  assert.throws(() => includes.call(new Set(), 1), TypeError);\n  assert.throws(() => includes.call({}, 1), TypeError);\n  assert.throws(() => includes.call([], 1), TypeError);\n  assert.throws(() => includes.call(undefined, 1), TypeError);\n  assert.throws(() => includes.call(null, 1), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.key-by.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Map.keyBy', assert => {\n  const { keyBy } = Map;\n  const toArray = Array.from;\n\n  assert.isFunction(keyBy);\n  assert.arity(keyBy, 2);\n  assert.name(keyBy, 'keyBy');\n  assert.looksNative(keyBy);\n  assert.nonEnumerable(Map, 'keyBy');\n\n  assert.true(Map.keyBy([], it => it) instanceof Map);\n\n  assert.deepEqual(toArray(Map.keyBy([], it => it)), []);\n  assert.deepEqual(toArray(Map.keyBy([1, 2], it => it ** 2)), [[1, 1], [4, 2]]);\n  assert.deepEqual(toArray(Map.keyBy([1, 2, 1], it => it ** 2)), [[1, 1], [4, 2]]);\n  assert.deepEqual(toArray(Map.keyBy(createIterable([1, 2]), it => it ** 2)), [[1, 1], [4, 2]]);\n\n  const element = {};\n  Map.keyBy([element], it => assert.same(it, element));\n\n  // assert.throws(() => keyBy([1, 2], it => it));\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.key-of.js",
    "content": "QUnit.test('Map#keyOf', assert => {\n  const { keyOf } = Map.prototype;\n  assert.isFunction(keyOf);\n  assert.name(keyOf, 'keyOf');\n  assert.arity(keyOf, 1);\n  assert.looksNative(keyOf);\n  assert.nonEnumerable(Map.prototype, 'keyOf');\n\n  const object = {};\n  const map = new Map([[1, 1], [2, 2], [3, 3], [4, -0], [5, object], [6, NaN]]);\n  assert.same(map.keyOf(1), 1);\n  assert.same(map.keyOf(-0), 4);\n  assert.same(map.keyOf(0), 4);\n  assert.same(map.keyOf(object), 5);\n  assert.same(map.keyOf(4), undefined);\n  assert.same(map.keyOf(-0.5), undefined);\n  assert.same(map.keyOf({}), undefined);\n  assert.same(map.keyOf(NaN), undefined);\n\n  assert.throws(() => keyOf.call(new Set(), 1), TypeError);\n  assert.throws(() => keyOf.call({}, 1), TypeError);\n  assert.throws(() => keyOf.call([], 1), TypeError);\n  assert.throws(() => keyOf.call(undefined, 1), TypeError);\n  assert.throws(() => keyOf.call(null, 1), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.map-keys.js",
    "content": "QUnit.test('Map#mapKeys', assert => {\n  const { mapKeys } = Map.prototype;\n  const { from } = Array;\n\n  assert.isFunction(mapKeys);\n  assert.arity(mapKeys, 1);\n  assert.name(mapKeys, 'mapKeys');\n  assert.looksNative(mapKeys);\n  assert.nonEnumerable(Map.prototype, 'mapKeys');\n\n  const map = new Map([[1, 2]]);\n  const context = {};\n  map.mapKeys(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Map().mapKeys(it => it) instanceof Map);\n\n  assert.deepEqual(from(new Map([\n    ['a', 1],\n    [1, 2],\n    ['b', 3],\n    [2, 'q'],\n    ['c', {}],\n    [3, 4],\n    ['d', true],\n    [4, 5],\n  ]).mapKeys((value, key) => `${ key }${ value }`)), [\n    ['a1', 1],\n    ['12', 2],\n    ['b3', 3],\n    ['2q', 'q'],\n    ['c[object Object]', {}],\n    ['34', 4],\n    ['dtrue', true],\n    ['45', 5],\n  ]);\n\n  assert.throws(() => mapKeys.call(new Set(), () => { /* empty */ }), TypeError);\n  assert.throws(() => mapKeys.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => mapKeys.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => mapKeys.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => mapKeys.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.map-values.js",
    "content": "QUnit.test('Map#mapValues', assert => {\n  const { mapValues } = Map.prototype;\n  const { from } = Array;\n\n  assert.isFunction(mapValues);\n  assert.arity(mapValues, 1);\n  assert.name(mapValues, 'mapValues');\n  assert.looksNative(mapValues);\n  assert.nonEnumerable(Map.prototype, 'mapValues');\n\n  const map = new Map([[1, 2]]);\n  const context = {};\n  map.mapValues(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Map().mapValues(it => it) instanceof Map);\n\n  assert.deepEqual(from(new Map([\n    ['a', 1],\n    [1, 2],\n    ['b', 3],\n    [2, 'q'],\n    ['c', {}],\n    [3, 4],\n    ['d', true],\n    [4, 5],\n  ]).mapValues((value, key) => `${ key }${ value }`)), [\n    ['a', 'a1'],\n    [1, '12'],\n    ['b', 'b3'],\n    [2, '2q'],\n    ['c', 'c[object Object]'],\n    [3, '34'],\n    ['d', 'dtrue'],\n    [4, '45'],\n  ]);\n\n  assert.throws(() => mapValues.call(new Set(), () => { /* empty */ }), TypeError);\n  assert.throws(() => mapValues.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => mapValues.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => mapValues.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => mapValues.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.merge.js",
    "content": "QUnit.test('Map#merge', assert => {\n  const { merge } = Map.prototype;\n  const { from } = Array;\n\n  assert.isFunction(merge);\n  assert.arity(merge, 1);\n  assert.name(merge, 'merge');\n  assert.looksNative(merge);\n  assert.nonEnumerable(Map.prototype, 'merge');\n\n  const map = new Map([[1, 2]]);\n  const result = map.merge([[3, 4]]);\n  assert.same(result, map);\n  assert.true(result instanceof Map);\n\n  assert.deepEqual(from(new Map([[1, 2], [3, 4]]).merge([[5, 6]])), [[1, 2], [3, 4], [5, 6]]);\n  assert.deepEqual(from(new Map([[1, 2], [3, 4]]).merge([[3, 5], [5, 6]])), [[1, 2], [3, 5], [5, 6]]);\n  assert.deepEqual(from(new Map([[1, 2], [3, 4]]).merge([])), [[1, 2], [3, 4]]);\n\n  assert.deepEqual(from(new Map([[1, 2], [3, 4]]).merge([[3, 5]], [[5, 6]])), [[1, 2], [3, 5], [5, 6]]);\n\n  assert.throws(() => merge.call({}, [[1, 2]]), TypeError);\n  assert.throws(() => merge.call(undefined, [[1, 2]]), TypeError);\n  assert.throws(() => merge.call(null, [[1, 2]]), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.of.js",
    "content": "QUnit.test('Map.of', assert => {\n  const { of } = Map;\n  const toArray = Array.from;\n  assert.isFunction(of);\n  assert.arity(of, 0);\n  assert.name(of, 'of');\n  assert.looksNative(of);\n  assert.nonEnumerable(Map, 'of');\n  assert.true(of() instanceof Map);\n  assert.deepEqual(toArray(of([1, 2])), [[1, 2]]);\n  assert.deepEqual(toArray(of([1, 2], [2, 3], [1, 4])), [[1, 4], [2, 3]]);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.reduce.js",
    "content": "QUnit.test('Map#reduce', assert => {\n  const { reduce } = Map.prototype;\n\n  assert.isFunction(reduce);\n  assert.arity(reduce, 1);\n  assert.name(reduce, 'reduce');\n  assert.looksNative(reduce);\n  assert.nonEnumerable(Map.prototype, 'reduce');\n\n  const map = new Map([['a', 1]]);\n  const accumulator = {};\n  map.reduce(function (memo, value, key, that) {\n    assert.same(arguments.length, 4, 'correct number of callback arguments');\n    assert.same(memo, accumulator, 'correct callback accumulator');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 'a', 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n  }, accumulator);\n\n  assert.same(new Map([\n    ['a', 1],\n    ['b', 2],\n    ['c', 3],\n  ]).reduce((a, b) => a + b, 1), 7, 'works with initial accumulator');\n\n  new Map([\n    ['a', 1],\n    ['b', 2],\n  ]).reduce((memo, value, key) => {\n    assert.same(memo, 1, 'correct default accumulator');\n    assert.same(value, 2, 'correct start value without initial accumulator');\n    assert.same(key, 'b', 'correct start key without initial accumulator');\n  });\n\n  assert.same(new Map([\n    ['a', 1],\n    ['b', 2],\n    ['c', 3],\n  ]).reduce((a, b) => a + b), 6, 'works without initial accumulator');\n\n  let values = '';\n  let keys = '';\n  new Map([\n    ['a', 1],\n    ['b', 2],\n    ['c', 3],\n  ]).reduce((memo, value, key, s) => {\n    s.delete('b');\n    values += value;\n    keys += key;\n  }, 0);\n  assert.same(values, '13', 'correct order #1');\n  assert.same(keys, 'ac', 'correct order #2');\n\n  assert.throws(() => reduce.call(new Set(), () => { /* empty */ }, 1), TypeError);\n  assert.throws(() => reduce.call({}, () => { /* empty */ }, 1), TypeError);\n  assert.throws(() => reduce.call([], () => { /* empty */ }, 1), TypeError);\n  assert.throws(() => reduce.call(undefined, () => { /* empty */ }, 1), TypeError);\n  assert.throws(() => reduce.call(null, () => { /* empty */ }, 1), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.some.js",
    "content": "QUnit.test('Map#some', assert => {\n  const { some } = Map.prototype;\n  assert.isFunction(some);\n  assert.arity(some, 1);\n  assert.name(some, 'some');\n  assert.looksNative(some);\n  assert.nonEnumerable(Map.prototype, 'some');\n\n  let map = new Map([[9, 1]]);\n  const context = {};\n  map.some(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 9, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  map = new Map([[0, 1], [1, '2'], [2, 3]]);\n  assert.true(map.some(it => typeof it == 'number'));\n  assert.true(map.some(it => it < 3));\n  assert.false(map.some(it => it < 0));\n  assert.true(map.some(it => typeof it == 'string'));\n  assert.false(map.some(function () {\n    return +this !== 1;\n  }, 1));\n  let result = '';\n  map.some((value, key) => {\n    result += key;\n    return false;\n  });\n  assert.same(result, '012');\n  assert.true(map.some((value, key, that) => that === map));\n\n  assert.throws(() => some.call(new Set(), () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.update-or-insert.js",
    "content": "QUnit.test('Map#updateOrInsert', assert => {\n  const { updateOrInsert } = Map.prototype;\n  assert.isFunction(updateOrInsert);\n  assert.arity(updateOrInsert, 2);\n  assert.looksNative(updateOrInsert);\n  assert.nonEnumerable(Map.prototype, 'updateOrInsert');\n\n  const map = new Map([['a', 2]]);\n  assert.same(map.updateOrInsert('a', function (value) {\n    assert.same(arguments.length, 1, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    return value ** 2;\n  }, () => {\n    assert.avoid();\n    return 3;\n  }), 4, 'returns a correct value');\n  assert.same(map.updateOrInsert('b', value => {\n    assert.avoid();\n    return value ** 2;\n  }, function () {\n    assert.same(arguments.length, 0, 'correct number of callback arguments');\n    return 3;\n  }), 3, 'returns a correct value');\n  assert.same(map.size, 2, 'correct size');\n  assert.same(map.get('a'), 4, 'correct result #1');\n  assert.same(map.get('b'), 3, 'correct result #2');\n\n  assert.same(new Map([['a', 2]]).updateOrInsert('b', null, () => 3), 3);\n  assert.same(new Map([['a', 2]]).updateOrInsert('a', value => value ** 2), 4);\n\n  assert.throws(() => new Map().updateOrInsert('a'), TypeError);\n  assert.throws(() => updateOrInsert.call({}, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => updateOrInsert.call([], 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => updateOrInsert.call(undefined, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => updateOrInsert.call(null, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.update.js",
    "content": "QUnit.test('Map#update', assert => {\n  const { update } = Map.prototype;\n  assert.isFunction(update);\n  assert.arity(update, 2);\n  assert.name(update, 'update');\n  assert.looksNative(update);\n  assert.nonEnumerable(Map.prototype, 'update');\n\n  let map = new Map([[9, 2]]);\n  assert.same(map.update(9, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 9, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    return value * 2;\n  }), map, 'returns this');\n  assert.same(map.size, 1, 'correct size');\n  assert.same(map.get(9), 4, 'correct result');\n  map = new Map([[4, 5]]);\n  map.update(9, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 9, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    return value * 2;\n  }, function (key, that) {\n    assert.same(arguments.length, 2, 'correct number of thunk arguments');\n    assert.same(key, 9, 'correct key in thunk');\n    assert.same(that, map, 'correct link to map in thunk');\n    return 2;\n  });\n  assert.same(map.size, 2, 'correct size');\n  assert.same(map.get(4), 5, 'correct result #1');\n  assert.same(map.get(9), 4, 'correct result #2');\n\n  assert.throws(() => new Map([[9, 2]]).update(9), TypeError);\n  assert.throws(() => new Map().update(9, () => { /* empty */ }), TypeError);\n\n  assert.throws(() => update.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => update.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => update.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => update.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.map.upsert.js",
    "content": "QUnit.test('Map#upsert', assert => {\n  const { upsert } = Map.prototype;\n  assert.isFunction(upsert);\n  assert.name(upsert, 'upsert');\n  assert.arity(upsert, 2);\n  assert.looksNative(upsert);\n  assert.nonEnumerable(Map.prototype, 'upsert');\n\n  const map = new Map([['a', 2]]);\n  assert.same(map.upsert('a', function (value) {\n    assert.same(arguments.length, 1, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    return value ** 2;\n  }, () => {\n    assert.avoid();\n    return 3;\n  }), 4, 'returns a correct value');\n  assert.same(map.upsert('b', value => {\n    assert.avoid();\n    return value ** 2;\n  }, function () {\n    assert.same(arguments.length, 0, 'correct number of callback arguments');\n    return 3;\n  }), 3, 'returns a correct value');\n  assert.same(map.size, 2, 'correct size');\n  assert.same(map.get('a'), 4, 'correct result #1');\n  assert.same(map.get('b'), 3, 'correct result #2');\n\n  assert.same(new Map([['a', 2]]).upsert('b', null, () => 3), 3);\n  assert.same(new Map([['a', 2]]).upsert('a', value => value ** 2), 4);\n\n  assert.throws(() => new Map().upsert('a'), TypeError);\n  assert.throws(() => upsert.call({}, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => upsert.call([], 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => upsert.call(undefined, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => upsert.call(null, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.clamp.js",
    "content": "QUnit.test('Math.clamp', assert => {\n  const { clamp } = Math;\n  assert.isFunction(clamp);\n  assert.name(clamp, 'clamp');\n  assert.arity(clamp, 3);\n  assert.looksNative(clamp);\n  assert.nonEnumerable(Math, 'clamp');\n\n  assert.same(clamp(2, 4, 6), 4);\n  assert.same(clamp(4, 2, 6), 4);\n  assert.same(clamp(6, 2, 4), 4);\n\n  assert.same(clamp(-0, 0, 1), 0, 'If value is -0𝔽 and min is +0𝔽, return +0𝔽.');\n  assert.same(clamp(0, -0, 1), 0, 'If value is +0𝔽 and min is -0𝔽, return +0𝔽.');\n  assert.same(clamp(-0, -1, 0), -0, 'If value is -0𝔽 and max is +0𝔽, return -0𝔽.');\n  assert.same(clamp(0, -1, -0), -0, 'If value is +0𝔽 and max is -0𝔽, return -0𝔽.');\n  assert.same(clamp(0, -0, -0), -0, 'If min = max return min.');\n\n  assert.same(clamp(2, 0, -0), -0, 'min is +0𝔽 and max is -0𝔽');\n  assert.same(clamp(2, 3, 1), 1, 'min > max');\n\n  assert.same(clamp(NaN, 3, 1), NaN, 'If value is NaN, return NaN.');\n  assert.same(clamp(2, NaN, 1), NaN, 'If min is NaN, return NaN.');\n  assert.same(clamp(2, 3, NaN), NaN, 'If max is NaN, return NaN.');\n\n  assert.throws(() => clamp({ valueOf: () => 2 }, 1, 3), TypeError, 'If value is not a Number, throw a TypeError exception');\n  assert.throws(() => clamp(2, Object(1), 3), TypeError, 'If min is not a Number, throw a TypeError exception.');\n  assert.throws(() => clamp(2, 1, Object(3)), TypeError, 'If max is not a Number, throw a TypeError exception.');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.deg-per-rad.js",
    "content": "QUnit.test('Math.DEG_PER_RAD', assert => {\n  const { DEG_PER_RAD, PI } = Math;\n  assert.true('DEG_PER_RAD' in Math, 'DEG_PER_RAD in Math');\n  assert.nonEnumerable(Math, 'DEG_PER_RAD');\n  assert.nonConfigurable(Math, 'DEG_PER_RAD');\n  assert.nonWritable(Math, 'DEG_PER_RAD');\n  assert.same(DEG_PER_RAD, PI / 180, 'Is Math.PI / 180');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.degrees.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.degrees', assert => {\n  const { degrees, PI } = Math;\n  assert.isFunction(degrees);\n  assert.name(degrees, 'degrees');\n  assert.arity(degrees, 1);\n  assert.looksNative(degrees);\n  assert.nonEnumerable(Math, 'degrees');\n  assert.same(degrees(0), 0);\n  assert.same(degrees(PI / 2), 90);\n  assert.same(degrees(PI), 180);\n  assert.same(degrees(3 * PI / 2), 270);\n\n  const checker = createConversionChecker(3 * PI / 2);\n  assert.same(degrees(checker), 270, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.fscale.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.fscale', assert => {\n  const { fscale, fround, PI } = Math;\n  assert.isFunction(fscale);\n  assert.name(fscale, 'fscale');\n  assert.arity(fscale, 5);\n  assert.looksNative(fscale);\n  assert.nonEnumerable(Math, 'fscale');\n  assert.same(fscale(3, 1, 2, 1, 2), 3);\n  assert.same(fscale(0, 3, 5, 8, 10), 5);\n  assert.same(fscale(1, 1, 1, 1, 1), NaN);\n  assert.same(fscale(-1, -1, -1, -1, -1), NaN);\n  assert.same(fscale(3, 1, 2, 1, PI), fround((3 - 1) * (PI - 1) / (2 - 1) + 1));\n\n  const checker1 = createConversionChecker(3);\n  const checker2 = createConversionChecker(1);\n  const checker3 = createConversionChecker(2);\n  const checker4 = createConversionChecker(1);\n  const checker5 = createConversionChecker(2);\n  assert.same(fscale(checker1, checker2, checker3, checker4, checker5), 3, 'object wrapper');\n  assert.same(checker1.$valueOf, 1, 'checker1 valueOf calls');\n  assert.same(checker1.$toString, 0, 'checker1 toString calls');\n  assert.same(checker2.$valueOf, 1, 'checker2 valueOf calls');\n  assert.same(checker2.$toString, 0, 'checker2 toString calls');\n  assert.same(checker3.$valueOf, 1, 'checker3 valueOf calls');\n  assert.same(checker3.$toString, 0, 'checker3 toString calls');\n  assert.same(checker4.$valueOf, 1, 'checker4 valueOf calls');\n  assert.same(checker4.$toString, 0, 'checker4 toString calls');\n  assert.same(checker5.$valueOf, 1, 'checker5 valueOf calls');\n  assert.same(checker5.$toString, 0, 'checker5 toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.iaddh.js",
    "content": "QUnit.test('Math.iaddh', assert => {\n  const { iaddh } = Math;\n  assert.isFunction(iaddh);\n  assert.name(iaddh, 'iaddh');\n  assert.arity(iaddh, 4);\n  assert.looksNative(iaddh);\n  assert.nonEnumerable(Math, 'iaddh');\n  assert.same(iaddh(0, 2, 1, 0), 2);\n  assert.same(iaddh(0, 4, 1, 1), 5);\n  assert.same(iaddh(2, 4, 1, 1), 5);\n  assert.same(iaddh(0xFFFFFFFF, 4, 1, 1), 6);\n  assert.same(iaddh(1, 4, 0xFFFFFFFF, 1), 6);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.imulh.js",
    "content": "QUnit.test('Math.imulh', assert => {\n  const { imulh } = Math;\n  assert.isFunction(imulh);\n  assert.name(imulh, 'imulh');\n  assert.arity(imulh, 2);\n  assert.looksNative(imulh);\n  assert.nonEnumerable(Math, 'imulh');\n  assert.same(imulh(0xFFFFFFFF, 7), -1);\n  assert.same(imulh(0xFFFFFFF, 77), 4);\n  assert.same(imulh(1, 7), 0);\n  assert.same(imulh(-1, 7), -1);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.isubh.js",
    "content": "QUnit.test('Math.isubh', assert => {\n  const { isubh } = Math;\n  assert.isFunction(isubh);\n  assert.name(isubh, 'isubh');\n  assert.arity(isubh, 4);\n  assert.looksNative(isubh);\n  assert.nonEnumerable(Math, 'isubh');\n  assert.same(isubh(0, 2, 1, 0), 1);\n  assert.same(isubh(0, 4, 1, 1), 2);\n  assert.same(isubh(2, 4, 1, 1), 3);\n  assert.same(isubh(0xFFFFFFFF, 4, 1, 1), 3);\n  assert.same(isubh(1, 4, 0xFFFFFFFF, 1), 2);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.rad-per-deg.js",
    "content": "QUnit.test('Math.RAD_PER_DEG', assert => {\n  const { RAD_PER_DEG, PI } = Math;\n  assert.true('RAD_PER_DEG' in Math, 'RAD_PER_DEG in Math');\n  assert.nonEnumerable(Math, 'RAD_PER_DEG');\n  assert.nonConfigurable(Math, 'RAD_PER_DEG');\n  assert.nonWritable(Math, 'RAD_PER_DEG');\n  assert.same(RAD_PER_DEG, 180 / PI, 'Is 180 / Math.PI');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.radians.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.radians', assert => {\n  const { radians, PI } = Math;\n  assert.isFunction(radians);\n  assert.name(radians, 'radians');\n  assert.arity(radians, 1);\n  assert.looksNative(radians);\n  assert.nonEnumerable(Math, 'radians');\n  assert.same(radians(0), 0);\n  assert.same(radians(90), PI / 2);\n  assert.same(radians(180), PI);\n  assert.same(radians(270), 3 * PI / 2);\n\n  const checker = createConversionChecker(270);\n  assert.same(radians(checker), 3 * PI / 2, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.scale.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.scale', assert => {\n  const { scale } = Math;\n  assert.isFunction(scale);\n  assert.name(scale, 'scale');\n  assert.arity(scale, 5);\n  assert.looksNative(scale);\n  assert.nonEnumerable(Math, 'scale');\n  assert.same(scale(3, 1, 2, 1, 2), 3);\n  assert.same(scale(0, 3, 5, 8, 10), 5);\n  assert.same(scale(1, 1, 1, 1, 1), NaN);\n  assert.same(scale(-1, -1, -1, -1, -1), NaN);\n\n  const checker1 = createConversionChecker(3);\n  const checker2 = createConversionChecker(1);\n  const checker3 = createConversionChecker(2);\n  const checker4 = createConversionChecker(1);\n  const checker5 = createConversionChecker(2);\n  assert.same(scale(checker1, checker2, checker3, checker4, checker5), 3, 'object wrapper');\n  assert.same(checker1.$valueOf, 1, 'checker1 valueOf calls');\n  assert.same(checker1.$toString, 0, 'checker1 toString calls');\n  assert.same(checker2.$valueOf, 1, 'checker2 valueOf calls');\n  assert.same(checker2.$toString, 0, 'checker2 toString calls');\n  assert.same(checker3.$valueOf, 1, 'checker3 valueOf calls');\n  assert.same(checker3.$toString, 0, 'checker3 toString calls');\n  assert.same(checker4.$valueOf, 1, 'checker4 valueOf calls');\n  assert.same(checker4.$toString, 0, 'checker4 toString calls');\n  assert.same(checker5.$valueOf, 1, 'checker5 valueOf calls');\n  assert.same(checker5.$toString, 0, 'checker5 toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.seeded-prng.js",
    "content": "QUnit.test('Math.seededPRNG', assert => {\n  const { seededPRNG } = Math;\n  assert.isFunction(seededPRNG);\n  assert.name(seededPRNG, 'seededPRNG');\n  assert.arity(seededPRNG, 1);\n  assert.looksNative(seededPRNG);\n  assert.nonEnumerable(Math, 'seededPRNG');\n\n  for (const gen of [seededPRNG({ seed: 42 }), seededPRNG({ seed: 42 })]) {\n    assert.deepEqual(gen.next(), { value: 0.16461519912315087, done: false });\n    assert.deepEqual(gen.next(), { value: 0.2203933906000046, done: false });\n    assert.deepEqual(gen.next(), { value: 0.8249682894209105, done: false });\n    assert.deepEqual(gen.next(), { value: 0.10750079537509083, done: false });\n    assert.deepEqual(gen.next(), { value: 0.004673248161257476, done: false });\n  }\n\n  for (const gen of [seededPRNG({ seed: 43 }), seededPRNG({ seed: 43 })]) {\n    assert.deepEqual(gen.next(), { value: 0.1923438591811283, done: false });\n    assert.deepEqual(gen.next(), { value: 0.7896811578326683, done: false });\n    assert.deepEqual(gen.next(), { value: 0.9518230761883996, done: false });\n    assert.deepEqual(gen.next(), { value: 0.1414634102410296, done: false });\n    assert.deepEqual(gen.next(), { value: 0.7379838030207752, done: false });\n  }\n\n  assert.throws(() => seededPRNG(), TypeError);\n  assert.throws(() => seededPRNG(5), TypeError);\n  assert.throws(() => seededPRNG({ seed: null }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.signbit.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nQUnit.test('Math.signbit', assert => {\n  const { signbit } = Math;\n  assert.isFunction(signbit);\n  assert.name(signbit, 'signbit');\n  assert.arity(signbit, 1);\n  assert.looksNative(signbit);\n  assert.nonEnumerable(Math, 'signbit');\n  assert.false(signbit(NaN));\n  assert.false(signbit());\n  assert.true(signbit(-0));\n  assert.false(signbit(0));\n  assert.false(signbit(Infinity));\n  assert.true(signbit(-Infinity));\n  assert.false(signbit(13510798882111488));\n  assert.true(signbit(-13510798882111488));\n  assert.false(signbit(42.5));\n  assert.true(signbit(-42.5));\n\n  const checker = createConversionChecker(-13510798882111488);\n  assert.true(signbit(checker), 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.math.umulh.js",
    "content": "QUnit.test('Math.umulh', assert => {\n  const { umulh } = Math;\n  assert.isFunction(umulh);\n  assert.name(umulh, 'umulh');\n  assert.arity(umulh, 2);\n  assert.looksNative(umulh);\n  assert.nonEnumerable(Math, 'umulh');\n  assert.same(umulh(0xFFFFFFFF, 7), 6);\n  assert.same(umulh(0xFFFFFFF, 77), 4);\n  assert.same(umulh(1, 7), 0);\n  assert.same(umulh(-1, 7), 6);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.number.clamp.js",
    "content": "QUnit.test('Number#clamp', assert => {\n  const { clamp } = Number.prototype;\n  assert.isFunction(clamp);\n  assert.name(clamp, 'clamp');\n  assert.arity(clamp, 2);\n  assert.looksNative(clamp);\n  assert.nonEnumerable(Number.prototype, 'clamp');\n\n  assert.same(clamp.call(2, 4, 6), 4);\n  assert.same(clamp.call(4, 2, 6), 4);\n  assert.same(clamp.call(6, 2, 4), 4);\n\n  assert.same(clamp.call(-0, 0, 1), 0, 'If value is -0𝔽 and min is +0𝔽, return +0𝔽.');\n  assert.same(clamp.call(0, -0, 1), 0, 'If value is +0𝔽 and min is -0𝔽, return +0𝔽.');\n  assert.same(clamp.call(-0, -1, 0), -0, 'If value is -0𝔽 and max is +0𝔽, return -0𝔽.');\n  assert.same(clamp.call(0, -1, -0), -0, 'If value is +0𝔽 and max is -0𝔽, return -0𝔽.');\n  assert.same(clamp.call(0, -0, -0), -0, 'If min = max return min.');\n\n  assert.same(clamp.call(2, 0, -0), -0, 'min is +0𝔽 and max is -0𝔽');\n  assert.same(clamp.call(2, 3, 1), 1, 'min > max');\n\n  assert.same(clamp.call(NaN, 3, 1), NaN, 'If value is NaN, return NaN.');\n  assert.same(clamp.call(2, NaN, 1), NaN, 'If min is NaN, return NaN.');\n  assert.same(clamp.call(2, 3, NaN), NaN, 'If max is NaN, return NaN.');\n\n  assert.throws(() => clamp.call({ valueOf: () => 2 }, 1, 3), TypeError, 'If value is not a Number, throw a TypeError exception');\n  assert.throws(() => clamp.call(2, Object(1), 3), TypeError, 'If min is not a Number, throw a TypeError exception.');\n  assert.throws(() => clamp.call(2, 1, Object(3)), TypeError, 'If max is not a Number, throw a TypeError exception.');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.number.from-string.js",
    "content": "QUnit.test('Number.fromString', assert => {\n  const { fromString } = Number;\n  assert.isFunction(fromString);\n  assert.name(fromString, 'fromString');\n  assert.arity(fromString, 2);\n  assert.looksNative(fromString);\n  assert.nonEnumerable(Number, 'fromString');\n  assert.throws(() => fromString(undefined), TypeError, 'The first argument should be a string #1');\n  assert.throws(() => fromString(Object('10')), TypeError, 'The first argument should be a string #2');\n  assert.throws(() => fromString(''), SyntaxError, 'Empty string');\n  assert.same(fromString('-10', 2), -2, 'Works with negative numbers');\n  assert.throws(() => fromString('-'), SyntaxError, '-');\n  assert.same(fromString('10'), 10, 'Default radix is 10 #1');\n  assert.same(fromString('10', undefined), 10, 'Default radix is 10 #2');\n  for (let radix = 2; radix <= 36; ++radix) {\n    assert.same(fromString('10', radix), radix, `Radix ${ radix }`);\n  }\n  assert.throws(() => fromString('10', -4294967294), RangeError, 'Radix uses ToInteger #1');\n\n  assert.same(fromString('10', 2.5), 2, 'Radix uses ToInteger #2');\n  assert.same(fromString('42'), 42);\n  assert.same(fromString('42', 10), 42);\n  assert.same(fromString('3.14159', 10), 3.14159);\n  assert.same(fromString('-100.11', 2), -4.75);\n  assert.same(fromString('202.1', 3), 20.333333333333332);\n\n  assert.same(fromString('0'), 0);\n  assert.same(fromString('0', 2), 0);\n  assert.same(fromString('-0'), -0);\n  assert.same(fromString('-0', 2), -0);\n\n  assert.throws(() => fromString('0xc0ffee'), SyntaxError);\n  assert.throws(() => fromString('0o755'), SyntaxError);\n  assert.throws(() => fromString('0b00101010'), SyntaxError);\n  assert.throws(() => fromString('C0FFEE', 16), SyntaxError);\n  assert.same(fromString('c0ffee', 16), 12648430);\n  assert.same(fromString('755', 8), 493);\n  assert.throws(() => fromString(' '), SyntaxError);\n  assert.throws(() => fromString(' 1'), SyntaxError);\n  assert.throws(() => fromString(' \\n '), SyntaxError);\n  assert.throws(() => fromString('x'), SyntaxError);\n  assert.throws(() => fromString('1234', 0), RangeError);\n  assert.throws(() => fromString('1234', 1), RangeError);\n  assert.throws(() => fromString('1234', 37), RangeError);\n  assert.throws(() => fromString('010'), SyntaxError);\n  assert.throws(() => fromString('1_000_000_000'), SyntaxError);\n\n  assert.same(fromString('1.0'), 1, 'trailing fractional zero');\n  assert.same(fromString('1.00'), 1, 'trailing fractional zeros');\n  assert.same(fromString('1.10'), 1.1, 'trailing fractional zero after non-zero');\n  assert.same(fromString('0.0'), 0, 'zero with trailing fractional zero');\n  assert.same(fromString('-1.0'), -1, 'negative with trailing fractional zero');\n\n  assert.throws(() => fromString('19', 8), SyntaxError, 'Invalid digit for radix #1');\n  assert.throws(() => fromString('1g', 16), SyntaxError, 'Invalid digit for radix #2');\n  assert.throws(() => fromString('fg', 16), SyntaxError, 'Invalid digit for radix #3');\n  assert.throws(() => fromString('89', 8), SyntaxError, 'Invalid digit for radix #4');\n  assert.throws(() => fromString('1.2.3', 16), SyntaxError, 'Multiple dots #1');\n  assert.throws(() => fromString('1.2.3', 10), SyntaxError, 'Multiple dots #2');\n  assert.throws(() => fromString('.5', 16), SyntaxError, 'Leading dot #1');\n  assert.throws(() => fromString('5.', 16), SyntaxError, 'Trailing dot #1');\n  assert.throws(() => fromString('.5', 10), SyntaxError, 'Leading dot #2');\n  assert.throws(() => fromString('5.', 10), SyntaxError, 'Trailing dot #2');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.number.range.js",
    "content": "import { MAX_SAFE_INTEGER } from '../helpers/constants.js';\n\nQUnit.test('Number.range', assert => {\n  const { range } = Number;\n  const { from } = Array;\n  assert.isFunction(range);\n  assert.name(range, 'range');\n  assert.arity(range, 3);\n  assert.looksNative(range);\n  assert.nonEnumerable(Number, 'range');\n\n  let iterator = range(1, 2);\n\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.deepEqual(iterator.next(), {\n    value: 1,\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n\n  assert.deepEqual(from(range(-1, 5)), [-1, 0, 1, 2, 3, 4]);\n  assert.deepEqual(from(range(-5, 1)), [-5, -4, -3, -2, -1, 0]);\n  assert.deepEqual(\n    from(range(0, 1, 0.1)),\n    [0, 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6000000000000001, 0.7000000000000001, 0.8, 0.9],\n  );\n  assert.deepEqual(\n    from(range(MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1, { inclusive: true })),\n    [MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1],\n  );\n  assert.deepEqual(from(range(0, 0)), []);\n  assert.deepEqual(from(range(0, -5, 1)), []);\n\n  assert.throws(() => range(NaN, 0), RangeError, 'NaN as start');\n  assert.throws(() => range(0, NaN), RangeError, 'NaN as end');\n  assert.throws(() => range(NaN, NaN), RangeError, 'NaN as start and end');\n  assert.throws(() => range(0, 0, { step: NaN }), RangeError, 'NaN as step option');\n  assert.throws(() => range(0, 5, NaN), RangeError, 'NaN as step argument');\n\n  iterator = range(1, 3);\n  assert.deepEqual(iterator.start, 1);\n  assert.deepEqual(iterator.end, 3);\n  assert.deepEqual(iterator.step, 1);\n  assert.false(iterator.inclusive);\n\n  iterator = range(-1, -3, { inclusive: true });\n  assert.deepEqual(iterator.start, -1);\n  assert.deepEqual(iterator.end, -3);\n  assert.same(iterator.step, -1);\n  assert.true(iterator.inclusive);\n\n  iterator = range(-1, -3, { step: 4, inclusive() { /* empty */ } });\n  assert.same(iterator.start, -1);\n  assert.same(iterator.end, -3);\n  assert.same(iterator.step, 4);\n  assert.true(iterator.inclusive);\n\n  iterator = range(0, 5);\n  assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError);\n\n  assert.throws(() => range(Infinity, 10, 0), RangeError);\n  assert.throws(() => range(-Infinity, 10, 0), RangeError);\n  assert.throws(() => range(0, 10, Infinity), RangeError);\n  assert.throws(() => range(0, 10, { step: Infinity }), RangeError);\n\n  assert.throws(() => range({}, 1), TypeError);\n  assert.throws(() => range(1, {}), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.object.iterate-entries.js",
    "content": "QUnit.test('Object.iterateEntries', assert => {\n  const { iterateEntries } = Object;\n  assert.isFunction(iterateEntries);\n  assert.name(iterateEntries, 'iterateEntries');\n  assert.arity(iterateEntries, 1);\n  assert.looksNative(iterateEntries);\n  assert.nonEnumerable(Object, 'iterateEntries');\n\n  const object = {\n    q: 1,\n    w: 2,\n    e: 3,\n  };\n  const iterator = iterateEntries(object);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Object Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: ['q', 1],\n    done: false,\n  });\n  delete object.w;\n  assert.deepEqual(iterator.next(), {\n    value: ['e', 3],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.object.iterate-keys.js",
    "content": "QUnit.test('Object.iterateKeys', assert => {\n  const { iterateKeys } = Object;\n  assert.isFunction(iterateKeys);\n  assert.name(iterateKeys, 'iterateKeys');\n  assert.arity(iterateKeys, 1);\n  assert.looksNative(iterateKeys);\n  assert.nonEnumerable(Object, 'iterateKeys');\n\n  const object = {\n    q: 1,\n    w: 2,\n    e: 3,\n  };\n  const iterator = iterateKeys(object);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Object Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  delete object.w;\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.object.iterate-values.js",
    "content": "QUnit.test('Object.iterateValues', assert => {\n  const { iterateValues } = Object;\n  assert.isFunction(iterateValues);\n  assert.name(iterateValues, 'iterateValues');\n  assert.arity(iterateValues, 1);\n  assert.looksNative(iterateValues);\n  assert.nonEnumerable(Object, 'iterateValues');\n\n  const object = {\n    q: 1,\n    w: 2,\n    e: 3,\n  };\n  const iterator = iterateValues(object);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Object Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 1,\n    done: false,\n  });\n  delete object.w;\n  assert.deepEqual(iterator.next(), {\n    value: 3,\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.observable.constructor.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('Observable', assert => {\n  assert.isFunction(Observable);\n  assert.arity(Observable, 1);\n  assert.name(Observable, 'Observable');\n  assert.looksNative(Observable);\n  assert.throws(() => Observable(() => { /* empty */ }), 'throws w/o `new`');\n  const observable = new Observable(function (subscriptionObserver) {\n    assert.same(typeof subscriptionObserver, 'object', 'Subscription observer is object');\n    assert.same(subscriptionObserver.constructor, Object);\n    const { next, error, complete } = subscriptionObserver;\n    assert.isFunction(next);\n    assert.isFunction(error);\n    assert.isFunction(complete);\n    assert.arity(next, 1);\n    assert.arity(error, 1);\n    assert.arity(complete, 0);\n    if (STRICT) {\n      assert.same(this, undefined, 'correct executor context');\n    }\n  });\n  observable.subscribe({});\n  assert.true(observable instanceof Observable);\n});\n\nQUnit.test('Observable#subscribe', assert => {\n  assert.isFunction(Observable.prototype.subscribe);\n  assert.arity(Observable.prototype.subscribe, 1);\n  assert.name(Observable.prototype.subscribe, 'subscribe');\n  assert.looksNative(Observable.prototype.subscribe);\n  const subscription = new Observable(() => { /* empty */ }).subscribe({});\n  assert.same(typeof subscription, 'object', 'Subscription is object');\n  assert.same(subscription.constructor, Object);\n  assert.isFunction(subscription.unsubscribe);\n  assert.arity(subscription.unsubscribe, 0);\n});\n\nQUnit.test('Observable#constructor', assert => {\n  assert.same(Observable.prototype.constructor, Observable);\n});\n\nQUnit.test('Observable#@@observable', assert => {\n  assert.isFunction(Observable.prototype[Symbol.observable]);\n  const observable = new Observable(() => { /* empty*/ });\n  assert.same(observable[Symbol.observable](), observable);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.observable.from.js",
    "content": "QUnit.test('Observable.from', assert => {\n  assert.isFunction(Observable.from);\n  assert.arity(Observable.from, 1);\n  assert.name(Observable.from, 'from');\n  assert.looksNative(Observable.from);\n\n  const results1 = [];\n  Observable.from([1, 2, 3]).subscribe({ next: v => results1.push(v) });\n  assert.deepEqual(results1, [1, 2, 3], 'first subscription receives all values');\n\n  const obs = Observable.from([4, 5, 6]);\n  const sub1 = [];\n  const sub2 = [];\n  obs.subscribe({ next: v => sub1.push(v) });\n  obs.subscribe({ next: v => sub2.push(v) });\n  assert.deepEqual(sub1, [4, 5, 6], 'multi-subscribe: first subscription');\n  assert.deepEqual(sub2, [4, 5, 6], 'multi-subscribe: second subscription gets fresh iterator');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.observable.of.js",
    "content": "QUnit.test('Observable.of', assert => {\n  assert.isFunction(Observable.of);\n  assert.arity(Observable.of, 0);\n  assert.name(Observable.of, 'of');\n  assert.looksNative(Observable.of);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.reflect.define-metadata.js",
    "content": "QUnit.test('Reflect.defineMetadata', assert => {\n  const { defineMetadata } = Reflect;\n  assert.isFunction(defineMetadata);\n  assert.arity(defineMetadata, 3);\n  assert.name(defineMetadata, 'defineMetadata');\n  assert.looksNative(defineMetadata);\n  assert.nonEnumerable(Reflect, 'defineMetadata');\n  assert.throws(() => defineMetadata('key', 'value', undefined, undefined), TypeError);\n  assert.same(defineMetadata('key', 'value', {}, undefined), undefined);\n  assert.same(defineMetadata('key', 'value', {}, 'name'), undefined);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.reflect.delete-metadata.js",
    "content": "QUnit.test('Reflect.deleteMetadata', assert => {\n  const { defineMetadata, hasOwnMetadata, deleteMetadata } = Reflect;\n  const { create } = Object;\n  assert.isFunction(deleteMetadata);\n  assert.arity(deleteMetadata, 2);\n  assert.name(deleteMetadata, 'deleteMetadata');\n  assert.looksNative(deleteMetadata);\n  assert.nonEnumerable(Reflect, 'deleteMetadata');\n  assert.throws(() => deleteMetadata('key', undefined, undefined), TypeError);\n  assert.false(deleteMetadata('key', {}, undefined));\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.true(deleteMetadata('key', object, undefined));\n  const prototype = {};\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.false(deleteMetadata('key', create(prototype), undefined));\n  object = {};\n  defineMetadata('key', 'value', object, undefined);\n  deleteMetadata('key', object, undefined);\n  assert.false(hasOwnMetadata('key', object, undefined));\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.reflect.get-metadata-keys.js",
    "content": "QUnit.test('Reflect.getMetadataKeys', assert => {\n  const { defineMetadata, getMetadataKeys } = Reflect;\n  const { create } = Object;\n  assert.isFunction(getMetadataKeys);\n  assert.arity(getMetadataKeys, 1);\n  assert.name(getMetadataKeys, 'getMetadataKeys');\n  assert.looksNative(getMetadataKeys);\n  assert.nonEnumerable(Reflect, 'getMetadataKeys');\n  assert.throws(() => getMetadataKeys(undefined, undefined), TypeError);\n  assert.deepEqual(getMetadataKeys({}, undefined), []);\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.deepEqual(getMetadataKeys(object, undefined), ['key']);\n  let prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.deepEqual(getMetadataKeys(object, undefined), ['key']);\n  object = {};\n  defineMetadata('key0', 'value', object, undefined);\n  defineMetadata('key1', 'value', object, undefined);\n  assert.deepEqual(getMetadataKeys(object, undefined), ['key0', 'key1']);\n  object = {};\n  defineMetadata('key0', 'value', object, undefined);\n  defineMetadata('key1', 'value', object, undefined);\n  defineMetadata('key0', 'value', object, undefined);\n  assert.deepEqual(getMetadataKeys(object, undefined), ['key0', 'key1']);\n  prototype = {};\n  defineMetadata('key2', 'value', prototype, undefined);\n  object = create(prototype);\n  defineMetadata('key0', 'value', object, undefined);\n  defineMetadata('key1', 'value', object, undefined);\n  assert.deepEqual(getMetadataKeys(object, undefined), ['key0', 'key1', 'key2']);\n  assert.deepEqual(getMetadataKeys({}, 'name'), []);\n  object = {};\n  defineMetadata('key', 'value', object, 'name');\n  assert.deepEqual(getMetadataKeys(object, 'name'), ['key']);\n  prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, 'name');\n  assert.deepEqual(getMetadataKeys(object, 'name'), ['key']);\n  object = {};\n  defineMetadata('key0', 'value', object, 'name');\n  defineMetadata('key1', 'value', object, 'name');\n  defineMetadata('key0', 'value', object, 'name');\n  assert.deepEqual(getMetadataKeys(object, 'name'), ['key0', 'key1']);\n  prototype = {};\n  defineMetadata('key2', 'value', prototype, 'name');\n  object = create(prototype);\n  defineMetadata('key0', 'value', object, 'name');\n  defineMetadata('key1', 'value', object, 'name');\n  assert.deepEqual(getMetadataKeys(object, 'name'), ['key0', 'key1', 'key2']);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.reflect.get-metadata.js",
    "content": "QUnit.test('Reflect.getMetadata', assert => {\n  const { defineMetadata, getMetadata } = Reflect;\n  const { create } = Object;\n  assert.isFunction(getMetadata);\n  assert.arity(getMetadata, 2);\n  assert.name(getMetadata, 'getMetadata');\n  assert.looksNative(getMetadata);\n  assert.nonEnumerable(Reflect, 'getMetadata');\n  assert.throws(() => getMetadata('key', undefined, undefined), TypeError);\n  assert.same(getMetadata('key', {}, undefined), undefined);\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.same(getMetadata('key', object, undefined), 'value');\n  let prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.same(getMetadata('key', object, undefined), 'value');\n  assert.same(getMetadata('key', {}, 'name'), undefined);\n  object = {};\n  defineMetadata('key', 'value', object, 'name');\n  assert.same(getMetadata('key', object, 'name'), 'value');\n  prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, 'name');\n  assert.same(getMetadata('key', object, 'name'), 'value');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.reflect.get-own-metadata-keys.js",
    "content": "QUnit.test('Reflect.getOwnMetadataKeys', assert => {\n  const { defineMetadata, getOwnMetadataKeys } = Reflect;\n  const { create } = Object;\n  assert.isFunction(getOwnMetadataKeys);\n  assert.arity(getOwnMetadataKeys, 1);\n  assert.name(getOwnMetadataKeys, 'getOwnMetadataKeys');\n  assert.looksNative(getOwnMetadataKeys);\n  assert.nonEnumerable(Reflect, 'getOwnMetadataKeys');\n  assert.throws(() => getOwnMetadataKeys(undefined, undefined), TypeError);\n  assert.deepEqual(getOwnMetadataKeys({}, undefined), []);\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.deepEqual(getOwnMetadataKeys(object, undefined), ['key']);\n  let prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.deepEqual(getOwnMetadataKeys(object, undefined), []);\n  object = {};\n  defineMetadata('key0', 'value', object, undefined);\n  defineMetadata('key1', 'value', object, undefined);\n  assert.deepEqual(getOwnMetadataKeys(object, undefined), ['key0', 'key1']);\n  object = {};\n  defineMetadata('key0', 'value', object, undefined);\n  defineMetadata('key1', 'value', object, undefined);\n  defineMetadata('key0', 'value', object, undefined);\n  assert.deepEqual(getOwnMetadataKeys(object, undefined), ['key0', 'key1']);\n  prototype = {};\n  defineMetadata('key2', 'value', prototype, undefined);\n  object = create(prototype);\n  defineMetadata('key0', 'value', object, undefined);\n  defineMetadata('key1', 'value', object, undefined);\n  assert.deepEqual(getOwnMetadataKeys(object, undefined), ['key0', 'key1']);\n  assert.deepEqual(getOwnMetadataKeys({}, 'name'), []);\n  object = {};\n  defineMetadata('key', 'value', object, 'name');\n  assert.deepEqual(getOwnMetadataKeys(object, 'name'), ['key']);\n  prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, 'name');\n  assert.deepEqual(getOwnMetadataKeys(object, 'name'), []);\n  object = {};\n  defineMetadata('key0', 'value', object, 'name');\n  defineMetadata('key1', 'value', object, 'name');\n  defineMetadata('key0', 'value', object, 'name');\n  assert.deepEqual(getOwnMetadataKeys(object, 'name'), ['key0', 'key1']);\n  prototype = {};\n  defineMetadata('key2', 'value', prototype, 'name');\n  object = create(prototype);\n  defineMetadata('key0', 'value', object, 'name');\n  defineMetadata('key1', 'value', object, 'name');\n  assert.deepEqual(getOwnMetadataKeys(object, 'name'), ['key0', 'key1']);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.reflect.get-own-metadata.js",
    "content": "QUnit.test('Reflect.getOwnMetadata', assert => {\n  const { defineMetadata, getOwnMetadata } = Reflect;\n  const { create } = Object;\n  assert.isFunction(getOwnMetadata);\n  assert.arity(getOwnMetadata, 2);\n  assert.name(getOwnMetadata, 'getOwnMetadata');\n  assert.looksNative(getOwnMetadata);\n  assert.nonEnumerable(Reflect, 'getOwnMetadata');\n  assert.throws(() => getOwnMetadata('key', undefined, undefined), TypeError);\n  assert.same(getOwnMetadata('key', {}, undefined), undefined);\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.same(getOwnMetadata('key', object, undefined), 'value');\n  let prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.same(getOwnMetadata('key', object, undefined), undefined);\n  assert.same(getOwnMetadata('key', {}, 'name'), undefined);\n  object = {};\n  defineMetadata('key', 'value', object, 'name');\n  assert.same(getOwnMetadata('key', object, 'name'), 'value');\n  prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, 'name');\n  assert.same(getOwnMetadata('key', object, 'name'), undefined);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.reflect.has-metadata.js",
    "content": "QUnit.test('Reflect.hasMetadata', assert => {\n  const { defineMetadata, hasMetadata } = Reflect;\n  const { create } = Object;\n  assert.isFunction(hasMetadata);\n  assert.arity(hasMetadata, 2);\n  assert.name(hasMetadata, 'hasMetadata');\n  assert.looksNative(hasMetadata);\n  assert.nonEnumerable(Reflect, 'hasMetadata');\n  assert.throws(() => hasMetadata('key', undefined, undefined), TypeError);\n  assert.false(hasMetadata('key', {}, undefined));\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.true(hasMetadata('key', object, undefined));\n  let prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.true(hasMetadata('key', object, undefined));\n  assert.false(hasMetadata('key', {}, 'name'));\n  object = {};\n  defineMetadata('key', 'value', object, 'name');\n  assert.true(hasMetadata('key', object, 'name'));\n  prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, 'name');\n  assert.true(hasMetadata('key', object, 'name'));\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.reflect.has-own-metadata.js",
    "content": "QUnit.test('Reflect.hasOwnMetadata', assert => {\n  const { defineMetadata, hasOwnMetadata } = Reflect;\n  const { create } = Object;\n  assert.isFunction(hasOwnMetadata);\n  assert.arity(hasOwnMetadata, 2);\n  assert.name(hasOwnMetadata, 'hasOwnMetadata');\n  assert.looksNative(hasOwnMetadata);\n  assert.nonEnumerable(Reflect, 'hasOwnMetadata');\n  assert.throws(() => hasOwnMetadata('key', undefined, undefined), TypeError);\n  assert.false(hasOwnMetadata('key', {}, undefined));\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.true(hasOwnMetadata('key', object, undefined));\n  let prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.false(hasOwnMetadata('key', object, undefined));\n  assert.false(hasOwnMetadata('key', {}, 'name'));\n  object = {};\n  defineMetadata('key', 'value', object, 'name');\n  assert.true(hasOwnMetadata('key', object, 'name'));\n  prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, 'name');\n  assert.false(hasOwnMetadata('key', object, 'name'));\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.reflect.metadata.js",
    "content": "QUnit.test('Reflect.metadata', assert => {\n  const { metadata, hasOwnMetadata } = Reflect;\n  assert.isFunction(metadata);\n  assert.arity(metadata, 2);\n  assert.name(metadata, 'metadata');\n  assert.looksNative(metadata);\n  assert.isFunction(metadata('key', 'value'));\n  assert.nonEnumerable(Reflect, 'metadata');\n  const decorator = metadata('key', 'value');\n  assert.throws(() => decorator(undefined, 'name'), TypeError);\n  let target = function () { /* empty */ };\n  decorator(target);\n  assert.true(hasOwnMetadata('key', target, undefined));\n  target = {};\n  decorator(target, 'name');\n  assert.true(hasOwnMetadata('key', target, 'name'));\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.set.add-all.js",
    "content": "QUnit.test('Set#addAll', assert => {\n  const { addAll } = Set.prototype;\n  const { from } = Array;\n\n  assert.isFunction(addAll);\n  assert.arity(addAll, 0);\n  assert.name(addAll, 'addAll');\n  assert.looksNative(addAll);\n  assert.nonEnumerable(Set.prototype, 'addAll');\n\n  const set = new Set([1]);\n  assert.same(set.addAll(2), set);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).addAll(4, 5)), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).addAll(3, 4)), [1, 2, 3, 4]);\n  assert.deepEqual(from(new Set([1, 2, 3]).addAll()), [1, 2, 3]);\n\n  assert.throws(() => addAll.call({ add() { /* empty */ } }, 1, 2, 3));\n  assert.throws(() => addAll.call({}, 1, 2, 3), TypeError);\n  assert.throws(() => addAll.call(undefined, 1, 2, 3), TypeError);\n  assert.throws(() => addAll.call(null, 1, 2, 3), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.set.delete-all.js",
    "content": "QUnit.test('Set#deleteAll', assert => {\n  const { deleteAll } = Set.prototype;\n  const { from } = Array;\n\n  assert.isFunction(deleteAll);\n  assert.arity(deleteAll, 0);\n  assert.name(deleteAll, 'deleteAll');\n  assert.looksNative(deleteAll);\n  assert.nonEnumerable(Set.prototype, 'deleteAll');\n\n  let set = new Set([1, 2, 3]);\n  assert.true(set.deleteAll(1, 2));\n  assert.deepEqual(from(set), [3]);\n\n  set = new Set([1, 2, 3]);\n  assert.false(set.deleteAll(3, 4));\n  assert.deepEqual(from(set), [1, 2]);\n\n  set = new Set([1, 2, 3]);\n  assert.false(set.deleteAll(4, 5));\n  assert.deepEqual(from(set), [1, 2, 3]);\n\n  set = new Set([1, 2, 3]);\n  assert.true(set.deleteAll());\n  assert.deepEqual(from(set), [1, 2, 3]);\n\n  assert.throws(() => deleteAll.call({ delete() { /* empty */ } }, 1, 2, 3));\n  assert.throws(() => deleteAll.call({}, 1, 2, 3), TypeError);\n  assert.throws(() => deleteAll.call(undefined, 1, 2, 3), TypeError);\n  assert.throws(() => deleteAll.call(null, 1, 2, 3), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.set.every.js",
    "content": "QUnit.test('Set#every', assert => {\n  const { every } = Set.prototype;\n\n  assert.isFunction(every);\n  assert.arity(every, 1);\n  assert.name(every, 'every');\n  assert.looksNative(every);\n  assert.nonEnumerable(Set.prototype, 'every');\n\n  const set = new Set([1]);\n  const context = {};\n  set.every(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, set, 'correct link to set in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Set([1, 2, 3]).every(it => typeof it == 'number'));\n  assert.false(new Set(['1', '2', '3']).every(it => typeof it == 'number'));\n  assert.false(new Set([1, '2', 3]).every(it => typeof it == 'number'));\n  assert.true(new Set().every(it => typeof it == 'number'));\n\n  assert.throws(() => every.call(new Map(), () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.set.filter.js",
    "content": "QUnit.test('Set#filter', assert => {\n  const { filter } = Set.prototype;\n  const { from } = Array;\n\n  assert.isFunction(filter);\n  assert.arity(filter, 1);\n  assert.name(filter, 'filter');\n  assert.looksNative(filter);\n  assert.nonEnumerable(Set.prototype, 'filter');\n\n  const set = new Set([1]);\n  const context = {};\n  set.filter(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, set, 'correct link to set in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Set().filter(it => it) instanceof Set);\n\n  assert.deepEqual(from(new Set([1, 2, 3, 'q', {}, 4, true, 5]).filter(it => typeof it == 'number')), [1, 2, 3, 4, 5]);\n\n  assert.throws(() => filter.call(new Map(), () => { /* empty */ }), TypeError);\n  assert.throws(() => filter.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => filter.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => filter.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => filter.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.set.find.js",
    "content": "QUnit.test('Set#find', assert => {\n  const { find } = Set.prototype;\n\n  assert.isFunction(find);\n  assert.arity(find, 1);\n  assert.name(find, 'find');\n  assert.looksNative(find);\n  assert.nonEnumerable(Set.prototype, 'find');\n\n  const set = new Set([1]);\n  const context = {};\n  set.find(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, set, 'correct link to set in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.same(new Set([2, 3, 4]).find(it => it % 2), 3);\n  assert.same(new Set().find(it => it === 42), undefined);\n\n  assert.throws(() => find.call(new Map(), () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.set.from.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Set.from', assert => {\n  const { from } = Set;\n  const toArray = Array.from;\n  assert.isFunction(from);\n  assert.arity(from, 1);\n  assert.name(from, 'from');\n  assert.looksNative(from);\n  assert.nonEnumerable(Set, 'from');\n  assert.true(from([]) instanceof Set);\n  assert.deepEqual(toArray(from([])), []);\n  assert.deepEqual(toArray(from([1])), [1]);\n  assert.deepEqual(toArray(from([1, 2, 3, 2, 1])), [1, 2, 3]);\n  assert.deepEqual(toArray(from(createIterable([1, 2, 3, 2, 1]))), [1, 2, 3]);\n  const context = {};\n  from([1], function (element, index) {\n    assert.same(element, 1);\n    assert.same(index, 0);\n    assert.same(this, context);\n    return element;\n  }, context);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.set.join.js",
    "content": "/* eslint-disable unicorn/require-array-join-separator -- required for testing */\nQUnit.test('Set#join', assert => {\n  const { join } = Set.prototype;\n\n  assert.isFunction(join);\n  assert.arity(join, 1);\n  assert.name(join, 'join');\n  assert.looksNative(join);\n  assert.nonEnumerable(Set.prototype, 'join');\n\n  assert.same(new Set([1, 2, 3]).join(), '1,2,3');\n  assert.same(new Set([1, 2, 3]).join(undefined), '1,2,3');\n  assert.same(new Set([1, 2, 3]).join('|'), '1|2|3');\n\n  assert.throws(() => join.call(new Map()), TypeError);\n  assert.throws(() => join.call({}), TypeError);\n  assert.throws(() => join.call([]), TypeError);\n  assert.throws(() => join.call(undefined), TypeError);\n  assert.throws(() => join.call(null), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.set.map.js",
    "content": "QUnit.test('Set#map', assert => {\n  const { map } = Set.prototype;\n  const { from } = Array;\n\n  assert.isFunction(map);\n  assert.arity(map, 1);\n  assert.name(map, 'map');\n  assert.looksNative(map);\n  assert.nonEnumerable(Set.prototype, 'map');\n\n  const set = new Set([1]);\n  const context = {};\n  set.map(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, set, 'correct link to set in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Set().map(it => it) instanceof Set);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).map(it => it ** 2)), [1, 4, 9]);\n  assert.deepEqual(from(new Set([1, 2, 3]).map(it => it % 2)), [1, 0]);\n\n  assert.throws(() => map.call(new Map(), () => { /* empty */ }), TypeError);\n  assert.throws(() => map.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => map.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => map.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => map.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.set.of.js",
    "content": "QUnit.test('Set.of', assert => {\n  const { of } = Set;\n  const toArray = Array.from;\n  assert.isFunction(of);\n  assert.arity(of, 0);\n  assert.name(of, 'of');\n  assert.looksNative(of);\n  assert.nonEnumerable(Set, 'of');\n  assert.true(of() instanceof Set);\n  assert.deepEqual(toArray(of(1)), [1]);\n  assert.deepEqual(toArray(of(1, 2, 3, 2, 1)), [1, 2, 3]);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.set.reduce.js",
    "content": "QUnit.test('Set#reduce', assert => {\n  const { reduce } = Set.prototype;\n\n  assert.isFunction(reduce);\n  assert.arity(reduce, 1);\n  assert.name(reduce, 'reduce');\n  assert.looksNative(reduce);\n  assert.nonEnumerable(Set.prototype, 'reduce');\n\n  const set = new Set([1]);\n  const accumulator = {};\n  set.reduce(function (memo, value, key, that) {\n    assert.same(arguments.length, 4, 'correct number of callback arguments');\n    assert.same(memo, accumulator, 'correct callback accumulator');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, set, 'correct link to set in callback');\n  }, accumulator);\n\n  assert.same(new Set([1, 2, 3]).reduce((a, b) => a + b, 1), 7, 'works with initial accumulator');\n\n  new Set([1, 2]).reduce((memo, value, key) => {\n    assert.same(memo, 1, 'correct default accumulator');\n    assert.same(value, 2, 'correct start value without initial accumulator');\n    assert.same(key, 2, 'correct start key without initial accumulator');\n  });\n\n  assert.same(new Set([1, 2, 3]).reduce((a, b) => a + b), 6, 'works without initial accumulator');\n\n  let values = '';\n  let keys = '';\n  new Set([1, 2, 3]).reduce((memo, value, key, s) => {\n    s.delete(2);\n    values += value;\n    keys += key;\n  }, 0);\n  assert.same(values, '13', 'correct order #1');\n  assert.same(keys, '13', 'correct order #2');\n\n  assert.throws(() => reduce.call(new Map(), () => { /* empty */ }, 1), TypeError);\n  assert.throws(() => reduce.call({}, () => { /* empty */ }, 1), TypeError);\n  assert.throws(() => reduce.call([], () => { /* empty */ }, 1), TypeError);\n  assert.throws(() => reduce.call(undefined, () => { /* empty */ }, 1), TypeError);\n  assert.throws(() => reduce.call(null, () => { /* empty */ }, 1), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.set.some.js",
    "content": "QUnit.test('Set#some', assert => {\n  const { some } = Set.prototype;\n\n  assert.isFunction(some);\n  assert.arity(some, 1);\n  assert.name(some, 'some');\n  assert.looksNative(some);\n  assert.nonEnumerable(Set.prototype, 'some');\n\n  const set = new Set([1]);\n  const context = {};\n  set.some(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, set, 'correct link to set in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Set([1, 2, 3]).some(it => typeof it == 'number'));\n  assert.false(new Set(['1', '2', '3']).some(it => typeof it == 'number'));\n  assert.true(new Set([1, '2', 3]).some(it => typeof it == 'number'));\n  assert.false(new Set().some(it => typeof it == 'number'));\n\n  assert.throws(() => some.call(new Map(), () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.string.at.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nQUnit.test('String#at', assert => {\n  const { at } = String.prototype;\n  assert.isFunction(at);\n  assert.arity(at, 1);\n  assert.name(at, 'at');\n  assert.looksNative(at);\n  assert.nonEnumerable(String.prototype, 'at');\n  // String that starts with a BMP symbol\n  // assert.same('abc\\uD834\\uDF06def'.at(-Infinity), '');\n  // assert.same('abc\\uD834\\uDF06def'.at(-1), '');\n  assert.same('abc\\uD834\\uDF06def'.at(-0), 'a');\n  assert.same('abc\\uD834\\uDF06def'.at(+0), 'a');\n  assert.same('abc\\uD834\\uDF06def'.at(1), 'b');\n  assert.same('abc\\uD834\\uDF06def'.at(3), '\\uD834\\uDF06');\n  assert.same('abc\\uD834\\uDF06def'.at(4), '\\uDF06');\n  assert.same('abc\\uD834\\uDF06def'.at(5), 'd');\n  // assert.same('abc\\uD834\\uDF06def'.at(42), '');\n  // assert.same('abc\\uD834\\uDF06def'.at(Infinity), '');\n  assert.same('abc\\uD834\\uDF06def'.at(null), 'a');\n  assert.same('abc\\uD834\\uDF06def'.at(undefined), 'a');\n  assert.same('abc\\uD834\\uDF06def'.at(), 'a');\n  assert.same('abc\\uD834\\uDF06def'.at(false), 'a');\n  assert.same('abc\\uD834\\uDF06def'.at(NaN), 'a');\n  assert.same('abc\\uD834\\uDF06def'.at(''), 'a');\n  assert.same('abc\\uD834\\uDF06def'.at('_'), 'a');\n  assert.same('abc\\uD834\\uDF06def'.at('1'), 'b');\n  assert.same('abc\\uD834\\uDF06def'.at([]), 'a');\n  assert.same('abc\\uD834\\uDF06def'.at({}), 'a');\n  assert.same('abc\\uD834\\uDF06def'.at(-0.9), 'a');\n  assert.same('abc\\uD834\\uDF06def'.at(1.9), 'b');\n  assert.same('abc\\uD834\\uDF06def'.at(7.9), 'f');\n  // assert.same('abc\\uD834\\uDF06def'.at(2 ** 32), '');\n  // String that starts with an astral symbol\n  // assert.same('\\uD834\\uDF06def'.at(-Infinity), '');\n  // assert.same('\\uD834\\uDF06def'.at(-1), '');\n  assert.same('\\uD834\\uDF06def'.at(-0), '\\uD834\\uDF06');\n  assert.same('\\uD834\\uDF06def'.at(0), '\\uD834\\uDF06');\n  assert.same('\\uD834\\uDF06def'.at(1), '\\uDF06');\n  assert.same('\\uD834\\uDF06def'.at(2), 'd');\n  assert.same('\\uD834\\uDF06def'.at(3), 'e');\n  assert.same('\\uD834\\uDF06def'.at(4), 'f');\n  // assert.same('\\uD834\\uDF06def'.at(42), '');\n  // assert.same('\\uD834\\uDF06def'.at(Infinity), '');\n  assert.same('\\uD834\\uDF06def'.at(null), '\\uD834\\uDF06');\n  assert.same('\\uD834\\uDF06def'.at(undefined), '\\uD834\\uDF06');\n  assert.same('\\uD834\\uDF06def'.at(), '\\uD834\\uDF06');\n  assert.same('\\uD834\\uDF06def'.at(false), '\\uD834\\uDF06');\n  assert.same('\\uD834\\uDF06def'.at(NaN), '\\uD834\\uDF06');\n  assert.same('\\uD834\\uDF06def'.at(''), '\\uD834\\uDF06');\n  assert.same('\\uD834\\uDF06def'.at('_'), '\\uD834\\uDF06');\n  assert.same('\\uD834\\uDF06def'.at('1'), '\\uDF06');\n  // Lone high surrogates\n  // assert.same('\\uD834abc'.at(-Infinity), '');\n  // assert.same('\\uD834abc'.at(-1), '');\n  assert.same('\\uD834abc'.at(-0), '\\uD834');\n  assert.same('\\uD834abc'.at(0), '\\uD834');\n  assert.same('\\uD834abc'.at(1), 'a');\n  // assert.same('\\uD834abc'.at(42), '');\n  // assert.same('\\uD834abc'.at(Infinity), '');\n  assert.same('\\uD834abc'.at(null), '\\uD834');\n  assert.same('\\uD834abc'.at(undefined), '\\uD834');\n  assert.same('\\uD834abc'.at(), '\\uD834');\n  assert.same('\\uD834abc'.at(false), '\\uD834');\n  assert.same('\\uD834abc'.at(NaN), '\\uD834');\n  assert.same('\\uD834abc'.at(''), '\\uD834');\n  assert.same('\\uD834abc'.at('_'), '\\uD834');\n  assert.same('\\uD834abc'.at('1'), 'a');\n  // Lone low surrogates\n  // assert.same('\\uDF06abc'.at(-Infinity), '');\n  // assert.same('\\uDF06abc'.at(-1), '');\n  assert.same('\\uDF06abc'.at(-0), '\\uDF06');\n  assert.same('\\uDF06abc'.at(0), '\\uDF06');\n  assert.same('\\uDF06abc'.at(1), 'a');\n  // assert.same('\\uDF06abc'.at(42), '');\n  // assert.same('\\uDF06abc'.at(Infinity), '');\n  assert.same('\\uDF06abc'.at(null), '\\uDF06');\n  assert.same('\\uDF06abc'.at(undefined), '\\uDF06');\n  assert.same('\\uDF06abc'.at(), '\\uDF06');\n  assert.same('\\uDF06abc'.at(false), '\\uDF06');\n  assert.same('\\uDF06abc'.at(NaN), '\\uDF06');\n  assert.same('\\uDF06abc'.at(''), '\\uDF06');\n  assert.same('\\uDF06abc'.at('_'), '\\uDF06');\n  assert.same('\\uDF06abc'.at('1'), 'a');\n  assert.same(at.call(42, 0), '4');\n  assert.same(at.call(42, 1), '2');\n  assert.same(at.call({\n    toString() {\n      return 'abc';\n    },\n  }, 2), 'c');\n  if (STRICT) {\n    assert.throws(() => at.call(null, 0), TypeError);\n    assert.throws(() => at.call(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.string.code-points.js",
    "content": "import { GLOBAL } from '../helpers/constants.js';\n\nconst Symbol = GLOBAL.Symbol || {};\n\nQUnit.test('String#codePoints', assert => {\n  const { codePoints } = String.prototype;\n  assert.isFunction(codePoints);\n  assert.arity(codePoints, 0);\n  assert.name(codePoints, 'codePoints');\n  assert.looksNative(codePoints);\n  assert.nonEnumerable(String.prototype, 'codePoints');\n  let iterator = 'qwe'.codePoints();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'String Iterator');\n  assert.same(String(iterator), '[object String Iterator]');\n  assert.deepEqual(iterator.next(), {\n    value: { codePoint: 113, position: 0 },\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: { codePoint: 119, position: 1 },\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: { codePoint: 101, position: 2 },\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  iterator = '𠮷𠮷𠮷'.codePoints();\n  assert.deepEqual(iterator.next(), {\n    value: { codePoint: 134071, position: 0 },\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: { codePoint: 134071, position: 2 },\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: { codePoint: 134071, position: 4 },\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n\n  assert.throws(() => codePoints.call(Symbol()), 'throws on symbol context');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.string.cooked.js",
    "content": "QUnit.test('String.cooked', assert => {\n  const { cooked } = String;\n  assert.isFunction(cooked);\n  assert.arity(cooked, 1);\n  assert.name(cooked, 'cooked');\n  assert.looksNative(cooked);\n  assert.nonEnumerable(String, 'cooked');\n  assert.same(cooked(['Hi\\\\n', '!'], 'Bob'), 'Hi\\\\nBob!', 'template is an array');\n  assert.same(cooked('test', 0, 1, 2), 't0e1s2t', 'template is a string');\n  assert.same(cooked('test', 0), 't0est', 'lacks substituting');\n  assert.same(cooked([]), '', 'empty template');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('cooked test');\n    assert.throws(() => cooked([symbol]), TypeError, 'throws on symbol #1');\n    assert.throws(() => cooked('test', symbol), TypeError, 'throws on symbol #2');\n  }\n\n  assert.throws(() => cooked([undefined]), TypeError);\n  assert.throws(() => cooked(null), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.string.dedent.js",
    "content": "const freeze = Object.freeze || Object;\n\nQUnit.test('String.dedent', assert => {\n  const { cooked, dedent } = String;\n  assert.isFunction(dedent);\n  assert.arity(dedent, 1);\n  assert.name(dedent, 'dedent');\n  assert.looksNative(dedent);\n  assert.nonEnumerable(String, 'dedent');\n\n  assert.same(dedent`\n    qwe\n    asd\n    zxc\n  `, 'qwe\\nasd\\nzxc', '#1');\n\n  assert.same(dedent`\n     qwe\n    asd\n     zxc\n  `, ' qwe\\nasd\\n zxc', '#2');\n\n  assert.same(dedent`\n    qwe\n    asd\n   ${ ' zxc' }\n  `, ' qwe\\n asd\\n zxc', '#3');\n\n  assert.same(dedent({ raw: freeze(['\\n  qwe\\n  ']) }), 'qwe', '#4');\n  assert.same(dedent({ raw: freeze(['\\n  qwe', '\\n   ']) }, 1), 'qwe1', '#5');\n\n  assert.same(dedent(cooked)`\n     qwe\n    asd\n     zxc\n  `, ' qwe\\nasd\\n zxc', '#6');\n\n  const tag = (it => it)`\n    abc\n  `;\n\n  assert.same(dedent(tag), dedent(tag), '#7');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => dedent({ raw: freeze(['\\n', Symbol('dedent test'), '\\n']) }), TypeError, 'throws on symbol');\n  }\n\n  assert.throws(() => dedent([]), TypeError, '[]');\n  assert.throws(() => dedent(['qwe']), TypeError, '[qwe]');\n  assert.throws(() => dedent({ raw: freeze([]) }), TypeError, 'empty tpl');\n  assert.throws(() => dedent({ raw: freeze(['qwe']) }), TypeError, 'wrong start');\n  assert.throws(() => dedent({ raw: freeze(['\\n', 'qwe']) }), TypeError, 'wrong start');\n  assert.throws(() => dedent({ raw: freeze(['\\n  qwe', 5, '\\n   ']) }, 1, 2), TypeError, 'wrong part');\n  assert.throws(() => dedent([undefined]), TypeError);\n  assert.throws(() => dedent(null), TypeError);\n\n  // \\u{} (empty braces) should be an invalid escape, causing TypeError\n  assert.same(dedent({ raw: freeze(['\\n  \\\\u{41}\\n  ']) }), 'A', 'valid unicode brace escape in raw');\n  assert.throws(() => dedent({ raw: freeze(['\\n  \\\\u{}\\n  ']) }), TypeError, '\\\\u{} is an invalid escape');\n\n  // hex/unicode escapes at end of string segment\n  assert.same(dedent({ raw: freeze(['\\n  \\\\x41\\n  ']) }), 'A', 'hex escape at end of raw string');\n  assert.same(dedent({ raw: freeze(['\\n  \\\\u0041\\n  ']) }), 'A', 'unicode escape at end of raw string');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.symbol.custom-matcher.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Symbol.customMatcher', assert => {\n  assert.true('customMatcher' in Symbol, 'Symbol.customMatcher available');\n  assert.nonEnumerable(Symbol, 'customMatcher');\n  assert.true(Object(Symbol.customMatcher) instanceof Symbol, 'Symbol.customMatcher is symbol');\n  if (DESCRIPTORS) {\n    const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'customMatcher');\n    assert.false(descriptor.enumerable, 'non-enumerable');\n    assert.false(descriptor.writable, 'non-writable');\n    assert.false(descriptor.configurable, 'non-configurable');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.symbol.is-registered-symbol.js",
    "content": "QUnit.test('Symbol.isRegisteredSymbol', assert => {\n  const { isRegisteredSymbol } = Symbol;\n  assert.isFunction(isRegisteredSymbol, 'Symbol.isRegisteredSymbol is function');\n  assert.nonEnumerable(Symbol, 'isRegisteredSymbol');\n  assert.arity(isRegisteredSymbol, 1, 'Symbol.isRegisteredSymbol arity is 1');\n  assert.name(isRegisteredSymbol, 'isRegisteredSymbol', 'Symbol.isRegisteredSymbol.name is \"isRegisteredSymbol\"');\n  assert.looksNative(isRegisteredSymbol, 'isRegisteredSymbol looks like native');\n\n  assert.true(isRegisteredSymbol(Symbol.for('foo')), 'registered');\n  assert.true(isRegisteredSymbol(Object(Symbol.for('foo'))), 'registered, boxed');\n  const symbol = Symbol('Symbol.isRegisteredSymbol test');\n  assert.false(isRegisteredSymbol(symbol), 'non-registered');\n  assert.false(isRegisteredSymbol(Object(symbol)), 'non-registered, boxed');\n  assert.false(isRegisteredSymbol(1), '1');\n  assert.false(isRegisteredSymbol(true), 'true');\n  assert.false(isRegisteredSymbol('1'), 'string');\n  assert.false(isRegisteredSymbol(null), 'null');\n  assert.false(isRegisteredSymbol(), 'undefined');\n  assert.false(isRegisteredSymbol({}), 'object');\n  assert.false(isRegisteredSymbol([]), 'array');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.symbol.is-registered.js",
    "content": "QUnit.test('Symbol.isRegistered', assert => {\n  const { isRegistered } = Symbol;\n  assert.isFunction(isRegistered, 'Symbol.isRegistered is function');\n  assert.nonEnumerable(Symbol, 'isRegistered');\n  assert.arity(isRegistered, 1, 'Symbol.isRegistered arity is 1');\n  assert.name(isRegistered, 'isRegisteredSymbol', 'Symbol.isRegistered.name is \"isRegisteredSymbol\"');\n  assert.looksNative(isRegistered, 'isRegistered looks like native');\n\n  assert.true(isRegistered(Symbol.for('foo')), 'registered');\n  assert.true(isRegistered(Object(Symbol.for('foo'))), 'registered, boxed');\n  const symbol = Symbol('Symbol.isRegistered test');\n  assert.false(isRegistered(symbol), 'non-registered');\n  assert.false(isRegistered(Object(symbol)), 'non-registered, boxed');\n  assert.false(isRegistered(1), '1');\n  assert.false(isRegistered(true), 'true');\n  assert.false(isRegistered('1'), 'string');\n  assert.false(isRegistered(null), 'null');\n  assert.false(isRegistered(), 'undefined');\n  assert.false(isRegistered({}), 'object');\n  assert.false(isRegistered([]), 'array');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.symbol.is-well-known-symbol.js",
    "content": "QUnit.test('Symbol.isWellKnownSymbol', assert => {\n  const { isWellKnownSymbol } = Symbol;\n  assert.isFunction(isWellKnownSymbol, 'Symbol.isWellKnownSymbol is function');\n  assert.nonEnumerable(Symbol, 'isWellKnownSymbol');\n  assert.arity(isWellKnownSymbol, 1, 'Symbol.isWellKnownSymbol arity is 1');\n  assert.name(isWellKnownSymbol, 'isWellKnownSymbol', 'Symbol.isWellKnownSymbol.name is \"isWellKnownSymbol\"');\n  assert.looksNative(isWellKnownSymbol, 'isWellKnownSymbol looks like native');\n\n  assert.true(isWellKnownSymbol(Symbol.iterator), 'well-known-1');\n  assert.true(isWellKnownSymbol(Object(Symbol.iterator)), 'well-known-2, boxed');\n  assert.true(isWellKnownSymbol(Symbol.patternMatch), 'well-known-3');\n  assert.true(isWellKnownSymbol(Object(Symbol.patternMatch)), 'well-known-4, boxed');\n  const symbol = Symbol('Symbol.isWellKnownSymbol test');\n  assert.false(isWellKnownSymbol(symbol), 'non-well-known');\n  assert.false(isWellKnownSymbol(Object(symbol)), 'non-well-known, boxed');\n  assert.false(isWellKnownSymbol(1), '1');\n  assert.false(isWellKnownSymbol(true), 'true');\n  assert.false(isWellKnownSymbol('1'), 'string');\n  assert.false(isWellKnownSymbol(null), 'null');\n  assert.false(isWellKnownSymbol(), 'undefined');\n  assert.false(isWellKnownSymbol({}), 'object');\n  assert.false(isWellKnownSymbol([]), 'array');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.symbol.is-well-known.js",
    "content": "QUnit.test('Symbol.isWellKnown', assert => {\n  const { isWellKnown } = Symbol;\n  assert.isFunction(isWellKnown, 'Symbol.isWellKnown is function');\n  assert.nonEnumerable(Symbol, 'isWellKnown');\n  assert.arity(isWellKnown, 1, 'Symbol.isWellKnown arity is 1');\n  assert.name(isWellKnown, 'isWellKnownSymbol', 'Symbol.isWellKnown.name is \"isWellKnownSymbol\"');\n  assert.looksNative(isWellKnown, 'isWellKnown looks like native');\n\n  assert.true(isWellKnown(Symbol.iterator), 'well-known-1');\n  assert.true(isWellKnown(Object(Symbol.iterator)), 'well-known-2, boxed');\n  assert.true(isWellKnown(Symbol.patternMatch), 'well-known-3');\n  assert.true(isWellKnown(Object(Symbol.patternMatch)), 'well-known-4, boxed');\n  const symbol = Symbol('Symbol.isWellKnown test');\n  assert.false(isWellKnown(symbol), 'non-well-known');\n  assert.false(isWellKnown(Object(symbol)), 'non-well-known, boxed');\n  assert.false(isWellKnown(1), '1');\n  assert.false(isWellKnown(true), 'true');\n  assert.false(isWellKnown('1'), 'string');\n  assert.false(isWellKnown(null), 'null');\n  assert.false(isWellKnown(), 'undefined');\n  assert.false(isWellKnown({}), 'object');\n  assert.false(isWellKnown([]), 'array');\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.symbol.matcher.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Symbol.matcher', assert => {\n  assert.true('matcher' in Symbol, 'Symbol.matcher available');\n  assert.nonEnumerable(Symbol, 'matcher');\n  assert.true(Object(Symbol.matcher) instanceof Symbol, 'Symbol.matcher is symbol');\n  if (DESCRIPTORS) {\n    const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'matcher');\n    assert.false(descriptor.enumerable, 'non-enumerable');\n    assert.false(descriptor.writable, 'non-writable');\n    assert.false(descriptor.configurable, 'non-configurable');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.symbol.metadata-key.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Symbol.metadataKey', assert => {\n  assert.true('metadataKey' in Symbol, 'Symbol.metadataKey available');\n  assert.nonEnumerable(Symbol, 'metadataKey');\n  assert.true(Object(Symbol.metadataKey) instanceof Symbol, 'Symbol.metadataKey is symbol');\n  if (DESCRIPTORS) {\n    const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'metadataKey');\n    assert.false(descriptor.enumerable, 'non-enumerable');\n    assert.false(descriptor.writable, 'non-writable');\n    assert.false(descriptor.configurable, 'non-configurable');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.symbol.metadata.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Symbol.metadata', assert => {\n  assert.true('metadata' in Symbol, 'Symbol.metadata available');\n  assert.nonEnumerable(Symbol, 'metadata');\n  assert.true(Object(Symbol.metadata) instanceof Symbol, 'Symbol.metadata is symbol');\n  if (DESCRIPTORS) {\n    const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'metadata');\n    assert.false(descriptor.enumerable, 'non-enumerable');\n    assert.false(descriptor.writable, 'non-writable');\n    assert.false(descriptor.configurable, 'non-configurable');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.symbol.observable.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Symbol.observable', assert => {\n  assert.true('observable' in Symbol, 'Symbol.observable available');\n  assert.nonEnumerable(Symbol, 'observable');\n  assert.true(Object(Symbol.observable) instanceof Symbol, 'Symbol.observable is symbol');\n  if (DESCRIPTORS) {\n    const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'observable');\n    assert.false(descriptor.enumerable, 'non-enumerable');\n    assert.false(descriptor.writable, 'non-writable');\n    assert.false(descriptor.configurable, 'non-configurable');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.symbol.pattern-match.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Symbol.patternMatch', assert => {\n  assert.true('patternMatch' in Symbol, 'Symbol.patternMatch available');\n  assert.nonEnumerable(Symbol, 'patternMatch');\n  assert.true(Object(Symbol.patternMatch) instanceof Symbol, 'Symbol.patternMatch is symbol');\n  if (DESCRIPTORS) {\n    const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'patternMatch');\n    assert.false(descriptor.enumerable, 'non-enumerable');\n    assert.false(descriptor.writable, 'non-writable');\n    assert.false(descriptor.configurable, 'non-configurable');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.symbol.replace-all.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('Symbol.replaceAll', assert => {\n  assert.true('replaceAll' in Symbol, 'Symbol.replaceAll is available');\n  assert.nonEnumerable(Symbol, 'replaceAll');\n  assert.true(Object(Symbol.replaceAll) instanceof Symbol, 'Symbol.replaceAll is symbol');\n  if (DESCRIPTORS) {\n    const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'replaceAll');\n    assert.false(descriptor.enumerable, 'non-enumerable');\n    assert.false(descriptor.writable, 'non-writable');\n    assert.false(descriptor.configurable, 'non-configurable');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.typed-array.filter-out.js",
    "content": "// TODO: Remove from `core-js@4`\nimport { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.filterOut', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { filterOut } = TypedArray.prototype;\n    assert.isFunction(filterOut, `${ name }::filterOut is function`);\n    assert.arity(filterOut, 1, `${ name }::filterOut arity is 1`);\n    assert.name(filterOut, 'filterOut', `${ name }::filterOut name is 'filterOut'`);\n    assert.looksNative(filterOut, `${ name }::filterOut looks native`);\n    const array = new TypedArray([1]);\n    const context = {};\n    array.filterOut(function (value, key, that) {\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n      assert.same(this, context, 'correct callback context');\n    }, context);\n    const instance = new TypedArray([1, 2, 3, 4, 5, 6, 7, 8, 9]).filterOut(it => it % 2);\n    assert.true(instance instanceof TypedArray, 'correct instance');\n    assert.arrayEqual(instance, [2, 4, 6, 8], 'works');\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).filterOut((value, key) => {\n      values += value;\n      keys += key;\n    });\n    assert.same(values, '123');\n    assert.same(keys, '012');\n    assert.throws(() => filterOut.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.typed-array.filter-reject.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.filterReject', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { filterReject } = TypedArray.prototype;\n    assert.isFunction(filterReject, `${ name }::filterReject is function`);\n    assert.arity(filterReject, 1, `${ name }::filterReject arity is 1`);\n    assert.name(filterReject, 'filterReject', `${ name }::filterReject name is 'filterReject'`);\n    assert.looksNative(filterReject, `${ name }::filterReject looks native`);\n    const array = new TypedArray([1]);\n    const context = {};\n    array.filterReject(function (value, key, that) {\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n      assert.same(this, context, 'correct callback context');\n    }, context);\n    const instance = new TypedArray([1, 2, 3, 4, 5, 6, 7, 8, 9]).filterReject(it => it % 2);\n    assert.true(instance instanceof TypedArray, 'correct instance');\n    assert.arrayEqual(instance, [2, 4, 6, 8], 'works');\n    let values = '';\n    let keys = '';\n    new TypedArray([1, 2, 3]).filterReject((value, key) => {\n      values += value;\n      keys += key;\n    });\n    assert.same(values, '123');\n    assert.same(keys, '012');\n    assert.throws(() => filterReject.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.typed-array.from-async.js",
    "content": "import { createAsyncIterable, createIterable } from '../helpers/helpers.js';\nimport { DESCRIPTORS, STRICT_THIS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) {\n  // we can't implement %TypedArray% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) QUnit.test(`%TypedArray%.fromAsync, ${ name }`, assert => {\n    const { fromAsync } = TypedArray;\n\n    assert.isFunction(fromAsync);\n    assert.arity(fromAsync, 1);\n    assert.name(fromAsync, 'fromAsync');\n    assert.looksNative(fromAsync);\n\n    return TypedArray.fromAsync(createAsyncIterable([1, 2, 3]), it => it ** 2).then(it => {\n      assert.arrayEqual(it, [1, 4, 9], 'async iterable and mapfn');\n      return TypedArray.fromAsync(createAsyncIterable([1]), function (arg, index) {\n        assert.same(this, STRICT_THIS, 'this');\n        assert.same(arguments.length, 2, 'arguments length');\n        assert.same(arg, 1, 'argument');\n        assert.same(index, 0, 'index');\n      });\n    }).then(() => {\n      return TypedArray.fromAsync(createAsyncIterable([1, 2, 3]));\n    }).then(it => {\n      assert.arrayEqual(it, [1, 2, 3], 'async iterable without mapfn');\n      return TypedArray.fromAsync(createIterable([1, 2, 3]), arg => arg ** 2);\n    }).then(it => {\n      assert.arrayEqual(it, [1, 4, 9], 'iterable and mapfn');\n      return TypedArray.fromAsync(createIterable([1, 2, 3]), arg => Promise.resolve(arg ** 2));\n    }).then(it => {\n      assert.arrayEqual(it, [1, 4, 9], 'iterable and async mapfn');\n      return TypedArray.fromAsync(createIterable([1]), function (arg, index) {\n        assert.same(this, STRICT_THIS, 'this');\n        assert.same(arguments.length, 2, 'arguments length');\n        assert.same(arg, 1, 'argument');\n        assert.same(index, 0, 'index');\n      });\n    }).then(() => {\n      return TypedArray.fromAsync(createIterable([1, 2, 3]));\n    }).then(it => {\n      assert.arrayEqual(it, [1, 2, 3], 'iterable and without mapfn');\n      return TypedArray.fromAsync([1, Promise.resolve(2), 3]);\n    }).then(it => {\n      assert.arrayEqual(it, [1, 2, 3], 'array');\n      return TypedArray.fromAsync('123');\n    }).then(it => {\n      assert.arrayEqual(it, [1, 2, 3], 'string');\n      return TypedArray.fromAsync({ length: 1, 0: 1 });\n    }).then(it => {\n      assert.arrayEqual(it, [1], 'non-iterable');\n      return TypedArray.fromAsync(createIterable([1]), () => { throw 42; });\n    }).then(() => {\n      assert.avoid();\n    }, error => {\n      assert.same(error, 42, 'rejection on a callback error');\n      function C() { /* empty */ }\n      return TypedArray.fromAsync.call(C, [1], {});\n    }).then(() => {\n      assert.avoid();\n    }, error => {\n      assert.true(error instanceof TypeError);\n      return TypedArray.fromAsync(undefined, () => { /* empty */ });\n    }).then(() => {\n      assert.avoid();\n    }, error => {\n      assert.true(error instanceof TypeError);\n      return TypedArray.fromAsync(null, () => { /* empty */ });\n    }).then(() => {\n      assert.avoid();\n    }, error => {\n      assert.true(error instanceof TypeError);\n      return TypedArray.fromAsync([1], null);\n    }).then(() => {\n      assert.avoid();\n    }, error => {\n      assert.true(error instanceof TypeError);\n      return TypedArray.fromAsync([1], {});\n    }).then(() => {\n      assert.avoid();\n    }, error => {\n      assert.true(error instanceof TypeError);\n    });\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/esnext.typed-array.group-by.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nconst { getPrototypeOf } = Object;\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.groupBy', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { groupBy } = TypedArray.prototype;\n    assert.isFunction(groupBy, `${ name }::groupBy is function`);\n    assert.arity(groupBy, 1, `${ name }::groupBy arity is 1`);\n    assert.name(groupBy, 'groupBy', `${ name }::groupBy name is 'groupBy'`);\n    assert.looksNative(groupBy, `${ name }::groupBy looks native`);\n    const array = new TypedArray([1]);\n    const context = {};\n    array.groupBy(function (value, key, that) {\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 1, 'correct value in callback');\n      assert.same(key, 0, 'correct index in callback');\n      assert.same(that, array, 'correct link to array in callback');\n      assert.same(this, context, 'correct callback context');\n    }, context);\n\n    assert.same(getPrototypeOf(new TypedArray([1]).groupBy(it => it)), null, 'null proto');\n    assert.true(new TypedArray([1]).groupBy(it => it)[1] instanceof TypedArray, 'instance');\n    assert.deepEqual(\n      new TypedArray([1, 2, 3]).groupBy(it => it % 2),\n      { 1: new TypedArray([1, 3]), 0: new TypedArray([2]) },\n      '#1',\n    );\n    assert.deepEqual(new TypedArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]).groupBy(it => `i${ it % 5 }`), {\n      i1: new TypedArray([1, 6, 11]),\n      i2: new TypedArray([2, 7, 12]),\n      i3: new TypedArray([3, 8]),\n      i4: new TypedArray([4, 9]),\n      i0: new TypedArray([5, 10]),\n    }, '#2');\n\n    assert.throws(() => groupBy.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n\n"
  },
  {
    "path": "tests/unit-global/esnext.typed-array.to-spliced.js",
    "content": "// TODO: Remove from `core-js@4`\nimport { DESCRIPTORS, TYPED_ARRAYS_WITH_BIG_INT } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.toSpliced', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray, $ } of TYPED_ARRAYS_WITH_BIG_INT) {\n    const { toSpliced } = TypedArray.prototype;\n\n    assert.isFunction(toSpliced, `${ name }::toSpliced is function`);\n    assert.arity(toSpliced, 2, `${ name }::toSpliced arity is 2`);\n    assert.name(toSpliced, 'toSpliced', `${ name }::toSpliced name is 'toSpliced'`);\n    assert.looksNative(toSpliced, `${ name }::toSpliced looks native`);\n\n    let array = new TypedArray([$(1), $(2), $(3), $(4), $(5)]);\n    assert.notSame(array.toSpliced(2), array, 'immutable');\n\n    assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).toSpliced(2), new TypedArray([$(1), $(2)]));\n    assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).toSpliced(-2), new TypedArray([$(1), $(2), $(3)]));\n    assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).toSpliced(2, 2), new TypedArray([$(1), $(2), $(5)]));\n    assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).toSpliced(2, -2), new TypedArray([$(1), $(2), $(3), $(4), $(5)]));\n    assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).toSpliced(2, 2, $(6), $(7)), new TypedArray([$(1), $(2), $(6), $(7), $(5)]));\n\n    array = new TypedArray([$(1)]);\n\n    assert.deepEqual(array.toSpliced(1, 0, {\n      valueOf() {\n        array[0] = $(2);\n        return $(3);\n      },\n    }), new TypedArray([$(2), $(3)]), 'operations order');\n\n    assert.throws(() => toSpliced.call(null), TypeError, \"isn't generic #1\");\n    assert.throws(() => toSpliced.call(undefined), TypeError, \"isn't generic #2\");\n    assert.throws(() => toSpliced.call([$(1), $(2)]), TypeError, \"isn't generic #3\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.typed-array.unique-by.js",
    "content": "import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js';\n\nif (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.uniqueBy', assert => {\n  // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor\n  for (const { name, TypedArray } of TYPED_ARRAYS) {\n    const { uniqueBy } = TypedArray.prototype;\n    assert.isFunction(uniqueBy, `${ name }::uniqueBy is function`);\n    assert.arity(uniqueBy, 1, `${ name }::uniqueBy arity is 1`);\n    assert.name(uniqueBy, 'uniqueBy', `${ name }::uniqueBy name is 'uniqueBy'`);\n    assert.looksNative(uniqueBy, `${ name }::uniqueBy looks native`);\n    const array = new TypedArray([1, 2, 3, 2, 1]);\n    assert.notSame(array.uniqueBy(), array);\n    assert.deepEqual(array.uniqueBy(), new TypedArray([1, 2, 3]));\n    let values = '';\n    new TypedArray([1, 2, 3]).uniqueBy(value => {\n      values += value;\n    });\n    assert.same(values, '123');\n    assert.throws(() => uniqueBy.call(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => uniqueBy.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => uniqueBy.call([0], () => { /* empty */ }), \"isn't generic\");\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.weak-map.delete-all.js",
    "content": "QUnit.test('WeakMap#deleteAll', assert => {\n  const { deleteAll } = WeakMap.prototype;\n\n  assert.isFunction(deleteAll);\n  assert.arity(deleteAll, 0);\n  assert.name(deleteAll, 'deleteAll');\n  assert.looksNative(deleteAll);\n  assert.nonEnumerable(WeakMap.prototype, 'deleteAll');\n\n  const a = [];\n  const b = [];\n  const c = [];\n  const d = [];\n  const e = [];\n\n  let map = new WeakMap([[a, 1], [b, 2], [c, 3]]);\n  assert.true(map.deleteAll(a, b));\n  assert.false(map.has(a));\n  assert.false(map.has(b));\n  assert.true(map.has(c));\n  assert.false(map.has(d));\n  assert.false(map.has(e));\n\n  map = new WeakMap([[a, 1], [b, 2], [c, 3]]);\n  assert.false(map.deleteAll(c, d));\n  assert.true(map.has(a));\n  assert.true(map.has(b));\n  assert.false(map.has(c));\n  assert.false(map.has(d));\n  assert.false(map.has(e));\n\n  map = new WeakMap([[a, 1], [b, 2], [c, 3]]);\n  assert.false(map.deleteAll(d, e));\n  assert.true(map.has(a));\n  assert.true(map.has(b));\n  assert.true(map.has(c));\n  assert.false(map.has(d));\n  assert.false(map.has(e));\n\n  map = new WeakMap([[a, 1], [b, 2], [c, 3]]);\n  assert.true(map.deleteAll());\n  assert.true(map.has(a));\n  assert.true(map.has(b));\n  assert.true(map.has(c));\n  assert.false(map.has(d));\n  assert.false(map.has(e));\n\n  assert.throws(() => deleteAll.call({ delete() { /* empty */ } }, a, b, c));\n  assert.throws(() => deleteAll.call({}, a, b, c), TypeError);\n  assert.throws(() => deleteAll.call(undefined, a, b, c), TypeError);\n  assert.throws(() => deleteAll.call(null, a, b, c), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.weak-map.emplace.js",
    "content": "QUnit.test('WeakMap#emplace', assert => {\n  const { emplace } = WeakMap.prototype;\n  assert.isFunction(emplace);\n  assert.arity(emplace, 2);\n  assert.name(emplace, 'emplace');\n  assert.looksNative(emplace);\n  assert.nonEnumerable(WeakMap.prototype, 'emplace');\n\n  const a = {};\n  const b = {};\n\n  const map = new WeakMap([[a, 2]]);\n  let handler = {\n    update(value, key, that) {\n      assert.same(this, handler, 'correct handler in callback');\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 2, 'correct value in callback');\n      assert.same(key, a, 'correct key in callback');\n      assert.same(that, map, 'correct map in callback');\n      return value ** 2;\n    },\n    insert() {\n      assert.avoid();\n    },\n  };\n  assert.same(map.emplace(a, handler), 4, 'returns a correct value');\n  handler = {\n    update() {\n      assert.avoid();\n    },\n    insert(key, that) {\n      assert.same(this, handler, 'correct handler in callback');\n      assert.same(arguments.length, 2, 'correct number of callback arguments');\n      assert.same(key, b, 'correct key in callback');\n      assert.same(that, map, 'correct map in callback');\n      return 3;\n    },\n  };\n  assert.same(map.emplace(b, handler), 3, 'returns a correct value');\n  assert.same(map.get(a), 4, 'correct result #1');\n  assert.same(map.get(b), 3, 'correct result #2');\n\n  assert.same(new WeakMap([[a, 2]]).emplace(b, { insert: () => 3 }), 3);\n  assert.same(new WeakMap([[a, 2]]).emplace(a, { update: value => value ** 2 }), 4);\n\n  handler = { update() { /* empty */ }, insert() { /* empty */ } };\n  assert.throws(() => new WeakMap().emplace(a), TypeError);\n  assert.throws(() => emplace.call({}, a, handler), TypeError);\n  assert.throws(() => emplace.call([], a, handler), TypeError);\n  assert.throws(() => emplace.call(undefined, a, handler), TypeError);\n  assert.throws(() => emplace.call(null, a, handler), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.weak-map.from.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('WeakMap.from', assert => {\n  const { from } = WeakMap;\n  assert.isFunction(from);\n  assert.arity(from, 1);\n  assert.name(from, 'from');\n  assert.looksNative(from);\n  assert.nonEnumerable(WeakMap, 'from');\n  assert.true(from([]) instanceof WeakMap);\n  const array = [];\n  assert.same(from([[array, 2]]).get(array), 2);\n  assert.same(from(createIterable([[array, 2]])).get(array), 2);\n  const pair = [{}, 1];\n  const context = {};\n  from([pair], function (element, index) {\n    assert.same(element, pair);\n    assert.same(index, 0);\n    assert.same(this, context);\n    return element;\n  }, context);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.weak-map.of.js",
    "content": "QUnit.test('WeakMap.of', assert => {\n  const { of } = WeakMap;\n  assert.isFunction(of);\n  assert.arity(of, 0);\n  assert.name(of, 'of');\n  assert.looksNative(of);\n  assert.nonEnumerable(WeakMap, 'of');\n  const array = [];\n  assert.true(of() instanceof WeakMap);\n  assert.same(of([array, 2]).get(array), 2);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.weak-map.upsert.js",
    "content": "QUnit.test('WeakMap#upsert', assert => {\n  const { upsert } = WeakMap.prototype;\n  assert.isFunction(upsert);\n  assert.name(upsert, 'upsert');\n  assert.arity(upsert, 2);\n  assert.looksNative(upsert);\n  assert.nonEnumerable(WeakMap.prototype, 'upsert');\n\n  const a = {};\n  const b = {};\n\n  const map = new WeakMap([[a, 2]]);\n  assert.same(map.upsert(a, function (value) {\n    assert.same(arguments.length, 1, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    return value ** 2;\n  }, () => {\n    assert.avoid();\n    return 3;\n  }), 4, 'returns a correct value');\n  assert.same(map.upsert(b, value => {\n    assert.avoid();\n    return value ** 2;\n  }, function () {\n    assert.same(arguments.length, 0, 'correct number of callback arguments');\n    return 3;\n  }), 3, 'returns a correct value');\n  assert.same(map.get(a), 4, 'correct result #1');\n  assert.same(map.get(b), 3, 'correct result #2');\n\n  assert.same(new WeakMap([[a, 2]]).upsert(b, null, () => 3), 3);\n  assert.same(new WeakMap([[a, 2]]).upsert(a, value => value ** 2), 4);\n\n  assert.throws(() => new WeakMap().upsert(a), TypeError);\n  assert.throws(() => upsert.call({}, a, () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => upsert.call([], a, () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => upsert.call(undefined, a, () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => upsert.call(null, a, () => { /* empty */ }, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.weak-set.add-all.js",
    "content": "QUnit.test('WeakSet#addAll', assert => {\n  const { addAll } = WeakSet.prototype;\n\n  assert.isFunction(addAll);\n  assert.arity(addAll, 0);\n  assert.name(addAll, 'addAll');\n  assert.looksNative(addAll);\n  assert.nonEnumerable(WeakSet.prototype, 'addAll');\n\n  const a = [];\n  const b = [];\n  const c = [];\n\n  let set = new WeakSet([a]);\n  assert.same(set.addAll(b), set);\n\n  set = new WeakSet([a]).addAll(b, c);\n  assert.true(set.has(a));\n  assert.true(set.has(b));\n  assert.true(set.has(c));\n\n  set = new WeakSet([a]).addAll(a, b);\n  assert.true(set.has(a));\n  assert.true(set.has(b));\n\n  set = new WeakSet([a]).addAll();\n  assert.true(set.has(a));\n\n  assert.throws(() => addAll.call({ add() { /* empty */ } }, a, b, c));\n  assert.throws(() => addAll.call({}, a, b, c), TypeError);\n  assert.throws(() => addAll.call(undefined, a, b, c), TypeError);\n  assert.throws(() => addAll.call(null, a, b, c), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.weak-set.delete-all.js",
    "content": "QUnit.test('WeakSet#deleteAll', assert => {\n  const { deleteAll } = WeakSet.prototype;\n\n  assert.isFunction(deleteAll);\n  assert.arity(deleteAll, 0);\n  assert.name(deleteAll, 'deleteAll');\n  assert.looksNative(deleteAll);\n  assert.nonEnumerable(WeakSet.prototype, 'deleteAll');\n\n  const a = [];\n  const b = [];\n  const c = [];\n  const d = [];\n  const e = [];\n\n  let set = new WeakSet([a, b, c]);\n  assert.true(set.deleteAll(a, b));\n  assert.false(set.has(a));\n  assert.false(set.has(b));\n  assert.true(set.has(c));\n  assert.false(set.has(d));\n  assert.false(set.has(e));\n\n  set = new WeakSet([a, b, c]);\n  assert.false(set.deleteAll(c, d));\n  assert.true(set.has(a));\n  assert.true(set.has(b));\n  assert.false(set.has(c));\n  assert.false(set.has(d));\n  assert.false(set.has(e));\n\n  set = new WeakSet([a, b, c]);\n  assert.false(set.deleteAll(d, e));\n  assert.true(set.has(a));\n  assert.true(set.has(b));\n  assert.true(set.has(c));\n  assert.false(set.has(d));\n  assert.false(set.has(e));\n\n  set = new WeakSet([a, b, c]);\n  assert.true(set.deleteAll());\n  assert.true(set.has(a));\n  assert.true(set.has(b));\n  assert.true(set.has(c));\n  assert.false(set.has(d));\n  assert.false(set.has(e));\n\n  assert.throws(() => deleteAll.call({ delete() { /* empty */ } }, a, b, c));\n  assert.throws(() => deleteAll.call({}, a, b, c), TypeError);\n  assert.throws(() => deleteAll.call(undefined, a, b, c), TypeError);\n  assert.throws(() => deleteAll.call(null, a, b, c), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.weak-set.from.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('WeakSet.from', assert => {\n  const { from } = WeakSet;\n  assert.isFunction(from);\n  assert.arity(from, 1);\n  assert.name(from, 'from');\n  assert.looksNative(from);\n  assert.nonEnumerable(WeakSet, 'from');\n  assert.true(from([]) instanceof WeakSet);\n  const array = [];\n  assert.true(from([array]).has(array));\n  assert.true(from(createIterable([array])).has(array));\n  const object = {};\n  const context = {};\n  from([object], function (element, index) {\n    assert.same(element, object);\n    assert.same(index, 0);\n    assert.same(this, context);\n    return element;\n  }, context);\n});\n"
  },
  {
    "path": "tests/unit-global/esnext.weak-set.of.js",
    "content": "QUnit.test('WeakSet.of', assert => {\n  const { of } = WeakSet;\n  assert.isFunction(of);\n  assert.arity(of, 0);\n  assert.name(of, 'of');\n  assert.looksNative(of);\n  assert.nonEnumerable(WeakSet, 'of');\n  const array = [];\n  assert.true(of() instanceof WeakSet);\n  assert.true(of(array).has(array));\n});\n"
  },
  {
    "path": "tests/unit-global/web.atob.js",
    "content": "// based on https://github.com/davidchambers/Base64.js/blob/master/test/base64.js\nimport { NODE } from '../helpers/constants.js';\n\nQUnit.test('atob', assert => {\n  assert.isFunction(atob);\n  assert.arity(atob, 1);\n  assert.name(atob, 'atob');\n  if (!NODE) assert.looksNative(atob);\n\n  assert.same(atob(''), '');\n  assert.same(atob('Zg=='), 'f');\n  assert.same(atob('Zm8='), 'fo');\n  assert.same(atob('Zm9v'), 'foo');\n  assert.same(atob('cXV1eA=='), 'quux');\n  assert.same(atob('ISIjJCU='), '!\"#$%');\n  assert.same(atob('JicoKSor'), \"&'()*+\");\n  assert.same(atob('LC0uLzAxMg=='), ',-./012');\n  assert.same(atob('MzQ1Njc4OTo='), '3456789:');\n  assert.same(atob('Ozw9Pj9AQUJD'), ';<=>?@ABC');\n  assert.same(atob('REVGR0hJSktMTQ=='), 'DEFGHIJKLM');\n  assert.same(atob('Tk9QUVJTVFVWV1g='), 'NOPQRSTUVWX');\n  assert.same(atob('WVpbXF1eX2BhYmM='), 'YZ[\\\\]^_`abc');\n  assert.same(atob('ZGVmZ2hpamtsbW5vcA=='), 'defghijklmnop');\n  assert.same(atob('cXJzdHV2d3h5ent8fX4='), 'qrstuvwxyz{|}~');\n  assert.same(atob(' '), '');\n\n  assert.same(atob(42), atob('42'));\n  assert.same(atob(null), atob('null'));\n\n  assert.throws(() => atob(), TypeError, 'no args');\n  assert.throws(() => atob('a'), 'invalid #1');\n  assert.throws(() => atob('a '), 'invalid #2');\n  assert.throws(() => atob('aaaaa'), 'invalid #3');\n  assert.throws(() => atob('[object Object]'), 'invalid #4');\n});\n"
  },
  {
    "path": "tests/unit-global/web.btoa.js",
    "content": "// based on https://github.com/davidchambers/Base64.js/blob/master/test/base64.js\nimport { NODE } from '../helpers/constants.js';\n\nQUnit.test('btoa', assert => {\n  assert.isFunction(btoa);\n  assert.arity(btoa, 1);\n  assert.name(btoa, 'btoa');\n  if (!NODE) assert.looksNative(btoa);\n\n  assert.same(btoa(''), '');\n  assert.same(btoa('f'), 'Zg==');\n  assert.same(btoa('fo'), 'Zm8=');\n  assert.same(btoa('foo'), 'Zm9v');\n  assert.same(btoa('quux'), 'cXV1eA==');\n  assert.same(btoa('!\"#$%'), 'ISIjJCU=');\n  assert.same(btoa(\"&'()*+\"), 'JicoKSor');\n  assert.same(btoa(',-./012'), 'LC0uLzAxMg==');\n  assert.same(btoa('3456789:'), 'MzQ1Njc4OTo=');\n  assert.same(btoa(';<=>?@ABC'), 'Ozw9Pj9AQUJD');\n  assert.same(btoa('DEFGHIJKLM'), 'REVGR0hJSktMTQ==');\n  assert.same(btoa('NOPQRSTUVWX'), 'Tk9QUVJTVFVWV1g=');\n  assert.same(btoa('YZ[\\\\]^_`abc'), 'WVpbXF1eX2BhYmM=');\n  assert.same(btoa('defghijklmnop'), 'ZGVmZ2hpamtsbW5vcA==');\n  assert.same(btoa('qrstuvwxyz{|}~'), 'cXJzdHV2d3h5ent8fX4=');\n\n  assert.same(btoa(42), btoa('42'));\n  assert.same(btoa(null), btoa('null'));\n  assert.same(btoa({ x: 1 }), btoa('[object Object]'));\n\n  assert.throws(() => btoa(), TypeError, 'no args');\n  assert.throws(() => btoa('✈'), 'non-ASCII');\n});\n"
  },
  {
    "path": "tests/unit-global/web.dom-collections.for-each.js",
    "content": "import { GLOBAL } from '../helpers/constants.js';\n\nQUnit.test('forEach method on iterable DOM collections', assert => {\n  let absent = true;\n  const collections = [\n    'NodeList',\n    'DOMTokenList',\n  ];\n\n  for (const name of collections) {\n    const Collection = GLOBAL[name];\n    if (Collection) {\n      absent = false;\n      assert.isFunction(Collection.prototype.forEach, `${ name }::forEach is a function`);\n      assert.same(Collection.prototype.forEach, Array.prototype.forEach, `${ name }::forEach is equal of Array::forEach`);\n    }\n  }\n\n  if (absent) {\n    assert.required('DOM collections are absent');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/web.dom-collections.iterator.js",
    "content": "import { GLOBAL } from '../helpers/constants.js';\n\nconst Symbol = GLOBAL.Symbol || {};\n\nQUnit.test('Iterable DOM collections', assert => {\n  let absent = true;\n  let collections = [\n    'CSSRuleList',\n    'CSSStyleDeclaration',\n    'CSSValueList',\n    'ClientRectList',\n    'DOMRectList',\n    'DOMStringList',\n    'DOMTokenList',\n    'DataTransferItemList',\n    'FileList',\n    'HTMLAllCollection',\n    'HTMLCollection',\n    'HTMLFormElement',\n    'HTMLSelectElement',\n    'MediaList',\n    'MimeTypeArray',\n    'NamedNodeMap',\n    'NodeList',\n    'PaintRequestList',\n    'Plugin',\n    'PluginArray',\n    'SVGLengthList',\n    'SVGNumberList',\n    'SVGPathSegList',\n    'SVGPointList',\n    'SVGStringList',\n    'SVGTransformList',\n    'SourceBufferList',\n    'StyleSheetList',\n    'TextTrackCueList',\n    'TextTrackList',\n    'TouchList',\n  ];\n\n  for (const name of collections) {\n    const Collection = GLOBAL[name];\n    if (Collection) {\n      assert.same(Collection.prototype[Symbol.toStringTag], name, `${ name }::@@toStringTag is '${ name }'`);\n      assert.isFunction(Collection.prototype[Symbol.iterator], `${ name }::@@iterator is function`);\n      absent = false;\n    }\n  }\n\n  if (GLOBAL.NodeList && GLOBAL.document && document.querySelectorAll && document.querySelectorAll('div') instanceof NodeList) {\n    assert.isFunction(document.querySelectorAll('div')[Symbol.iterator], 'works with document.querySelectorAll');\n  }\n\n  collections = [\n    'NodeList',\n    'DOMTokenList',\n  ];\n\n  for (const name of collections) {\n    const Collection = GLOBAL[name];\n    if (Collection) {\n      assert.isFunction(Collection.prototype.values, `${ name }::values is function`);\n      assert.same(Collection.prototype.values, Array.prototype.values, `${ name }::values is equal of Array::values`);\n      assert.isFunction(Collection.prototype.keys, `${ name }::keys is function`);\n      assert.same(Collection.prototype.keys, Array.prototype.keys, `${ name }::keys is equal of Array::keys`);\n      assert.isFunction(Collection.prototype.entries, `${ name }::entries is function`);\n      assert.same(Collection.prototype.entries, Array.prototype.entries, `${ name }::entries is equal of Array::entries`);\n    }\n  }\n\n  if (absent) {\n    assert.required('DOM collections are absent');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/web.dom-exception.constructor.js",
    "content": "import { DESCRIPTORS, NODE } from '../helpers/constants.js';\n\nconst errors = {\n  IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n  DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n  HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n  WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n  InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n  NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n  NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n  NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n  NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n  InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n  InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n  SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n  InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n  NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n  InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n  ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n  TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n  SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n  NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n  AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n  URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n  // https://github.com/whatwg/webidl/pull/1465\n  // QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n  TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n  InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n  DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 },\n};\n\nconst HAS_STACK = 'stack' in new Error('1');\n\nQUnit.test('DOMException', assert => {\n  assert.isFunction(DOMException);\n  assert.arity(DOMException, 0);\n  assert.name(DOMException, 'DOMException');\n  // assert.looksNative(DOMException); // FF43- bug\n\n  let error = new DOMException({}, 'Foo');\n  assert.true(error instanceof DOMException, 'new DOMException({}, \"Foo\") instanceof DOMException');\n  assert.same(error.message, '[object Object]', 'new DOMException({}, \"Foo\").message');\n  assert.same(error.name, 'Foo', 'new DOMException({}, \"Foo\").name');\n  assert.same(error.code, 0, 'new DOMException({}, \"Foo\").code');\n  assert.same(String(error), 'Foo: [object Object]', 'String(new DOMException({}, \"Foo\"))'); // Safari 10.1 bug\n  assert.same(error.constructor, DOMException, 'new DOMException({}, \"Foo\").constructor');\n  assert.same(error[Symbol.toStringTag], 'DOMException', 'DOMException.prototype[Symbol.toStringTag]');\n  if (HAS_STACK) assert.true('stack' in error, \"'stack' in new DOMException()\");\n\n  assert.same(new DOMException().message, '', 'new DOMException().message');\n  assert.same(new DOMException(undefined).message, '', 'new DOMException(undefined).message');\n  assert.same(new DOMException(42).name, 'Error', 'new DOMException(42).name');\n  assert.same(new DOMException(42, undefined).name, 'Error', 'new DOMException(42, undefined).name');\n\n  for (const name in errors) {\n    error = new DOMException(42, name);\n    assert.true(error instanceof DOMException, `new DOMException(42, \"${ name }\") instanceof DOMException`);\n    assert.same(error.message, '42', `new DOMException(42, \"${ name }\").message`);\n    assert.same(error.name, name, `new DOMException(42, \"${ name }\").name`);\n    if (errors[name].m) assert.same(error.code, errors[name].c, `new DOMException(42, \"${ name }\").code`);\n    // NodeJS and Deno set codes to deprecated errors\n    else if (!NODE) assert.same(error.code, 0, `new DOMException(42, \"${ name }\").code`);\n    assert.same(String(error), `${ name }: 42`, `String(new DOMException(42, \"${ name }\"))`); // Safari 10.1 bug\n    if (HAS_STACK) assert.true('stack' in error, `'stack' in new DOMException(42, \"${ name }\")`);\n\n    assert.same(DOMException[errors[name].s], errors[name].c, `DOMException.${ errors[name].s }`);\n    assert.same(DOMException.prototype[errors[name].s], errors[name].c, `DOMException.prototype.${ errors[name].s }`);\n  }\n\n  assert.throws(() => DOMException(42, 'DataCloneError'), \"DOMException(42, 'DataCloneError')\");\n  const symbol = Symbol('DOMException constructor test');\n  assert.throws(() => new DOMException(symbol, 'DataCloneError'), \"new DOMException(Symbol(), 'DataCloneError')\");\n  assert.throws(() => new DOMException(42, symbol), 'new DOMException(42, Symbol())');\n  if (DESCRIPTORS) {\n    // assert.throws(() => DOMException.prototype.message, 'DOMException.prototype.message'); // FF55- , Safari 10.1 bug\n    // assert.throws(() => DOMException.prototype.name, 'DOMException.prototype.name'); // FF55-, Safari 10.1 bug bug\n    // assert.throws(() => DOMException.prototype.code, 'DOMException.prototype.code'); // Safari 10.1 bug\n    // assert.throws(() => DOMException.prototype.toString(), 'DOMException.prototype.toString()'); // FF55- bug\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/web.queue-microtask.js",
    "content": "import { NODE } from '../helpers/constants.js';\nimport { timeLimitedPromise } from '../helpers/helpers.js';\n\nQUnit.test('queueMicrotask', assert => {\n  assert.isFunction(queueMicrotask);\n  assert.arity(queueMicrotask, 1);\n  assert.name(queueMicrotask, 'queueMicrotask');\n  if (!NODE) assert.looksNative(queueMicrotask);\n\n  return timeLimitedPromise(3e3, resolve => {\n    let called = false;\n    queueMicrotask(() => {\n      called = true;\n      resolve();\n    });\n    assert.false(called, 'async');\n  }).then(() => {\n    assert.required('works');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/web.self.js",
    "content": "/* eslint-disable no-restricted-globals, unicorn/prefer-global-this -- safe */\nimport { DESCRIPTORS } from '../helpers/constants.js';\n\nQUnit.test('self', assert => {\n  assert.same(self, Object(self), 'is object');\n  assert.same(self.Math, Math, 'contains globals');\n  if (DESCRIPTORS) {\n    const descriptor = Object.getOwnPropertyDescriptor(self, 'self');\n    // can't be properly defined (non-configurable) in some ancient engines like PhantomJS\n    // assert.isFunction(descriptor.get, 'a getter');\n    // assert.true(descriptor.configurable, 'configurable');\n    assert.true(descriptor.enumerable, 'enumerable');\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/web.set-immediate.js",
    "content": "import { timeLimitedPromise } from '../helpers/helpers.js';\n\nQUnit.test('setImmediate / clearImmediate', assert => {\n  assert.isFunction(setImmediate, 'setImmediate is function');\n  assert.isFunction(clearImmediate, 'clearImmediate is function');\n  assert.name(setImmediate, 'setImmediate');\n  assert.name(clearImmediate, 'clearImmediate');\n  let called = false;\n\n  const promise = timeLimitedPromise(1e3, resolve => {\n    setImmediate(() => {\n      called = true;\n      resolve();\n    });\n  }).then(() => {\n    assert.required('setImmediate works');\n  }, () => {\n    assert.avoid('setImmediate works');\n  }).then(() => {\n    return timeLimitedPromise(1e3, resolve => {\n      setImmediate((a, b) => {\n        resolve(a + b);\n      }, 'a', 'b');\n    });\n  }).then(it => {\n    assert.same(it, 'ab', 'setImmediate works with additional args');\n  }, () => {\n    assert.avoid('setImmediate works with additional args');\n  }).then(() => {\n    return timeLimitedPromise(50, resolve => {\n      clearImmediate(setImmediate(resolve));\n    });\n  }).then(() => {\n    assert.avoid('clearImmediate works');\n  }, () => {\n    assert.required('clearImmediate works');\n  });\n\n  assert.false(called, 'setImmediate is async');\n\n  return promise;\n});\n"
  },
  {
    "path": "tests/unit-global/web.set-interval.js",
    "content": "import { timeLimitedPromise } from '../helpers/helpers.js';\n\nQUnit.test('setInterval / clearInterval', assert => {\n  assert.isFunction(setInterval, 'setInterval is function');\n  assert.isFunction(clearInterval, 'clearInterval is function');\n  assert.name(setInterval, 'setInterval');\n  assert.name(clearInterval, 'clearInterval');\n\n  return timeLimitedPromise(1e4, (resolve, reject) => {\n    let i = 0;\n    const interval = setInterval((a, b) => {\n      if (a + b !== 'ab' || i > 2) reject({ a, b, i });\n      if (i++ === 2) {\n        clearInterval(interval);\n        setTimeout(resolve, 30);\n      }\n    }, 5, 'a', 'b');\n  }).then(() => {\n    assert.required('setInterval & clearInterval works with additional args');\n  }, (error = {}) => {\n    assert.avoid(`setInterval & clearInterval works with additional args: ${ error.a }, ${ error.b }, times: ${ error.i }`);\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/web.set-timeout.js",
    "content": "import { timeLimitedPromise } from '../helpers/helpers.js';\n\nQUnit.test('setTimeout / clearTimeout', assert => {\n  assert.isFunction(setTimeout, 'setTimeout is function');\n  assert.isFunction(clearTimeout, 'clearTimeout is function');\n  assert.name(setTimeout, 'setTimeout');\n  assert.name(clearTimeout, 'clearTimeout');\n\n  return timeLimitedPromise(1e3, resolve => {\n    setTimeout((a, b) => { resolve(a + b); }, 10, 'a', 'b');\n  }).then(it => {\n    assert.same(it, 'ab', 'setTimeout works with additional args');\n  }, () => {\n    assert.avoid('setTimeout works with additional args');\n  }).then(() => {\n    return timeLimitedPromise(50, resolve => {\n      clearTimeout(setTimeout(resolve, 10));\n    });\n  }).then(() => {\n    assert.avoid('clearTimeout works with wrapped setTimeout');\n  }, () => {\n    assert.required('clearTimeout works with wrapped setTimeout');\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/web.structured-clone.js",
    "content": "// Originally from: https://github.com/web-platform-tests/wpt/blob/4b35e758e2fc4225368304b02bcec9133965fd1a/IndexedDB/structured-clone.any.js\n// Copyright © web-platform-tests contributors. Available under the 3-Clause BSD License.\nimport { GLOBAL, NODE, BUN } from '../helpers/constants.js';\nimport { bufferToArray, fromSource } from '../helpers/helpers.js';\n\nconst { from } = Array;\nconst { assign, getPrototypeOf, keys } = Object;\n\nQUnit.module('structuredClone', () => {\n  QUnit.test('identity', assert => {\n    assert.isFunction(structuredClone, 'structuredClone is a function');\n    assert.name(structuredClone, 'structuredClone');\n    assert.arity(structuredClone, 1);\n    if (!NODE) assert.looksNative(structuredClone);\n    assert.throws(() => structuredClone(), 'throws without arguments');\n    assert.same(structuredClone(1, null), 1, 'null as options');\n    assert.same(structuredClone(1, undefined), 1, 'undefined as options');\n  });\n\n  function cloneTest(value, verifyFunc) {\n    verifyFunc(value, structuredClone(value));\n  }\n\n  // Specialization of cloneTest() for objects, with common asserts.\n  function cloneObjectTest(assert, value, verifyFunc) {\n    cloneTest(value, (orig, clone) => {\n      assert.notSame(orig, clone, 'clone should have different reference');\n      assert.same(typeof clone, 'object', 'clone should be an object');\n      // https://github.com/qunitjs/node-qunit/issues/146\n      assert.true(getPrototypeOf(orig) === getPrototypeOf(clone), 'clone should have same prototype');\n      verifyFunc(orig, clone);\n    });\n  }\n\n  // ECMAScript types\n\n  // Primitive values: Undefined, Null, Boolean, Number, BigInt, String\n  const booleans = [false, true];\n  const numbers = [\n    NaN,\n    -Infinity,\n    -Number.MAX_VALUE,\n    -0xFFFFFFFF,\n    -0x80000000,\n    -0x7FFFFFFF,\n    -1,\n    -Number.MIN_VALUE,\n    -0,\n    0,\n    1,\n    Number.MIN_VALUE,\n    0x7FFFFFFF,\n    0x80000000,\n    0xFFFFFFFF,\n    Number.MAX_VALUE,\n    Infinity,\n  ];\n\n  const bigints = fromSource(`[\n    -12345678901234567890n,\n    -1n,\n    0n,\n    1n,\n    12345678901234567890n,\n  ]`) || [];\n\n  const strings = [\n    '',\n    'this is a sample string',\n    'null(\\0)',\n  ];\n\n  QUnit.test('primitives', assert => {\n    const primitives = [undefined, null, ...booleans, ...numbers, ...bigints, ...strings];\n\n    for (const value of primitives) cloneTest(value, (orig, clone) => {\n      assert.same(orig, clone, 'primitives should be same after cloned');\n    });\n  });\n\n  // \"Primitive\" Objects (Boolean, Number, BigInt, String)\n  QUnit.test('primitive objects', assert => {\n    const primitives = [...booleans, ...numbers, ...bigints, ...strings];\n\n    for (const value of primitives) cloneObjectTest(assert, Object(value), (orig, clone) => {\n      assert.same(orig.valueOf(), clone.valueOf(), 'primitive wrappers should have same value');\n    });\n  });\n\n  // Dates\n  QUnit.test('Date', assert => {\n    const dates = [\n      new Date(-1e13),\n      new Date(-1e12),\n      new Date(-1e9),\n      new Date(-1e6),\n      new Date(-1e3),\n      new Date(0),\n      new Date(1e3),\n      new Date(1e6),\n      new Date(1e9),\n      new Date(1e12),\n      new Date(1e13),\n    ];\n\n    for (const date of dates) cloneTest(date, (orig, clone) => {\n      assert.notSame(orig, clone);\n      assert.same(typeof clone, 'object');\n      assert.same(getPrototypeOf(orig), getPrototypeOf(clone));\n      assert.same(orig.valueOf(), clone.valueOf());\n    });\n  });\n\n  // Regular Expressions\n  QUnit.test('RegExp', assert => {\n    const regexes = [\n      new RegExp(),\n      /abc/,\n      /abc/g,\n      /abc/i,\n      /abc/gi,\n    ];\n\n    const giuy = fromSource('/abc/giuy');\n    if (giuy) regexes.push(giuy);\n\n    for (const regex of regexes) cloneObjectTest(assert, regex, (orig, clone) => {\n      assert.same(orig.toString(), clone.toString(), `regex ${ regex }`);\n    });\n  });\n\n  if (fromSource('ArrayBuffer.prototype.slice || DataView')) {\n    // ArrayBuffer\n    if (typeof Uint8Array == 'function') QUnit.test('ArrayBuffer', assert => { // Crashes\n      cloneObjectTest(assert, new Uint8Array([0, 1, 254, 255]).buffer, (orig, clone) => {\n        assert.arrayEqual(new Uint8Array(orig), new Uint8Array(clone));\n      });\n    });\n\n    // TODO SharedArrayBuffer\n\n    // Array Buffer Views\n    if (typeof Int8Array != 'undefined') {\n      QUnit.test('%TypedArray%', assert => {\n        const arrays = [\n          new Uint8Array([]),\n          new Uint8Array([0, 1, 254, 255]),\n          new Uint16Array([0x0000, 0x0001, 0xFFFE, 0xFFFF]),\n          new Uint32Array([0x00000000, 0x00000001, 0xFFFFFFFE, 0xFFFFFFFF]),\n          new Int8Array([0, 1, 254, 255]),\n          new Int16Array([0x0000, 0x0001, 0xFFFE, 0xFFFF]),\n          new Int32Array([0x00000000, 0x00000001, 0xFFFFFFFE, 0xFFFFFFFF]),\n          new Float32Array([-Infinity, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, Infinity, NaN]),\n          new Float64Array([-Infinity, -Number.MAX_VALUE, -Number.MIN_VALUE, 0, Number.MIN_VALUE, Number.MAX_VALUE, Infinity, NaN]),\n        ];\n\n        if (typeof Uint8ClampedArray != 'undefined') {\n          arrays.push(new Uint8ClampedArray([0, 1, 254, 255]));\n        }\n\n        for (const array of arrays) cloneObjectTest(assert, array, (orig, clone) => {\n          assert.arrayEqual(orig, clone);\n        });\n      });\n\n      if (typeof DataView != 'undefined') QUnit.test('DataView', assert => {\n        const array = new Int8Array([1, 2, 3, 4]);\n        const view = new DataView(array.buffer);\n\n        cloneObjectTest(assert, view, (orig, clone) => {\n          assert.same(orig.byteLength, clone.byteLength);\n          assert.same(orig.byteOffset, clone.byteOffset);\n          assert.arrayEqual(new Int8Array(orig.buffer), new Int8Array(clone.buffer));\n        });\n      });\n    }\n\n    if ('resizable' in ArrayBuffer.prototype) {\n      QUnit.test('Resizable ArrayBuffer', assert => {\n        const array = [1, 2, 3, 4, 5, 6, 7, 8];\n\n        let buffer = new ArrayBuffer(8, { maxByteLength: 16 });\n        new Int8Array(buffer).set(array);\n        let copy = structuredClone(buffer);\n        assert.arrayEqual(bufferToArray(copy), array, 'resizable-ab-1');\n        assert.true(copy.resizable, 'resizable-ab-1');\n\n        buffer = new ArrayBuffer(8);\n        new Int8Array(buffer).set(array);\n        copy = structuredClone(buffer);\n        assert.arrayEqual(bufferToArray(copy), array, 'non-resizable-ab-1');\n        assert.false(copy.resizable, 'non-resizable-ab-1');\n\n        buffer = new ArrayBuffer(8, { maxByteLength: 16 });\n        let tarray = new Int8Array(buffer);\n        tarray.set(array);\n        copy = structuredClone(tarray).buffer;\n        assert.arrayEqual(bufferToArray(copy), array, 'resizable-ab-2');\n        assert.true(copy.resizable, 'resizable-ab-2');\n\n        buffer = new ArrayBuffer(8);\n        tarray = new Int8Array(buffer);\n        tarray.set(array);\n        copy = structuredClone(tarray).buffer;\n        assert.arrayEqual(bufferToArray(copy), array, 'non-resizable-ab-2');\n        assert.false(copy.resizable, 'non-resizable-ab-2');\n      });\n    }\n  }\n\n  // Map\n  QUnit.test('Map', assert => {\n    cloneObjectTest(assert, new Map([[1, 2], [3, 4]]), (orig, clone) => {\n      assert.deepEqual(from(orig.keys()), from(clone.keys()));\n      assert.deepEqual(from(orig.values()), from(clone.values()));\n    });\n  });\n\n  // Set\n  QUnit.test('Set', assert => {\n    cloneObjectTest(assert, new Set([1, 2, 3, 4]), (orig, clone) => {\n      assert.deepEqual(from(orig.values()), from(clone.values()));\n    });\n  });\n\n  // Error\n  QUnit.test('Error', assert => {\n    const errors = [\n      ['Error', new Error()],\n      ['Error', new Error('msg', { cause: 42 })],\n      ['EvalError', new EvalError()],\n      ['EvalError', new EvalError('msg', { cause: 42 })],\n      ['RangeError', new RangeError()],\n      ['RangeError', new RangeError('msg', { cause: 42 })],\n      ['ReferenceError', new ReferenceError()],\n      ['ReferenceError', new ReferenceError('msg', { cause: 42 })],\n      ['SyntaxError', new SyntaxError()],\n      ['SyntaxError', new SyntaxError('msg', { cause: 42 })],\n      ['TypeError', new TypeError()],\n      ['TypeError', new TypeError('msg', { cause: 42 })],\n      ['URIError', new URIError()],\n      ['URIError', new URIError('msg', { cause: 42 })],\n      ['AggregateError', new AggregateError([1, 2])],\n      ['AggregateError', new AggregateError([1, 2], 'msg', { cause: 42 })],\n    ];\n\n    const compile = fromSource('WebAssembly.CompileError()');\n    const link = fromSource('WebAssembly.LinkError()');\n    const runtime = fromSource('WebAssembly.RuntimeError()');\n\n    if (compile && compile.name === 'CompileError') errors.push(['CompileError', compile]);\n    if (link && link.name === 'LinkError') errors.push(['LinkError', link]);\n    if (runtime && runtime.name === 'RuntimeError') errors.push(['RuntimeError', runtime]);\n\n    for (const [name, error] of errors) cloneObjectTest(assert, error, (orig, clone) => {\n      assert.same(orig.constructor, clone.constructor, `${ name }#constructor`);\n      assert.same(orig.name, clone.name, `${ name }#name`);\n      assert.same(orig.message, clone.message, `${ name }#message`);\n      assert.same(orig.stack, clone.stack, `${ name }#stack`);\n      assert.same(orig.cause, clone.cause, `${ name }#cause`);\n      assert.deepEqual(orig.errors, clone.errors, `${ name }#errors`);\n    });\n  });\n\n  // Arrays\n  QUnit.test('Array', assert => {\n    const arrays = [\n      [],\n      [1, 2, 3],\n      Array(1),\n      assign(\n        ['foo', 'bar'],\n        { 10: true, 11: false, 20: 123, 21: 456, 30: null }),\n      assign(\n        ['foo', 'bar'],\n        { a: true, b: false, foo: 123, bar: 456, '': null }),\n    ];\n\n    for (const array of arrays) cloneObjectTest(assert, array, (orig, clone) => {\n      assert.deepEqual(orig, clone, `array content should be same: ${ array }`);\n      assert.deepEqual(orig.length, clone.length, `array length should be same: ${ array }`);\n      assert.deepEqual(keys(orig), keys(clone), `array key should be same: ${ array }`);\n      for (const key of keys(orig)) {\n        assert.same(orig[key], clone[key], `Property ${ key }`);\n      }\n    });\n  });\n\n  // Objects\n  QUnit.test('Object', assert => {\n    cloneObjectTest(assert, { foo: true, bar: false }, (orig, clone) => {\n      assert.deepEqual(keys(orig), keys(clone));\n      for (const key of keys(orig)) {\n        assert.same(orig[key], clone[key], `Property ${ key }`);\n      }\n    });\n  });\n\n  // [Serializable] Platform objects\n\n  // Geometry types\n  if (typeof DOMMatrix == 'function') {\n    QUnit.test('Geometry types, DOMMatrix', assert => {\n      cloneObjectTest(assert, new DOMMatrix(), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.same(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  if (typeof DOMMatrixReadOnly == 'function' && typeof DOMMatrixReadOnly.fromMatrix == 'function') {\n    QUnit.test('Geometry types, DOMMatrixReadOnly', assert => {\n      cloneObjectTest(assert, new DOMMatrixReadOnly(), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.same(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  if (typeof DOMPoint == 'function') {\n    QUnit.test('Geometry types, DOMPoint', assert => {\n      cloneObjectTest(assert, new DOMPoint(1, 2, 3, 4), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.same(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  if (typeof DOMPointReadOnly == 'function' && typeof DOMPointReadOnly.fromPoint == 'function') {\n    QUnit.test('Geometry types, DOMPointReadOnly', assert => {\n      cloneObjectTest(assert, new DOMPointReadOnly(1, 2, 3, 4), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.same(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  if (typeof DOMQuad == 'function' && typeof DOMPoint == 'function') {\n    QUnit.test('Geometry types, DOMQuad', assert => {\n      cloneObjectTest(assert, new DOMQuad(\n        new DOMPoint(1, 2, 3, 4),\n        new DOMPoint(2, 2, 3, 4),\n        new DOMPoint(1, 3, 3, 4),\n        new DOMPoint(1, 2, 4, 4),\n      ), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.deepEqual(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  if (fromSource('new DOMRect(1, 2, 3, 4)')) {\n    QUnit.test('Geometry types, DOMRect', assert => {\n      cloneObjectTest(assert, new DOMRect(1, 2, 3, 4), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.same(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  if (typeof DOMRectReadOnly == 'function' && typeof DOMRectReadOnly.fromRect == 'function') {\n    QUnit.test('Geometry types, DOMRectReadOnly', assert => {\n      cloneObjectTest(assert, new DOMRectReadOnly(1, 2, 3, 4), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.same(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  // Safari 8- does not support `{ colorSpace }` option\n  if (fromSource('new ImageData(new ImageData(8, 8).data, 8, 8, { colorSpace: new ImageData(8, 8).colorSpace })')) {\n    QUnit.test('ImageData', assert => {\n      const imageData = new ImageData(8, 8);\n      for (let i = 0; i < 256; ++i) {\n        imageData.data[i] = i;\n      }\n      cloneObjectTest(assert, imageData, (orig, clone) => {\n        assert.same(orig.width, clone.width);\n        assert.same(orig.height, clone.height);\n        assert.same(orig.colorSpace, clone.colorSpace);\n        assert.arrayEqual(orig.data, clone.data);\n      });\n    });\n  }\n\n  if (fromSource('new Blob([\"test\"])')) QUnit.test('Blob', assert => {\n    cloneObjectTest(\n      assert,\n      new Blob(['This is a test.'], { type: 'a/b' }),\n      (orig, clone) => {\n        assert.same(orig.size, clone.size);\n        assert.same(orig.type, clone.type);\n        // TODO: async\n        // assert.same(await orig.text(), await clone.text());\n      });\n  });\n\n  QUnit.test('DOMException', assert => {\n    const errors = [\n      new DOMException(),\n      new DOMException('foo', 'DataCloneError'),\n    ];\n\n    for (const error of errors) cloneObjectTest(assert, error, (orig, clone) => {\n      assert.same(orig.name, clone.name);\n      assert.same(orig.message, clone.message);\n      assert.same(orig.code, clone.code);\n      assert.same(orig.stack, clone.stack);\n    });\n  });\n\n  // https://github.com/oven-sh/bun/issues/11696\n  if (!BUN && fromSource('new File([\"test\"], \"foo.txt\")')) QUnit.test('File', assert => {\n    cloneObjectTest(\n      assert,\n      new File(['This is a test.'], 'foo.txt', { type: 'c/d' }),\n      (orig, clone) => {\n        assert.same(orig.size, clone.size);\n        assert.same(orig.type, clone.type);\n        assert.same(orig.name, clone.name);\n        assert.same(orig.lastModified, clone.lastModified);\n        // TODO: async\n        // assert.same(await orig.text(), await clone.text());\n      });\n  });\n\n  // FileList\n  if (fromSource('new File([\"test\"], \"foo.txt\")') && fromSource('new DataTransfer() && \"items\" in DataTransfer.prototype')) QUnit.test('FileList', assert => {\n    const transfer = new DataTransfer();\n    transfer.items.add(new File(['test'], 'foo.txt'));\n    cloneObjectTest(\n      assert,\n      transfer.files,\n      (orig, clone) => {\n        assert.same(clone.length, 1);\n        assert.same(orig[0].size, clone[0].size);\n        assert.same(orig[0].type, clone[0].type);\n        assert.same(orig[0].name, clone[0].name);\n        assert.same(orig[0].lastModified, clone[0].lastModified);\n      },\n    );\n  });\n\n  // Non-serializable types\n  QUnit.test('Non-serializable types', assert => {\n    const nons = [\n      function () { return 1; },\n      Symbol('desc'),\n      GLOBAL,\n    ];\n\n    const event = fromSource('new Event(\"\")');\n    const port = fromSource('new MessageChannel().port1');\n\n    // NodeJS events are simple objects\n    if (event && !NODE) nons.push(event);\n    if (port) nons.push(port);\n\n    for (const it of nons) {\n      // native NodeJS `structuredClone` throws a `TypeError` on transferable non-serializable instead of `DOMException`\n      // https://github.com/nodejs/node/issues/40841\n      assert.throws(() => structuredClone(it));\n    }\n  });\n});\n"
  },
  {
    "path": "tests/unit-global/web.url-search-params.js",
    "content": "import { DESCRIPTORS, NODE, BUN } from '../helpers/constants.js';\nimport { createIterable } from '../helpers/helpers.js';\n\nconst { getPrototypeOf, getOwnPropertyDescriptor } = Object;\n\nQUnit.test('URLSearchParams', assert => {\n  assert.isFunction(URLSearchParams);\n  assert.arity(URLSearchParams, 0);\n  assert.name(URLSearchParams, 'URLSearchParams');\n  if (!NODE) assert.looksNative(URLSearchParams);\n\n  assert.same(String(new URLSearchParams()), '');\n  assert.same(String(new URLSearchParams('')), '');\n  assert.same(String(new URLSearchParams('a=b')), 'a=b');\n  assert.same(String(new URLSearchParams(new URLSearchParams('a=b'))), 'a=b');\n  assert.same(String(new URLSearchParams([])), '');\n  assert.same(String(new URLSearchParams([[1, 2], ['a', 'b']])), '1=2&a=b');\n  assert.same(String(new URLSearchParams(createIterable([createIterable(['a', 'b']), createIterable(['c', 'd'])]))), 'a=b&c=d');\n  assert.same(String(new URLSearchParams({})), '');\n  assert.same(String(new URLSearchParams({ 1: 2, a: 'b' })), '1=2&a=b');\n\n  assert.same(String(new URLSearchParams('?a=b')), 'a=b', 'leading ? should be ignored');\n  assert.same(String(new URLSearchParams('??a=b')), '%3Fa=b');\n  assert.same(String(new URLSearchParams('?')), '');\n  assert.same(String(new URLSearchParams('??')), '%3F=');\n\n  assert.same(String(new URLSearchParams('a=b c')), 'a=b+c');\n  assert.same(String(new URLSearchParams('a=b&b=c&a=d')), 'a=b&b=c&a=d');\n\n  assert.same(String(new URLSearchParams('a==')), 'a=%3D');\n  assert.same(String(new URLSearchParams('a=b=')), 'a=b%3D');\n  assert.same(String(new URLSearchParams('a=b=c')), 'a=b%3Dc');\n  assert.same(String(new URLSearchParams('a==b')), 'a=%3Db');\n\n  let params = new URLSearchParams('a=b');\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.false(params.has('b'), 'search params object has not got name \"b\"');\n\n  params = new URLSearchParams('a=b&c');\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.true(params.has('c'), 'search params object has name \"c\"');\n\n  params = new URLSearchParams('&a&&& &&&&&a+b=& c&m%c3%b8%c3%b8');\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.true(params.has('a b'), 'search params object has name \"a b\"');\n  assert.true(params.has(' '), 'search params object has name \" \"');\n  assert.false(params.has('c'), 'search params object did not have the name \"c\"');\n  assert.true(params.has(' c'), 'search params object has name \" c\"');\n  assert.true(params.has('møø'), 'search params object has name \"møø\"');\n\n  params = new URLSearchParams('a=b+c');\n  assert.same(params.get('a'), 'b c', 'parse +');\n  params = new URLSearchParams('a+b=c');\n  assert.same(params.get('a b'), 'c', 'parse +');\n\n  params = new URLSearchParams('a=b c');\n  assert.same(params.get('a'), 'b c', 'parse \" \"');\n  params = new URLSearchParams('a b=c');\n  assert.same(params.get('a b'), 'c', 'parse \" \"');\n\n  params = new URLSearchParams('a=b%20c');\n  assert.same(params.get('a'), 'b c', 'parse %20');\n  params = new URLSearchParams('a%20b=c');\n  assert.same(params.get('a b'), 'c', 'parse %20');\n\n  params = new URLSearchParams('a=b\\0c');\n  assert.same(params.get('a'), 'b\\0c', 'parse \\\\0');\n  params = new URLSearchParams('a\\0b=c');\n  assert.same(params.get('a\\0b'), 'c', 'parse \\\\0');\n\n  params = new URLSearchParams('a=b%00c');\n  assert.same(params.get('a'), 'b\\0c', 'parse %00');\n  params = new URLSearchParams('a%00b=c');\n  assert.same(params.get('a\\0b'), 'c', 'parse %00');\n\n  params = new URLSearchParams('a=b\\u2384');\n  assert.same(params.get('a'), 'b\\u2384', 'parse \\u2384');\n  params = new URLSearchParams('a\\u2384b=c');\n  assert.same(params.get('a\\u2384b'), 'c', 'parse \\u2384');\n\n  params = new URLSearchParams('a=b%e2%8e%84');\n  assert.same(params.get('a'), 'b\\u2384', 'parse %e2%8e%84');\n  params = new URLSearchParams('a%e2%8e%84b=c');\n  assert.same(params.get('a\\u2384b'), 'c', 'parse %e2%8e%84');\n\n  params = new URLSearchParams('a=b\\uD83D\\uDCA9c');\n  assert.same(params.get('a'), 'b\\uD83D\\uDCA9c', 'parse \\uD83D\\uDCA9');\n  params = new URLSearchParams('a\\uD83D\\uDCA9b=c');\n  assert.same(params.get('a\\uD83D\\uDCA9b'), 'c', 'parse \\uD83D\\uDCA9');\n\n  params = new URLSearchParams('a=b%f0%9f%92%a9c');\n  assert.same(params.get('a'), 'b\\uD83D\\uDCA9c', 'parse %f0%9f%92%a9');\n  params = new URLSearchParams('a%f0%9f%92%a9b=c');\n  assert.same(params.get('a\\uD83D\\uDCA9b'), 'c', 'parse %f0%9f%92%a9');\n\n  params = new URLSearchParams();\n  params.set('query', '+15555555555');\n  assert.same(params.toString(), 'query=%2B15555555555');\n  assert.same(params.get('query'), '+15555555555', 'parse encoded +');\n  params = new URLSearchParams(params.toString());\n  assert.same(params.get('query'), '+15555555555', 'parse encoded +');\n\n  params = new URLSearchParams('b=%2sf%2a');\n  assert.same(params.get('b'), '%2sf*', 'parse encoded %2sf%2a');\n  params = new URLSearchParams('b=%%2a');\n  assert.same(params.get('b'), '%*', 'parse encoded b=%%2a');\n\n  assert.same(String(new URLSearchParams('%C2')), '%EF%BF%BD=');\n  assert.same(String(new URLSearchParams('%F0%9F%D0%90')), '%EF%BF%BD%D0%90=');\n  assert.same(String(new URLSearchParams('%25')), '%25=');\n  assert.same(String(new URLSearchParams('%4')), '%254=');\n  assert.same(String(new URLSearchParams('%C3%ZZ')), '%EF%BF%BD%25ZZ=', 'invalid hex in continuation byte preserved');\n\n  // overlong UTF-8 encodings\n  assert.same(String(new URLSearchParams('%C0%AF')), '%EF%BF%BD%EF%BF%BD=', 'overlong 2-byte slash');\n  assert.same(String(new URLSearchParams('%C0%80')), '%EF%BF%BD%EF%BF%BD=', 'overlong 2-byte NUL');\n  assert.same(String(new URLSearchParams('%E0%80%AF')), '%EF%BF%BD%EF%BF%BD%EF%BF%BD=', 'overlong 3-byte slash');\n  assert.same(String(new URLSearchParams('%F0%80%80%AF')), '%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD=', 'overlong 4-byte slash');\n\n  // surrogate codepoints encoded in UTF-8\n  assert.same(String(new URLSearchParams('%ED%A0%80')), '%EF%BF%BD%EF%BF%BD%EF%BF%BD=', 'UTF-8 encoded U+D800');\n  assert.same(String(new URLSearchParams('%ED%BF%BF')), '%EF%BF%BD%EF%BF%BD%EF%BF%BD=', 'UTF-8 encoded U+DFFF');\n\n  // incomplete sequences with out-of-range continuation bytes per WHATWG encoding spec\n  assert.same(String(new URLSearchParams('%ED%A0')), '%EF%BF%BD%EF%BF%BD=', 'incomplete surrogate: ED A0');\n  assert.same(String(new URLSearchParams('%E0%80')), '%EF%BF%BD%EF%BF%BD=', 'incomplete overlong 3-byte: E0 80');\n  assert.same(String(new URLSearchParams('%F0%80%80')), '%EF%BF%BD%EF%BF%BD%EF%BF%BD=', 'incomplete overlong 4-byte: F0 80 80');\n  assert.same(String(new URLSearchParams('%F4%90')), '%EF%BF%BD%EF%BF%BD=', 'incomplete out-of-range 4-byte: F4 90');\n\n  const testData = [\n    { input: '?a=%', output: [['a', '%']], name: 'handling %' },\n    { input: { '+': '%C2' }, output: [['+', '%C2']], name: 'object with +' },\n    { input: { c: 'x', a: '?' }, output: [['c', 'x'], ['a', '?']], name: 'object with two keys' },\n    { input: [['c', 'x'], ['a', '?']], output: [['c', 'x'], ['a', '?']], name: 'array with two keys' },\n    // eslint-disable-next-line @stylistic/max-len -- ignore\n    // !!! { input: { 'a\\0b': '42', 'c\\uD83D': '23', dሴ: 'foo' }, output: [['a\\0b', '42'], ['c\\uFFFD', '23'], ['d\\u1234', 'foo']], name: 'object with NULL, non-ASCII, and surrogate keys' },\n  ];\n\n  for (const { input, output, name } of testData) {\n    params = new URLSearchParams(input);\n    let i = 0;\n    params.forEach((value, key) => {\n      const [reqKey, reqValue] = output[i++];\n      assert.same(key, reqKey, `construct with ${ name }`);\n      assert.same(value, reqValue, `construct with ${ name }`);\n    });\n  }\n\n  // https://github.com/oven-sh/bun/issues/9253\n  if (!BUN) assert.throws(() => {\n    URLSearchParams('');\n  }, 'throws w/o `new`');\n\n  assert.throws(() => {\n    new URLSearchParams([[1, 2, 3]]);\n  }, 'sequence elements must be pairs #1');\n\n  assert.throws(() => {\n    new URLSearchParams([createIterable([createIterable([1, 2, 3])])]);\n  }, 'sequence elements must be pairs #2');\n\n  assert.throws(() => {\n    new URLSearchParams([[1]]);\n  }, 'sequence elements must be pairs #3');\n\n  assert.throws(() => {\n    new URLSearchParams([createIterable([createIterable([1])])]);\n  }, 'sequence elements must be pairs #4');\n});\n\nQUnit.test('URLSearchParams#append', assert => {\n  const { append } = URLSearchParams.prototype;\n  assert.isFunction(append);\n  assert.arity(append, 2);\n  assert.name(append, 'append');\n  assert.enumerable(URLSearchParams.prototype, 'append');\n  if (!NODE) assert.looksNative(append);\n\n  assert.same(new URLSearchParams().append('a', 'b'), undefined, 'void');\n\n  let params = new URLSearchParams();\n  params.append('a', 'b');\n  assert.same(String(params), 'a=b');\n  params.append('a', 'b');\n  assert.same(String(params), 'a=b&a=b');\n  params.append('a', 'c');\n  assert.same(String(params), 'a=b&a=b&a=c');\n\n  params = new URLSearchParams();\n  params.append('', '');\n  assert.same(String(params), '=');\n  params.append('', '');\n  assert.same(String(params), '=&=');\n\n  params = new URLSearchParams();\n  params.append(undefined, undefined);\n  assert.same(String(params), 'undefined=undefined');\n  params.append(undefined, undefined);\n  assert.same(String(params), 'undefined=undefined&undefined=undefined');\n\n  params = new URLSearchParams();\n  params.append(null, null);\n  assert.same(String(params), 'null=null');\n  params.append(null, null);\n  assert.same(String(params), 'null=null&null=null');\n\n  params = new URLSearchParams();\n  params.append('first', 1);\n  params.append('second', 2);\n  params.append('third', '');\n  params.append('first', 10);\n  assert.true(params.has('first'), 'search params object has name \"first\"');\n  assert.same(params.get('first'), '1', 'search params object has name \"first\" with value \"1\"');\n  assert.same(params.get('second'), '2', 'search params object has name \"second\" with value \"2\"');\n  assert.same(params.get('third'), '', 'search params object has name \"third\" with value \"\"');\n  params.append('first', 10);\n  assert.same(params.get('first'), '1', 'search params object has name \"first\" with value \"1\"');\n\n  assert.throws(() => {\n    return new URLSearchParams('').append();\n  }, 'throws w/o arguments');\n});\n\nQUnit.test('URLSearchParams#delete', assert => {\n  const $delete = URLSearchParams.prototype.delete;\n  assert.isFunction($delete);\n  assert.arity($delete, 1);\n  assert.enumerable(URLSearchParams.prototype, 'delete');\n  if (!NODE) assert.looksNative($delete);\n\n  let params = new URLSearchParams('a=b&c=d');\n  params.delete('a');\n  assert.same(String(params), 'c=d');\n\n  params = new URLSearchParams('a=a&b=b&a=a&c=c');\n  params.delete('a');\n  assert.same(String(params), 'b=b&c=c');\n\n  params = new URLSearchParams('a=a&=&b=b&c=c');\n  params.delete('');\n  assert.same(String(params), 'a=a&b=b&c=c');\n\n  params = new URLSearchParams('a=a&null=null&b=b');\n  params.delete(null);\n  assert.same(String(params), 'a=a&b=b');\n\n  params = new URLSearchParams('a=a&undefined=undefined&b=b');\n  params.delete(undefined);\n  assert.same(String(params), 'a=a&b=b');\n\n  params = new URLSearchParams();\n  params.append('first', 1);\n  assert.true(params.has('first'), 'search params object has name \"first\"');\n  assert.same(params.get('first'), '1', 'search params object has name \"first\" with value \"1\"');\n  params.delete('first');\n  assert.false(params.has('first'), 'search params object has no \"first\" name');\n  params.append('first', 1);\n  params.append('first', 10);\n  params.delete('first');\n  assert.false(params.has('first'), 'search params object has no \"first\" name');\n\n  params = new URLSearchParams('a=1&a=2&a=null&a=3&b=4');\n  params.delete('a', 2);\n  assert.same(String(params), 'a=1&a=null&a=3&b=4');\n\n  params = new URLSearchParams('a=1&a=1&b=2&a=1');\n  params.delete('a', '1');\n  assert.same(String(params), 'b=2', 'delete with value removes all matching name+value pairs');\n\n  params = new URLSearchParams('a=1&a=2&a=null&a=3&b=4');\n  params.delete('a', null);\n  assert.same(String(params), 'a=1&a=2&a=3&b=4');\n\n  params = new URLSearchParams('a=1&a=2&a=null&a=3&b=4');\n  params.delete('a', undefined);\n  assert.same(String(params), 'b=4');\n\n  // delete with value should not drop entries with the same key before the target\n  params = new URLSearchParams('b=1&a=2&b=3');\n  params.delete('a', '2');\n  assert.same(String(params), 'b=1&b=3', 'entries before target with same key preserved');\n\n  params = new URLSearchParams('a=1&a=2&b=3');\n  params.delete('a', '1');\n  assert.same(String(params), 'a=2&b=3', 'only matching name+value pairs removed, rest preserved');\n\n  params = new URLSearchParams('a=1&b=2');\n  params.delete('a', '999');\n  assert.same(String(params), 'a=1&b=2', 'no match leaves all entries intact');\n\n  if (DESCRIPTORS) {\n    let url = new URL('http://example.com/?param1&param2');\n    url.searchParams.delete('param1');\n    url.searchParams.delete('param2');\n    assert.same(String(url), 'http://example.com/', 'url.href does not have ?');\n    assert.same(url.search, '', 'url.search does not have ?');\n\n    url = new URL('http://example.com/?');\n    url.searchParams.delete('param1');\n    // assert.same(String(url), 'http://example.com/', 'url.href does not have ?'); // Safari bug\n    assert.same(url.search, '', 'url.search does not have ?');\n  }\n\n  assert.throws(() => {\n    return new URLSearchParams('').delete();\n  }, 'throws w/o arguments');\n});\n\nQUnit.test('URLSearchParams#get', assert => {\n  const { get } = URLSearchParams.prototype;\n  assert.isFunction(get);\n  assert.arity(get, 1);\n  assert.name(get, 'get');\n  assert.enumerable(URLSearchParams.prototype, 'get');\n  if (!NODE) assert.looksNative(get);\n\n  let params = new URLSearchParams('a=b&c=d');\n  assert.same(params.get('a'), 'b');\n  assert.same(params.get('c'), 'd');\n  assert.same(params.get('e'), null);\n\n  params = new URLSearchParams('a=b&c=d&a=e');\n  assert.same(params.get('a'), 'b');\n\n  params = new URLSearchParams('=b&c=d');\n  assert.same(params.get(''), 'b');\n\n  params = new URLSearchParams('a=&c=d&a=e');\n  assert.same(params.get('a'), '');\n\n  params = new URLSearchParams('first=second&third&&');\n  assert.true(params.has('first'), 'Search params object has name \"first\"');\n  assert.same(params.get('first'), 'second', 'Search params object has name \"first\" with value \"second\"');\n  assert.same(params.get('third'), '', 'Search params object has name \"third\" with the empty value.');\n  assert.same(params.get('fourth'), null, 'Search params object has no \"fourth\" name and value.');\n\n  assert.same(new URLSearchParams('a=b c').get('a'), 'b c');\n  assert.same(new URLSearchParams('a b=c').get('a b'), 'c');\n\n  assert.same(new URLSearchParams('a=b%20c').get('a'), 'b c', 'parse %20');\n  assert.same(new URLSearchParams('a%20b=c').get('a b'), 'c', 'parse %20');\n\n  assert.same(new URLSearchParams('a=b\\0c').get('a'), 'b\\0c', 'parse \\\\0');\n  assert.same(new URLSearchParams('a\\0b=c').get('a\\0b'), 'c', 'parse \\\\0');\n\n  assert.same(new URLSearchParams('a=b%2Bc').get('a'), 'b+c', 'parse %2B');\n  assert.same(new URLSearchParams('a%2Bb=c').get('a+b'), 'c', 'parse %2B');\n\n  assert.same(new URLSearchParams('a=b%00c').get('a'), 'b\\0c', 'parse %00');\n  assert.same(new URLSearchParams('a%00b=c').get('a\\0b'), 'c', 'parse %00');\n\n  assert.same(new URLSearchParams('a==').get('a'), '=', 'parse =');\n  assert.same(new URLSearchParams('a=b=').get('a'), 'b=', 'parse =');\n  assert.same(new URLSearchParams('a=b=c').get('a'), 'b=c', 'parse =');\n  assert.same(new URLSearchParams('a==b').get('a'), '=b', 'parse =');\n\n  assert.same(new URLSearchParams('a=b\\u2384').get('a'), 'b\\u2384', 'parse \\\\u2384');\n  assert.same(new URLSearchParams('a\\u2384b=c').get('a\\u2384b'), 'c', 'parse \\\\u2384');\n\n  assert.same(new URLSearchParams('a=b%e2%8e%84').get('a'), 'b\\u2384', 'parse %e2%8e%84');\n  assert.same(new URLSearchParams('a%e2%8e%84b=c').get('a\\u2384b'), 'c', 'parse %e2%8e%84');\n\n  assert.same(new URLSearchParams('a=b\\uD83D\\uDCA9c').get('a'), 'b\\uD83D\\uDCA9c', 'parse \\\\uD83D\\\\uDCA9');\n  assert.same(new URLSearchParams('a\\uD83D\\uDCA9b=c').get('a\\uD83D\\uDCA9b'), 'c', 'parse \\\\uD83D\\\\uDCA9');\n\n  assert.same(new URLSearchParams('a=b%f0%9f%92%a9c').get('a'), 'b\\uD83D\\uDCA9c', 'parse %f0%9f%92%a9');\n  assert.same(new URLSearchParams('a%f0%9f%92%a9b=c').get('a\\uD83D\\uDCA9b'), 'c', 'parse %f0%9f%92%a9');\n\n  assert.same(new URLSearchParams('=').get(''), '', 'parse =');\n\n  assert.throws(() => {\n    return new URLSearchParams('').get();\n  }, 'throws w/o arguments');\n});\n\nQUnit.test('URLSearchParams#getAll', assert => {\n  const { getAll } = URLSearchParams.prototype;\n  assert.isFunction(getAll);\n  assert.arity(getAll, 1);\n  assert.name(getAll, 'getAll');\n  assert.enumerable(URLSearchParams.prototype, 'getAll');\n  if (!NODE) assert.looksNative(getAll);\n\n  let params = new URLSearchParams('a=b&c=d');\n  assert.arrayEqual(params.getAll('a'), ['b']);\n  assert.arrayEqual(params.getAll('c'), ['d']);\n  assert.arrayEqual(params.getAll('e'), []);\n\n  params = new URLSearchParams('a=b&c=d&a=e');\n  assert.arrayEqual(params.getAll('a'), ['b', 'e']);\n\n  params = new URLSearchParams('=b&c=d');\n  assert.arrayEqual(params.getAll(''), ['b']);\n\n  params = new URLSearchParams('a=&c=d&a=e');\n  assert.arrayEqual(params.getAll('a'), ['', 'e']);\n\n  params = new URLSearchParams('a=1&a=2&a=3&a');\n  assert.arrayEqual(params.getAll('a'), ['1', '2', '3', ''], 'search params object has expected name \"a\" values');\n  params.set('a', 'one');\n  assert.arrayEqual(params.getAll('a'), ['one'], 'search params object has expected name \"a\" values');\n\n  assert.throws(() => {\n    return new URLSearchParams('').getAll();\n  }, 'throws w/o arguments');\n});\n\nQUnit.test('URLSearchParams#has', assert => {\n  const { has } = URLSearchParams.prototype;\n  assert.isFunction(has);\n  assert.arity(has, 1);\n  assert.name(has, 'has');\n  assert.enumerable(URLSearchParams.prototype, 'has');\n  if (!NODE) assert.looksNative(has);\n\n  let params = new URLSearchParams('a=b&c=d');\n  assert.true(params.has('a'));\n  assert.true(params.has('c'));\n  assert.false(params.has('e'));\n\n  params = new URLSearchParams('a=b&c=d&a=e');\n  assert.true(params.has('a'));\n\n  params = new URLSearchParams('=b&c=d');\n  assert.true(params.has(''));\n\n  params = new URLSearchParams('null=a');\n  assert.true(params.has(null));\n\n  params = new URLSearchParams('a=b&c=d&&');\n  params.append('first', 1);\n  params.append('first', 2);\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.true(params.has('c'), 'search params object has name \"c\"');\n  assert.true(params.has('first'), 'search params object has name \"first\"');\n  assert.false(params.has('d'), 'search params object has no name \"d\"');\n  params.delete('first');\n  assert.false(params.has('first'), 'search params object has no name \"first\"');\n\n  params = new URLSearchParams('a=1&a=2&a=null&a=3&b=4');\n  assert.true(params.has('a', 2));\n  assert.true(params.has('a', null));\n  assert.false(params.has('a', 4));\n  assert.true(params.has('b', 4));\n  assert.false(params.has('b', null));\n  assert.true(params.has('b', undefined));\n  assert.false(params.has('c', undefined));\n\n  assert.throws(() => {\n    return new URLSearchParams('').has();\n  }, 'throws w/o arguments');\n});\n\nQUnit.test('URLSearchParams#set', assert => {\n  const { set } = URLSearchParams.prototype;\n  assert.isFunction(set);\n  assert.arity(set, 2);\n  assert.name(set, 'set');\n  assert.enumerable(URLSearchParams.prototype, 'set');\n  if (!NODE) assert.looksNative(set);\n\n  let params = new URLSearchParams('a=b&c=d');\n  params.set('a', 'B');\n  assert.same(String(params), 'a=B&c=d');\n\n  params = new URLSearchParams('a=b&c=d&a=e');\n  params.set('a', 'B');\n  assert.same(String(params), 'a=B&c=d');\n  params.set('e', 'f');\n  assert.same(String(params), 'a=B&c=d&e=f');\n\n  params = new URLSearchParams('a=1&a=2&a=3');\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.same(params.get('a'), '1', 'search params object has name \"a\" with value \"1\"');\n  params.set('first', 4);\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.same(params.get('a'), '1', 'search params object has name \"a\" with value \"1\"');\n  assert.same(String(params), 'a=1&a=2&a=3&first=4');\n  params.set('a', 4);\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.same(params.get('a'), '4', 'search params object has name \"a\" with value \"4\"');\n  assert.same(String(params), 'a=4&first=4');\n\n  assert.throws(() => new URLSearchParams('').set(), 'throws w/o arguments');\n\n  assert.throws(() => new URLSearchParams('').set('a'), 'throws with only 1 argument');\n});\n\nQUnit.test('URLSearchParams#sort', assert => {\n  const { sort } = URLSearchParams.prototype;\n  assert.isFunction(sort);\n  assert.arity(sort, 0);\n  assert.name(sort, 'sort');\n  assert.enumerable(URLSearchParams.prototype, 'sort');\n  if (!NODE) assert.looksNative(sort);\n\n  let params = new URLSearchParams('a=1&b=4&a=3&b=2');\n  params.sort();\n  assert.same(String(params), 'a=1&a=3&b=4&b=2');\n  params.delete('a');\n  params.append('a', '0');\n  params.append('b', '0');\n  params.sort();\n  assert.same(String(params), 'a=0&b=4&b=2&b=0');\n\n  const testData = [\n    {\n      input: 'z=b&a=b&z=a&a=a',\n      output: [['a', 'b'], ['a', 'a'], ['z', 'b'], ['z', 'a']],\n    },\n    {\n      input: '\\uFFFD=x&\\uFFFC&\\uFFFD=a',\n      output: [['\\uFFFC', ''], ['\\uFFFD', 'x'], ['\\uFFFD', 'a']],\n    },\n    {\n      input: 'ﬃ&🌈', // 🌈 > code point, but < code unit because two code units\n      output: [['🌈', ''], ['ﬃ', '']],\n    },\n    {\n      input: 'é&e\\uFFFD&e\\u0301',\n      output: [['e\\u0301', ''], ['e\\uFFFD', ''], ['é', '']],\n    },\n    {\n      input: 'z=z&a=a&z=y&a=b&z=x&a=c&z=w&a=d&z=v&a=e&z=u&a=f&z=t&a=g',\n      output: [\n        ['a', 'a'],\n        ['a', 'b'],\n        ['a', 'c'],\n        ['a', 'd'],\n        ['a', 'e'],\n        ['a', 'f'],\n        ['a', 'g'],\n        ['z', 'z'],\n        ['z', 'y'],\n        ['z', 'x'],\n        ['z', 'w'],\n        ['z', 'v'],\n        ['z', 'u'],\n        ['z', 't'],\n      ],\n    },\n    {\n      input: 'bbb&bb&aaa&aa=x&aa=y',\n      output: [['aa', 'x'], ['aa', 'y'], ['aaa', ''], ['bb', ''], ['bbb', '']],\n    },\n    {\n      input: 'z=z&=f&=t&=x',\n      output: [['', 'f'], ['', 't'], ['', 'x'], ['z', 'z']],\n    },\n    {\n      input: 'a🌈&a💩',\n      output: [['a🌈', ''], ['a💩', '']],\n    },\n  ];\n\n  for (const { input, output } of testData) {\n    let i = 0;\n    params = new URLSearchParams(input);\n    params.sort();\n    params.forEach((value, key) => {\n      const [reqKey, reqValue] = output[i++];\n      assert.same(key, reqKey);\n      assert.same(value, reqValue);\n    });\n\n    i = 0;\n    const url = new URL(`?${ input }`, 'https://example/');\n    params = url.searchParams;\n    params.sort();\n    params.forEach((value, key) => {\n      const [reqKey, reqValue] = output[i++];\n      assert.same(key, reqKey);\n      assert.same(value, reqValue);\n    });\n  }\n\n  if (DESCRIPTORS) {\n    const url = new URL('http://example.com/?');\n    url.searchParams.sort();\n    assert.same(url.href, 'http://example.com/', 'Sorting non-existent params removes ? from URL');\n    assert.same(url.search, '', 'Sorting non-existent params removes ? from URL');\n  }\n});\n\nQUnit.test('URLSearchParams#toString', assert => {\n  const { toString } = URLSearchParams.prototype;\n  assert.isFunction(toString);\n  assert.arity(toString, 0);\n  assert.name(toString, 'toString');\n  if (!NODE) assert.looksNative(toString);\n\n  let params = new URLSearchParams();\n  params.append('a', 'b c');\n  assert.same(String(params), 'a=b+c');\n  params.delete('a');\n  params.append('a b', 'c');\n  assert.same(String(params), 'a+b=c');\n\n  params = new URLSearchParams();\n  params.append('a', '');\n  assert.same(String(params), 'a=');\n  params.append('a', '');\n  assert.same(String(params), 'a=&a=');\n  params.append('', 'b');\n  assert.same(String(params), 'a=&a=&=b');\n  params.append('', '');\n  assert.same(String(params), 'a=&a=&=b&=');\n  params.append('', '');\n  assert.same(String(params), 'a=&a=&=b&=&=');\n\n  params = new URLSearchParams();\n  params.append('', 'b');\n  assert.same(String(params), '=b');\n  params.append('', 'b');\n  assert.same(String(params), '=b&=b');\n\n  params = new URLSearchParams();\n  params.append('', '');\n  assert.same(String(params), '=');\n  params.append('', '');\n  assert.same(String(params), '=&=');\n\n  params = new URLSearchParams();\n  params.append('a', 'b+c');\n  assert.same(String(params), 'a=b%2Bc');\n  params.delete('a');\n  params.append('a+b', 'c');\n  assert.same(String(params), 'a%2Bb=c');\n\n  params = new URLSearchParams();\n  params.append('=', 'a');\n  assert.same(String(params), '%3D=a');\n  params.append('b', '=');\n  assert.same(String(params), '%3D=a&b=%3D');\n\n  params = new URLSearchParams();\n  params.append('&', 'a');\n  assert.same(String(params), '%26=a');\n  params.append('b', '&');\n  assert.same(String(params), '%26=a&b=%26');\n\n  params = new URLSearchParams();\n  params.append('a', '\\r');\n  assert.same(String(params), 'a=%0D');\n\n  params = new URLSearchParams();\n  params.append('a', '\\n');\n  assert.same(String(params), 'a=%0A');\n\n  params = new URLSearchParams();\n  params.append('a', '\\r\\n');\n  assert.same(String(params), 'a=%0D%0A');\n\n  params = new URLSearchParams();\n  params.append('a', 'b%c');\n  assert.same(String(params), 'a=b%25c');\n  params.delete('a');\n  params.append('a%b', 'c');\n  assert.same(String(params), 'a%25b=c');\n\n  params = new URLSearchParams();\n  params.append('a', 'b\\0c');\n  assert.same(String(params), 'a=b%00c');\n  params.delete('a');\n  params.append('a\\0b', 'c');\n  assert.same(String(params), 'a%00b=c');\n\n  params = new URLSearchParams();\n  params.append('a', 'b\\uD83D\\uDCA9c');\n  assert.same(String(params), 'a=b%F0%9F%92%A9c');\n  params.delete('a');\n  params.append('a\\uD83D\\uDCA9b', 'c');\n  assert.same(String(params), 'a%F0%9F%92%A9b=c');\n\n  params = new URLSearchParams('a=b&c=d&&e&&');\n  assert.same(String(params), 'a=b&c=d&e=');\n  params = new URLSearchParams('a = b &a=b&c=d%20');\n  assert.same(String(params), 'a+=+b+&a=b&c=d+');\n  params = new URLSearchParams('a=&a=b');\n  assert.same(String(params), 'a=&a=b');\n});\n\nQUnit.test('URLSearchParams#forEach', assert => {\n  const { forEach } = URLSearchParams.prototype;\n  assert.isFunction(forEach);\n  assert.arity(forEach, 1);\n  assert.name(forEach, 'forEach');\n  assert.enumerable(URLSearchParams.prototype, 'forEach');\n  if (!NODE) assert.looksNative(forEach);\n\n  const expectedValues = { a: '1', b: '2', c: '3' };\n  let params = new URLSearchParams('a=1&b=2&c=3');\n  let result = '';\n  params.forEach((value, key, that) => {\n    assert.same(params.get(key), expectedValues[key]);\n    assert.same(value, expectedValues[key]);\n    assert.same(that, params);\n    result += key;\n  });\n  assert.same(result, 'abc');\n\n  new URL('http://a.b/c').searchParams.forEach(() => {\n    assert.avoid();\n  });\n\n  // fails in Chrome 66-\n  if (DESCRIPTORS) {\n    const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4');\n    params = url.searchParams;\n    result = '';\n    params.forEach((val, key) => {\n      url.search = 'x=1&y=2&z=3';\n      result += key + val;\n    });\n    assert.same(result, 'a1y2z3');\n  }\n\n  // fails in Chrome 66-\n  params = new URLSearchParams('a=1&b=2&c=3');\n  result = '';\n  params.forEach((value, key) => {\n    params.delete('b');\n    result += key + value;\n  });\n  assert.same(result, 'a1c3');\n});\n\nQUnit.test('URLSearchParams#entries', assert => {\n  const { entries } = URLSearchParams.prototype;\n  assert.isFunction(entries);\n  assert.arity(entries, 0);\n  assert.name(entries, 'entries');\n  assert.enumerable(URLSearchParams.prototype, 'entries');\n  if (!NODE) assert.looksNative(entries);\n\n  const expectedValues = { a: '1', b: '2', c: '3' };\n  let params = new URLSearchParams('a=1&b=2&c=3');\n  let iterator = params.entries();\n  let result = '';\n  let entry;\n  while (!(entry = iterator.next()).done) {\n    const [key, value] = entry.value;\n    assert.same(params.get(key), expectedValues[key]);\n    assert.same(value, expectedValues[key]);\n    result += key;\n  }\n  assert.same(result, 'abc');\n\n  assert.true(new URL('http://a.b/c').searchParams.entries().next().done, 'should be finished');\n\n  // fails in Chrome 66-\n  if (DESCRIPTORS) {\n    const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4');\n    iterator = url.searchParams.entries();\n    result = '';\n    while (!(entry = iterator.next()).done) {\n      const [key, value] = entry.value;\n      url.search = 'x=1&y=2&z=3';\n      result += key + value;\n    }\n    assert.same(result, 'a1y2z3');\n  }\n\n  // fails in Chrome 66-\n  params = new URLSearchParams('a=1&b=2&c=3');\n  iterator = params.entries();\n  result = '';\n  while (!(entry = iterator.next()).done) {\n    params.delete('b');\n    const [key, value] = entry.value;\n    result += key + value;\n  }\n  assert.same(result, 'a1c3');\n\n  if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().entries()), 'next').enumerable, 'enumerable .next');\n});\n\nQUnit.test('URLSearchParams#keys', assert => {\n  const { keys } = URLSearchParams.prototype;\n  assert.isFunction(keys);\n  assert.arity(keys, 0);\n  assert.name(keys, 'keys');\n  assert.enumerable(URLSearchParams.prototype, 'keys');\n  if (!NODE) assert.looksNative(keys);\n\n  let iterator = new URLSearchParams('a=1&b=2&c=3').keys();\n  let result = '';\n  let entry;\n  while (!(entry = iterator.next()).done) {\n    result += entry.value;\n  }\n  assert.same(result, 'abc');\n\n  assert.true(new URL('http://a.b/c').searchParams.keys().next().done, 'should be finished');\n\n  // fails in Chrome 66-\n  if (DESCRIPTORS) {\n    const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4');\n    iterator = url.searchParams.keys();\n    result = '';\n    while (!(entry = iterator.next()).done) {\n      const key = entry.value;\n      url.search = 'x=1&y=2&z=3';\n      result += key;\n    }\n    assert.same(result, 'ayz');\n  }\n\n  // fails in Chrome 66-\n  const params = new URLSearchParams('a=1&b=2&c=3');\n  iterator = params.keys();\n  result = '';\n  while (!(entry = iterator.next()).done) {\n    params.delete('b');\n    const key = entry.value;\n    result += key;\n  }\n  assert.same(result, 'ac');\n\n  if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().keys()), 'next').enumerable, 'enumerable .next');\n});\n\nQUnit.test('URLSearchParams#values', assert => {\n  const { values } = URLSearchParams.prototype;\n  assert.isFunction(values);\n  assert.arity(values, 0);\n  assert.name(values, 'values');\n  assert.enumerable(URLSearchParams.prototype, 'values');\n  if (!NODE) assert.looksNative(values);\n\n  let iterator = new URLSearchParams('a=1&b=2&c=3').values();\n  let result = '';\n  let entry;\n  while (!(entry = iterator.next()).done) {\n    result += entry.value;\n  }\n  assert.same(result, '123');\n\n  assert.true(new URL('http://a.b/c').searchParams.values().next().done, 'should be finished');\n\n  // fails in Chrome 66-\n  if (DESCRIPTORS) {\n    const url = new URL('http://a.b/c?a=a&b=b&c=c&d=d');\n    iterator = url.searchParams.values();\n    result = '';\n    while (!(entry = iterator.next()).done) {\n      const { value } = entry;\n      url.search = 'x=x&y=y&z=z';\n      result += value;\n    }\n    assert.same(result, 'ayz');\n  }\n\n  // fails in Chrome 66-\n  const params = new URLSearchParams('a=1&b=2&c=3');\n  iterator = params.values();\n  result = '';\n  while (!(entry = iterator.next()).done) {\n    params.delete('b');\n    const key = entry.value;\n    result += key;\n  }\n  assert.same(result, '13');\n\n  if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().values()), 'next').enumerable, 'enumerable .next');\n});\n\nQUnit.test('URLSearchParams#@@iterator', assert => {\n  const entries = URLSearchParams.prototype[Symbol.iterator];\n  assert.isFunction(entries);\n  assert.arity(entries, 0);\n  assert.name(entries, 'entries');\n  if (!NODE) assert.looksNative(entries);\n\n  assert.same(entries, URLSearchParams.prototype.entries);\n\n  const expectedValues = { a: '1', b: '2', c: '3' };\n  let params = new URLSearchParams('a=1&b=2&c=3');\n  let iterator = params[Symbol.iterator]();\n  let result = '';\n  let entry;\n  while (!(entry = iterator.next()).done) {\n    const [key, value] = entry.value;\n    assert.same(params.get(key), expectedValues[key]);\n    assert.same(value, expectedValues[key]);\n    result += key;\n  }\n  assert.same(result, 'abc');\n\n  assert.true(new URL('http://a.b/c').searchParams[Symbol.iterator]().next().done, 'should be finished');\n\n  // fails in Chrome 66-\n  if (DESCRIPTORS) {\n    const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4');\n    iterator = url.searchParams[Symbol.iterator]();\n    result = '';\n    while (!(entry = iterator.next()).done) {\n      const [key, value] = entry.value;\n      url.search = 'x=1&y=2&z=3';\n      result += key + value;\n    }\n    assert.same(result, 'a1y2z3');\n  }\n\n  // fails in Chrome 66-\n  params = new URLSearchParams('a=1&b=2&c=3');\n  iterator = params[Symbol.iterator]();\n  result = '';\n  while (!(entry = iterator.next()).done) {\n    params.delete('b');\n    const [key, value] = entry.value;\n    result += key + value;\n  }\n  assert.same(result, 'a1c3');\n\n  if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams()[Symbol.iterator]()), 'next').enumerable, 'enumerable .next');\n});\n\nQUnit.test('URLSearchParams#size', assert => {\n  const params = new URLSearchParams('a=1&b=2&b=3');\n  assert.true('size' in params);\n  assert.same(params.size, 3);\n\n  if (DESCRIPTORS) {\n    assert.true('size' in URLSearchParams.prototype);\n\n    const { enumerable, configurable, get } = getOwnPropertyDescriptor(URLSearchParams.prototype, 'size');\n\n    assert.true(enumerable, 'enumerable');\n    // https://github.com/oven-sh/bun/issues/9251\n    if (!BUN) assert.true(configurable, 'configurable');\n\n    if (!NODE) assert.looksNative(get);\n\n    assert.throws(() => get.call([]));\n  }\n});\n\nQUnit.test('URLSearchParams#@@toStringTag', assert => {\n  const params = new URLSearchParams('a=b');\n  assert.same({}.toString.call(params), '[object URLSearchParams]');\n});\n\nif (typeof Request == 'function') {\n  QUnit.test('URLSearchParams with Request', assert => {\n    const async = assert.async();\n    new Request('http://zloirock.ru', { body: new URLSearchParams({ foo: 'baz' }), method: 'POST' }).text().then(text => {\n      assert.same(text, 'foo=baz');\n      async();\n    });\n  });\n}\n"
  },
  {
    "path": "tests/unit-global/web.url.can-parse.js",
    "content": "import { NODE } from '../helpers/constants.js';\n\nQUnit.test('URL.canParse', assert => {\n  const { canParse } = URL;\n\n  assert.isFunction(canParse);\n  assert.arity(canParse, 1);\n  assert.name(canParse, 'canParse');\n  if (!NODE) assert.looksNative(canParse);\n\n  assert.false(canParse(undefined), 'undefined');\n  assert.false(canParse(undefined, undefined), 'undefined, undefined');\n  assert.true(canParse('q:w'), 'q:w');\n  assert.true(canParse('q:w', undefined), 'q:w, undefined');\n  // assert.false(canParse(undefined, 'q:w'), 'undefined, q:w'); // fails in Chromium on Windows\n  assert.true(canParse('q:/w'), 'q:/w');\n  assert.true(canParse('q:/w', undefined), 'q:/w, undefined');\n  assert.true(canParse(undefined, 'q:/w'), 'undefined, q:/w');\n  assert.false(canParse('https://login:password@examp:le.com:8080/?a=1&b=2&a=3&c=4#fragment'), 'https://login:password@examp:le.com:8080/?a=1&b=2&a=3&c=4#fragment');\n  assert.true(canParse('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'), 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment');\n  assert.true(canParse('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment', undefined), 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment, undefined');\n  assert.true(canParse('x', 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'), 'x, https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment');\n\n  assert.throws(() => canParse(), 'no args');\n  assert.throws(() => canParse({ toString() { throw new Error('thrower'); } }), 'conversion thrower #1');\n  assert.throws(() => canParse('q:w', { toString() { throw new Error('thrower'); } }), 'conversion thrower #2');\n});\n"
  },
  {
    "path": "tests/unit-global/web.url.js",
    "content": "/* eslint-disable unicorn/relative-url-style -- required for testing */\nimport { DESCRIPTORS, NODE } from '../helpers/constants.js';\nimport urlTestData from '../wpt-url-resources/urltestdata.js';\nimport settersTestData from '../wpt-url-resources/setters.js';\nimport toASCIITestData from '../wpt-url-resources/toascii.js';\n\nconst { hasOwnProperty } = Object.prototype;\n\nQUnit.test('URL constructor', assert => {\n  assert.isFunction(URL);\n  if (!NODE) assert.arity(URL, 1);\n  assert.name(URL, 'URL');\n  if (!NODE) assert.looksNative(URL);\n\n  assert.same(String(new URL('http://www.domain.com/a/b')), 'http://www.domain.com/a/b');\n  assert.same(String(new URL('/c/d', 'http://www.domain.com/a/b')), 'http://www.domain.com/c/d');\n  assert.same(String(new URL('b/c', 'http://www.domain.com/a/b')), 'http://www.domain.com/a/b/c');\n  assert.same(String(new URL('b/c', new URL('http://www.domain.com/a/b'))), 'http://www.domain.com/a/b/c');\n  assert.same(String(new URL({ toString: () => 'https://example.org/' })), 'https://example.org/');\n\n  assert.same(String(new URL('nonspecial://example.com/')), 'nonspecial://example.com/');\n\n  // SPECIAL_AUTHORITY_SLASHES state - special schemes without base\n  assert.same(String(new URL('http://example.com/path')), 'http://example.com/path', 'special authority slashes with //');\n  assert.same(String(new URL('http:/example.com/path')), 'http://example.com/path', 'special authority slashes with single /');\n  assert.same(String(new URL('http:example.com/path')), 'http://example.com/path', 'special authority slashes without /');\n  assert.same(String(new URL('https:////example.com/path')), 'https://example.com/path', 'special authority slashes with extra /');\n\n  assert.same(String(new URL('https://測試')), 'https://xn--g6w251d/', 'unicode parsing');\n  assert.same(String(new URL('https://xxпривет.тест')), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing');\n  assert.same(String(new URL('https://xxПРИВЕТ.тест')), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing');\n  assert.same(String(new URL('http://Example.com/', 'https://example.org/')), 'http://example.com/');\n  assert.same(String(new URL('https://Example.com/', 'https://example.org/')), 'https://example.com/');\n  assert.same(String(new URL('nonspecial://Example.com/', 'https://example.org/')), 'nonspecial://Example.com/');\n  assert.same(String(new URL('http:Example.com/', 'https://example.org/')), 'http://example.com/');\n  assert.same(String(new URL('https:Example.com/', 'https://example.org/')), 'https://example.org/Example.com/');\n  assert.same(String(new URL('nonspecial:Example.com/', 'https://example.org/')), 'nonspecial:Example.com/');\n\n  assert.same(String(new URL('http://0300.168.0xF0')), 'http://192.168.0.240/');\n  assert.same(String(new URL('http://[20:0:0:1:0:0:0:ff]')), 'http://[20:0:0:1::ff]/');\n  // assert.same(String(new URL('http://257.168.0xF0')), 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // TypeError in Chrome and Safari\n  assert.throws(() => new URL('http://257.168.0xF0'), 'invalid IPv4: octet > 255');\n  assert.same(String(new URL('http://0300.168.0xG0')), 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host');\n\n  assert.throws(() => new URL('http://1.2.3.4.5/'), 'IPv4 with > 4 parts');\n  assert.throws(() => new URL('http://a.b.c.d.5/'), 'host ending in number with non-numeric parts');\n  assert.throws(() => new URL('http://foo.1/'), 'host ending in number with non-IPv4');\n  assert.same(String(new URL('file:///var/log/system.log')), 'file:///var/log/system.log', 'file scheme');\n\n  // Chromium ~ 145 on Windows works differently\n  // assert.same(String(new URL('file:foo')), 'file:///foo', 'file scheme without slashes');\n  // assert.same(new URL('file:foo').host, '', 'file scheme without slashes: host');\n\n  // assert.same(String(new URL('file://nnsc.nsf.net/bar/baz')), 'file://nnsc.nsf.net/bar/baz', 'file scheme'); // 'file:///bar/baz' in FF\n  // assert.same(String(new URL('file://localhost/bar/baz')), 'file:///bar/baz', 'file scheme'); // 'file://localhost/bar/baz' in Chrome\n\n  // FILE_SLASH state: host should be inherited from file: base\n  // some browsers have a non-spec-compliant native URL implementation for this case\n  if (new URL('file:/path', 'file://somehost/dir/file').host === 'somehost') {\n    assert.same(new URL('file:/path', 'file://somehost/dir/file').href, 'file://somehost/path', 'file slash: href with inherited host');\n  }\n\n  assert.throws(() => new URL(), 'TypeError: Failed to construct URL: 1 argument required, but only 0 present.');\n  assert.throws(() => new URL(''), 'TypeError: Failed to construct URL: Invalid URL');\n  // Node 19.7\n  // https://github.com/nodejs/node/issues/46755\n  // assert.throws(() => new URL('', 'about:blank'), 'TypeError: Failed to construct URL: Invalid URL');\n  assert.throws(() => new URL('abc'), 'TypeError: Failed to construct URL: Invalid URL');\n  assert.throws(() => new URL('//abc'), 'TypeError: Failed to construct URL: Invalid URL');\n  assert.throws(() => new URL('http:///www.domain.com/', 'abc'), 'TypeError: Failed to construct URL: Invalid base URL');\n  assert.throws(() => new URL('http:///www.domain.com/', null), 'TypeError: Failed to construct URL: Invalid base URL');\n  assert.throws(() => new URL('//abc', null), 'TypeError: Failed to construct URL: Invalid base URL');\n  assert.throws(() => new URL('http://[20:0:0:1:0:0:0:ff'), 'incorrect IPv6');\n  assert.throws(() => new URL('http://[20:0:0:1:0:0:0:fg]'), 'incorrect IPv6');\n  // assert.throws(() => new URL('http://a%b'), 'forbidden host code point'); // no error in FF\n  assert.throws(() => new URL('1http://zloirock.ru'), 'incorrect scheme');\n  assert.throws(() => new URL('a,b://example.com'), 'comma in scheme');\n  assert.same(String(new URL('a+b-c.d://example.com')), 'a+b-c.d://example.com', 'valid scheme with +, -, .');\n  assert.same(String(new URL('relative', 'foo://host')), 'foo://host/relative', 'relative URL with non-special base with empty path');\n  assert.same(String(new URL('bar', 'foo://host/a/b')), 'foo://host/a/bar', 'relative URL with non-special base with path');\n});\n\nQUnit.test('URL#href', assert => {\n  let url = new URL('http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'href'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'href');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.href, 'http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    url.searchParams.append('foo', 'bar');\n    assert.same(url.href, 'http://zloirock.ru/?foo=bar');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.href = 'https://測試';\n    assert.same(url.href, 'https://xn--g6w251d/', 'unicode parsing');\n    assert.same(String(url), 'https://xn--g6w251d/', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.href = 'https://xxпривет.тест';\n    assert.same(url.href, 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing');\n    assert.same(String(url), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.href = 'https://xxПРИВЕТ.тест';\n    assert.same(url.href, 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing');\n    assert.same(String(url), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/');\n    url.href = 'http://0300.168.0xF0';\n    assert.same(url.href, 'http://192.168.0.240/');\n    assert.same(String(url), 'http://192.168.0.240/');\n\n    url = new URL('http://zloirock.ru/');\n    url.href = 'http://[20:0:0:1:0:0:0:ff]';\n    assert.same(url.href, 'http://[20:0:0:1::ff]/');\n    assert.same(String(url), 'http://[20:0:0:1::ff]/');\n\n    // url = new URL('http://zloirock.ru/');\n    // url.href = 'http://257.168.0xF0'; // TypeError and Safari\n    // assert.same(url.href, 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // `F` instead of `f` in Chrome\n    // assert.same(String(url), 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // `F` instead of `f` in Chrome\n\n    url = new URL('http://zloirock.ru/');\n    url.href = 'http://0300.168.0xG0';\n    assert.same(url.href, 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host');\n    assert.same(String(url), 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host');\n\n    url = new URL('http://192.168.0.240/');\n    url.href = 'file:///var/log/system.log';\n    assert.same(url.href, 'file:///var/log/system.log', 'file -> ip');\n    assert.same(String(url), 'file:///var/log/system.log', 'file -> ip');\n\n    url = new URL('file:///var/log/system.log');\n    url.href = 'http://0300.168.0xF0';\n    // Node 19.7\n    // https://github.com/nodejs/node/issues/46755\n    // assert.same(url.href, 'http://192.168.0.240/', 'file -> http');\n    // assert.same(String(url), 'http://192.168.0.240/', 'file -> http');\n\n    // assert.throws(() => new URL('http://zloirock.ru/').href = undefined, 'incorrect URL'); // no error in Chrome\n    // assert.throws(() => new URL('http://zloirock.ru/').href = '', 'incorrect URL'); // no error in Chrome\n    // assert.throws(() => new URL('http://zloirock.ru/').href = 'abc', 'incorrect URL'); // no error in Chrome\n    // assert.throws(() => new URL('http://zloirock.ru/').href = '//abc', 'incorrect URL'); // no error in Chrome\n    // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://[20:0:0:1:0:0:0:ff', 'incorrect IPv6'); // no error in Chrome\n    // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://[20:0:0:1:0:0:0:fg]', 'incorrect IPv6'); // no error in Chrome\n    // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://a%b', 'forbidden host code point'); // no error in Chrome and FF\n    // assert.throws(() => new URL('http://zloirock.ru/').href = '1http://zloirock.ru', 'incorrect scheme'); // no error in Chrome\n  }\n\n  // URL serializing step 3 - /. prefix for non-special URLs with null host and path starting with empty segment\n  // Chromium ~ 145 on Windows works differently\n  // assert.same(new URL('x:/a/..//b').href, 'x:/.//b', '/. prefix prevents ambiguous serialization');\n  // assert.same(new URL('x:/a/..//b').pathname, '//b', 'pathname is not affected by /. prefix');\n  // assert.same(new URL('x:/.//b').href, 'x:/.//b', '/. prefix is idempotent');\n  // assert.same(new URL(new URL('x:/a/..//b').href).pathname, '//b', '/. prefix round-trips correctly');\n});\n\nQUnit.test('URL#origin', assert => {\n  const url = new URL('http://es6.zloirock.ru/tests.html');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'origin'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'origin');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n  }\n\n  assert.same(url.origin, 'http://es6.zloirock.ru');\n\n  assert.same(new URL('https://測試/tests').origin, 'https://xn--g6w251d');\n\n  // blob URL origin should resolve to the inner URL's origin\n  assert.same(new URL('blob:https://example.com/some-uuid').origin, 'https://example.com');\n});\n\nQUnit.test('URL#protocol', assert => {\n  let url = new URL('http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'protocol'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'protocol');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.protocol, 'http:');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/');\n    url.protocol = 'https';\n    assert.same(url.protocol, 'https:');\n    assert.same(String(url), 'https://zloirock.ru/');\n\n    // https://nodejs.org/api/url.html#url_special_schemes\n    // url = new URL('http://zloirock.ru/');\n    // url.protocol = 'fish';\n    // assert.same(url.protocol, 'http:');\n    // assert.same(url.href, 'http://zloirock.ru/');\n    // assert.same(String(url), 'http://zloirock.ru/');\n\n    url = new URL('http://zloirock.ru/');\n    url.protocol = '1http';\n    assert.same(url.protocol, 'http:');\n    assert.same(url.href, 'http://zloirock.ru/', 'incorrect scheme');\n    assert.same(String(url), 'http://zloirock.ru/', 'incorrect scheme');\n\n    // Chromium ~ 145 on Windows works differently\n    // url = new URL('file:foo');\n    // url.protocol = 'http:';\n    // assert.same(url.protocol, 'file:', 'file with empty host: protocol change blocked');\n  }\n});\n\nQUnit.test('URL#username', assert => {\n  let url = new URL('http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'username'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'username');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.username, '');\n\n  url = new URL('http://username@zloirock.ru/');\n  assert.same(url.username, 'username');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/');\n    url.username = 'username';\n    assert.same(url.username, 'username');\n    assert.same(String(url), 'http://username@zloirock.ru/');\n\n    // IPv4 address 0.0.0.0 (stored as number 0) should allow username\n    url = new URL('http://0.0.0.0/');\n    url.username = 'user';\n    assert.same(url.username, 'user', 'username settable on 0.0.0.0');\n    assert.same(String(url), 'http://user@0.0.0.0/', 'href correct after setting username on 0.0.0.0');\n  }\n});\n\nQUnit.test('URL#password', assert => {\n  let url = new URL('http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'password'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'password');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.password, '');\n\n  url = new URL('http://username:password@zloirock.ru/');\n  assert.same(url.password, 'password');\n\n  // url = new URL('http://:password@zloirock.ru/'); // TypeError in FF\n  // assert.same(url.password, 'password');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/');\n    url.username = 'username';\n    url.password = 'password';\n    assert.same(url.password, 'password');\n    assert.same(String(url), 'http://username:password@zloirock.ru/');\n\n    // url = new URL('http://zloirock.ru/');\n    // url.password = 'password';\n    // assert.same(url.password, 'password'); // '' in FF\n    // assert.same(String(url), 'http://:password@zloirock.ru/'); // 'http://zloirock.ru/' in FF\n  }\n});\n\nQUnit.test('URL#host', assert => {\n  let url = new URL('http://zloirock.ru:81/path');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'host'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'host');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.host, 'zloirock.ru:81');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru:81/path');\n    url.host = 'example.com:82';\n    assert.same(url.host, 'example.com:82');\n    assert.same(String(url), 'http://example.com:82/path');\n\n    // url = new URL('http://zloirock.ru:81/path');\n    // url.host = 'other?domain.com';\n    // assert.same(String(url), 'http://other:81/path'); // 'http://other/?domain.com/path' in Safari\n\n    url = new URL('https://www.mydomain.com:8080/path/');\n    url.host = 'www.otherdomain.com:80';\n    assert.same(url.href, 'https://www.otherdomain.com:80/path/', 'set default port for another protocol');\n\n    // url = new URL('https://www.mydomain.com:8080/path/');\n    // url.host = 'www.otherdomain.com:443';\n    // assert.same(url.href, 'https://www.otherdomain.com/path/', 'set default port');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.host = '測試';\n    assert.same(url.host, 'xn--g6w251d', 'unicode parsing');\n    assert.same(String(url), 'http://xn--g6w251d/foo', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.host = 'xxпривет.тест';\n    assert.same(url.host, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing');\n    assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.host = 'xxПРИВЕТ.тест';\n    assert.same(url.host, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing');\n    assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.host = '0300.168.0xF0';\n    assert.same(url.host, '192.168.0.240');\n    assert.same(String(url), 'http://192.168.0.240/foo');\n\n    // url = new URL('http://zloirock.ru/foo');\n    // url.host = '[20:0:0:1:0:0:0:ff]';\n    // assert.same(url.host, '[20:0:0:1::ff]'); // ':0' in Chrome, 'zloirock.ru' in Safari\n    // assert.same(String(url), 'http://[20:0:0:1::ff]/foo'); // 'http://[20:0/foo' in Chrome, 'http://zloirock.ru/foo' in Safari\n\n    // url = new URL('file:///var/log/system.log');\n    // url.host = 'nnsc.nsf.net'; // does not work in FF\n    // assert.same(url.hostname, 'nnsc.nsf.net', 'file');\n    // assert.same(String(url), 'file://nnsc.nsf.net/var/log/system.log', 'file');\n\n    // url = new URL('http://zloirock.ru/');\n    // url.host = '[20:0:0:1:0:0:0:ff';\n    // assert.same(url.host, 'zloirock.ru', 'incorrect IPv6'); // ':0' in Chrome\n    // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0/' in Chrome\n\n    // url = new URL('http://zloirock.ru/');\n    // url.host = '[20:0:0:1:0:0:0:fg]';\n    // assert.same(url.host, 'zloirock.ru', 'incorrect IPv6'); // ':0' in Chrome\n    // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0/' in Chrome\n\n    // url = new URL('http://zloirock.ru/');\n    // url.host = 'a%b';\n    // assert.same(url.host, 'zloirock.ru', 'forbidden host code point'); // '' in Chrome, 'a%b' in FF\n    // assert.same(String(url), 'http://zloirock.ru/', 'forbidden host code point'); // 'http://a%25b/' in Chrome, 'http://a%b/' in FF\n  }\n});\n\nQUnit.test('URL#hostname', assert => {\n  let url = new URL('http://zloirock.ru:81/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'hostname'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'hostname');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.hostname, 'zloirock.ru');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru:81/');\n    url.hostname = 'example.com';\n    assert.same(url.hostname, 'example.com');\n    assert.same(String(url), 'http://example.com:81/');\n\n    url = new URL('http://zloirock.ru:81/');\n    url.hostname = 'example.com:82';\n    assert.same(url.hostname, 'zloirock.ru', 'hostname with port is rejected');\n    assert.same(String(url), 'http://zloirock.ru:81/', 'hostname with port is rejected');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.hostname = '測試';\n    assert.same(url.hostname, 'xn--g6w251d', 'unicode parsing');\n    assert.same(String(url), 'http://xn--g6w251d/foo', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.hostname = 'xxпривет.тест';\n    assert.same(url.hostname, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing');\n    assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.hostname = 'xxПРИВЕТ.тест';\n    assert.same(url.hostname, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing');\n    assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.hostname = '0300.168.0xF0';\n    assert.same(url.hostname, '192.168.0.240');\n    assert.same(String(url), 'http://192.168.0.240/foo');\n\n    // url = new URL('http://zloirock.ru/foo');\n    // url.hostname = '[20:0:0:1:0:0:0:ff]';\n    // assert.same(url.hostname, '[20:0:0:1::ff]'); // 'zloirock.ru' in Safari\n    // assert.same(String(url), 'http://[20:0:0:1::ff]/foo'); // 'http://zloirock.ru/foo' in Safari\n\n    // url = new URL('file:///var/log/system.log');\n    // url.hostname = 'nnsc.nsf.net'; // does not work in FF\n    // assert.same(url.hostname, 'nnsc.nsf.net', 'file');\n    // assert.same(String(url), 'file://nnsc.nsf.net/var/log/system.log', 'file');\n\n    // url = new URL('http://zloirock.ru/');\n    // url.hostname = '[20:0:0:1:0:0:0:ff';\n    // assert.same(url.hostname, 'zloirock.ru', 'incorrect IPv6'); // '' in Chrome\n    // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0:0:1:0:0:0:ff' in Chrome\n\n    // url = new URL('http://zloirock.ru/');\n    // url.hostname = '[20:0:0:1:0:0:0:fg]';\n    // assert.same(url.hostname, 'zloirock.ru', 'incorrect IPv6'); // '' in Chrome\n    // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0:0:1:0:0:0:ff/' in Chrome\n\n    // url = new URL('http://zloirock.ru/');\n    // url.hostname = 'a%b';\n    // assert.same(url.hostname, 'zloirock.ru', 'forbidden host code point'); // '' in Chrome, 'a%b' in FF\n    // assert.same(String(url), 'http://zloirock.ru/', 'forbidden host code point'); // 'http://a%25b/' in Chrome, 'http://a%b/' in FF\n  }\n});\n\nQUnit.test('URL#port', assert => {\n  let url = new URL('http://zloirock.ru:1337/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'port'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'port');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.port, '1337');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/');\n    url.port = 80;\n    assert.same(url.port, '');\n    assert.same(String(url), 'http://zloirock.ru/');\n    url.port = 1337;\n    assert.same(url.port, '1337');\n    assert.same(String(url), 'http://zloirock.ru:1337/');\n    // url.port = 'abcd';\n    // assert.same(url.port, '1337'); // '0' in Chrome\n    // assert.same(String(url), 'http://zloirock.ru:1337/'); // 'http://zloirock.ru:0/' in Chrome\n    // url.port = '5678abcd';\n    // assert.same(url.port, '5678'); // '1337' in FF\n    // assert.same(String(url), 'http://zloirock.ru:5678/'); // 'http://zloirock.ru:1337/\"' in FF\n    url.port = 1234.5678;\n    assert.same(url.port, '1234');\n    assert.same(String(url), 'http://zloirock.ru:1234/');\n    // url.port = 1e10;\n    // assert.same(url.port, '1234'); // '0' in Chrome\n    // assert.same(String(url), 'http://zloirock.ru:1234/'); // 'http://zloirock.ru:0/' in Chrome\n\n    // IPv4 address 0.0.0.0 (stored as number 0) should allow port\n    url = new URL('http://0.0.0.0/');\n    url.port = '8080';\n    assert.same(url.port, '8080', 'port settable on 0.0.0.0');\n    assert.same(String(url), 'http://0.0.0.0:8080/', 'href correct after setting port on 0.0.0.0');\n  }\n});\n\nQUnit.test('URL#pathname', assert => {\n  let url = new URL('http://zloirock.ru/foo/bar');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'pathname'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'pathname');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.pathname, '/foo/bar');\n\n  // fails in Node 23-\n  // url = new URL('http://example.com/a^b');\n  // assert.same(url.pathname, '/a%5Eb', 'caret in path is percent-encoded');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/');\n    url.pathname = 'bar/baz';\n    assert.same(url.pathname, '/bar/baz');\n    assert.same(String(url), 'http://zloirock.ru/bar/baz');\n  }\n});\n\nQUnit.test('URL#search', assert => {\n  let url = new URL('http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'search'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'search');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.search, '');\n\n  url = new URL('http://zloirock.ru/?foo=bar');\n  assert.same(url.search, '?foo=bar');\n\n  // query percent-encode set\n  assert.same(new URL('http://x/?a=\"<>').search, '?a=%22%3C%3E', 'query percent-encodes \", <, >');\n  assert.same(new URL('http://x/?a=\\'').search, '?a=%27', 'special query percent-encodes \\'');\n  // fails in modern Chrome (~145)\n  // assert.same(new URL('foo://x/?a=\\'').search, '?a=\\'', 'non-special query does not percent-encode \\'');\n\n  // space in opaque paths should not be percent-encoded\n  // eslint-disable-next-line no-script-url -- safe\n  assert.same(new URL('javascript:void 0').href, 'javascript:void 0', 'space preserved in opaque path');\n  // eslint-disable-next-line no-script-url -- safe\n  assert.same(new URL('javascript:void 0').pathname, 'void 0', 'space preserved in opaque pathname');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/?');\n    assert.same(url.search, '');\n    assert.same(String(url), 'http://zloirock.ru/?');\n    url.search = 'foo=bar';\n    assert.same(url.search, '?foo=bar');\n    assert.same(String(url), 'http://zloirock.ru/?foo=bar');\n    url.search = '?bar=baz';\n    assert.same(url.search, '?bar=baz');\n    assert.same(String(url), 'http://zloirock.ru/?bar=baz');\n    url.search = '';\n    assert.same(url.search, '');\n    assert.same(String(url), 'http://zloirock.ru/');\n  }\n});\n\nQUnit.test('URL#searchParams', assert => {\n  let url = new URL('http://zloirock.ru/?foo=bar&bar=baz');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'searchParams'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'searchParams');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n  }\n\n  assert.true(url.searchParams instanceof URLSearchParams);\n  assert.same(url.searchParams.get('foo'), 'bar');\n  assert.same(url.searchParams.get('bar'), 'baz');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/');\n    url.searchParams.append('foo', 'bar');\n    assert.same(String(url), 'http://zloirock.ru/?foo=bar');\n\n    url = new URL('http://zloirock.ru/');\n    url.search = 'foo=bar';\n    assert.same(url.searchParams.get('foo'), 'bar');\n\n    url = new URL('http://zloirock.ru/?foo=bar&bar=baz');\n    url.search = '';\n    assert.false(url.searchParams.has('foo'));\n  }\n});\n\nQUnit.test('URL#hash', assert => {\n  let url = new URL('http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'hash'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'hash');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.hash, '');\n\n  url = new URL('http://zloirock.ru/#foo');\n  assert.same(url.hash, '#foo');\n\n  url = new URL('http://zloirock.ru/#');\n  assert.same(url.hash, '');\n  assert.same(String(url), 'http://zloirock.ru/#');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/#');\n    url.hash = 'foo';\n    assert.same(url.hash, '#foo');\n    assert.same(String(url), 'http://zloirock.ru/#foo');\n    url.hash = '';\n    assert.same(url.hash, '');\n    assert.same(String(url), 'http://zloirock.ru/');\n    // url.hash = '#';\n    // assert.same(url.hash, '');\n    // assert.same(String(url), 'http://zloirock.ru/'); // 'http://zloirock.ru/#' in FF\n    url.hash = '#foo';\n    assert.same(url.hash, '#foo');\n    assert.same(String(url), 'http://zloirock.ru/#foo');\n    url.hash = '#foo#bar';\n    assert.same(url.hash, '#foo#bar');\n    assert.same(String(url), 'http://zloirock.ru/#foo#bar');\n\n    url = new URL('http://zloirock.ru/');\n    url.hash = 'абa';\n    assert.same(url.hash, '#%D0%B0%D0%B1a');\n\n    // url = new URL('http://zloirock.ru/');\n    // url.hash = '\\udc01\\ud802a';\n    // assert.same(url.hash, '#%EF%BF%BD%EF%BF%BDa', 'unmatched surrogates');\n  }\n});\n\nQUnit.test('URL#toJSON', assert => {\n  const { toJSON } = URL.prototype;\n  assert.isFunction(toJSON);\n  assert.arity(toJSON, 0);\n  assert.name(toJSON, 'toJSON');\n  assert.enumerable(URL.prototype, 'toJSON');\n  if (!NODE) assert.looksNative(toJSON);\n\n  const url = new URL('http://zloirock.ru/');\n  assert.same(url.toJSON(), 'http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    url.searchParams.append('foo', 'bar');\n    assert.same(url.toJSON(), 'http://zloirock.ru/?foo=bar');\n  }\n});\n\nQUnit.test('URL#toString', assert => {\n  const { toString } = URL.prototype;\n  assert.isFunction(toString);\n  assert.arity(toString, 0);\n  assert.name(toString, 'toString');\n  assert.enumerable(URL.prototype, 'toString');\n  if (!NODE) assert.looksNative(toString);\n\n  const url = new URL('http://zloirock.ru/');\n  assert.same(url.toString(), 'http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    url.searchParams.append('foo', 'bar');\n    assert.same(url.toString(), 'http://zloirock.ru/?foo=bar');\n  }\n});\n\nQUnit.test('URL#@@toStringTag', assert => {\n  const url = new URL('http://zloirock.ru/');\n  assert.same({}.toString.call(url), '[object URL]');\n});\n\nQUnit.test('URL.sham', assert => {\n  assert.same(URL.sham, DESCRIPTORS ? undefined : true);\n});\n\n// `core-js` URL implementation pass all (exclude some encoding-related) tests\n// from the next 3 test cases, but URLs from all of popular browsers fail a serious part of tests.\n// Replacing all of them does not looks like a good idea, so next test cases disabled by default.\n\n// see https://github.com/web-platform-tests/wpt/blob/master/url\nQUnit.skip('WPT URL constructor tests', assert => {\n  for (const expected of urlTestData) {\n    if (typeof expected == 'string') continue;\n    const name = `Parsing: <${ expected.input }> against <${ expected.base }>`;\n    if (expected.failure) {\n      assert.throws(() => new URL(expected.input, expected.base || 'about:blank'), name);\n    } else {\n      const url = new URL(expected.input, expected.base || 'about:blank');\n      assert.same(url.href, expected.href, `${ name }: href`);\n      assert.same(url.protocol, expected.protocol, `${ name }: protocol`);\n      assert.same(url.username, expected.username, `${ name }: username`);\n      assert.same(url.password, expected.password, `${ name }: password`);\n      assert.same(url.host, expected.host, `${ name }: host`);\n      assert.same(url.hostname, expected.hostname, `${ name }: hostname`);\n      assert.same(url.port, expected.port, `${ name }: port`);\n      assert.same(url.pathname, expected.pathname, `${ name }: pathname`);\n      assert.same(url.search, expected.search, `${ name }: search`);\n      if ('searchParams' in expected) {\n        assert.same(url.searchParams.toString(), expected.searchParams, `${ name }: searchParams`);\n      }\n      assert.same(url.hash, expected.hash, `${ name }: hash`);\n      if ('origin' in expected) {\n        assert.same(url.origin, expected.origin, `${ name }: origin`);\n      }\n    }\n  }\n});\n\n// see https://github.com/web-platform-tests/wpt/blob/master/url\nif (DESCRIPTORS) QUnit.skip('WPT URL setters tests', assert => {\n  for (const setter in settersTestData) {\n    const testCases = settersTestData[setter];\n    for (const { href, newValue, comment, expected } of testCases) {\n      let name = `Setting <${ href }>.${ setter } = '${ newValue }'.`;\n      if (comment) name += ` ${ comment }`;\n\n      const url = new URL(href);\n      url[setter] = newValue;\n      for (const attribute in expected) {\n        assert.same(url[attribute], expected[attribute], name);\n      }\n    }\n  }\n});\n\n// see https://github.com/web-platform-tests/wpt/blob/master/url\nQUnit.skip('WPT conversion to ASCII tests', assert => {\n  for (const { comment, input, output } of toASCIITestData) {\n    let name = `Parsing: <${ input }>`;\n    if (comment) name += ` ${ comment }`;\n    if (output === null) {\n      assert.throws(() => new URL(`https://${ input }/x`), name);\n    } else {\n      const url = new URL(`https://${ input }/x`);\n      assert.same(url.host, output, name);\n      assert.same(url.hostname, output, name);\n      assert.same(url.pathname, '/x', name);\n      assert.same(url.href, `https://${ output }/x`, name);\n    }\n  }\n});\n"
  },
  {
    "path": "tests/unit-global/web.url.parse.js",
    "content": "import { NODE } from '../helpers/constants.js';\n\nQUnit.test('URL.parse', assert => {\n  const { parse } = URL;\n\n  assert.isFunction(parse);\n  assert.arity(parse, 1);\n  assert.name(parse, 'parse');\n  if (!NODE) assert.looksNative(parse);\n\n  assert.same(parse(undefined), null, 'undefined');\n  assert.same(parse(undefined, undefined), null, 'undefined, undefined');\n  assert.deepEqual(parse('q:w'), new URL('q:w'), 'q:w');\n  assert.deepEqual(parse('q:w', undefined), new URL('q:w'), 'q:w, undefined');\n  assert.deepEqual(parse('q:/w'), new URL('q:/w'), 'q:/w');\n  assert.deepEqual(parse('q:/w', undefined), new URL('q:/w', undefined), 'q:/w, undefined');\n  assert.deepEqual(parse(undefined, 'q:/w'), new URL(undefined, 'q:/w'), 'undefined, q:/w');\n  assert.same(parse('https://login:password@examp:le.com:8080/?a=1&b=2&a=3&c=4#fragment'), null, 'https://login:password@examp:le.com:8080/?a=1&b=2&a=3&c=4#fragment');\n  assert.deepEqual(parse('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'), new URL('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'), 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment');\n  assert.deepEqual(parse('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment', undefined), new URL('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment', undefined), 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment, undefined');\n  // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n  assert.deepEqual(parse('x', 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'), new URL('x', 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'), 'x, https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment');\n\n  assert.throws(() => parse(), 'no args');\n  assert.throws(() => parse({ toString() { throw new Error('thrower'); } }), 'conversion thrower #1');\n  assert.throws(() => parse('q:w', { toString() { throw new Error('thrower'); } }), 'conversion thrower #2');\n});\n"
  },
  {
    "path": "tests/unit-karma/karma.conf.js",
    "content": "'use strict';\nconst { chromium, firefox, webkit } = require('playwright');\nconst { sync: which } = require('which');\n\nObject.assign(process.env, {\n  CHROMIUM_BIN: chromium.executablePath(),\n  FIREFOX_BIN: firefox.executablePath(),\n  WEBKIT_BIN: webkit.executablePath(),\n});\n\nconst customLaunchers = {\n  IE_NFM: {\n    base: 'IE',\n    // prevents crash on launch of multiple IE11 instances\n    flags: ['-noframemerging'],\n  },\n};\n\nconst browsers = [\n  'ChromiumHeadless',\n  'FirefoxHeadless',\n  'WebKitHeadless',\n  'PhantomJS',\n];\n\nif (process.env.CI || which('iexplore.exe', { nothrow: true })) {\n  browsers.push('IE_NFM');\n}\n\nmodule.exports = config => config.set({\n  plugins: [\n    'karma-*',\n    '@onslip/karma-playwright-launcher',\n  ],\n  files: process.argv.find(it => it.startsWith('-f=')).slice(3).split(','),\n  frameworks: ['qunit'],\n  basePath: '.',\n  customLaunchers,\n  browsers,\n  logLevel: config.LOG_ERROR,\n  singleRun: true,\n});\n"
  },
  {
    "path": "tests/unit-karma/package.json",
    "content": "{\n  \"name\": \"tests/unit-karma\",\n  \"devDependencies\": {\n    \"@onslip/karma-playwright-launcher\": \"^0.3.0\",\n    \"@playwright/browser-chromium\": \"^1.58.2\",\n    \"@playwright/browser-firefox\": \"^1.58.2\",\n    \"@playwright/browser-webkit\": \"^1.58.2\",\n    \"karma\": \"^6.4.4\",\n    \"karma-ie-launcher\": \"^1.0.0\",\n    \"karma-phantomjs-launcher\": \"~1.0.4\",\n    \"karma-qunit\": \"^4.2.1\",\n    \"phantomjs-prebuilt\": \"~2.1.16\",\n    \"playwright\": \"^1.58.2\",\n    \"qunit\": \"^2.25.0\",\n    \"which\": \"^6.0.1\"\n  }\n}\n"
  },
  {
    "path": "tests/unit-karma/runner.mjs",
    "content": "if (process.env.CI) await $`playwright install-deps`;\n\n$.quote = it => `'${ it }'`;\n\nawait Promise.all([\n  ['packages/core-js-bundle/index', 'tests/bundles/unit-global'],\n  ['packages/core-js-bundle/minified', 'tests/bundles/unit-global'],\n  ['tests/bundles/unit-pure'],\n].map(files => $`karma start -f=${ files.map(file => `../../${ file }.js`).join(',') }`));\n"
  },
  {
    "path": "tests/unit-node/package.json",
    "content": "{\n  \"name\": \"tests/unit-node\",\n  \"devDependencies\": {\n    \"qunit\": \"^2.25.0\"\n  }\n}\n"
  },
  {
    "path": "tests/unit-node/runner.mjs",
    "content": "await Promise.all([\n  ['packages/core-js/index', 'tests/bundles/unit-global'],\n  ['packages/core-js/index', 'packages/core-js-bundle/index', 'tests/bundles/unit-global'],\n  ['tests/bundles/unit-pure'],\n].map(files => $`qunit ${ files.map(file => `${ file }.js`) }`));\n"
  },
  {
    "path": "tests/unit-pure/es.aggregate-error.js",
    "content": "/* eslint-disable unicorn/throw-new-error, sonarjs/inconsistent-function-call -- required for testing */\nimport AggregateError from 'core-js-pure/es/aggregate-error';\nimport Symbol from 'core-js-pure/es/symbol';\nimport toString from 'core-js-pure/es/object/to-string';\nimport create from 'core-js-pure/es/object/create';\n\nQUnit.test('AggregateError', assert => {\n  assert.isFunction(AggregateError);\n  assert.arity(AggregateError, 2);\n  assert.name(AggregateError, 'AggregateError');\n  assert.true(new AggregateError([1]) instanceof AggregateError);\n  assert.true(new AggregateError([1]) instanceof Error);\n  assert.true(AggregateError([1]) instanceof AggregateError);\n  assert.true(AggregateError([1]) instanceof Error);\n  assert.same(AggregateError([1], 'foo').message, 'foo');\n  assert.same(AggregateError([1], 123).message, '123');\n  assert.same(AggregateError([1]).message, '');\n  assert.deepEqual(AggregateError([1, 2, 3]).errors, [1, 2, 3]);\n  assert.throws(() => AggregateError([1], Symbol()), 'throws on symbol as a message');\n  assert.same(toString(AggregateError([1])), '[object Error]', 'Object#toString');\n\n  assert.true(AggregateError([1], 1) instanceof AggregateError, 'no cause, without new');\n  assert.true(new AggregateError([1], 1) instanceof AggregateError, 'no cause, with new');\n\n  assert.true(AggregateError([1], 1, {}) instanceof AggregateError, 'with options, without new');\n  assert.true(new AggregateError([1], 1, {}) instanceof AggregateError, 'with options, with new');\n\n  assert.true(AggregateError([1], 1, 'foo') instanceof AggregateError, 'non-object options, without new');\n  assert.true(new AggregateError([1], 1, 'foo') instanceof AggregateError, 'non-object options, with new');\n\n  assert.same(AggregateError([1], 1, { cause: 7 }).cause, 7, 'cause, without new');\n  assert.same(new AggregateError([1], 1, { cause: 7 }).cause, 7, 'cause, with new');\n\n  assert.same(AggregateError([1], 1, create({ cause: 7 })).cause, 7, 'prototype cause, without new');\n  assert.same(new AggregateError([1], 1, create({ cause: 7 })).cause, 7, 'prototype cause, with new');\n\n  let error = AggregateError([1], 1, { cause: 7 });\n  assert.deepEqual(error.errors, [1]);\n  assert.same(error.name, 'AggregateError', 'instance name');\n  assert.same(error.message, '1', 'instance message');\n  assert.same(error.cause, 7, 'instance cause');\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  assert.true(error.hasOwnProperty('cause'), 'cause is own');\n\n  error = AggregateError([1]);\n  assert.deepEqual(error.errors, [1]);\n  assert.same(error.message, '', 'default instance message');\n  assert.same(error.cause, undefined, 'default instance cause undefined');\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  assert.false(error.hasOwnProperty('cause'), 'default instance cause missed');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.at.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport at from 'core-js-pure/es/array/at';\n\nQUnit.test('Array#at', assert => {\n  assert.isFunction(at);\n  assert.same(at([1, 2, 3], 0), 1);\n  assert.same(at([1, 2, 3], 1), 2);\n  assert.same(at([1, 2, 3], 2), 3);\n  assert.same(at([1, 2, 3], 3), undefined);\n  assert.same(at([1, 2, 3], -1), 3);\n  assert.same(at([1, 2, 3], -2), 2);\n  assert.same(at([1, 2, 3], -3), 1);\n  assert.same(at([1, 2, 3], -4), undefined);\n  assert.same(at([1, 2, 3], 0.4), 1);\n  assert.same(at([1, 2, 3], 0.5), 1);\n  assert.same(at([1, 2, 3], 0.6), 1);\n  assert.same(at([1], NaN), 1);\n  assert.same(at([1]), 1);\n  assert.same(at([1, 2, 3], -0), 1);\n  assert.same(at(Array(1), 0), undefined);\n  assert.same(at({ 0: 1, length: 1 }, 0), 1);\n  if (STRICT) {\n    assert.throws(() => at(null, 0), TypeError);\n    assert.throws(() => at(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.concat.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\nimport concat from 'core-js-pure/es/array/concat';\n\n/* eslint-disable no-sparse-arrays -- required for testing */\nQUnit.test('Array#concat', assert => {\n  assert.isFunction(concat);\n  let array = [1, 2];\n  const sparseArray = [1, , 2];\n  const nonSpreadableArray = [1, 2];\n  nonSpreadableArray[Symbol.isConcatSpreadable] = false;\n  const arrayLike = { 0: 1, 1: 2, length: 2 };\n  const spreadableArrayLike = { 0: 1, 1: 2, length: 2, [Symbol.isConcatSpreadable]: true };\n  assert.deepEqual(concat(array), [1, 2], '#1');\n  assert.deepEqual(concat(sparseArray), [1, , 2], '#2');\n  assert.deepEqual(concat(nonSpreadableArray), [[1, 2]], '#3');\n  assert.deepEqual(concat(arrayLike), [{ 0: 1, 1: 2, length: 2 }], '#4');\n  assert.deepEqual(concat(spreadableArrayLike), [1, 2], '#5');\n  assert.deepEqual(concat([], array), [1, 2], '#6');\n  assert.deepEqual(concat([], sparseArray), [1, , 2], '#7');\n  assert.deepEqual(concat([], nonSpreadableArray), [[1, 2]], '#8');\n  assert.deepEqual(concat([], arrayLike), [{ 0: 1, 1: 2, length: 2 }], '#9');\n  assert.deepEqual(concat([], spreadableArrayLike), [1, 2], '#10');\n  assert.deepEqual(concat(array, sparseArray, nonSpreadableArray, arrayLike, spreadableArrayLike), [\n    1, 2, 1, , 2, [1, 2], { 0: 1, 1: 2, length: 2 }, 1, 2,\n  ], '#11');\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  // https://bugs.webkit.org/show_bug.cgi?id=281061\n  assert.same(concat(array).foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.copy-within.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport copyWithin from 'core-js-pure/es/array/copy-within';\n\nQUnit.test('Array#copyWithin', assert => {\n  assert.isFunction(copyWithin);\n  const array = [1];\n  assert.same(copyWithin(array, 0), array);\n  assert.deepEqual(copyWithin([1, 2, 3, 4, 5], 0, 3), [4, 5, 3, 4, 5]);\n  assert.deepEqual(copyWithin([1, 2, 3, 4, 5], 1, 3), [1, 4, 5, 4, 5]);\n  assert.deepEqual(copyWithin([1, 2, 3, 4, 5], 1, 2), [1, 3, 4, 5, 5]);\n  assert.deepEqual(copyWithin([1, 2, 3, 4, 5], 2, 2), [1, 2, 3, 4, 5]);\n  assert.deepEqual(copyWithin([1, 2, 3, 4, 5], 0, 3, 4), [4, 2, 3, 4, 5]);\n  assert.deepEqual(copyWithin([1, 2, 3, 4, 5], 1, 3, 4), [1, 4, 3, 4, 5]);\n  assert.deepEqual(copyWithin([1, 2, 3, 4, 5], 1, 2, 4), [1, 3, 4, 4, 5]);\n  assert.deepEqual(copyWithin([1, 2, 3, 4, 5], 0, -2), [4, 5, 3, 4, 5]);\n  assert.deepEqual(copyWithin([1, 2, 3, 4, 5], 0, -2, -1), [4, 2, 3, 4, 5]);\n  assert.deepEqual(copyWithin([1, 2, 3, 4, 5], -4, -3, -2), [1, 3, 3, 4, 5]);\n  assert.deepEqual(copyWithin([1, 2, 3, 4, 5], -4, -3, -1), [1, 3, 4, 4, 5]);\n  assert.deepEqual(copyWithin([1, 2, 3, 4, 5], -4, -3), [1, 3, 4, 5, 5]);\n  if (STRICT) {\n    assert.throws(() => copyWithin(null, 0), TypeError);\n    assert.throws(() => copyWithin(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.every.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport every from 'core-js-pure/es/array/every';\n\nQUnit.test('Array#every', assert => {\n  assert.isFunction(every);\n  const array = [1];\n  const context = {};\n  every(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.true(every([1, 2, 3], it => typeof it == 'number'));\n  assert.true(every([1, 2, 3], it => it < 4));\n  assert.false(every([1, 2, 3], it => it < 3));\n  assert.false(every([1, 2, 3], it => typeof it == 'string'));\n  assert.true(every([1, 2, 3], function () {\n    return +this === 1;\n  }, 1));\n  let rez = '';\n  every([1, 2, 3], (value, key) => rez += key);\n  assert.same(rez, '012');\n  const arr = [1, 2, 3];\n  assert.true(every(arr, (value, key, that) => that === arr));\n  if (STRICT) {\n    assert.throws(() => every(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => every(undefined, () => { /* empty */ }), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.fill.js",
    "content": "import { DESCRIPTORS, STRICT } from '../helpers/constants.js';\n\nimport fill from 'core-js-pure/es/array/fill';\n\nQUnit.test('Array#fill', assert => {\n  assert.isFunction(fill);\n  const array = Array(5);\n  assert.same(fill(array, 5), array);\n  assert.deepEqual(fill(Array(5), 5), [5, 5, 5, 5, 5]);\n  assert.deepEqual(fill(Array(5), 5, 1), [undefined, 5, 5, 5, 5]);\n  assert.deepEqual(fill(Array(5), 5, 1, 4), [undefined, 5, 5, 5, undefined]);\n  assert.deepEqual(fill(Array(5), 5, 6, 1), [undefined, undefined, undefined, undefined, undefined]);\n  assert.deepEqual(fill(Array(5), 5, -3, 4), [undefined, undefined, 5, 5, undefined]);\n  assert.arrayEqual(fill({ length: 5 }, 5), [5, 5, 5, 5, 5]);\n  if (STRICT) {\n    assert.throws(() => fill(null, 0), TypeError);\n    assert.throws(() => fill(undefined, 0), TypeError);\n  }\n  if (DESCRIPTORS) {\n    // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n    assert.notThrows(() => fill(Object.defineProperty({\n      length: -1,\n    }, 0, {\n      set() {\n        throw new Error();\n      },\n    })), 'uses ToLength');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.filter.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport filter from 'core-js-pure/es/array/filter';\n\nQUnit.test('Array#filter', assert => {\n  assert.isFunction(filter);\n  let array = [1];\n  const context = {};\n  filter(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.deepEqual(filter([1, 2, 3, 'q', {}, 4, true, 5], it => typeof it == 'number'), [1, 2, 3, 4, 5]);\n  if (STRICT) {\n    assert.throws(() => filter(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => filter(undefined, () => { /* empty */ }), TypeError);\n  }\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(filter(array, Boolean).foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.find-index.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport findIndex from 'core-js-pure/es/array/find-index';\n\nQUnit.test('Array#findIndex', assert => {\n  assert.isFunction(findIndex);\n  const array = [1];\n  const context = {};\n  findIndex(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.same(findIndex([1, 3, NaN, 42, {}], it => it === 42), 3);\n  assert.same(findIndex([1, 3, NaN, 42, {}], it => it === 43), -1);\n  if (STRICT) {\n    assert.throws(() => findIndex(null, 0), TypeError);\n    assert.throws(() => findIndex(undefined, 0), TypeError);\n  }\n  assert.notThrows(() => findIndex({ length: -1, 0: 1 }, () => {\n    throw new Error();\n  }), 'uses ToLength');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.find-last-index.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport findLastIndex from 'core-js-pure/es/array/find-last-index';\n\nQUnit.test('Array#findLastIndex', assert => {\n  assert.isFunction(findLastIndex);\n  const array = [1];\n  const context = {};\n  findLastIndex(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.same(findLastIndex([{}, 2, NaN, 42, 1], it => !(it % 2)), 3);\n  assert.same(findLastIndex([{}, 2, NaN, 42, 1], it => it === 43), -1);\n  let values = '';\n  let keys = '';\n  findLastIndex([1, 2, 3], (value, key) => {\n    values += value;\n    keys += key;\n  });\n  assert.same(values, '321');\n  assert.same(keys, '210');\n  if (STRICT) {\n    assert.throws(() => findLastIndex(null, 0), TypeError);\n    assert.throws(() => findLastIndex(undefined, 0), TypeError);\n  }\n  assert.notThrows(() => findLastIndex({\n    length: -1,\n    0: 1,\n  }, () => {\n    throw new Error();\n  }) === -1, 'uses ToLength');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.find-last.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport findLast from 'core-js-pure/es/array/find-last';\n\nQUnit.test('Array#findLast', assert => {\n  assert.isFunction(findLast);\n  const array = [1];\n  const context = {};\n  findLast(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.same(findLast([{}, 2, NaN, 42, 1], it => !(it % 2)), 42);\n  assert.same(findLast([{}, 2, NaN, 42, 1], it => it === 43), undefined);\n  let values = '';\n  let keys = '';\n  findLast([1, 2, 3], (value, key) => {\n    values += value;\n    keys += key;\n  });\n  assert.same(values, '321');\n  assert.same(keys, '210');\n  if (STRICT) {\n    assert.throws(() => findLast(null, 0), TypeError);\n    assert.throws(() => findLast(undefined, 0), TypeError);\n  }\n  assert.notThrows(() => findLast({\n    length: -1,\n    0: 1,\n  }, () => {\n    throw new Error();\n  }) === undefined, 'uses ToLength');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.find.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport find from 'core-js-pure/es/array/find';\n\nQUnit.test('Array#find', assert => {\n  assert.isFunction(find);\n  const array = [1];\n  const context = {};\n  find(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.same(find([1, 3, NaN, 42, {}], it => it === 42), 42);\n  assert.same(find([1, 3, NaN, 42, {}], it => it === 43), undefined);\n  if (STRICT) {\n    assert.throws(() => find(null, 0), TypeError);\n    assert.throws(() => find(undefined, 0), TypeError);\n  }\n  assert.notThrows(() => find({ length: -1, 0: 1 }, () => {\n    throw new Error();\n  }), 'uses ToLength');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.flat-map.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport flatMap from 'core-js-pure/es/array/flat-map';\n\nQUnit.test('Array#flatMap', assert => {\n  assert.isFunction(flatMap);\n  assert.deepEqual(flatMap([], it => it), []);\n  assert.deepEqual(flatMap([1, 2, 3], it => it), [1, 2, 3]);\n  assert.deepEqual(flatMap([1, 2, 3], it => [it, it]), [1, 1, 2, 2, 3, 3]);\n  assert.deepEqual(flatMap([1, 2, 3], it => [[it], [it]]), [[1], [1], [2], [2], [3], [3]]);\n  assert.deepEqual(flatMap([1, [2, 3]], () => 1), [1, 1]);\n  const array = [1];\n  const context = {};\n  flatMap(array, function (value, index, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(index, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n    return value;\n  }, context);\n  if (STRICT) {\n    assert.throws(() => flatMap(null, it => it), TypeError);\n    assert.throws(() => flatMap(undefined, it => it), TypeError);\n  }\n  assert.notThrows(() => flatMap({ length: -1 }, () => {\n    throw new Error();\n  }).length === 0, 'uses ToLength');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.flat.js",
    "content": "import { DESCRIPTORS, STRICT } from '../helpers/constants.js';\n\nimport flat from 'core-js-pure/es/array/flat';\nimport defineProperty from 'core-js-pure/es/object/define-property';\n\nQUnit.test('Array#flat', assert => {\n  assert.isFunction(flat);\n  assert.deepEqual(flat([]), []);\n  const array = [1, [2, 3], [4, [5, 6]]];\n  assert.deepEqual(flat(array, 0), array);\n  assert.deepEqual(flat(array, 1), [1, 2, 3, 4, [5, 6]]);\n  assert.deepEqual(flat(array), [1, 2, 3, 4, [5, 6]]);\n  assert.deepEqual(flat(array, 2), [1, 2, 3, 4, 5, 6]);\n  assert.deepEqual(flat(array, 3), [1, 2, 3, 4, 5, 6]);\n  assert.deepEqual(flat(array, -1), array);\n  assert.deepEqual(flat(array, Infinity), [1, 2, 3, 4, 5, 6]);\n  if (STRICT) {\n    assert.throws(() => flat(null), TypeError);\n    assert.throws(() => flat(undefined), TypeError);\n  }\n  if (DESCRIPTORS) {\n    assert.notThrows(() => flat(defineProperty({ length: -1 }, 0, {\n      get() {\n        throw new Error();\n      },\n    })).length === 0, 'uses ToLength');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.for-each.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport forEach from 'core-js-pure/es/array/for-each';\n\nQUnit.test('Array#forEach', assert => {\n  assert.isFunction(forEach);\n  let array = [1];\n  const context = {};\n  forEach(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  let result = '';\n  forEach([1, 2, 3], it => {\n    result += it;\n  });\n  assert.same(result, '123');\n  result = '';\n  forEach([1, 2, 3], (value, key) => {\n    result += key;\n  });\n  assert.same(result, '012');\n  result = '';\n  forEach([1, 2, 3], (value, key, that) => {\n    result += that;\n  });\n  assert.same(result, '1,2,31,2,31,2,3');\n  result = '';\n  forEach([1, 2, 3], function () {\n    result += this;\n  }, 1);\n  assert.same(result, '111');\n  result = '';\n  array = [];\n  array[5] = '';\n  forEach(array, (value, key) => {\n    result += key;\n  });\n  assert.same(result, '5');\n  if (STRICT) {\n    assert.throws(() => forEach(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => forEach(undefined, () => { /* empty */ }), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.from-async.js",
    "content": "import { createAsyncIterable, createIterable/* , createIterator */ } from '../helpers/helpers.js';\nimport { STRICT_THIS } from '../helpers/constants.js';\n\nimport Promise from 'core-js-pure/es/promise';\nimport fromAsync from 'core-js-pure/es/array/from-async';\n// import Iterator from 'core-js-pure/actual/iterator';\n\nQUnit.test('Array.fromAsync', assert => {\n  assert.isFunction(fromAsync);\n  assert.arity(fromAsync, 1);\n  assert.name(fromAsync, 'fromAsync');\n\n  let counter = 0;\n  // eslint-disable-next-line prefer-arrow-callback -- constructor\n  fromAsync.call(function () {\n    counter++;\n    return [];\n  }, { length: 0 });\n\n  assert.same(counter, 1, 'proper number of constructor calling');\n\n  function C() { /* empty */ }\n\n  // const closableIterator = createIterator([1], {\n  //   return() { this.closed = true; return { value: undefined, done: true }; },\n  // });\n\n  return fromAsync(createAsyncIterable([1, 2, 3]), it => it ** 2).then(it => {\n    assert.arrayEqual(it, [1, 4, 9], 'async iterable and mapfn');\n    return fromAsync(createAsyncIterable([1]), function (arg, index) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(index, 0, 'index');\n    });\n  }).then(() => {\n    return fromAsync(createAsyncIterable([1, 2, 3]));\n  }).then(it => {\n    assert.arrayEqual(it, [1, 2, 3], 'async iterable without mapfn');\n    return fromAsync(createIterable([1, 2, 3]), arg => arg ** 2);\n  }).then(it => {\n    assert.arrayEqual(it, [1, 4, 9], 'iterable and mapfn');\n    return fromAsync(createIterable([1, 2, 3]), arg => Promise.resolve(arg ** 2));\n  }).then(it => {\n    assert.arrayEqual(it, [1, 4, 9], 'iterable and async mapfn');\n    return fromAsync(createIterable([1]), function (arg, index) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(index, 0, 'index');\n    });\n  }).then(() => {\n    return fromAsync(createIterable([1, 2, 3]));\n  }).then(it => {\n    assert.arrayEqual(it, [1, 2, 3], 'iterable and without mapfn');\n    return fromAsync([1, Promise.resolve(2), 3]);\n  }).then(it => {\n    assert.arrayEqual(it, [1, 2, 3], 'array');\n    return fromAsync('123');\n  }).then(it => {\n    assert.arrayEqual(it, ['1', '2', '3'], 'string');\n    return fromAsync.call(C, [1]);\n  }).then(it => {\n    assert.true(it instanceof C, 'subclassable');\n    return fromAsync({ length: 1, 0: 1 });\n  }).then(it => {\n    assert.arrayEqual(it, [1], 'non-iterable');\n    return fromAsync(createIterable([1]), () => { throw 42; });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n    return fromAsync(undefined, () => { /* empty */ });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof TypeError);\n    return fromAsync(null, () => { /* empty */ });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof TypeError);\n    return fromAsync([1], null);\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof TypeError);\n    return fromAsync([1], {});\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof TypeError);\n    // sync iterable: return() should be called through AsyncFromSyncIterator on early termination\n    const closable = createIterable([1, 2, 3], {\n      return() {\n        closable.closed = true;\n        return { value: undefined, done: true };\n      },\n    });\n    return fromAsync(closable, item => {\n      if (item === 2) throw 42;\n      return item;\n    }).then(() => {\n      assert.avoid();\n    }, err => {\n      assert.same(err, 42, 'sync iterable: rejection on callback error');\n      assert.true(closable.closed, 'sync iterable: return() called on early termination');\n    });\n  });\n  /* Tests are temporarily disabled due to the lack of proper async feature detection in native implementations.\n  .then(() => {\n    return fromAsync(Iterator.from(closableIterator), () => { throw 42; });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n    assert.true(closableIterator.closed, 'closes sync iterator on promise rejection');\n  }); */\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.from.js",
    "content": "/* eslint-disable prefer-rest-params -- required for testing */\nimport { DESCRIPTORS } from '../helpers/constants.js';\nimport { createIterable } from '../helpers/helpers.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport defineProperty from 'core-js-pure/es/object/define-property';\nimport freeze from 'core-js-pure/es/object/freeze';\nimport getIteratorMethod from 'core-js-pure/es/get-iterator-method';\nimport from from 'core-js-pure/es/array/from';\n\nQUnit.test('Array.from', assert => {\n  assert.isFunction(from);\n  assert.arity(from, 1);\n  assert.name(from, 'from');\n  let types = {\n    'array-like': {\n      length: '3',\n      0: '1',\n      1: '2',\n      2: '3',\n    },\n    arguments: function () {\n      return arguments;\n    }('1', '2', '3'),\n    array: ['1', '2', '3'],\n    iterable: createIterable(['1', '2', '3']),\n    string: '123',\n  };\n  for (const type in types) {\n    const data = types[type];\n    assert.arrayEqual(from(data), ['1', '2', '3'], `Works with ${ type }`);\n    assert.arrayEqual(from(data, it => it ** 2), [1, 4, 9], `Works with ${ type } + mapFn`);\n  }\n  types = {\n    'array-like': {\n      length: 1,\n      0: 1,\n    },\n    arguments: function () {\n      return arguments;\n    }(1),\n    array: [1],\n    iterable: createIterable([1]),\n    string: '1',\n  };\n  for (const type in types) {\n    const data = types[type];\n    const context = {};\n    assert.arrayEqual(from(data, function (value, key) {\n      assert.same(this, context, `Works with ${ type }, correct callback context`);\n      assert.same(value, type === 'string' ? '1' : 1, `Works with ${ type }, correct callback value`);\n      assert.same(key, 0, `Works with ${ type }, correct callback key`);\n      assert.same(arguments.length, 2, `Works with ${ type }, correct callback arguments number`);\n      return 42;\n    }, context), [42], `Works with ${ type }, correct result`);\n  }\n  const primitives = [false, true, 0];\n  for (const primitive of primitives) {\n    assert.arrayEqual(from(primitive), [], `Works with ${ primitive }`);\n  }\n  assert.throws(() => from(null), TypeError, 'Throws on null');\n  assert.throws(() => from(undefined), TypeError, 'Throws on undefined');\n  assert.arrayEqual(from('𠮷𠮷𠮷'), ['𠮷', '𠮷', '𠮷'], 'Uses correct string iterator');\n  let done = true;\n  from(createIterable([1, 2, 3], {\n    return() {\n      return done = false;\n    },\n  }), () => false);\n  assert.true(done, '.return #default');\n  done = false;\n  try {\n    from(createIterable([1, 2, 3], {\n      return() {\n        return done = true;\n      },\n    }), () => {\n      throw new Error();\n    });\n  } catch { /* empty */ }\n  assert.true(done, '.return #throw');\n  class C { /* empty */ }\n  let instance = from.call(C, createIterable([1, 2]));\n  assert.true(instance instanceof C, 'generic, iterable case, instanceof');\n  assert.arrayEqual(instance, [1, 2], 'generic, iterable case, elements');\n  instance = from.call(C, {\n    0: 1,\n    1: 2,\n    length: 2,\n  });\n  assert.true(instance instanceof C, 'generic, array-like case, instanceof');\n  assert.arrayEqual(instance, [1, 2], 'generic, array-like case, elements');\n  let array = [1, 2, 3];\n  done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return getIteratorMethod([]).call(this);\n  };\n  assert.arrayEqual(from(array), [1, 2, 3], 'Array with custom iterator, elements');\n  assert.true(done, 'call @@iterator in Array with custom iterator');\n  array = [1, 2, 3];\n  delete array[1];\n  assert.arrayEqual(from(array, String), ['1', 'undefined', '3'], 'Ignores holes');\n  assert.notThrows(() => from({\n    length: -1,\n    0: 1,\n  }, () => {\n    throw new Error();\n  }), 'Uses ToLength');\n  assert.arrayEqual(from([], undefined), [], 'Works with undefined as second argument');\n  assert.throws(() => from([], null), TypeError, 'Throws with null as second argument');\n  assert.throws(() => from([], 0), TypeError, 'Throws with 0 as second argument');\n  assert.throws(() => from([], ''), TypeError, 'Throws with \"\" as second argument');\n  assert.throws(() => from([], false), TypeError, 'Throws with false as second argument');\n  assert.throws(() => from([], {}), TypeError, 'Throws with {} as second argument');\n  if (DESCRIPTORS) {\n    let called = false;\n    defineProperty(C.prototype, 0, {\n      set() {\n        called = true;\n      },\n    });\n    from.call(C, [1, 2, 3]);\n    assert.false(called, 'Should not call prototype accessors');\n  }\n  // iterator should be closed when createProperty fails\n  if (DESCRIPTORS) {\n    let returnCalled = false;\n    const iterable = {\n      [Symbol.iterator]() {\n        return {\n          next() { return { value: 1, done: false }; },\n          return() { returnCalled = true; return { done: true }; },\n        };\n      },\n    };\n    const Frozen = function () { return freeze([]); };\n    assert.throws(() => from.call(Frozen, iterable), TypeError, 'throws when createProperty fails');\n    assert.true(returnCalled, 'iterator is closed when createProperty throws');\n  }\n  // mapfn callable check should happen before ToObject(items)\n  assert.throws(() => from(null, 42), TypeError, 'non-callable mapfn with null items throws for mapfn');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.includes.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport includes from 'core-js-pure/es/array/includes';\n\nQUnit.test('Array#includes', assert => {\n  assert.isFunction(includes);\n  const object = {};\n  const array = [1, 2, 3, -0, object];\n  assert.true(includes(array, 1));\n  assert.true(includes(array, -0));\n  assert.true(includes(array, 0));\n  assert.true(includes(array, object));\n  assert.false(includes(array, 4));\n  assert.false(includes(array, -0.5));\n  assert.false(includes(array, {}));\n  assert.true(includes(Array(1), undefined));\n  assert.true(includes([NaN], NaN));\n  // https://bugs.webkit.org/show_bug.cgi?id=309342\n  // eslint-disable-next-line no-sparse-arrays -- testing\n  assert.false(includes([, 1], undefined, 1), '`Array#includes(undefined, fromIndex)` should not find holes before fromIndex');\n  if (STRICT) {\n    assert.throws(() => includes(null, 0), TypeError);\n    assert.throws(() => includes(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.index-of.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport indexOf from 'core-js-pure/es/array/index-of';\n\nQUnit.test('Array#indexOf', assert => {\n  assert.isFunction(indexOf);\n  assert.same(indexOf([1, 1, 1], 1), 0);\n  assert.same(indexOf([1, 2, 3], 1, 1), -1);\n  assert.same(indexOf([1, 2, 3], 2, 1), 1);\n  assert.same(indexOf([1, 2, 3], 2, -1), -1);\n  assert.same(indexOf([1, 2, 3], 2, -2), 1);\n  assert.same(indexOf([NaN], NaN), -1);\n  assert.same(indexOf(Array(2).concat([1, 2, 3]), 2), 3);\n  assert.same(indexOf(Array(1), undefined), -1);\n  assert.same(indexOf([1], 1, -0), 0, \"shouldn't return negative zero\");\n  if (STRICT) {\n    assert.throws(() => indexOf(null, 0), TypeError);\n    assert.throws(() => indexOf(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.is-array.js",
    "content": "import isArray from 'core-js-pure/es/array/is-array';\n\nQUnit.test('Array.isArray', assert => {\n  assert.isFunction(isArray);\n  assert.name(isArray, 'isArray');\n  assert.arity(isArray, 1);\n  assert.false(isArray({}));\n  assert.false(isArray(function () {\n    // eslint-disable-next-line prefer-rest-params -- required for testing\n    return arguments;\n  }()));\n  assert.true(isArray([]));\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.iterator.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\nimport getIterator from 'core-js-pure/es/get-iterator';\nimport { keys, values, entries } from 'core-js-pure/es/array';\n\nQUnit.test('Array#@@iterator', assert => {\n  assert.isFunction(values);\n  const iterator = getIterator(['q', 'w', 'e']);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Array Iterator');\n  assert.same(String(iterator), '[object Array Iterator]');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Array#keys', assert => {\n  assert.isFunction(keys);\n  const iterator = keys(['q', 'w', 'e']);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Array Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 0,\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 1,\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 2,\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Array#values', assert => {\n  assert.isFunction(values);\n  const iterator = values(['q', 'w', 'e']);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Array Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Array#entries', assert => {\n  assert.isFunction(entries);\n  const iterator = entries(['q', 'w', 'e']);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Array Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: [0, 'q'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: [1, 'w'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: [2, 'e'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.join.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport join from 'core-js-pure/es/array/join';\n\nQUnit.test('Array#join', assert => {\n  assert.isFunction(join);\n  assert.same(join([1, 2, 3], undefined), '1,2,3');\n  assert.same(join('123'), '1,2,3');\n  assert.same(join('123', '|'), '1|2|3');\n  if (STRICT) {\n    assert.throws(() => join(null), TypeError);\n    assert.throws(() => join(undefined), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.last-index-of.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport lastIndexOf from 'core-js-pure/es/array/last-index-of';\n\nQUnit.test('Array#lastIndexOf', assert => {\n  assert.isFunction(lastIndexOf);\n  assert.same(lastIndexOf([1, 1, 1], 1), 2);\n  assert.same(lastIndexOf([1, 2, 3], 3, 1), -1);\n  assert.same(lastIndexOf([1, 2, 3], 2, 1), 1);\n  assert.same(lastIndexOf([1, 2, 3], 2, -3), -1);\n  assert.same(lastIndexOf([1, 2, 3], 1, -4), -1);\n  assert.same(lastIndexOf([1, 2, 3], 2, -2), 1);\n  assert.same(lastIndexOf([NaN], NaN), -1);\n  assert.same(lastIndexOf([1, 2, 3].concat(Array(2)), 2), 1);\n  assert.same(lastIndexOf([1], 1, -0), 0, \"shouldn't return negative zero\");\n  if (STRICT) {\n    assert.throws(() => lastIndexOf(null, 0), TypeError);\n    assert.throws(() => lastIndexOf(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.map.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport map from 'core-js-pure/es/array/map';\n\nQUnit.test('Array#map', assert => {\n  assert.isFunction(map);\n  let array = [1];\n  const context = {};\n  map(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.deepEqual(map([1, 2, 3], it => it + 1), [2, 3, 4]);\n  assert.deepEqual(map([1, 2, 3], (value, key) => value + key), [1, 3, 5]);\n  assert.deepEqual(map([1, 2, 3], function () {\n    return +this;\n  }, 2), [2, 2, 2]);\n  if (STRICT) {\n    assert.throws(() => map(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => map(undefined, () => { /* empty */ }), TypeError);\n  }\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(map(array, Boolean).foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.of.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nimport defineProperty from 'core-js-pure/es/object/define-property';\nimport of from 'core-js-pure/es/array/of';\n\nQUnit.test('Array.of', assert => {\n  assert.isFunction(of);\n  assert.arity(of, 0);\n  assert.name(of, 'of');\n  assert.deepEqual(of(1), [1]);\n  assert.deepEqual(of(1, 2, 3), [1, 2, 3]);\n  class C { /* empty */ }\n  const instance = of.call(C, 1, 2);\n  assert.true(instance instanceof C);\n  assert.same(instance[0], 1);\n  assert.same(instance[1], 2);\n  assert.same(instance.length, 2);\n  if (DESCRIPTORS) {\n    let called = false;\n    defineProperty(C.prototype, 0, {\n      set() {\n        called = true;\n      },\n    });\n    of.call(C, 1, 2, 3);\n    assert.false(called, 'Should not call prototype accessors');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.push.js",
    "content": "import { REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR, STRICT } from '../helpers/constants.js';\n\nimport push from 'core-js-pure/es/array/virtual/push';\nimport defineProperty from 'core-js-pure/es/object/define-property';\n\nQUnit.test('Array#push', assert => {\n  assert.isFunction(push);\n\n  const object = { length: 0x100000000 };\n  assert.same(push.call(object, 1), 0x100000001, 'proper ToLength #1');\n  assert.same(object[0x100000000], 1, 'proper ToLength #2');\n\n  if (STRICT) {\n    if (REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR) {\n      assert.throws(() => push.call(defineProperty([], 'length', { writable: false }), 1), TypeError, 'non-writable length, with arg');\n      assert.throws(() => push.call(defineProperty([], 'length', { writable: false })), TypeError, 'non-writable length, without arg');\n    }\n\n    assert.throws(() => push.call(null), TypeError);\n    assert.throws(() => push.call(undefined), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.reduce-right.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport reduceRight from 'core-js-pure/es/array/reduce-right';\n\nQUnit.test('Array#reduceRight', assert => {\n  assert.isFunction(reduceRight);\n  const array = [1];\n  const accumulator = {};\n  reduceRight(array, function (memo, value, key, that) {\n    assert.same(arguments.length, 4, 'correct number of callback arguments');\n    assert.same(memo, accumulator, 'correct callback accumulator');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n  }, accumulator);\n  assert.same(reduceRight([1, 2, 3], (a, b) => a + b, 1), 7, 'works with initial accumulator');\n  reduceRight([1, 2], (memo, value, key) => {\n    assert.same(memo, 2, 'correct default accumulator');\n    assert.same(value, 1, 'correct start value without initial accumulator');\n    assert.same(key, 0, 'correct start index without initial accumulator');\n  });\n  assert.same(reduceRight([1, 2, 3], (a, b) => a + b), 6, 'works without initial accumulator');\n  let values = '';\n  let keys = '';\n  reduceRight([1, 2, 3], (memo, value, key) => {\n    values += value;\n    keys += key;\n  }, 0);\n  assert.same(values, '321', 'correct order #1');\n  assert.same(keys, '210', 'correct order #2');\n  assert.same(reduceRight({\n    0: 1,\n    1: 2,\n    length: 2,\n  }, (a, b) => a + b), 3, 'generic');\n  assert.throws(() => reduceRight([], () => { /* empty */ }), TypeError);\n  assert.throws(() => reduceRight(Array(5), () => { /* empty */ }), TypeError);\n  if (STRICT) {\n    assert.throws(() => reduceRight(null, () => { /* empty */ }, 1), TypeError);\n    assert.throws(() => reduceRight(undefined, () => { /* empty */ }, 1), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.reduce.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport reduce from 'core-js-pure/es/array/reduce';\n\nQUnit.test('Array#reduce', assert => {\n  assert.isFunction(reduce);\n  const array = [1];\n  const accumulator = {};\n  reduce(array, function (memo, value, key, that) {\n    assert.same(arguments.length, 4, 'correct number of callback arguments');\n    assert.same(memo, accumulator, 'correct callback accumulator');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n  }, accumulator);\n  assert.same(reduce([1, 2, 3], (a, b) => a + b, 1), 7, 'works with initial accumulator');\n  reduce([1, 2], (memo, value, key) => {\n    assert.same(memo, 1, 'correct default accumulator');\n    assert.same(value, 2, 'correct start value without initial accumulator');\n    assert.same(key, 1, 'correct start index without initial accumulator');\n  });\n  assert.same(reduce([1, 2, 3], (a, b) => a + b), 6, 'works without initial accumulator');\n  let values = '';\n  let keys = '';\n  reduce([1, 2, 3], (memo, value, key) => {\n    values += value;\n    keys += key;\n  }, 0);\n  assert.same(values, '123', 'correct order #1');\n  assert.same(keys, '012', 'correct order #2');\n  assert.same(reduce({\n    0: 1,\n    1: 2,\n    length: 2,\n  }, (a, b) => a + b), 3, 'generic');\n  assert.throws(() => reduce([], () => { /* empty */ }), TypeError);\n  assert.throws(() => reduce(Array(5), () => { /* empty */ }), TypeError);\n  if (STRICT) {\n    assert.throws(() => reduce(null, () => { /* empty */ }, 1), TypeError);\n    assert.throws(() => reduce(undefined, () => { /* empty */ }, 1), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.reverse.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport reverse from 'core-js-pure/es/array/reverse';\n\nQUnit.test('Array#reverse', assert => {\n  assert.isFunction(reverse);\n  const a = [1, 2.2, 3.3];\n  function fn() {\n    +a;\n    reverse(a);\n  }\n  fn();\n  assert.arrayEqual(a, [3.3, 2.2, 1]);\n  if (STRICT) {\n    assert.throws(() => reverse(null, () => { /* empty */ }, 1), TypeError);\n    assert.throws(() => reverse(undefined, () => { /* empty */ }, 1), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.slice.js",
    "content": "import { GLOBAL, STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport isArray from 'core-js-pure/es/array/is-array';\nimport slice from 'core-js-pure/es/array/slice';\n\nQUnit.test('Array#slice', assert => {\n  assert.isFunction(slice);\n  let array = ['1', '2', '3', '4', '5'];\n  assert.deepEqual(slice(array), array);\n  assert.deepEqual(slice(array, 1, 3), ['2', '3']);\n  assert.deepEqual(slice(array, 1, undefined), ['2', '3', '4', '5']);\n  assert.deepEqual(slice(array, 1, -1), ['2', '3', '4']);\n  assert.deepEqual(slice(array, -2, -1), ['4']);\n  assert.deepEqual(slice(array, -2, -3), []);\n  const string = '12345';\n  assert.deepEqual(slice(string), array);\n  assert.deepEqual(slice(string, 1, 3), ['2', '3']);\n  assert.deepEqual(slice(string, 1, undefined), ['2', '3', '4', '5']);\n  assert.deepEqual(slice(string, 1, -1), ['2', '3', '4']);\n  assert.deepEqual(slice(string, -2, -1), ['4']);\n  assert.deepEqual(slice(string, -2, -3), []);\n  const list = GLOBAL.document && document.body && document.body.childNodes;\n  if (list) {\n    assert.notThrows(() => isArray(slice(list)), 'works with NodeList');\n  }\n  if (STRICT) {\n    assert.throws(() => slice(null), TypeError);\n    assert.throws(() => slice(undefined), TypeError);\n  }\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(slice(array).foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.some.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport some from 'core-js-pure/es/array/some';\n\nQUnit.test('Array#some', assert => {\n  assert.isFunction(some);\n  let array = [1];\n  const context = {};\n  some(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.true(some([1, '2', 3], it => typeof it == 'number'));\n  assert.true(some([1, 2, 3], it => it < 3));\n  assert.false(some([1, 2, 3], it => it < 0));\n  assert.false(some([1, 2, 3], it => typeof it == 'string'));\n  assert.false(some([1, 2, 3], function () {\n    return +this !== 1;\n  }, 1));\n  let result = '';\n  some([1, 2, 3], (value, key) => {\n    result += key;\n    return false;\n  });\n  assert.same(result, '012');\n  array = [1, 2, 3];\n  assert.false(some(array, (value, key, that) => that !== array));\n  if (STRICT) {\n    assert.throws(() => some(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => some(undefined, () => { /* empty */ }), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.sort.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport sort from 'core-js-pure/es/array/sort';\n\nQUnit.test('Array#sort', assert => {\n  assert.isFunction(sort);\n  assert.notThrows(() => sort([1, 2, 3], undefined), 'works with undefined');\n  assert.throws(() => sort([1, 2, 3], null), TypeError, 'throws on null');\n  assert.throws(() => sort([1, 2, 3], {}), TypeError, 'throws on {}');\n\n  assert.deepEqual(sort([1, 3, 2]), [1, 2, 3], '#1');\n  assert.deepEqual(sort([1, 3, 2, 11]), [1, 11, 2, 3], '#2');\n  assert.deepEqual(sort([1, -1, 3, NaN, 2, 0, 11, -0]), [-1, 0, -0, 1, 11, 2, 3, NaN], '#3');\n\n  let array = Array(5);\n  array[0] = 1;\n  array[2] = 3;\n  array[4] = 2;\n  let expected = Array(5);\n  expected[0] = 1;\n  expected[1] = 2;\n  expected[2] = 3;\n  assert.deepEqual(sort(array), expected, 'holes');\n\n  array = 'zyxwvutsrqponMLKJIHGFEDCBA'.split('');\n  expected = 'ABCDEFGHIJKLMnopqrstuvwxyz'.split('');\n  assert.deepEqual(sort(array), expected, 'alpha #1');\n\n  array = 'ёяюэьыъщшчцхфутсрПОНМЛКЙИЗЖЕДГВБА'.split('');\n  expected = 'АБВГДЕЖЗИЙКЛМНОПрстуфхцчшщъыьэюяё'.split('');\n  assert.deepEqual(sort(array), expected, 'alpha #2');\n\n  array = [undefined, 1];\n  assert.notThrows(() => sort(array, () => { throw 1; }), 'undefined #1');\n  assert.deepEqual(array, [1, undefined], 'undefined #2');\n\n  /* Safari TP ~ 17.6 issue\n  const object = {\n    valueOf: () => 1,\n    toString: () => -1,\n  };\n\n  array = {\n    0: undefined,\n    1: 2,\n    2: 1,\n    3: 'X',\n    4: -1,\n    5: 'a',\n    6: true,\n    7: object,\n    8: NaN,\n    10: Infinity,\n    length: 11,\n  };\n\n  expected = {\n    0: -1,\n    1: object,\n    2: 1,\n    3: 2,\n    4: Infinity,\n    5: NaN,\n    6: 'X',\n    7: 'a',\n    8: true,\n    9: undefined,\n    length: 11,\n  };\n\n  assert.deepEqual(sort(array), expected, 'custom generic');\n  */\n\n  let index, mod, code, chr, value;\n  expected = Array(516);\n  array = Array(516);\n\n  for (index = 0; index < 516; index++) {\n    mod = index % 4;\n    array[index] = 515 - index;\n    expected[index] = index - 2 * mod + 3;\n  }\n\n  sort(array, (a, b) => (a / 4 | 0) - (b / 4 | 0));\n\n  assert.true(1 / sort([0, -0])[0] > 0, '-0');\n\n  assert.arrayEqual(array, expected, 'stable #1');\n\n  let result = '';\n  array = [];\n\n  // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n  for (code = 65; code < 76; code++) {\n    chr = String.fromCharCode(code);\n\n    switch (code) {\n      case 66: case 69: case 70: case 72: value = 3; break;\n      case 68: case 71: value = 4; break;\n      default: value = 2;\n    }\n\n    for (index = 0; index < 47; index++) {\n      array.push({ k: chr + index, v: value });\n    }\n  }\n\n  sort(array, (a, b) => b.v - a.v);\n\n  for (index = 0; index < array.length; index++) {\n    chr = array[index].k.charAt(0);\n    if (result.charAt(result.length - 1) !== chr) result += chr;\n  }\n\n  assert.same(result, 'DGBEFHACIJK', 'stable #2');\n\n  // default comparator returns 0 for equal string representations\n  const obj1 = { toString() { return 'a'; } };\n  const obj2 = { toString() { return 'a'; } };\n  assert.same(sort([obj1, obj2])[0], obj1, 'stable sort for equal string representations');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => sort([Symbol(1), Symbol(2)]), 'w/o cmp throws on symbols');\n  }\n\n  if (STRICT) {\n    assert.throws(() => sort(null), TypeError, 'ToObject(this)');\n    assert.throws(() => sort(undefined), TypeError, 'ToObject(this)');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.splice.js",
    "content": "import { REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR, STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport splice from 'core-js-pure/es/array/splice';\nimport defineProperty from 'core-js-pure/es/object/define-property';\n\nQUnit.test('Array#splice', assert => {\n  assert.isFunction(splice);\n  let array = [1, 2, 3, 4, 5];\n  assert.deepEqual(splice(array, 2), [3, 4, 5]);\n  assert.deepEqual(array, [1, 2]);\n  array = [1, 2, 3, 4, 5];\n  assert.deepEqual(splice(array, -2), [4, 5]);\n  assert.deepEqual(array, [1, 2, 3]);\n  array = [1, 2, 3, 4, 5];\n  assert.deepEqual(splice(array, 2, 2), [3, 4]);\n  assert.deepEqual(array, [1, 2, 5]);\n  array = [1, 2, 3, 4, 5];\n  assert.deepEqual(splice(array, 2, -2), []);\n  assert.deepEqual(array, [1, 2, 3, 4, 5]);\n  array = [1, 2, 3, 4, 5];\n  assert.deepEqual(splice(array, 2, 2, 6, 7), [3, 4]);\n  assert.deepEqual(array, [1, 2, 6, 7, 5]);\n  // ES6 semantics\n  array = [0, 1, 2];\n  assert.deepEqual(splice(array, 0), [0, 1, 2]);\n  array = [0, 1, 2];\n  assert.deepEqual(splice(array, 1), [1, 2]);\n  array = [0, 1, 2];\n  assert.deepEqual(splice(array, 2), [2]);\n  if (STRICT) {\n    if (REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR) {\n      assert.throws(() => splice(defineProperty([1, 2, 3], 'length', { writable: false }), 1, 1), TypeError, 'non-writable length');\n    }\n    assert.throws(() => splice(null), TypeError);\n    assert.throws(() => splice(undefined), TypeError);\n  }\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(splice(array).foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.to-reversed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport toReversed from 'core-js-pure/es/array/to-reversed';\n\nQUnit.test('Array#toReversed', assert => {\n  assert.isFunction(toReversed);\n\n  let array = [1, 2];\n  assert.notSame(toReversed(array), array, 'immutable');\n  assert.deepEqual(toReversed([1, 2.2, 3.3]), [3.3, 2.2, 1], 'basic');\n\n  const object = {};\n\n  array = {\n    0: undefined,\n    1: 2,\n    2: 1,\n    3: 'X',\n    4: -1,\n    5: 'a',\n    6: true,\n    7: object,\n    8: NaN,\n    10: Infinity,\n    length: 11,\n  };\n\n  const expected = [\n    Infinity,\n    undefined,\n    NaN,\n    object,\n    true,\n    'a',\n    -1,\n    'X',\n    1,\n    2,\n    undefined,\n  ];\n\n  assert.deepEqual(toReversed(array), expected, 'non-array target');\n\n  array = [1];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.true(toReversed(array) instanceof Array, 'non-generic');\n\n  if (STRICT) {\n    assert.throws(() => toReversed(null), TypeError);\n    assert.throws(() => toReversed(undefined), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.to-sorted.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport toSorted from 'core-js-pure/es/array/to-sorted';\n\nQUnit.test('Array#toSorted', assert => {\n  assert.isFunction(toSorted);\n\n  let array = [1];\n  assert.notSame(toSorted(array), array, 'immutable');\n  assert.deepEqual(toSorted([1, 3, 2]), [1, 2, 3], '#1');\n  assert.deepEqual(toSorted([1, 3, 2, 11]), [1, 11, 2, 3], '#2');\n  assert.deepEqual(toSorted([1, -1, 3, NaN, 2, 0, 11, -0]), [-1, 0, -0, 1, 11, 2, 3, NaN], '#3');\n\n  array = Array(5);\n  array[0] = 1;\n  array[2] = 3;\n  array[4] = 2;\n  let expected = Array(5);\n  expected[0] = 1;\n  expected[1] = 2;\n  expected[2] = 3;\n  assert.deepEqual(toSorted(array), expected, 'holes');\n\n  array = 'zyxwvutsrqponMLKJIHGFEDCBA'.split('');\n  expected = 'ABCDEFGHIJKLMnopqrstuvwxyz'.split('');\n  assert.deepEqual(toSorted(array), expected, 'alpha #1');\n\n  array = 'ёяюэьыъщшчцхфутсрПОНМЛКЙИЗЖЕДГВБА'.split('');\n  expected = 'АБВГДЕЖЗИЙКЛМНОПрстуфхцчшщъыьэюяё'.split('');\n  assert.deepEqual(toSorted(array), expected, 'alpha #2');\n\n  array = [undefined, 1];\n  assert.notThrows(() => array = toSorted(array, () => { throw 1; }), 'undefined #1');\n  assert.deepEqual(array, [1, undefined], 'undefined #2');\n\n  /* Safari TP ~ 17.6 issue\n  const object = {\n    valueOf: () => 1,\n    toString: () => -1,\n  };\n\n  array = {\n    0: undefined,\n    1: 2,\n    2: 1,\n    3: 'X',\n    4: -1,\n    5: 'a',\n    6: true,\n    7: object,\n    8: NaN,\n    10: Infinity,\n    length: 11,\n  };\n\n  expected = [\n    -1,\n    object,\n    1,\n    2,\n    Infinity,\n    NaN,\n    'X',\n    'a',\n    true,\n    undefined,\n    undefined,\n  ];\n\n  assert.deepEqual(toSorted(array), expected, 'non-array target');\n  */\n\n  let index, mod, code, chr, value;\n  expected = Array(516);\n  array = Array(516);\n\n  for (index = 0; index < 516; index++) {\n    mod = index % 4;\n    array[index] = 515 - index;\n    expected[index] = index - 2 * mod + 3;\n  }\n\n  assert.arrayEqual(toSorted(array, (a, b) => (a / 4 | 0) - (b / 4 | 0)), expected, 'stable #1');\n\n  assert.true(1 / toSorted([0, -0])[0] > 0, '-0');\n\n  let result = '';\n  array = [];\n\n  // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n  for (code = 65; code < 76; code++) {\n    chr = String.fromCharCode(code);\n\n    switch (code) {\n      case 66: case 69: case 70: case 72: value = 3; break;\n      case 68: case 71: value = 4; break;\n      default: value = 2;\n    }\n\n    for (index = 0; index < 47; index++) {\n      array.push({ k: chr + index, v: value });\n    }\n  }\n\n  array = toSorted(array, (a, b) => b.v - a.v);\n\n  for (index = 0; index < array.length; index++) {\n    chr = array[index].k.charAt(0);\n    if (result.charAt(result.length - 1) !== chr) result += chr;\n  }\n\n  assert.same(result, 'DGBEFHACIJK', 'stable #2');\n\n  assert.notThrows(() => toSorted([1, 2, 3], undefined).length === 3, 'works with undefined');\n  assert.throws(() => toSorted([1, 2, 3], null), TypeError, 'throws on null');\n  assert.throws(() => toSorted([1, 2, 3], {}), TypeError, 'throws on {}');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => toSorted([Symbol(1), Symbol(2)]), 'w/o cmp throws on symbols');\n  }\n\n  array = [1];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.true(toSorted(array) instanceof Array, 'non-generic');\n\n  if (STRICT) {\n    assert.throws(() => toSorted(null), TypeError, 'ToObject(this)');\n    assert.throws(() => toSorted(undefined), TypeError, 'ToObject(this)');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.to-spliced.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport toSpliced from 'core-js-pure/es/array/to-spliced';\n\nQUnit.test('Array#toSpliced', assert => {\n  assert.isFunction(toSpliced);\n\n  let array = [1, 2, 3, 4, 5];\n  assert.notSame(toSpliced(array, 2), array);\n  assert.deepEqual(toSpliced([1, 2, 3, 4, 5], 2), [1, 2]);\n  assert.deepEqual(toSpliced([1, 2, 3, 4, 5], -2), [1, 2, 3]);\n  assert.deepEqual(toSpliced([1, 2, 3, 4, 5], 2, 2), [1, 2, 5]);\n  assert.deepEqual(toSpliced([1, 2, 3, 4, 5], 2, -2), [1, 2, 3, 4, 5]);\n  assert.deepEqual(toSpliced([1, 2, 3, 4, 5], 2, 2, 6, 7), [1, 2, 6, 7, 5]);\n\n  if (STRICT) {\n    assert.throws(() => toSpliced(null), TypeError);\n    assert.throws(() => toSpliced(undefined), TypeError);\n  }\n\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.true(toSpliced(array) instanceof Array, 'non-generic');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.unshift.js",
    "content": "import { REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR, STRICT } from '../helpers/constants.js';\n\nimport unshift from 'core-js-pure/es/array/virtual/unshift';\nimport defineProperty from 'core-js-pure/es/object/define-property';\n\nQUnit.test('Array#unshift', assert => {\n  assert.isFunction(unshift);\n\n  assert.same(unshift.call([1], 0), 2, 'proper result');\n\n  if (STRICT) {\n    if (REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR) {\n      assert.throws(() => unshift.call(defineProperty([], 'length', { writable: false }), 1), TypeError, 'non-writable length, with arg');\n      assert.throws(() => unshift.call(defineProperty([], 'length', { writable: false })), TypeError, 'non-writable length, without arg');\n    }\n\n    assert.throws(() => unshift.call(null), TypeError);\n    assert.throws(() => unshift.call(undefined), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.array.with.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport withAt from 'core-js-pure/es/array/with';\n\nQUnit.test('Array#with', assert => {\n  assert.isFunction(withAt);\n\n  let array = [1, 2, 3, 4, 5];\n  assert.notSame(withAt(array, 2, 1), array);\n  assert.deepEqual(withAt([1, 2, 3, 4, 5], 2, 6), [1, 2, 6, 4, 5]);\n  assert.deepEqual(withAt([1, 2, 3, 4, 5], -2, 6), [1, 2, 3, 6, 5]);\n  assert.deepEqual(withAt([1, 2, 3, 4, 5], '1', 6), [1, 6, 3, 4, 5]);\n\n  assert.throws(() => withAt([1, 2, 3, 4, 5], 5, 6), RangeError);\n  assert.throws(() => withAt([1, 2, 3, 4, 5], -6, 6), RangeError);\n\n  if (STRICT) {\n    assert.throws(() => withAt(null, 1, 2), TypeError);\n    assert.throws(() => withAt(undefined, 1, 2), TypeError);\n  }\n\n  array = [1, 2];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.true(withAt(array, 1, 2) instanceof Array, 'non-generic');\n\n  // Incorrect exception thrown when index coercion fails in Firefox\n  function CustomError() { /* empty */ }\n  const index = { valueOf() { throw new CustomError(); } };\n  assert.throws(() => withAt([], index, null), CustomError, 'incorrect error');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.async-disposable-stack.constructor.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Promise from 'core-js-pure/es/promise';\nimport Symbol from 'core-js-pure/es/symbol';\nimport AsyncDisposableStack from 'core-js-pure/es/async-disposable-stack';\nimport SuppressedError from 'core-js-pure/es/suppressed-error';\n\nQUnit.test('AsyncDisposableStack constructor', assert => {\n  assert.isFunction(AsyncDisposableStack);\n  assert.arity(AsyncDisposableStack, 0);\n  assert.name(AsyncDisposableStack, 'AsyncDisposableStack');\n  assert.true(new AsyncDisposableStack() instanceof AsyncDisposableStack);\n\n  assert.same(AsyncDisposableStack.prototype.constructor, AsyncDisposableStack);\n\n  // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n  assert.throws(() => AsyncDisposableStack(), 'throws w/o `new`');\n});\n\nQUnit.test('AsyncDisposableStack#disposeAsync', assert => {\n  assert.isFunction(AsyncDisposableStack.prototype.disposeAsync);\n  assert.arity(AsyncDisposableStack.prototype.disposeAsync, 0);\n  assert.name(AsyncDisposableStack.prototype.disposeAsync, 'disposeAsync');\n  assert.nonEnumerable(AsyncDisposableStack.prototype, 'disposeAsync');\n});\n\nQUnit.test('AsyncDisposableStack#use', assert => {\n  assert.isFunction(AsyncDisposableStack.prototype.use);\n  assert.arity(AsyncDisposableStack.prototype.use, 1);\n  assert.name(AsyncDisposableStack.prototype.use, 'use');\n  assert.nonEnumerable(AsyncDisposableStack.prototype, 'use');\n\n  let result = '';\n  const stack = new AsyncDisposableStack();\n  const resource = {\n    [Symbol.asyncDispose]() {\n      result += '1';\n      assert.same(this, resource);\n      assert.same(arguments.length, 0);\n    },\n  };\n\n  assert.same(stack.use(resource), resource);\n\n  return stack.disposeAsync().then(it => {\n    assert.same(it, undefined);\n    assert.same(result, '1');\n  });\n});\n\nQUnit.test('AsyncDisposableStack#adopt', assert => {\n  assert.isFunction(AsyncDisposableStack.prototype.adopt);\n  assert.arity(AsyncDisposableStack.prototype.adopt, 2);\n  assert.name(AsyncDisposableStack.prototype.adopt, 'adopt');\n  assert.nonEnumerable(AsyncDisposableStack.prototype, 'adopt');\n\n  let result = '';\n  const stack = new AsyncDisposableStack();\n  const resource = {};\n\n  assert.same(stack.adopt(resource, function (arg) {\n    result += '1';\n    if (STRICT) assert.same(this, undefined);\n    assert.same(arguments.length, 1);\n    assert.same(arg, resource);\n  }), resource);\n\n  return stack.disposeAsync().then(it => {\n    assert.same(it, undefined);\n    assert.same(result, '1');\n  });\n});\n\nQUnit.test('AsyncDisposableStack#defer', assert => {\n  assert.isFunction(AsyncDisposableStack.prototype.defer);\n  assert.arity(AsyncDisposableStack.prototype.defer, 1);\n  assert.name(AsyncDisposableStack.prototype.defer, 'defer');\n  assert.nonEnumerable(AsyncDisposableStack.prototype, 'defer');\n\n  let result = '';\n  const stack = new AsyncDisposableStack();\n\n  assert.same(stack.defer(function () {\n    result += '1';\n    if (STRICT) assert.same(this, undefined);\n    assert.same(arguments.length, 0);\n  }), undefined);\n\n  return stack.disposeAsync().then(it => {\n    assert.same(it, undefined);\n    assert.same(result, '1');\n  });\n});\n\nQUnit.test('AsyncDisposableStack#move', assert => {\n  assert.isFunction(AsyncDisposableStack.prototype.move);\n  assert.arity(AsyncDisposableStack.prototype.move, 0);\n  assert.name(AsyncDisposableStack.prototype.move, 'move');\n  assert.nonEnumerable(AsyncDisposableStack.prototype, 'move');\n\n  let result = '';\n  const stack1 = new AsyncDisposableStack();\n\n  stack1.defer(() => result += '2');\n  stack1.defer(() => result += '1');\n\n  const stack2 = stack1.move();\n\n  assert.true(stack1.disposed);\n\n  return stack2.disposeAsync().then(() => {\n    assert.same(result, '12');\n  });\n});\n\nQUnit.test('AsyncDisposableStack#@@asyncDispose', assert => {\n  assert.same(AsyncDisposableStack.prototype[Symbol.asyncDispose], AsyncDisposableStack.prototype.disposeAsync);\n});\n\nQUnit.test('AsyncDisposableStack#@@toStringTag', assert => {\n  assert.same(AsyncDisposableStack.prototype[Symbol.toStringTag], 'AsyncDisposableStack', '@@toStringTag');\n});\n\nQUnit.test('AsyncDisposableStack#1', assert => {\n  let result = '';\n  const stack = new AsyncDisposableStack();\n\n  stack.use({ [Symbol.asyncDispose]: () => result += '6' });\n  stack.adopt({}, () => result += '5');\n  stack.defer(() => result += '4');\n  stack.use({ [Symbol.asyncDispose]: () => Promise.resolve(result += '3') });\n  stack.adopt({}, () => Promise.resolve(result += '2'));\n  stack.defer(() => Promise.resolve(result += '1'));\n\n  assert.false(stack.disposed);\n\n  return stack.disposeAsync().then(it => {\n    assert.same(it, undefined);\n    assert.same(result, '123456');\n    assert.true(stack.disposed);\n    return stack.disposeAsync();\n  }).then(it => {\n    assert.same(it, undefined);\n  });\n});\n\nQUnit.test('AsyncDisposableStack#2', assert => {\n  let result = '';\n  const stack = new AsyncDisposableStack();\n\n  stack.use({ [Symbol.asyncDispose]: () => result += '6' });\n  stack.adopt({}, () => { throw new Error(5); });\n  stack.defer(() => result += '4');\n  stack.use({ [Symbol.asyncDispose]: () => Promise.resolve(result += '3') });\n  stack.adopt({}, () => Promise.resolve(result += '2'));\n  stack.defer(() => Promise.resolve(result += '1'));\n\n  return stack.disposeAsync().then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(result, '12346');\n    assert.true(error instanceof Error);\n    assert.same(error.message, '5');\n  });\n});\n\nQUnit.test('AsyncDisposableStack#3', assert => {\n  let result = '';\n  const stack = new AsyncDisposableStack();\n\n  stack.use({ [Symbol.asyncDispose]: () => result += '6' });\n  stack.adopt({}, () => { throw new Error(5); });\n  stack.defer(() => result += '4');\n  stack.use({ [Symbol.asyncDispose]: () => Promise.reject(new Error(3)) });\n  stack.adopt({}, () => Promise.resolve(result += '2'));\n  stack.defer(() => Promise.resolve(result += '1'));\n\n  return stack.disposeAsync().then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(result, '1246');\n    assert.true(error instanceof SuppressedError);\n    assert.same(error.error.message, '5');\n    assert.same(error.suppressed.message, '3');\n  });\n});\n\n// https://github.com/tc39/proposal-explicit-resource-management/issues/256\nQUnit.test('AsyncDisposableStack#256', assert => {\n  const resume = assert.async();\n  assert.expect(1);\n  let called = false;\n  const stack = new AsyncDisposableStack();\n  const neverResolves = new Promise(() => { /* empty */ });\n  stack.use({ [Symbol.dispose]() { return neverResolves; } });\n  stack.disposeAsync().then(() => {\n    called = true;\n    assert.required('It should be called');\n    resume();\n  });\n  setTimeout(() => called || resume(), 3e3);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.async-iterator.async-dispose.js",
    "content": "import AsyncIterator from 'core-js-pure/full/async-iterator';\nimport Symbol from 'core-js-pure/es/symbol';\nimport create from 'core-js-pure/es/object/create';\n\nQUnit.test('AsyncIterator#@@asyncDispose', assert => {\n  const asyncDispose = AsyncIterator.prototype[Symbol.asyncDispose];\n  assert.isFunction(asyncDispose);\n  assert.arity(asyncDispose, 0);\n\n  return create(AsyncIterator.prototype)[Symbol.asyncDispose]().then(result => {\n    assert.same(result, undefined);\n  }).then(() => {\n    let called = false;\n    const iterator2 = create(AsyncIterator.prototype);\n    iterator2.return = function () {\n      called = true;\n      assert.same(this, iterator2);\n      return 7;\n    };\n\n    return iterator2[Symbol.asyncDispose]().then(result => {\n      assert.same(result, undefined);\n      assert.true(called);\n    });\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/es.date.get-year.js",
    "content": "import getYear from 'core-js-pure/es/date/get-year';\n\nQUnit.test('Date#getYear', assert => {\n  assert.isFunction(getYear);\n  const date = new Date();\n  assert.same(getYear(date), date.getFullYear() - 1900);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.date.now.js",
    "content": "import now from 'core-js-pure/es/date/now';\n\nQUnit.test('Date.now', assert => {\n  assert.isFunction(now);\n  assert.name(now, 'now');\n  assert.arity(now, 0);\n  assert.same(typeof now(), 'number', 'typeof');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.date.set-year.js",
    "content": "import setYear from 'core-js-pure/es/date/set-year';\nimport isNaN from 'core-js-pure/es/number/is-nan';\n\nQUnit.test('Date#setYear', assert => {\n  assert.isFunction(setYear);\n  const date = new Date();\n  setYear(date, 1);\n  assert.same(date.getFullYear(), 1901);\n  const date2 = new Date();\n  setYear(date2, NaN);\n  assert.true(isNaN(date2.getTime()), 'NaN year makes date invalid');\n  const date3 = new Date();\n  setYear(date3, undefined);\n  assert.true(isNaN(date3.getTime()), 'undefined year makes date invalid');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.date.to-gmt-string.js",
    "content": "import toGMTString from 'core-js-pure/es/date/to-gmt-string';\n\nQUnit.test('Date#toGMTString', assert => {\n  assert.isFunction(toGMTString);\n  const date = new Date();\n  assert.same(toGMTString(date), date.toUTCString());\n});\n"
  },
  {
    "path": "tests/unit-pure/es.date.to-iso-string.js",
    "content": "import toISOString from 'core-js-pure/es/date/to-iso-string';\n\nQUnit.test('Date#toISOString', assert => {\n  assert.isFunction(toISOString);\n  assert.same(toISOString(new Date(0)), '1970-01-01T00:00:00.000Z');\n  assert.same(toISOString(new Date(1e12 + 1)), '2001-09-09T01:46:40.001Z');\n  assert.same(toISOString(new Date(-5e13 - 1)), '0385-07-25T07:06:39.999Z');\n  const future = toISOString(new Date(1e15 + 1));\n  const properFuture = future === '+033658-09-27T01:46:40.001Z' || future === '33658-09-27T01:46:40.001Z';\n  assert.true(properFuture);\n  const prehistoric = toISOString(new Date(-1e15 + 1));\n  const properPrehistoric = prehistoric === '-029719-04-05T22:13:20.001Z' || prehistoric === '-29719-04-05T22:13:20.001Z';\n  assert.true(properPrehistoric);\n  assert.throws(() => toISOString(new Date(NaN)), RangeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.date.to-json.js",
    "content": "import toISOString from 'core-js-pure/es/date/to-iso-string';\nimport toJSON from 'core-js-pure/es/date/to-json';\n\nQUnit.test('Date#toJSON', assert => {\n  assert.isFunction(toJSON);\n  if (Date.prototype.toISOString) {\n    const date = new Date();\n    assert.same(toJSON(date), toISOString(date), 'base');\n  }\n  assert.same(toJSON(new Date(NaN)), null, 'not finite');\n  assert.same(toJSON({\n    toISOString() {\n      return 42;\n    },\n  }), 42, 'generic');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.disposable-stack.constructor.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport DisposableStack from 'core-js-pure/es/disposable-stack';\nimport SuppressedError from 'core-js-pure/es/suppressed-error';\n\nQUnit.test('DisposableStack constructor', assert => {\n  assert.isFunction(DisposableStack);\n  assert.arity(DisposableStack, 0);\n  assert.name(DisposableStack, 'DisposableStack');\n\n  assert.true(new DisposableStack() instanceof DisposableStack);\n\n  assert.same(DisposableStack.prototype.constructor, DisposableStack);\n\n  // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n  assert.throws(() => DisposableStack(), 'throws w/o `new`');\n});\n\nQUnit.test('DisposableStack#dispose', assert => {\n  assert.isFunction(DisposableStack.prototype.dispose);\n  assert.arity(DisposableStack.prototype.dispose, 0);\n  assert.name(DisposableStack.prototype.dispose, 'dispose');\n  assert.nonEnumerable(DisposableStack.prototype, 'dispose');\n});\n\nQUnit.test('DisposableStack#use', assert => {\n  assert.isFunction(DisposableStack.prototype.use);\n  assert.arity(DisposableStack.prototype.use, 1);\n  assert.name(DisposableStack.prototype.use, 'use');\n  assert.nonEnumerable(DisposableStack.prototype, 'use');\n\n  let result = '';\n  const stack = new DisposableStack();\n  const resource = {\n    [Symbol.dispose]() {\n      result += '1';\n      assert.same(this, resource);\n      assert.same(arguments.length, 0);\n    },\n  };\n\n  assert.same(stack.use(resource), resource);\n  assert.same(stack.dispose(), undefined);\n  assert.same(result, '1');\n});\n\nQUnit.test('DisposableStack#adopt', assert => {\n  assert.isFunction(DisposableStack.prototype.adopt);\n  assert.arity(DisposableStack.prototype.adopt, 2);\n  assert.name(DisposableStack.prototype.adopt, 'adopt');\n  assert.nonEnumerable(DisposableStack.prototype, 'adopt');\n\n  let result = '';\n  const stack = new DisposableStack();\n  const resource = {};\n\n  assert.same(stack.adopt(resource, function (arg) {\n    result += '1';\n    if (STRICT) assert.same(this, undefined);\n    assert.same(arguments.length, 1);\n    assert.same(arg, resource);\n  }), resource);\n\n  assert.same(stack.dispose(), undefined);\n  assert.same(result, '1');\n});\n\nQUnit.test('DisposableStack#defer', assert => {\n  assert.isFunction(DisposableStack.prototype.defer);\n  assert.arity(DisposableStack.prototype.defer, 1);\n  assert.name(DisposableStack.prototype.defer, 'defer');\n  assert.nonEnumerable(DisposableStack.prototype, 'defer');\n\n  let result = '';\n  const stack = new DisposableStack();\n\n  assert.same(stack.defer(function () {\n    result += '1';\n    if (STRICT) assert.same(this, undefined);\n    assert.same(arguments.length, 0);\n  }), undefined);\n\n  assert.same(stack.dispose(), undefined);\n  assert.same(result, '1');\n});\n\nQUnit.test('DisposableStack#move', assert => {\n  assert.isFunction(DisposableStack.prototype.move);\n  assert.arity(DisposableStack.prototype.move, 0);\n  assert.name(DisposableStack.prototype.move, 'move');\n  assert.nonEnumerable(DisposableStack.prototype, 'move');\n\n  let result = '';\n  const stack1 = new DisposableStack();\n\n  stack1.defer(() => result += '2');\n  stack1.defer(() => result += '1');\n\n  const stack2 = stack1.move();\n\n  assert.true(stack1.disposed);\n\n  stack2.dispose();\n\n  assert.same(result, '12');\n});\n\nQUnit.test('DisposableStack#@@dispose', assert => {\n  assert.same(DisposableStack.prototype[Symbol.dispose], DisposableStack.prototype.dispose);\n});\n\nQUnit.test('DisposableStack#@@toStringTag', assert => {\n  assert.same(DisposableStack.prototype[Symbol.toStringTag], 'DisposableStack', '@@toStringTag');\n});\n\nQUnit.test('DisposableStack', assert => {\n  let result1 = '';\n  const stack1 = new DisposableStack();\n\n  stack1.use({ [Symbol.dispose]: () => result1 += '6' });\n  stack1.adopt({}, () => result1 += '5');\n  stack1.defer(() => result1 += '4');\n  stack1.use({ [Symbol.dispose]: () => result1 += '3' });\n  stack1.adopt({}, () => result1 += '2');\n  stack1.defer(() => result1 += '1');\n\n  assert.false(stack1.disposed);\n  assert.same(stack1.dispose(), undefined);\n  assert.same(result1, '123456');\n  assert.true(stack1.disposed);\n  assert.same(stack1.dispose(), undefined);\n\n  let result2 = '';\n  const stack2 = new DisposableStack();\n  let error2;\n\n  stack2.use({ [Symbol.dispose]: () => result2 += '6' });\n  stack2.adopt({}, () => { throw new Error(5); });\n  stack2.defer(() => result2 += '4');\n  stack2.use({ [Symbol.dispose]: () => result2 += '3' });\n  stack2.adopt({}, () => result2 += '2');\n  stack2.defer(() => result2 += '1');\n\n  try {\n    stack2.dispose();\n  } catch (error2$) {\n    error2 = error2$;\n  }\n\n  assert.same(result2, '12346');\n  assert.true(error2 instanceof Error);\n  assert.same(error2.message, '5');\n\n  let result3 = '';\n  const stack3 = new DisposableStack();\n  let error3;\n\n  stack3.use({ [Symbol.dispose]: () => result3 += '6' });\n  stack3.adopt({}, () => { throw new Error(5); });\n  stack3.defer(() => result3 += '4');\n  stack3.use({ [Symbol.dispose]: () => { throw new Error(3); } });\n  stack3.adopt({}, () => result3 += '2');\n  stack3.defer(() => result3 += '1');\n\n  try {\n    stack3.dispose();\n  } catch (error3$) {\n    error3 = error3$;\n  }\n\n  assert.same(result3, '1246');\n  assert.true(error3 instanceof SuppressedError);\n  assert.same(error3.error.message, '5');\n  assert.same(error3.suppressed.message, '3');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.error.cause.js",
    "content": "/* eslint-disable sonarjs/inconsistent-function-call -- required for testing */\nimport { PROTO } from '../helpers/constants.js';\n\nimport path from 'core-js-pure/es/error';\nimport create from 'core-js-pure/es/object/create';\n\nfunction runErrorTestCase($Error, ERROR_NAME, WEB_ASSEMBLY) {\n  QUnit.test(`${ ERROR_NAME } constructor with 'cause' param`, assert => {\n    assert.isFunction($Error);\n    assert.arity($Error, 1);\n    assert.name($Error, ERROR_NAME);\n\n    if (PROTO && $Error !== path.Error) {\n      // eslint-disable-next-line no-prototype-builtins -- safe\n      assert.true(path.Error.isPrototypeOf($Error), 'constructor has `Error` in the prototype chain');\n    }\n\n    assert.true($Error(1) instanceof $Error, 'no cause, without new');\n    assert.true(new $Error(1) instanceof $Error, 'no cause, with new');\n\n    assert.true($Error(1, {}) instanceof $Error, 'with options, without new');\n    assert.true(new $Error(1, {}) instanceof $Error, 'with options, with new');\n\n    assert.true($Error(1, 'foo') instanceof $Error, 'non-object options, without new');\n    assert.true(new $Error(1, 'foo') instanceof $Error, 'non-object options, with new');\n\n    assert.same($Error(1, { cause: 7 }).cause, 7, 'cause, without new');\n    assert.same(new $Error(1, { cause: 7 }).cause, 7, 'cause, with new');\n\n    assert.same($Error(1, create({ cause: 7 })).cause, 7, 'prototype cause, without new');\n    assert.same(new $Error(1, create({ cause: 7 })).cause, 7, 'prototype cause, with new');\n\n    let error = $Error(1, { cause: 7 });\n    if (!WEB_ASSEMBLY) assert.same(error.name, ERROR_NAME, 'instance name');\n    assert.same(error.message, '1', 'instance message');\n    assert.same(error.cause, 7, 'instance cause');\n    // eslint-disable-next-line no-prototype-builtins -- safe\n    assert.true(error.hasOwnProperty('cause'), 'cause is own');\n\n    error = $Error();\n    assert.same(error.message, '', 'default instance message');\n    assert.same(error.cause, undefined, 'default instance cause undefined');\n    // eslint-disable-next-line no-prototype-builtins -- safe\n    assert.false(error.hasOwnProperty('cause'), 'default instance cause missed');\n  });\n}\n\nfor (const ERROR_NAME of ['Error', 'EvalError', 'RangeError', 'ReferenceError', 'SyntaxError', 'TypeError', 'URIError']) {\n  runErrorTestCase(path[ERROR_NAME], ERROR_NAME);\n}\n\nif (path.WebAssembly) for (const ERROR_NAME of ['CompileError', 'LinkError', 'RuntimeError']) {\n  if (path.WebAssembly[ERROR_NAME]) runErrorTestCase(path.WebAssembly[ERROR_NAME], ERROR_NAME, true);\n}\n"
  },
  {
    "path": "tests/unit-pure/es.error.is-error.js",
    "content": "import isError from 'core-js-pure/es/error/is-error';\nimport create from 'core-js-pure/es/object/create';\nimport AggregateError from 'core-js-pure/es/aggregate-error';\nimport SuppressedError from 'core-js-pure/actual/suppressed-error';\nimport DOMException from 'core-js-pure/stable/dom-exception';\n\nQUnit.test('Error.isError', assert => {\n  assert.isFunction(isError);\n  assert.arity(isError, 1);\n  assert.name(isError, 'isError');\n\n  assert.true(isError(new Error('error')));\n  assert.true(isError(new TypeError('error')));\n  assert.true(isError(new AggregateError([1, 2, 3], 'error')));\n  assert.true(isError(new SuppressedError(1, 2, 'error')));\n  assert.true(isError(new DOMException('error')));\n\n  assert.false(isError(null));\n  assert.false(isError({}));\n  assert.false(isError(create(Error.prototype)));\n});\n"
  },
  {
    "path": "tests/unit-pure/es.escape.js",
    "content": "import escape from 'core-js-pure/es/escape';\n\nQUnit.test('escape', assert => {\n  assert.isFunction(escape);\n  assert.arity(escape, 1);\n  assert.name(escape, 'escape');\n  assert.same(escape('!q2ф'), '%21q2%u0444');\n  assert.same(escape('\\n'), '%0A', 'percent encoding uses uppercase hex digits');\n  assert.same(escape('\\u0001'), '%01', 'low code points use uppercase hex');\n  assert.same(escape('\\u00FF'), '%FF', 'code < 256 uses uppercase hex');\n  assert.same(escape(null), 'null');\n  assert.same(escape(undefined), 'undefined');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => escape(Symbol('escape test')), 'throws on symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.function.bind.js",
    "content": "import bind from 'core-js-pure/es/function/bind';\n\nQUnit.test('Function#bind', assert => {\n  assert.isFunction(bind);\n  const object = { a: 42 };\n  assert.same(bind(function () {\n    return this.a;\n  }, object)(), 42);\n  // eslint-disable-next-line prefer-arrow-callback -- required for `new`\n  assert.same(new (bind(function () { /* empty */ }, object))().a, undefined);\n  function C(a, b) {\n    this.a = a;\n    this.b = b;\n  }\n  const instance = new (bind(C, null, 1))(2);\n  assert.true(instance instanceof C);\n  assert.same(instance.a, 1);\n  assert.same(instance.b, 2);\n  assert.same(bind(it => it, null, 42)(), 42);\n  const regExpTest = bind(RegExp.prototype.test, /a/);\n  assert.true(regExpTest('a'));\n  const Date2017 = bind(Date, null, 2017);\n  const date = new Date2017(11);\n  assert.true(date instanceof Date);\n  assert.same(date.getFullYear(), 2017);\n  assert.same(date.getMonth(), 11);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.function.has-instance.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Function#@@hasInstance', assert => {\n  assert.true(Symbol.hasInstance in Function.prototype);\n  assert.true(Function[Symbol.hasInstance](() => { /* empty */ }));\n  assert.false(Function[Symbol.hasInstance]({}));\n});\n"
  },
  {
    "path": "tests/unit-pure/es.global-this.js",
    "content": "import globalThis from 'core-js-pure/es/global-this';\n\nQUnit.test('globalThis', assert => {\n  assert.same(globalThis, Object(globalThis), 'is object');\n  assert.same(globalThis.Math, Math, 'contains globals');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.concat.js",
    "content": "import { createIterable, createIterator } from '../helpers/helpers.js';\n\nimport concat from 'core-js-pure/es/iterator/concat';\nimport Iterator from 'core-js-pure/es/iterator';\nimport Symbol from 'core-js-pure/es/symbol';\nimport from from 'core-js-pure/es/array/from';\n\nQUnit.test('Iterator.concat', assert => {\n  assert.isFunction(concat);\n  assert.arity(concat, 0);\n  assert.name(concat, 'concat');\n\n  let iterator = concat();\n  assert.isIterable(iterator, 'iterable, no args');\n  assert.isIterator(iterator, 'iterator, no args');\n  assert.true(iterator instanceof Iterator, 'iterator instance, no args');\n  assert.arrayEqual(from(iterator), [], 'proper values, no args');\n\n  iterator = concat([1, 2, 3]);\n  assert.isIterable(iterator, 'iterable, array');\n  assert.isIterator(iterator, 'iterator, array');\n  assert.true(iterator instanceof Iterator, 'iterator instance, array');\n  assert.arrayEqual(from(iterator), [1, 2, 3], 'proper values, array');\n\n  iterator = concat([]);\n  assert.isIterable(iterator, 'iterable, empty array');\n  assert.isIterator(iterator, 'iterator, empty array');\n  assert.true(iterator instanceof Iterator, 'iterator instance, empty array');\n  assert.arrayEqual(from(iterator), [], 'proper values, empty array');\n\n  iterator = concat(createIterable([1, 2, 3]));\n  assert.isIterable(iterator, 'iterable, custom iterable');\n  assert.isIterator(iterator, 'iterator, custom iterable');\n  assert.true(iterator instanceof Iterator, 'iterator instance, custom iterable');\n  assert.arrayEqual(from(iterator), [1, 2, 3], 'proper values, custom iterable');\n\n  iterator = concat([1, 2, 3], [], createIterable([4, 5, 6]), createIterable([]));\n  assert.isIterable(iterator, 'iterable, mixed');\n  assert.isIterator(iterator, 'iterator, mixed');\n  assert.true(iterator instanceof Iterator, 'iterator instance, mixed');\n  assert.arrayEqual(from(iterator), [1, 2, 3, 4, 5, 6], 'proper values, mixed');\n\n  iterator = concat(createIterable([1, 2, 3]));\n  assert.deepEqual(iterator.return(), { done: true, value: undefined }, '.return with no active inner iterator result');\n  assert.deepEqual(iterator.next(), { done: true, value: undefined }, '.next on closed iterator');\n\n  iterator = concat(createIterable([1, 2, 3]));\n  assert.deepEqual(iterator.next(), { done: false, value: 1 }, '.next with active inner iterator result');\n  assert.deepEqual(iterator.return(), { done: true, value: undefined }, '.return with active inner iterator result');\n  assert.deepEqual(iterator.next(), { done: true, value: undefined }, '.next on closed iterator after .return with active inner iterator');\n\n  let called = false;\n  iterator = concat(createIterable([1, 2, 3], {\n    return() {\n      called = true;\n      return {};\n    },\n  }));\n  iterator.next();\n  assert.deepEqual(iterator.return(), { done: true, value: undefined }, '.return with active inner iterator with return result');\n  assert.true(called, 'inner .return called');\n\n  // https://github.com/tc39/proposal-iterator-sequencing/issues/17\n  const oldIterResult = {\n    done: false,\n    value: 123,\n  };\n  const testIterator = {\n    next() {\n      return oldIterResult;\n    },\n  };\n  const iterable = {\n    [Symbol.iterator]() {\n      return testIterator;\n    },\n  };\n  iterator = concat(iterable);\n  const iterResult = iterator.next();\n  assert.same(iterResult.done, false);\n  assert.same(iterResult.value, 123);\n  // https://github.com/tc39/proposal-iterator-sequencing/pull/26\n  assert.notSame(iterResult, oldIterResult);\n\n  assert.throws(() => concat(createIterator([1, 2, 3])), TypeError, 'non-iterable iterator #1');\n  assert.throws(() => concat([], createIterator([1, 2, 3])), TypeError, 'non-iterable iterator #2');\n  assert.throws(() => concat(''), TypeError, 'iterable non-object argument #1');\n  assert.throws(() => concat([], ''), TypeError, 'iterable non-object argument #2');\n  assert.throws(() => concat(undefined), TypeError, 'non-iterable-object argument #1');\n  assert.throws(() => concat(null), TypeError, 'non-iterable-object argument #2');\n  assert.throws(() => concat(1), TypeError, 'non-iterable-object argument #3');\n  assert.throws(() => concat({}), TypeError, 'non-iterable-object argument #4');\n  assert.throws(() => concat([], undefined), TypeError, 'non-iterable-object argument #5');\n  assert.throws(() => concat([], null), TypeError, 'non-iterable-object argument #6');\n  assert.throws(() => concat([], 1), TypeError, 'non-iterable-object argument #7');\n  assert.throws(() => concat([], {}), TypeError, 'non-iterable-object argument #8');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.constructor.js",
    "content": "import { createIterator, nativeSubclass } from '../helpers/helpers.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport Iterator from 'core-js-pure/es/iterator';\n\nQUnit.test('Iterator', assert => {\n  assert.isFunction(Iterator);\n  assert.arity(Iterator, 0);\n  assert.name(Iterator, 'Iterator');\n\n  assert.true(Iterator.from(createIterator([1, 2, 3])) instanceof Iterator, 'From Proxy');\n\n  if (nativeSubclass) {\n    const Sub = nativeSubclass(Iterator);\n    assert.true(new Sub() instanceof Iterator, 'abstract constructor');\n  }\n\n  assert.throws(() => new Iterator(), 'direct constructor throws');\n  // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n  assert.throws(() => Iterator(), 'throws w/o `new`');\n});\n\nQUnit.test('Iterator#constructor', assert => {\n  assert.same(Iterator.prototype.constructor, Iterator, 'Iterator#constructor is Iterator');\n});\n\nQUnit.test('Iterator#@@toStringTag', assert => {\n  assert.same(Iterator.prototype[Symbol.toStringTag], 'Iterator', 'Iterator::@@toStringTag is `Iterator`');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.dispose.js",
    "content": "import Iterator from 'core-js-pure/es/iterator';\nimport Symbol from 'core-js-pure/es/symbol';\nimport create from 'core-js-pure/es/object/create';\n\nQUnit.test('Iterator#@@dispose', assert => {\n  const dispose = Iterator.prototype[Symbol.dispose];\n  assert.isFunction(dispose);\n  assert.arity(dispose, 0);\n\n  assert.same(create(Iterator.prototype)[Symbol.dispose](), undefined);\n\n  let called = false;\n  const iterator2 = create(Iterator.prototype);\n  iterator2.return = function () {\n    called = true;\n    assert.same(this, iterator2);\n    return 7;\n  };\n  assert.same(iterator2[Symbol.dispose](), undefined);\n  assert.true(called);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.drop.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nimport Iterator from 'core-js-pure/es/iterator';\n\nQUnit.test('Iterator#drop', assert => {\n  const { drop } = Iterator.prototype;\n\n  assert.isFunction(drop);\n  assert.arity(drop, 1);\n  assert.name(drop, 'drop');\n  assert.nonEnumerable(Iterator.prototype, 'drop');\n\n  assert.arrayEqual(drop.call(createIterator([1, 2, 3]), 1).toArray(), [2, 3], 'basic functionality');\n  assert.arrayEqual(drop.call(createIterator([1, 2, 3]), 1.5).toArray(), [2, 3], 'float');\n  assert.arrayEqual(drop.call(createIterator([1, 2, 3]), 4).toArray(), [], 'big');\n  assert.arrayEqual(drop.call(createIterator([1, 2, 3]), 0).toArray(), [1, 2, 3], 'zero');\n\n  if (STRICT) {\n    assert.throws(() => drop.call(undefined, 1), TypeError);\n    assert.throws(() => drop.call(null, 1), TypeError);\n  }\n\n  assert.throws(() => drop.call({}, 1).next(), TypeError);\n  assert.throws(() => drop.call([], 1).next(), TypeError);\n  assert.throws(() => drop.call(createIterator([1, 2, 3]), -1), RangeError, 'negative');\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => drop.call(it, NaN), RangeError, 'NaN');\n  assert.true(it.closed, 'drop closes iterator on validation error');\n  // https://issues.chromium.org/issues/336839115\n  assert.throws(() => drop.call({ next: null }, 0).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.every.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport Iterator from 'core-js-pure/es/iterator';\n\nQUnit.test('Iterator#every', assert => {\n  const { every } = Iterator.prototype;\n\n  assert.isFunction(every);\n  assert.arity(every, 1);\n  assert.name(every, 'every');\n  assert.nonEnumerable(Iterator.prototype, 'every');\n\n  assert.true(every.call(createIterator([1, 2, 3]), it => typeof it == 'number'), 'basic functionality #1');\n  assert.false(every.call(createIterator([1, 2, 3]), it => it % 2), 'basic functionality #2');\n  every.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n  });\n\n  if (STRICT) {\n    assert.throws(() => every.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => every.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => every.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => every.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => every.call(it, {}), TypeError);\n  assert.true(it.closed, 'every closes iterator on validation error');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.filter.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport Iterator from 'core-js-pure/es/iterator';\nimport from from 'core-js-pure/es/array/from';\n\nQUnit.test('Iterator#filter', assert => {\n  const { filter } = Iterator.prototype;\n\n  assert.isFunction(filter);\n  assert.arity(filter, 1);\n  assert.name(filter, 'filter');\n  assert.nonEnumerable(Iterator.prototype, 'filter');\n\n  assert.arrayEqual(filter.call(createIterator([1, 2, 3]), it => it % 2).toArray(), [1, 3], 'basic functionality');\n\n  from(filter.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n  }));\n\n  if (STRICT) {\n    assert.throws(() => filter.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => filter.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => filter.call({}, () => { /* empty */ }).next(), TypeError);\n  assert.throws(() => filter.call([], () => { /* empty */ }).next(), TypeError);\n  assert.throws(() => filter.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => filter.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => filter.call(it, {}), TypeError);\n  assert.true(it.closed, 'filter closes iterator on validation error');\n  // https://issues.chromium.org/issues/336839115\n  assert.throws(() => filter.call({ next: null }, () => { /* empty */ }).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.find.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport Iterator from 'core-js-pure/es/iterator';\n\nQUnit.test('Iterator#find', assert => {\n  const { find } = Iterator.prototype;\n\n  assert.isFunction(find);\n  assert.arity(find, 1);\n  assert.name(find, 'find');\n  assert.nonEnumerable(Iterator.prototype, 'find');\n\n  assert.same(find.call(createIterator([1, 2, 3]), it => !(it % 2)), 2, 'basic functionality');\n  find.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n  });\n\n  if (STRICT) {\n    assert.throws(() => find.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => find.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => find.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => find.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => find.call(it, {}), TypeError);\n  assert.true(it.closed, 'find closes iterator on validation error');\n\n  let returnCount = 0;\n  const it2 = createIterator([1, 2, 3], {\n    return() {\n      returnCount++;\n      throw new Error('close error');\n    },\n  });\n  assert.throws(() => find.call(it2, () => true), Error, 'iterator.return() throwing on stop');\n  assert.same(returnCount, 1, 'iterator.return() called exactly once when it throws');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.flat-map.js",
    "content": "import { createIterator, createIterable } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport Iterator from 'core-js-pure/es/iterator';\nimport Map from 'core-js-pure/es/map';\n\nQUnit.test('Iterator#flatMap', assert => {\n  const { flatMap } = Iterator.prototype;\n\n  assert.isFunction(flatMap);\n  assert.arity(flatMap, 1);\n  assert.name(flatMap, 'flatMap');\n  assert.nonEnumerable(Iterator.prototype, 'flatMap');\n\n  assert.arrayEqual(\n    flatMap.call(createIterator([1, [], 2, createIterable([3, 4]), [5, 6]]), it => typeof it == 'number' ? [-it] : it).toArray(),\n    [-1, -2, 3, 4, 5, 6],\n    'basic functionality',\n  );\n  flatMap.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n    return [arg];\n  }).toArray();\n\n  // Should not throw an error for an iterator without `return` method. Fixed in Safari 26.2\n  // https://bugs.webkit.org/show_bug.cgi?id=297532\n  assert.notThrows(() => {\n    const iter = flatMap.call(new Map([[4, 5]]).entries(), v => v);\n    iter.next();\n    iter.return();\n  }, 'iterator without `return` method');\n\n  if (STRICT) {\n    assert.throws(() => flatMap.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => flatMap.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => flatMap.call(createIterator([1]), it => it).next(), TypeError);\n  assert.throws(() => flatMap.call({}, () => { /* empty */ }).next(), TypeError);\n  assert.throws(() => flatMap.call([], () => { /* empty */ }).next(), TypeError);\n  assert.throws(() => flatMap.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => flatMap.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => flatMap.call(it, {}), TypeError);\n  assert.true(it.closed, 'flatMap closes iterator on validation error');\n  // https://issues.chromium.org/issues/336839115\n  assert.throws(() => flatMap.call({ next: null }, () => { /* empty */ }).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.for-each.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport Iterator from 'core-js-pure/es/iterator';\n\nQUnit.test('Iterator#forEach', assert => {\n  const { forEach } = Iterator.prototype;\n\n  assert.isFunction(forEach);\n  assert.arity(forEach, 1);\n  assert.name(forEach, 'forEach');\n  assert.nonEnumerable(Iterator.prototype, 'forEach');\n\n  const array = [];\n\n  forEach.call(createIterator([1, 2, 3]), it => array.push(it));\n\n  assert.arrayEqual(array, [1, 2, 3], 'basic functionality');\n\n  forEach.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n  });\n\n  if (STRICT) {\n    assert.throws(() => forEach.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => forEach.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => forEach.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => forEach.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => forEach.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => forEach.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => forEach.call(it, {}), TypeError);\n  assert.true(it.closed, 'forEach closes iterator on validation error');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.from.js",
    "content": "import { createIterable, createIterator } from '../helpers/helpers.js';\n\nimport Iterator from 'core-js-pure/es/iterator';\nimport assign from 'core-js-pure/es/object/assign';\n\nQUnit.test('Iterator.from', assert => {\n  const { from } = Iterator;\n\n  assert.isFunction(from);\n  assert.arity(from, 1);\n  assert.name(from, 'from');\n\n  assert.true(Iterator.from(createIterator([1, 2, 3])) instanceof Iterator, 'proxy, iterator');\n\n  assert.true(Iterator.from(createIterable([1, 2, 3])) instanceof Iterator, 'proxy, iterable');\n\n  assert.arrayEqual(Iterator.from(createIterable([1, 2, 3])).toArray(), [1, 2, 3], 'just a proxy');\n\n  assert.throws(() => from(undefined), TypeError);\n  assert.throws(() => from(null), TypeError);\n  assert.throws(() => from({}).next(), TypeError);\n  assert.throws(() => from(assign(new Iterator(), { next: 42 })).next(), TypeError);\n\n  // Should not throw when an underlying iterator's `return` method is null\n  // https://bugs.webkit.org/show_bug.cgi?id=288714\n  const iterator = createIterator([], { return: null });\n  const result = from(iterator).return('ignored');\n  assert.true(result.done, 'iterator with null return #1');\n  assert.strictEqual(result.value, undefined, 'iterator with null return #2');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.map.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport Iterator from 'core-js-pure/es/iterator';\n\nQUnit.test('Iterator#map', assert => {\n  const { map } = Iterator.prototype;\n\n  assert.isFunction(map);\n  assert.arity(map, 1);\n  assert.name(map, 'map');\n  assert.nonEnumerable(Iterator.prototype, 'map');\n\n  assert.arrayEqual(map.call(createIterator([1, 2, 3]), it => it ** 2).toArray(), [1, 4, 9], 'basic functionality');\n  map.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n  }).toArray();\n\n  if (STRICT) {\n    assert.throws(() => map.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => map.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => map.call({}, () => { /* empty */ }).next(), TypeError);\n  assert.throws(() => map.call([], () => { /* empty */ }).next(), TypeError);\n  assert.throws(() => map.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => map.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => map.call(it, {}), TypeError);\n  assert.true(it.closed, 'map closes iterator on validation error');\n\n  {\n    let returnCount = 0;\n    const it2 = createIterator([1], {\n      return() {\n        returnCount++;\n        return { done: true, value: undefined };\n      },\n    });\n    const mapped = map.call(it2, x => x);\n    mapped.next();\n    mapped.next(); // exhaust\n    mapped.return();\n    assert.same(returnCount, 0, '.return() on exhausted iterator does not call underlying return');\n  }\n\n  // https://issues.chromium.org/issues/336839115\n  assert.throws(() => map.call({ next: null }, () => { /* empty */ }).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.reduce.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport Iterator from 'core-js-pure/es/iterator';\n\nQUnit.test('Iterator#reduce', assert => {\n  const { reduce } = Iterator.prototype;\n\n  assert.isFunction(reduce);\n  assert.arity(reduce, 1);\n  assert.name(reduce, 'reduce');\n  assert.nonEnumerable(Iterator.prototype, 'reduce');\n\n  assert.same(reduce.call(createIterator([1, 2, 3]), (a, b) => a + b, 1), 7, 'basic functionality');\n  assert.same(reduce.call(createIterator([1, 2, 3]), (a, b) => a + b), 6, 'basic functionality, no init');\n  reduce.call(createIterator([2]), function (a, b, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 3, 'arguments length');\n    assert.same(a, 1, 'argument 1');\n    assert.same(b, 2, 'argument 2');\n    assert.same(counter, 0, 'counter');\n  }, 1);\n\n  if (STRICT) {\n    assert.throws(() => reduce.call(undefined, (a, b) => a + b, 0), TypeError);\n    assert.throws(() => reduce.call(null, (a, b) => a + b, 0), TypeError);\n  }\n\n  assert.throws(() => reduce.call({}, (a, b) => a + b, 0), TypeError);\n  assert.throws(() => reduce.call([], (a, b) => a + b, 0), TypeError);\n  assert.throws(() => reduce.call(createIterator([1]), undefined, 1), TypeError);\n  assert.throws(() => reduce.call(createIterator([1]), null, 1), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => reduce.call(it, {}, 1), TypeError);\n  assert.true(it.closed, 'reduce closes iterator on validation error');\n  assert.notThrows(() => reduce.call(createIterator([]), () => false, undefined), 'does not fail on undefined initial parameter');\n  assert.same(reduce.call(createIterator([]), () => false, undefined), undefined, 'correct result on undefined initial parameter');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.some.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport Iterator from 'core-js-pure/es/iterator';\n\nQUnit.test('Iterator#some', assert => {\n  const { some } = Iterator.prototype;\n\n  assert.isFunction(some);\n  assert.arity(some, 1);\n  assert.name(some, 'some');\n  assert.nonEnumerable(Iterator.prototype, 'some');\n\n  assert.true(some.call(createIterator([1, 2, 3]), it => it % 2), 'basic functionality #1');\n  assert.false(some.call(createIterator([1, 2, 3]), it => typeof it == 'string'), 'basic functionality #2');\n  some.call(createIterator([1]), function (arg, counter) {\n    assert.same(this, STRICT_THIS, 'this');\n    assert.same(arguments.length, 2, 'arguments length');\n    assert.same(arg, 1, 'argument');\n    assert.same(counter, 0, 'counter');\n  });\n\n  if (STRICT) {\n    assert.throws(() => some.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => some.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => some.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => some.call(createIterator([1]), null), TypeError);\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => some.call(it, {}), TypeError);\n  assert.true(it.closed, 'some closes iterator on validation error');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.take.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nimport Iterator from 'core-js-pure/es/iterator';\n\nQUnit.test('Iterator#take', assert => {\n  const { take } = Iterator.prototype;\n\n  assert.isFunction(take);\n  assert.arity(take, 1);\n  assert.name(take, 'take');\n  assert.nonEnumerable(Iterator.prototype, 'take');\n\n  assert.arrayEqual(take.call(createIterator([1, 2, 3]), 2).toArray(), [1, 2], 'basic functionality');\n  assert.arrayEqual(take.call(createIterator([1, 2, 3]), 1.5).toArray(), [1], 'float');\n  assert.arrayEqual(take.call(createIterator([1, 2, 3]), 4).toArray(), [1, 2, 3], 'big');\n  assert.arrayEqual(take.call(createIterator([1, 2, 3]), 0).toArray(), [], 'zero');\n\n  if (STRICT) {\n    assert.throws(() => take.call(undefined, 1), TypeError);\n    assert.throws(() => take.call(null, 1), TypeError);\n  }\n\n  assert.throws(() => take.call({}, 1).next(), TypeError);\n  assert.throws(() => take.call([], 1).next(), TypeError);\n  assert.throws(() => take.call(createIterator([1, 2, 3]), -1), RangeError, 'negative');\n  const it = createIterator([1], { return() { this.closed = true; } });\n  assert.throws(() => take.call(it, NaN), RangeError, 'NaN');\n  assert.true(it.closed, 'take closes iterator on validation error');\n  // https://issues.chromium.org/issues/336839115\n  assert.throws(() => take.call({ next: null }, 1).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.iterator.to-array.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterable, createIterator } from '../helpers/helpers.js';\n\nimport Iterator from 'core-js-pure/es/iterator';\n\nQUnit.test('Iterator#toArray', assert => {\n  const { toArray } = Iterator.prototype;\n\n  assert.isFunction(toArray);\n  assert.arity(toArray, 0);\n  assert.name(toArray, 'toArray');\n  assert.nonEnumerable(Iterator.prototype, 'toArray');\n\n  assert.arrayEqual(Iterator.from('123').toArray(), ['1', '2', '3']);\n  assert.arrayEqual(Iterator.from(createIterable([1, 2, 3])).toArray(), [1, 2, 3]);\n\n  assert.arrayEqual(toArray.call(createIterator([1, 2, 3])), [1, 2, 3]);\n\n  if (STRICT) {\n    assert.throws(() => toArray.call(undefined), TypeError);\n    assert.throws(() => toArray.call(null), TypeError);\n  }\n\n  assert.throws(() => toArray.call({}), TypeError);\n  assert.throws(() => toArray.call([]), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.json.is-raw-json.js",
    "content": "import isRawJSON from 'core-js-pure/es/json/is-raw-json';\nimport rawJSON from 'core-js-pure/es/json/raw-json';\nimport freeze from 'core-js-pure/es/object/freeze';\nimport Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('JSON.isRawJSON', assert => {\n  assert.isFunction(isRawJSON);\n  assert.arity(isRawJSON, 1);\n  assert.name(isRawJSON, 'isRawJSON');\n\n  assert.true(isRawJSON(rawJSON(1)), 'raw1');\n  assert.true(isRawJSON(rawJSON(null)), 'raw2');\n  assert.false(isRawJSON(freeze({ rawJSON: '123' })), 'fake');\n  assert.false(isRawJSON(undefined), 'undefined');\n  assert.false(isRawJSON(null), 'null');\n  assert.false(isRawJSON(1), 'number');\n  assert.false(isRawJSON('qwe'), 'string');\n  assert.false(isRawJSON(true), 'bool');\n  assert.false(isRawJSON(Symbol('JSON.isRawJSON test')), 'sym');\n  assert.false(isRawJSON({}), 'object');\n  assert.false(isRawJSON([]), 'array');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.json.parse.js",
    "content": "// Some tests adopted from Test262 project and governed by the BSD license.\n// Copyright (c) 2012 Ecma International. All rights reserved.\n/* eslint-disable unicorn/escape-case -- testing */\nimport { DESCRIPTORS, REDEFINABLE_PROTO } from '../helpers/constants.js';\nimport parse from 'core-js-pure/es/json/parse';\nimport defineProperty from 'core-js-pure/es/object/define-property';\nimport hasOwn from 'core-js-pure/es/object/has-own';\nimport keys from 'core-js-pure/es/object/keys';\nimport Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('JSON.parse', assert => {\n  assert.isFunction(parse);\n  assert.arity(parse, 2);\n  assert.name(parse, 'parse');\n\n  for (const [reviver, note] of [[undefined, 'without reviver'], [(key, value) => value, 'with reviver']]) {\n    assert.throws(() => parse('12\\t\\r\\n 34', reviver), SyntaxError, `15.12.1.1-0-1 ${ note }`); // should produce a syntax error as whitespace results in two tokens\n    assert.throws(() => parse('\\u000b1234', reviver), SyntaxError, `15.12.1.1-0-2 ${ note }`); // should produce a syntax error\n    assert.throws(() => parse('\\u000c1234', reviver), SyntaxError, `15.12.1.1-0-3 ${ note }`); // should produce a syntax error\n    assert.throws(() => parse('\\u00a01234', reviver), SyntaxError, `15.12.1.1-0-4 ${ note }`); // should produce a syntax error\n    assert.throws(() => parse('\\u200b1234', reviver), SyntaxError, `15.12.1.1-0-5 ${ note }`); // should produce a syntax error\n    assert.throws(() => parse('\\ufeff1234', reviver), SyntaxError, `15.12.1.1-0-6 ${ note }`); // should produce a syntax error\n    assert.throws(() => parse('\\u2028\\u20291234', reviver), SyntaxError, `15.12.1.1-0-8 ${ note }`); // should produce a syntax error\n    assert.notThrows(() => parse('\\t\\r \\n{\\t\\r \\n\"property\"\\t\\r \\n:\\t\\r \\n{\\t\\r \\n}\\t\\r \\n,\\t\\r \\n\"prop2\"\\t\\r \\n:\\t\\r \\n' +\n      '[\\t\\r \\ntrue\\t\\r \\n,\\t\\r \\nnull\\t\\r \\n,123.456\\t\\r \\n]\\t\\r \\n}\\t\\r \\n', reviver), SyntaxError, `15.12.1.1-0-9 ${ note }`); // should JSON parse without error\n    assert.same(parse('\\t1234', reviver), 1234, `15.12.1.1-g1-1-1 ${ note }`); // '<TAB> should be ignored'\n    assert.throws(() => parse('12\\t34', reviver), SyntaxError, `15.12.1.1-g1-1-2 ${ note }`); // <TAB> should produce a syntax error as whitespace results in two tokens\n    assert.same(parse('\\r1234', reviver), 1234, `15.12.1.1-g1-2-1 ${ note }`); // '<CR> should be ignored'\n    assert.throws(() => parse('12\\r34', reviver), SyntaxError, `15.12.1.1-g1-2-2 ${ note }`); // <CR> should produce a syntax error as whitespace results in two tokens\n    assert.same(parse('\\n1234', reviver), 1234, `15.12.1.1-g1-3-1 ${ note }`); // '<LF> should be ignored'\n    assert.throws(() => parse('12\\n34', reviver), SyntaxError, `15.12.1.1-g1-3-2 ${ note }`); // <LF> should produce a syntax error as whitespace results in two tokens\n    assert.same(parse(' 1234', reviver), 1234, `15.12.1.1-g1-4-1 ${ note }`); // '<SP> should be ignored'\n    assert.throws(() => parse('12 34', reviver), SyntaxError, `15.12.1.1-g1-4-2 ${ note }`); // <SP> should produce a syntax error as whitespace results in two tokens\n    assert.same(parse('\"abc\"', reviver), 'abc', `15.12.1.1-g2-1 ${ note }`);\n    assert.throws(() => parse(\"'abc'\", reviver), SyntaxError, `15.12.1.1-g2-2 ${ note }`);\n    assert.throws(() => parse('\\\\u0022abc\\\\u0022', reviver), SyntaxError, `15.12.1.1-g2-3 ${ note }`);\n    assert.throws(() => parse('\"abc\\'', reviver), SyntaxError, `15.12.1.1-g2-4 ${ note }`);\n    assert.same(parse('\"\"', reviver), '', `15.12.1.1-g2-5 ${ note }`);\n    // invalid string characters should produce a syntax error\n    assert.throws(() => parse('\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\"', reviver), SyntaxError, `15.12.1.1-g4-1 ${ note }`);\n    assert.throws(() => parse('\"\\u0008\\u0009\\u000a\\u000b\\u000c\\u000d\\u000e\\u000f\"', reviver), SyntaxError, `15.12.1.1-g4-2 ${ note }`);\n    assert.throws(() => parse('\"\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\"', reviver), SyntaxError, `15.12.1.1-g4-3 ${ note }`);\n    assert.throws(() => parse('\"\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f\"', reviver), SyntaxError, `15.12.1.1-g4-4 ${ note }`);\n    assert.same(parse('\"\\\\u0058\"', reviver), 'X', `15.12.1.1-g5-1 ${ note }`);\n    assert.throws(() => parse('\"\\\\u005\"', reviver), SyntaxError, `15.12.1.1-g5-2 ${ note }`);\n    assert.throws(() => parse('\"\\\\u0X50\"', reviver), SyntaxError, `15.12.1.1-g5-3 ${ note }`);\n    assert.same(parse('\"\\\\/\"', reviver), '/', `15.12.1.1-g6-1 ${ note }`);\n    assert.same(parse('\"\\\\\\\\\"', reviver), '\\\\', `15.12.1.1-g6-2 ${ note }`);\n    assert.same(parse('\"\\\\b\"', reviver), '\\b', `15.12.1.1-g6-3 ${ note }`);\n    assert.same(parse('\"\\\\f\"', reviver), '\\f', `15.12.1.1-g6-4 ${ note }`);\n    assert.same(parse('\"\\\\n\"', reviver), '\\n', `15.12.1.1-g6-5 ${ note }`);\n    assert.same(parse('\"\\\\r\"', reviver), '\\r', `15.12.1.1-g6-6 ${ note }`);\n    assert.same(parse('\"\\\\t\"', reviver), '\\t', `15.12.1.1-g6-7 ${ note }`);\n\n    const nullChars = [\n      '\"\\u0000\"',\n      '\"\\u0001\"',\n      '\"\\u0002\"',\n      '\"\\u0003\"',\n      '\"\\u0004\"',\n      '\"\\u0005\"',\n      '\"\\u0006\"',\n      '\"\\u0007\"',\n      '\"\\u0008\"',\n      '\"\\u0009\"',\n      '\"\\u000A\"',\n      '\"\\u000B\"',\n      '\"\\u000C\"',\n      '\"\\u000D\"',\n      '\"\\u000E\"',\n      '\"\\u000F\"',\n      '\"\\u0010\"',\n      '\"\\u0011\"',\n      '\"\\u0012\"',\n      '\"\\u0013\"',\n      '\"\\u0014\"',\n      '\"\\u0015\"',\n      '\"\\u0016\"',\n      '\"\\u0017\"',\n      '\"\\u0018\"',\n      '\"\\u0019\"',\n      '\"\\u001A\"',\n      '\"\\u001B\"',\n      '\"\\u001C\"',\n      '\"\\u001D\"',\n      '\"\\u001E\"',\n      '\"\\u001F\"',\n    ];\n\n    for (let i = 0; i < nullChars.length; i++) {\n      assert.throws(() => parse(`{${ nullChars[i] } : \"John\" }`, reviver), SyntaxError, `15.12.2-2-1-${ i } ${ note }`);\n      assert.throws(() => parse(`{${ nullChars[i] }name : \"John\" }`, reviver), SyntaxError, `15.12.2-2-2-${ i } ${ note }`);\n      assert.throws(() => parse(`{name${ nullChars[i] } : \"John\" }`, reviver), SyntaxError, `15.12.2-2-3-${ i } ${ note }`);\n      assert.throws(() => parse(`{${ nullChars[i] }name${ nullChars[i] } : \"John\" }`, reviver), SyntaxError, `15.12.2-2-4-${ i } ${ note }`);\n      assert.throws(() => parse(`{na${ nullChars[i] }me : \"John\" }`, reviver), SyntaxError, `15.12.2-2-5-${ i } ${ note }`);\n      assert.throws(() => parse(`{ \"name\" : ${ nullChars[i] } }`, reviver), SyntaxError, `15.12.2-2-6-${ i } ${ note }`);\n      assert.throws(() => parse(`{ \"name\" : ${ nullChars[i] }John }`, reviver), SyntaxError, `15.12.2-2-7-${ i } ${ note }`);\n      assert.throws(() => parse(`{ \"name\" : John${ nullChars[i] } }`, reviver), SyntaxError, `15.12.2-2-8-${ i } ${ note }`);\n      assert.throws(() => parse(`{ \"name\" : ${ nullChars[i] }John${ nullChars[i] } }`, reviver), SyntaxError, `15.12.2-2-9-${ i } ${ note }`);\n      assert.throws(() => parse(`{ \"name\" : Jo${ nullChars[i] }hn }`, reviver), SyntaxError, `15.12.2-2-10-${ i } ${ note }`);\n    }\n\n    if (REDEFINABLE_PROTO) {\n      // eslint-disable-next-line no-proto -- testing\n      assert.same(parse('{ \"__proto__\": 1, \"__proto__\": 2 }', reviver).__proto__, 2, `duplicate proto ${ note }`);\n    }\n\n    assert.throws(() => parse('\\u16801', reviver), SyntaxError, `15.12.1.1-0-7-1 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u180e1', reviver), SyntaxError, `15.12.1.1-0-7-2 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20001', reviver), SyntaxError, `15.12.1.1-0-7-3 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20011', reviver), SyntaxError, `15.12.1.1-0-7-4 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20021', reviver), SyntaxError, `15.12.1.1-0-7-5 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20031', reviver), SyntaxError, `15.12.1.1-0-7-6 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20041', reviver), SyntaxError, `15.12.1.1-0-7-7 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20051', reviver), SyntaxError, `15.12.1.1-0-7-8 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20061', reviver), SyntaxError, `15.12.1.1-0-7-9 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20071', reviver), SyntaxError, `15.12.1.1-0-7-10 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20081', reviver), SyntaxError, `15.12.1.1-0-7-11 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u20091', reviver), SyntaxError, `15.12.1.1-0-7-12 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u200a1', reviver), SyntaxError, `15.12.1.1-0-7-13 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u202f1', reviver), SyntaxError, `15.12.1.1-0-7-14 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u205f1', reviver), SyntaxError, `15.12.1.1-0-7-15 ${ note }`); // invalid whitespace\n    assert.throws(() => parse('\\u30001', reviver), SyntaxError, `15.12.1.1-0-7-16 ${ note }`); // invalid whitespace\n\n    assert.same(parse('-0', reviver), -0, `negative-zero-1 ${ note }`);\n    assert.same(parse(' \\n-0', reviver), -0, `negative-zero-2 ${ note }`);\n    assert.same(parse('-0  \\t', reviver), -0, `negative-zero-3 ${ note }`);\n    assert.same(parse('\\n\\t -0\\n   ', reviver), -0, `negative-zero-4 ${ note }`);\n    assert.same(parse(-0, reviver), 0, `negative-zero-5 ${ note }`);\n\n    assert.throws(() => parse('1.', reviver), SyntaxError, `number-fraction-no-digits-1 ${ note }`);\n    assert.throws(() => parse('-0.', reviver), SyntaxError, `number-fraction-no-digits-2 ${ note }`);\n    assert.throws(() => parse('1.e5', reviver), SyntaxError, `number-fraction-no-digits-3 ${ note }`);\n    assert.throws(() => parse('[1.,2]', reviver), SyntaxError, `number-fraction-no-digits-4 ${ note }`);\n\n    assert.throws(() => parse('{', reviver), SyntaxError, `unterminated-object-1 ${ note }`);\n    assert.throws(() => parse('{\"a\":1,', reviver), SyntaxError, `unterminated-object-2 ${ note }`);\n    assert.throws(() => parse('[', reviver), SyntaxError, `unterminated-array-1 ${ note }`);\n    assert.throws(() => parse('[1,', reviver), SyntaxError, `unterminated-array-2 ${ note }`);\n\n    assert.throws(() => parse(undefined, reviver), SyntaxError, `undefined ${ note }`);\n    assert.throws(() => parse(Symbol('JSON.parse test'), reviver), TypeError, `symbol ${ note }`);\n    assert.same(parse(null, reviver), null, `null ${ note }`);\n    assert.same(parse(false, reviver), false, `false ${ note }`);\n    assert.same(parse(true, reviver), true, `true ${ note }`);\n    assert.same(parse(0, reviver), 0, `0 ${ note }`);\n    assert.same(parse(3.14, reviver), 3.14, `3.14 ${ note }`);\n\n    assert.same(parse({\n      toString() {\n        return '\"string\"';\n      },\n      valueOf() {\n        return '\"default_or_number\"';\n      },\n    }, reviver), 'string', `text-object ${ note }`);\n\n    assert.throws(() => parse({\n      toString: null,\n      valueOf() {\n        throw new EvalError('t262');\n      },\n    }, reviver), EvalError, `text-object-abrupt-1 ${ note }`);\n\n    assert.throws(() => parse({\n      toString() {\n        throw new EvalError('t262');\n      },\n    }, reviver), EvalError, `text-object-abrupt-2 ${ note }`);\n  }\n\n  // eslint-disable-next-line no-extend-native -- testing\n  Array.prototype[1] = 3;\n  const arr1 = parse('[1, 2]', function (key, value) {\n    if (key === '0') delete this[1];\n    return value;\n  });\n  delete Array.prototype[1];\n  assert.same(arr1[0], 1, 'reviver-array-get-prop-from-prototype-1');\n  assert.true(hasOwn(arr1, '1'), 'reviver-array-get-prop-from-prototype-2');\n  assert.same(arr1[1], 3, 'reviver-array-get-prop-from-prototype-3');\n\n  // eslint-disable-next-line no-extend-native -- testing\n  Object.prototype.b = 3;\n  const obj1 = parse('{\"a\": 1, \"b\": 2}', function (key, value) {\n    if (key === 'a') delete this.b;\n    return value;\n  });\n  delete Object.prototype.b;\n  assert.same(obj1.a, 1, 'reviver-object-get-prop-from-prototype-1');\n  assert.true(hasOwn(obj1, 'b'), 'reviver-object-get-prop-from-prototype-2');\n  assert.same(obj1.b, 3, 'reviver-object-get-prop-from-prototype-3');\n\n  if (DESCRIPTORS) {\n    const arr2 = parse('[1, 2]', function (key, value) {\n      if (key === '0') defineProperty(this, '1', { configurable: false });\n      if (key === '1') return 22;\n      return value;\n    });\n    assert.same(arr2[0], 1, 'reviver-array-non-configurable-prop-create-1');\n    assert.same(arr2[1], 2, 'reviver-array-non-configurable-prop-create-2');\n\n    const arr3 = parse('[1, 2]', function (key, value) {\n      if (key === '0') defineProperty(this, '1', { configurable: false });\n      if (key === '1') return;\n      return value;\n    });\n    assert.same(arr3[0], 1, 'reviver-array-non-configurable-prop-delete-1');\n    assert.true(hasOwn(arr3, '1'), 'reviver-array-non-configurable-prop-delete-2');\n    assert.same(arr3[1], 2, 'reviver-array-non-configurable-prop-delete-3');\n\n    const obj2 = parse('{\"a\": 1, \"b\": 2}', function (key, value) {\n      if (key === 'a') defineProperty(this, 'b', { configurable: false });\n      if (key === 'b') return 22;\n      return value;\n    });\n    assert.same(obj2.a, 1, 'reviver-object-non-configurable-prop-create-1');\n    assert.same(obj2.b, 2, 'reviver-object-non-configurable-prop-create-2');\n\n    const obj3 = parse('{\"a\": 1, \"b\": 2}', function (key, value) {\n      if (key === 'a') defineProperty(this, 'b', { configurable: false });\n      if (key === 'b') return;\n      return value;\n    });\n    assert.same(obj3.a, 1, 'reviver-object-non-configurable-prop-delete-1');\n    assert.true(hasOwn(obj3, 'b'), 'reviver-object-non-configurable-prop-delete-2');\n    assert.same(obj3.b, 2, 'reviver-object-non-configurable-prop-delete-3');\n\n    assert.throws(() => parse('[0,0]', function () {\n      defineProperty(this, '1', { get: () => { throw new EvalError('t262'); } });\n    }), EvalError, 'reviver-get-name-err');\n  }\n\n  assert.throws(() => parse('0', () => { throw new EvalError('t262'); }), EvalError, 'reviver-call-err');\n\n  // FF20- enumeration order issue\n  if (keys({ k: 1, 2: 3 })[0] === '2') {\n    const calls = [];\n    parse('{\"p1\":0,\"p2\":0,\"p1\":0,\"2\":0,\"1\":0}', (name, val) => {\n      calls.push(name);\n      return val;\n    });\n    // The empty string is the _rootName_ in JSON.parse\n    assert.arrayEqual(calls, ['1', '2', 'p1', 'p2', ''], 'reviver-call-order');\n  }\n\n  assert.throws(() => parse(), SyntaxError, 'no args');\n});\n\nQUnit.test('JSON.parse source access', assert => {\n  const spy = (k, v, { source: $source }) => source = $source;\n  let source;\n  parse('1234', spy);\n  assert.same(source, '1234', '1234');\n  parse('\"1234\"', spy);\n  assert.same(source, '\"1234\"', '\"1234\"');\n  parse('null', spy);\n  assert.same(source, 'null', 'null');\n  parse('true', spy);\n  assert.same(source, 'true', 'true');\n  parse('false', spy);\n  assert.same(source, 'false', 'false');\n  parse('{}', spy);\n  assert.same(source, undefined, '{}');\n  parse('[]', spy);\n  assert.same(source, undefined, '[]');\n  parse('9007199254740993', spy);\n  assert.same(source, '9007199254740993', '9007199254740993');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.json.raw-json.js",
    "content": "import { FREEZING } from '../helpers/constants.js';\nimport rawJSON from 'core-js-pure/es/json/raw-json';\nimport stringify from 'core-js-pure/es/json/stringify';\nimport isFrozen from 'core-js-pure/es/object/is-frozen';\nimport hasOwn from 'core-js-pure/es/object/has-own';\n\nQUnit.test('JSON.rawJSON', assert => {\n  assert.isFunction(rawJSON);\n  assert.arity(rawJSON, 1);\n  assert.name(rawJSON, 'rawJSON');\n\n  const raw = rawJSON(1);\n  assert.true(hasOwn(raw, 'rawJSON'), 'own rawJSON');\n  assert.same(raw.rawJSON, '1', 'is string 1');\n  if (FREEZING) assert.true(isFrozen(raw), 'frozen');\n\n  assert.same(stringify(rawJSON('\"qwe\"')), '\"qwe\"');\n  assert.same(stringify(rawJSON('null')), 'null');\n  assert.same(stringify(rawJSON('true')), 'true');\n  assert.same(stringify(rawJSON('9007199254740993')), '9007199254740993');\n  assert.same(stringify({ key: rawJSON('9007199254740993') }), '{\"key\":9007199254740993}');\n  assert.same(stringify([rawJSON('9007199254740993')]), '[9007199254740993]');\n\n  assert.throws(() => rawJSON('\"qwe'), SyntaxError, 'invalid 1');\n  assert.throws(() => rawJSON({}), SyntaxError, 'invalid 2');\n  assert.throws(() => rawJSON(''), SyntaxError, 'invalid 3');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.json.stringify.js",
    "content": "// Some tests adopted from Test262 project and governed by the BSD license.\n// Copyright (c) 2012 Ecma International. All rights reserved.\n/* eslint-disable es/no-bigint,unicorn/no-hex-escape -- testing */\nimport { DESCRIPTORS, GLOBAL } from '../helpers/constants.js';\nimport stringify from 'core-js-pure/es/json/stringify';\nimport Symbol from 'core-js-pure/es/symbol';\nimport defineProperty from 'core-js-pure/es/object/define-property';\nimport keys from 'core-js-pure/es/object/keys';\nimport values from 'core-js-pure/es/object/values';\n\nif (GLOBAL.JSON?.stringify) {\n  QUnit.test('JSON.stringify', assert => {\n    assert.isFunction(stringify);\n    assert.arity(stringify, 3);\n    assert.name(stringify, 'stringify');\n\n    assert.same(stringify({ a: 1, b: 2 }, []), '{}', 'replacer-array-empty-1');\n    assert.same(stringify({ a: 1, b: { c: 2 } }, []), '{}', 'replacer-array-empty-2');\n    assert.same(stringify([1, { a: 2 }], []), '[1,{}]', 'replacer-array-empty-3');\n\n    const num1 = new Number(10);\n    num1.toString = () => 'toString';\n    num1.valueOf = () => { throw new EvalError('should not be called'); };\n    assert.same(stringify({\n      10: 1,\n      toString: 2,\n      valueOf: 3,\n    }, [num1]), '{\"toString\":2}', 'replacer-array-number-object');\n\n    const obj1 = {\n      0: 0,\n      1: 1,\n      '-4': 2,\n      0.3: 3,\n      '-Infinity': 4,\n      NaN: 5,\n    };\n    assert.same(stringify(obj1, [\n      -0,\n      1,\n      -4,\n      0.3,\n      -Infinity,\n      NaN,\n    ]), stringify(obj1), 'replacer-array-number');\n\n    const str1 = new String('str');\n    str1.toString = () => 'toString';\n    str1.valueOf = () => { throw new EvalError('should not be called'); };\n    assert.same(stringify({\n      str: 1,\n      toString: 2,\n      valueOf: 3,\n    }, [str1]), '{\"toString\":2}', 'replacer-array-string-object');\n\n    assert.same(stringify({ undefined: 1 }, [undefined]), '{}', 'replacer-array-undefined-1');\n    // eslint-disable-next-line no-sparse-arrays -- testing\n    assert.same(stringify({ key: 1, undefined: 2 }, [,,,]), '{}', 'replacer-array-undefined-2');\n    const sparse = Array(3);\n    sparse[1] = 'key';\n    assert.same(stringify({ undefined: 1, key: 2 }, sparse), '{\"key\":2}', 'replacer-array-undefined-3');\n\n    assert.throws(() => stringify({}, () => { throw new EvalError('should not be called'); }), EvalError, 'replacer-function-abrupt');\n\n    const calls = [];\n    const b1 = [1, 2];\n    const b2 = { c1: true, c2: false };\n    const a1 = {\n      b1,\n      b2: {\n        toJSON() { return b2; },\n      },\n    };\n    const obj2 = { a1, a2: 'a2' };\n    assert.same(stringify(obj2, function (key, value) {\n      if (key !== '') calls.push([this, key, value]);\n      return value;\n    }), stringify(obj2), 'replacer-function-arguments-1');\n    assert.arrayEqual(calls[0], [obj2, 'a1', a1], 'replacer-function-arguments-2');\n    assert.arrayEqual(calls[1], [a1, 'b1', b1], 'replacer-function-arguments-3');\n    assert.arrayEqual(calls[2], [b1, '0', 1], 'replacer-function-arguments-4');\n    assert.arrayEqual(calls[3], [b1, '1', 2], 'replacer-function-arguments-5');\n    assert.arrayEqual(calls[4], [a1, 'b2', b2], 'replacer-function-arguments-6');\n    assert.arrayEqual(calls[5], [b2, 'c1', true], 'replacer-function-arguments-7');\n    assert.arrayEqual(calls[6], [b2, 'c2', false], 'replacer-function-arguments-8');\n    assert.arrayEqual(calls[7], [obj2, 'a2', 'a2'], 'replacer-function-arguments-9');\n\n    const circular1 = [{}];\n    assert.throws(() => stringify(circular1, () => circular1), TypeError, 'replacer-function-array-circular');\n\n    const direct1 = { prop: {} };\n    assert.throws(() => stringify(direct1, () => direct1), TypeError, 'replacer-function-object-circular-1');\n    const indirect1 = { p1: { p2: {} } };\n    assert.throws(() => stringify(indirect1, (key, value) => key === 'p2' ? indirect1 : value), TypeError, 'replacer-function-object-circular-2');\n\n    assert.same(stringify(1, () => { /* empty */ }), undefined, 'replacer-function-result-undefined-1');\n    assert.same(stringify([1], () => { /* empty */ }), undefined, 'replacer-function-result-undefined-2');\n    assert.same(stringify({ prop: 1 }, () => { /* empty */ }), undefined, 'replacer-function-result-undefined-3');\n    assert.same(stringify([1], (key, value) => value === 1 ? undefined : value), '[null]', 'replacer-function-result-undefined-4');\n    assert.same(stringify({ prop: 1 }, (key, value) => value === 1 ? undefined : value), '{}', 'replacer-function-result-undefined-5');\n    assert.same(stringify({ a: { b: [1] } }, (key, value) => value === 1 ? undefined : value), '{\"a\":{\"b\":[null]}}', 'replacer-function-result-undefined-6');\n\n    assert.same(stringify(null, (key, value) => {\n      assert.same(value, null);\n      switch (key) {\n        case '': return { a1: null, a2: null };\n        case 'a1': return { b1: null, b2: null };\n        case 'a2': return 'a2';\n        case 'b1': return [null, null];\n        case 'b2': return { c1: null, c2: null };\n        case '0': return 1;\n        case '1': return 2;\n        case 'c1': return true;\n        case 'c2': return false;\n      } throw new EvalError('unreachable');\n    }), stringify({\n      a1: {\n        b1: [1, 2],\n        b2: {\n          c1: true,\n          c2: false,\n        },\n      },\n      a2: 'a2',\n    }), 'replacer-function-result');\n\n    assert.same(stringify({\n      toJSON() { return 'toJSON'; },\n    }, (_key, value) => `${ value }|replacer`), '\"toJSON|replacer\"', 'replacer-function-tojson-1');\n\n    assert.same(stringify({\n      toJSON() { return { calls: 'toJSON' }; },\n    }, (_key, value) => {\n      if (value && value.calls) value.calls += '|replacer';\n      return value;\n    }), '{\"calls\":\"toJSON|replacer\"}', 'replacer-function-tojson-2');\n\n    const obj4 = { key: [1] };\n    const json1 = '{\"key\":[1]}';\n    assert.same(stringify(obj4, {}), json1, 'replacer-wrong-type-1');\n    assert.same(stringify(obj4, new String('str')), json1, 'replacer-wrong-type-2');\n    assert.same(stringify(obj4, new Number(6.1)), json1, 'replacer-wrong-type-3');\n    assert.same(stringify(obj4, null), json1, 'replacer-wrong-type-4');\n    assert.same(stringify(obj4, ''), json1, 'replacer-wrong-type-5');\n    assert.same(stringify(obj4, 0), json1, 'replacer-wrong-type-6');\n    assert.same(stringify(obj4, Symbol('stringify replacer test')), json1, 'replacer-wrong-type-7');\n    assert.same(stringify(obj4, true), json1, 'replacer-wrong-type-8');\n\n    const obj5 = {\n      a1: {\n        b1: [1, 2, 3, 4],\n        b2: {\n          c1: 1,\n          c2: 2,\n        },\n      },\n      a2: 'a2',\n    };\n\n    assert.same(stringify(obj5, null, -1.99999), stringify(obj5, null, -1), 'space-number-float-1');\n    assert.same(stringify(obj5, null, new Number(5.11111)), stringify(obj5, null, 5), 'space-number-float-2');\n    assert.same(stringify(obj5, null, 6.99999), stringify(obj5, null, 6), 'space-number-float-3');\n\n    assert.same(stringify(obj5, null, new Number(1)), stringify(obj5, null, 1), 'space-number-object-1');\n    const num2 = new Number(1);\n    num2.toString = () => { throw new EvalError('should not be called'); };\n    num2.valueOf = () => 3;\n    assert.same(stringify(obj5, null, num2), stringify(obj5, null, 3), 'space-number-object-2');\n    const abrupt1 = new Number(4);\n    abrupt1.toString = () => { throw new EvalError('t262'); };\n    abrupt1.valueOf = () => { throw new EvalError('t262'); };\n    assert.throws(() => stringify(obj5, null, abrupt1), EvalError, 'space-number-object-3');\n\n    assert.same(stringify(obj5, null, new Number(-5)), stringify(obj5, null, 0), 'space-number-range-1');\n    assert.same(stringify(obj5, null, 10), stringify(obj5, null, 100), 'space-number-range-2');\n\n    assert.same(stringify(obj5, null, 0), stringify(obj5, null, ''), 'space-number-1');\n    assert.same(stringify(obj5, null, 4), stringify(obj5, null, '    '), 'space-number-2');\n\n    assert.same(stringify(obj5, null, new String('xxx')), stringify(obj5, null, 'xxx'), 'space-string-object-1');\n    const str2 = new String('xxx');\n    str2.toString = () => '---';\n    str2.valueOf = () => { throw new EvalError('should not be called'); };\n    assert.same(stringify(obj5, null, str2), stringify(obj5, null, '---'), 'space-string-object-2');\n    const abrupt2 = new String('xxx');\n    abrupt2.toString = () => { throw new EvalError('t262'); };\n    abrupt2.valueOf = () => { throw new EvalError('t262'); };\n    assert.throws(() => stringify(obj5, null, abrupt2), EvalError, 'space-string-object-3');\n\n    assert.same(stringify(obj5, null, '0123456789xxxxxxxxx'), stringify(obj5, null, '0123456789'), 'space-string-range');\n\n    assert.same(stringify(obj5, null, ''), stringify(obj5), 'space-string-1');\n    assert.same(stringify(obj5, null, '  '), `{\n  \"a1\": {\n    \"b1\": [\n      1,\n      2,\n      3,\n      4\n    ],\n    \"b2\": {\n      \"c1\": 1,\n      \"c2\": 2\n    }\n  },\n  \"a2\": \"a2\"\n}`, 'space-string-2');\n\n    assert.same(stringify(obj5), stringify(obj5, null, null), 'space-wrong-type-1');\n    assert.same(stringify(obj5), stringify(obj5, null, true), 'space-wrong-type-2');\n    assert.same(stringify(obj5), stringify(obj5, null, new Boolean(false)), 'space-wrong-type-3');\n    assert.same(stringify(obj5), stringify(obj5, null, Symbol('stringify space test')), 'space-wrong-type-4');\n    assert.same(stringify(obj5), stringify(obj5, null, {}), 'space-wrong-type-5');\n\n    const direct2 = [];\n    direct2.push(direct2);\n    assert.throws(() => stringify(direct2), TypeError, 'value-array-circular-1');\n    const indirect2 = [];\n    indirect2.push([[indirect2]]);\n    assert.throws(() => stringify(indirect2), TypeError, 'value-array-circular-2');\n\n    if (typeof BigInt == 'function') {\n      assert.same(stringify(BigInt(0), (k, v) => typeof v === 'bigint' ? 'bigint' : v), '\"bigint\"', 'value-bigint-replacer-1');\n      assert.same(stringify({ x: BigInt(0) }, (k, v) => typeof v === 'bigint' ? 'bigint' : v), '{\"x\":\"bigint\"}', 'value-bigint-replacer-2');\n      assert.throws(() => stringify(BigInt(0)), TypeError, 'value-bigint-1');\n      assert.throws(() => stringify(Object(BigInt(0))), TypeError, 'value-bigint-2');\n      assert.throws(() => stringify({ x: BigInt(0) }), TypeError, 'value-bigint-3');\n    }\n\n    assert.same(stringify(new Boolean(true)), 'true', 'value-boolean-object-1');\n    assert.same(stringify({\n      toJSON() {\n        return { key: new Boolean(false) };\n      },\n    }), '{\"key\":false}', 'value-boolean-object-2');\n    assert.same(stringify([1], (k, v) => v === 1 ? new Boolean(true) : v), '[true]', 'value-boolean-object-3');\n\n    assert.same(stringify(() => { /* empty */ }), undefined, 'value-function-1');\n    assert.same(stringify([() => { /* empty */ }]), '[null]', 'value-function-2');\n    assert.same(stringify({ key() { /* empty */ } }), '{}', 'value-function-3');\n\n    assert.same(stringify(-0), '0', 'value-number-negative-zero-1');\n    assert.same(stringify(['-0', 0, -0]), '[\"-0\",0,0]', 'value-number-negative-zero-2');\n    assert.same(stringify({ key: -0 }), '{\"key\":0}', 'value-number-negative-zero-3');\n\n    assert.same(stringify(Infinity), 'null', 'value-number-non-finite-1');\n    assert.same(stringify({ key: -Infinity }), '{\"key\":null}', 'value-number-non-finite-2');\n    assert.same(stringify([NaN]), '[null]', 'value-number-non-finite-3');\n\n    assert.same(stringify(new Number(8.5)), '8.5', 'value-number-object-1');\n    assert.same(stringify(['str'], (key, value) => {\n      if (value === 'str') {\n        const num = new Number(42);\n        num.toString = () => { throw new EvalError('should not be called'); };\n        num.valueOf = () => 2;\n        return num;\n      } return value;\n    }), '[2]', 'value-number-object-2');\n    assert.throws(() => stringify({\n      key: {\n        toJSON() {\n          const num = new Number(3.14);\n          num.toString = () => { throw new EvalError('t262'); };\n          num.valueOf = () => { throw new EvalError('t262'); };\n          return num;\n        },\n      },\n    }), EvalError, 'value-number-object-3');\n\n    const direct3 = { prop: null };\n    direct3.prop = direct3;\n    assert.throws(() => stringify(direct3), TypeError, 'value-object-circular-1');\n    const indirect3 = { p1: { p2: {} } };\n    indirect3.p1.p2.p3 = indirect3;\n    assert.throws(() => stringify(indirect3), TypeError, 'value-object-circular-2');\n\n    assert.same(stringify(null), 'null', 'null');\n    assert.same(stringify(true), 'true', 'true');\n    assert.same(stringify(false), 'false', 'false');\n    assert.same(stringify('str'), '\"str\"', '\"str\"');\n    assert.same(stringify(123), '123', '123');\n    assert.same(stringify(undefined), undefined, 'undefined');\n\n    const charToJson = {\n      '\"': '\\\\\"',\n      '\\\\': '\\\\\\\\',\n      '\\x00': '\\\\u0000',\n      '\\x01': '\\\\u0001',\n      '\\x02': '\\\\u0002',\n      '\\x03': '\\\\u0003',\n      '\\x04': '\\\\u0004',\n      '\\x05': '\\\\u0005',\n      '\\x06': '\\\\u0006',\n      '\\x07': '\\\\u0007',\n      '\\x08': '\\\\b',\n      '\\x09': '\\\\t',\n      '\\x0A': '\\\\n',\n      '\\x0B': '\\\\u000b',\n      '\\x0C': '\\\\f',\n      '\\x0D': '\\\\r',\n      '\\x0E': '\\\\u000e',\n      '\\x0F': '\\\\u000f',\n      '\\x10': '\\\\u0010',\n      '\\x11': '\\\\u0011',\n      '\\x12': '\\\\u0012',\n      '\\x13': '\\\\u0013',\n      '\\x14': '\\\\u0014',\n      '\\x15': '\\\\u0015',\n      '\\x16': '\\\\u0016',\n      '\\x17': '\\\\u0017',\n      '\\x18': '\\\\u0018',\n      '\\x19': '\\\\u0019',\n      '\\x1A': '\\\\u001a',\n      '\\x1B': '\\\\u001b',\n      '\\x1C': '\\\\u001c',\n      '\\x1D': '\\\\u001d',\n      '\\x1E': '\\\\u001e',\n      '\\x1F': '\\\\u001f',\n    };\n    const chars = keys(charToJson).join('');\n    const charsReversed = keys(charToJson).reverse().join('');\n    const jsonChars = values(charToJson).join('');\n    const jsonCharsReversed = values(charToJson).reverse().join('');\n    const json = stringify({ [`name${ chars }${ charsReversed }`]: `${ charsReversed }${ chars }value` });\n    for (const chr in charToJson) {\n      const count = json.split(charToJson[chr]).length - 1;\n      assert.same(count, 4, `Every ASCII 0x${ chr.charCodeAt(0).toString(16) } serializes to ${ charToJson[chr] }`);\n    }\n    assert.same(\n      json,\n      `{\"name${ jsonChars }${ jsonCharsReversed }\":\"${ jsonCharsReversed }${ jsonChars }value\"}`,\n      'JSON.stringify(objectUsingControlCharacters)',\n    );\n\n    assert.same(stringify('\\uD834'), '\"\\\\ud834\"', 'JSON.stringify(\"\\\\uD834\")');\n    assert.same(stringify('\\uDF06'), '\"\\\\udf06\"', 'JSON.stringify(\"\\\\uDF06\")');\n    assert.same(stringify('\\uD834\\uDF06'), '\"𝌆\"', 'JSON.stringify(\"\\\\uD834\\\\uDF06\")');\n    assert.same(stringify('\\uD834\\uD834\\uDF06\\uD834'), '\"\\\\ud834𝌆\\\\ud834\"', 'JSON.stringify(\"\\\\uD834\\\\uD834\\\\uDF06\\\\uD834\")');\n    assert.same(stringify('\\uD834\\uD834\\uDF06\\uDF06'), '\"\\\\ud834𝌆\\\\udf06\"', 'JSON.stringify(\"\\\\uD834\\\\uD834\\\\uDF06\\\\uDF06\")');\n    assert.same(stringify('\\uDF06\\uD834\\uDF06\\uD834'), '\"\\\\udf06𝌆\\\\ud834\"', 'JSON.stringify(\"\\\\uDF06\\\\uD834\\\\uDF06\\\\uD834\")');\n    assert.same(stringify('\\uDF06\\uD834\\uDF06\\uDF06'), '\"\\\\udf06𝌆\\\\udf06\"', 'JSON.stringify(\"\\\\uDF06\\\\uD834\\\\uDF06\\\\uDF06\")');\n    assert.same(stringify('\\uDF06\\uD834'), '\"\\\\udf06\\\\ud834\"', 'JSON.stringify(\"\\\\uDF06\\\\uD834\")');\n    assert.same(stringify('\\uD834\\uDF06\\uD834\\uD834'), '\"𝌆\\\\ud834\\\\ud834\"', 'JSON.stringify(\"\\\\uD834\\\\uDF06\\\\uD834\\\\uD834\")');\n    assert.same(stringify('\\uD834\\uDF06\\uD834\\uDF06'), '\"𝌆𝌆\"', 'JSON.stringify(\"\\\\uD834\\\\uDF06\\\\uD834\\\\uDF06\")');\n    assert.same(stringify('\\uDF06\\uDF06\\uD834\\uD834'), '\"\\\\udf06\\\\udf06\\\\ud834\\\\ud834\"', 'JSON.stringify(\"\\\\uDF06\\\\uDF06\\\\uD834\\\\uD834\")');\n    assert.same(stringify('\\uDF06\\uDF06\\uD834\\uDF06'), '\"\\\\udf06\\\\udf06𝌆\"', 'JSON.stringify(\"\\\\uDF06\\\\uDF06\\\\uD834\\\\uDF06\")');\n\n    assert.same(stringify(new String('str')), '\"str\"', 'value-string-object-1');\n    assert.same(stringify({\n      key: {\n        toJSON() {\n          const str = new String('str');\n          str.toString = () => 'toString';\n          str.valueOf = () => { throw new EvalError('should not be called'); };\n          return str;\n        },\n      },\n    }), '{\"key\":\"toString\"}', 'value-string-object-2');\n    assert.throws(() => stringify([true], (key, value) => {\n      if (value === true) {\n        const str = new String('str');\n        str.toString = () => { throw new EvalError('t262'); };\n        str.valueOf = () => { throw new EvalError('t262'); };\n        return str;\n      } return value;\n    }), 'value-string-object-3');\n\n    assert.throws(() => stringify({\n      toJSON() { throw new EvalError('t262'); },\n    }), EvalError, 'value-tojson-abrupt-1');\n\n    let callCount = 0;\n    let $this, $key;\n    const obj6 = {\n      toJSON(key) {\n        callCount += 1;\n        $this = this;\n        $key = key;\n      },\n    };\n    assert.same(stringify(obj6), undefined, 'value-tojson-arguments-1');\n    assert.same(callCount, 1, 'value-tojson-arguments-2');\n    assert.same($this, obj6, 'value-tojson-arguments-3');\n    assert.same($key, '', 'value-tojson-arguments-4');\n    assert.same(stringify([1, obj6, 3]), '[1,null,3]', 'value-tojson-arguments-5');\n    assert.same(callCount, 2, 'value-tojson-arguments-6');\n    assert.same($this, obj6, 'value-tojson-arguments-7');\n    // some old implementations (like WebKit) could pass numbers as keys\n    // assert.same($key, '1', 'value-tojson-arguments-8');\n    assert.same(stringify({ key: obj6 }), '{}', 'value-tojson-arguments-9');\n    assert.same(callCount, 3, 'value-tojson-arguments-10');\n    assert.same($this, obj6, 'value-tojson-arguments-11');\n    assert.same($key, 'key', 'value-tojson-arguments-12');\n\n    const arr1 = [];\n    const circular2 = [arr1];\n    // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- testing\n    arr1.toJSON = () => circular2;\n    assert.throws(() => stringify(circular2), TypeError, 'value-tojson-array-circular');\n\n    assert.same(stringify({ toJSON: null }), '{\"toJSON\":null}', 'value-tojson-not-function-1');\n    assert.same(stringify({ toJSON: false }), '{\"toJSON\":false}', 'value-tojson-not-function-2');\n    assert.same(stringify({ toJSON: [] }), '{\"toJSON\":[]}', 'value-tojson-not-function-3');\n    assert.same(stringify({ toJSON: /re/ }), '{\"toJSON\":{}}', 'value-tojson-not-function-4');\n\n    const obj7 = {};\n    const circular3 = { prop: obj7 };\n    obj7.toJSON = () => circular3;\n    assert.throws(() => stringify(circular3), TypeError, 'value-tojson-object-circular');\n\n    assert.same(stringify({ toJSON() { return [false]; } }), '[false]', 'value-tojson-result-1');\n    const arr2 = [true];\n    // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- testing\n    arr2.toJSON = () => { /* empty */ };\n    assert.same(stringify(arr2), undefined, 'value-tojson-result-2');\n    const str3 = new String('str');\n    // eslint-disable-next-line es/no-nonstandard-string-prototype-properties -- testing\n    str3.toJSON = () => null;\n    assert.same(stringify({ key: str3 }), '{\"key\":null}', 'value-tojson-result-3');\n    const num3 = new Number(14);\n    // eslint-disable-next-line es/no-nonstandard-number-prototype-properties -- testing\n    num3.toJSON = () => ({ key: 7 });\n    assert.same(stringify([num3]), '[{\"key\":7}]', 'value-tojson-result-4');\n\n    if (DESCRIPTORS) {\n      // This getter will be triggered during enumeration, but the property it adds should not be enumerated.\n      /* IE issue\n      const o = defineProperty({\n        p1: 'p1',\n        p2: 'p2',\n        p3: 'p3',\n      }, 'add', {\n        enumerable: true,\n        get() {\n          o.extra = 'extra';\n          return 'add';\n        },\n      });\n      o.p4 = 'p4';\n      o[2] = '2';\n      o[0] = '0';\n      o[1] = '1';\n      delete o.p1;\n      delete o.p3;\n      o.p1 = 'p1';\n      assert.same(stringify(o), '{\"0\":\"0\",\"1\":\"1\",\"2\":\"2\",\"p2\":\"p2\",\"add\":\"add\",\"p4\":\"p4\",\"p1\":\"p1\"}', 'property-order');\n      */\n\n      let getCalls = 0;\n      assert.same(stringify(defineProperty({}, 'key', {\n        enumerable: true,\n        get() {\n          getCalls += 1;\n          return true;\n        },\n      }), ['key', 'key']), '{\"key\":true}', 'replacer-array-duplicates-1');\n      assert.same(getCalls, 1, 'replacer-array-duplicates-2');\n\n      /* old WebKit bug - however, fixing of this is not in priority\n      const obj3 = defineProperty({}, 'a', {\n        enumerable: true,\n        get() {\n          delete this.b;\n          return 1;\n        },\n      });\n      obj3.b = 2;\n      assert.same(stringify(obj3, (key, value) => {\n        if (key === 'b') {\n          assert.same(value, undefined, 'replacer-function-object-deleted-property-1');\n          return '<replaced>';\n        } return value;\n      }), '{\"a\":1,\"b\":\"<replaced>\"}', 'replacer-function-object-deleted-property-2');\n      */\n\n      assert.throws(() => stringify({ key: defineProperty(Array(1), '0', {\n        get() { throw new EvalError('t262'); },\n      }) }), EvalError, 'value-array-abrupt');\n\n      assert.throws(() => stringify(defineProperty({}, 'key', {\n        enumerable: true,\n        get() { throw new EvalError('t262'); },\n      })), EvalError, 'value-object-abrupt');\n\n      assert.throws(() => stringify(defineProperty({}, 'toJSON', {\n        get() { throw new EvalError('t262'); },\n      })), EvalError, 'value-tojson-abrupt-2');\n    }\n  });\n\n  QUnit.test('Symbols & JSON.stringify', assert => {\n    const symbol1 = Symbol('symbol & stringify test 1');\n    const symbol2 = Symbol('symbol & stringify test 2');\n\n    assert.same(stringify([\n      1,\n      symbol1,\n      false,\n      symbol2,\n      {},\n    ]), '[1,null,false,null,{}]', 'array value');\n    assert.same(stringify({\n      symbol: symbol1,\n    }), '{}', 'object value');\n    if (DESCRIPTORS) {\n      const object = { bar: 2 };\n      object[symbol1] = 1;\n      assert.same(stringify(object), '{\"bar\":2}', 'object key');\n    }\n    assert.same(stringify(symbol1), undefined, 'symbol value');\n    if (typeof symbol1 == 'symbol') {\n      assert.same(stringify(Object(symbol1)), '{}', 'boxed symbol');\n    }\n    assert.same(stringify(undefined, () => 42), '42', 'replacer works with top-level undefined');\n  });\n\n  QUnit.test('Well‑formed JSON.stringify', assert => {\n    assert.same(stringify({ foo: 'bar' }), '{\"foo\":\"bar\"}', 'basic');\n    assert.same(stringify('\\uDEAD'), '\"\\\\udead\"', 'r1');\n    assert.same(stringify('\\uDF06\\uD834'), '\"\\\\udf06\\\\ud834\"', 'r2');\n    assert.same(stringify('\\uDF06ab\\uD834'), '\"\\\\udf06ab\\\\ud834\"', 'r3');\n    assert.same(stringify('𠮷'), '\"𠮷\"', 'r4');\n    assert.same(stringify('\\uD834\\uDF06'), '\"𝌆\"', 'r5');\n    assert.same(stringify('\\uD834\\uD834\\uDF06'), '\"\\\\ud834𝌆\"', 'r6');\n    assert.same(stringify('\\uD834\\uDF06\\uDF06'), '\"𝌆\\\\udf06\"', 'r7');\n    assert.same(stringify({ '𠮷': ['\\uDF06\\uD834'] }), '{\"𠮷\":[\"\\\\udf06\\\\ud834\"]}', 'r8');\n  });\n}\n"
  },
  {
    "path": "tests/unit-pure/es.map.get-or-insert-computed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport Map from 'core-js-pure/es/map';\nimport from from 'core-js-pure/es/array/from';\n\nQUnit.test('Map#getOrInsertComputed', assert => {\n  const { getOrInsertComputed } = Map.prototype;\n  assert.isFunction(getOrInsertComputed);\n  assert.arity(getOrInsertComputed, 2);\n  assert.name(getOrInsertComputed, 'getOrInsertComputed');\n  assert.nonEnumerable(Map.prototype, 'getOrInsertComputed');\n\n  let map = new Map([['a', 2]]);\n  assert.same(map.getOrInsertComputed('a', () => 3), 2, 'result#1');\n  assert.deepEqual(from(map), [['a', 2]], 'map#1');\n  map = new Map([['a', 2]]);\n  assert.same(map.getOrInsertComputed('b', () => 3), 3, 'result#2');\n  assert.deepEqual(from(map), [['a', 2], ['b', 3]], 'map#2');\n\n  map = new Map([['a', 2]]);\n  map.getOrInsertComputed('a', () => assert.avoid());\n\n  map = new Map([['a', 2]]);\n  map.getOrInsertComputed('b', function (key) {\n    if (STRICT) assert.same(this, undefined, 'correct handler in callback');\n    assert.same(arguments.length, 1, 'correct number of callback arguments');\n    assert.same(key, 'b', 'correct key in callback');\n  });\n\n  map = new Map([['a', 2]]);\n  map.getOrInsertComputed(-0, key => assert.same(key, 0, 'CanonicalizeKeyedCollectionKey'));\n\n  map = new Map([['a', 2]]);\n  assert.same(map.getOrInsertComputed('b', key => {\n    map.set(key, 4);\n    return 3;\n  }), 3, 'callback inserts same key');\n  assert.deepEqual(from(map), [['a', 2], ['b', 3]], 'map after callback inserts same key');\n\n  assert.throws(() => new Map().getOrInsertComputed('a', {}), TypeError, 'non-callable#1');\n  assert.throws(() => new Map().getOrInsertComputed('a', 1), TypeError, 'non-callable#2');\n  assert.throws(() => new Map().getOrInsertComputed('a', null), TypeError, 'non-callable#3');\n  assert.throws(() => new Map().getOrInsertComputed('a', undefined), TypeError, 'non-callable#4');\n  assert.throws(() => new Map().getOrInsertComputed('a'), TypeError, 'non-callable#5');\n  assert.throws(() => getOrInsertComputed.call({}, 'a', () => 3), TypeError, 'non-generic#1');\n  assert.throws(() => getOrInsertComputed.call([], 'a', () => 3), TypeError, 'non-generic#2');\n  assert.throws(() => getOrInsertComputed.call(undefined, 'a', () => 3), TypeError, 'non-generic#3');\n  assert.throws(() => getOrInsertComputed.call(null, 'a', () => 3), TypeError, 'non-generic#4');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.map.get-or-insert.js",
    "content": "import Map from 'core-js-pure/es/map';\nimport from from 'core-js-pure/es/array/from';\n\nQUnit.test('Map#getOrInsert', assert => {\n  const { getOrInsert } = Map.prototype;\n  assert.isFunction(getOrInsert);\n  assert.arity(getOrInsert, 2);\n  assert.name(getOrInsert, 'getOrInsert');\n  assert.nonEnumerable(Map.prototype, 'getOrInsert');\n\n  let map = new Map([['a', 2]]);\n  assert.same(map.getOrInsert('a', 3), 2, 'result#1');\n  assert.deepEqual(from(map), [['a', 2]], 'map#1');\n  map = new Map([['a', 2]]);\n  assert.same(map.getOrInsert('b', 3), 3, 'result#2');\n  assert.deepEqual(from(map), [['a', 2], ['b', 3]], 'map#2');\n\n  assert.throws(() => getOrInsert.call({}, 'a', 1), TypeError, 'non-generic#1');\n  assert.throws(() => getOrInsert.call([], 'a', 1), TypeError, 'non-generic#2');\n  assert.throws(() => getOrInsert.call(undefined, 'a', 1), TypeError, 'non-generic#3');\n  assert.throws(() => getOrInsert.call(null, 'a', 1), TypeError, 'non-generic#4');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.map.group-by.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport from from 'core-js-pure/es/array/from';\nimport Map from 'core-js-pure/es/map';\n\nQUnit.test('Map.groupBy', assert => {\n  const { groupBy } = Map;\n\n  assert.isFunction(groupBy);\n  assert.arity(groupBy, 2);\n  assert.name(groupBy, 'groupBy');\n\n  assert.true(groupBy([], it => it) instanceof Map);\n\n  assert.deepEqual(from(groupBy([], it => it)), []);\n  assert.deepEqual(from(groupBy([1, 2], it => it ** 2)), [[1, [1]], [4, [2]]]);\n  assert.deepEqual(from(groupBy([1, 2, 1], it => it ** 2)), [[1, [1, 1]], [4, [2]]]);\n  assert.deepEqual(from(groupBy(createIterable([1, 2]), it => it ** 2)), [[1, [1]], [4, [2]]]);\n  assert.deepEqual(from(groupBy('qwe', it => it)), [['q', ['q']], ['w', ['w']], ['e', ['e']]], 'iterable string');\n\n  const element = {};\n  groupBy([element], function (it, i) {\n    assert.same(arguments.length, 2, 'correct number of callback arguments');\n    assert.same(it, element, 'correct value in callback');\n    assert.same(i, 0, 'correct index in callback');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/es.map.js",
    "content": "/* eslint-disable sonarjs/no-element-overwrite -- required for testing */\n\nimport { createIterable, is, nativeSubclass } from '../helpers/helpers.js';\nimport { DESCRIPTORS } from '../helpers/constants.js';\n\nimport getIterator from 'core-js-pure/es/get-iterator';\nimport getIteratorMethod from 'core-js-pure/es/get-iterator-method';\nimport freeze from 'core-js-pure/es/object/freeze';\nimport getOwnPropertyDescriptor from 'core-js-pure/es/object/get-own-property-descriptor';\nimport getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names';\nimport getOwnPropertySymbols from 'core-js-pure/es/object/get-own-property-symbols';\nimport keys from 'core-js-pure/es/object/keys';\nimport ownKeys from 'core-js-pure/es/reflect/own-keys';\nimport Symbol from 'core-js-pure/es/symbol';\nimport Set from 'core-js-pure/es/set';\nimport Map from 'core-js-pure/es/map';\n\nQUnit.test('Map', assert => {\n  assert.isFunction(Map);\n  assert.true('clear' in Map.prototype, 'clear in Map.prototype');\n  assert.true('delete' in Map.prototype, 'delete in Map.prototype');\n  assert.true('forEach' in Map.prototype, 'forEach in Map.prototype');\n  assert.true('get' in Map.prototype, 'get in Map.prototype');\n  assert.true('has' in Map.prototype, 'has in Map.prototype');\n  assert.true('set' in Map.prototype, 'set in Map.prototype');\n  assert.true(new Map() instanceof Map, 'new Map instanceof Map');\n  assert.same(new Map(createIterable([[1, 1], [2, 2], [3, 3]])).size, 3, 'Init from iterable');\n  assert.same(new Map([[freeze({}), 1], [2, 3]]).size, 2, 'Support frozen objects');\n  let done = false;\n  try {\n    new Map(createIterable([null, 1, 2], {\n      return() {\n        return done = true;\n      },\n    }));\n  } catch { /* empty */ }\n  assert.true(done, '.return #throw');\n  const array = [];\n  done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return getIteratorMethod([]).call(this);\n  };\n  new Map(array);\n  assert.true(done);\n  const object = {};\n  new Map().set(object, 1);\n  if (DESCRIPTORS) {\n    const results = [];\n    for (const key in object) results.push(key);\n    assert.arrayEqual(results, []);\n    assert.arrayEqual(keys(object), []);\n  }\n  assert.arrayEqual(getOwnPropertyNames(object), []);\n  if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []);\n  if (ownKeys) assert.arrayEqual(ownKeys(object), []);\n  if (nativeSubclass) {\n    const Subclass = nativeSubclass(Map);\n    assert.true(new Subclass() instanceof Subclass, 'correct subclassing with native classes #1');\n    assert.true(new Subclass() instanceof Map, 'correct subclassing with native classes #2');\n    assert.same(new Subclass().set(1, 2).get(1), 2, 'correct subclassing with native classes #3');\n  }\n\n  if (typeof ArrayBuffer == 'function') {\n    const buffer = new ArrayBuffer(8);\n    const map = new Map([[buffer, 8]]);\n    assert.true(map.has(buffer), 'works with ArrayBuffer keys');\n  }\n});\n\nQUnit.test('Map#clear', assert => {\n  assert.isFunction(Map.prototype.clear);\n  let map = new Map();\n  map.clear();\n  assert.same(map.size, 0);\n  map = new Map().set(1, 2).set(2, 3).set(1, 4);\n  map.clear();\n  assert.same(map.size, 0);\n  assert.false(map.has(1));\n  assert.false(map.has(2));\n  const frozen = freeze({});\n  map = new Map().set(1, 2).set(frozen, 3);\n  map.clear();\n  assert.same(map.size, 0, 'Support frozen objects');\n  assert.false(map.has(1));\n  assert.false(map.has(frozen));\n});\n\nQUnit.test('Map#delete', assert => {\n  assert.isFunction(Map.prototype.delete);\n  const object = {};\n  const map = new Map();\n  map.set(NaN, 1);\n  map.set(2, 1);\n  map.set(3, 7);\n  map.set(2, 5);\n  map.set(1, 4);\n  map.set(object, 9);\n  assert.same(map.size, 5);\n  assert.true(map.delete(NaN));\n  assert.same(map.size, 4);\n  assert.false(map.delete(4));\n  assert.same(map.size, 4);\n  map.delete([]);\n  assert.same(map.size, 4);\n  map.delete(object);\n  assert.same(map.size, 3);\n  const frozen = freeze({});\n  map.set(frozen, 42);\n  assert.same(map.size, 4);\n  map.delete(frozen);\n  assert.same(map.size, 3);\n});\n\nQUnit.test('Map#forEach', assert => {\n  assert.isFunction(Map.prototype.forEach);\n  let result = {};\n  let count = 0;\n  const object = {};\n  let map = new Map();\n  map.set(NaN, 1);\n  map.set(2, 1);\n  map.set(3, 7);\n  map.set(2, 5);\n  map.set(1, 4);\n  map.set(object, 9);\n  map.forEach((value, key) => {\n    count++;\n    result[value] = key;\n  });\n  assert.same(count, 5);\n  assert.deepEqual(result, {\n    1: NaN,\n    7: 3,\n    5: 2,\n    4: 1,\n    9: object,\n  });\n  map = new Map();\n  map.set('0', 9);\n  map.set('1', 9);\n  map.set('2', 9);\n  map.set('3', 9);\n  result = '';\n  map.forEach((value, key) => {\n    result += key;\n    if (key === '2') {\n      map.delete('2');\n      map.delete('3');\n      map.delete('1');\n      map.set('4', 9);\n    }\n  });\n  assert.same(result, '0124');\n  map = new Map([['0', 1]]);\n  result = '';\n  map.forEach(it => {\n    map.delete('0');\n    if (result !== '') throw new Error();\n    result += it;\n  });\n  assert.same(result, '1');\n  assert.throws(() => Map.prototype.forEach.call(new Set(), () => { /* empty */ }), 'non-generic');\n});\n\nQUnit.test('Map#get', assert => {\n  assert.isFunction(Map.prototype.get);\n  const object = {};\n  const frozen = freeze({});\n  const map = new Map();\n  map.set(NaN, 1);\n  map.set(2, 1);\n  map.set(3, 1);\n  map.set(2, 5);\n  map.set(1, 4);\n  map.set(frozen, 42);\n  map.set(object, object);\n  assert.same(map.get(NaN), 1);\n  assert.same(map.get(4), undefined);\n  assert.same(map.get({}), undefined);\n  assert.same(map.get(object), object);\n  assert.same(map.get(frozen), 42);\n  assert.same(map.get(2), 5);\n});\n\nQUnit.test('Map#has', assert => {\n  assert.isFunction(Map.prototype.has);\n  const object = {};\n  const frozen = freeze({});\n  const map = new Map();\n  map.set(NaN, 1);\n  map.set(2, 1);\n  map.set(3, 1);\n  map.set(2, 5);\n  map.set(1, 4);\n  map.set(frozen, 42);\n  map.set(object, object);\n  assert.true(map.has(NaN));\n  assert.true(map.has(object));\n  assert.true(map.has(2));\n  assert.true(map.has(frozen));\n  assert.false(map.has(4));\n  assert.false(map.has({}));\n});\n\nQUnit.test('Map#set', assert => {\n  assert.isFunction(Map.prototype.set);\n  const object = {};\n  let map = new Map();\n  map.set(NaN, 1);\n  map.set(2, 1);\n  map.set(3, 1);\n  map.set(2, 5);\n  map.set(1, 4);\n  map.set(object, object);\n  assert.same(map.size, 5);\n  const chain = map.set(7, 2);\n  assert.same(chain, map);\n  map.set(7, 2);\n  assert.same(map.size, 6);\n  assert.same(map.get(7), 2);\n  assert.same(map.get(NaN), 1);\n  map.set(NaN, 42);\n  assert.same(map.size, 6);\n  assert.same(map.get(NaN), 42);\n  map.set({}, 11);\n  assert.same(map.size, 7);\n  assert.same(map.get(object), object);\n  map.set(object, 27);\n  assert.same(map.size, 7);\n  assert.same(map.get(object), 27);\n  map = new Map();\n  map.set(NaN, 2);\n  map.set(NaN, 3);\n  map.set(NaN, 4);\n  assert.same(map.size, 1);\n  const frozen = freeze({});\n  map = new Map().set(frozen, 42);\n  assert.same(map.get(frozen), 42);\n});\n\nQUnit.test('Map#size', assert => {\n  const map = new Map();\n  map.set(2, 1);\n  const { size } = map;\n  assert.same(typeof size, 'number', 'size is number');\n  assert.same(size, 1, 'size is correct');\n  if (DESCRIPTORS) {\n    const sizeDescriptor = getOwnPropertyDescriptor(Map.prototype, 'size');\n    const getter = sizeDescriptor && sizeDescriptor.get;\n    const setter = sizeDescriptor && sizeDescriptor.set;\n    assert.same(typeof getter, 'function', 'size is getter');\n    assert.same(typeof setter, 'undefined', 'size is not setter');\n    assert.throws(() => Map.prototype.size, TypeError);\n  }\n});\n\nQUnit.test('Map & -0', assert => {\n  let map = new Map();\n  map.set(-0, 1);\n  assert.same(map.size, 1);\n  assert.true(map.has(0));\n  assert.true(map.has(-0));\n  assert.same(map.get(0), 1);\n  assert.same(map.get(-0), 1);\n  map.forEach((val, key) => {\n    assert.false(is(key, -0));\n  });\n  map.delete(-0);\n  assert.same(map.size, 0);\n  map = new Map([[-0, 1]]);\n  map.forEach((val, key) => {\n    assert.false(is(key, -0));\n  });\n  map = new Map();\n  map.set(4, 4);\n  map.set(3, 3);\n  map.set(2, 2);\n  map.set(1, 1);\n  map.set(0, 0);\n  assert.true(map.has(-0));\n});\n\nQUnit.test('Map#@@toStringTag', assert => {\n  assert.same(Map.prototype[Symbol.toStringTag], 'Map', 'Map::@@toStringTag is `Map`');\n  assert.same(String(new Map()), '[object Map]', 'correct stringification');\n});\n\nQUnit.test('Map Iterator', assert => {\n  const map = new Map();\n  map.set('a', 1);\n  map.set('b', 2);\n  map.set('c', 3);\n  map.set('d', 4);\n  const results = [];\n  const iterator = map.keys();\n  results.push(iterator.next().value);\n  assert.true(map.delete('a'));\n  assert.true(map.delete('b'));\n  assert.true(map.delete('c'));\n  map.set('e');\n  results.push(iterator.next().value, iterator.next().value);\n  assert.true(iterator.next().done);\n  map.set('f');\n  assert.true(iterator.next().done);\n  assert.deepEqual(results, ['a', 'd', 'e']);\n});\n\nQUnit.test('Map#keys', assert => {\n  assert.isFunction(Map.prototype.keys);\n  const map = new Map();\n  map.set('a', 'q');\n  map.set('s', 'w');\n  map.set('d', 'e');\n  const iterator = map.keys();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Map Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'a',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 's',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'd',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Map#values', assert => {\n  assert.isFunction(Map.prototype.values);\n  const map = new Map();\n  map.set('a', 'q');\n  map.set('s', 'w');\n  map.set('d', 'e');\n  const iterator = map.values();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Map Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Map#entries', assert => {\n  assert.isFunction(Map.prototype.entries);\n  const map = new Map();\n  map.set('a', 'q');\n  map.set('s', 'w');\n  map.set('d', 'e');\n  const iterator = map.entries();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Map Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: ['a', 'q'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: ['s', 'w'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: ['d', 'e'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Map#@@iterator', assert => {\n  const map = new Map();\n  map.set('a', 'q');\n  map.set('s', 'w');\n  map.set('d', 'e');\n  const iterator = getIterator(map);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Map Iterator');\n  assert.same(String(iterator), '[object Map Iterator]');\n  assert.deepEqual(iterator.next(), {\n    value: ['a', 'q'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: ['s', 'w'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: ['d', 'e'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.acosh.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport acosh from 'core-js-pure/es/math/acosh';\nimport EPSILON from 'core-js-pure/es/number/epsilon';\n\nQUnit.test('Math.acosh', assert => {\n  assert.isFunction(acosh);\n  assert.name(acosh, 'acosh');\n  assert.arity(acosh, 1);\n  assert.same(acosh(NaN), NaN);\n  assert.same(acosh(0.5), NaN);\n  assert.same(acosh(-1), NaN);\n  assert.same(acosh(-1e300), NaN);\n  assert.same(acosh(1), 0);\n  assert.same(acosh(Infinity), Infinity);\n  assert.closeTo(acosh(1234), 7.811163220849231, 1e-11);\n  assert.closeTo(acosh(8.88), 2.8737631531629235, 1e-11);\n  assert.closeTo(acosh(1e+160), 369.10676205960726, 1e-11);\n  assert.closeTo(acosh(Number.MAX_VALUE), 710.475860073944, 1e-11);\n  assert.closeTo(acosh(1 + EPSILON), 2.1073424255447017e-8, 1e-11);\n\n  const checker = createConversionChecker(1234);\n  assert.closeTo(acosh(checker), 7.811163220849231, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.asinh.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport asinh from 'core-js-pure/es/math/asinh';\n\nQUnit.test('Math.asinh', assert => {\n  assert.isFunction(asinh);\n  assert.name(asinh, 'asinh');\n  assert.arity(asinh, 1);\n  assert.same(asinh(NaN), NaN);\n  assert.same(asinh(0), 0);\n  assert.same(asinh(-0), -0);\n  assert.same(asinh(Infinity), Infinity);\n  assert.same(asinh(-Infinity), -Infinity);\n  assert.closeTo(asinh(1234), 7.811163549201245, 1e-11);\n  assert.closeTo(asinh(9.99), 2.997227420191335, 1e-11);\n  assert.closeTo(asinh(1e150), 346.0809111296668, 1e-11);\n  assert.closeTo(asinh(1e7), 16.811242831518268, 1e-11);\n  assert.closeTo(asinh(-1e7), -16.811242831518268, 1e-11);\n  assert.closeTo(asinh(1e200), 461.2101657793691, 1e-6, 'large value 1e200');\n  assert.closeTo(asinh(1e300), 691.4686750787736, 1e-6, 'large value 1e300');\n  assert.closeTo(asinh(Number.MAX_VALUE), 710.4758600739439, 1e-6, 'Number.MAX_VALUE');\n  assert.closeTo(asinh(-1e200), -461.2101657793691, 1e-6, 'large negative value');\n\n  const checker = createConversionChecker(1234);\n  assert.closeTo(asinh(checker), 7.811163549201245, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.atanh.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport atanh from 'core-js-pure/es/math/atanh';\n\nQUnit.test('Math.atanh', assert => {\n  assert.isFunction(atanh);\n  assert.name(atanh, 'atanh');\n  assert.arity(atanh, 1);\n  assert.same(atanh(NaN), NaN);\n  assert.same(atanh(-2), NaN);\n  assert.same(atanh(-1.5), NaN);\n  assert.same(atanh(2), NaN);\n  assert.same(atanh(1.5), NaN);\n  assert.same(atanh(-1), -Infinity);\n  assert.same(atanh(1), Infinity);\n  assert.same(atanh(0), 0);\n  assert.same(atanh(-0), -0);\n  assert.same(atanh(-1e300), NaN);\n  assert.same(atanh(1e300), NaN);\n  assert.closeTo(atanh(0.5), 0.5493061443340549, 1e-11);\n  assert.closeTo(atanh(-0.5), -0.5493061443340549, 1e-11);\n  assert.closeTo(atanh(0.444), 0.47720201260109457, 1e-11);\n\n  assert.closeTo(atanh(1e-10), 1e-10, 1e-25, 'small value 1e-10');\n  assert.closeTo(atanh(1e-17), 1e-17, 1e-32, 'small value 1e-17');\n  assert.notSame(atanh(1e-20), 0, 'atanh(1e-20) should not be 0');\n\n  const checker = createConversionChecker(0.5);\n  assert.closeTo(atanh(checker), 0.5493061443340549, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.cbrt.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport cbrt from 'core-js-pure/es/math/cbrt';\n\nQUnit.test('Math.cbrt', assert => {\n  assert.isFunction(cbrt);\n  assert.name(cbrt, 'cbrt');\n  assert.arity(cbrt, 1);\n  assert.same(cbrt(NaN), NaN);\n  assert.same(cbrt(0), 0);\n  assert.same(cbrt(-0), -0);\n  assert.same(cbrt(Infinity), Infinity);\n  assert.same(cbrt(-Infinity), -Infinity);\n  assert.same(cbrt(-8), -2);\n  assert.same(cbrt(8), 2);\n  assert.closeTo(cbrt(-1000), -10, 1e-11);\n  assert.closeTo(cbrt(1000), 10, 1e-11);\n\n  const checker = createConversionChecker(1000);\n  assert.closeTo(cbrt(checker), 10, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.clz32.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport clz32 from 'core-js-pure/es/math/clz32';\n\nQUnit.test('Math.clz32', assert => {\n  assert.isFunction(clz32);\n  assert.name(clz32, 'clz32');\n  assert.arity(clz32, 1);\n  assert.same(clz32(0), 32);\n  assert.same(clz32(1), 31);\n  assert.same(clz32(-1), 0);\n  assert.same(clz32(0.6), 32);\n  assert.same(clz32(2 ** 32 - 1), 0);\n  assert.same(clz32(2 ** 32), 32);\n\n  const checker = createConversionChecker(1);\n  assert.same(clz32(checker), 31, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.cosh.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport cosh from 'core-js-pure/es/math/cosh';\n\nQUnit.test('Math.cosh', assert => {\n  assert.isFunction(cosh);\n  assert.name(cosh, 'cosh');\n  assert.arity(cosh, 1);\n  assert.same(cosh(NaN), NaN);\n  assert.same(cosh(0), 1);\n  assert.same(cosh(-0), 1);\n  assert.same(cosh(Infinity), Infinity);\n  assert.same(cosh(-Infinity), Infinity);\n  assert.closeTo(cosh(12), 81377.395712574, 1e-9);\n  assert.closeTo(cosh(22), 1792456423.065796, 1e-5);\n  assert.closeTo(cosh(-10), 11013.232920103323, 1e-11);\n  assert.closeTo(cosh(-23), 4872401723.124452, 1e-5);\n  assert.closeTo(cosh(710), 1.1169973830808557e+308, 1e+295);\n\n  const checker = createConversionChecker(12);\n  assert.closeTo(cosh(checker), 81377.395712574, 1e-9, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.expm1.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport expm1 from 'core-js-pure/es/math/expm1';\n\nQUnit.test('Math.expm1', assert => {\n  assert.isFunction(expm1);\n  assert.name(expm1, 'expm1');\n  assert.arity(expm1, 1);\n  assert.same(expm1(NaN), NaN);\n  assert.same(expm1(0), 0);\n  assert.same(expm1(-0), -0);\n  assert.same(expm1(Infinity), Infinity);\n  assert.same(expm1(-Infinity), -1);\n  assert.closeTo(expm1(10), 22025.465794806718, 1e-11);\n  assert.closeTo(expm1(-10), -0.9999546000702375, 1e-11);\n\n  const checker = createConversionChecker(10);\n  assert.closeTo(expm1(checker), 22025.465794806718, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.f16round.js",
    "content": "// some asserts based on https://github.com/petamoriken/float16/blob/master/test/f16round.js\nimport { createConversionChecker } from '../helpers/helpers.js';\n\nimport f16round from 'core-js-pure/es/math/f16round';\n\nconst { MAX_VALUE, MIN_VALUE } = Number;\n\nQUnit.test('Math.f16round', assert => {\n  assert.isFunction(f16round);\n  assert.name(f16round, 'f16round');\n  assert.arity(f16round, 1);\n  assert.same(f16round(), NaN);\n  assert.same(f16round(undefined), NaN);\n  assert.same(f16round(NaN), NaN);\n  assert.same(f16round(null), 0);\n  assert.same(f16round(0), 0);\n  assert.same(f16round(-0), -0);\n  assert.same(f16round(MIN_VALUE), 0);\n  assert.same(f16round(-MIN_VALUE), -0);\n  assert.same(f16round(Infinity), Infinity);\n  assert.same(f16round(-Infinity), -Infinity);\n  assert.same(f16round(MAX_VALUE), Infinity);\n  assert.same(f16round(-MAX_VALUE), -Infinity);\n\n  const MAX_FLOAT16 = 65504;\n  const MIN_FLOAT16 = 2 ** -24;\n\n  assert.same(f16round(MAX_FLOAT16), MAX_FLOAT16);\n  assert.same(f16round(-MAX_FLOAT16), -MAX_FLOAT16);\n  assert.same(f16round(MIN_FLOAT16), MIN_FLOAT16);\n  assert.same(f16round(-MIN_FLOAT16), -MIN_FLOAT16);\n  assert.same(f16round(MIN_FLOAT16 / 2), 0);\n  assert.same(f16round(-MIN_FLOAT16 / 2), -0);\n  assert.same(f16round(2.980232238769531911744490042422139897126953655970282852649688720703125e-8), MIN_FLOAT16);\n  assert.same(f16round(-2.980232238769531911744490042422139897126953655970282852649688720703125e-8), -MIN_FLOAT16);\n\n  assert.same(f16round(1.337), 1.3369140625);\n  assert.same(f16round(0.499994), 0.5);\n  assert.same(f16round(7.9999999), 8);\n\n  const checker = createConversionChecker(1.1);\n  assert.same(f16round(checker), 1.099609375, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.fround.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport fround from 'core-js-pure/es/math/fround';\n\nconst { MAX_VALUE, MIN_VALUE } = Number;\n\nQUnit.test('Math.fround', assert => {\n  assert.isFunction(fround);\n  assert.name(fround, 'fround');\n  assert.arity(fround, 1);\n  assert.same(fround(), NaN);\n  assert.same(fround(undefined), NaN);\n  assert.same(fround(NaN), NaN);\n  assert.same(fround(null), 0);\n  assert.same(fround(0), 0);\n  assert.same(fround(-0), -0);\n  assert.same(fround(MIN_VALUE), 0);\n  assert.same(fround(-MIN_VALUE), -0);\n  assert.same(fround(Infinity), Infinity);\n  assert.same(fround(-Infinity), -Infinity);\n  assert.same(fround(MAX_VALUE), Infinity);\n  assert.same(fround(-MAX_VALUE), -Infinity);\n  assert.same(fround(3.4028235677973366e+38), Infinity);\n  assert.same(fround(3), 3);\n  assert.same(fround(-3), -3);\n  const maxFloat32 = 3.4028234663852886e+38;\n  const minFloat32 = 1.401298464324817e-45;\n  assert.same(fround(maxFloat32), maxFloat32);\n  assert.same(fround(-maxFloat32), -maxFloat32);\n  assert.same(fround(maxFloat32 + 2 ** 102), maxFloat32);\n  assert.same(fround(minFloat32), minFloat32);\n  assert.same(fround(-minFloat32), -minFloat32);\n  assert.same(fround(minFloat32 / 2), 0);\n  assert.same(fround(-minFloat32 / 2), -0);\n  assert.same(fround(minFloat32 / 2 + 2 ** -202), minFloat32);\n  assert.same(fround(-minFloat32 / 2 - 2 ** -202), -minFloat32);\n\n  const maxSubnormal32 = 1.1754942106924411e-38;\n  const minNormal32 = 1.1754943508222875e-38;\n  assert.same(fround(1.1754942807573642e-38), maxSubnormal32, 'fround(1.1754942807573642e-38)');\n  assert.same(fround(1.1754942807573643e-38), minNormal32, 'fround(1.1754942807573643e-38)');\n  assert.same(fround(1.1754942807573644e-38), minNormal32, 'fround(1.1754942807573644e-38)');\n  assert.same(fround(-1.1754942807573642e-38), -maxSubnormal32, 'fround(-1.1754942807573642e-38)');\n  assert.same(fround(-1.1754942807573643e-38), -minNormal32, 'fround(-1.1754942807573643e-38)');\n  assert.same(fround(-1.1754942807573644e-38), -minNormal32, 'fround(-1.1754942807573644e-38)');\n\n  const checker = createConversionChecker(1.1754942807573642e-38);\n  assert.same(fround(checker), maxSubnormal32, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.hypot.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport hypot from 'core-js-pure/es/math/hypot';\n\nQUnit.test('Math.hypot', assert => {\n  const { sqrt } = Math;\n  assert.isFunction(hypot);\n  assert.name(hypot, 'hypot');\n  assert.arity(hypot, 2);\n  assert.same(hypot(), 0);\n  assert.same(hypot(1), 1);\n  assert.same(hypot('', 0), 0);\n  assert.same(hypot(0, ''), 0);\n  assert.same(hypot(Infinity, 0), Infinity, 'Infinity, 0');\n  assert.same(hypot(-Infinity, 0), Infinity, '-Infinity, 0');\n  assert.same(hypot(0, Infinity), Infinity, '0, Infinity');\n  assert.same(hypot(0, -Infinity), Infinity, '0, -Infinity');\n  assert.same(hypot(Infinity, NaN), Infinity, 'Infinity, NaN');\n  assert.same(hypot(NaN, -Infinity), Infinity, 'NaN, -Infinity');\n  assert.same(hypot(NaN, 0), NaN, 'NaN, 0');\n  assert.same(hypot(0, NaN), NaN, '0, NaN');\n  assert.same(hypot(0, -0), 0);\n  assert.same(hypot(0, 0), 0);\n  assert.same(hypot(-0, -0), 0);\n  assert.same(hypot(-0, 0), 0);\n  assert.same(hypot(0, 1), 1);\n  assert.same(hypot(0, -1), 1);\n  assert.same(hypot(-0, 1), 1);\n  assert.same(hypot(-0, -1), 1);\n  assert.same(hypot(0), 0);\n  assert.same(hypot(1), 1);\n  assert.same(hypot(2), 2);\n  assert.same(hypot(0, 0, 1), 1);\n  assert.same(hypot(0, 1, 0), 1);\n  assert.same(hypot(1, 0, 0), 1);\n  assert.same(hypot(2, 3, 4), sqrt(2 ** 2 + 3 ** 2 + 4 ** 2));\n  assert.same(hypot(2, 3, 4, 5), sqrt(2 ** 2 + 3 ** 2 + 4 ** 2 + 5 ** 2));\n  assert.closeTo(hypot(66, 66), 93.33809511662427, 1e-11);\n  assert.closeTo(hypot(0.1, 100), 100.0000499999875, 1e-11);\n  assert.same(hypot(1e+300, 1e+300), 1.4142135623730952e+300);\n  assert.same(Math.floor(hypot(1e-300, 1e-300) * 1e308), 141421356);\n  assert.same(hypot(1e+300, 1e+300, 2, 3), 1.4142135623730952e+300);\n  assert.same(hypot(-3, 4), 5);\n  assert.same(hypot(3, -4), 5);\n\n  const checker1 = createConversionChecker(2);\n  const checker2 = createConversionChecker(3);\n  const checker3 = createConversionChecker(4);\n  const checker4 = createConversionChecker(5);\n  assert.same(hypot(checker1, checker2, checker3, checker4), sqrt(2 ** 2 + 3 ** 2 + 4 ** 2 + 5 ** 2), 'object wrapper');\n  assert.same(checker1.$valueOf, 1, 'checker1 valueOf calls');\n  assert.same(checker1.$toString, 0, 'checker1 toString calls');\n  assert.same(checker2.$valueOf, 1, 'checker2 valueOf calls');\n  assert.same(checker2.$toString, 0, 'checker2 toString calls');\n  assert.same(checker3.$valueOf, 1, 'checker3 valueOf calls');\n  assert.same(checker3.$toString, 0, 'checker3 toString calls');\n  assert.same(checker4.$valueOf, 1, 'checker4 valueOf calls');\n  assert.same(checker4.$toString, 0, 'checker4 toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.imul.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport imul from 'core-js-pure/es/math/imul';\n\nQUnit.test('Math.imul', assert => {\n  assert.isFunction(imul);\n  assert.name(imul, 'imul');\n  assert.arity(imul, 2);\n  assert.same(imul(0, 0), 0);\n  assert.same(imul(123, 456), 56088);\n  assert.same(imul(-123, 456), -56088);\n  assert.same(imul(123, -456), -56088);\n  assert.same(imul(19088743, 4275878552), 602016552);\n  assert.same(imul(false, 7), 0);\n  assert.same(imul(7, false), 0);\n  assert.same(imul(false, false), 0);\n  assert.same(imul(true, 7), 7);\n  assert.same(imul(7, true), 7);\n  assert.same(imul(true, true), 1);\n  assert.same(imul(undefined, 7), 0);\n  assert.same(imul(7, undefined), 0);\n  assert.same(imul(undefined, undefined), 0);\n  assert.same(imul('str', 7), 0);\n  assert.same(imul(7, 'str'), 0);\n  assert.same(imul({}, 7), 0);\n  assert.same(imul(7, {}), 0);\n  assert.same(imul([], 7), 0);\n  assert.same(imul(7, []), 0);\n  assert.same(imul(0xFFFFFFFF, 5), -5);\n  assert.same(imul(0xFFFFFFFE, 5), -10);\n  assert.same(imul(2, 4), 8);\n  assert.same(imul(-1, 8), -8);\n  assert.same(imul(-2, -2), 4);\n  assert.same(imul(-0, 7), 0);\n  assert.same(imul(7, -0), 0);\n  assert.same(imul(0.1, 7), 0);\n  assert.same(imul(7, 0.1), 0);\n  assert.same(imul(0.9, 7), 0);\n  assert.same(imul(7, 0.9), 0);\n  assert.same(imul(1.1, 7), 7);\n  assert.same(imul(7, 1.1), 7);\n  assert.same(imul(1.9, 7), 7);\n  assert.same(imul(7, 1.9), 7);\n\n  const checker1 = createConversionChecker(-123);\n  const checker2 = createConversionChecker(456);\n  assert.same(imul(checker1, checker2), -56088, 'object wrapper');\n  assert.same(checker1.$valueOf, 1, 'checker1 valueOf calls');\n  assert.same(checker1.$toString, 0, 'checker1 toString calls');\n  assert.same(checker2.$valueOf, 1, 'checker2 valueOf calls');\n  assert.same(checker2.$toString, 0, 'checker2 toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.log10.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport log10 from 'core-js-pure/es/math/log10';\n\nQUnit.test('Math.log10', assert => {\n  assert.isFunction(log10);\n  assert.name(log10, 'log10');\n  assert.arity(log10, 1);\n  assert.same(log10(''), log10(0));\n  assert.same(log10(NaN), NaN);\n  assert.same(log10(-1), NaN);\n  assert.same(log10(0), -Infinity);\n  assert.same(log10(-0), -Infinity);\n  assert.same(log10(1), 0);\n  assert.same(log10(Infinity), Infinity);\n  assert.closeTo(log10(0.1), -1, 1e-11);\n  assert.closeTo(log10(0.5), -0.3010299956639812, 1e-11);\n  assert.closeTo(log10(1.5), 0.17609125905568124, 1e-11);\n  assert.closeTo(log10(5), 0.6989700043360189, 1e-11);\n  assert.closeTo(log10(50), 1.6989700043360187, 1e-11);\n  assert.closeTo(log10(1000), 3, 1e-11);\n\n  const checker = createConversionChecker(0.5);\n  assert.closeTo(log10(checker), -0.3010299956639812, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.log1p.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport log1p from 'core-js-pure/es/math/log1p';\n\nQUnit.test('Math.log1p', assert => {\n  assert.isFunction(log1p);\n  assert.name(log1p, 'log1p');\n  assert.arity(log1p, 1);\n  assert.same(log1p(''), log1p(0));\n  assert.same(log1p(NaN), NaN);\n  assert.same(log1p(-2), NaN);\n  assert.same(log1p(-1), -Infinity);\n  assert.same(log1p(0), 0);\n  assert.same(log1p(-0), -0);\n  assert.same(log1p(Infinity), Infinity);\n  assert.closeTo(log1p(5), 1.791759469228055, 1e-11);\n  assert.closeTo(log1p(50), 3.9318256327243257, 1e-11);\n\n  const checker = createConversionChecker(5);\n  assert.closeTo(log1p(checker), 1.791759469228055, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.log2.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport log2 from 'core-js-pure/es/math/log2';\n\nQUnit.test('Math.log2', assert => {\n  assert.isFunction(log2);\n  assert.name(log2, 'log2');\n  assert.arity(log2, 1);\n  assert.same(log2(''), log2(0));\n  assert.same(log2(NaN), NaN);\n  assert.same(log2(-1), NaN);\n  assert.same(log2(0), -Infinity);\n  assert.same(log2(-0), -Infinity);\n  assert.same(log2(1), 0);\n  assert.same(log2(Infinity), Infinity);\n  assert.same(log2(0.5), -1);\n  assert.same(log2(32), 5);\n  assert.closeTo(log2(5), 2.321928094887362, 1e-11);\n\n  const checker = createConversionChecker(5);\n  assert.closeTo(log2(checker), 2.321928094887362, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.sign.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport sign from 'core-js-pure/es/math/sign';\n\nQUnit.test('Math.sign', assert => {\n  assert.isFunction(sign);\n  assert.name(sign, 'sign');\n  assert.arity(sign, 1);\n  assert.same(sign(NaN), NaN);\n  assert.same(sign(), NaN);\n  assert.same(sign(-0), -0);\n  assert.same(sign(0), 0);\n  assert.same(sign(Infinity), 1);\n  assert.same(sign(-Infinity), -1);\n  assert.same(sign(13510798882111488), 1);\n  assert.same(sign(-13510798882111488), -1);\n  assert.same(sign(42.5), 1);\n  assert.same(sign(-42.5), -1);\n\n  const checker = createConversionChecker(-42.5);\n  assert.same(sign(checker), -1, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.sinh.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport sinh from 'core-js-pure/es/math/sinh';\n\nQUnit.test('Math.sinh', assert => {\n  assert.isFunction(sinh);\n  assert.name(sinh, 'sinh');\n  assert.arity(sinh, 1);\n  assert.same(sinh(NaN), NaN);\n  assert.same(sinh(0), 0);\n  assert.same(sinh(-0), -0);\n  assert.same(sinh(Infinity), Infinity);\n  assert.same(sinh(-Infinity), -Infinity);\n  assert.closeTo(sinh(-5), -74.20321057778875, 1e-11);\n  assert.closeTo(sinh(2), 3.6268604078470186, 1e-11);\n  assert.same(sinh(-2e-17), -2e-17);\n\n  const checker = createConversionChecker(-5);\n  assert.closeTo(sinh(checker), -74.20321057778875, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.sum-precise.js",
    "content": "/* eslint-disable @stylistic/max-len -- ok */\nimport sumPrecise from 'core-js-pure/es/math/sum-precise';\nimport { createIterable } from '../helpers/helpers.js';\n\nQUnit.test('Math.sumPrecise', assert => {\n  assert.isFunction(sumPrecise);\n  assert.name(sumPrecise, 'sumPrecise');\n  assert.arity(sumPrecise, 1);\n\n  assert.same(sumPrecise([1, 2, 3]), 6, 'basic');\n  assert.same(sumPrecise(createIterable([1, 2, 3])), 6, 'custom iterable');\n\n  assert.throws(() => sumPrecise(undefined), TypeError, 'undefined');\n  assert.throws(() => sumPrecise(null), TypeError, 'null');\n  assert.throws(() => sumPrecise({ 0: 1 }), TypeError, 'non-iterable');\n  assert.throws(() => sumPrecise(1, 2), TypeError, 'non-iterable #2');\n  assert.throws(() => sumPrecise([1, '2']), TypeError, 'non-number elements');\n\n  // Adapted from https://github.com/tc39/test262\n  // Copyright (C) 2024 Kevin Gibbons. All rights reserved.\n  // This code is governed by the BSD license\n  assert.same(sumPrecise([NaN]), NaN, '[NaN]');\n  assert.same(sumPrecise([Infinity, -Infinity]), NaN, '[Infinity, -Infinity]');\n  assert.same(sumPrecise([-Infinity, Infinity]), NaN, '[-Infinity, Infinity]');\n  assert.same(sumPrecise([Infinity]), Infinity, '[Infinity]');\n  assert.same(sumPrecise([Infinity, Infinity]), Infinity, '[Infinity, Infinity]');\n  assert.same(sumPrecise([-Infinity]), -Infinity, '[-Infinity]');\n  assert.same(sumPrecise([-Infinity, -Infinity]), -Infinity, '[-Infinity, -Infinity]');\n  assert.same(sumPrecise([]), -0, '[]');\n  assert.same(sumPrecise([-0]), -0, '[-0]');\n  assert.same(sumPrecise([-0, -0]), -0, '[-0, -0]');\n  assert.same(sumPrecise([-0, 0]), 0, '[-0, 0]');\n  assert.same(sumPrecise([1e308]), 1e308, '[1e308]');\n  assert.same(sumPrecise([1e308, -1e308]), 0, '[1e308, -1e308]');\n  assert.same(sumPrecise([0.1]), 0.1, '[0.1]');\n  assert.same(sumPrecise([0.1, 0.1]), 0.2, '[0.1, 0.1]');\n  assert.same(sumPrecise([0.1, -0.1]), 0, '[0.1, -0.1]');\n  assert.same(sumPrecise([1e308, 1e308, 0.1, 0.1, 1e30, 0.1, -1e30, -1e308, -1e308]), 0.30000000000000004, '[1e308, 1e308, 0.1, 0.1, 1e30, 0.1, -1e30, -1e308, -1e308]');\n  assert.same(sumPrecise([1e30, 0.1, -1e30]), 0.1, '[1e30, 0.1, -1e30]');\n  assert.same(sumPrecise([8.98846567431158e+307, 8.988465674311579e+307, -Number.MAX_VALUE]), 9.9792015476736e+291, '[8.98846567431158e+307, 8.988465674311579e+307, -Number.MAX_VALUE]');\n  assert.same(sumPrecise([-5.630637621603525e+255, 9.565271205476345e+307, 2.9937604643020797e+292]), 9.565271205476347e+307, '[-5.630637621603525e+255, 9.565271205476345e+307, 2.9937604643020797e+292]');\n  assert.same(sumPrecise([6.739986666787661e+66, 2, -1.2689709186578243e-116, 1.7046015739467354e+308, -9.979201547673601e+291, 6.160926733208294e+307, -3.179557053031852e+234, -7.027282978772846e+307, -0.7500000000000001]), 1.61796594939028e+308, '[6.739986666787661e+66, 2, -1.2689709186578243e-116, 1.7046015739467354e+308, -9.979201547673601e+291, 6.160926733208294e+307, -3.179557053031852e+234, -7.027282978772846e+307, -0.7500000000000001]');\n  assert.same(sumPrecise([0.31150493246968836, -8.988465674311582e+307, 1.8315037361673755e-270, -15.999999999999996, 2.9999999999999996, 7.345200721499384e+164, -2.033582473639399, -8.98846567431158e+307, -3.5737295155405993e+292, 4.13894772383715e-124, -3.6111186457260667e-35, 2.387234887098013e+180, 7.645295562778372e-298, 3.395189016861822e-103, -2.6331611115768973e-149]), -Infinity, '[0.31150493246968836, -8.988465674311582e+307, 1.8315037361673755e-270, -15.999999999999996, 2.9999999999999996, 7.345200721499384e+164, -2.033582473639399, -8.98846567431158e+307, -3.5737295155405993e+292, 4.13894772383715e-124, -3.6111186457260667e-35, 2.387234887098013e+180, 7.645295562778372e-298, 3.395189016861822e-103, -2.6331611115768973e-149]');\n  assert.same(sumPrecise([-1.1442589134409902e+308, 9.593842098384855e+138, 4.494232837155791e+307, -1.3482698511467367e+308, 4.494232837155792e+307]), -1.5936821971565685e+308, '[-1.1442589134409902e+308, 9.593842098384855e+138, 4.494232837155791e+307, -1.3482698511467367e+308, 4.494232837155792e+307]');\n  assert.same(sumPrecise([-1.1442589134409902e+308, 4.494232837155791e+307, -1.3482698511467367e+308, 4.494232837155792e+307]), -1.5936821971565687e+308, '[-1.1442589134409902e+308, 4.494232837155791e+307, -1.3482698511467367e+308, 4.494232837155792e+307]');\n  assert.same(sumPrecise([9.593842098384855e+138, -6.948356297254111e+307, -1.3482698511467367e+308, 4.494232837155792e+307]), -1.5936821971565685e+308, '[9.593842098384855e+138, -6.948356297254111e+307, -1.3482698511467367e+308, 4.494232837155792e+307]');\n  assert.same(sumPrecise([-2.534858246857893e+115, 8.988465674311579e+307, 8.98846567431158e+307]), Number.MAX_VALUE, '[-2.534858246857893e+115, 8.988465674311579e+307, 8.98846567431158e+307]');\n  assert.same(sumPrecise([1.3588124894186193e+308, 1.4803986201152006e+223, 6.741349255733684e+307]), Infinity, '[1.3588124894186193e+308, 1.4803986201152006e+223, 6.741349255733684e+307]');\n  assert.same(sumPrecise([6.741349255733684e+307, 1.7976931348623155e+308, -7.388327292663961e+41]), Infinity, '[6.741349255733684e+307, 1.7976931348623155e+308, -7.388327292663961e+41]');\n  assert.same(sumPrecise([-1.9807040628566093e+28, Number.MAX_VALUE, 9.9792015476736e+291]), Number.MAX_VALUE, '[-1.9807040628566093e+28, Number.MAX_VALUE, 9.9792015476736e+291]');\n  assert.same(sumPrecise([-1.0214557991173964e+61, Number.MAX_VALUE, 8.98846567431158e+307, -8.988465674311579e+307]), Number.MAX_VALUE, '[-1.0214557991173964e+61, Number.MAX_VALUE, 8.98846567431158e+307, -8.988465674311579e+307]');\n  assert.same(sumPrecise([Number.MAX_VALUE, 7.999999999999999, -1.908963895403937e-230, 1.6445950082320264e+292, 2.0734856707605806e+205]), Infinity, '[Number.MAX_VALUE, 7.999999999999999, -1.908963895403937e-230, 1.6445950082320264e+292, 2.0734856707605806e+205]');\n  assert.same(sumPrecise([6.197409167220438e-223, -9.979201547673601e+291, -Number.MAX_VALUE]), -Infinity, '[6.197409167220438e-223, -9.979201547673601e+291, -Number.MAX_VALUE]');\n  assert.same(sumPrecise([4.49423283715579e+307, 8.944251746776101e+307, -0.0002441406250000001, 1.1752060710043817e+308, 4.940846717201632e+292, -1.6836699406454528e+308]), 8.353845887521184e+307, '[4.49423283715579e+307, 8.944251746776101e+307, -0.0002441406250000001, 1.1752060710043817e+308, 4.940846717201632e+292, -1.6836699406454528e+308]');\n  assert.same(sumPrecise([8.988465674311579e+307, 7.999999999999998, 7.029158107234023e-308, -2.2303483759420562e-172, -Number.MAX_VALUE, -8.98846567431158e+307]), -Number.MAX_VALUE, '[8.988465674311579e+307, 7.999999999999998, 7.029158107234023e-308, -2.2303483759420562e-172, -Number.MAX_VALUE, -8.98846567431158e+307]');\n  assert.same(sumPrecise([8.98846567431158e+307, 8.98846567431158e+307]), Infinity, '[8.98846567431158e+307, 8.98846567431158e+307]');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.tanh.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport tanh from 'core-js-pure/es/math/tanh';\n\nQUnit.test('Math.tanh', assert => {\n  assert.isFunction(tanh);\n  assert.name(tanh, 'tanh');\n  assert.arity(tanh, 1);\n  assert.same(tanh(NaN), NaN);\n  assert.same(tanh(0), 0);\n  assert.same(tanh(-0), -0);\n  assert.same(tanh(Infinity), 1);\n  assert.same(tanh(90), 1);\n  assert.closeTo(tanh(10), 0.9999999958776927, 1e-11);\n\n  const checker = createConversionChecker(10);\n  assert.closeTo(tanh(checker), 0.9999999958776927, 1e-11);\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.math.trunc.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport trunc from 'core-js-pure/es/math/trunc';\n\nQUnit.test('Math.trunc', assert => {\n  assert.isFunction(trunc);\n  assert.name(trunc, 'trunc');\n  assert.arity(trunc, 1);\n  assert.same(trunc(NaN), NaN, 'NaN -> NaN');\n  assert.same(trunc(-0), -0, '-0 -> -0');\n  assert.same(trunc(0), 0, '0 -> 0');\n  assert.same(trunc(Infinity), Infinity, 'Infinity -> Infinity');\n  assert.same(trunc(-Infinity), -Infinity, '-Infinity -> -Infinity');\n  assert.same(trunc(null), 0, 'null -> 0');\n  assert.same(trunc({}), NaN, '{} -> NaN');\n  assert.same(trunc([]), 0, '[] -> 0');\n  assert.same(trunc(1.01), 1, '1.01 -> 1');\n  assert.same(trunc(1.99), 1, '1.99 -> 1');\n  assert.same(trunc(-1), -1, '-1 -> -1');\n  assert.same(trunc(-1.99), -1, '-1.99 -> -1');\n  assert.same(trunc(-555.555), -555, '-555.555 -> -555');\n  assert.same(trunc(9007199254740992), 9007199254740992, '9007199254740992 -> 9007199254740992');\n  assert.same(trunc(-9007199254740992), -9007199254740992, '-9007199254740992 -> -9007199254740992');\n\n  const checker = createConversionChecker(-1.99);\n  assert.same(trunc(checker), -1, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.constructor.js",
    "content": "/* eslint-disable sonarjs/inconsistent-function-call -- required for testing */\nimport globalThis from 'core-js-pure/es/global-this';\nimport create from 'core-js-pure/es/object/create';\nimport Number from 'core-js-pure/es/number';\nimport Symbol from 'core-js-pure/es/symbol';\n\nconst NativeNumber = globalThis.Number;\nconst whitespaces = ' \\t\\u000B\\f\\u00A0\\uFEFF\\n\\r\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000';\n\nfunction getCheck(assert) {\n  return function (a, b) {\n    assert.same(Number(a), b, `Number ${ typeof a } ${ a } -> ${ b }`);\n    const x = new Number(a);\n    assert.same(x, Object(x), `new Number ${ typeof a } ${ a } is object`);\n    assert.same({}.toString.call(x).slice(8, -1), 'Number', `classof new Number ${ typeof a } ${ a } is Number`);\n    assert.same(x.valueOf(), b, `new Number(${ typeof a } ${ a }).valueOf() -> ${ b }`);\n  };\n}\n\nQUnit.test('Number constructor: regression', assert => {\n  const check = getCheck(assert);\n  assert.isFunction(Number);\n  assert.same(Number.prototype.constructor, NativeNumber);\n  assert.same(1.0.constructor, NativeNumber);\n  const constants = ['MAX_VALUE', 'MIN_VALUE', 'NaN', 'NEGATIVE_INFINITY', 'POSITIVE_INFINITY'];\n  for (const constant of constants) {\n    assert.true(constant in Number, `Number.${ constant }`);\n    assert.nonEnumerable(Number, constant);\n  }\n  assert.same(Number(), 0);\n  assert.same(new Number().valueOf(), 0);\n  check(42, 42);\n  check(42.42, 42.42);\n  check(new Number(42), 42);\n  check(new Number(42.42), 42.42);\n  check('42', 42);\n  check('42.42', 42.42);\n  check('0x42', 66);\n  check('0X42', 66);\n  check('0xzzz', NaN);\n  check('0x1g', NaN);\n  check('+0x1', NaN);\n  check('-0x1', NaN);\n  check('+0X1', NaN);\n  check('-0X1', NaN);\n  check(new String('42'), 42);\n  check(new String('42.42'), 42.42);\n  check(new String('0x42'), 66);\n  check(null, 0);\n  check(undefined, NaN);\n  check(false, 0);\n  check(true, 1);\n  check(new Boolean(false), 0);\n  check(new Boolean(true), 1);\n  check({}, NaN);\n  check({\n    valueOf: '1.1',\n  }, NaN);\n  check({\n    valueOf: '1.1',\n    toString() {\n      return '2.2';\n    },\n  }, 2.2);\n  check({\n    valueOf() {\n      return '1.1';\n    },\n  }, 1.1);\n  check({\n    valueOf() {\n      return '1.1';\n    },\n    toString() {\n      return '2.2';\n    },\n  }, 1.1);\n  check({\n    valueOf() {\n      return '-0x1a2b3c';\n    },\n  }, NaN);\n  check({\n    toString() {\n      return '-0x1a2b3c';\n    },\n  }, NaN);\n  check({\n    valueOf() {\n      return 42;\n    },\n  }, 42);\n  check({\n    valueOf() {\n      return '42';\n    },\n  }, 42);\n  check({\n    valueOf() {\n      return null;\n    },\n  }, 0);\n  check({\n    toString() {\n      return 42;\n    },\n  }, 42);\n  check({\n    toString() {\n      return '42';\n    },\n  }, 42);\n  check({\n    valueOf() {\n      return 1;\n    },\n    toString() {\n      return 2;\n    },\n  }, 1);\n  check({\n    valueOf: 1,\n    toString() {\n      return 2;\n    },\n  }, 2);\n  let number = 1;\n  assert.same(Number({\n    valueOf() {\n      return ++number;\n    },\n  }), 2, 'Number call valueOf only once #1');\n  assert.same(number, 2, 'Number call valueOf only once #2');\n  number = 1;\n  assert.same(Number({\n    toString() {\n      return ++number;\n    },\n  }), 2, 'Number call toString only once #1');\n  assert.same(number, 2, 'Number call toString only once #2');\n  number = 1;\n  assert.same(new Number({\n    valueOf() {\n      return ++number;\n    },\n  }).valueOf(), 2, 'new Number call valueOf only once #1');\n  assert.same(number, 2, 'new Number call valueOf only once #2');\n  number = 1;\n  assert.same(new Number({\n    toString() {\n      return ++number;\n    },\n  }).valueOf(), 2, 'new Number call toString only once #1');\n  assert.same(number, 2, 'new Number call toString only once #2');\n  assert.throws(() => Number(create(null)), TypeError, 'Number assert.throws on object w/o valueOf and toString');\n  assert.throws(() => Number({\n    valueOf: 1,\n    toString: 2,\n  }), TypeError, 'Number assert.throws on object then valueOf and toString are not functions');\n  assert.throws(() => new Number(create(null)), TypeError, 'new Number assert.throws on object w/o valueOf and toString');\n  assert.throws(() => new Number({\n    valueOf: 1,\n    toString: 2,\n  }), TypeError, 'new Number assert.throws on object then valueOf and toString are not functions');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('Number constructor test');\n    assert.throws(() => Number(symbol), 'throws on symbol argument');\n    assert.throws(() => new Number(symbol), 'throws on symbol argument, new');\n  }\n\n  number = new Number(42);\n  assert.same(typeof number.constructor(number), 'number');\n  check(`${ whitespaces }42`, 42);\n  check(`42${ whitespaces }`, 42);\n  check(`${ whitespaces }42${ whitespaces }`, 42);\n  check(`${ whitespaces }0x42`, 66);\n  check(`0x42${ whitespaces }`, 66);\n  check(`${ whitespaces }0x42${ whitespaces }`, 66);\n  check(`${ whitespaces }0X42`, 66);\n  check(`0X42${ whitespaces }`, 66);\n  check(`${ whitespaces }0X42${ whitespaces }`, 66);\n});\n\nQUnit.test('Number constructor: binary', assert => {\n  const check = getCheck(assert);\n  check('0b1', 1);\n  check('0B1', 1);\n  check('0b12', NaN);\n  check('0b234', NaN);\n  check('0b1!', NaN);\n  check('+0b1', NaN);\n  check('-0b1', NaN);\n  check(' 0b1', 1);\n  check('0b1\\n', 1);\n  check('\\n 0b1\\n ', 1);\n  check(' 0B1', 1);\n  check('0B1\\n', 1);\n  check('\\n 0B1\\n ', 1);\n  check({\n    valueOf() {\n      return '0b11';\n    },\n  }, 3);\n  check({\n    toString() {\n      return '0b111';\n    },\n  }, 7);\n  check({\n    valueOf() {\n      return '0b101010';\n    },\n  }, 42);\n  check({\n    toString() {\n      return '0b101010';\n    },\n  }, 42);\n  check(`${ whitespaces }0b11`, 3);\n  check(`0b11${ whitespaces }`, 3);\n  check(`${ whitespaces }0b11${ whitespaces }`, 3);\n  check(`${ whitespaces }0B11`, 3);\n  check(`0B11${ whitespaces }`, 3);\n  check(`${ whitespaces }0B11${ whitespaces }`, 3);\n});\n\nQUnit.test('Number constructor: octal', assert => {\n  const check = getCheck(assert);\n  check('0o7', 7);\n  check('0O7', 7);\n  check('0o18', NaN);\n  check('0o89a', NaN);\n  check('0o1!', NaN);\n  check('+0o1', NaN);\n  check('-0o1', NaN);\n  check(' 0o1', 1);\n  check('0o1\\n', 1);\n  check('\\n 0o1\\n ', 1);\n  check(' 0O1', 1);\n  check('0O1\\n', 1);\n  check('\\n 0O1\\n ', 1);\n  check({\n    valueOf() {\n      return '0o77';\n    },\n  }, 63);\n  check({\n    toString() {\n      return '0o777';\n    },\n  }, 511);\n  check({\n    valueOf() {\n      return '0o12345';\n    },\n  }, 5349);\n  check({\n    toString() {\n      return '0o12345';\n    },\n  }, 5349);\n  check(`${ whitespaces }0o11`, 9);\n  check(`0o11${ whitespaces }`, 9);\n  check(`${ whitespaces }0o11${ whitespaces }`, 9);\n  check(`${ whitespaces }0O11`, 9);\n  check(`0O11${ whitespaces }`, 9);\n  check(`${ whitespaces }0O11${ whitespaces }`, 9);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.epsilon.js",
    "content": "import EPSILON from 'core-js-pure/es/number/epsilon';\n\nQUnit.test('Number.EPSILON', assert => {\n  assert.same(EPSILON, 2 ** -52, 'Is 2^-52');\n  assert.notSame(1 + EPSILON, 1, '1 is not 1 + EPSILON');\n  assert.same(1 + EPSILON / 2, 1, '1 is 1 + EPSILON / 2');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.is-finite.js",
    "content": "import create from 'core-js-pure/es/object/create';\nimport isFinite from 'core-js-pure/es/number/is-finite';\n\nQUnit.test('Number.isFinite', assert => {\n  assert.isFunction(isFinite);\n  assert.name(isFinite, 'isFinite');\n  assert.arity(isFinite, 1);\n  const finite = [\n    1,\n    0.1,\n    -1,\n    2 ** 16,\n    2 ** 16 - 1,\n    2 ** 31,\n    2 ** 31 - 1,\n    2 ** 32,\n    2 ** 32 - 1,\n    -0,\n  ];\n  for (const value of finite) {\n    assert.true(isFinite(value), `isFinite ${ typeof value } ${ value }`);\n  }\n  const notFinite = [\n    NaN,\n    Infinity,\n    'NaN',\n    '5',\n    false,\n    new Number(NaN),\n    new Number(Infinity),\n    new Number(5),\n    new Number(0.1),\n    undefined,\n    null,\n    {},\n    function () { /* empty */ },\n  ];\n  for (const value of notFinite) {\n    assert.false(isFinite(value), `not isFinite ${ typeof value } ${ value }`);\n  }\n  assert.false(isFinite(create(null)), 'Number.isFinite(Object.create(null)) -> false');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.is-integer.js",
    "content": "import create from 'core-js-pure/es/object/create';\nimport isInteger from 'core-js-pure/es/number/is-integer';\n\nQUnit.test('Number.isInteger', assert => {\n  assert.isFunction(isInteger);\n  assert.name(isInteger, 'isInteger');\n  assert.arity(isInteger, 1);\n  const integers = [\n    1,\n    -1,\n    2 ** 16,\n    2 ** 16 - 1,\n    2 ** 31,\n    2 ** 31 - 1,\n    2 ** 32,\n    2 ** 32 - 1,\n    -0,\n  ];\n  for (const value of integers) {\n    assert.true(isInteger(value), `isInteger ${ typeof value } ${ value }`);\n  }\n  const notIntegers = [\n    NaN,\n    0.1,\n    Infinity,\n    'NaN',\n    '5',\n    false,\n    new Number(NaN),\n    new Number(Infinity),\n    new Number(5),\n    new Number(0.1),\n    undefined,\n    null,\n    {},\n    function () { /* empty */ },\n  ];\n  for (const value of notIntegers) {\n    assert.false(isInteger(value), `not isInteger ${ typeof value } ${ value }`);\n  }\n  assert.false(isInteger(create(null)), 'Number.isInteger(Object.create(null)) -> false');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.is-nan.js",
    "content": "import create from 'core-js-pure/es/object/create';\nimport isNaN from 'core-js-pure/es/number/is-nan';\n\nQUnit.test('Number.isNaN', assert => {\n  assert.isFunction(isNaN);\n  assert.name(isNaN, 'isNaN');\n  assert.arity(isNaN, 1);\n  assert.true(isNaN(NaN), 'Number.isNaN NaN');\n  const notNaNs = [\n    1,\n    0.1,\n    -1,\n    2 ** 16,\n    2 ** 16 - 1,\n    2 ** 31,\n    2 ** 31 - 1,\n    2 ** 32,\n    2 ** 32 - 1,\n    -0,\n    Infinity,\n    'NaN',\n    '5',\n    false,\n    new Number(NaN),\n    new Number(Infinity),\n    new Number(5),\n    new Number(0.1),\n    undefined,\n    null,\n    {},\n    function () { /* empty */ },\n  ];\n  for (const value of notNaNs) {\n    assert.false(isNaN(value), `not Number.isNaN ${ typeof value } ${ value }`);\n  }\n  assert.false(isNaN(create(null)), 'Number.isNaN(Object.create(null)) -> false');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.is-safe-integer.js",
    "content": "import { MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js';\nimport create from 'core-js-pure/es/object/create';\nimport isSafeInteger from 'core-js-pure/es/number/is-safe-integer';\n\nQUnit.test('Number.isSafeInteger', assert => {\n  assert.isFunction(isSafeInteger);\n  assert.name(isSafeInteger, 'isSafeInteger');\n  assert.arity(isSafeInteger, 1);\n  const safeIntegers = [\n    1,\n    -1,\n    2 ** 16,\n    2 ** 16 - 1,\n    2 ** 31,\n    2 ** 31 - 1,\n    2 ** 32,\n    2 ** 32 - 1,\n    -0,\n    MAX_SAFE_INTEGER,\n    MIN_SAFE_INTEGER,\n  ];\n  for (const value of safeIntegers) {\n    assert.true(isSafeInteger(value), `isSafeInteger ${ typeof value } ${ value }`);\n  }\n  const notSafeIntegers = [\n    MAX_SAFE_INTEGER + 1,\n    MIN_SAFE_INTEGER - 1,\n    NaN,\n    0.1,\n    Infinity,\n    'NaN',\n    '5',\n    false,\n    new Number(NaN),\n    new Number(Infinity),\n    new Number(5),\n    new Number(0.1),\n    undefined,\n    null,\n    {},\n    function () { /* empty */ },\n  ];\n  for (const value of notSafeIntegers) {\n    assert.false(isSafeInteger(value), `not isSafeInteger ${ typeof value } ${ value }`);\n  }\n  assert.false(isSafeInteger(create(null)), 'Number.isSafeInteger(Object.create(null)) -> false');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.max-safe-integer.js",
    "content": "import MAX_SAFE_INTEGER from 'core-js-pure/es/number/max-safe-integer';\n\nQUnit.test('Number.MAX_SAFE_INTEGER', assert => {\n  assert.same(MAX_SAFE_INTEGER, 2 ** 53 - 1, 'Is 2^53 - 1');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.min-safe-integer.js",
    "content": "import MIN_SAFE_INTEGER from 'core-js-pure/es/number/min-safe-integer';\n\nQUnit.test('Number.MIN_SAFE_INTEGER', assert => {\n  assert.same(MIN_SAFE_INTEGER, -(2 ** 53) + 1, 'Is -2^53 + 1');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.parse-float.js",
    "content": "import { WHITESPACES } from '../helpers/constants.js';\n\nimport parseFloat from 'core-js-pure/es/number/parse-float';\n\nQUnit.test('Number.parseFloat', assert => {\n  assert.isFunction(parseFloat);\n  assert.arity(parseFloat, 1);\n  assert.name(parseFloat, 'parseFloat');\n  assert.same(parseFloat('0'), 0);\n  assert.same(parseFloat(' 0'), 0);\n  assert.same(parseFloat('+0'), 0);\n  assert.same(parseFloat(' +0'), 0);\n  assert.same(parseFloat('-0'), -0);\n  assert.same(parseFloat(' -0'), -0);\n  assert.same(parseFloat(`${ WHITESPACES }+0`), 0);\n  assert.same(parseFloat(`${ WHITESPACES }-0`), -0);\n  assert.same(parseFloat(null), NaN);\n  assert.same(parseFloat(undefined), NaN);\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    const symbol = Symbol('Number.parseFloat test');\n    assert.throws(() => parseFloat(symbol), 'throws on symbol argument');\n    assert.throws(() => parseFloat(Object(symbol)), 'throws on boxed symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.parse-int.js",
    "content": "/* eslint-disable prefer-numeric-literals -- required for testing */\nimport { WHITESPACES } from '../helpers/constants.js';\n\nimport parseInt from 'core-js-pure/es/number/parse-int';\n\nQUnit.test('Number.parseInt', assert => {\n  assert.isFunction(parseInt);\n  assert.arity(parseInt, 2);\n  assert.name(parseInt, 'parseInt');\n  for (let radix = 2; radix <= 36; ++radix) {\n    assert.same(parseInt('10', radix), radix, `radix ${ radix }`);\n  }\n  const strings = ['01', '08', '10', '42'];\n  for (const string of strings) {\n    assert.same(parseInt(string), parseInt(string, 10), `default radix is 10: ${ string }`);\n  }\n  assert.same(parseInt('0x16'), parseInt('0x16', 16), 'default radix is 16: 0x16');\n  assert.same(parseInt('  0x16'), parseInt('0x16', 16), 'ignores leading whitespace #1');\n  assert.same(parseInt('  42'), parseInt('42', 10), 'ignores leading whitespace #2');\n  assert.same(parseInt('  08'), parseInt('08', 10), 'ignores leading whitespace #3');\n  assert.same(parseInt(`${ WHITESPACES }08`), parseInt('08', 10), 'ignores leading whitespace #4');\n  assert.same(parseInt(`${ WHITESPACES }0x16`), parseInt('0x16', 16), 'ignores leading whitespace #5');\n  const fakeZero = {\n    valueOf() {\n      return 0;\n    },\n  };\n  assert.same(parseInt('08', fakeZero), parseInt('08', 10), 'valueOf #1');\n  assert.same(parseInt('0x16', fakeZero), parseInt('0x16', 16), 'valueOf #2');\n  assert.same(parseInt('-0xF'), -15, 'signed hex #1');\n  assert.same(parseInt('-0xF', 16), -15, 'signed hex #2');\n  assert.same(parseInt('+0xF'), 15, 'signed hex #3');\n  assert.same(parseInt('+0xF', 16), 15, 'signed hex #4');\n  assert.same(parseInt('10', -4294967294), 2, 'radix uses ToUint32');\n  assert.same(parseInt(null), NaN);\n  assert.same(parseInt(undefined), NaN);\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    const symbol = Symbol('Number.parseInt test');\n    assert.throws(() => parseInt(symbol), 'throws on symbol argument');\n    assert.throws(() => parseInt(Object(symbol)), 'throws on boxed symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.to-exponential.js",
    "content": "import toExponential from 'core-js-pure/es/number/virtual/to-exponential';\n\nQUnit.test('Number#toExponential', assert => {\n  assert.isFunction(toExponential);\n\n  assert.same(toExponential.call(0.00008, 3), '8.000e-5');\n  assert.same(toExponential.call(0.9, 0), '9e-1');\n  assert.same(toExponential.call(1.255, 2), '1.25e+0');\n  assert.same(toExponential.call(1843654265.0774949, 5), '1.84365e+9');\n  assert.same(toExponential.call(1000000000000000128.0, 0), '1e+18');\n\n  assert.same(toExponential.call(1), '1e+0');\n  assert.same(toExponential.call(1, 0), '1e+0');\n  assert.same(toExponential.call(1, 1), '1.0e+0');\n  assert.same(toExponential.call(1, 1.1), '1.0e+0');\n  assert.same(toExponential.call(1, 0.9), '1e+0');\n  assert.same(toExponential.call(1, '0'), '1e+0');\n  assert.same(toExponential.call(1, '1'), '1.0e+0');\n  assert.same(toExponential.call(1, '1.1'), '1.0e+0');\n  assert.same(toExponential.call(1, '0.9'), '1e+0');\n  assert.same(toExponential.call(1, NaN), '1e+0');\n  assert.same(toExponential.call(1, 'some string'), '1e+0');\n  assert.notThrows(() => toExponential.call(1, -0.1) === '1e+0');\n  assert.same(toExponential.call(new Number(1)), '1e+0');\n  assert.same(toExponential.call(new Number(1), 0), '1e+0');\n  assert.same(toExponential.call(new Number(1), 1), '1.0e+0');\n  assert.same(toExponential.call(new Number(1), 1.1), '1.0e+0');\n  assert.same(toExponential.call(new Number(1), 0.9), '1e+0');\n  assert.same(toExponential.call(new Number(1), '0'), '1e+0');\n  assert.same(toExponential.call(new Number(1), '1'), '1.0e+0');\n  assert.same(toExponential.call(new Number(1), '1.1'), '1.0e+0');\n  assert.same(toExponential.call(new Number(1), '0.9'), '1e+0');\n  assert.same(toExponential.call(new Number(1), NaN), '1e+0');\n  assert.same(toExponential.call(new Number(1), 'some string'), '1e+0');\n  assert.notThrows(() => toExponential.call(new Number(1), -0.1) === '1e+0');\n  assert.same(toExponential.call(NaN), 'NaN');\n  assert.same(toExponential.call(NaN, 0), 'NaN');\n  assert.same(toExponential.call(NaN, 1), 'NaN');\n  assert.same(toExponential.call(NaN, 1.1), 'NaN');\n  assert.same(toExponential.call(NaN, 0.9), 'NaN');\n  assert.same(toExponential.call(NaN, '0'), 'NaN');\n  assert.same(toExponential.call(NaN, '1'), 'NaN');\n  assert.same(toExponential.call(NaN, '1.1'), 'NaN');\n  assert.same(toExponential.call(NaN, '0.9'), 'NaN');\n  assert.same(toExponential.call(NaN, NaN), 'NaN');\n  assert.same(toExponential.call(NaN, 'some string'), 'NaN');\n  assert.notThrows(() => toExponential.call(NaN, -0.1) === 'NaN');\n\n  assert.same(toExponential.call(new Number(1e21)), '1e+21');\n  assert.same(toExponential.call(new Number(1e21), 0), '1e+21');\n  assert.same(toExponential.call(new Number(1e21), 1), '1.0e+21');\n  assert.same(toExponential.call(new Number(1e21), 1.1), '1.0e+21');\n  assert.same(toExponential.call(new Number(1e21), 0.9), '1e+21');\n  assert.same(toExponential.call(new Number(1e21), '0'), '1e+21');\n  assert.same(toExponential.call(new Number(1e21), '1'), '1.0e+21');\n  assert.same(toExponential.call(new Number(1e21), '1.1'), '1.0e+21');\n  assert.same(toExponential.call(new Number(1e21), '0.9'), '1e+21');\n  assert.same(toExponential.call(new Number(1e21), NaN), '1e+21');\n  assert.same(toExponential.call(new Number(1e21), 'some string'), '1e+21');\n\n  assert.same(toExponential.call(5, 19), '5.0000000000000000000e+0');\n\n  // ported from tests262, the license: https://github.com/tc39/test262/blob/main/LICENSE\n  assert.same(toExponential.call(123.456, 0), '1e+2');\n  assert.same(toExponential.call(123.456, 1), '1.2e+2');\n  assert.same(toExponential.call(123.456, 2), '1.23e+2');\n  assert.same(toExponential.call(123.456, 3), '1.235e+2');\n  assert.same(toExponential.call(123.456, 4), '1.2346e+2');\n  assert.same(toExponential.call(123.456, 5), '1.23456e+2');\n  assert.same(toExponential.call(123.456, 6), '1.234560e+2');\n  assert.same(toExponential.call(123.456, 7), '1.2345600e+2');\n  // assert.same(toExponential.call(123.456, 17), '1.23456000000000003e+2');\n  // assert.same(toExponential.call(123.456, 20), '1.23456000000000003070e+2');\n\n  assert.same(toExponential.call(-123.456, 0), '-1e+2');\n  assert.same(toExponential.call(-123.456, 1), '-1.2e+2');\n  assert.same(toExponential.call(-123.456, 2), '-1.23e+2');\n  assert.same(toExponential.call(-123.456, 3), '-1.235e+2');\n  assert.same(toExponential.call(-123.456, 4), '-1.2346e+2');\n  assert.same(toExponential.call(-123.456, 5), '-1.23456e+2');\n  assert.same(toExponential.call(-123.456, 6), '-1.234560e+2');\n  assert.same(toExponential.call(-123.456, 7), '-1.2345600e+2');\n  // assert.same(toExponential.call(-123.456, 17), '-1.23456000000000003e+2');\n  // assert.same(toExponential.call(-123.456, 20), '-1.23456000000000003070e+2');\n\n  assert.same(toExponential.call(0.0001, 0), '1e-4');\n  assert.same(toExponential.call(0.0001, 1), '1.0e-4');\n  assert.same(toExponential.call(0.0001, 2), '1.00e-4');\n  assert.same(toExponential.call(0.0001, 3), '1.000e-4');\n  assert.same(toExponential.call(0.0001, 4), '1.0000e-4');\n  // assert.same(toExponential.call(0.0001, 16), '1.0000000000000000e-4');\n  // assert.same(toExponential.call(0.0001, 17), '1.00000000000000005e-4');\n  // assert.same(toExponential.call(0.0001, 18), '1.000000000000000048e-4');\n  // assert.same(toExponential.call(0.0001, 19), '1.0000000000000000479e-4');\n  // assert.same(toExponential.call(0.0001, 20), '1.00000000000000004792e-4');\n\n  assert.same(toExponential.call(0.9999, 0), '1e+0');\n  assert.same(toExponential.call(0.9999, 1), '1.0e+0');\n  assert.same(toExponential.call(0.9999, 2), '1.00e+0');\n  assert.same(toExponential.call(0.9999, 3), '9.999e-1');\n  assert.same(toExponential.call(0.9999, 4), '9.9990e-1');\n  // assert.same(toExponential.call(0.9999, 16), '9.9990000000000001e-1');\n  // assert.same(toExponential.call(0.9999, 17), '9.99900000000000011e-1');\n  // assert.same(toExponential.call(0.9999, 18), '9.999000000000000110e-1');\n  // assert.same(toExponential.call(0.9999, 19), '9.9990000000000001101e-1');\n  // assert.same(toExponential.call(0.9999, 20), '9.99900000000000011013e-1');\n\n  assert.same(toExponential.call(25, 0), '3e+1'); // FF86- and Chrome 49-50 bugs\n  assert.same(toExponential.call(12345, 3), '1.235e+4'); // FF86- and Chrome 49-50 bugs\n\n  assert.same(toExponential.call(Number.prototype, 0), '0e+0', 'Number.prototype, 0');\n  assert.same(toExponential.call(0, 0), '0e+0', '0, 0');\n  assert.same(toExponential.call(-0, 0), '0e+0', '-0, 0');\n  assert.same(toExponential.call(0, -0), '0e+0', '0, -0');\n  assert.same(toExponential.call(-0, -0), '0e+0', '-0, -0');\n  assert.same(toExponential.call(0, 1), '0.0e+0', '0 and 1');\n  assert.same(toExponential.call(0, 2), '0.00e+0', '0 and 2');\n  assert.same(toExponential.call(0, 7), '0.0000000e+0', '0 and 7');\n  assert.same(toExponential.call(0, 20), '0.00000000000000000000e+0', '0 and 20');\n  assert.same(toExponential.call(-0, 1), '0.0e+0', '-0 and 1');\n  assert.same(toExponential.call(-0, 2), '0.00e+0', '-0 and 2');\n  assert.same(toExponential.call(-0, 7), '0.0000000e+0', '-0 and 7');\n  assert.same(toExponential.call(-0, 20), '0.00000000000000000000e+0', '-0 and 20');\n\n  // overflow / underflow edge cases\n  assert.same(toExponential.call(9e307, 0), '9e+307', '9e307, 0');\n  assert.same(toExponential.call(-9e307, 0), '-9e+307', '-9e307, 0');\n  assert.same(toExponential.call(Number.MAX_VALUE, 0), '2e+308', 'MAX_VALUE, 0');\n  assert.same(toExponential.call(Number.MAX_VALUE, 5), '1.79769e+308', 'MAX_VALUE, 5');\n  assert.same(toExponential.call(Number.MIN_VALUE, 0), '5e-324', 'MIN_VALUE, 0');\n  assert.same(toExponential.call(Number.MIN_VALUE, 1), '4.9e-324', 'MIN_VALUE, 1');\n  assert.same(toExponential.call(1e-323, 0), '1e-323', '1e-323, 0');\n\n  assert.same(toExponential.call(NaN, 1000), 'NaN', 'NaN check before fractionDigits check');\n  assert.same(toExponential.call(Infinity, 1000), 'Infinity', 'Infinity check before fractionDigits check');\n  assert.notThrows(() => toExponential.call(new Number(1e21), -0.1) === '1e+21');\n  assert.throws(() => toExponential.call(1.0, -101), RangeError, 'If f < 0 or f > 20 (100), throw a RangeError exception.');\n  assert.throws(() => toExponential.call(1.0, 101), RangeError, 'If f < 0 or f > 20 (100), throw a RangeError exception.');\n  assert.throws(() => toExponential.call({}, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toExponential.call('123', 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toExponential.call(false, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toExponential.call(null, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toExponential.call(undefined, 1), TypeError, '? thisNumberValue(this value)');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.to-fixed.js",
    "content": "import toFixed from 'core-js-pure/es/number/to-fixed';\n\nQUnit.test('Number#toFixed', assert => {\n  assert.isFunction(toFixed);\n  assert.same(toFixed(0.00008, 3), '0.000');\n  assert.same(toFixed(0.9, 0), '1');\n  assert.same(toFixed(1.255, 2), '1.25');\n  assert.same(toFixed(1843654265.0774949, 5), '1843654265.07749');\n  assert.same(toFixed(1000000000000000128, 0), '1000000000000000128');\n  assert.same(toFixed(1), '1');\n  assert.same(toFixed(1, 0), '1');\n  assert.same(toFixed(1, 1), '1.0');\n  assert.same(toFixed(1, 1.1), '1.0');\n  assert.same(toFixed(1, 0.9), '1');\n  assert.same(toFixed(1, '0'), '1');\n  assert.same(toFixed(1, '1'), '1.0');\n  assert.same(toFixed(1, '1.1'), '1.0');\n  assert.same(toFixed(1, '0.9'), '1');\n  assert.same(toFixed(1, NaN), '1');\n  assert.same(toFixed(1, 'some string'), '1');\n  assert.notThrows(() => toFixed(1, -0.1) === '1');\n  assert.same(toFixed(Object(1)), '1');\n  assert.same(toFixed(Object(1), 0), '1');\n  assert.same(toFixed(Object(1), 1), '1.0');\n  assert.same(toFixed(Object(1), 1.1), '1.0');\n  assert.same(toFixed(Object(1), 0.9), '1');\n  assert.same(toFixed(Object(1), '0'), '1');\n  assert.same(toFixed(Object(1), '1'), '1.0');\n  assert.same(toFixed(Object(1), '1.1'), '1.0');\n  assert.same(toFixed(Object(1), '0.9'), '1');\n  assert.same(toFixed(Object(1), NaN), '1');\n  assert.same(toFixed(Object(1), 'some string'), '1');\n  assert.notThrows(() => toFixed(Object(1), -0.1) === '1');\n  assert.same(toFixed(NaN), 'NaN');\n  assert.same(toFixed(NaN, 0), 'NaN');\n  assert.same(toFixed(NaN, 1), 'NaN');\n  assert.same(toFixed(NaN, 1.1), 'NaN');\n  assert.same(toFixed(NaN, 0.9), 'NaN');\n  assert.same(toFixed(NaN, '0'), 'NaN');\n  assert.same(toFixed(NaN, '1'), 'NaN');\n  assert.same(toFixed(NaN, '1.1'), 'NaN');\n  assert.same(toFixed(NaN, '0.9'), 'NaN');\n  assert.same(toFixed(NaN, NaN), 'NaN');\n  assert.same(toFixed(NaN, 'some string'), 'NaN');\n  assert.notThrows(() => toFixed(NaN, -0.1) === 'NaN');\n  assert.same(toFixed(1e21), String(1e21));\n  assert.same(toFixed(1e21, 0), String(1e21));\n  assert.same(toFixed(1e21, 1), String(1e21));\n  assert.same(toFixed(1e21, 1.1), String(1e21));\n  assert.same(toFixed(1e21, 0.9), String(1e21));\n  assert.same(toFixed(1e21, '0'), String(1e21));\n  assert.same(toFixed(1e21, '1'), String(1e21));\n  assert.same(toFixed(1e21, '1.1'), String(1e21));\n  assert.same(toFixed(1e21, '0.9'), String(1e21));\n  assert.same(toFixed(1e21, NaN), String(1e21));\n  assert.same(toFixed(1e21, 'some string'), String(1e21));\n  assert.notThrows(() => toFixed(1e21, -0.1) === String(1e21));\n  assert.throws(() => toFixed(1, -101), RangeError, 'If f < 0 or f > 20 (100), throw a RangeError exception.');\n  assert.throws(() => toFixed(1, 101), RangeError, 'If f < 0 or f > 20 (100), throw a RangeError exception.');\n  assert.throws(() => toFixed(NaN, Infinity), RangeError, 'If f < 0 or f > 20 (100), throw a RangeError exception.');\n  assert.throws(() => toFixed({}, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toFixed('123', 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toFixed(false, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toFixed(null, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toFixed(undefined, 1), TypeError, '? thisNumberValue(this value)');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.number.to-precision.js",
    "content": "import toPrecision from 'core-js-pure/es/number/to-precision';\n\nQUnit.test('Number#toPrecision', assert => {\n  assert.isFunction(toPrecision);\n  assert.same(toPrecision(0.00008, 3), '0.0000800', '0.00008.toPrecision(3)');\n  assert.same(toPrecision(1.255, 2), '1.3', '1.255.toPrecision(2)');\n  assert.same(toPrecision(1843654265.0774949, 13), '1843654265.077', '1843654265.0774949.toPrecision(13)');\n  assert.same(toPrecision(NaN, 1), 'NaN', 'If x is NaN, return the String \"NaN\".');\n  assert.same(toPrecision(123.456), '123.456', 'If precision is undefined, return ! ToString(x).');\n  assert.same(toPrecision(123.456, undefined), '123.456', 'If precision is undefined, return ! ToString(x).');\n  assert.throws(() => toPrecision(0.9, 0), RangeError, 'If p < 1 or p > 21, throw a RangeError exception.');\n  assert.throws(() => toPrecision(0.9, 101), RangeError, 'If p < 1 or p > 21, throw a RangeError exception.');\n  assert.throws(() => toPrecision({}, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toPrecision('123', 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toPrecision(false, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toPrecision(null, 1), TypeError, '? thisNumberValue(this value)');\n  assert.throws(() => toPrecision(undefined, 1), TypeError, '? thisNumberValue(this value)');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.assign.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport defineProperty from 'core-js-pure/es/object/define-property';\nimport keys from 'core-js-pure/es/object/keys';\nimport assign from 'core-js-pure/es/object/assign';\n\nQUnit.test('Object.assign', assert => {\n  assert.isFunction(assign);\n  assert.arity(assign, 2);\n  assert.name(assign, 'assign');\n  let object = { q: 1 };\n  assert.same(object, assign(object, { bar: 2 }), 'assign return target');\n  assert.same(object.bar, 2, 'assign define properties');\n  assert.deepEqual(assign({}, { q: 1 }, { w: 2 }), { q: 1, w: 2 });\n  assert.deepEqual(assign({}, 'qwe'), { 0: 'q', 1: 'w', 2: 'e' });\n  assert.throws(() => assign(null, { q: 1 }), TypeError);\n  assert.throws(() => assign(undefined, { q: 1 }), TypeError);\n  let string = assign('qwe', { q: 1 });\n  assert.same(typeof string, 'object');\n  assert.same(String(string), 'qwe');\n  assert.same(string.q, 1);\n  assert.same(assign({}, { valueOf: 42 }).valueOf, 42, 'IE enum keys bug');\n  if (DESCRIPTORS) {\n    object = { baz: 1 };\n    assign(object, defineProperty({}, 'bar', {\n      get() {\n        return this.baz + 1;\n      },\n    }));\n    assert.same(object.bar, undefined, \"assign don't copy descriptors\");\n    object = { a: 'a' };\n    const c = Symbol('c');\n    const d = Symbol('d');\n    object[c] = 'c';\n    defineProperty(object, 'b', { value: 'b' });\n    defineProperty(object, d, { value: 'd' });\n    const object2 = assign({}, object);\n    assert.same(object2.a, 'a', 'a');\n    assert.same(object2.b, undefined, 'b');\n    assert.same(object2[c], 'c', 'c');\n    assert.same(object2[d], undefined, 'd');\n    try {\n      assert.same(Function('assign', `\n        return assign({ b: 1 }, { get a() {\n          delete this.b;\n        }, b: 2 });\n      `)(assign).b, 1);\n    } catch { /* empty */ }\n    try {\n      assert.same(Function('assign', `\n        return assign({ b: 1 }, { get a() {\n          Object.defineProperty(this, \"b\", {\n            value: 3,\n            enumerable: false\n          });\n        }, b: 2 });\n      `)(assign).b, 1);\n    } catch { /* empty */ }\n  }\n  string = 'abcdefghijklmnopqrst';\n  const result = {};\n  for (let i = 0, { length } = string; i < length; ++i) {\n    const chr = string.charAt(i);\n    result[chr] = chr;\n  }\n  assert.same(keys(assign({}, result)).join(''), string);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.create.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nimport getPrototypeOf from 'core-js-pure/es/object/get-prototype-of';\nimport getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names';\nimport create from 'core-js-pure/es/object/create';\n\nQUnit.test('Object.create', assert => {\n  function getPropertyNames(object) {\n    let result = [];\n    do {\n      result = result.concat(getOwnPropertyNames(object));\n    } while (object = getPrototypeOf(object));\n    return result;\n  }\n  assert.isFunction(create);\n  assert.arity(create, 2);\n  assert.name(create, 'create');\n  let object = { q: 1 };\n  assert.true({}.isPrototypeOf.call(object, create(object)));\n  assert.same(create(object).q, 1);\n  function C() {\n    return this.a = 1;\n  }\n  assert.true(create(new C()) instanceof C);\n  assert.same(C.prototype, getPrototypeOf(getPrototypeOf(create(new C()))));\n  assert.same(create(new C()).a, 1);\n  assert.same(create({}, { a: { value: 42 } }).a, 42);\n  object = create(null, { w: { value: 2 } });\n  assert.same(object, Object(object));\n  assert.false('toString' in object);\n  assert.same(object.w, 2);\n  assert.deepEqual(getPropertyNames(create(null)), []);\n});\n\nQUnit.test('Object.create.sham flag', assert => {\n  assert.same(create.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.define-getter.js",
    "content": "/* eslint-disable id-match -- unification with global tests */\nimport { DESCRIPTORS, STRICT } from '../helpers/constants.js';\n\nimport __defineGetter__ from 'core-js-pure/es/object/define-getter';\nimport __defineSetter__ from 'core-js-pure/es/object/define-setter';\n\nif (DESCRIPTORS) {\n  QUnit.test('Object#__defineGetter__', assert => {\n    assert.isFunction(__defineGetter__);\n    const object = {};\n    assert.same(__defineGetter__(object, 'key', () => 42), undefined, 'void');\n    assert.same(object.key, 42, 'works');\n    __defineSetter__(object, 'key', function () {\n      this.foo = 43;\n    });\n    object.key = 44;\n    assert.same(object.key, 42, 'works with setter #1');\n    assert.same(object.foo, 43, 'works with setter #2');\n    if (STRICT) {\n      assert.throws(() => __defineGetter__(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`');\n      assert.throws(() => __defineGetter__(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`');\n    }\n  });\n}\n"
  },
  {
    "path": "tests/unit-pure/es.object.define-properties.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nimport defineProperties from 'core-js-pure/es/object/define-properties';\n\nQUnit.test('Object.defineProperties', assert => {\n  assert.isFunction(defineProperties);\n  assert.arity(defineProperties, 2);\n  assert.name(defineProperties, 'defineProperties');\n  const source = {};\n  const result = defineProperties(source, { q: { value: 42 }, w: { value: 33 } });\n  assert.same(result, source);\n  assert.same(result.q, 42);\n  assert.same(result.w, 33);\n\n  if (DESCRIPTORS) {\n    // eslint-disable-next-line prefer-arrow-callback -- required for testing\n    assert.same(defineProperties(function () { /* empty */ }, { prototype: {\n      value: 42,\n      writable: false,\n    } }).prototype, 42, 'function prototype with non-writable descriptor');\n  }\n});\n\nQUnit.test('Object.defineProperties.sham flag', assert => {\n  assert.same(defineProperties.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.define-property.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nimport create from 'core-js-pure/es/object/create';\nimport defineProperty from 'core-js-pure/es/object/define-property';\n\nQUnit.test('Object.defineProperty', assert => {\n  assert.isFunction(defineProperty);\n  assert.arity(defineProperty, 3);\n  assert.name(defineProperty, 'defineProperty');\n  const source = {};\n  const result = defineProperty(source, 'q', {\n    value: 42,\n  });\n  assert.same(result, source);\n  assert.same(result.q, 42);\n\n  if (DESCRIPTORS) {\n    // eslint-disable-next-line prefer-arrow-callback -- required for testing\n    assert.same(defineProperty(function () { /* empty */ }, 'prototype', {\n      value: 42,\n      writable: false,\n    }).prototype, 42, 'function prototype with non-writable descriptor');\n  }\n\n  assert.throws(() => defineProperty(42, 1, {}));\n  assert.throws(() => defineProperty({}, create(null), {}));\n  assert.throws(() => defineProperty({}, 1, 1));\n});\n\nQUnit.test('Object.defineProperty.sham flag', assert => {\n  assert.same(defineProperty.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.define-setter.js",
    "content": "/* eslint-disable id-match -- unification with global tests */\nimport { DESCRIPTORS, STRICT } from '../helpers/constants.js';\n\nimport __defineGetter__ from 'core-js-pure/es/object/define-getter';\nimport __defineSetter__ from 'core-js-pure/es/object/define-setter';\n\nif (DESCRIPTORS) {\n  QUnit.test('Object#__defineSetter__', assert => {\n    assert.isFunction(__defineSetter__);\n    let object = {};\n    assert.same(__defineSetter__(object, 'key', function () {\n      this.foo = 43;\n    }), undefined, 'void');\n    object.key = 44;\n    assert.same(object.foo, 43, 'works');\n    object = {};\n    __defineSetter__(object, 'key', function () {\n      this.foo = 43;\n    });\n    __defineGetter__(object, 'key', () => 42);\n    object.key = 44;\n    assert.same(object.key, 42, 'works with getter #1');\n    assert.same(object.foo, 43, 'works with getter #2');\n    if (STRICT) {\n      assert.throws(() => __defineSetter__(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`');\n      assert.throws(() => __defineSetter__(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`');\n    }\n  });\n}\n"
  },
  {
    "path": "tests/unit-pure/es.object.entries.js",
    "content": "import assign from 'core-js-pure/es/object/assign';\nimport create from 'core-js-pure/es/object/create';\nimport entries from 'core-js-pure/es/object/entries';\n\nQUnit.test('Object.entries', assert => {\n  assert.isFunction(entries);\n  assert.arity(entries, 1);\n  assert.name(entries, 'entries');\n  assert.deepEqual(entries({ q: 1, w: 2, e: 3 }), [['q', 1], ['w', 2], ['e', 3]]);\n  assert.deepEqual(entries(new String('qwe')), [['0', 'q'], ['1', 'w'], ['2', 'e']]);\n  assert.deepEqual(entries(assign(create({ q: 1, w: 2, e: 3 }), { a: 4, s: 5, d: 6 })), [['a', 4], ['s', 5], ['d', 6]]);\n  assert.deepEqual(entries({ valueOf: 42 }), [['valueOf', 42]], 'IE enum keys bug');\n  try {\n    assert.deepEqual(Function('entries', `\n      return entries({ a: 1, get b() {\n        delete this.c;\n        return 2;\n      }, c: 3 });\n    `)(entries), [['a', 1], ['b', 2]]);\n  } catch { /* empty */ }\n  try {\n    assert.deepEqual(Function('entries', `\n      return entries({ a: 1, get b() {\n        Object.defineProperty(this, \"c\", {\n          value: 4,\n          enumerable: false\n        });\n        return 2\n      }, c: 3 });\n    `)(entries), [['a', 1], ['b', 2]]);\n  } catch { /* empty */ }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.freeze.js",
    "content": "import ownKeys from 'core-js-pure/es/reflect/own-keys';\nimport keys from 'core-js-pure/es/object/keys';\nimport getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names';\nimport getOwnPropertySymbols from 'core-js-pure/es/object/get-own-property-symbols';\nimport freeze from 'core-js-pure/es/object/freeze';\n\nQUnit.test('Object.freeze', assert => {\n  assert.isFunction(freeze);\n  assert.arity(freeze, 1);\n  assert.name(freeze, 'freeze');\n  const data = [42, 'foo', false, null, undefined, {}];\n  for (const value of data) {\n    assert.notThrows(() => freeze(value) || true, `accept ${ {}.toString.call(value).slice(8, -1) }`);\n    assert.same(freeze(value), value, `returns target on ${ {}.toString.call(value).slice(8, -1) }`);\n  }\n  const results = [];\n  for (const key in freeze({})) results.push(key);\n  assert.arrayEqual(results, []);\n  assert.arrayEqual(keys(freeze({})), []);\n  assert.arrayEqual(getOwnPropertyNames(freeze({})), []);\n  assert.arrayEqual(getOwnPropertySymbols(freeze({})), []);\n  assert.arrayEqual(ownKeys(freeze({})), []);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.from-entries.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport Set from 'core-js-pure/es/set';\nimport fromEntries from 'core-js-pure/es/object/from-entries';\n\nQUnit.test('Object.fromEntries', assert => {\n  assert.isFunction(fromEntries);\n  assert.arity(fromEntries, 1);\n  assert.name(fromEntries, 'fromEntries');\n\n  assert.true(fromEntries([]) instanceof Object);\n  assert.same(fromEntries([['foo', 1]]).foo, 1);\n  assert.same(fromEntries(createIterable([['bar', 2]])).bar, 2);\n\n  class Unit {\n    constructor(id) {\n      this.id = id;\n    }\n    toString() {\n      return `unit${ this.id }`;\n    }\n  }\n  const units = new Set([new Unit(101), new Unit(102), new Unit(103)]);\n  const object = fromEntries(units.entries());\n  assert.same(object.unit101.id, 101);\n  assert.same(object.unit102.id, 102);\n  assert.same(object.unit103.id, 103);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.get-own-property-descriptor.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nimport getOwnPropertyDescriptor from 'core-js-pure/es/object/get-own-property-descriptor';\n\nQUnit.test('Object.getOwnPropertyDescriptor', assert => {\n  assert.isFunction(getOwnPropertyDescriptor);\n  assert.arity(getOwnPropertyDescriptor, 2);\n  assert.name(getOwnPropertyDescriptor, 'getOwnPropertyDescriptor');\n  assert.deepEqual(getOwnPropertyDescriptor({ q: 42 }, 'q'), {\n    writable: true,\n    enumerable: true,\n    configurable: true,\n    value: 42,\n  });\n  assert.same(getOwnPropertyDescriptor({}, 'toString'), undefined);\n  const primitives = [42, 'foo', false];\n  for (const value of primitives) {\n    assert.notThrows(() => getOwnPropertyDescriptor(value) || true, `accept ${ typeof value }`);\n  }\n  assert.throws(() => getOwnPropertyDescriptor(null), TypeError, 'throws on null');\n  assert.throws(() => getOwnPropertyDescriptor(undefined), TypeError, 'throws on undefined');\n});\n\nQUnit.test('Object.getOwnPropertyDescriptor.sham flag', assert => {\n  assert.same(getOwnPropertyDescriptor.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.get-own-property-descriptors.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport create from 'core-js-pure/es/object/create';\nimport getOwnPropertyDescriptors from 'core-js-pure/es/object/get-own-property-descriptors';\n\nQUnit.test('Object.getOwnPropertyDescriptors', assert => {\n  assert.isFunction(getOwnPropertyDescriptors);\n  assert.name(getOwnPropertyDescriptors, 'getOwnPropertyDescriptors');\n  assert.arity(getOwnPropertyDescriptors, 1);\n  const object = create({ q: 1 }, { e: { value: 3 } });\n  object.w = 2;\n  const symbol = Symbol('4');\n  object[symbol] = 4;\n  const descriptors = getOwnPropertyDescriptors(object);\n  assert.same(descriptors.q, undefined);\n  assert.deepEqual(descriptors.w, {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 2,\n  });\n  if (DESCRIPTORS) {\n    assert.deepEqual(descriptors.e, {\n      enumerable: false,\n      configurable: false,\n      writable: false,\n      value: 3,\n    });\n  } else {\n    assert.deepEqual(descriptors.e, {\n      enumerable: true,\n      configurable: true,\n      writable: true,\n      value: 3,\n    });\n  }\n  assert.same(descriptors[symbol].value, 4);\n});\n\nQUnit.test('Object.getOwnPropertyDescriptors.sham flag', assert => {\n  assert.same(getOwnPropertyDescriptors.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.get-own-property-names.js",
    "content": "import { includes } from '../helpers/helpers.js';\n\nimport freeze from 'core-js-pure/es/object/freeze';\nimport getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names';\n\nQUnit.test('Object.getOwnPropertyNames', assert => {\n  assert.isFunction(getOwnPropertyNames);\n  assert.arity(getOwnPropertyNames, 1);\n  assert.name(getOwnPropertyNames, 'getOwnPropertyNames');\n  function F1() {\n    this.w = 1;\n  }\n  function F2() {\n    this.toString = 1;\n  }\n  F1.prototype.q = F2.prototype.q = 1;\n  const names = getOwnPropertyNames([1, 2, 3]);\n  assert.same(names.length, 4);\n  assert.true(includes(names, '0'));\n  assert.true(includes(names, '1'));\n  assert.true(includes(names, '2'));\n  assert.true(includes(names, 'length'));\n  assert.deepEqual(getOwnPropertyNames(new F1()), ['w']);\n  assert.deepEqual(getOwnPropertyNames(new F2()), ['toString']);\n  assert.true(includes(getOwnPropertyNames(Array.prototype), 'toString'));\n  assert.true(includes(getOwnPropertyNames(Object.prototype), 'toString'));\n  assert.true(includes(getOwnPropertyNames(Object.prototype), 'constructor'));\n  assert.deepEqual(getOwnPropertyNames(freeze({})), [], 'frozen');\n  const primitives = [42, 'foo', false];\n  for (const value of primitives) {\n    assert.notThrows(() => getOwnPropertyNames(value), `accept ${ typeof value }`);\n  }\n  assert.throws(() => getOwnPropertyNames(null), TypeError, 'throws on null');\n  assert.throws(() => getOwnPropertyNames(undefined), TypeError, 'throws on undefined');\n  /* Chakra bug\n  if (typeof document != 'undefined' && document.createElement) {\n    assert.notThrows(() => {\n      const iframe = document.createElement('iframe');\n      iframe.src = 'http://example.com';\n      document.documentElement.appendChild(iframe);\n      const window = iframe.contentWindow;\n      document.documentElement.removeChild(iframe);\n      return getOwnPropertyNames(window);\n    }, 'IE11 bug with iframe and window');\n  }\n  */\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.get-own-property-symbols.js",
    "content": "import create from 'core-js-pure/es/object/create';\nimport getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names';\nimport getOwnPropertySymbols from 'core-js-pure/es/object/get-own-property-symbols';\nimport Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Object.getOwnPropertySymbols', assert => {\n  assert.isFunction(getOwnPropertySymbols);\n  assert.name(getOwnPropertySymbols, 'getOwnPropertySymbols');\n  assert.arity(getOwnPropertySymbols, 1);\n  const prototype = { q: 1, w: 2, e: 3 };\n  prototype[Symbol('getOwnPropertySymbols test 1')] = 42;\n  prototype[Symbol('getOwnPropertySymbols test 2')] = 43;\n  assert.deepEqual(getOwnPropertyNames(prototype).sort(), ['e', 'q', 'w']);\n  assert.same(getOwnPropertySymbols(prototype).length, 2);\n  const object = create(prototype);\n  object.a = 1;\n  object.s = 2;\n  object.d = 3;\n  object[Symbol('getOwnPropertySymbols test 3')] = 44;\n  assert.deepEqual(getOwnPropertyNames(object).sort(), ['a', 'd', 's']);\n  assert.same(getOwnPropertySymbols(object).length, 1);\n  assert.same(getOwnPropertySymbols(Object.prototype).length, 0);\n  const primitives = [42, 'foo', false];\n  for (const value of primitives) {\n    assert.notThrows(() => getOwnPropertySymbols(value), `accept ${ typeof value }`);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.get-prototype-of.js",
    "content": "import { CORRECT_PROTOTYPE_GETTER } from '../helpers/constants.js';\n\nimport create from 'core-js-pure/es/object/create';\nimport getPrototypeOf from 'core-js-pure/es/object/get-prototype-of';\n\nQUnit.test('Object.getPrototypeOf', assert => {\n  assert.isFunction(getPrototypeOf);\n  assert.arity(getPrototypeOf, 1);\n  assert.name(getPrototypeOf, 'getPrototypeOf');\n  assert.same(getPrototypeOf({}), Object.prototype);\n  assert.same(getPrototypeOf([]), Array.prototype);\n  function F() { /* empty */ }\n  assert.same(getPrototypeOf(new F()), F.prototype);\n  const object = { q: 1 };\n  assert.same(getPrototypeOf(create(object)), object);\n  assert.same(getPrototypeOf(create(null)), null);\n  assert.same(getPrototypeOf(getPrototypeOf({})), null);\n  function Foo() { /* empty */ }\n  Foo.prototype.foo = 'foo';\n  function Bar() { /* empty */ }\n  Bar.prototype = create(Foo.prototype);\n  Bar.prototype.constructor = Bar;\n  assert.same(getPrototypeOf(Bar.prototype).foo, 'foo');\n  const primitives = [42, 'foo', false];\n  for (const value of primitives) {\n    assert.notThrows(() => getPrototypeOf(value), `accept ${ typeof value }`);\n  }\n  assert.throws(() => getPrototypeOf(null), TypeError, 'throws on null');\n  assert.throws(() => getPrototypeOf(undefined), TypeError, 'throws on undefined');\n  assert.same(getPrototypeOf('foo'), String.prototype);\n});\n\nQUnit.test('Object.getPrototypeOf.sham flag', assert => {\n  assert.same(getPrototypeOf.sham, CORRECT_PROTOTYPE_GETTER ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.group-by.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\nimport groupBy from 'core-js-pure/es/object/group-by';\nimport getPrototypeOf from 'core-js-pure/es/object/get-prototype-of';\nimport entries from 'core-js-pure/es/object/entries';\nimport Symbol from 'core-js-pure/full/symbol';\n\nQUnit.test('Object.groupBy', assert => {\n  assert.isFunction(groupBy);\n  assert.arity(groupBy, 2);\n  assert.name(groupBy, 'groupBy');\n\n  assert.same(getPrototypeOf(groupBy([], it => it)), null, 'null proto');\n\n  assert.deepEqual(entries(groupBy([], it => it)), []);\n  assert.deepEqual(entries(groupBy([1, 2], it => it ** 2)), [['1', [1]], ['4', [2]]]);\n  assert.deepEqual(entries(groupBy([1, 2, 1], it => it ** 2)), [['1', [1, 1]], ['4', [2]]]);\n  assert.deepEqual(entries(groupBy(createIterable([1, 2]), it => it ** 2)), [['1', [1]], ['4', [2]]]);\n  assert.deepEqual(entries(groupBy('qwe', it => it)), [['q', ['q']], ['w', ['w']], ['e', ['e']]], 'iterable string');\n\n  const element = {};\n  groupBy([element], function (it, i) {\n    assert.same(arguments.length, 2, 'correct number of callback arguments');\n    assert.same(it, element, 'correct value in callback');\n    assert.same(i, 0, 'correct index in callback');\n  });\n\n  const even = Symbol('even');\n  const odd = Symbol('odd');\n  const grouped = groupBy([1, 2, 3, 4, 5, 6], num => {\n    if (num % 2 === 0) return even;\n    return odd;\n  });\n  assert.deepEqual(grouped[even], [2, 4, 6]);\n  assert.deepEqual(grouped[odd], [1, 3, 5]);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.has-own.js",
    "content": "import create from 'core-js-pure/es/object/create';\nimport hasOwn from 'core-js-pure/es/object/has-own';\n\nQUnit.test('Object.hasOwn', assert => {\n  assert.isFunction(hasOwn);\n  assert.arity(hasOwn, 2);\n  assert.name(hasOwn, 'hasOwn');\n  assert.true(hasOwn({ q: 42 }, 'q'));\n  assert.false(hasOwn({ q: 42 }, 'w'));\n  assert.false(hasOwn(create({ q: 42 }), 'q'));\n  assert.true(hasOwn(Object.prototype, 'hasOwnProperty'));\n  let called = false;\n  try {\n    hasOwn(null, { toString() { called = true; } });\n  } catch { /* empty */ }\n  assert.false(called, 'modern behaviour');\n  assert.throws(() => hasOwn(null, 'foo'), TypeError, 'throws on null');\n  assert.throws(() => hasOwn(undefined, 'foo'), TypeError, 'throws on undefined');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.is-extensible.js",
    "content": "import isExtensible from 'core-js-pure/es/object/is-extensible';\n\nQUnit.test('Object.isExtensible', assert => {\n  assert.isFunction(isExtensible);\n  assert.arity(isExtensible, 1);\n  assert.name(isExtensible, 'isExtensible');\n  const primitives = [42, 'string', false, null, undefined];\n  for (const value of primitives) {\n    assert.notThrows(() => isExtensible(value) || true, `accept ${ value }`);\n    assert.false(isExtensible(value), `returns false on ${ value }`);\n  }\n  assert.true(isExtensible({}));\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.is-frozen.js",
    "content": "import isFrozen from 'core-js-pure/es/object/is-frozen';\n\nQUnit.test('Object.isFrozen', assert => {\n  assert.isFunction(isFrozen);\n  assert.arity(isFrozen, 1);\n  assert.name(isFrozen, 'isFrozen');\n  const primitives = [42, 'string', false, null, undefined];\n  for (const value of primitives) {\n    assert.notThrows(() => isFrozen(value) || true, `accept ${ value }`);\n    assert.true(isFrozen(value), `returns true on ${ value }`);\n  }\n  assert.false(isFrozen({}));\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.is-sealed.js",
    "content": "import isSealed from 'core-js-pure/es/object/is-sealed';\n\nQUnit.test('Object.isSealed', assert => {\n  assert.isFunction(isSealed);\n  assert.arity(isSealed, 1);\n  assert.name(isSealed, 'isSealed');\n  const primitives = [42, 'string', false, null, undefined];\n  for (const value of primitives) {\n    assert.notThrows(() => isSealed(value) || true, `accept ${ value }`);\n    assert.true(isSealed(value), `returns true on ${ value }`);\n  }\n  assert.false(isSealed({}));\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.is.js",
    "content": "import is from 'core-js-pure/es/object/is';\n\nQUnit.test('Object.is', assert => {\n  assert.isFunction(is);\n  assert.arity(is, 2);\n  assert.name(is, 'is');\n  assert.true(is(1, 1), '1 is 1');\n  assert.true(is(NaN, NaN), 'NaN is NaN');\n  assert.false(is(0, -0), '0 is not -0');\n  assert.false(is({}, {}), '{} is not {}');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.keys.js",
    "content": "import { includes } from '../helpers/helpers.js';\n\nimport keys from 'core-js-pure/es/object/keys';\n\nQUnit.test('Object.keys', assert => {\n  assert.isFunction(keys);\n  assert.arity(keys, 1);\n  assert.name(keys, 'keys');\n  function F1() {\n    this.w = 1;\n  }\n  function F2() {\n    this.toString = 1;\n  }\n  F1.prototype.q = F2.prototype.q = 1;\n  assert.deepEqual(keys([1, 2, 3]), ['0', '1', '2']);\n  assert.deepEqual(keys(new F1()), ['w']);\n  assert.deepEqual(keys(new F2()), ['toString']);\n  assert.false(includes(keys(Array.prototype), 'push'));\n  const primitives = [42, 'foo', false];\n  for (const value of primitives) {\n    assert.notThrows(() => keys(value), `accept ${ typeof value }`);\n  }\n  assert.throws(() => keys(null), TypeError, 'throws on null');\n  assert.throws(() => keys(undefined), TypeError, 'throws on undefined');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.lookup-getter.js",
    "content": "/* eslint-disable id-match -- unification with global tests */\nimport { DESCRIPTORS, STRICT } from '../helpers/constants.js';\n\nimport create from 'core-js-pure/es/object/create';\nimport __defineGetter__ from 'core-js-pure/es/object/define-getter';\nimport __lookupGetter__ from 'core-js-pure/es/object/lookup-getter';\n\nif (DESCRIPTORS) {\n  QUnit.test('Object#__lookupGetter__', assert => {\n    assert.isFunction(__lookupGetter__);\n    assert.same(__lookupGetter__({}, 'key'), undefined, 'empty object');\n    assert.same(__lookupGetter__({ key: 42 }, 'key'), undefined, 'data descriptor');\n    const object = {};\n    function getter() { /* empty */ }\n    __defineGetter__(object, 'key', getter);\n    assert.same(__lookupGetter__(object, 'key'), getter, 'own getter');\n    assert.same(__lookupGetter__(create(object), 'key'), getter, 'proto getter');\n    assert.same(__lookupGetter__(create(object), 'foo'), undefined, 'empty proto');\n    if (STRICT) {\n      assert.throws(() => __lookupGetter__(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`');\n      assert.throws(() => __lookupGetter__(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`');\n    }\n  });\n}\n"
  },
  {
    "path": "tests/unit-pure/es.object.lookup-setter.js",
    "content": "/* eslint-disable id-match -- unification with global tests */\nimport { DESCRIPTORS, STRICT } from '../helpers/constants.js';\n\nimport create from 'core-js-pure/es/object/create';\nimport __defineSetter__ from 'core-js-pure/es/object/define-setter';\nimport __lookupSetter__ from 'core-js-pure/es/object/lookup-setter';\n\nif (DESCRIPTORS) {\n  QUnit.test('Object#__lookupSetter__', assert => {\n    assert.isFunction(__lookupSetter__);\n    assert.same(__lookupSetter__({}, 'key'), undefined, 'empty object');\n    assert.same(__lookupSetter__({ key: 42 }, 'key'), undefined, 'data descriptor');\n    const object = {};\n    function setter() { /* empty */ }\n    __defineSetter__(object, 'key', setter);\n    assert.same(__lookupSetter__(object, 'key'), setter, 'own setter');\n    assert.same(__lookupSetter__(create(object), 'key'), setter, 'proto setter');\n    assert.same(__lookupSetter__(create(object), 'foo'), undefined, 'empty proto');\n    if (STRICT) {\n      assert.throws(() => __lookupSetter__(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`');\n      assert.throws(() => __lookupSetter__(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`');\n    }\n  });\n}\n"
  },
  {
    "path": "tests/unit-pure/es.object.prevent-extensions.js",
    "content": "import ownKeys from 'core-js-pure/es/reflect/own-keys';\nimport keys from 'core-js-pure/es/object/keys';\nimport getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names';\nimport getOwnPropertySymbols from 'core-js-pure/es/object/get-own-property-symbols';\nimport preventExtensions from 'core-js-pure/es/object/prevent-extensions';\n\nQUnit.test('Object.preventExtensions', assert => {\n  assert.isFunction(preventExtensions);\n  assert.arity(preventExtensions, 1);\n  assert.name(preventExtensions, 'preventExtensions');\n  const data = [42, 'foo', false, null, undefined, {}];\n  for (const value of data) {\n    assert.notThrows(() => preventExtensions(value) || true, `accept ${ {}.toString.call(value).slice(8, -1) }`);\n    assert.same(preventExtensions(value), value, `returns target on ${ {}.toString.call(value).slice(8, -1) }`);\n  }\n  const results = [];\n  for (const key in preventExtensions({})) results.push(key);\n  assert.arrayEqual(results, []);\n  assert.arrayEqual(keys(preventExtensions({})), []);\n  assert.arrayEqual(getOwnPropertyNames(preventExtensions({})), []);\n  assert.arrayEqual(getOwnPropertySymbols(preventExtensions({})), []);\n  assert.arrayEqual(ownKeys(preventExtensions({})), []);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.seal.js",
    "content": "import ownKeys from 'core-js-pure/es/reflect/own-keys';\nimport keys from 'core-js-pure/es/object/keys';\nimport getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names';\nimport getOwnPropertySymbols from 'core-js-pure/es/object/get-own-property-symbols';\nimport seal from 'core-js-pure/es/object/seal';\n\nQUnit.test('Object.seal', assert => {\n  assert.isFunction(seal);\n  assert.arity(seal, 1);\n  assert.name(seal, 'seal');\n  const data = [42, 'foo', false, null, undefined, {}];\n  for (const value of data) {\n    assert.notThrows(() => seal(value) || true, `accept ${ {}.toString.call(value).slice(8, -1) }`);\n    assert.same(seal(value), value, `returns target on ${ {}.toString.call(value).slice(8, -1) }`);\n  }\n  const results = [];\n  for (const key in seal({})) results.push(key);\n  assert.arrayEqual(results, []);\n  assert.arrayEqual(keys(seal({})), []);\n  assert.arrayEqual(getOwnPropertyNames(seal({})), []);\n  assert.arrayEqual(getOwnPropertySymbols(seal({})), []);\n  assert.arrayEqual(ownKeys(seal({})), []);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.set-prototype-of.js",
    "content": "import { PROTO } from '../helpers/constants.js';\n\nimport setPrototypeOf from 'core-js-pure/es/object/set-prototype-of';\n\nif (PROTO) QUnit.test('Object.setPrototypeOf', assert => {\n  assert.isFunction(setPrototypeOf);\n  assert.arity(setPrototypeOf, 2);\n  assert.name(setPrototypeOf, 'setPrototypeOf');\n  assert.true('apply' in setPrototypeOf({}, Function.prototype), 'Parent properties in target');\n  assert.same(setPrototypeOf({ a: 2 }, {\n    b() {\n      return this.a ** 2;\n    },\n  }).b(), 4, 'Child and parent properties in target');\n  const object = {};\n  assert.same(setPrototypeOf(object, { a: 1 }), object, 'setPrototypeOf return target');\n  assert.false('toString' in setPrototypeOf({}, null), 'Can set null as prototype');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.object.values.js",
    "content": "import assign from 'core-js-pure/es/object/assign';\nimport create from 'core-js-pure/es/object/create';\nimport values from 'core-js-pure/es/object/values';\n\nQUnit.test('Object.values', assert => {\n  assert.isFunction(values);\n  assert.arity(values, 1);\n  assert.name(values, 'values');\n  assert.deepEqual(values({ q: 1, w: 2, e: 3 }), [1, 2, 3]);\n  assert.deepEqual(values(new String('qwe')), ['q', 'w', 'e']);\n  assert.deepEqual(values(assign(create({ q: 1, w: 2, e: 3 }), { a: 4, s: 5, d: 6 })), [4, 5, 6]);\n  assert.deepEqual(values({ valueOf: 42 }), [42], 'IE enum keys bug');\n  try {\n    assert.deepEqual(Function('values', `\n      return values({ a: 1, get b() {\n        delete this.c;\n        return 2;\n      }, c: 3 });\n   `)(values), [1, 2]);\n  } catch { /* empty */ }\n  try {\n    assert.deepEqual(Function('values', `\n      return values({ a: 1, get b() {\n        Object.defineProperty(this, \"c\", {\n          value: 4,\n          enumerable: false\n        });\n        return 2;\n      }, c: 3 });\n    `)(values), [1, 2]);\n  } catch { /* empty */ }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.parse-float.js",
    "content": "import { WHITESPACES } from '../helpers/constants.js';\nimport parseFloat from 'core-js-pure/es/parse-float';\n\nQUnit.test('parseFloat', assert => {\n  assert.isFunction(parseFloat);\n  assert.arity(parseFloat, 1);\n  assert.name(parseFloat, 'parseFloat');\n  assert.same(parseFloat('0'), 0);\n  assert.same(parseFloat(' 0'), 0);\n  assert.same(parseFloat('+0'), 0);\n  assert.same(parseFloat(' +0'), 0);\n  assert.same(parseFloat('-0'), -0);\n  assert.same(parseFloat(' -0'), -0);\n  assert.same(parseFloat(`${ WHITESPACES }+0`), 0);\n  assert.same(parseFloat(`${ WHITESPACES }-0`), -0);\n  assert.same(parseFloat(null), NaN);\n  assert.same(parseFloat(undefined), NaN);\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    const symbol = Symbol('parseFloat test');\n    assert.throws(() => parseFloat(symbol), 'throws on symbol argument');\n    assert.throws(() => parseFloat(Object(symbol)), 'throws on boxed symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.parse-int.js",
    "content": "/* eslint-disable prefer-numeric-literals -- required for testing */\nimport { WHITESPACES } from '../helpers/constants.js';\nimport parseInt from 'core-js-pure/es/parse-int';\n\nQUnit.test('parseInt', assert => {\n  assert.isFunction(parseInt);\n  assert.arity(parseInt, 2);\n  assert.name(parseInt, 'parseInt');\n  for (let radix = 2; radix <= 36; ++radix) {\n    assert.same(parseInt('10', radix), radix, `radix ${ radix }`);\n  }\n  const strings = ['01', '08', '10', '42'];\n  for (const string of strings) {\n    assert.same(parseInt(string), parseInt(string, 10), `default radix is 10: ${ string }`);\n  }\n  assert.same(parseInt('0x16'), parseInt('0x16', 16), 'default radix is 16: 0x16');\n  assert.same(parseInt('  0x16'), parseInt('0x16', 16), 'ignores leading whitespace #1');\n  assert.same(parseInt('  42'), parseInt('42', 10), 'ignores leading whitespace #2');\n  assert.same(parseInt('  08'), parseInt('08', 10), 'ignores leading whitespace #3');\n  assert.same(parseInt(`${ WHITESPACES }08`), parseInt('08', 10), 'ignores leading whitespace #4');\n  assert.same(parseInt(`${ WHITESPACES }0x16`), parseInt('0x16', 16), 'ignores leading whitespace #5');\n  const fakeZero = {\n    valueOf() {\n      return 0;\n    },\n  };\n  assert.same(parseInt('08', fakeZero), parseInt('08', 10), 'valueOf #1');\n  assert.same(parseInt('0x16', fakeZero), parseInt('0x16', 16), 'valueOf #2');\n  assert.same(parseInt('-0xF'), -15, 'signed hex #1');\n  assert.same(parseInt('-0xF', 16), -15, 'signed hex #2');\n  assert.same(parseInt('+0xF'), 15, 'signed hex #3');\n  assert.same(parseInt('+0xF', 16), 15, 'signed hex #4');\n  assert.same(parseInt('10', -4294967294), 2, 'radix uses ToUint32');\n  assert.same(parseInt(null), NaN);\n  assert.same(parseInt(undefined), NaN);\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    const symbol = Symbol('parseInt test');\n    assert.throws(() => parseInt(symbol), 'throws on symbol argument');\n    assert.throws(() => parseInt(Object(symbol)), 'throws on boxed symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.promise.all-settled.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport $allSettled from 'core-js-pure/es/promise/all-settled';\nimport bind from 'core-js-pure/es/function/bind';\nimport getIteratorMethod from 'core-js-pure/es/get-iterator-method';\nimport Promise from 'core-js-pure/es/promise';\nimport Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Promise.allSettled', assert => {\n  assert.isFunction(Promise.allSettled);\n  assert.name(Promise.allSettled, 'allSettled');\n  assert.arity(Promise.allSettled, 1);\n  assert.true(Promise.allSettled([1, 2, 3]) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise.allSettled, resolved', assert => {\n  return Promise.allSettled([\n    Promise.resolve(1),\n    Promise.resolve(2),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.deepEqual(it, [\n      { value: 1, status: 'fulfilled' },\n      { value: 2, status: 'fulfilled' },\n      { value: 3, status: 'fulfilled' },\n    ], 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.allSettled, resolved with rejection', assert => {\n  return Promise.allSettled([\n    Promise.resolve(1),\n    Promise.reject(2),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.deepEqual(it, [\n      { value: 1, status: 'fulfilled' },\n      { reason: 2, status: 'rejected' },\n      { value: 3, status: 'fulfilled' },\n    ], 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.allSettled, rejected', assert => {\n  // eslint-disable-next-line promise/valid-params -- required for testing\n  return Promise.allSettled().then(() => {\n    assert.avoid();\n  }, () => {\n    assert.required('rejected as expected');\n  });\n});\n\nQUnit.test('Promise.allSettled, resolved with timeouts', assert => {\n  return Promise.allSettled([\n    Promise.resolve(1),\n    new Promise(resolve => setTimeout(() => resolve(2), 10)),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.deepEqual(it, [\n      { value: 1, status: 'fulfilled' },\n      { value: 2, status: 'fulfilled' },\n      { value: 3, status: 'fulfilled' },\n    ], 'keeps correct mapping, even with delays');\n  });\n});\n\nQUnit.test('Promise.allSettled, subclassing', assert => {\n  const { allSettled, resolve } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  SubPromise.resolve = bind(resolve, Promise);\n  assert.true(allSettled.call(SubPromise, [1, 2, 3]) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = bind(resolve, Promise);\n  assert.throws(() => {\n    allSettled.call(FakePromise1, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    allSettled.call(FakePromise2, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    allSettled.call(FakePromise3, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.allSettled, iterables', assert => {\n  const iterable = createIterable([1, 2, 3]);\n  Promise.allSettled(iterable).catch(() => { /* empty */ });\n  assert.true(iterable.received, 'works with iterables: iterator received');\n  assert.true(iterable.called, 'works with iterables: next called');\n});\n\nQUnit.test('Promise.allSettled, iterables 2', assert => {\n  const array = [];\n  let done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return getIteratorMethod([]).call(this);\n  };\n  Promise.allSettled(array);\n  assert.true(done);\n});\n\nQUnit.test('Promise.allSettled, iterator closing', assert => {\n  const { resolve } = Promise;\n  let done = false;\n  try {\n    Promise.resolve = function () {\n      throw new Error();\n    };\n    Promise.allSettled(createIterable([1, 2, 3], {\n      return() {\n        done = true;\n      },\n    })).catch(() => { /* empty */ });\n  } catch { /* empty */ }\n  Promise.resolve = resolve;\n  assert.true(done, 'iteration closing');\n});\n\nQUnit.test('Promise.allSettled, without constructor context', assert => {\n  const { allSettled } = Promise;\n  assert.throws(() => allSettled([]), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => allSettled.call(null, []), TypeError, 'Throws if called with null as this');\n});\n\nQUnit.test('Promise.allSettled, method from direct entry, without constructor context', assert => {\n  return $allSettled([\n    Promise.resolve(1),\n    Promise.resolve(2),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.deepEqual(it, [\n      { value: 1, status: 'fulfilled' },\n      { value: 2, status: 'fulfilled' },\n      { value: 3, status: 'fulfilled' },\n    ], 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.allSettled, method from direct entry, with null context', assert => {\n  return $allSettled.call(null, [\n    Promise.resolve(1),\n    Promise.resolve(2),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.deepEqual(it, [\n      { value: 1, status: 'fulfilled' },\n      { value: 2, status: 'fulfilled' },\n      { value: 3, status: 'fulfilled' },\n    ], 'resolved with a correct value');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/es.promise.all.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport bind from 'core-js-pure/es/function/bind';\nimport getIteratorMethod from 'core-js-pure/es/get-iterator-method';\nimport Promise from 'core-js-pure/es/promise';\nimport Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Promise.all', assert => {\n  const { all } = Promise;\n  assert.isFunction(all);\n  assert.arity(all, 1);\n  assert.name(all, 'all');\n  assert.true(Promise.all([]) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise.all, resolved', assert => {\n  return Promise.all([\n    Promise.resolve(1),\n    Promise.resolve(2),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.deepEqual(it, [1, 2, 3], 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.all, resolved with rejection', assert => {\n  return Promise.all([\n    Promise.resolve(1),\n    Promise.reject(2),\n    Promise.resolve(3),\n  ]).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 2, 'rejected with a correct value');\n  });\n});\n\nQUnit.test('Promise.all, resolved with empty array', assert => {\n  return Promise.all([]).then(it => {\n    assert.deepEqual(it, [], 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.all, resolved with timeouts', assert => {\n  return Promise.all([\n    Promise.resolve(1),\n    new Promise(resolve => setTimeout(() => resolve(2), 10)),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.deepEqual(it, [1, 2, 3], 'keeps correct mapping, even with delays');\n  });\n});\n\nQUnit.test('Promise.all, subclassing', assert => {\n  const { all, resolve } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  SubPromise.resolve = bind(resolve, Promise);\n  assert.true(all.call(SubPromise, [1, 2, 3]) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = bind(resolve, Promise);\n  assert.throws(() => {\n    all.call(FakePromise1, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    all.call(FakePromise2, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    all.call(FakePromise3, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.all, iterables', assert => {\n  const iterable = createIterable([1, 2, 3]);\n  Promise.all(iterable).catch(() => { /* empty */ });\n  assert.true(iterable.received, 'works with iterables: iterator received');\n  assert.true(iterable.called, 'works with iterables: next called');\n});\n\nQUnit.test('Promise.all, iterables 2', assert => {\n  const array = [];\n  let done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return getIteratorMethod([]).call(this);\n  };\n  Promise.all(array);\n  assert.true(done);\n});\n\nQUnit.test('Promise.all, iterator closing', assert => {\n  const { resolve } = Promise;\n  let done = false;\n  try {\n    Promise.resolve = function () {\n      throw new Error();\n    };\n    Promise.all(createIterable([1, 2, 3], {\n      return() {\n        done = true;\n      },\n    })).catch(() => { /* empty */ });\n  } catch { /* empty */ }\n  Promise.resolve = resolve;\n  assert.true(done, 'iteration closing');\n});\n\nQUnit.test('Promise.all, without constructor context', assert => {\n  const { all } = Promise;\n  assert.throws(() => all([]), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => all.call(null, []), TypeError, 'Throws if called with null as this');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.promise.any.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport $any from 'core-js-pure/es/promise/any';\nimport AggregateError from 'core-js-pure/es/aggregate-error';\nimport bind from 'core-js-pure/es/function/bind';\nimport getIteratorMethod from 'core-js-pure/es/get-iterator-method';\nimport Promise from 'core-js-pure/es/promise';\nimport Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Promise.any', assert => {\n  assert.isFunction(Promise.any);\n  assert.name(Promise.any, 'any');\n  assert.arity(Promise.any, 1);\n  assert.true(Promise.any([1, 2, 3]) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise.any, resolved', assert => {\n  return Promise.any([\n    Promise.resolve(1),\n    Promise.reject(2),\n    Promise.resolve(3),\n  ]).then(it => {\n    assert.same(it, 1, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.any, rejected #1', assert => {\n  return Promise.any([\n    Promise.reject(1),\n    Promise.reject(2),\n    Promise.reject(3),\n  ]).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof AggregateError, 'instanceof AggregateError');\n    assert.deepEqual(error.errors, [1, 2, 3], 'rejected with a correct value');\n  });\n});\n\nQUnit.test('Promise.any, rejected #2', assert => {\n  // eslint-disable-next-line promise/valid-params -- required for testing\n  return Promise.any().then(() => {\n    assert.avoid();\n  }, () => {\n    assert.required('rejected as expected');\n  });\n});\n\nQUnit.test('Promise.any, rejected #3', assert => {\n  return Promise.any([]).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof AggregateError, 'instanceof AggregateError');\n    assert.deepEqual(error.errors, [], 'rejected with a correct value');\n  });\n});\n\nQUnit.test('Promise.any, resolved with timeout', assert => {\n  return Promise.any([\n    new Promise(resolve => setTimeout(() => resolve(1), 50)),\n    Promise.resolve(2),\n  ]).then(it => {\n    assert.same(it, 2, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.any, subclassing', assert => {\n  const { any, resolve } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  SubPromise.resolve = bind(resolve, Promise);\n  assert.true(any.call(SubPromise, [1, 2, 3]) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = bind(resolve, Promise);\n  assert.throws(() => {\n    any.call(FakePromise1, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    any.call(FakePromise2, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    any.call(FakePromise3, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.any, iterables', assert => {\n  const iterable = createIterable([1, 2, 3]);\n  Promise.any(iterable).catch(() => { /* empty */ });\n  assert.true(iterable.received, 'works with iterables: iterator received');\n  assert.true(iterable.called, 'works with iterables: next called');\n});\n\nQUnit.test('Promise.any, empty iterables', assert => {\n  const array = [];\n  let done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return getIteratorMethod([]).call(this);\n  };\n  return Promise.any(array).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof AggregateError, 'instanceof AggregateError');\n    assert.true(done, 'iterator called');\n  });\n});\n\nQUnit.test('Promise.any, iterator closing', assert => {\n  const { resolve } = Promise;\n  let done = false;\n  try {\n    Promise.resolve = function () {\n      throw new Error();\n    };\n    Promise.any(createIterable([1, 2, 3], {\n      return() {\n        done = true;\n      },\n    })).catch(() => { /* empty */ });\n  } catch { /* empty */ }\n  Promise.resolve = resolve;\n  assert.true(done, 'iteration closing');\n});\n\nQUnit.test('Promise.any, without constructor context', assert => {\n  const { any } = Promise;\n  assert.throws(() => any([]), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => any.call(null, []), TypeError, 'Throws if called with null as this');\n});\n\nQUnit.test('Promise.any, method from direct entry, without constructor context', assert => {\n  return $any([\n    Promise.resolve(1),\n    Promise.resolve(2),\n  ]).then(it => {\n    assert.same(it, 1, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.any, method from direct entry, with null context', assert => {\n  return $any.call(null, [\n    Promise.resolve(1),\n    Promise.resolve(2),\n  ]).then(it => {\n    assert.same(it, 1, 'resolved with a correct value');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/es.promise.catch.js",
    "content": "import Promise from 'core-js-pure/es/promise';\nimport Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Promise#catch', assert => {\n  assert.isFunction(Promise.prototype.catch);\n  assert.nonEnumerable(Promise.prototype, 'catch');\n  let promise = new Promise(resolve => {\n    resolve(42);\n  });\n  const FakePromise1 = promise.constructor = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  const FakePromise2 = FakePromise1[Symbol.species] = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  assert.true(promise.catch(() => { /* empty */ }) instanceof FakePromise2, 'subclassing, @@species pattern');\n  promise = new Promise(resolve => {\n    resolve(42);\n  });\n  promise.constructor = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  assert.true(promise.catch(() => { /* empty */ }) instanceof Promise, 'subclassing, incorrect `this` pattern');\n  promise = new Promise(resolve => {\n    resolve(42);\n  });\n  const FakePromise3 = promise.constructor = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  FakePromise3[Symbol.species] = function () { /* empty */ };\n  assert.throws(() => {\n    promise.catch(() => { /* empty */ });\n  }, 'NewPromiseCapability validations, #1');\n  FakePromise3[Symbol.species] = function (executor) {\n    executor(null, () => { /* empty */ });\n  };\n  assert.throws(() => {\n    promise.catch(() => { /* empty */ });\n  }, 'NewPromiseCapability validations, #2');\n  FakePromise3[Symbol.species] = function (executor) {\n    executor(() => { /* empty */ }, null);\n  };\n  assert.throws(() => {\n    promise.catch(() => { /* empty */ });\n  }, 'NewPromiseCapability validations, #3');\n  assert.same(Promise.prototype.catch.call({\n    // eslint-disable-next-line unicorn/no-thenable -- required for testing\n    then(x, y) {\n      return y;\n    },\n  }, 42), 42, 'calling `.then`');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.promise.constructor.js",
    "content": "import { DESCRIPTORS, GLOBAL, PROTO, STRICT } from '../helpers/constants.js';\n\nimport Promise from 'core-js-pure/es/promise';\nimport Symbol from 'core-js-pure/es/symbol';\nimport setPrototypeOf from 'core-js-pure/es/object/set-prototype-of';\nimport create from 'core-js-pure/es/object/create';\n\nQUnit.test('Promise', assert => {\n  assert.isFunction(Promise);\n  new Promise(function (resolve, reject) {\n    assert.isFunction(resolve, 'resolver is function');\n    assert.isFunction(reject, 'rejector is function');\n    if (STRICT) assert.same(this, undefined, 'correct executor context');\n  });\n  assert.throws(() => {\n    // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n    Promise();\n  }, 'throws w/o `new`');\n});\n\nif (DESCRIPTORS) QUnit.test('Promise operations order', assert => {\n  let $resolve, $resolve2;\n  assert.expect(1);\n  const EXPECTED_ORDER = 'DEHAFGBC';\n  const async = assert.async();\n  let result = '';\n  const promise1 = new Promise(resolve => {\n    $resolve = resolve;\n  });\n  $resolve({\n    // eslint-disable-next-line unicorn/no-thenable -- required for testing\n    then() {\n      result += 'A';\n      throw new Error();\n    },\n  });\n  promise1.catch(() => {\n    result += 'B';\n  });\n  promise1.catch(() => {\n    result += 'C';\n    assert.same(result, EXPECTED_ORDER);\n    async();\n  });\n  const promise2 = new Promise(resolve => {\n    $resolve2 = resolve;\n  });\n  // eslint-disable-next-line es/no-object-defineproperty, unicorn/no-thenable -- required for testing\n  $resolve2(Object.defineProperty({}, 'then', {\n    get() {\n      result += 'D';\n      throw new Error();\n    },\n  }));\n  result += 'E';\n  promise2.catch(() => {\n    result += 'F';\n  });\n  promise2.catch(() => {\n    result += 'G';\n  });\n  result += 'H';\n  setTimeout(() => {\n    if (!~result.indexOf('C')) {\n      assert.same(result, EXPECTED_ORDER);\n      async();\n    }\n  }, 1e3);\n});\n\nQUnit.test('Promise#then', assert => {\n  assert.isFunction(Promise.prototype.then);\n  assert.arity(Promise.prototype.then, 2);\n  assert.name(Promise.prototype.then, 'then');\n  assert.nonEnumerable(Promise.prototype, 'then');\n  let promise = new Promise(resolve => {\n    resolve(42);\n  });\n  const FakePromise1 = promise.constructor = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  const FakePromise2 = FakePromise1[Symbol.species] = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  assert.true(promise.then(() => { /* empty */ }) instanceof FakePromise2, 'subclassing, @@species pattern');\n  promise = new Promise(resolve => {\n    resolve(42);\n  });\n  promise.constructor = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  assert.true(promise.then(() => { /* empty */ }) instanceof Promise, 'subclassing, incorrect `this` pattern');\n  promise = new Promise(resolve => {\n    resolve(42);\n  });\n  const FakePromise3 = promise.constructor = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  FakePromise3[Symbol.species] = function () { /* empty */ };\n  assert.throws(() => {\n    promise.then(() => { /* empty */ });\n  }, 'NewPromiseCapability validations, #1');\n  FakePromise3[Symbol.species] = function (executor) {\n    executor(null, () => { /* empty */ });\n  };\n  assert.throws(() => {\n    promise.then(() => { /* empty */ });\n  }, 'NewPromiseCapability validations, #2');\n  FakePromise3[Symbol.species] = function (executor) {\n    executor(() => { /* empty */ }, null);\n  };\n  assert.throws(() => {\n    promise.then(() => { /* empty */ });\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise#@@toStringTag', assert => {\n  assert.same(Promise.prototype[Symbol.toStringTag], 'Promise', 'Promise::@@toStringTag is `Promise`');\n  assert.same(String(new Promise(() => { /* empty */ })), '[object Promise]', 'correct stringification');\n});\n\nif (PROTO) QUnit.test('Promise subclassing', assert => {\n  function SubPromise(executor) {\n    const self = new Promise(executor);\n    setPrototypeOf(self, SubPromise.prototype);\n    self.mine = 'subclass';\n    return self;\n  }\n  setPrototypeOf(SubPromise, Promise);\n  SubPromise.prototype = create(Promise.prototype);\n  SubPromise.prototype.constructor = SubPromise;\n  let promise1 = SubPromise.resolve(5);\n  assert.same(promise1.mine, 'subclass');\n  promise1 = promise1.then(it => {\n    assert.same(it, 5);\n  });\n  assert.same(promise1.mine, 'subclass');\n  let promise2 = new SubPromise(resolve => {\n    resolve(6);\n  });\n  assert.same(promise2.mine, 'subclass');\n  promise2 = promise2.then(it => {\n    assert.same(it, 6);\n  });\n  assert.same(promise2.mine, 'subclass');\n  const promise3 = SubPromise.all([promise1, promise2]);\n  assert.same(promise3.mine, 'subclass');\n  assert.true(promise3 instanceof Promise);\n  assert.true(promise3 instanceof SubPromise);\n  promise3.then(assert.async(), error => {\n    assert.avoid(error);\n  });\n});\n\n// qunit@2.5 strange bug\nQUnit.skip('Unhandled rejection tracking', assert => {\n  let done = false;\n  const resume = assert.async();\n  if (GLOBAL.process) {\n    assert.expect(3);\n    function onunhandledrejection(reason, promise) {\n      process.removeListener('unhandledRejection', onunhandledrejection);\n      assert.same(promise, $promise, 'unhandledRejection, promise');\n      assert.same(reason, 42, 'unhandledRejection, reason');\n      $promise.catch(() => {\n        // empty\n      });\n    }\n    function onrejectionhandled(promise) {\n      process.removeListener('rejectionHandled', onrejectionhandled);\n      assert.same(promise, $promise, 'rejectionHandled, promise');\n      done || resume();\n      done = true;\n    }\n    process.on('unhandledRejection', onunhandledrejection);\n    process.on('rejectionHandled', onrejectionhandled);\n  } else {\n    if (GLOBAL.addEventListener) {\n      assert.expect(8);\n      function onunhandledrejection(it) {\n        assert.same(it.promise, $promise, 'addEventListener(unhandledrejection), promise');\n        assert.same(it.reason, 42, 'addEventListener(unhandledrejection), reason');\n        GLOBAL.removeEventListener('unhandledrejection', onunhandledrejection);\n      }\n      GLOBAL.addEventListener('unhandledrejection', onunhandledrejection);\n      function onrejectionhandled(it) {\n        assert.same(it.promise, $promise, 'addEventListener(rejectionhandled), promise');\n        assert.same(it.reason, 42, 'addEventListener(rejectionhandled), reason');\n        GLOBAL.removeEventListener('rejectionhandled', onrejectionhandled);\n      }\n      GLOBAL.addEventListener('rejectionhandled', onrejectionhandled);\n    } else assert.expect(4);\n    GLOBAL.onunhandledrejection = function (it) {\n      assert.same(it.promise, $promise, 'onunhandledrejection, promise');\n      assert.same(it.reason, 42, 'onunhandledrejection, reason');\n      setTimeout(() => {\n        $promise.catch(() => {\n          // empty\n        });\n      }, 1);\n      GLOBAL.onunhandledrejection = null;\n    };\n    GLOBAL.onrejectionhandled = function (it) {\n      assert.same(it.promise, $promise, 'onrejectionhandled, promise');\n      assert.same(it.reason, 42, 'onrejectionhandled, reason');\n      GLOBAL.onrejectionhandled = null;\n      done || resume();\n      done = true;\n    };\n  }\n  Promise.reject(43).catch(() => {\n    // empty\n  });\n  const $promise = Promise.reject(42);\n  setTimeout(() => {\n    done || resume();\n    done = true;\n  }, 3e3);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.promise.finally.js",
    "content": "import Promise from 'core-js-pure/es/promise';\n\nQUnit.test('Promise#finally', assert => {\n  assert.isFunction(Promise.prototype.finally);\n  assert.arity(Promise.prototype.finally, 1);\n  assert.nonEnumerable(Promise.prototype, 'finally');\n  assert.true(Promise.resolve(42).finally(() => { /* empty */ }) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise#finally, resolved', assert => {\n  let called = 0;\n  let argument = null;\n  return Promise.resolve(42).finally(it => {\n    called++;\n    argument = it;\n  }).then(it => {\n    assert.same(it, 42, 'resolved with a correct value');\n    assert.same(called, 1, 'onFinally function called one time');\n    assert.same(argument, undefined, 'onFinally function called with a correct argument');\n  });\n});\n\nQUnit.test('Promise#finally, rejected', assert => {\n  let called = 0;\n  let argument = null;\n  return Promise.reject(42).finally(it => {\n    called++;\n    argument = it;\n  }).then(() => {\n    assert.avoid();\n  }, () => {\n    assert.same(called, 1, 'onFinally function called one time');\n    assert.same(argument, undefined, 'onFinally function called with a correct argument');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/es.promise.race.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport bind from 'core-js-pure/es/function/bind';\nimport getIteratorMethod from 'core-js-pure/es/get-iterator-method';\nimport Promise from 'core-js-pure/es/promise';\nimport Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Promise.race', assert => {\n  const { race } = Promise;\n  assert.isFunction(race);\n  assert.arity(race, 1);\n  assert.name(race, 'race');\n  assert.true(Promise.race([]) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise.race, resolved', assert => {\n  return Promise.race([\n    Promise.resolve(1),\n    Promise.resolve(2),\n  ]).then(it => {\n    assert.same(it, 1, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.race, resolved with rejection', assert => {\n  return Promise.race([\n    Promise.reject(1),\n    Promise.resolve(2),\n  ]).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 1, 'rejected with a correct value');\n  });\n});\n\nQUnit.test('Promise.race, resolved with timeouts', assert => {\n  return Promise.race([\n    new Promise(resolve => setTimeout(() => resolve(1), 50)),\n    Promise.resolve(2),\n  ]).then(it => {\n    assert.same(it, 2, 'keeps correct mapping, even with delays');\n  });\n});\n\nQUnit.test('Promise.race, subclassing', assert => {\n  const { race, resolve } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  SubPromise.resolve = bind(resolve, Promise);\n  assert.true(race.call(SubPromise, [1, 2, 3]) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = bind(resolve, Promise);\n  assert.throws(() => {\n    race.call(FakePromise1, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    race.call(FakePromise2, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    race.call(FakePromise3, [1, 2, 3]);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.race, iterables', assert => {\n  const iterable = createIterable([1, 2, 3]);\n  Promise.race(iterable).catch(() => { /* empty */ });\n  assert.true(iterable.received, 'works with iterables: iterator received');\n  assert.true(iterable.called, 'works with iterables: next called');\n});\n\nQUnit.test('Promise.race, iterables 2', assert => {\n  const array = [];\n  let done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return getIteratorMethod([]).call(this);\n  };\n  Promise.race(array);\n  assert.true(done);\n});\n\nQUnit.test('Promise.race, iterator closing', assert => {\n  const { resolve } = Promise;\n  let done = false;\n  try {\n    Promise.resolve = function () {\n      throw new Error();\n    };\n    Promise.race(createIterable([1, 2, 3], {\n      return() {\n        done = true;\n      },\n    })).catch(() => { /* empty */ });\n  } catch { /* empty */ }\n  Promise.resolve = resolve;\n  assert.true(done, 'iteration closing');\n});\n\nQUnit.test('Promise.race, without constructor context', assert => {\n  const { race } = Promise;\n  assert.throws(() => race([]), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => race.call(null, []), TypeError, 'Throws if called with null as this');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.promise.reject.js",
    "content": "import Promise from 'core-js-pure/es/promise';\n\nQUnit.test('Promise.reject', assert => {\n  const { reject } = Promise;\n  assert.isFunction(reject);\n  assert.arity(reject, 1);\n  assert.name(reject, 'reject');\n});\n\nQUnit.test('Promise.reject, rejects with value', assert => {\n  return Promise.reject(42)\n    .then(() => {\n      assert.avoid('Should not resolve');\n    }, error => {\n      assert.same(error, 42, 'rejected with correct reason');\n    });\n});\n\nQUnit.test('Promise.reject, rejects with undefined', assert => {\n  return Promise.reject()\n    .then(() => {\n      assert.avoid('Should not resolve');\n    }, error => {\n      assert.same(error, undefined, 'rejected with correct reason');\n    });\n});\n\nQUnit.test('Promise.reject, subclassing', assert => {\n  const { reject } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  assert.true(reject.call(SubPromise, 42) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  assert.throws(() => {\n    reject.call(FakePromise1, 42);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    reject.call(FakePromise2, 42);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    reject.call(FakePromise3, 42);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.reject, without constructor context', assert => {\n  const { reject } = Promise;\n  assert.throws(() => reject(''), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => reject.call(null, ''), TypeError, 'Throws if called with null as this');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.promise.resolve.js",
    "content": "import Promise from 'core-js-pure/es/promise';\nimport Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Promise.resolve', assert => {\n  const { resolve } = Promise;\n  assert.isFunction(resolve);\n  assert.arity(resolve, 1);\n  assert.name(resolve, 'resolve');\n  assert.true(Promise.resolve(42) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise.resolve, resolves with value', assert => {\n  return Promise.resolve(42).then(result => {\n    assert.same(result, 42, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.resolve, resolves with thenable', assert => {\n  const thenable = {\n    // eslint-disable-next-line unicorn/no-thenable -- safe\n    then(resolve) { resolve('foo'); },\n  };\n  return Promise.resolve(thenable).then(result => {\n    assert.same(result, 'foo', 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.resolve, returns input if input is already promise', assert => {\n  const p = Promise.resolve('ok');\n  assert.same(Promise.resolve(p), p, 'resolved with a correct value');\n});\n\nQUnit.test('Promise.resolve, resolves with undefined', assert => {\n  return Promise.resolve().then(result => {\n    assert.same(result, undefined, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.resolve, subclassing', assert => {\n  const { resolve } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  SubPromise[Symbol.species] = function (executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  };\n  assert.true(resolve.call(SubPromise, 42) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  assert.throws(() => {\n    resolve.call(FakePromise1, 42);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    resolve.call(FakePromise2, 42);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    resolve.call(FakePromise3, 42);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.resolve, without constructor context', assert => {\n  const { resolve } = Promise;\n  assert.throws(() => resolve(''), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => resolve.call(null, ''), TypeError, 'Throws if called with null as this');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.promise.try.js",
    "content": "import $try from 'core-js-pure/es/promise/try';\nimport bind from 'core-js-pure/es/function/bind';\nimport Promise from 'core-js-pure/es/promise';\n\nQUnit.test('Promise.try', assert => {\n  assert.isFunction(Promise.try);\n  assert.arity(Promise.try, 1);\n  assert.true(Promise.try(() => 42) instanceof Promise, 'returns a promise');\n});\n\nQUnit.test('Promise.try, resolved', assert => {\n  return Promise.try(() => 42).then(it => {\n    assert.same(it, 42, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.try, resolved, with args', assert => {\n  return Promise.try((a, b) => Promise.resolve(a + b), 1, 2).then(it => {\n    assert.same(it, 3, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.try, rejected', assert => {\n  return Promise.try(() => {\n    throw new Error();\n  }).then(() => {\n    assert.avoid();\n  }, () => {\n    assert.required('rejected as expected');\n  });\n});\n\nQUnit.test('Promise.try, subclassing', assert => {\n  const { try: promiseTry, resolve } = Promise;\n  function SubPromise(executor) {\n    executor(() => { /* empty */ }, () => { /* empty */ });\n  }\n  SubPromise.resolve = bind(resolve, Promise);\n  assert.true(promiseTry.call(SubPromise, () => 42) instanceof SubPromise, 'subclassing, `this` pattern');\n\n  function FakePromise1() { /* empty */ }\n  function FakePromise2(executor) {\n    executor(null, () => { /* empty */ });\n  }\n  function FakePromise3(executor) {\n    executor(() => { /* empty */ }, null);\n  }\n  FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = bind(resolve, Promise);\n  assert.throws(() => {\n    promiseTry.call(FakePromise1, () => 42);\n  }, 'NewPromiseCapability validations, #1');\n  assert.throws(() => {\n    promiseTry.call(FakePromise2, () => 42);\n  }, 'NewPromiseCapability validations, #2');\n  assert.throws(() => {\n    promiseTry.call(FakePromise3, () => 42);\n  }, 'NewPromiseCapability validations, #3');\n});\n\nQUnit.test('Promise.try, without constructor context', assert => {\n  const { try: promiseTry } = Promise;\n  assert.throws(() => promiseTry(() => 42), TypeError, 'Throws if called without a constructor context');\n  assert.throws(() => promiseTry.call(null, () => 42), TypeError, 'Throws if called with null as this');\n});\n\nQUnit.test('Promise.try, method from direct entry, without constructor context', assert => {\n  return $try(() => 123).then(it => {\n    assert.same(it, 123, 'resolved with a correct value');\n  });\n});\n\nQUnit.test('Promise.try, method from direct entry, with null context', assert => {\n  return $try.call(null, () => 'foo').then(it => {\n    assert.same(it, 'foo', 'resolved with a correct value');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/es.promise.with-resolvers.js",
    "content": "import Promise from 'core-js-pure/es/promise';\nimport getPrototypeOf from 'core-js-pure/es/object/get-prototype-of';\n\nQUnit.test('Promise.withResolvers', assert => {\n  const { withResolvers } = Promise;\n  assert.isFunction(withResolvers);\n  assert.arity(withResolvers, 0);\n  assert.name(withResolvers, 'withResolvers');\n\n  const d1 = Promise.withResolvers();\n  assert.same(getPrototypeOf(d1), Object.prototype, 'proto is Object.prototype');\n  assert.true(d1.promise instanceof Promise, 'promise is promise');\n  assert.isFunction(d1.resolve, 'resolve is function');\n  assert.isFunction(d1.reject, 'reject is function');\n\n  const promise = {};\n  const resolve = () => { /* empty */ };\n  let reject = () => { /* empty */ };\n\n  function P(exec) {\n    exec(resolve, reject);\n    return promise;\n  }\n\n  const d2 = withResolvers.call(P);\n  assert.same(d2.promise, promise, 'promise is promise #2');\n  assert.same(d2.resolve, resolve, 'resolve is resolve #2');\n  assert.same(d2.reject, reject, 'reject is reject #2');\n\n  reject = {};\n\n  assert.throws(() => withResolvers.call(P), TypeError, 'broken resolver');\n  assert.throws(() => withResolvers.call({}), TypeError, 'broken constructor #1');\n  assert.throws(() => withResolvers.call(null), TypeError, 'broken constructor #2');\n});\n\nQUnit.test('Promise.withResolvers, resolve', assert => {\n  const d = Promise.withResolvers();\n  d.resolve(42);\n  return d.promise.then(it => {\n    assert.same(it, 42, 'resolved as expected');\n  }, () => {\n    assert.avoid();\n  });\n});\n\nQUnit.test('Promise.withResolvers, reject', assert => {\n  const d = Promise.withResolvers();\n  d.reject(42);\n  return d.promise.then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejected as expected');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.apply.js",
    "content": "import apply from 'core-js-pure/es/reflect/apply';\n\nQUnit.test('Reflect.apply', assert => {\n  assert.isFunction(apply);\n  assert.arity(apply, 3);\n  if ('name' in apply) {\n    assert.name(apply, 'apply');\n  }\n  assert.same(apply(Array.prototype.push, [1, 2], [3, 4, 5]), 5);\n  function F(a, b, c) {\n    return a + b + c;\n  }\n  F.apply = 42;\n  assert.same(apply(F, null, ['foo', 'bar', 'baz']), 'foobarbaz', 'works with redefined apply');\n  assert.throws(() => apply(42, null, []), TypeError, 'throws on primitive');\n  assert.throws(() => apply(() => { /* empty */ }, null), TypeError, 'throws without third argument');\n  assert.throws(() => apply(() => { /* empty */ }, null, '123'), TypeError, 'throws on primitive as third argument');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.construct.js",
    "content": "import construct from 'core-js-pure/es/reflect/construct';\nimport getPrototypeOf from 'core-js-pure/es/object/get-prototype-of';\n\nQUnit.test('Reflect.construct', assert => {\n  assert.isFunction(construct);\n  assert.arity(construct, 2);\n  if ('name' in construct) {\n    assert.name(construct, 'construct');\n  }\n  function A(a, b, c) {\n    this.qux = a + b + c;\n  }\n  assert.same(construct(A, ['foo', 'bar', 'baz']).qux, 'foobarbaz', 'basic');\n  A.apply = 42;\n  assert.same(construct(A, ['foo', 'bar', 'baz']).qux, 'foobarbaz', 'works with redefined apply');\n  const instance = construct(function () {\n    this.x = 42;\n  }, [], Array);\n  assert.same(instance.x, 42, 'constructor with newTarget');\n  assert.true(instance instanceof Array, 'prototype with newTarget');\n  assert.throws(() => construct(42, []), TypeError, 'throws on primitive');\n  function B() { /* empty */ }\n  B.prototype = 42;\n  assert.notThrows(() => getPrototypeOf(construct(B, [])) === Object.prototype);\n  assert.notThrows(() => typeof construct(Date, []).getTime() == 'number', 'works with native constructors with 2 arguments');\n  // eslint-disable-next-line prefer-arrow-callback -- testing\n  assert.throws(() => construct(function () { /* empty */ }), TypeError, 'throws when the second argument is not an object');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.define-property.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nimport getOwnPropertyDescriptor from 'core-js-pure/es/object/get-own-property-descriptor';\nimport create from 'core-js-pure/es/object/create';\nimport defineProperty from 'core-js-pure/es/reflect/define-property';\n\nQUnit.test('Reflect.defineProperty', assert => {\n  assert.isFunction(defineProperty);\n  assert.arity(defineProperty, 3);\n  if ('name' in defineProperty) {\n    assert.name(defineProperty, 'defineProperty');\n  }\n  let object = {};\n  assert.true(defineProperty(object, 'foo', { value: 123 }));\n  assert.same(object.foo, 123);\n  if (DESCRIPTORS) {\n    object = {};\n    defineProperty(object, 'foo', {\n      value: 123,\n      enumerable: true,\n    });\n    assert.deepEqual(getOwnPropertyDescriptor(object, 'foo'), {\n      value: 123,\n      enumerable: true,\n      configurable: false,\n      writable: false,\n    });\n    assert.false(defineProperty(object, 'foo', {\n      value: 42,\n    }));\n  }\n  assert.throws(() => defineProperty(42, 'foo', {\n    value: 42,\n  }), TypeError, 'throws on primitive');\n  assert.throws(() => defineProperty(42, 1, {}));\n  assert.throws(() => defineProperty({}, create(null), {}));\n  assert.throws(() => defineProperty({}, 1, 1));\n  // ToPropertyDescriptor errors should throw, not return false\n  assert.throws(() => defineProperty({}, 'a', { get: 42 }), TypeError, 'throws on non-callable getter');\n  assert.throws(() => defineProperty({}, 'a', { set: 'str' }), TypeError, 'throws on non-callable setter');\n  assert.throws(() => defineProperty({}, 'a', { get: null }), TypeError, 'throws on null getter');\n  assert.throws(() => defineProperty({}, 'a', { get: false }), TypeError, 'throws on false getter');\n  if (DESCRIPTORS) {\n    assert.throws(() => defineProperty({}, 'a', { get() { /* empty */ }, value: 1 }), TypeError, 'throws on mixed accessor/data descriptor');\n    assert.true(defineProperty({}, 'a', { get: undefined }), 'undefined getter is valid');\n  }\n});\n\nQUnit.test('Reflect.defineProperty.sham flag', assert => {\n  assert.same(defineProperty.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.delete-property.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\nimport { createConversionChecker } from '../helpers/helpers.js';\n\nimport keys from 'core-js-pure/es/object/keys';\nimport defineProperty from 'core-js-pure/es/object/define-property';\nimport deleteProperty from 'core-js-pure/es/reflect/delete-property';\n\nQUnit.test('Reflect.deleteProperty', assert => {\n  assert.isFunction(deleteProperty);\n  assert.arity(deleteProperty, 2);\n  if ('name' in deleteProperty) {\n    assert.name(deleteProperty, 'deleteProperty');\n  }\n  const object = { bar: 456 };\n  assert.true(deleteProperty(object, 'bar'));\n  assert.same(keys(object).length, 0);\n  if (DESCRIPTORS) {\n    assert.false(deleteProperty(defineProperty({}, 'foo', {\n      value: 42,\n    }), 'foo'));\n  }\n  assert.throws(() => deleteProperty(42, 'foo'), TypeError, 'throws on primitive');\n\n  // ToPropertyKey should be called exactly once\n  const keyObj = createConversionChecker(1, 'bar');\n  deleteProperty({ bar: 1 }, keyObj);\n  assert.same(keyObj.$valueOf, 0, 'ToPropertyKey called once in Reflect.deleteProperty, #1');\n  assert.same(keyObj.$toString, 1, 'ToPropertyKey called once in Reflect.deleteProperty, #2');\n\n  // argument order: target should be validated before ToPropertyKey\n  const orderChecker = createConversionChecker(1, 'qux');\n  assert.throws(() => deleteProperty(42, orderChecker), TypeError, 'throws on primitive before ToPropertyKey');\n  assert.same(orderChecker.$toString, 0, 'ToPropertyKey not called before target validation in Reflect.deleteProperty');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.get-own-property-descriptor.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nimport getOwnPropertyDescriptor from 'core-js-pure/es/reflect/get-own-property-descriptor';\n\nQUnit.test('Reflect.getOwnPropertyDescriptor', assert => {\n  assert.isFunction(getOwnPropertyDescriptor);\n  assert.arity(getOwnPropertyDescriptor, 2);\n  if ('name' in getOwnPropertyDescriptor) {\n    assert.name(getOwnPropertyDescriptor, 'getOwnPropertyDescriptor');\n  }\n  const object = { baz: 789 };\n  const descriptor = getOwnPropertyDescriptor(object, 'baz');\n  assert.same(descriptor.value, 789);\n  assert.throws(() => getOwnPropertyDescriptor(42, 'constructor'), TypeError, 'throws on primitive');\n});\n\nQUnit.test('Reflect.getOwnPropertyDescriptor.sham flag', assert => {\n  assert.same(getOwnPropertyDescriptor.sham, DESCRIPTORS ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.get-prototype-of.js",
    "content": "import { CORRECT_PROTOTYPE_GETTER } from '../helpers/constants.js';\n\nimport getPrototypeOf from 'core-js-pure/es/reflect/get-prototype-of';\n\nQUnit.test('Reflect.getPrototypeOf', assert => {\n  assert.isFunction(getPrototypeOf);\n  assert.arity(getPrototypeOf, 1);\n  if ('name' in getPrototypeOf) {\n    assert.name(getPrototypeOf, 'getPrototypeOf');\n  }\n  assert.same(getPrototypeOf([]), Array.prototype);\n  assert.throws(() => getPrototypeOf(42), TypeError, 'throws on primitive');\n});\n\nQUnit.test('Reflect.getPrototypeOf.sham flag', assert => {\n  assert.same(getPrototypeOf.sham, CORRECT_PROTOTYPE_GETTER ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.get.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\nimport { createConversionChecker } from '../helpers/helpers.js';\n\nimport create from 'core-js-pure/es/object/create';\nimport defineProperty from 'core-js-pure/es/object/define-property';\nimport get from 'core-js-pure/es/reflect/get';\n\nQUnit.test('Reflect.get', assert => {\n  assert.isFunction(get);\n  assert.arity(get, 2);\n  if ('name' in get) {\n    assert.name(get, 'get');\n  }\n  assert.same(get({ qux: 987 }, 'qux'), 987);\n  if (DESCRIPTORS) {\n    const target = create(defineProperty({ z: 3 }, 'w', {\n      get() {\n        return this;\n      },\n    }), {\n      x: {\n        value: 1,\n      },\n      y: {\n        get() {\n          return this;\n        },\n      },\n    });\n    const receiver = {};\n    assert.same(get(target, 'x', receiver), 1, 'get x');\n    assert.same(get(target, 'y', receiver), receiver, 'get y');\n    assert.same(get(target, 'z', receiver), 3, 'get z');\n    assert.same(get(target, 'w', receiver), receiver, 'get w');\n    assert.same(get(target, 'u', receiver), undefined, 'get u');\n\n    // ToPropertyKey should be called exactly once even with prototype chain traversal\n    const keyObj = createConversionChecker(1, 'x');\n    get(create({ x: 42 }), keyObj, {});\n    assert.same(keyObj.$valueOf, 0, 'ToPropertyKey called once in Reflect.get, #1');\n    assert.same(keyObj.$toString, 1, 'ToPropertyKey called once in Reflect.get, #2');\n  }\n  assert.throws(() => get(42, 'constructor'), TypeError, 'throws on primitive');\n\n  // argument order: target should be validated before ToPropertyKey\n  const orderChecker = createConversionChecker(1, 'qux');\n  assert.throws(() => get(42, orderChecker), TypeError, 'throws on primitive before ToPropertyKey');\n  assert.same(orderChecker.$toString, 0, 'ToPropertyKey not called before target validation in Reflect.get');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.has.js",
    "content": "import has from 'core-js-pure/es/reflect/has';\n\nQUnit.test('Reflect.has', assert => {\n  assert.isFunction(has);\n  assert.arity(has, 2);\n  if ('name' in has) {\n    assert.name(has, 'has');\n  }\n  const object = { qux: 987 };\n  assert.true(has(object, 'qux'));\n  assert.false(has(object, 'qwe'));\n  assert.true(has(object, 'toString'));\n  assert.throws(() => has(42, 'constructor'), TypeError, 'throws on primitive');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.is-extensible.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\n\nimport preventExtensions from 'core-js-pure/es/object/prevent-extensions';\nimport isExtensible from 'core-js-pure/es/reflect/is-extensible';\n\nQUnit.test('Reflect.isExtensible', assert => {\n  assert.isFunction(isExtensible);\n  assert.arity(isExtensible, 1);\n  if ('name' in isExtensible) {\n    assert.name(isExtensible, 'isExtensible');\n  }\n  assert.true(isExtensible({}));\n  if (DESCRIPTORS) {\n    assert.false(isExtensible(preventExtensions({})));\n  }\n  assert.throws(() => isExtensible(42), TypeError, 'throws on primitive');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.own-keys.js",
    "content": "import { includes } from '../helpers/helpers.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport create from 'core-js-pure/es/object/create';\nimport defineProperty from 'core-js-pure/es/object/define-property';\nimport ownKeys from 'core-js-pure/es/reflect/own-keys';\n\nQUnit.test('Reflect.ownKeys', assert => {\n  assert.isFunction(ownKeys);\n  assert.arity(ownKeys, 1);\n  if ('name' in ownKeys) {\n    assert.name(ownKeys, 'ownKeys');\n  }\n  const object = { a: 1 };\n  defineProperty(object, 'b', {\n    value: 2,\n  });\n  object[Symbol('c')] = 3;\n  let keys = ownKeys(object);\n  assert.same(keys.length, 3, 'ownKeys return all own keys');\n  assert.true(includes(keys, 'a'), 'ownKeys return all own keys: simple');\n  assert.true(includes(keys, 'b'), 'ownKeys return all own keys: hidden');\n  assert.same(object[keys[2]], 3, 'ownKeys return all own keys: symbol');\n  keys = ownKeys(create(object));\n  assert.same(keys.length, 0, 'ownKeys return only own keys');\n  assert.throws(() => ownKeys(42), TypeError, 'throws on primitive');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.prevent-extensions.js",
    "content": "import { DESCRIPTORS, FREEZING } from '../helpers/constants.js';\n\nimport preventExtensions from 'core-js-pure/es/reflect/prevent-extensions';\nimport isExtensible from 'core-js-pure/es/object/is-extensible';\n\nQUnit.test('Reflect.preventExtensions', assert => {\n  assert.isFunction(preventExtensions);\n  assert.arity(preventExtensions, 1);\n  if ('name' in preventExtensions) {\n    assert.name(preventExtensions, 'preventExtensions');\n  }\n  const object = {};\n  assert.true(preventExtensions(object));\n  if (DESCRIPTORS) {\n    assert.false(isExtensible(object));\n  }\n  assert.throws(() => preventExtensions(42), TypeError, 'throws on primitive');\n});\n\nQUnit.test('Reflect.preventExtensions.sham flag', assert => {\n  assert.same(preventExtensions.sham, FREEZING ? undefined : true);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.set-prototype-of.js",
    "content": "import { PROTO } from '../helpers/constants.js';\n\nimport setPrototypeOf from 'core-js-pure/es/reflect/set-prototype-of';\n\nif (PROTO) QUnit.test('Reflect.setPrototypeOf', assert => {\n  assert.isFunction(setPrototypeOf);\n  assert.arity(setPrototypeOf, 2);\n  if ('name' in setPrototypeOf) {\n    assert.name(setPrototypeOf, 'setPrototypeOf');\n  }\n  let object = {};\n  assert.true(setPrototypeOf(object, Array.prototype));\n  assert.true(object instanceof Array);\n  assert.throws(() => setPrototypeOf({}, 42), TypeError);\n  assert.throws(() => setPrototypeOf(42, {}), TypeError, 'throws on primitive');\n  object = {};\n  assert.false(setPrototypeOf(object, object), 'false on recursive __proto__');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.reflect.set.js",
    "content": "import { DESCRIPTORS, FREEZING } from '../helpers/constants.js';\nimport { createConversionChecker } from '../helpers/helpers.js';\n\nimport create from 'core-js-pure/es/object/create';\nimport defineProperty from 'core-js-pure/es/object/define-property';\nimport getOwnPropertyDescriptor from 'core-js-pure/es/object/get-own-property-descriptor';\nimport getPrototypeOf from 'core-js-pure/es/object/get-prototype-of';\nimport freeze from 'core-js-pure/es/object/freeze';\nimport preventExtensions from 'core-js-pure/es/object/prevent-extensions';\nimport seal from 'core-js-pure/es/object/seal';\nimport set from 'core-js-pure/es/reflect/set';\n\nQUnit.test('Reflect.set', assert => {\n  assert.isFunction(set);\n  assert.arity(set, 3);\n  if ('name' in set) {\n    assert.name(set, 'set');\n  }\n  const object = {};\n  assert.true(set(object, 'quux', 654));\n  assert.same(object.quux, 654);\n  let target = {};\n  const receiver = {};\n  set(target, 'foo', 1, receiver);\n  assert.same(target.foo, undefined, 'target.foo === undefined');\n  assert.same(receiver.foo, 1, 'receiver.foo === 1');\n  if (DESCRIPTORS) {\n    defineProperty(receiver, 'bar', {\n      value: 0,\n      writable: true,\n      enumerable: false,\n      configurable: true,\n    });\n    set(target, 'bar', 1, receiver);\n    assert.same(receiver.bar, 1, 'receiver.bar === 1');\n    assert.false(getOwnPropertyDescriptor(receiver, 'bar').enumerable, 'enumerability not overridden');\n    let out;\n    target = create(defineProperty({ z: 3 }, 'w', {\n      set() {\n        out = this;\n      },\n    }), {\n      x: {\n        value: 1,\n        writable: true,\n        configurable: true,\n      },\n      y: {\n        set() {\n          out = this;\n        },\n      },\n      c: {\n        value: 1,\n        writable: false,\n        configurable: false,\n      },\n    });\n    assert.true(set(target, 'x', 2, target), 'set x');\n    assert.same(target.x, 2, 'set x');\n    out = null;\n    assert.true(set(target, 'y', 2, target), 'set y');\n    assert.same(out, target, 'set y');\n    assert.true(set(target, 'z', 4, target));\n    assert.same(target.z, 4, 'set z');\n    out = null;\n    assert.true(set(target, 'w', 1, target), 'set w');\n    assert.same(out, target, 'set w');\n    assert.true(set(target, 'u', 0, target), 'set u');\n    assert.same(target.u, 0, 'set u');\n    assert.false(set(target, 'c', 2, target), 'set c');\n    assert.same(target.c, 1, 'set c');\n\n    // https://github.com/zloirock/core-js/issues/392\n    let o = defineProperty({}, 'test', {\n      writable: false,\n      configurable: true,\n    });\n    assert.false(set(getPrototypeOf(o), 'test', 1, o));\n\n    // https://github.com/zloirock/core-js/issues/393\n    o = defineProperty({}, 'test', {\n      get() { /* empty */ },\n    });\n    assert.notThrows(() => !set(getPrototypeOf(o), 'test', 1, o));\n    o = defineProperty({}, 'test', {\n      // eslint-disable-next-line no-unused-vars -- required for testing\n      set(v) { /* empty */ },\n    });\n    assert.notThrows(() => !set(getPrototypeOf(o), 'test', 1, o));\n\n    // accessor descriptor with get: undefined, set: undefined on receiver should return false\n    const accessorReceiver = {};\n    defineProperty(accessorReceiver, 'prop', { get: undefined, set: undefined, configurable: true });\n    const accessorTarget = defineProperty({}, 'prop', { value: 1, writable: true, configurable: true });\n    assert.false(set(accessorTarget, 'prop', 2, accessorReceiver), 'accessor descriptor on receiver with undefined get/set');\n\n    // ToPropertyKey should be called exactly once\n    const keyObj = createConversionChecker(1, 'x');\n    set(create({ x: 42 }), keyObj, 1);\n    assert.same(keyObj.$valueOf, 0, 'ToPropertyKey called once in Reflect.set, #1');\n    assert.same(keyObj.$toString, 1, 'ToPropertyKey called once in Reflect.set, #2');\n  }\n\n  assert.throws(() => set(42, 'q', 42), TypeError, 'throws on primitive');\n\n  // Reflect.set should pass only { value: V } to [[DefineOwnProperty]] when updating existing data property\n  if (DESCRIPTORS) {\n    const obj = defineProperty({}, 'x', { value: 1, writable: true, enumerable: true, configurable: true });\n    assert.true(set(obj, 'x', 42), 'set existing writable property');\n    const desc = getOwnPropertyDescriptor(obj, 'x');\n    assert.same(desc.value, 42, 'value updated');\n    assert.true(desc.writable, 'writable preserved');\n    assert.true(desc.enumerable, 'enumerable preserved');\n    assert.true(desc.configurable, 'configurable preserved');\n  }\n\n  // argument order: target should be validated before ToPropertyKey\n  const orderChecker = createConversionChecker(1, 'qux');\n  assert.throws(() => set(42, orderChecker, 1), TypeError, 'throws on primitive before ToPropertyKey');\n\n  // non-extensible receiver should return false, not throw\n  if (FREEZING) {\n    assert.false(set({}, 'x', 42, freeze({})), 'frozen empty receiver returns false');\n    assert.false(set({}, 'x', 42, preventExtensions({})), 'non-extensible receiver returns false');\n    assert.false(set({}, 'x', 42, seal({})), 'sealed empty receiver returns false');\n  }\n\n  assert.same(orderChecker.$toString, 0, 'ToPropertyKey not called before target validation in Reflect.set');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.regexp.escape.js",
    "content": "/* eslint-disable @stylistic/max-len -- ok*/\nimport escape from 'core-js-pure/es/regexp/escape';\n\nQUnit.test('RegExp.escape', assert => {\n  assert.isFunction(escape);\n  assert.arity(escape, 1);\n  assert.name(escape, 'escape');\n\n  assert.same(escape('10$'), '\\\\x310\\\\$', '10$');\n  assert.same(escape('abcdefg_123456'), '\\\\x61bcdefg_123456', 'abcdefg_123456');\n  assert.same(escape('Привет'), 'Привет', 'Привет');\n  assert.same(\n    escape('(){}[]|,.?*+-^$=<>\\\\/#&!%:;@~\\'\"`'),\n    '\\\\(\\\\)\\\\{\\\\}\\\\[\\\\]\\\\|\\\\x2c\\\\.\\\\?\\\\*\\\\+\\\\x2d\\\\^\\\\$\\\\x3d\\\\x3c\\\\x3e\\\\\\\\\\\\/\\\\x23\\\\x26\\\\x21\\\\x25\\\\x3a\\\\x3b\\\\x40\\\\x7e\\\\x27\\\\x22\\\\x60',\n    '(){}[]|,.?*+-^$=<>\\\\/#&!%:;@~\\'\"`',\n  );\n  assert.same(\n    escape('\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF'),\n    '\\\\t\\\\n\\\\v\\\\f\\\\r\\\\x20\\\\xa0\\\\u1680\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029\\\\ufeff',\n    'whitespaces and control',\n  );\n\n  assert.same(escape('💩'), '💩', '💩');\n  assert.same(escape('\\uD83D'), '\\\\ud83d', '\\\\ud83d');\n  assert.same(escape('\\uDCA9'), '\\\\udca9', '\\\\udca9');\n  assert.same(escape('\\uDCA9\\uD83D'), '\\\\udca9\\\\ud83d', '\\\\udca9\\\\ud83d');\n\n  assert.throws(() => escape(42), TypeError, 'throws on non-string #1');\n  assert.throws(() => escape({}), TypeError, 'throws on non-string #2');\n\n  // Test262\n  // Copyright 2024 Leo Balter. All rights reserved.\n  // This code is governed by the BSD license found in the https://github.com/tc39/test262/blob/main/LICENSE file.\n  assert.same(escape('\\u2028'), '\\\\u2028', 'line terminator \\\\u2028 is escaped correctly to \\\\\\\\u2028');\n  assert.same(escape('\\u2029'), '\\\\u2029', 'line terminator \\\\u2029 is escaped correctly to \\\\\\\\u2029');\n  assert.same(escape('\\u2028\\u2029'), '\\\\u2028\\\\u2029', 'line terminators are escaped correctly');\n  assert.same(escape('\\u2028a\\u2029a'), '\\\\u2028a\\\\u2029a', 'mixed line terminators are escaped correctly');\n\n  assert.same(escape('.a/b'), '\\\\.a\\\\/b', 'mixed string with solidus character is escaped correctly');\n  assert.same(escape('/./'), '\\\\/\\\\.\\\\/', 'solidus character is escaped correctly - regexp similar');\n  assert.same(escape('./a\\\\/*b+c?d^e$f|g{2}h[i]j\\\\k'), '\\\\.\\\\/a\\\\\\\\\\\\/\\\\*b\\\\+c\\\\?d\\\\^e\\\\$f\\\\|g\\\\{2\\\\}h\\\\[i\\\\]j\\\\\\\\k', 'complex string with multiple special characters is escaped correctly');\n\n  assert.same(escape('/'), '\\\\/', 'solidus character is escaped correctly');\n  assert.same(escape('//'), '\\\\/\\\\/', 'solidus character is escaped correctly - multiple occurrences 1');\n  assert.same(escape('///'), '\\\\/\\\\/\\\\/', 'solidus character is escaped correctly - multiple occurrences 2');\n  assert.same(escape('////'), '\\\\/\\\\/\\\\/\\\\/', 'solidus character is escaped correctly - multiple occurrences 3');\n\n  assert.same(escape('.'), '\\\\.', 'dot character is escaped correctly');\n  assert.same(escape('*'), '\\\\*', 'asterisk character is escaped correctly');\n  assert.same(escape('+'), '\\\\+', 'plus character is escaped correctly');\n  assert.same(escape('?'), '\\\\?', 'question mark character is escaped correctly');\n  assert.same(escape('^'), '\\\\^', 'caret character is escaped correctly');\n  assert.same(escape('$'), '\\\\$', 'dollar character is escaped correctly');\n  assert.same(escape('|'), '\\\\|', 'pipe character is escaped correctly');\n  assert.same(escape('('), '\\\\(', 'open parenthesis character is escaped correctly');\n  assert.same(escape(')'), '\\\\)', 'close parenthesis character is escaped correctly');\n  assert.same(escape('['), '\\\\[', 'open bracket character is escaped correctly');\n  assert.same(escape(']'), '\\\\]', 'close bracket character is escaped correctly');\n  assert.same(escape('{'), '\\\\{', 'open brace character is escaped correctly');\n  assert.same(escape('}'), '\\\\}', 'close brace character is escaped correctly');\n  assert.same(escape('\\\\'), '\\\\\\\\', 'backslash character is escaped correctly');\n\n  const codePoints = String.fromCharCode(0x100, 0x200, 0x300);\n  assert.same(escape(codePoints), codePoints, 'characters are correctly not escaped');\n\n  assert.same(escape('你好'), '你好', 'Chinese characters are correctly not escaped');\n  assert.same(escape('こんにちは'), 'こんにちは', 'Japanese characters are correctly not escaped');\n  assert.same(escape('안녕하세요'), '안녕하세요', 'Korean characters are correctly not escaped');\n  assert.same(escape('Привет'), 'Привет', 'Cyrillic characters are correctly not escaped');\n  assert.same(escape('مرحبا'), 'مرحبا', 'Arabic characters are correctly not escaped');\n  assert.same(escape('हेलो'), 'हेलो', 'Devanagari characters are correctly not escaped');\n  assert.same(escape('Γειά σου'), 'Γειά\\\\x20σου', 'Greek characters are correctly not escaped');\n  assert.same(escape('שלום'), 'שלום', 'Hebrew characters are correctly not escaped');\n  assert.same(escape('สวัสดี'), 'สวัสดี', 'Thai characters are correctly not escaped');\n  assert.same(escape('नमस्ते'), 'नमस्ते', 'Hindi characters are correctly not escaped');\n  assert.same(escape('ሰላም'), 'ሰላም', 'Amharic characters are correctly not escaped');\n  assert.same(escape('हैलो'), 'हैलो', 'Hindi characters with diacritics are correctly not escaped');\n  assert.same(escape('안녕!'), '안녕\\\\x21', 'Korean character with special character is correctly escaped');\n  assert.same(escape('.hello\\uD7FFworld'), '\\\\.hello\\uD7FFworld', 'Mixed ASCII and Unicode characters are correctly escaped');\n\n  assert.same(escape('\\uFEFF'), '\\\\ufeff', 'whitespace \\\\uFEFF is escaped correctly to \\\\uFEFF');\n  assert.same(escape('\\u0020'), '\\\\x20', 'whitespace \\\\u0020 is escaped correctly to \\\\x20');\n  assert.same(escape('\\u00A0'), '\\\\xa0', 'whitespace \\\\u00A0 is escaped correctly to \\\\xA0');\n  assert.same(escape('\\u202F'), '\\\\u202f', 'whitespace \\\\u202F is escaped correctly to \\\\u202F');\n  assert.same(escape('\\u0009'), '\\\\t', 'whitespace \\\\u0009 is escaped correctly to \\\\t');\n  assert.same(escape('\\u000B'), '\\\\v', 'whitespace \\\\u000B is escaped correctly to \\\\v');\n  assert.same(escape('\\u000C'), '\\\\f', 'whitespace \\\\u000C is escaped correctly to \\\\f');\n  assert.same(escape('\\uFEFF\\u0020\\u00A0\\u202F\\u0009\\u000B\\u000C'), '\\\\ufeff\\\\x20\\\\xa0\\\\u202f\\\\t\\\\v\\\\f', 'whitespaces are escaped correctly');\n\n  // Escaping initial digits\n  assert.same(escape('1111'), '\\\\x31111', 'Initial decimal digit 1 is escaped');\n  assert.same(escape('2222'), '\\\\x32222', 'Initial decimal digit 2 is escaped');\n  assert.same(escape('3333'), '\\\\x33333', 'Initial decimal digit 3 is escaped');\n  assert.same(escape('4444'), '\\\\x34444', 'Initial decimal digit 4 is escaped');\n  assert.same(escape('5555'), '\\\\x35555', 'Initial decimal digit 5 is escaped');\n  assert.same(escape('6666'), '\\\\x36666', 'Initial decimal digit 6 is escaped');\n  assert.same(escape('7777'), '\\\\x37777', 'Initial decimal digit 7 is escaped');\n  assert.same(escape('8888'), '\\\\x38888', 'Initial decimal digit 8 is escaped');\n  assert.same(escape('9999'), '\\\\x39999', 'Initial decimal digit 9 is escaped');\n  assert.same(escape('0000'), '\\\\x30000', 'Initial decimal digit 0 is escaped');\n\n  // Escaping initial ASCII letters\n  assert.same(escape('aaa'), '\\\\x61aa', 'Initial ASCII letter a is escaped');\n  assert.same(escape('bbb'), '\\\\x62bb', 'Initial ASCII letter b is escaped');\n  assert.same(escape('ccc'), '\\\\x63cc', 'Initial ASCII letter c is escaped');\n  assert.same(escape('ddd'), '\\\\x64dd', 'Initial ASCII letter d is escaped');\n  assert.same(escape('eee'), '\\\\x65ee', 'Initial ASCII letter e is escaped');\n  assert.same(escape('fff'), '\\\\x66ff', 'Initial ASCII letter f is escaped');\n  assert.same(escape('ggg'), '\\\\x67gg', 'Initial ASCII letter g is escaped');\n  assert.same(escape('hhh'), '\\\\x68hh', 'Initial ASCII letter h is escaped');\n  assert.same(escape('iii'), '\\\\x69ii', 'Initial ASCII letter i is escaped');\n  assert.same(escape('jjj'), '\\\\x6ajj', 'Initial ASCII letter j is escaped');\n  assert.same(escape('kkk'), '\\\\x6bkk', 'Initial ASCII letter k is escaped');\n  assert.same(escape('lll'), '\\\\x6cll', 'Initial ASCII letter l is escaped');\n  assert.same(escape('mmm'), '\\\\x6dmm', 'Initial ASCII letter m is escaped');\n  assert.same(escape('nnn'), '\\\\x6enn', 'Initial ASCII letter n is escaped');\n  assert.same(escape('ooo'), '\\\\x6foo', 'Initial ASCII letter o is escaped');\n  assert.same(escape('ppp'), '\\\\x70pp', 'Initial ASCII letter p is escaped');\n  assert.same(escape('qqq'), '\\\\x71qq', 'Initial ASCII letter q is escaped');\n  assert.same(escape('rrr'), '\\\\x72rr', 'Initial ASCII letter r is escaped');\n  assert.same(escape('sss'), '\\\\x73ss', 'Initial ASCII letter s is escaped');\n  assert.same(escape('ttt'), '\\\\x74tt', 'Initial ASCII letter t is escaped');\n  assert.same(escape('uuu'), '\\\\x75uu', 'Initial ASCII letter u is escaped');\n  assert.same(escape('vvv'), '\\\\x76vv', 'Initial ASCII letter v is escaped');\n  assert.same(escape('www'), '\\\\x77ww', 'Initial ASCII letter w is escaped');\n  assert.same(escape('xxx'), '\\\\x78xx', 'Initial ASCII letter x is escaped');\n  assert.same(escape('yyy'), '\\\\x79yy', 'Initial ASCII letter y is escaped');\n  assert.same(escape('zzz'), '\\\\x7azz', 'Initial ASCII letter z is escaped');\n  assert.same(escape('AAA'), '\\\\x41AA', 'Initial ASCII letter A is escaped');\n  assert.same(escape('BBB'), '\\\\x42BB', 'Initial ASCII letter B is escaped');\n  assert.same(escape('CCC'), '\\\\x43CC', 'Initial ASCII letter C is escaped');\n  assert.same(escape('DDD'), '\\\\x44DD', 'Initial ASCII letter D is escaped');\n  assert.same(escape('EEE'), '\\\\x45EE', 'Initial ASCII letter E is escaped');\n  assert.same(escape('FFF'), '\\\\x46FF', 'Initial ASCII letter F is escaped');\n  assert.same(escape('GGG'), '\\\\x47GG', 'Initial ASCII letter G is escaped');\n  assert.same(escape('HHH'), '\\\\x48HH', 'Initial ASCII letter H is escaped');\n  assert.same(escape('III'), '\\\\x49II', 'Initial ASCII letter I is escaped');\n  assert.same(escape('JJJ'), '\\\\x4aJJ', 'Initial ASCII letter J is escaped');\n  assert.same(escape('KKK'), '\\\\x4bKK', 'Initial ASCII letter K is escaped');\n  assert.same(escape('LLL'), '\\\\x4cLL', 'Initial ASCII letter L is escaped');\n  assert.same(escape('MMM'), '\\\\x4dMM', 'Initial ASCII letter M is escaped');\n  assert.same(escape('NNN'), '\\\\x4eNN', 'Initial ASCII letter N is escaped');\n  assert.same(escape('OOO'), '\\\\x4fOO', 'Initial ASCII letter O is escaped');\n  assert.same(escape('PPP'), '\\\\x50PP', 'Initial ASCII letter P is escaped');\n  assert.same(escape('QQQ'), '\\\\x51QQ', 'Initial ASCII letter Q is escaped');\n  assert.same(escape('RRR'), '\\\\x52RR', 'Initial ASCII letter R is escaped');\n  assert.same(escape('SSS'), '\\\\x53SS', 'Initial ASCII letter S is escaped');\n  assert.same(escape('TTT'), '\\\\x54TT', 'Initial ASCII letter T is escaped');\n  assert.same(escape('UUU'), '\\\\x55UU', 'Initial ASCII letter U is escaped');\n  assert.same(escape('VVV'), '\\\\x56VV', 'Initial ASCII letter V is escaped');\n  assert.same(escape('WWW'), '\\\\x57WW', 'Initial ASCII letter W is escaped');\n  assert.same(escape('XXX'), '\\\\x58XX', 'Initial ASCII letter X is escaped');\n  assert.same(escape('YYY'), '\\\\x59YY', 'Initial ASCII letter Y is escaped');\n  assert.same(escape('ZZZ'), '\\\\x5aZZ', 'Initial ASCII letter Z is escaped');\n\n  // Mixed case with special characters\n  assert.same(escape('1+1'), '\\\\x31\\\\+1', 'Initial decimal digit 1 with special character is escaped');\n  assert.same(escape('2+2'), '\\\\x32\\\\+2', 'Initial decimal digit 2 with special character is escaped');\n  assert.same(escape('3+3'), '\\\\x33\\\\+3', 'Initial decimal digit 3 with special character is escaped');\n  assert.same(escape('4+4'), '\\\\x34\\\\+4', 'Initial decimal digit 4 with special character is escaped');\n  assert.same(escape('5+5'), '\\\\x35\\\\+5', 'Initial decimal digit 5 with special character is escaped');\n  assert.same(escape('6+6'), '\\\\x36\\\\+6', 'Initial decimal digit 6 with special character is escaped');\n  assert.same(escape('7+7'), '\\\\x37\\\\+7', 'Initial decimal digit 7 with special character is escaped');\n  assert.same(escape('8+8'), '\\\\x38\\\\+8', 'Initial decimal digit 8 with special character is escaped');\n  assert.same(escape('9+9'), '\\\\x39\\\\+9', 'Initial decimal digit 9 with special character is escaped');\n  assert.same(escape('0+0'), '\\\\x30\\\\+0', 'Initial decimal digit 0 with special character is escaped');\n\n  assert.same(escape('a*a'), '\\\\x61\\\\*a', 'Initial ASCII letter a with special character is escaped');\n  assert.same(escape('b*b'), '\\\\x62\\\\*b', 'Initial ASCII letter b with special character is escaped');\n  assert.same(escape('c*c'), '\\\\x63\\\\*c', 'Initial ASCII letter c with special character is escaped');\n  assert.same(escape('d*d'), '\\\\x64\\\\*d', 'Initial ASCII letter d with special character is escaped');\n  assert.same(escape('e*e'), '\\\\x65\\\\*e', 'Initial ASCII letter e with special character is escaped');\n  assert.same(escape('f*f'), '\\\\x66\\\\*f', 'Initial ASCII letter f with special character is escaped');\n  assert.same(escape('g*g'), '\\\\x67\\\\*g', 'Initial ASCII letter g with special character is escaped');\n  assert.same(escape('h*h'), '\\\\x68\\\\*h', 'Initial ASCII letter h with special character is escaped');\n  assert.same(escape('i*i'), '\\\\x69\\\\*i', 'Initial ASCII letter i with special character is escaped');\n  assert.same(escape('j*j'), '\\\\x6a\\\\*j', 'Initial ASCII letter j with special character is escaped');\n  assert.same(escape('k*k'), '\\\\x6b\\\\*k', 'Initial ASCII letter k with special character is escaped');\n  assert.same(escape('l*l'), '\\\\x6c\\\\*l', 'Initial ASCII letter l with special character is escaped');\n  assert.same(escape('m*m'), '\\\\x6d\\\\*m', 'Initial ASCII letter m with special character is escaped');\n  assert.same(escape('n*n'), '\\\\x6e\\\\*n', 'Initial ASCII letter n with special character is escaped');\n  assert.same(escape('o*o'), '\\\\x6f\\\\*o', 'Initial ASCII letter o with special character is escaped');\n  assert.same(escape('p*p'), '\\\\x70\\\\*p', 'Initial ASCII letter p with special character is escaped');\n  assert.same(escape('q*q'), '\\\\x71\\\\*q', 'Initial ASCII letter q with special character is escaped');\n  assert.same(escape('r*r'), '\\\\x72\\\\*r', 'Initial ASCII letter r with special character is escaped');\n  assert.same(escape('s*s'), '\\\\x73\\\\*s', 'Initial ASCII letter s with special character is escaped');\n  assert.same(escape('t*t'), '\\\\x74\\\\*t', 'Initial ASCII letter t with special character is escaped');\n  assert.same(escape('u*u'), '\\\\x75\\\\*u', 'Initial ASCII letter u with special character is escaped');\n  assert.same(escape('v*v'), '\\\\x76\\\\*v', 'Initial ASCII letter v with special character is escaped');\n  assert.same(escape('w*w'), '\\\\x77\\\\*w', 'Initial ASCII letter w with special character is escaped');\n  assert.same(escape('x*x'), '\\\\x78\\\\*x', 'Initial ASCII letter x with special character is escaped');\n  assert.same(escape('y*y'), '\\\\x79\\\\*y', 'Initial ASCII letter y with special character is escaped');\n  assert.same(escape('z*z'), '\\\\x7a\\\\*z', 'Initial ASCII letter z with special character is escaped');\n  assert.same(escape('A*A'), '\\\\x41\\\\*A', 'Initial ASCII letter A with special character is escaped');\n  assert.same(escape('B*B'), '\\\\x42\\\\*B', 'Initial ASCII letter B with special character is escaped');\n  assert.same(escape('C*C'), '\\\\x43\\\\*C', 'Initial ASCII letter C with special character is escaped');\n  assert.same(escape('D*D'), '\\\\x44\\\\*D', 'Initial ASCII letter D with special character is escaped');\n  assert.same(escape('E*E'), '\\\\x45\\\\*E', 'Initial ASCII letter E with special character is escaped');\n  assert.same(escape('F*F'), '\\\\x46\\\\*F', 'Initial ASCII letter F with special character is escaped');\n  assert.same(escape('G*G'), '\\\\x47\\\\*G', 'Initial ASCII letter G with special character is escaped');\n  assert.same(escape('H*H'), '\\\\x48\\\\*H', 'Initial ASCII letter H with special character is escaped');\n  assert.same(escape('I*I'), '\\\\x49\\\\*I', 'Initial ASCII letter I with special character is escaped');\n  assert.same(escape('J*J'), '\\\\x4a\\\\*J', 'Initial ASCII letter J with special character is escaped');\n  assert.same(escape('K*K'), '\\\\x4b\\\\*K', 'Initial ASCII letter K with special character is escaped');\n  assert.same(escape('L*L'), '\\\\x4c\\\\*L', 'Initial ASCII letter L with special character is escaped');\n  assert.same(escape('M*M'), '\\\\x4d\\\\*M', 'Initial ASCII letter M with special character is escaped');\n  assert.same(escape('N*N'), '\\\\x4e\\\\*N', 'Initial ASCII letter N with special character is escaped');\n  assert.same(escape('O*O'), '\\\\x4f\\\\*O', 'Initial ASCII letter O with special character is escaped');\n  assert.same(escape('P*P'), '\\\\x50\\\\*P', 'Initial ASCII letter P with special character is escaped');\n  assert.same(escape('Q*Q'), '\\\\x51\\\\*Q', 'Initial ASCII letter Q with special character is escaped');\n  assert.same(escape('R*R'), '\\\\x52\\\\*R', 'Initial ASCII letter R with special character is escaped');\n  assert.same(escape('S*S'), '\\\\x53\\\\*S', 'Initial ASCII letter S with special character is escaped');\n  assert.same(escape('T*T'), '\\\\x54\\\\*T', 'Initial ASCII letter T with special character is escaped');\n  assert.same(escape('U*U'), '\\\\x55\\\\*U', 'Initial ASCII letter U with special character is escaped');\n  assert.same(escape('V*V'), '\\\\x56\\\\*V', 'Initial ASCII letter V with special character is escaped');\n  assert.same(escape('W*W'), '\\\\x57\\\\*W', 'Initial ASCII letter W with special character is escaped');\n  assert.same(escape('X*X'), '\\\\x58\\\\*X', 'Initial ASCII letter X with special character is escaped');\n  assert.same(escape('Y*Y'), '\\\\x59\\\\*Y', 'Initial ASCII letter Y with special character is escaped');\n  assert.same(escape('Z*Z'), '\\\\x5a\\\\*Z', 'Initial ASCII letter Z with special character is escaped');\n\n  assert.same(escape('_'), '_', 'Single underscore character is not escaped');\n  assert.same(escape('__'), '__', 'Thunderscore character is not escaped');\n  assert.same(escape('hello_world'), '\\\\x68ello_world', 'String starting with ASCII letter and containing underscore is not escaped');\n  assert.same(escape('1_hello_world'), '\\\\x31_hello_world', 'String starting with digit and containing underscore is correctly escaped');\n  assert.same(escape('a_b_c'), '\\\\x61_b_c', 'String starting with ASCII letter and containing multiple underscores is correctly escaped');\n  assert.same(escape('3_b_4'), '\\\\x33_b_4', 'String starting with digit and containing multiple underscores is correctly escaped');\n  assert.same(escape('_hello'), '_hello', 'String starting with underscore and containing other characters is not escaped');\n  assert.same(escape('_1hello'), '_1hello', 'String starting with underscore and digit is not escaped');\n  assert.same(escape('_a_1_2'), '_a_1_2', 'String starting with underscore and mixed characters is not escaped');\n\n  // Specific surrogate points\n  assert.same(escape('\\uD800'), '\\\\ud800', 'High surrogate \\\\uD800 is correctly escaped');\n  assert.same(escape('\\uDBFF'), '\\\\udbff', 'High surrogate \\\\uDBFF is correctly escaped');\n  assert.same(escape('\\uDC00'), '\\\\udc00', 'Low surrogate \\\\uDC00 is correctly escaped');\n  assert.same(escape('\\uDFFF'), '\\\\udfff', 'Low surrogate \\\\uDFFF is correctly escaped');\n\n  // Leading Surrogates\n  const highSurrogatesGroup1 = '\\uD800\\uD801\\uD802\\uD803\\uD804\\uD805\\uD806\\uD807\\uD808\\uD809\\uD80A\\uD80B\\uD80C\\uD80D\\uD80E\\uD80F';\n  const highSurrogatesGroup2 = '\\uD810\\uD811\\uD812\\uD813\\uD814\\uD815\\uD816\\uD817\\uD818\\uD819\\uD81A\\uD81B\\uD81C\\uD81D\\uD81E\\uD81F';\n  const highSurrogatesGroup3 = '\\uD820\\uD821\\uD822\\uD823\\uD824\\uD825\\uD826\\uD827\\uD828\\uD829\\uD82A\\uD82B\\uD82C\\uD82D\\uD82E\\uD82F';\n  const highSurrogatesGroup4 = '\\uD830\\uD831\\uD832\\uD833\\uD834\\uD835\\uD836\\uD837\\uD838\\uD839\\uD83A\\uD83B\\uD83C\\uD83D\\uD83E\\uD83F';\n  const highSurrogatesGroup5 = '\\uD840\\uD841\\uD842\\uD843\\uD844\\uD845\\uD846\\uD847\\uD848\\uD849\\uD84A\\uD84B\\uD84C\\uD84D\\uD84E\\uD84F';\n  const highSurrogatesGroup6 = '\\uD850\\uD851\\uD852\\uD853\\uD854\\uD855\\uD856\\uD857\\uD858\\uD859\\uD85A\\uD85B\\uD85C\\uD85D\\uD85E\\uD85F';\n  const highSurrogatesGroup7 = '\\uD860\\uD861\\uD862\\uD863\\uD864\\uD865\\uD866\\uD867\\uD868\\uD869\\uD86A\\uD86B\\uD86C\\uD86D\\uD86E\\uD86F';\n  const highSurrogatesGroup8 = '\\uD870\\uD871\\uD872\\uD873\\uD874\\uD875\\uD876\\uD877\\uD878\\uD879\\uD87A\\uD87B\\uD87C\\uD87D\\uD87E\\uD87F';\n  const highSurrogatesGroup9 = '\\uD880\\uD881\\uD882\\uD883\\uD884\\uD885\\uD886\\uD887\\uD888\\uD889\\uD88A\\uD88B\\uD88C\\uD88D\\uD88E\\uD88F';\n  const highSurrogatesGroup10 = '\\uD890\\uD891\\uD892\\uD893\\uD894\\uD895\\uD896\\uD897\\uD898\\uD899\\uD89A\\uD89B\\uD89C\\uD89D\\uD89E\\uD89F';\n  const highSurrogatesGroup11 = '\\uD8A0\\uD8A1\\uD8A2\\uD8A3\\uD8A4\\uD8A5\\uD8A6\\uD8A7\\uD8A8\\uD8A9\\uD8AA\\uD8AB\\uD8AC\\uD8AD\\uD8AE\\uD8AF';\n  const highSurrogatesGroup12 = '\\uD8B0\\uD8B1\\uD8B2\\uD8B3\\uD8B4\\uD8B5\\uD8B6\\uD8B7\\uD8B8\\uD8B9\\uD8BA\\uD8BB\\uD8BC\\uD8BD\\uD8BE\\uD8BF';\n  const highSurrogatesGroup13 = '\\uD8C0\\uD8C1\\uD8C2\\uD8C3\\uD8C4\\uD8C5\\uD8C6\\uD8C7\\uD8C8\\uD8C9\\uD8CA\\uD8CB\\uD8CC\\uD8CD\\uD8CE\\uD8CF';\n  const highSurrogatesGroup14 = '\\uD8D0\\uD8D1\\uD8D2\\uD8D3\\uD8D4\\uD8D5\\uD8D6\\uD8D7\\uD8D8\\uD8D9\\uD8DA\\uD8DB\\uD8DC\\uD8DD\\uD8DE\\uD8DF';\n  const highSurrogatesGroup15 = '\\uD8E0\\uD8E1\\uD8E2\\uD8E3\\uD8E4\\uD8E5\\uD8E6\\uD8E7\\uD8E8\\uD8E9\\uD8EA\\uD8EB\\uD8EC\\uD8ED\\uD8EE\\uD8EF';\n  const highSurrogatesGroup16 = '\\uD8F0\\uD8F1\\uD8F2\\uD8F3\\uD8F4\\uD8F5\\uD8F6\\uD8F7\\uD8F8\\uD8F9\\uD8FA\\uD8FB\\uD8FC\\uD8FD\\uD8FE\\uD8FF';\n\n  assert.same(escape(highSurrogatesGroup1), '\\\\ud800\\\\ud801\\\\ud802\\\\ud803\\\\ud804\\\\ud805\\\\ud806\\\\ud807\\\\ud808\\\\ud809\\\\ud80a\\\\ud80b\\\\ud80c\\\\ud80d\\\\ud80e\\\\ud80f', 'High surrogates group 1 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup2), '\\\\ud810\\\\ud811\\\\ud812\\\\ud813\\\\ud814\\\\ud815\\\\ud816\\\\ud817\\\\ud818\\\\ud819\\\\ud81a\\\\ud81b\\\\ud81c\\\\ud81d\\\\ud81e\\\\ud81f', 'High surrogates group 2 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup3), '\\\\ud820\\\\ud821\\\\ud822\\\\ud823\\\\ud824\\\\ud825\\\\ud826\\\\ud827\\\\ud828\\\\ud829\\\\ud82a\\\\ud82b\\\\ud82c\\\\ud82d\\\\ud82e\\\\ud82f', 'High surrogates group 3 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup4), '\\\\ud830\\\\ud831\\\\ud832\\\\ud833\\\\ud834\\\\ud835\\\\ud836\\\\ud837\\\\ud838\\\\ud839\\\\ud83a\\\\ud83b\\\\ud83c\\\\ud83d\\\\ud83e\\\\ud83f', 'High surrogates group 4 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup5), '\\\\ud840\\\\ud841\\\\ud842\\\\ud843\\\\ud844\\\\ud845\\\\ud846\\\\ud847\\\\ud848\\\\ud849\\\\ud84a\\\\ud84b\\\\ud84c\\\\ud84d\\\\ud84e\\\\ud84f', 'High surrogates group 5 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup6), '\\\\ud850\\\\ud851\\\\ud852\\\\ud853\\\\ud854\\\\ud855\\\\ud856\\\\ud857\\\\ud858\\\\ud859\\\\ud85a\\\\ud85b\\\\ud85c\\\\ud85d\\\\ud85e\\\\ud85f', 'High surrogates group 6 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup7), '\\\\ud860\\\\ud861\\\\ud862\\\\ud863\\\\ud864\\\\ud865\\\\ud866\\\\ud867\\\\ud868\\\\ud869\\\\ud86a\\\\ud86b\\\\ud86c\\\\ud86d\\\\ud86e\\\\ud86f', 'High surrogates group 7 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup8), '\\\\ud870\\\\ud871\\\\ud872\\\\ud873\\\\ud874\\\\ud875\\\\ud876\\\\ud877\\\\ud878\\\\ud879\\\\ud87a\\\\ud87b\\\\ud87c\\\\ud87d\\\\ud87e\\\\ud87f', 'High surrogates group 8 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup9), '\\\\ud880\\\\ud881\\\\ud882\\\\ud883\\\\ud884\\\\ud885\\\\ud886\\\\ud887\\\\ud888\\\\ud889\\\\ud88a\\\\ud88b\\\\ud88c\\\\ud88d\\\\ud88e\\\\ud88f', 'High surrogates group 9 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup10), '\\\\ud890\\\\ud891\\\\ud892\\\\ud893\\\\ud894\\\\ud895\\\\ud896\\\\ud897\\\\ud898\\\\ud899\\\\ud89a\\\\ud89b\\\\ud89c\\\\ud89d\\\\ud89e\\\\ud89f', 'High surrogates group 10 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup11), '\\\\ud8a0\\\\ud8a1\\\\ud8a2\\\\ud8a3\\\\ud8a4\\\\ud8a5\\\\ud8a6\\\\ud8a7\\\\ud8a8\\\\ud8a9\\\\ud8aa\\\\ud8ab\\\\ud8ac\\\\ud8ad\\\\ud8ae\\\\ud8af', 'High surrogates group 11 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup12), '\\\\ud8b0\\\\ud8b1\\\\ud8b2\\\\ud8b3\\\\ud8b4\\\\ud8b5\\\\ud8b6\\\\ud8b7\\\\ud8b8\\\\ud8b9\\\\ud8ba\\\\ud8bb\\\\ud8bc\\\\ud8bd\\\\ud8be\\\\ud8bf', 'High surrogates group 12 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup13), '\\\\ud8c0\\\\ud8c1\\\\ud8c2\\\\ud8c3\\\\ud8c4\\\\ud8c5\\\\ud8c6\\\\ud8c7\\\\ud8c8\\\\ud8c9\\\\ud8ca\\\\ud8cb\\\\ud8cc\\\\ud8cd\\\\ud8ce\\\\ud8cf', 'High surrogates group 13 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup14), '\\\\ud8d0\\\\ud8d1\\\\ud8d2\\\\ud8d3\\\\ud8d4\\\\ud8d5\\\\ud8d6\\\\ud8d7\\\\ud8d8\\\\ud8d9\\\\ud8da\\\\ud8db\\\\ud8dc\\\\ud8dd\\\\ud8de\\\\ud8df', 'High surrogates group 14 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup15), '\\\\ud8e0\\\\ud8e1\\\\ud8e2\\\\ud8e3\\\\ud8e4\\\\ud8e5\\\\ud8e6\\\\ud8e7\\\\ud8e8\\\\ud8e9\\\\ud8ea\\\\ud8eb\\\\ud8ec\\\\ud8ed\\\\ud8ee\\\\ud8ef', 'High surrogates group 15 are correctly escaped');\n  assert.same(escape(highSurrogatesGroup16), '\\\\ud8f0\\\\ud8f1\\\\ud8f2\\\\ud8f3\\\\ud8f4\\\\ud8f5\\\\ud8f6\\\\ud8f7\\\\ud8f8\\\\ud8f9\\\\ud8fa\\\\ud8fb\\\\ud8fc\\\\ud8fd\\\\ud8fe\\\\ud8ff', 'High surrogates group 16 are correctly escaped');\n\n  // Trailing Surrogates\n  const lowSurrogatesGroup1 = '\\uDC00\\uDC01\\uDC02\\uDC03\\uDC04\\uDC05\\uDC06\\uDC07\\uDC08\\uDC09\\uDC0A\\uDC0B\\uDC0C\\uDC0D\\uDC0E\\uDC0F';\n  const lowSurrogatesGroup2 = '\\uDC10\\uDC11\\uDC12\\uDC13\\uDC14\\uDC15\\uDC16\\uDC17\\uDC18\\uDC19\\uDC1A\\uDC1B\\uDC1C\\uDC1D\\uDC1E\\uDC1F';\n  const lowSurrogatesGroup3 = '\\uDC20\\uDC21\\uDC22\\uDC23\\uDC24\\uDC25\\uDC26\\uDC27\\uDC28\\uDC29\\uDC2A\\uDC2B\\uDC2C\\uDC2D\\uDC2E\\uDC2F';\n  const lowSurrogatesGroup4 = '\\uDC30\\uDC31\\uDC32\\uDC33\\uDC34\\uDC35\\uDC36\\uDC37\\uDC38\\uDC39\\uDC3A\\uDC3B\\uDC3C\\uDC3D\\uDC3E\\uDC3F';\n  const lowSurrogatesGroup5 = '\\uDC40\\uDC41\\uDC42\\uDC43\\uDC44\\uDC45\\uDC46\\uDC47\\uDC48\\uDC49\\uDC4A\\uDC4B\\uDC4C\\uDC4D\\uDC4E\\uDC4F';\n  const lowSurrogatesGroup6 = '\\uDC50\\uDC51\\uDC52\\uDC53\\uDC54\\uDC55\\uDC56\\uDC57\\uDC58\\uDC59\\uDC5A\\uDC5B\\uDC5C\\uDC5D\\uDC5E\\uDC5F';\n  const lowSurrogatesGroup7 = '\\uDC60\\uDC61\\uDC62\\uDC63\\uDC64\\uDC65\\uDC66\\uDC67\\uDC68\\uDC69\\uDC6A\\uDC6B\\uDC6C\\uDC6D\\uDC6E\\uDC6F';\n  const lowSurrogatesGroup8 = '\\uDC70\\uDC71\\uDC72\\uDC73\\uDC74\\uDC75\\uDC76\\uDC77\\uDC78\\uDC79\\uDC7A\\uDC7B\\uDC7C\\uDC7D\\uDC7E\\uDC7F';\n  const lowSurrogatesGroup9 = '\\uDC80\\uDC81\\uDC82\\uDC83\\uDC84\\uDC85\\uDC86\\uDC87\\uDC88\\uDC89\\uDC8A\\uDC8B\\uDC8C\\uDC8D\\uDC8E\\uDC8F';\n  const lowSurrogatesGroup10 = '\\uDC90\\uDC91\\uDC92\\uDC93\\uDC94\\uDC95\\uDC96\\uDC97\\uDC98\\uDC99\\uDC9A\\uDC9B\\uDC9C\\uDC9D\\uDC9E\\uDC9F';\n  const lowSurrogatesGroup11 = '\\uDCA0\\uDCA1\\uDCA2\\uDCA3\\uDCA4\\uDCA5\\uDCA6\\uDCA7\\uDCA8\\uDCA9\\uDCAA\\uDCAB\\uDCAC\\uDCAD\\uDCAE\\uDCAF';\n  const lowSurrogatesGroup12 = '\\uDCB0\\uDCB1\\uDCB2\\uDCB3\\uDCB4\\uDCB5\\uDCB6\\uDCB7\\uDCB8\\uDCB9\\uDCBA\\uDCBB\\uDCBC\\uDCBD\\uDCBE\\uDCBF';\n  const lowSurrogatesGroup13 = '\\uDCC0\\uDCC1\\uDCC2\\uDCC3\\uDCC4\\uDCC5\\uDCC6\\uDCC7\\uDCC8\\uDCC9\\uDCCA\\uDCCB\\uDCCC\\uDCCD\\uDCCE\\uDCCF';\n  const lowSurrogatesGroup14 = '\\uDCD0\\uDCD1\\uDCD2\\uDCD3\\uDCD4\\uDCD5\\uDCD6\\uDCD7\\uDCD8\\uDCD9\\uDCDA\\uDCDB\\uDCDC\\uDCDD\\uDCDE\\uDCDF';\n  const lowSurrogatesGroup15 = '\\uDCE0\\uDCE1\\uDCE2\\uDCE3\\uDCE4\\uDCE5\\uDCE6\\uDCE7\\uDCE8\\uDCE9\\uDCEA\\uDCEB\\uDCEC\\uDCED\\uDCEE\\uDCEF';\n  const lowSurrogatesGroup16 = '\\uDCF0\\uDCF1\\uDCF2\\uDCF3\\uDCF4\\uDCF5\\uDCF6\\uDCF7\\uDCF8\\uDCF9\\uDCFA\\uDCFB\\uDCFC\\uDCFD\\uDCFE\\uDCFF';\n\n  assert.same(escape(lowSurrogatesGroup1), '\\\\udc00\\\\udc01\\\\udc02\\\\udc03\\\\udc04\\\\udc05\\\\udc06\\\\udc07\\\\udc08\\\\udc09\\\\udc0a\\\\udc0b\\\\udc0c\\\\udc0d\\\\udc0e\\\\udc0f', 'Low surrogates group 1 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup2), '\\\\udc10\\\\udc11\\\\udc12\\\\udc13\\\\udc14\\\\udc15\\\\udc16\\\\udc17\\\\udc18\\\\udc19\\\\udc1a\\\\udc1b\\\\udc1c\\\\udc1d\\\\udc1e\\\\udc1f', 'Low surrogates group 2 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup3), '\\\\udc20\\\\udc21\\\\udc22\\\\udc23\\\\udc24\\\\udc25\\\\udc26\\\\udc27\\\\udc28\\\\udc29\\\\udc2a\\\\udc2b\\\\udc2c\\\\udc2d\\\\udc2e\\\\udc2f', 'Low surrogates group 3 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup4), '\\\\udc30\\\\udc31\\\\udc32\\\\udc33\\\\udc34\\\\udc35\\\\udc36\\\\udc37\\\\udc38\\\\udc39\\\\udc3a\\\\udc3b\\\\udc3c\\\\udc3d\\\\udc3e\\\\udc3f', 'Low surrogates group 4 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup5), '\\\\udc40\\\\udc41\\\\udc42\\\\udc43\\\\udc44\\\\udc45\\\\udc46\\\\udc47\\\\udc48\\\\udc49\\\\udc4a\\\\udc4b\\\\udc4c\\\\udc4d\\\\udc4e\\\\udc4f', 'Low surrogates group 5 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup6), '\\\\udc50\\\\udc51\\\\udc52\\\\udc53\\\\udc54\\\\udc55\\\\udc56\\\\udc57\\\\udc58\\\\udc59\\\\udc5a\\\\udc5b\\\\udc5c\\\\udc5d\\\\udc5e\\\\udc5f', 'Low surrogates group 6 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup7), '\\\\udc60\\\\udc61\\\\udc62\\\\udc63\\\\udc64\\\\udc65\\\\udc66\\\\udc67\\\\udc68\\\\udc69\\\\udc6a\\\\udc6b\\\\udc6c\\\\udc6d\\\\udc6e\\\\udc6f', 'Low surrogates group 7 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup8), '\\\\udc70\\\\udc71\\\\udc72\\\\udc73\\\\udc74\\\\udc75\\\\udc76\\\\udc77\\\\udc78\\\\udc79\\\\udc7a\\\\udc7b\\\\udc7c\\\\udc7d\\\\udc7e\\\\udc7f', 'Low surrogates group 8 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup9), '\\\\udc80\\\\udc81\\\\udc82\\\\udc83\\\\udc84\\\\udc85\\\\udc86\\\\udc87\\\\udc88\\\\udc89\\\\udc8a\\\\udc8b\\\\udc8c\\\\udc8d\\\\udc8e\\\\udc8f', 'Low surrogates group 9 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup10), '\\\\udc90\\\\udc91\\\\udc92\\\\udc93\\\\udc94\\\\udc95\\\\udc96\\\\udc97\\\\udc98\\\\udc99\\\\udc9a\\\\udc9b\\\\udc9c\\\\udc9d\\\\udc9e\\\\udc9f', 'Low surrogates group 10 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup11), '\\\\udca0\\\\udca1\\\\udca2\\\\udca3\\\\udca4\\\\udca5\\\\udca6\\\\udca7\\\\udca8\\\\udca9\\\\udcaa\\\\udcab\\\\udcac\\\\udcad\\\\udcae\\\\udcaf', 'Low surrogates group 11 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup12), '\\\\udcb0\\\\udcb1\\\\udcb2\\\\udcb3\\\\udcb4\\\\udcb5\\\\udcb6\\\\udcb7\\\\udcb8\\\\udcb9\\\\udcba\\\\udcbb\\\\udcbc\\\\udcbd\\\\udcbe\\\\udcbf', 'Low surrogates group 12 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup13), '\\\\udcc0\\\\udcc1\\\\udcc2\\\\udcc3\\\\udcc4\\\\udcc5\\\\udcc6\\\\udcc7\\\\udcc8\\\\udcc9\\\\udcca\\\\udccb\\\\udccc\\\\udccd\\\\udcce\\\\udccf', 'Low surrogates group 13 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup14), '\\\\udcd0\\\\udcd1\\\\udcd2\\\\udcd3\\\\udcd4\\\\udcd5\\\\udcd6\\\\udcd7\\\\udcd8\\\\udcd9\\\\udcda\\\\udcdb\\\\udcdc\\\\udcdd\\\\udcde\\\\udcdf', 'Low surrogates group 14 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup15), '\\\\udce0\\\\udce1\\\\udce2\\\\udce3\\\\udce4\\\\udce5\\\\udce6\\\\udce7\\\\udce8\\\\udce9\\\\udcea\\\\udceb\\\\udcec\\\\udced\\\\udcee\\\\udcef', 'Low surrogates group 15 are correctly escaped');\n  assert.same(escape(lowSurrogatesGroup16), '\\\\udcf0\\\\udcf1\\\\udcf2\\\\udcf3\\\\udcf4\\\\udcf5\\\\udcf6\\\\udcf7\\\\udcf8\\\\udcf9\\\\udcfa\\\\udcfb\\\\udcfc\\\\udcfd\\\\udcfe\\\\udcff', 'Low surrogates group 16 are correctly escaped');\n\n  assert.same(escape('.a.b'), '\\\\.a\\\\.b', 'mixed string with dot character is escaped correctly');\n  assert.same(escape('.1+2'), '\\\\.1\\\\+2', 'mixed string with plus character is escaped correctly');\n  assert.same(escape('.a(b)c'), '\\\\.a\\\\(b\\\\)c', 'mixed string with parentheses is escaped correctly');\n  assert.same(escape('.a*b+c'), '\\\\.a\\\\*b\\\\+c', 'mixed string with asterisk and plus characters is escaped correctly');\n  assert.same(escape('.a?b^c'), '\\\\.a\\\\?b\\\\^c', 'mixed string with question mark and caret characters is escaped correctly');\n  assert.same(escape('.a{2}'), '\\\\.a\\\\{2\\\\}', 'mixed string with curly braces is escaped correctly');\n  assert.same(escape('.a|b'), '\\\\.a\\\\|b', 'mixed string with pipe character is escaped correctly');\n  assert.same(escape('.a\\\\b'), '\\\\.a\\\\\\\\b', 'mixed string with backslash is escaped correctly');\n  assert.same(escape('.a\\\\\\\\b'), '\\\\.a\\\\\\\\\\\\\\\\b', 'mixed string with backslash is escaped correctly');\n  assert.same(escape('.a^b'), '\\\\.a\\\\^b', 'mixed string with caret character is escaped correctly');\n  assert.same(escape('.a$b'), '\\\\.a\\\\$b', 'mixed string with dollar sign is escaped correctly');\n  assert.same(escape('.a[b]'), '\\\\.a\\\\[b\\\\]', 'mixed string with square brackets is escaped correctly');\n  assert.same(escape('.a.b(c)'), '\\\\.a\\\\.b\\\\(c\\\\)', 'mixed string with dot and parentheses is escaped correctly');\n  assert.same(escape('.a*b+c?d^e$f|g{2}h[i]j\\\\k'), '\\\\.a\\\\*b\\\\+c\\\\?d\\\\^e\\\\$f\\\\|g\\\\{2\\\\}h\\\\[i\\\\]j\\\\\\\\k', 'complex string with multiple special characters is escaped correctly');\n\n  assert.same(escape('^$\\\\.*+?()[]{}|'), '\\\\^\\\\$\\\\\\\\\\\\.\\\\*\\\\+\\\\?\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}\\\\|', 'Syntax characters are correctly escaped');\n\n  assert.throws(() => escape(123), TypeError, 'non-string input (number) throws TypeError');\n  assert.throws(() => escape({}), TypeError, 'non-string input (object) throws TypeError');\n  assert.throws(() => escape([]), TypeError, 'non-string input (array) throws TypeError');\n  assert.throws(() => escape(null), TypeError, 'non-string input (null) throws TypeError');\n  assert.throws(() => escape(undefined), TypeError, 'non-string input (undefined) throws TypeError');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.set.difference.js",
    "content": "import { createIterable, createSetLike } from '../helpers/helpers.js';\n\nimport from from 'core-js-pure/es/array/from';\n// TODO: use /es/ in core-js@4\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#difference', assert => {\n  const { difference } = Set.prototype;\n\n  assert.isFunction(difference);\n  assert.arity(difference, 1);\n  assert.name(difference, 'difference');\n  assert.nonEnumerable(Set.prototype, 'difference');\n\n  const set = new Set([1]);\n  assert.notSame(set.difference(new Set()), set);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).difference(new Set([4, 5]))), [1, 2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).difference(new Set([3, 4]))), [1, 2]);\n  assert.deepEqual(from(new Set([1, 2, 3]).difference(createSetLike([4, 5]))), [1, 2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).difference(createSetLike([3, 4]))), [1, 2]);\n\n  // TODO: drop from core-js@4\n  assert.deepEqual(from(new Set([1, 2, 3]).difference([4, 5])), [1, 2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).difference([3, 4])), [1, 2]);\n  assert.deepEqual(from(new Set([1, 2, 3]).difference(createIterable([3, 4]))), [1, 2]);\n\n  assert.same(new Set([42, 43]).difference({\n    size: Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }).size, 0);\n\n  assert.throws(() => new Set().difference({\n    size: -Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  assert.throws(() => new Set([1, 2, 3]).difference(), TypeError);\n\n  assert.throws(() => difference.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => difference.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => difference.call(null, [1, 2, 3]), TypeError);\n\n  // A WebKit bug occurs when `this` is updated while Set.prototype.difference is being executed\n  // https://bugs.webkit.org/show_bug.cgi?id=288595\n  const values = [2];\n  const setLike = {\n    size: values.length,\n    has() { return true; },\n    keys() {\n      let index = 0;\n      return {\n        next() {\n          const done = index >= values.length;\n          if (baseSet.has(1)) baseSet.clear();\n          return { done, value: values[index++] };\n        },\n      };\n    },\n  };\n\n  const baseSet = new Set([1, 2, 3, 4]);\n  const result = baseSet.difference(setLike);\n  assert.deepEqual(from(result), [1, 3, 4], 'incorrect behavior when this updated while Set#difference is being executed');\n\n  // Mutation via has() in the size(O) <= otherRec.size branch should not skip elements\n  const mutatingSet = new Set([1, 2, 3]);\n  const mutatingResult = mutatingSet.difference({\n    size: 10,\n    has(v) {\n      if (v === 1) {\n        mutatingSet.delete(2);\n        return true;\n      }\n      return false;\n    },\n    keys() { return { next() { return { done: true }; } }; },\n  });\n  assert.deepEqual(from(mutatingResult), [2, 3], 'iterates copy, not live set in has() branch');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.set.intersection.js",
    "content": "import { createIterable, createSetLike } from '../helpers/helpers.js';\n\nimport from from 'core-js-pure/es/array/from';\n// TODO: use /es/ in core-js@4\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#intersection', assert => {\n  const { intersection } = Set.prototype;\n\n  assert.isFunction(intersection);\n  assert.arity(intersection, 1);\n  assert.name(intersection, 'intersection');\n  assert.nonEnumerable(Set.prototype, 'intersection');\n\n  const set = new Set([1]);\n  assert.notSame(set.intersection(new Set()), set);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(new Set([4, 5]))), []);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(new Set([2, 3, 4]))), [2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([4, 5]))), []);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([2, 3, 4]))), [2, 3]);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(new Set([3, 2]))), [3, 2]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(new Set([3, 2, 1]))), [1, 2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(new Set([3, 2, 1, 0]))), [1, 2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([3, 2]))), [3, 2]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([3, 2, 1]))), [1, 2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([3, 2, 1, 0]))), [1, 2, 3]);\n\n  // TODO: drop from core-js@4\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection([4, 5])), []);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection([2, 3, 4])), [2, 3]);\n  assert.deepEqual(from(new Set([1, 2, 3]).intersection(createIterable([2, 3, 4]))), [2, 3]);\n\n  assert.deepEqual(from(new Set([42, 43]).intersection({\n    size: Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  })), [42, 43]);\n\n  assert.throws(() => new Set().intersection({\n    size: -Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  const s1 = new Set([1, 2, 3]);\n  assert.deepEqual(from(s1.intersection({\n    size: 10,\n    has(v) { s1.delete(v + 1); return true; },\n    keys() { throw new Error('Unexpected call to |keys| method'); },\n  })), [1, 3], 'Set.prototype.intersection re-checks SetDataHas after has()');\n\n  assert.throws(() => new Set([1, 2, 3]).intersection(), TypeError);\n\n  assert.throws(() => intersection.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => intersection.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => intersection.call(null, [1, 2, 3]), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.set.is-disjoint-from.js",
    "content": "import { createIterable, createSetLike } from '../helpers/helpers.js';\n\n// TODO: use /es/ in core-js@4\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#isDisjointFrom', assert => {\n  const { isDisjointFrom } = Set.prototype;\n\n  assert.isFunction(isDisjointFrom);\n  assert.arity(isDisjointFrom, 1);\n  assert.name(isDisjointFrom, 'isDisjointFrom');\n  assert.nonEnumerable(Set.prototype, 'isDisjointFrom');\n\n  assert.true(new Set([1]).isDisjointFrom(new Set([2])));\n  assert.false(new Set([1]).isDisjointFrom(new Set([1])));\n  assert.true(new Set([1, 2, 3]).isDisjointFrom(new Set([4, 5, 6])));\n  assert.false(new Set([1, 2, 3]).isDisjointFrom(new Set([5, 4, 3])));\n  assert.true(new Set([1]).isDisjointFrom(createSetLike([2])));\n  assert.false(new Set([1]).isDisjointFrom(createSetLike([1])));\n  assert.true(new Set([1, 2, 3]).isDisjointFrom(createSetLike([4, 5, 6])));\n  assert.false(new Set([1, 2, 3]).isDisjointFrom(createSetLike([5, 4, 3])));\n\n  // TODO: drop from core-js@4\n  assert.true(new Set([1]).isDisjointFrom([2]));\n  assert.false(new Set([1]).isDisjointFrom([1]));\n  assert.true(new Set([1, 2, 3]).isDisjointFrom([4, 5, 6]));\n  assert.false(new Set([1, 2, 3]).isDisjointFrom([5, 4, 3]));\n  assert.true(new Set([1]).isDisjointFrom(createIterable([2])));\n  assert.false(new Set([1]).isDisjointFrom(createIterable([1])));\n\n  assert.false(new Set([42, 43]).isDisjointFrom({\n    size: Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  assert.throws(() => new Set().isDisjointFrom({\n    size: -Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  let closed = false;\n  assert.false(new Set([1, 2, 3, 4]).isDisjointFrom({\n    size: 3,\n    has() { return true; },\n    keys() {\n      let index = 0;\n      return {\n        next() {\n          return { value: [5, 1, 6][index++], done: index > 3 };\n        },\n        return() {\n          closed = true;\n          return { done: true };\n        },\n      };\n    },\n  }));\n  assert.true(closed, 'iterator is closed on early exit');\n\n  assert.throws(() => new Set([1, 2, 3]).isDisjointFrom(), TypeError);\n  assert.throws(() => isDisjointFrom.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => isDisjointFrom.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => isDisjointFrom.call(null, [1, 2, 3]), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.set.is-subset-of.js",
    "content": "import { createIterable, createSetLike } from '../helpers/helpers.js';\n\n// TODO: use /es/ in core-js@4\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#isSubsetOf', assert => {\n  const { isSubsetOf } = Set.prototype;\n\n  assert.isFunction(isSubsetOf);\n  assert.arity(isSubsetOf, 1);\n  assert.name(isSubsetOf, 'isSubsetOf');\n  assert.nonEnumerable(Set.prototype, 'isSubsetOf');\n\n  assert.true(new Set([1]).isSubsetOf(new Set([1, 2, 3])));\n  assert.false(new Set([1]).isSubsetOf(new Set([2, 3, 4])));\n  assert.true(new Set([1, 2, 3]).isSubsetOf(new Set([5, 4, 3, 2, 1])));\n  assert.false(new Set([1, 2, 3]).isSubsetOf(new Set([5, 4, 3, 2])));\n  assert.true(new Set([1]).isSubsetOf(createSetLike([1, 2, 3])));\n  assert.false(new Set([1]).isSubsetOf(createSetLike([2, 3, 4])));\n  assert.true(new Set([1, 2, 3]).isSubsetOf(createSetLike([5, 4, 3, 2, 1])));\n  assert.false(new Set([1, 2, 3]).isSubsetOf(createSetLike([5, 4, 3, 2])));\n\n  // TODO: drop from core-js@4\n  assert.true(new Set([1]).isSubsetOf([1, 2, 3]));\n  assert.false(new Set([1]).isSubsetOf([2, 3, 4]));\n  assert.true(new Set([1, 2, 3]).isSubsetOf([5, 4, 3, 2, 1]));\n  assert.false(new Set([1, 2, 3]).isSubsetOf([5, 4, 3, 2]));\n  assert.true(new Set([1]).isSubsetOf(createIterable([1, 2, 3])));\n  assert.false(new Set([1]).isSubsetOf(createIterable([2, 3, 4])));\n\n  assert.true(new Set([42, 43]).isSubsetOf({\n    size: Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  assert.throws(() => new Set().isSubsetOf({\n    size: -Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  assert.throws(() => new Set([1, 2, 3]).isSubsetOf(), TypeError);\n  assert.throws(() => isSubsetOf.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => isSubsetOf.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => isSubsetOf.call(null, [1, 2, 3]), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.set.is-superset-of.js",
    "content": "import { createIterable, createSetLike } from '../helpers/helpers.js';\n\n// TODO: use /es/ in core-js@4\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#isSupersetOf', assert => {\n  const { isSupersetOf } = Set.prototype;\n\n  assert.isFunction(isSupersetOf);\n  assert.arity(isSupersetOf, 1);\n  assert.name(isSupersetOf, 'isSupersetOf');\n  assert.nonEnumerable(Set.prototype, 'isSupersetOf');\n\n  assert.true(new Set([1, 2, 3]).isSupersetOf(new Set([1])));\n  assert.false(new Set([2, 3, 4]).isSupersetOf(new Set([1])));\n  assert.true(new Set([5, 4, 3, 2, 1]).isSupersetOf(new Set([1, 2, 3])));\n  assert.false(new Set([5, 4, 3, 2]).isSupersetOf(new Set([1, 2, 3])));\n  assert.true(new Set([1, 2, 3]).isSupersetOf(createSetLike([1])));\n  assert.false(new Set([2, 3, 4]).isSupersetOf(createSetLike([1])));\n  assert.true(new Set([5, 4, 3, 2, 1]).isSupersetOf(createSetLike([1, 2, 3])));\n  assert.false(new Set([5, 4, 3, 2]).isSupersetOf(createSetLike([1, 2, 3])));\n\n  // TODO: drop from core-js@4\n  assert.true(new Set([1, 2, 3]).isSupersetOf([1]));\n  assert.false(new Set([2, 3, 4]).isSupersetOf([1]));\n  assert.true(new Set([5, 4, 3, 2, 1]).isSupersetOf([1, 2, 3]));\n  assert.false(new Set([5, 4, 3, 2]).isSupersetOf([1, 2, 3]));\n  assert.true(new Set([1, 2, 3]).isSupersetOf(createIterable([1])));\n  assert.false(new Set([2, 3, 4]).isSupersetOf(createIterable([1])));\n\n  assert.false(new Set([42, 43]).isSupersetOf({\n    size: Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  assert.throws(() => new Set().isSupersetOf({\n    size: -Infinity,\n    has() {\n      return true;\n    },\n    keys() {\n      throw new Error('Unexpected call to |keys| method');\n    },\n  }));\n\n  let closed = false;\n  assert.false(new Set([1, 2, 3, 4]).isSupersetOf({\n    size: 3,\n    has() { return true; },\n    keys() {\n      let index = 0;\n      return {\n        next() {\n          return { value: [1, 5, 3][index++], done: index > 3 };\n        },\n        return() {\n          closed = true;\n          return { done: true };\n        },\n      };\n    },\n  }));\n  assert.true(closed, 'iterator is closed on early exit');\n\n  assert.throws(() => new Set([1, 2, 3]).isSupersetOf(), TypeError);\n  assert.throws(() => isSupersetOf.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => isSupersetOf.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => isSupersetOf.call(null, [1, 2, 3]), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.set.js",
    "content": "/* eslint-disable sonarjs/no-element-overwrite -- required for testing */\n\nimport { createIterable, is, nativeSubclass } from '../helpers/helpers.js';\nimport { DESCRIPTORS } from '../helpers/constants.js';\n\nimport getIterator from 'core-js-pure/es/get-iterator';\nimport getIteratorMethod from 'core-js-pure/es/get-iterator-method';\nimport from from 'core-js-pure/es/array/from';\nimport freeze from 'core-js-pure/es/object/freeze';\nimport getOwnPropertyDescriptor from 'core-js-pure/es/object/get-own-property-descriptor';\nimport getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names';\nimport getOwnPropertySymbols from 'core-js-pure/es/object/get-own-property-symbols';\nimport keys from 'core-js-pure/es/object/keys';\nimport ownKeys from 'core-js-pure/es/reflect/own-keys';\nimport Symbol from 'core-js-pure/es/symbol';\nimport Map from 'core-js-pure/es/map';\nimport Set from 'core-js-pure/es/set';\n\nQUnit.test('Set', assert => {\n  assert.isFunction(Set);\n  assert.true('add' in Set.prototype, 'add in Set.prototype');\n  assert.true('clear' in Set.prototype, 'clear in Set.prototype');\n  assert.true('delete' in Set.prototype, 'delete in Set.prototype');\n  assert.true('forEach' in Set.prototype, 'forEach in Set.prototype');\n  assert.true('has' in Set.prototype, 'has in Set.prototype');\n  assert.true(new Set() instanceof Set, 'new Set instanceof Set');\n  let set = new Set();\n  set.add(1);\n  set.add(2);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  assert.same(set.size, 3);\n  const result = [];\n  set.forEach(val => {\n    result.push(val);\n  });\n  assert.deepEqual(result, [1, 2, 3]);\n  assert.same(new Set(createIterable([1, 2, 3])).size, 3, 'Init from iterable');\n  assert.same(new Set([freeze({}), 1]).size, 2, 'Support frozen objects');\n  assert.same(new Set([NaN, NaN, NaN]).size, 1);\n  assert.deepEqual(from(new Set([3, 4]).add(2).add(1)), [3, 4, 2, 1]);\n  let done = false;\n  const { add } = Set.prototype;\n  Set.prototype.add = function () {\n    throw new Error();\n  };\n  try {\n    new Set(createIterable([null, 1, 2], {\n      return() {\n        return done = true;\n      },\n    }));\n  } catch { /* empty */ }\n  Set.prototype.add = add;\n  assert.true(done, '.return #throw');\n  const array = [];\n  done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return getIteratorMethod([]).call(this);\n  };\n  new Set(array);\n  assert.true(done);\n  const object = {};\n  new Set().add(object);\n  if (DESCRIPTORS) {\n    const results = [];\n    for (const key in object) results.push(key);\n    assert.arrayEqual(results, []);\n    assert.arrayEqual(keys(object), []);\n  }\n  assert.arrayEqual(getOwnPropertyNames(object), []);\n  if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []);\n  if (ownKeys) assert.arrayEqual(ownKeys(object), []);\n  if (nativeSubclass) {\n    const Subclass = nativeSubclass(Set);\n    assert.true(new Subclass() instanceof Subclass, 'correct subclassing with native classes #1');\n    assert.true(new Subclass() instanceof Set, 'correct subclassing with native classes #2');\n    assert.true(new Subclass().add(2).has(2), 'correct subclassing with native classes #3');\n  }\n\n  if (typeof ArrayBuffer == 'function') {\n    const buffer = new ArrayBuffer(8);\n    set = new Set([buffer]);\n    assert.true(set.has(buffer), 'works with ArrayBuffer keys');\n  }\n});\n\nQUnit.test('Set#add', assert => {\n  assert.isFunction(Set.prototype.add);\n  const array = [];\n  let set = new Set();\n  set.add(NaN);\n  set.add(2);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  set.add(array);\n  assert.same(set.size, 5);\n  const chain = set.add(NaN);\n  assert.same(chain, set);\n  assert.same(set.size, 5);\n  set.add(2);\n  assert.same(set.size, 5);\n  set.add(array);\n  assert.same(set.size, 5);\n  set.add([]);\n  assert.same(set.size, 6);\n  set.add(4);\n  assert.same(set.size, 7);\n  const frozen = freeze({});\n  set = new Set();\n  set.add(frozen);\n  assert.true(set.has(frozen));\n});\n\nQUnit.test('Set#clear', assert => {\n  assert.isFunction(Set.prototype.clear);\n  let set = new Set();\n  set.clear();\n  assert.same(set.size, 0);\n  set = new Set();\n  set.add(1);\n  set.add(2);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  set.clear();\n  assert.same(set.size, 0);\n  assert.false(set.has(1));\n  assert.false(set.has(2));\n  assert.false(set.has(3));\n  const frozen = freeze({});\n  set = new Set();\n  set.add(1);\n  set.add(frozen);\n  set.clear();\n  assert.same(set.size, 0, 'Support frozen objects');\n  assert.false(set.has(1));\n  assert.false(set.has(frozen));\n});\n\nQUnit.test('Set#delete', assert => {\n  assert.isFunction(Set.prototype.delete);\n  const array = [];\n  const set = new Set();\n  set.add(NaN);\n  set.add(2);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  set.add(array);\n  assert.same(set.size, 5);\n  assert.true(set.delete(NaN));\n  assert.same(set.size, 4);\n  assert.false(set.delete(4));\n  assert.same(set.size, 4);\n  set.delete([]);\n  assert.same(set.size, 4);\n  set.delete(array);\n  assert.same(set.size, 3);\n  const frozen = freeze({});\n  set.add(frozen);\n  assert.same(set.size, 4);\n  set.delete(frozen);\n  assert.same(set.size, 3);\n});\n\nQUnit.test('Set#forEach', assert => {\n  assert.isFunction(Set.prototype.forEach);\n  let result = [];\n  let count = 0;\n  let set = new Set();\n  set.add(1);\n  set.add(2);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  set.forEach(value => {\n    count++;\n    result.push(value);\n  });\n  assert.same(count, 3);\n  assert.deepEqual(result, [1, 2, 3]);\n  set = new Set();\n  set.add('0');\n  set.add('1');\n  set.add('2');\n  set.add('3');\n  result = '';\n  set.forEach(it => {\n    result += it;\n    if (it === '2') {\n      set.delete('2');\n      set.delete('3');\n      set.delete('1');\n      set.add('4');\n    }\n  });\n  assert.same(result, '0124');\n  set = new Set();\n  set.add('0');\n  result = '';\n  set.forEach(it => {\n    set.delete('0');\n    if (result !== '') throw new Error();\n    result += it;\n  });\n  assert.same(result, '0');\n  assert.throws(() => {\n    Set.prototype.forEach.call(new Map(), () => { /* empty */ });\n  }, 'non-generic');\n});\n\nQUnit.test('Set#has', assert => {\n  assert.isFunction(Set.prototype.has);\n  const array = [];\n  const frozen = freeze({});\n  const set = new Set();\n  set.add(NaN);\n  set.add(2);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  set.add(frozen);\n  set.add(array);\n  assert.true(set.has(NaN));\n  assert.true(set.has(array));\n  assert.true(set.has(frozen));\n  assert.true(set.has(2));\n  assert.false(set.has(4));\n  assert.false(set.has([]));\n});\n\nQUnit.test('Set#size', assert => {\n  const set = new Set();\n  set.add(1);\n  const { size } = set;\n  assert.same(typeof size, 'number', 'size is number');\n  assert.same(size, 1, 'size is correct');\n  if (DESCRIPTORS) {\n    const sizeDescriptor = getOwnPropertyDescriptor(Set.prototype, 'size');\n    const getter = sizeDescriptor && sizeDescriptor.get;\n    const setter = sizeDescriptor && sizeDescriptor.set;\n    assert.same(typeof getter, 'function', 'size is getter');\n    assert.same(typeof setter, 'undefined', 'size is not setter');\n    assert.throws(() => {\n      Set.prototype.size;\n    }, TypeError);\n  }\n});\n\nQUnit.test('Set & -0', assert => {\n  let set = new Set();\n  set.add(-0);\n  assert.same(set.size, 1);\n  assert.true(set.has(0));\n  assert.true(set.has(-0));\n  set.forEach(it => {\n    assert.false(is(it, -0));\n  });\n  set.delete(-0);\n  assert.same(set.size, 0);\n  set = new Set([-0]);\n  set.forEach(key => {\n    assert.false(is(key, -0));\n  });\n  set = new Set();\n  set.add(4);\n  set.add(3);\n  set.add(2);\n  set.add(1);\n  set.add(0);\n  assert.true(set.has(-0));\n});\n\nQUnit.test('Set#@@toStringTag', assert => {\n  assert.same(Set.prototype[Symbol.toStringTag], 'Set', 'Set::@@toStringTag is `Set`');\n  assert.same(String(new Set()), '[object Set]', 'correct stringification');\n});\n\nQUnit.test('Set Iterator', assert => {\n  const set = new Set();\n  set.add('a');\n  set.add('b');\n  set.add('c');\n  set.add('d');\n  const results = [];\n  const iterator = set.keys();\n  results.push(iterator.next().value);\n  assert.true(set.delete('a'));\n  assert.true(set.delete('b'));\n  assert.true(set.delete('c'));\n  set.add('e');\n  results.push(iterator.next().value, iterator.next().value);\n  assert.true(iterator.next().done);\n  set.add('f');\n  assert.true(iterator.next().done);\n  assert.deepEqual(results, ['a', 'd', 'e']);\n});\n\nQUnit.test('Set#keys', assert => {\n  assert.isFunction(Set.prototype.keys);\n  const set = new Set();\n  set.add('q');\n  set.add('w');\n  set.add('e');\n  const iterator = set.keys();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Set Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Set#values', assert => {\n  assert.isFunction(Set.prototype.values);\n  const set = new Set();\n  set.add('q');\n  set.add('w');\n  set.add('e');\n  const iterator = set.values();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Set Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Set#entries', assert => {\n  assert.isFunction(Set.prototype.entries);\n  const set = new Set();\n  set.add('q');\n  set.add('w');\n  set.add('e');\n  const iterator = set.entries();\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Set Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: ['q', 'q'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: ['w', 'w'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: ['e', 'e'],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n\nQUnit.test('Set#@@iterator', assert => {\n  const set = new Set();\n  set.add('q');\n  set.add('w');\n  set.add('e');\n  const iterator = getIterator(set);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Set Iterator');\n  assert.same(String(iterator), '[object Set Iterator]');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/es.set.symmetric-difference.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\nimport { createIterable, createSetLike } from '../helpers/helpers.js';\n\nimport from from 'core-js-pure/es/array/from';\nimport defineProperty from 'core-js-pure/es/object/define-property';\n// TODO: use /es/ in core-js@4\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#symmetricDifference', assert => {\n  const { symmetricDifference } = Set.prototype;\n\n  assert.isFunction(symmetricDifference);\n  assert.arity(symmetricDifference, 1);\n  assert.name(symmetricDifference, 'symmetricDifference');\n  assert.nonEnumerable(Set.prototype, 'symmetricDifference');\n\n  const set = new Set([1]);\n  assert.notSame(set.symmetricDifference(new Set()), set);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(new Set([4, 5]))), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(new Set([3, 4]))), [1, 2, 4]);\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createSetLike([4, 5]))), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createSetLike([3, 4]))), [1, 2, 4]);\n\n  // TODO: drop from core-js@4\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference([4, 5])), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference([3, 4])), [1, 2, 4]);\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createIterable([4, 5]))), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createIterable([3, 4]))), [1, 2, 4]);\n\n  assert.throws(() => new Set([1, 2, 3]).symmetricDifference(), TypeError);\n\n  assert.throws(() => symmetricDifference.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => symmetricDifference.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => symmetricDifference.call(null, [1, 2, 3]), TypeError);\n\n  // Duplicate keys in other's iterator: value present in O should be removed idempotently\n  {\n    const baseSet = new Set([1, 2, 3]);\n    const setLike = {\n      size: 2,\n      has() { return false; },\n      keys() {\n        const vals = [2, 2];\n        let i = 0;\n        return { next() { return i < vals.length ? { done: false, value: vals[i++] } : { done: true }; } };\n      },\n    };\n    assert.deepEqual(from(baseSet.symmetricDifference(setLike)), [1, 3]);\n  }\n\n  {\n    // https://github.com/WebKit/WebKit/pull/27264/files#diff-7bdbbad7ceaa222787994f2db702dd45403fa98e14d6270aa65aaf09754dcfe0R8\n    const baseSet = new Set(['a', 'b', 'c', 'd', 'e']);\n    const values = ['f', 'g', 'h', 'i', 'j'];\n    const setLike = {\n      size: values.length,\n      has() { return true; },\n      keys() {\n        let index = 0;\n        return {\n          next() {\n            const done = index >= values.length;\n            if (!baseSet.has('f')) baseSet.add('f');\n            return { done, value: values[index++] };\n          },\n        };\n      },\n    };\n    assert.deepEqual(from(baseSet.symmetricDifference(setLike)), ['a', 'b', 'c', 'd', 'e', 'g', 'h', 'i', 'j']);\n  }\n\n  if (DESCRIPTORS) {\n    // Should get iterator record of a set-like object before cloning this\n    // https://bugs.webkit.org/show_bug.cgi?id=289430\n    const baseSet = new Set();\n    const setLike = {\n      size: 0,\n      has() { return true; },\n      keys() {\n        return defineProperty({}, 'next', { get() {\n          baseSet.clear();\n          baseSet.add(4);\n          return function () {\n            return { done: true };\n          };\n        } });\n      },\n    };\n    assert.deepEqual(from(baseSet.symmetricDifference(setLike)), [4]);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.set.union.js",
    "content": "import { DESCRIPTORS } from '../helpers/constants.js';\nimport { createIterable, createSetLike } from '../helpers/helpers.js';\n\nimport from from 'core-js-pure/es/array/from';\nimport defineProperty from 'core-js-pure/es/object/define-property';\n// TODO: use /es/ in core-js@4\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#union', assert => {\n  const { union } = Set.prototype;\n\n  assert.isFunction(union);\n  assert.arity(union, 1);\n  assert.name(union, 'union');\n  assert.nonEnumerable(Set.prototype, 'union');\n\n  const set = new Set([1]);\n  assert.notSame(set.union(new Set()), set);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).union(new Set([4, 5]))), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).union(new Set([3, 4]))), [1, 2, 3, 4]);\n  assert.deepEqual(from(new Set([1, 2, 3]).union(createSetLike([4, 5]))), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).union(createSetLike([3, 4]))), [1, 2, 3, 4]);\n\n  // TODO: drop from core-js@4\n  assert.deepEqual(from(new Set([1, 2, 3]).union([4, 5])), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).union([3, 4])), [1, 2, 3, 4]);\n  assert.deepEqual(from(new Set([1, 2, 3]).union(createIterable([3, 4]))), [1, 2, 3, 4]);\n\n  assert.throws(() => new Set([1, 2, 3]).union(), TypeError);\n\n  assert.throws(() => union.call({}, [1, 2, 3]), TypeError);\n  assert.throws(() => union.call(undefined, [1, 2, 3]), TypeError);\n  assert.throws(() => union.call(null, [1, 2, 3]), TypeError);\n\n  if (DESCRIPTORS) {\n    // Should get iterator record of a set-like object before cloning this\n    // https://bugs.webkit.org/show_bug.cgi?id=289430\n    const baseSet = new Set();\n    const setLike = {\n      size: 0,\n      has() { return true; },\n      keys() {\n        return defineProperty({}, 'next', { get() {\n          baseSet.clear();\n          baseSet.add(4);\n          return function () {\n            return { done: true };\n          };\n        } });\n      },\n    };\n    assert.deepEqual(from(baseSet.union(setLike)), [4]);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.anchor.js",
    "content": "import anchor from 'core-js-pure/es/string/anchor';\n\nQUnit.test('String#anchor', assert => {\n  assert.isFunction(anchor);\n  assert.same(anchor('a', 'b'), '<a name=\"b\">a</a>', 'lower case');\n  assert.same(anchor('a', '\"'), '<a name=\"&quot;\">a</a>', 'escape quotes');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    const symbol = Symbol('anchor test');\n    assert.throws(() => anchor(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => anchor('a', symbol), 'throws on symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.at-alternative.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport at from 'core-js-pure/es/string/at';\n\nQUnit.test('String#at', assert => {\n  assert.isFunction(at);\n  assert.same(at('123', 0), '1');\n  assert.same(at('123', 1), '2');\n  assert.same(at('123', 2), '3');\n  assert.same(at('123', 3), undefined);\n  assert.same(at('123', -1), '3');\n  assert.same(at('123', -2), '2');\n  assert.same(at('123', -3), '1');\n  assert.same(at('123', -4), undefined);\n  assert.same(at('123', 0.4), '1');\n  assert.same(at('123', 0.5), '1');\n  assert.same(at('123', 0.6), '1');\n  assert.same(at('1', NaN), '1');\n  assert.same(at('1'), '1');\n  assert.same(at('123', -0), '1');\n  // TODO: disabled by default because of the conflict with old proposal\n  // assert.same(at('𠮷'), '\\uD842');\n  assert.same(at({ toString() { return '123'; } }, 0), '1');\n\n  assert.throws(() => at(Symbol('at-alternative test'), 0), 'throws on symbol context');\n\n  if (STRICT) {\n    assert.throws(() => at(null, 0), TypeError);\n    assert.throws(() => at(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.big.js",
    "content": "import big from 'core-js-pure/es/string/big';\n\nQUnit.test('String#big', assert => {\n  assert.isFunction(big);\n  assert.same(big('a'), '<big>a</big>', 'lower case');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => big(Symbol('big test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.blink.js",
    "content": "import blink from 'core-js-pure/es/string/blink';\n\nQUnit.test('String#blink', assert => {\n  assert.isFunction(blink);\n  assert.same(blink('a'), '<blink>a</blink>', 'lower case');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => blink(Symbol('blink test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.bold.js",
    "content": "import bold from 'core-js-pure/es/string/bold';\n\nQUnit.test('String#bold', assert => {\n  assert.isFunction(bold);\n  assert.same(bold('a'), '<b>a</b>', 'lower case');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => bold(Symbol('bold test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.code-point-at.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport codePointAt from 'core-js-pure/es/string/code-point-at';\n\nQUnit.test('String#codePointAt', assert => {\n  assert.isFunction(codePointAt);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', ''), 0x61);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', '_'), 0x61);\n  assert.same(codePointAt('abc\\uD834\\uDF06def'), 0x61);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', -Infinity), undefined);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', -1), undefined);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', -0), 0x61);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', 0), 0x61);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', 3), 0x1D306);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', 4), 0xDF06);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', 5), 0x64);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', 42), undefined);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', Infinity), undefined);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', -Infinity), undefined);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', NaN), 0x61);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', false), 0x61);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', null), 0x61);\n  assert.same(codePointAt('abc\\uD834\\uDF06def', undefined), 0x61);\n  assert.same(codePointAt('\\uD834\\uDF06def', ''), 0x1D306);\n  assert.same(codePointAt('\\uD834\\uDF06def', '1'), 0xDF06);\n  assert.same(codePointAt('\\uD834\\uDF06def', '_'), 0x1D306);\n  assert.same(codePointAt('\\uD834\\uDF06def'), 0x1D306);\n  assert.same(codePointAt('\\uD834\\uDF06def', -1), undefined);\n  assert.same(codePointAt('\\uD834\\uDF06def', -0), 0x1D306);\n  assert.same(codePointAt('\\uD834\\uDF06def', 0), 0x1D306);\n  assert.same(codePointAt('\\uD834\\uDF06def', 1), 0xDF06);\n  assert.same(codePointAt('\\uD834\\uDF06def', 42), undefined);\n  assert.same(codePointAt('\\uD834\\uDF06def', false), 0x1D306);\n  assert.same(codePointAt('\\uD834\\uDF06def', null), 0x1D306);\n  assert.same(codePointAt('\\uD834\\uDF06def', undefined), 0x1D306);\n  assert.same(codePointAt('\\uD834abc', ''), 0xD834);\n  assert.same(codePointAt('\\uD834abc', '_'), 0xD834);\n  assert.same(codePointAt('\\uD834abc'), 0xD834);\n  assert.same(codePointAt('\\uD834abc', -1), undefined);\n  assert.same(codePointAt('\\uD834abc', -0), 0xD834);\n  assert.same(codePointAt('\\uD834abc', 0), 0xD834);\n  assert.same(codePointAt('\\uD834abc', false), 0xD834);\n  assert.same(codePointAt('\\uD834abc', NaN), 0xD834);\n  assert.same(codePointAt('\\uD834abc', null), 0xD834);\n  assert.same(codePointAt('\\uD834abc', undefined), 0xD834);\n  assert.same(codePointAt('\\uDF06abc', ''), 0xDF06);\n  assert.same(codePointAt('\\uDF06abc', '_'), 0xDF06);\n  assert.same(codePointAt('\\uDF06abc'), 0xDF06);\n  assert.same(codePointAt('\\uDF06abc', -1), undefined);\n  assert.same(codePointAt('\\uDF06abc', -0), 0xDF06);\n  assert.same(codePointAt('\\uDF06abc', 0), 0xDF06);\n  assert.same(codePointAt('\\uDF06abc', false), 0xDF06);\n  assert.same(codePointAt('\\uDF06abc', NaN), 0xDF06);\n  assert.same(codePointAt('\\uDF06abc', null), 0xDF06);\n  assert.same(codePointAt('\\uDF06abc', undefined), 0xDF06);\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => codePointAt(Symbol('codePointAt test'), 1), 'throws on symbol context');\n  }\n\n  if (STRICT) {\n    assert.throws(() => codePointAt(null, 0), TypeError);\n    assert.throws(() => codePointAt(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.ends-with.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport endsWith from 'core-js-pure/es/string/ends-with';\n\nQUnit.test('String#endsWith', assert => {\n  assert.isFunction(endsWith);\n  assert.true(endsWith('undefined'));\n  assert.false(endsWith('undefined', null));\n  assert.true(endsWith('abc', ''));\n  assert.true(endsWith('abc', 'c'));\n  assert.true(endsWith('abc', 'bc'));\n  assert.false(endsWith('abc', 'ab'));\n  assert.true(endsWith('abc', '', NaN));\n  assert.false(endsWith('abc', 'c', -1));\n  assert.true(endsWith('abc', 'a', 1));\n  assert.true(endsWith('abc', 'c', Infinity));\n  assert.true(endsWith('abc', 'a', true));\n  assert.false(endsWith('abc', 'c', 'x'));\n  assert.false(endsWith('abc', 'a', 'x'));\n\n  if (!Symbol.sham) {\n    const symbol = Symbol('endsWith test');\n    assert.throws(() => endsWith(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => endsWith('a', symbol), 'throws on symbol argument');\n  }\n\n  if (STRICT) {\n    assert.throws(() => endsWith(null, '.'), TypeError);\n    assert.throws(() => endsWith(undefined, '.'), TypeError);\n  }\n  const regexp = /./;\n  assert.throws(() => endsWith('/./', regexp), TypeError);\n  regexp[Symbol.match] = false;\n  assert.notThrows(() => endsWith('/./', regexp));\n  const object = {};\n  assert.notThrows(() => endsWith('[object Object]', object));\n  object[Symbol.match] = true;\n  assert.throws(() => endsWith('[object Object]', object), TypeError);\n  // side-effect ordering: ToString(searchString) should happen before ToIntegerOrInfinity(endPosition)\n  const order = [];\n  endsWith(\n    'abc',\n    { toString() { order.push('search'); return 'c'; } },\n    { valueOf() { order.push('pos'); return 3; } },\n  );\n  assert.deepEqual(order, ['search', 'pos'], 'ToString(searchString) before ToIntegerOrInfinity(endPosition)');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.fixed.js",
    "content": "import fixed from 'core-js-pure/es/string/fixed';\n\nQUnit.test('String#fixed', assert => {\n  assert.isFunction(fixed);\n  assert.same(fixed('a'), '<tt>a</tt>', 'lower case');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => fixed(Symbol('fixed test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.fontcolor.js",
    "content": "import fontcolor from 'core-js-pure/es/string/fontcolor';\n\nQUnit.test('String#fontcolor', assert => {\n  assert.isFunction(fontcolor);\n  assert.same(fontcolor('a', 'b'), '<font color=\"b\">a</font>', 'lower case');\n  assert.same(fontcolor('a', '\"'), '<font color=\"&quot;\">a</font>', 'escape quotes');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    const symbol = Symbol('fontcolor test');\n    assert.throws(() => fontcolor(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => fontcolor('a', symbol), 'throws on symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.fontsize.js",
    "content": "import fontsize from 'core-js-pure/es/string/fontsize';\n\nQUnit.test('String#fontsize', assert => {\n  assert.isFunction(fontsize);\n  assert.same(fontsize('a', 'b'), '<font size=\"b\">a</font>', 'lower case');\n  assert.same(fontsize('a', '\"'), '<font size=\"&quot;\">a</font>', 'escape quotes');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    const symbol = Symbol('fontsize test');\n    assert.throws(() => fontsize(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => fontsize('a', symbol), 'throws on symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.from-code-point.js",
    "content": "/* eslint-disable prefer-spread -- required for testing */\nimport fromCodePoint from 'core-js-pure/es/string/from-code-point';\n\nQUnit.test('String.fromCodePoint', assert => {\n  assert.isFunction(fromCodePoint);\n  assert.arity(fromCodePoint, 1);\n  if ('name' in fromCodePoint) {\n    assert.name(fromCodePoint, 'fromCodePoint');\n  }\n  assert.same(fromCodePoint(''), '\\0');\n  assert.same(fromCodePoint(), '');\n  assert.same(fromCodePoint(-0), '\\0');\n  assert.same(fromCodePoint(0), '\\0');\n  assert.same(fromCodePoint(0x1D306), '\\uD834\\uDF06');\n  assert.same(fromCodePoint(0x1D306, 0x61, 0x1D307), '\\uD834\\uDF06a\\uD834\\uDF07');\n  assert.same(fromCodePoint(0x61, 0x62, 0x1D307), 'ab\\uD834\\uDF07');\n  assert.same(fromCodePoint(false), '\\0');\n  assert.same(fromCodePoint(null), '\\0');\n  assert.throws(() => fromCodePoint('_'), RangeError);\n  assert.throws(() => fromCodePoint('+Infinity'), RangeError);\n  assert.throws(() => fromCodePoint('-Infinity'), RangeError);\n  assert.throws(() => fromCodePoint(-1), RangeError);\n  assert.throws(() => fromCodePoint(0x10FFFF + 1), RangeError);\n  assert.throws(() => fromCodePoint(3.14), RangeError);\n  assert.throws(() => fromCodePoint(3e-2), RangeError);\n  assert.throws(() => fromCodePoint(-Infinity), RangeError);\n  assert.throws(() => fromCodePoint(Infinity), RangeError);\n  assert.throws(() => fromCodePoint(NaN), RangeError);\n  assert.throws(() => fromCodePoint(undefined), RangeError);\n  assert.throws(() => fromCodePoint({}), RangeError);\n  assert.throws(() => fromCodePoint(/./), RangeError);\n  let number = 0x60;\n  assert.same(fromCodePoint({\n    valueOf() {\n      return ++number;\n    },\n  }), 'a');\n  assert.same(number, 0x61);\n  // one code unit per symbol\n  let counter = 2 ** 15 * 3 / 2;\n  let result = [];\n  while (--counter >= 0) result.push(0);\n  // should not throw\n  fromCodePoint.apply(null, result);\n  counter = 2 ** 15 * 3 / 2;\n  result = [];\n  while (--counter >= 0) result.push(0xFFFF + 1);\n  // should not throw\n  fromCodePoint.apply(null, result);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.includes.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport includes from 'core-js-pure/es/string/includes';\n\nQUnit.test('String#includes', assert => {\n  assert.isFunction(includes);\n  assert.false(includes('abc'));\n  assert.true(includes('aundefinedb'));\n  assert.true(includes('abcd', 'b', 1));\n  assert.false(includes('abcd', 'b', 2));\n\n  if (!Symbol.sham) {\n    const symbol = Symbol('includes test');\n    assert.throws(() => includes(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => includes('a', symbol), 'throws on symbol argument');\n  }\n\n  if (STRICT) {\n    assert.throws(() => includes(null, '.'), TypeError);\n    assert.throws(() => includes(undefined, '.'), TypeError);\n  }\n\n  const re = /./;\n  assert.throws(() => includes('/./', re), TypeError);\n  re[Symbol.match] = false;\n  assert.notThrows(() => includes('/./', re));\n  const O = {};\n  assert.notThrows(() => includes('[object Object]', O));\n  O[Symbol.match] = true;\n  assert.throws(() => includes('[object Object]', O), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.is-well-formed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport Symbol from 'core-js-pure/es/symbol';\nimport isWellFormed from 'core-js-pure/es/string/virtual/is-well-formed';\n\nQUnit.test('String#isWellFormed', assert => {\n  assert.isFunction(isWellFormed);\n\n  assert.true(isWellFormed.call('a'), 'a');\n  assert.true(isWellFormed.call('abc'), 'abc');\n  assert.true(isWellFormed.call('💩'), '💩');\n  assert.true(isWellFormed.call('💩b'), '💩b');\n  assert.true(isWellFormed.call('a💩'), 'a💩');\n  assert.true(isWellFormed.call('a💩b'), 'a💩b');\n  assert.true(isWellFormed.call('💩a💩'), '💩a💩');\n  assert.true(!isWellFormed.call('\\uD83D'), '\\uD83D');\n  assert.true(!isWellFormed.call('\\uDCA9'), '\\uDCA9');\n  assert.true(!isWellFormed.call('\\uDCA9\\uD83D'), '\\uDCA9\\uD83D');\n  assert.true(!isWellFormed.call('a\\uD83D'), 'a\\uD83D');\n  assert.true(!isWellFormed.call('\\uDCA9a'), '\\uDCA9a');\n  assert.true(!isWellFormed.call('a\\uD83Da'), 'a\\uD83Da');\n  assert.true(!isWellFormed.call('a\\uDCA9a'), 'a\\uDCA9a');\n\n  assert.true(isWellFormed.call({\n    toString() {\n      return 'abc';\n    },\n  }), 'conversion #1');\n\n  assert.true(!isWellFormed.call({\n    toString() {\n      return '\\uD83D';\n    },\n  }), 'conversion #2');\n\n  if (STRICT) {\n    assert.throws(() => isWellFormed.call(null), TypeError, 'coercible #1');\n    assert.throws(() => isWellFormed.call(undefined), TypeError, 'coercible #2');\n  }\n\n  assert.throws(() => isWellFormed.call(Symbol('isWellFormed test')), 'throws on symbol context');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.italics.js",
    "content": "import italics from 'core-js-pure/es/string/italics';\n\nQUnit.test('String#italics', assert => {\n  assert.isFunction(italics);\n  assert.same(italics('a'), '<i>a</i>', 'lower case');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => italics(Symbol('italics test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.iterator.js",
    "content": "import getIterator from 'core-js-pure/es/get-iterator';\n// import getIteratorMethod from 'core-js-pure/es/get-iterator-method';\nimport Symbol from 'core-js-pure/es/symbol';\nimport from from 'core-js-pure/es/array/from';\n\nQUnit.test('String#@@iterator', assert => {\n  let iterator = getIterator('qwe');\n  assert.isIterator(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'String Iterator');\n  assert.same(String(iterator), '[object String Iterator]');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'w',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  assert.same(from('𠮷𠮷𠮷').length, 3);\n  iterator = getIterator('𠮷𠮷𠮷');\n  assert.deepEqual(iterator.next(), {\n    value: '𠮷',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: '𠮷',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: '𠮷',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n\n  // early FF case with native method, but polyfilled `Symbol`\n  // assert.throws(() => getIteratorMethod('').call(Symbol()), 'throws on symbol context');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.link.js",
    "content": "import link from 'core-js-pure/es/string/link';\n\nQUnit.test('String#link', assert => {\n  assert.isFunction(link);\n  assert.same(link('a', 'b'), '<a href=\"b\">a</a>', 'lower case');\n  assert.same(link('a', '\"'), '<a href=\"&quot;\">a</a>', 'escape quotes');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    const symbol = Symbol('link test');\n    assert.throws(() => link(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => link('a', symbol), 'throws on symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.match-all.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport assign from 'core-js-pure/es/object/assign';\nimport matchAll from 'core-js-pure/es/string/match-all';\n\nQUnit.test('String#matchAll', assert => {\n  assert.isFunction(matchAll);\n  let data = ['aabc', { toString() {\n    return 'aabc';\n  } }];\n  for (const target of data) {\n    const iterator = matchAll(target, /[ac]/g);\n    assert.isIterator(iterator);\n    assert.isIterable(iterator);\n    assert.deepEqual(iterator.next(), {\n      value: assign(['a'], {\n        input: 'aabc',\n        index: 0,\n      }),\n      done: false,\n    });\n    assert.deepEqual(iterator.next(), {\n      value: assign(['a'], {\n        input: 'aabc',\n        index: 1,\n      }),\n      done: false,\n    });\n    assert.deepEqual(iterator.next(), {\n      value: assign(['c'], {\n        input: 'aabc',\n        index: 3,\n      }),\n      done: false,\n    });\n    assert.deepEqual(iterator.next(), {\n      value: undefined,\n      done: true,\n    });\n  }\n  let iterator = matchAll('1111a2b3cccc', /(\\d)(\\D)/g);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'RegExp String Iterator');\n  assert.same(String(iterator), '[object RegExp String Iterator]');\n  assert.deepEqual(iterator.next(), {\n    value: assign(['1a', '1', 'a'], {\n      input: '1111a2b3cccc',\n      index: 3,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: assign(['2b', '2', 'b'], {\n      input: '1111a2b3cccc',\n      index: 5,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: assign(['3c', '3', 'c'], {\n      input: '1111a2b3cccc',\n      index: 7,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  assert.throws(() => matchAll('1111a2b3cccc', /(\\d)(\\D)/), TypeError);\n  iterator = matchAll('1111a2b3cccc', '(\\\\d)(\\\\D)');\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.deepEqual(iterator.next(), {\n    value: assign(['1a', '1', 'a'], {\n      input: '1111a2b3cccc',\n      index: 3,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: assign(['2b', '2', 'b'], {\n      input: '1111a2b3cccc',\n      index: 5,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: assign(['3c', '3', 'c'], {\n      input: '1111a2b3cccc',\n      index: 7,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  /* IE8- issue\n  iterator = matchAll('abc', /\\B/g);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.deepEqual(iterator.next(), {\n    value: assign([''], {\n      input: 'abc',\n      index: 1,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: assign([''], {\n      input: 'abc',\n      index: 2,\n    }),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  */\n  data = [null, undefined, NaN, 42, {}, []];\n  for (const target of data) {\n    assert.notThrows(() => matchAll('', target), `Not throws on ${ target } as the first argument`);\n  }\n\n  assert.throws(() => matchAll(Symbol('matchAll test'), /./), 'throws on symbol context');\n\n  if (!Symbol.sham) {\n    assert.throws(() => matchAll('a', Symbol('matchAll test')), 'throws on symbol argument');\n  }\n\n  if (STRICT) {\n    assert.throws(() => matchAll(null, /./g), TypeError, 'Throws on null as `this`');\n    assert.throws(() => matchAll(undefined, /./g), TypeError, 'Throws on undefined as `this`');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.pad-end.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport padEnd from 'core-js-pure/es/string/pad-end';\n\nQUnit.test('String#padEnd', assert => {\n  assert.isFunction(padEnd);\n  assert.same(padEnd('abc', 5), 'abc  ');\n  assert.same(padEnd('abc', 4, 'de'), 'abcd');\n  assert.same(padEnd('abc'), 'abc');\n  assert.same(padEnd('abc', 5, '_'), 'abc__');\n  assert.same(padEnd('', 0), '');\n  assert.same(padEnd('foo', 1), 'foo');\n  assert.same(padEnd('foo', 5, ''), 'foo');\n\n  const thrower = { toString() { throw new Error('oops'); } };\n  assert.throws(() => padEnd('a', 10, thrower), 'throws on thrower argument conversion');\n  assert.same(padEnd('abc', 2, thrower), 'abc', 'does not throw on thrower argument when no padding needed');\n\n  const symbol = Symbol('padEnd test');\n  assert.throws(() => padEnd(symbol, 10, 'a'), 'throws on symbol context');\n  assert.throws(() => padEnd('a', 10, symbol), 'throws on symbol argument');\n  assert.same(padEnd('abc', 2, symbol), 'abc', 'does not throw on symbol fillString when no padding needed');\n\n  if (STRICT) {\n    assert.throws(() => padEnd(null, 0), TypeError);\n    assert.throws(() => padEnd(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.pad-start.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport padStart from 'core-js-pure/es/string/pad-start';\n\nQUnit.test('String#padStart', assert => {\n  assert.isFunction(padStart);\n  assert.same(padStart('abc', 5), '  abc');\n  assert.same(padStart('abc', 4, 'de'), 'dabc');\n  assert.same(padStart('abc'), 'abc');\n  assert.same(padStart('abc', 5, '_'), '__abc');\n  assert.same(padStart('', 0), '');\n  assert.same(padStart('foo', 1), 'foo');\n  assert.same(padStart('foo', 5, ''), 'foo');\n\n  const thrower = { toString() { throw new Error('oops'); } };\n  assert.throws(() => padStart('a', 10, thrower), 'throws on thrower argument conversion');\n  assert.same(padStart('abc', 2, thrower), 'abc', 'does not throw on thrower argument when no padding needed');\n\n  const symbol = Symbol('padStart test');\n  assert.throws(() => padStart(symbol, 10, 'a'), 'throws on symbol context');\n  assert.throws(() => padStart('a', 10, symbol), 'throws on symbol argument');\n  assert.same(padStart('abc', 2, symbol), 'abc', 'does not throw on symbol fillString when no padding needed');\n\n  if (STRICT) {\n    assert.throws(() => padStart(null, 0), TypeError);\n    assert.throws(() => padStart(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.raw.js",
    "content": "import raw from 'core-js-pure/es/string/raw';\n\nQUnit.test('String.raw', assert => {\n  assert.isFunction(raw);\n  assert.arity(raw, 1);\n  if ('name' in raw) {\n    assert.name(raw, 'raw');\n  }\n  assert.same(raw({ raw: ['Hi\\\\n', '!'] }, 'Bob'), 'Hi\\\\nBob!', 'raw is array');\n  assert.same(raw({ raw: 'test' }, 0, 1, 2), 't0e1s2t', 'raw is string');\n  assert.same(raw({ raw: 'test' }, 0), 't0est', 'lacks substituting');\n  assert.same(raw({ raw: [] }), '', 'empty template');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    const symbol = Symbol('raw test');\n    assert.throws(() => raw({ raw: [symbol] }, 0), TypeError, 'throws on symbol #1');\n    assert.throws(() => raw({ raw: 'test' }, symbol), TypeError, 'throws on symbol #2');\n  }\n\n  assert.throws(() => raw({}), TypeError);\n  assert.throws(() => raw({ raw: null }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.repeat.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport repeat from 'core-js-pure/es/string/repeat';\n\nQUnit.test('String#repeat', assert => {\n  assert.isFunction(repeat);\n  assert.same(repeat('qwe', 3), 'qweqweqwe');\n  assert.same(repeat('qwe', 2.5), 'qweqwe');\n  assert.throws(() => repeat('qwe', -1), RangeError);\n  assert.throws(() => repeat('qwe', Infinity), RangeError);\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => repeat(Symbol('repeat test')), 'throws on symbol context');\n  }\n\n  if (STRICT) {\n    assert.throws(() => repeat(null, 1), TypeError);\n    assert.throws(() => repeat(undefined, 1), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.replace-all.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport replaceAll from 'core-js-pure/es/string/replace-all';\n\nQUnit.test('String#replaceAll', assert => {\n  assert.isFunction(replaceAll);\n  assert.same(replaceAll('q=query+string+parameters', '+', ' '), 'q=query string parameters');\n  assert.same(replaceAll('foo', 'o', {}), 'f[object Object][object Object]');\n  assert.same(replaceAll('[object Object]x[object Object]', {}, 'y'), 'yxy');\n  assert.same(replaceAll({}, 'bject', 'lolo'), '[ololo Ololo]');\n  assert.same(replaceAll('aba', 'b', (search, i, string) => {\n    assert.same(search, 'b', '`search` is `b`');\n    assert.same(i, 1, '`i` is 1');\n    assert.same(string, 'aba', '`string` is `aba`');\n    return 'c';\n  }), 'aca');\n  const searcher = {\n    [Symbol.replace](O, replaceValue) {\n      assert.same(this, searcher, '`this` is `searcher`');\n      assert.same(String(O), 'aba', '`O` is `aba`');\n      assert.same(String(replaceValue), 'c', '`replaceValue` is `c`');\n      return 'foo';\n    },\n  };\n  assert.same(replaceAll('aba', searcher, 'c'), 'foo');\n  assert.same(replaceAll('aba', 'b'), 'aundefineda');\n  assert.same(replaceAll('xxx', '', '_'), '_x_x_x_');\n  assert.same(replaceAll('121314', '1', '$$'), '$2$3$4', '$$');\n  assert.same(replaceAll('121314', '1', '$&'), '121314', '$&');\n  assert.same(replaceAll('121314', '1', '$`'), '212312134', '$`');\n  assert.same(replaceAll('121314', '1', \"$'\"), '213142314344', \"$'\");\n\n  const symbol = Symbol('replaceAll test');\n  assert.throws(() => replaceAll(symbol, 'a', 'b'), 'throws on symbol context');\n  assert.throws(() => replaceAll('a', symbol, 'b'), 'throws on symbol argument 1');\n  assert.throws(() => replaceAll('a', 'b', symbol), 'throws on symbol argument 2');\n\n  if (STRICT) {\n    assert.throws(() => replaceAll(null, 'a', 'b'), TypeError);\n    assert.throws(() => replaceAll(undefined, 'a', 'b'), TypeError);\n  }\n\n  assert.throws(() => replaceAll('b.b.b.b.b', /\\./, 'a'), TypeError);\n  assert.same(replaceAll('b.b.b.b.b', /\\./g, 'a'), 'babababab');\n  const object = {};\n  assert.same(replaceAll('[object Object]', object, 'a'), 'a');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.small.js",
    "content": "import small from 'core-js-pure/es/string/small';\n\nQUnit.test('String#small', assert => {\n  assert.isFunction(small);\n  assert.same(small('a'), '<small>a</small>', 'lower case');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => small(Symbol('small test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.starts-with.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport startsWith from 'core-js-pure/es/string/starts-with';\n\nQUnit.test('String#startsWith', assert => {\n  assert.isFunction(startsWith);\n  assert.true(startsWith('undefined'));\n  assert.false(startsWith('undefined', null));\n  assert.true(startsWith('abc', ''));\n  assert.true(startsWith('abc', 'a'));\n  assert.true(startsWith('abc', 'ab'));\n  assert.false(startsWith('abc', 'bc'));\n  assert.true(startsWith('abc', '', NaN));\n  assert.true(startsWith('abc', 'a', -1));\n  assert.false(startsWith('abc', 'a', 1));\n  assert.false(startsWith('abc', 'a', Infinity));\n  assert.true(startsWith('abc', 'b', true));\n  assert.true(startsWith('abc', 'a', 'x'));\n\n  if (!Symbol.sham) {\n    const symbol = Symbol('startsWith test');\n    assert.throws(() => startsWith(symbol, 'b'), 'throws on symbol context');\n    assert.throws(() => startsWith('a', symbol), 'throws on symbol argument');\n  }\n\n  if (STRICT) {\n    assert.throws(() => startsWith(null, '.'), TypeError);\n    assert.throws(() => startsWith(undefined, '.'), TypeError);\n  }\n\n  const regexp = /./;\n  assert.throws(() => startsWith('/./', regexp), TypeError);\n  regexp[Symbol.match] = false;\n  assert.notThrows(() => startsWith('/./', regexp));\n  const object = {};\n  assert.notThrows(() => startsWith('[object Object]', object));\n  object[Symbol.match] = true;\n  assert.throws(() => startsWith('[object Object]', object), TypeError);\n  // side-effect ordering: ToString(searchString) should happen before ToIntegerOrInfinity(position)\n  const order = [];\n  startsWith(\n    'abc',\n    { toString() { order.push('search'); return 'a'; } },\n    { valueOf() { order.push('pos'); return 0; } },\n  );\n  assert.deepEqual(order, ['search', 'pos'], 'ToString(searchString) before ToIntegerOrInfinity(position)');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.strike.js",
    "content": "import strike from 'core-js-pure/es/string/strike';\n\nQUnit.test('String#strike', assert => {\n  assert.isFunction(strike);\n  assert.same(strike('a'), '<strike>a</strike>', 'lower case');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => strike(Symbol('strike test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.sub.js",
    "content": "import sub from 'core-js-pure/es/string/sub';\n\nQUnit.test('String#sub', assert => {\n  assert.isFunction(sub);\n  assert.same(sub('a'), '<sub>a</sub>', 'lower case');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => sub(Symbol('sub test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.substr.js",
    "content": "import substr from 'core-js-pure/es/string/substr';\nimport { STRICT } from '../helpers/constants.js';\n\nQUnit.test('String#substr', assert => {\n  assert.isFunction(substr);\n\n  assert.same(substr('12345', 1, 3), '234');\n\n  assert.same(substr('ab', -1), 'b');\n\n  assert.same(substr('hello', Infinity), '', 'Infinity start returns empty string');\n  assert.same(substr('hello', 1, Infinity), 'ello', 'Infinity length returns rest of string');\n  assert.same(substr('hello', -Infinity), 'hello', '-Infinity start treated as 0');\n  assert.same(substr('hello', 0, -1), '', 'negative length returns empty string');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => substr(Symbol('substr test'), 1, 3), 'throws on symbol context');\n  }\n\n  if (STRICT) {\n    assert.throws(() => substr(null, 1, 3), TypeError, 'Throws on null as `this`');\n    assert.throws(() => substr(undefined, 1, 3), TypeError, 'Throws on undefined as `this`');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.sup.js",
    "content": "import sup from 'core-js-pure/es/string/sup';\n\nQUnit.test('String#sup', assert => {\n  assert.isFunction(sup);\n  assert.same(sup('a'), '<sup>a</sup>', 'lower case');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => sup(Symbol('sup test')), 'throws on symbol context');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.to-well-formed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport Symbol from 'core-js-pure/es/symbol';\nimport toWellFormed from 'core-js-pure/es/string/virtual/to-well-formed';\n\nQUnit.test('String#toWellFormed', assert => {\n  assert.isFunction(toWellFormed);\n\n  assert.same(toWellFormed.call('a'), 'a', 'a');\n  assert.same(toWellFormed.call('abc'), 'abc', 'abc');\n  assert.same(toWellFormed.call('💩'), '💩', '💩');\n  assert.same(toWellFormed.call('💩b'), '💩b', '💩b');\n  assert.same(toWellFormed.call('a💩'), 'a💩', 'a💩');\n  assert.same(toWellFormed.call('a💩b'), 'a💩b', 'a💩b');\n  assert.same(toWellFormed.call('💩a💩'), '💩a💩');\n  assert.same(toWellFormed.call('\\uD83D'), '\\uFFFD', '\\uD83D');\n  assert.same(toWellFormed.call('\\uDCA9'), '\\uFFFD', '\\uDCA9');\n  assert.same(toWellFormed.call('\\uDCA9\\uD83D'), '\\uFFFD\\uFFFD', '\\uDCA9\\uD83D');\n  assert.same(toWellFormed.call('a\\uD83D'), 'a\\uFFFD', 'a\\uD83D');\n  assert.same(toWellFormed.call('\\uDCA9a'), '\\uFFFDa', '\\uDCA9a');\n  assert.same(toWellFormed.call('a\\uD83Da'), 'a\\uFFFDa', 'a\\uD83Da');\n  assert.same(toWellFormed.call('a\\uDCA9a'), 'a\\uFFFDa', 'a\\uDCA9a');\n\n  assert.same(toWellFormed.call({\n    toString() {\n      return 'abc';\n    },\n  }), 'abc', 'conversion #1');\n\n  assert.same(toWellFormed.call(1), '1', 'conversion #2');\n\n  if (STRICT) {\n    assert.throws(() => toWellFormed.call(null), TypeError, 'coercible #1');\n    assert.throws(() => toWellFormed.call(undefined), TypeError, 'coercible #2');\n  }\n\n  assert.throws(() => toWellFormed.call(Symbol('toWellFormed test')), 'throws on symbol context');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.trim-end.js",
    "content": "import { STRICT, WHITESPACES } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport trimEnd from 'core-js-pure/es/string/trim-end';\n\nQUnit.test('String#trimEnd', assert => {\n  assert.isFunction(trimEnd);\n  assert.same(trimEnd(' \\n  q w e \\n  '), ' \\n  q w e', 'removes whitespaces at right side of string');\n  assert.same(trimEnd(WHITESPACES), '', 'removes all whitespaces');\n  assert.same(trimEnd('\\u200B\\u0085'), '\\u200B\\u0085', \"shouldn't remove this symbols\");\n\n  assert.throws(() => trimEnd(Symbol('trimEnd test')), 'throws on symbol context');\n\n  if (STRICT) {\n    assert.throws(() => trimEnd(null, 0), TypeError);\n    assert.throws(() => trimEnd(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.trim-left.js",
    "content": "import { STRICT, WHITESPACES } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport trimLeft from 'core-js-pure/es/string/trim-left';\n\nQUnit.test('String#trimLeft', assert => {\n  assert.isFunction(trimLeft);\n  assert.same(trimLeft(' \\n  q w e \\n  '), 'q w e \\n  ', 'removes whitespaces at left side of string');\n  assert.same(trimLeft(WHITESPACES), '', 'removes all whitespaces');\n  assert.same(trimLeft('\\u200B\\u0085'), '\\u200B\\u0085', \"shouldn't remove this symbols\");\n\n  assert.throws(() => trimLeft(Symbol('trimLeft test')), 'throws on symbol context');\n\n  if (STRICT) {\n    assert.throws(() => trimLeft(null, 0), TypeError);\n    assert.throws(() => trimLeft(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.trim-right.js",
    "content": "import { STRICT, WHITESPACES } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport trimRight from 'core-js-pure/es/string/trim-right';\n\nQUnit.test('String#trimRight', assert => {\n  assert.isFunction(trimRight);\n  assert.same(trimRight(' \\n  q w e \\n  '), ' \\n  q w e', 'removes whitespaces at right side of string');\n  assert.same(trimRight(WHITESPACES), '', 'removes all whitespaces');\n  assert.same(trimRight('\\u200B\\u0085'), '\\u200B\\u0085', \"shouldn't remove this symbols\");\n\n  assert.throws(() => trimRight(Symbol('trimRight test')), 'throws on symbol context');\n\n  if (STRICT) {\n    assert.throws(() => trimRight(null, 0), TypeError);\n    assert.throws(() => trimRight(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.trim-start.js",
    "content": "import { STRICT, WHITESPACES } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport trimStart from 'core-js-pure/es/string/trim-start';\n\nQUnit.test('String#trimStart', assert => {\n  assert.isFunction(trimStart);\n  assert.same(trimStart(' \\n  q w e \\n  '), 'q w e \\n  ', 'removes whitespaces at left side of string');\n  assert.same(trimStart(WHITESPACES), '', 'removes all whitespaces');\n  assert.same(trimStart('\\u200B\\u0085'), '\\u200B\\u0085', \"shouldn't remove this symbols\");\n\n  assert.throws(() => trimStart(Symbol('trimStart test')), 'throws on symbol context');\n\n  if (STRICT) {\n    assert.throws(() => trimStart(null, 0), TypeError);\n    assert.throws(() => trimStart(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.string.trim.js",
    "content": "import { STRICT, WHITESPACES } from '../helpers/constants.js';\n\nimport trim from 'core-js-pure/es/string/trim';\n\nQUnit.test('String#trim', assert => {\n  assert.isFunction(trim);\n  assert.same(trim(' \\n  q w e \\n  '), 'q w e', 'removes whitespaces at left & right side of string');\n  assert.same(trim(WHITESPACES), '', 'removes all whitespaces');\n  assert.same(trim('\\u200B\\u0085'), '\\u200B\\u0085', \"shouldn't remove this symbols\");\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => trim(Symbol('trim test')), 'throws on symbol context');\n  }\n\n  if (STRICT) {\n    assert.throws(() => trim(null, 0), TypeError);\n    assert.throws(() => trim(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.suppressed-error.constructor.js",
    "content": "/* eslint-disable unicorn/throw-new-error, sonarjs/inconsistent-function-call -- testing */\nimport SuppressedError from 'core-js-pure/es/suppressed-error';\nimport Symbol from 'core-js-pure/es/symbol';\nimport toString from 'core-js-pure/es/object/to-string';\n\nQUnit.test('SuppressedError', assert => {\n  assert.isFunction(SuppressedError);\n  assert.arity(SuppressedError, 3);\n  assert.name(SuppressedError, 'SuppressedError');\n  assert.true(new SuppressedError() instanceof SuppressedError);\n  assert.true(new SuppressedError() instanceof Error);\n  assert.true(SuppressedError() instanceof SuppressedError);\n  assert.true(SuppressedError() instanceof Error);\n\n  assert.same(SuppressedError().error, undefined);\n  assert.same(SuppressedError().suppressed, undefined);\n  assert.same(SuppressedError().message, '');\n  assert.same(SuppressedError().cause, undefined);\n  assert.false('cause' in SuppressedError());\n  assert.same(SuppressedError().name, 'SuppressedError');\n\n  assert.same(new SuppressedError().error, undefined);\n  assert.same(new SuppressedError().suppressed, undefined);\n  assert.same(new SuppressedError().message, '');\n  assert.same(new SuppressedError().cause, undefined);\n  assert.false('cause' in new SuppressedError());\n  assert.same(new SuppressedError().name, 'SuppressedError');\n\n  const error1 = SuppressedError(1, 2, 3, { cause: 4 });\n\n  assert.same(error1.error, 1);\n  assert.same(error1.suppressed, 2);\n  assert.same(error1.message, '3');\n  assert.same(error1.cause, undefined);\n  assert.false('cause' in error1);\n  assert.same(error1.name, 'SuppressedError');\n\n  const error2 = new SuppressedError(1, 2, 3, { cause: 4 });\n\n  assert.same(error2.error, 1);\n  assert.same(error2.suppressed, 2);\n  assert.same(error2.message, '3');\n  assert.same(error2.cause, undefined);\n  assert.false('cause' in error2);\n  assert.same(error2.name, 'SuppressedError');\n\n  assert.throws(() => SuppressedError(1, 2, Symbol('SuppressedError constructor test')), 'throws on symbol as a message');\n  assert.same(toString(SuppressedError()), '[object Error]', 'Object#toString');\n\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  assert.false(SuppressedError.prototype.hasOwnProperty('cause'), 'prototype has not cause');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.symbol.async-dispose.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Symbol.asyncDispose', assert => {\n  assert.true('asyncDispose' in Symbol, 'Symbol.asyncDispose available');\n  assert.true(Object(Symbol.asyncDispose) instanceof Symbol, 'Symbol.asyncDispose is symbol');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.symbol.async-iterator.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Symbol.asyncIterator', assert => {\n  assert.true('asyncIterator' in Symbol, 'Symbol.asyncIterator available');\n  assert.true(Object(Symbol.asyncIterator) instanceof Symbol, 'Symbol.asyncIterator is symbol');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.symbol.constructor.js",
    "content": "import { DESCRIPTORS, GLOBAL } from '../helpers/constants.js';\n\nimport create from 'core-js-pure/es/object/create';\nimport defineProperty from 'core-js-pure/es/object/define-property';\nimport defineProperties from 'core-js-pure/es/object/define-properties';\nimport getOwnPropertyDescriptor from 'core-js-pure/es/object/get-own-property-descriptor';\nimport getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names';\nimport getOwnPropertySymbols from 'core-js-pure/es/object/get-own-property-symbols';\nimport keys from 'core-js-pure/es/object/keys';\nimport ownKeys from 'core-js-pure/es/reflect/own-keys';\nimport Map from 'core-js-pure/es/map';\nimport Set from 'core-js-pure/es/set';\nimport Promise from 'core-js-pure/es/promise';\nimport Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Symbol', assert => {\n  assert.isFunction(Symbol);\n  const symbol1 = Symbol('symbol');\n  const symbol2 = Symbol('symbol');\n  assert.notSame(symbol1, symbol2, 'Symbol(\"symbol\") !== Symbol(\"symbol\")');\n  const object = {};\n  object[symbol1] = 42;\n  assert.same(object[symbol1], 42, 'Symbol() work as key');\n  assert.notSame(object[symbol2], 42, 'Various symbols from one description are various keys');\n  // assert.throws(() => Symbol(Symbol('foo')), 'throws on symbol argument');\n  if (DESCRIPTORS) {\n    let count = 0;\n    // eslint-disable-next-line no-unused-vars -- required for testing\n    for (const key in object) count++;\n    assert.same(count, 0, 'object[Symbol()] is not enumerable');\n  }\n});\n\nQUnit.test('Symbol as global key', assert => {\n  const TEXT = 'test global symbol key';\n  const symbol = Symbol(TEXT);\n  GLOBAL[symbol] = TEXT;\n  assert.same(GLOBAL[symbol], TEXT, TEXT);\n});\n\nQUnit.test('Well-known Symbols', assert => {\n  const wks = [\n    'hasInstance',\n    'isConcatSpreadable',\n    'iterator',\n    'match',\n    'matchAll',\n    'replace',\n    'search',\n    'species',\n    'split',\n    'toPrimitive',\n    'toStringTag',\n    'unscopables',\n  ];\n  for (const name of wks) {\n    assert.true(name in Symbol, `Symbol.${ name } available`);\n    assert.true(Object(Symbol[name]) instanceof Symbol, `Symbol.${ name } is symbol`);\n  }\n});\n\nQUnit.test('Symbol#@@toPrimitive', assert => {\n  const symbol = Symbol('Symbol#@@toPrimitive test');\n  assert.isFunction(Symbol.prototype[Symbol.toPrimitive]);\n  assert.same(symbol, symbol[Symbol.toPrimitive](), 'works');\n});\n\nQUnit.test('Symbol#@@toStringTag', assert => {\n  assert.same(Symbol.prototype[Symbol.toStringTag], 'Symbol', 'Symbol::@@toStringTag is `Symbol`');\n});\n\nif (DESCRIPTORS) {\n  QUnit.test('Symbols & descriptors', assert => {\n    const d = Symbol('d');\n    const e = Symbol('e');\n    const f = Symbol('f');\n    const i = Symbol('i');\n    const j = Symbol('j');\n    const prototype = { g: 'g' };\n    prototype[i] = 'i';\n    defineProperty(prototype, 'h', {\n      value: 'h',\n    });\n    defineProperty(prototype, j, {\n      value: 'j',\n    });\n    const object = create(prototype);\n    object.a = 'a';\n    object[d] = 'd';\n    defineProperty(object, 'b', {\n      value: 'b',\n    });\n    defineProperty(object, 'c', {\n      value: 'c',\n      enumerable: true,\n    });\n    defineProperty(object, e, {\n      configurable: true,\n      writable: true,\n      value: 'e',\n    });\n    const descriptor = {\n      value: 'f',\n      enumerable: true,\n    };\n    defineProperty(object, f, descriptor);\n    assert.true(descriptor.enumerable, 'defineProperty not changes descriptor object');\n    assert.deepEqual(getOwnPropertyDescriptor(object, 'a'), {\n      configurable: true,\n      writable: true,\n      enumerable: true,\n      value: 'a',\n    }, 'getOwnPropertyDescriptor a');\n    assert.deepEqual(getOwnPropertyDescriptor(object, 'b'), {\n      configurable: false,\n      writable: false,\n      enumerable: false,\n      value: 'b',\n    }, 'getOwnPropertyDescriptor b');\n    assert.deepEqual(getOwnPropertyDescriptor(object, 'c'), {\n      configurable: false,\n      writable: false,\n      enumerable: true,\n      value: 'c',\n    }, 'getOwnPropertyDescriptor c');\n    assert.deepEqual(getOwnPropertyDescriptor(object, d), {\n      configurable: true,\n      writable: true,\n      enumerable: true,\n      value: 'd',\n    }, 'getOwnPropertyDescriptor d');\n    assert.deepEqual(getOwnPropertyDescriptor(object, e), {\n      configurable: true,\n      writable: true,\n      enumerable: false,\n      value: 'e',\n    }, 'getOwnPropertyDescriptor e');\n    assert.deepEqual(getOwnPropertyDescriptor(object, f), {\n      configurable: false,\n      writable: false,\n      enumerable: true,\n      value: 'f',\n    }, 'getOwnPropertyDescriptor f');\n    assert.same(getOwnPropertyDescriptor(object, 'g'), undefined, 'getOwnPropertyDescriptor g');\n    assert.same(getOwnPropertyDescriptor(object, 'h'), undefined, 'getOwnPropertyDescriptor h');\n    assert.same(getOwnPropertyDescriptor(object, i), undefined, 'getOwnPropertyDescriptor i');\n    assert.same(getOwnPropertyDescriptor(object, j), undefined, 'getOwnPropertyDescriptor j');\n    assert.same(getOwnPropertyDescriptor(object, 'k'), undefined, 'getOwnPropertyDescriptor k');\n    assert.false(getOwnPropertyDescriptor(Object.prototype, 'toString').enumerable, 'getOwnPropertyDescriptor on Object.prototype');\n    assert.same(getOwnPropertyDescriptor(Object.prototype, d), undefined, 'getOwnPropertyDescriptor on Object.prototype missed symbol');\n    assert.same(keys(object).length, 2, 'Object.keys');\n    assert.same(getOwnPropertyNames(object).length, 3, 'Object.getOwnPropertyNames');\n    assert.same(getOwnPropertySymbols(object).length, 3, 'Object.getOwnPropertySymbols');\n    assert.same(ownKeys(object).length, 6, 'Reflect.ownKeys');\n    delete object[e];\n    object[e] = 'e';\n    assert.deepEqual(getOwnPropertyDescriptor(object, e), {\n      configurable: true,\n      writable: true,\n      enumerable: true,\n      value: 'e',\n    }, 'redefined non-enum key');\n    const g = Symbol('g');\n    defineProperty(object, g, { configurable: true, enumerable: true, writable: true, value: 1 });\n    defineProperty(object, g, { value: 2 });\n    assert.deepEqual(getOwnPropertyDescriptor(object, g), {\n      configurable: true,\n      writable: true,\n      enumerable: true,\n      value: 2,\n    }, 'redefine with partial descriptor preserves enumerable');\n  });\n\n  QUnit.test('Symbols & Object.defineProperties', assert => {\n    const c = Symbol('c');\n    const d = Symbol('d');\n    const descriptors = {\n      a: {\n        value: 'a',\n      },\n    };\n    descriptors[c] = {\n      value: 'c',\n    };\n    defineProperty(descriptors, 'b', {\n      value: {\n        value: 'b',\n      },\n    });\n    defineProperty(descriptors, d, {\n      value: {\n        value: 'd',\n      },\n    });\n    const object = defineProperties({}, descriptors);\n    assert.same(object.a, 'a', 'a');\n    assert.same(object.b, undefined, 'b');\n    assert.same(object[c], 'c', 'c');\n    assert.same(object[d], undefined, 'd');\n  });\n\n  QUnit.test('Symbols & Object.create', assert => {\n    const c = Symbol('c');\n    const d = Symbol('d');\n    const descriptors = {\n      a: {\n        value: 'a',\n      },\n    };\n    descriptors[c] = {\n      value: 'c',\n    };\n    defineProperty(descriptors, 'b', {\n      value: {\n        value: 'b',\n      },\n    });\n    defineProperty(descriptors, d, {\n      value: {\n        value: 'd',\n      },\n    });\n    const object = create(null, descriptors);\n    assert.same(object.a, 'a', 'a');\n    assert.same(object.b, undefined, 'b');\n    assert.same(object[c], 'c', 'c');\n    assert.same(object[d], undefined, 'd');\n  });\n\n  const constructors = { Map, Set, Promise };\n  for (const name in constructors) {\n    QUnit.test(`${ name }@@species`, assert => {\n      assert.same(constructors[name][Symbol.species], constructors[name], `${ name }@@species === ${ name }`);\n      const Subclass = create(constructors[name]);\n      assert.same(Subclass[Symbol.species], Subclass, `${ name } subclass`);\n    });\n  }\n\n  QUnit.test('Array@@species', assert => {\n    assert.same(Array[Symbol.species], Array, 'Array@@species === Array');\n    const Subclass = create(Array);\n    assert.same(Subclass[Symbol.species], Subclass, 'Array subclass');\n  });\n\n  QUnit.test('Symbol.sham flag', assert => {\n    assert.same(Symbol.sham, typeof Symbol('Symbol.sham flag test') == 'symbol' ? undefined : true);\n  });\n}\n"
  },
  {
    "path": "tests/unit-pure/es.symbol.dispose.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Symbol.dispose', assert => {\n  assert.true('dispose' in Symbol, 'Symbol.dispose available');\n  assert.true(Object(Symbol.dispose) instanceof Symbol, 'Symbol.dispose is symbol');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.symbol.for.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Symbol.for', assert => {\n  assert.isFunction(Symbol.for, 'Symbol.for is function');\n  const symbol = Symbol.for('foo');\n  assert.strictEqual(Symbol.for('foo'), symbol, 'registry');\n  assert.true(Object(symbol) instanceof Symbol, 'returns symbol');\n  assert.throws(() => Symbol.for(Symbol('foo')), 'throws on symbol argument');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.symbol.key-for.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('Symbol.keyFor', assert => {\n  assert.isFunction(Symbol.keyFor, 'Symbol.keyFor is function');\n  assert.strictEqual(Symbol.keyFor(Symbol.for('foo')), 'foo');\n  assert.strictEqual(Symbol.keyFor(Symbol('foo')), undefined);\n  assert.throws(() => Symbol.keyFor('foo'), 'throws on non-symbol');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.unescape.js",
    "content": "import unescape from 'core-js-pure/es/unescape';\n\nQUnit.test('unescape', assert => {\n  assert.isFunction(unescape);\n  assert.arity(unescape, 1);\n  assert.name(unescape, 'unescape');\n  assert.same(unescape('%21q2%u0444'), '!q2ф');\n  assert.same(unescape('%u044q2%21'), '%u044q2!');\n  assert.same(unescape(null), 'null');\n  assert.same(unescape(undefined), 'undefined');\n\n  /* eslint-disable es/no-symbol -- safe */\n  if (typeof Symbol == 'function') {\n    assert.throws(() => unescape(Symbol('unescape test')), 'throws on symbol argument');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/es.weak-map.get-or-insert-computed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport WeakMap from 'core-js-pure/es/weak-map';\n\nQUnit.test('WeakMap#getOrInsertComputed', assert => {\n  const { getOrInsertComputed } = WeakMap.prototype;\n  assert.isFunction(getOrInsertComputed);\n  assert.arity(getOrInsertComputed, 2);\n  assert.name(getOrInsertComputed, 'getOrInsertComputed');\n  assert.nonEnumerable(WeakMap.prototype, 'getOrInsertComputed');\n\n  const a = {};\n  const b = {};\n\n  let map = new WeakMap([[a, 2]]);\n  assert.same(map.getOrInsertComputed(a, () => 3), 2, 'result#1');\n  assert.same(map.get(a), 2, 'map#1');\n  map = new WeakMap([[a, 2]]);\n  assert.same(map.getOrInsertComputed(b, () => 3), 3, 'result#2');\n  assert.same(map.get(a), 2, 'map#2-1');\n  assert.same(map.get(b), 3, 'map#2-2');\n\n  map = new WeakMap([[a, 2]]);\n  map.getOrInsertComputed(a, () => assert.avoid());\n\n  map = new WeakMap([[a, 2]]);\n  map.getOrInsertComputed(b, function (key) {\n    if (STRICT) assert.same(this, undefined, 'correct handler in callback');\n    assert.same(arguments.length, 1, 'correct number of callback arguments');\n    assert.same(key, b, 'correct key in callback');\n  });\n\n  map = new WeakMap([[a, 2]]);\n  assert.throws(() => {\n    map.getOrInsertComputed(1, () => assert.avoid());\n  }, TypeError, 'key validation before call of callback');\n\n  map = new WeakMap([[a, 2]]);\n  assert.same(map.getOrInsertComputed(b, key => {\n    map.set(key, 4);\n    return 3;\n  }), 3, 'callback inserts same key');\n  assert.same(map.get(b), 3, 'map after callback inserts same key');\n\n  assert.throws(() => new WeakMap().getOrInsertComputed(1, () => 3), TypeError, 'invalid key#1');\n  assert.throws(() => new WeakMap().getOrInsertComputed(null, () => 3), TypeError, 'invalid key#2');\n  assert.throws(() => new WeakMap().getOrInsertComputed(undefined, () => 3), TypeError, 'invalid key#3');\n  assert.throws(() => new WeakMap().getOrInsertComputed(a, {}), TypeError, 'non-callable#1');\n  assert.throws(() => new WeakMap().getOrInsertComputed(a, 1), TypeError, 'non-callable#2');\n  assert.throws(() => new WeakMap().getOrInsertComputed(a, null), TypeError, 'non-callable#3');\n  assert.throws(() => new WeakMap().getOrInsertComputed(a, undefined), TypeError, 'non-callable#4');\n  assert.throws(() => new WeakMap().getOrInsertComputed(a), TypeError, 'non-callable#5');\n  assert.throws(() => getOrInsertComputed.call({}, a, () => 3), TypeError, 'non-generic#1');\n  assert.throws(() => getOrInsertComputed.call([], a, () => 3), TypeError, 'non-generic#2');\n  assert.throws(() => getOrInsertComputed.call(undefined, a, () => 3), TypeError, 'non-generic#3');\n  assert.throws(() => getOrInsertComputed.call(null, a, () => 3), TypeError, 'non-generic#4');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.weak-map.get-or-insert.js",
    "content": "import WeakMap from 'core-js-pure/es/weak-map';\n\nQUnit.test('WeakMap#getOrInsert', assert => {\n  const { getOrInsert } = WeakMap.prototype;\n  assert.isFunction(getOrInsert);\n  assert.arity(getOrInsert, 2);\n  assert.name(getOrInsert, 'getOrInsert');\n  assert.nonEnumerable(WeakMap.prototype, 'getOrInsert');\n\n  const a = {};\n  const b = {};\n\n  let map = new WeakMap([[a, 2]]);\n  assert.same(map.getOrInsert(a, 3), 2, 'result#1');\n  assert.same(map.get(a), 2, 'map#1');\n  map = new WeakMap([[a, 2]]);\n  assert.same(map.getOrInsert(b, 3), 3, 'result#2');\n  assert.same(map.get(a), 2, 'map#2-1');\n  assert.same(map.get(b), 3, 'map#2-2');\n\n  assert.throws(() => new WeakMap().getOrInsert(1, 1), TypeError, 'invalid key#1');\n  assert.throws(() => new WeakMap().getOrInsert(null, 1), TypeError, 'invalid key#2');\n  assert.throws(() => new WeakMap().getOrInsert(undefined, 1), TypeError, 'invalid key#3');\n  assert.throws(() => new WeakMap().getOrInsert(), TypeError, 'invalid key#4');\n  assert.throws(() => getOrInsert.call({}, a, 1), TypeError, 'non-generic#1');\n  assert.throws(() => getOrInsert.call([], a, 1), TypeError, 'non-generic#2');\n  assert.throws(() => getOrInsert.call(undefined, a, 1), TypeError, 'non-generic#3');\n  assert.throws(() => getOrInsert.call(null, a, 1), TypeError, 'non-generic#4');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.weak-map.js",
    "content": "import { createIterable, nativeSubclass } from '../helpers/helpers.js';\nimport { DESCRIPTORS, FREEZING } from '../helpers/constants.js';\n\nimport getIteratorMethod from 'core-js-pure/es/get-iterator-method';\nimport freeze from 'core-js-pure/es/object/freeze';\nimport isFrozen from 'core-js-pure/es/object/is-frozen';\nimport getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names';\nimport getOwnPropertySymbols from 'core-js-pure/es/object/get-own-property-symbols';\nimport keys from 'core-js-pure/es/object/keys';\nimport ownKeys from 'core-js-pure/es/reflect/own-keys';\nimport Symbol from 'core-js-pure/es/symbol';\nimport WeakMap from 'core-js-pure/es/weak-map';\n\nQUnit.test('WeakMap', assert => {\n  assert.isFunction(WeakMap);\n  assert.true('delete' in WeakMap.prototype, 'delete in WeakMap.prototype');\n  assert.true('get' in WeakMap.prototype, 'get in WeakMap.prototype');\n  assert.true('has' in WeakMap.prototype, 'has in WeakMap.prototype');\n  assert.true('set' in WeakMap.prototype, 'set in WeakMap.prototype');\n  assert.true(new WeakMap() instanceof WeakMap, 'new WeakMap instanceof WeakMap');\n  let object = {};\n  assert.same(new WeakMap(createIterable([[object, 42]])).get(object), 42, 'Init from iterable');\n  let weakmap = new WeakMap();\n  const frozen = freeze({});\n  weakmap.set(frozen, 42);\n  assert.same(weakmap.get(frozen), 42, 'Support frozen objects');\n  weakmap = new WeakMap();\n  weakmap.set(frozen, 42);\n  assert.true(weakmap.has(frozen), 'works with frozen objects, #1');\n  assert.same(weakmap.get(frozen), 42, 'works with frozen objects, #2');\n  weakmap.delete(frozen);\n  assert.false(weakmap.has(frozen), 'works with frozen objects, #3');\n  assert.same(weakmap.get(frozen), undefined, 'works with frozen objects, #4');\n  let done = false;\n  try {\n    new WeakMap(createIterable([null, 1, 2], {\n      return() {\n        return done = true;\n      },\n    }));\n  } catch { /* empty */ }\n  assert.true(done, '.return #throw');\n  assert.false('clear' in WeakMap.prototype, 'should not contains `.clear` method');\n  const array = [];\n  done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return getIteratorMethod([]).call(this);\n  };\n  new WeakMap(array);\n  assert.true(done);\n  object = {};\n  new WeakMap().set(object, 1);\n  if (DESCRIPTORS) {\n    const results = [];\n    for (const key in object) results.push(key);\n    assert.arrayEqual(results, []);\n    assert.arrayEqual(keys(object), []);\n  }\n  assert.arrayEqual(getOwnPropertyNames(object), []);\n  if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []);\n  if (ownKeys) assert.arrayEqual(ownKeys(object), []);\n  if (nativeSubclass) {\n    const Subclass = nativeSubclass(WeakMap);\n    assert.true(new Subclass() instanceof Subclass, 'correct subclassing with native classes #1');\n    assert.true(new Subclass() instanceof WeakMap, 'correct subclassing with native classes #2');\n    object = {};\n    assert.same(new Subclass().set(object, 2).get(object), 2, 'correct subclassing with native classes #3');\n  }\n\n  if (typeof ArrayBuffer == 'function') {\n    const buffer = new ArrayBuffer(8);\n    const map = new WeakMap([[buffer, 8]]);\n    assert.true(map.has(buffer), 'works with ArrayBuffer keys');\n  }\n});\n\nQUnit.test('WeakMap#delete', assert => {\n  assert.isFunction(WeakMap.prototype.delete);\n  const a = {};\n  const b = {};\n  const weakmap = new WeakMap();\n  weakmap.set(a, 42);\n  weakmap.set(b, 21);\n  assert.true(weakmap.has(a), 'WeakMap has values before .delete() #1');\n  assert.true(weakmap.has(b), 'WeakMap has values before .delete() #2');\n  weakmap.delete(a);\n  assert.false(weakmap.has(a), 'WeakMap has not value after .delete() #1');\n  assert.true(weakmap.has(b), 'WeakMap still has value after .delete() #2');\n  assert.notThrows(() => !weakmap.delete(1), 'return false on primitive');\n  const object = {};\n  weakmap.set(object, 42);\n  freeze(object);\n  assert.true(weakmap.has(object), 'works with frozen objects #1');\n  weakmap.delete(object);\n  assert.false(weakmap.has(object), 'works with frozen objects #2');\n});\n\nQUnit.test('WeakMap#get', assert => {\n  assert.isFunction(WeakMap.prototype.get);\n  const weakmap = new WeakMap();\n  assert.same(weakmap.get({}), undefined, 'WeakMap .get() before .set() return undefined');\n  let object = {};\n  weakmap.set(object, 42);\n  assert.same(weakmap.get(object), 42, 'WeakMap .get() return value');\n  weakmap.delete(object);\n  assert.same(weakmap.get(object), undefined, 'WeakMap .get() after .delete() return undefined');\n  assert.notThrows(() => weakmap.get(1) === undefined, 'return undefined on primitive');\n  object = {};\n  weakmap.set(object, 42);\n  freeze(object);\n  assert.same(weakmap.get(object), 42, 'works with frozen objects #1');\n  weakmap.delete(object);\n  assert.same(weakmap.get(object), undefined, 'works with frozen objects #2');\n});\n\nQUnit.test('WeakMap#has', assert => {\n  assert.isFunction(WeakMap.prototype.has);\n  const weakmap = new WeakMap();\n  assert.false(weakmap.has({}), 'WeakMap .has() before .set() return false');\n  let object = {};\n  weakmap.set(object, 42);\n  assert.true(weakmap.has(object), 'WeakMap .has() return true');\n  weakmap.delete(object);\n  assert.false(weakmap.has(object), 'WeakMap .has() after .delete() return false');\n  assert.notThrows(() => !weakmap.has(1), 'return false on primitive');\n  object = {};\n  weakmap.set(object, 42);\n  freeze(object);\n  assert.true(weakmap.has(object), 'works with frozen objects #1');\n  weakmap.delete(object);\n  assert.false(weakmap.has(object), 'works with frozen objects #2');\n});\n\nQUnit.test('WeakMap#set', assert => {\n  assert.isFunction(WeakMap.prototype.set);\n  const weakmap = new WeakMap();\n  const object = {};\n  weakmap.set(object, 33);\n  assert.same(weakmap.get(object), 33, 'works with object as keys');\n  assert.same(weakmap.set({}, 42), weakmap, 'chaining');\n  assert.throws(() => new WeakMap().set(42, 42), 'throws with primitive keys');\n  const object1 = freeze({});\n  const object2 = {};\n  weakmap.set(object1, 42);\n  weakmap.set(object2, 42);\n  freeze(object);\n  assert.same(weakmap.get(object1), 42, 'works with frozen objects #1');\n  assert.same(weakmap.get(object2), 42, 'works with frozen objects #2');\n  weakmap.delete(object1);\n  weakmap.delete(object2);\n  assert.same(weakmap.get(object1), undefined, 'works with frozen objects #3');\n  assert.same(weakmap.get(object2), undefined, 'works with frozen objects #4');\n  const array = freeze([]);\n  weakmap.set(array, 42);\n  assert.same(weakmap.get(array), 42, 'works with frozen arrays #1');\n  if (FREEZING) assert.true(isFrozen(array), 'works with frozen arrays #2');\n});\n\nQUnit.test('WeakMap#@@toStringTag', assert => {\n  assert.same(WeakMap.prototype[Symbol.toStringTag], 'WeakMap', 'WeakMap::@@toStringTag is `WeakMap`');\n  assert.same(String(new WeakMap()), '[object WeakMap]', 'correct stringification');\n});\n"
  },
  {
    "path": "tests/unit-pure/es.weak-set.js",
    "content": "import { createIterable, nativeSubclass } from '../helpers/helpers.js';\nimport { DESCRIPTORS } from '../helpers/constants.js';\n\nimport getIteratorMethod from 'core-js-pure/es/get-iterator-method';\nimport freeze from 'core-js-pure/es/object/freeze';\nimport getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names';\nimport getOwnPropertySymbols from 'core-js-pure/es/object/get-own-property-symbols';\nimport keys from 'core-js-pure/es/object/keys';\nimport ownKeys from 'core-js-pure/es/reflect/own-keys';\nimport Symbol from 'core-js-pure/es/symbol';\nimport WeakSet from 'core-js-pure/es/weak-set';\n\nQUnit.test('WeakSet', assert => {\n  assert.isFunction(WeakSet);\n  assert.true('add' in WeakSet.prototype, 'add in WeakSet.prototype');\n  assert.true('delete' in WeakSet.prototype, 'delete in WeakSet.prototype');\n  assert.true('has' in WeakSet.prototype, 'has in WeakSet.prototype');\n  assert.true(new WeakSet() instanceof WeakSet, 'new WeakSet instanceof WeakSet');\n  let object = {};\n  assert.true(new WeakSet(createIterable([object])).has(object), 'Init from iterable');\n  const weakset = new WeakSet();\n  const frozen = freeze({});\n  weakset.add(frozen);\n  assert.true(weakset.has(frozen), 'works with frozen objects, #1');\n  weakset.delete(frozen);\n  assert.false(weakset.has(frozen), 'works with frozen objects, #2');\n  let done = false;\n  try {\n    new WeakSet(createIterable([null, 1, 2], {\n      return() {\n        return done = true;\n      },\n    }));\n  } catch { /* empty */ }\n  assert.true(done, '.return #throw');\n  assert.false('clear' in WeakSet.prototype, 'should not contains `.clear` method');\n  const array = [];\n  done = false;\n  // eslint-disable-next-line es/no-nonstandard-array-prototype-properties -- legacy FF case\n  array['@@iterator'] = undefined;\n  array[Symbol.iterator] = function () {\n    done = true;\n    return getIteratorMethod([]).call(this);\n  };\n  new WeakSet(array);\n  assert.true(done);\n  object = {};\n  new WeakSet().add(object);\n  if (DESCRIPTORS) {\n    const results = [];\n    for (const key in object) results.push(key);\n    assert.arrayEqual(results, []);\n    assert.arrayEqual(keys(object), []);\n  }\n  assert.arrayEqual(getOwnPropertyNames(object), []);\n  if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []);\n  if (ownKeys) assert.arrayEqual(ownKeys(object), []);\n  if (nativeSubclass) {\n    const Subclass = nativeSubclass(WeakSet);\n    assert.true(new Subclass() instanceof Subclass, 'correct subclassing with native classes #1');\n    assert.true(new Subclass() instanceof WeakSet, 'correct subclassing with native classes #2');\n    object = {};\n    assert.true(new Subclass().add(object).has(object), 'correct subclassing with native classes #3');\n  }\n\n  if (typeof ArrayBuffer == 'function') {\n    const buffer = new ArrayBuffer(8);\n    const set = new WeakSet([buffer]);\n    assert.true(set.has(buffer), 'works with ArrayBuffer keys');\n  }\n});\n\nQUnit.test('WeakSet#add', assert => {\n  assert.isFunction(WeakSet.prototype.add);\n  const weakset = new WeakSet();\n  assert.same(weakset.add({}), weakset, 'chaining');\n  assert.throws(() => new WeakSet().add(42), 'throws with primitive keys');\n});\n\nQUnit.test('WeakSet#delete', assert => {\n  assert.isFunction(WeakSet.prototype.delete);\n  const a = {};\n  const b = {};\n  const weakset = new WeakSet().add(a).add(b);\n  assert.true(weakset.has(a), 'WeakSet has values before .delete() #1');\n  assert.true(weakset.has(b), 'WeakSet has values before .delete() #2');\n  weakset.delete(a);\n  assert.false(weakset.has(a), 'WeakSet has not value after .delete() #1');\n  assert.true(weakset.has(b), 'WeakSet still has value after .delete() #2');\n  assert.notThrows(() => !weakset.delete(1), 'return false on primitive');\n});\n\nQUnit.test('WeakSet#has', assert => {\n  assert.isFunction(WeakSet.prototype.has);\n  const weakset = new WeakSet();\n  assert.false(weakset.has({}), 'WeakSet has`nt value');\n  const object = {};\n  weakset.add(object);\n  assert.true(weakset.has(object), 'WeakSet has value after .add()');\n  weakset.delete(object);\n  assert.false(weakset.has(object), 'WeakSet has not value after .delete()');\n  assert.notThrows(() => !weakset.has(1), 'return false on primitive');\n});\n\nQUnit.test('WeakSet#@@toStringTag', assert => {\n  assert.same(WeakSet.prototype[Symbol.toStringTag], 'WeakSet', 'WeakSet#@@toStringTag is `WeakSet`');\n  assert.same(String(new WeakSet()), '[object WeakSet]', 'correct stringification');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.array.filter-out.js",
    "content": "// TODO: Remove from `core-js@4`\nimport { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport filterOut from 'core-js-pure/full/array/filter-out';\n\nQUnit.test('Array#filterOut', assert => {\n  assert.isFunction(filterOut);\n  let array = [1];\n  const context = {};\n  filterOut(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.deepEqual(filterOut([1, 2, 3, 'q', {}, 4, true, 5], it => typeof it != 'number'), [1, 2, 3, 4, 5]);\n  if (STRICT) {\n    assert.throws(() => filterOut(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => filterOut(undefined, () => { /* empty */ }), TypeError);\n  }\n  assert.notThrows(() => filterOut({ length: -1, 0: 1 }, () => {\n    throw new Error();\n  }), 'uses ToLength');\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(filterOut(array, Boolean).foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.array.filter-reject.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport filterReject from 'core-js-pure/full/array/filter-reject';\n\nQUnit.test('Array#filterReject', assert => {\n  assert.isFunction(filterReject);\n  let array = [1];\n  const context = {};\n  filterReject(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.deepEqual(filterReject([1, 2, 3, 'q', {}, 4, true, 5], it => typeof it != 'number'), [1, 2, 3, 4, 5]);\n  if (STRICT) {\n    assert.throws(() => filterReject(null, () => { /* empty */ }), TypeError);\n    assert.throws(() => filterReject(undefined, () => { /* empty */ }), TypeError);\n  }\n  assert.notThrows(() => filterReject({ length: -1, 0: 1 }, () => {\n    throw new Error();\n  }), 'uses ToLength');\n  array = [];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(filterReject(array, Boolean).foo, 1, '@@species');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.array.group-by-to-map.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Map from 'core-js-pure/es/map';\nimport Symbol from 'core-js-pure/es/symbol';\nimport from from 'core-js-pure/es/array/from';\nimport groupByToMap from 'core-js-pure/actual/array/group-by-to-map';\n\nQUnit.test('Array#groupByToMap', assert => {\n  assert.isFunction(groupByToMap);\n  let array = [1];\n  const context = {};\n  groupByToMap(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.true(groupByToMap([], it => it) instanceof Map, 'returns Map');\n  assert.deepEqual(from(groupByToMap([1, 2, 3], it => it % 2)), [[1, [1, 3]], [0, [2]]], '#1');\n  assert.deepEqual(\n    from(groupByToMap([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], it => `i${ it % 5 }`)),\n    [['i1', [1, 6, 11]], ['i2', [2, 7, 12]], ['i3', [3, 8]], ['i4', [4, 9]], ['i0', [5, 10]]],\n    '#2',\n  );\n  assert.deepEqual(from(groupByToMap(Array(3), it => it)), [[undefined, [undefined, undefined, undefined]]], '#3');\n  if (STRICT) {\n    assert.throws(() => groupByToMap(null, () => { /* empty */ }), TypeError, 'null this -> TypeError');\n    assert.throws(() => groupByToMap(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError');\n  }\n  array = [1];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(groupByToMap(array, Boolean).get(true).foo, undefined, 'no @@species');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.array.group-by.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport getPrototypeOf from 'core-js-pure/es/object/get-prototype-of';\nimport groupBy from 'core-js-pure/actual/array/group-by';\n\nQUnit.test('Array#groupBy', assert => {\n  assert.isFunction(groupBy);\n  let array = [1];\n  const context = {};\n  groupBy(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.same(getPrototypeOf(groupBy([], it => it)), null, 'null proto');\n  assert.deepEqual(groupBy([1, 2, 3], it => it % 2), { 1: [1, 3], 0: [2] }, '#1');\n  assert.deepEqual(\n    groupBy([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], it => `i${ it % 5 }`),\n    { i1: [1, 6, 11], i2: [2, 7, 12], i3: [3, 8], i4: [4, 9], i0: [5, 10] },\n    '#2',\n  );\n  assert.deepEqual(groupBy(Array(3), it => it), { undefined: [undefined, undefined, undefined] }, '#3');\n  if (STRICT) {\n    assert.throws(() => groupBy(null, () => { /* empty */ }), TypeError, 'null this -> TypeError');\n    assert.throws(() => groupBy(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError');\n  }\n  array = [1];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(groupBy(array, Boolean).true.foo, undefined, 'no @@species');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.array.group-to-map.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Map from 'core-js-pure/es/map';\nimport Symbol from 'core-js-pure/es/symbol';\nimport from from 'core-js-pure/es/array/from';\nimport groupToMap from 'core-js-pure/actual/array/group-to-map';\n\nQUnit.test('Array#groupToMap', assert => {\n  assert.isFunction(groupToMap);\n  let array = [1];\n  const context = {};\n  groupToMap(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.true(groupToMap([], it => it) instanceof Map, 'returns Map');\n  assert.deepEqual(from(groupToMap([1, 2, 3], it => it % 2)), [[1, [1, 3]], [0, [2]]], '#1');\n  assert.deepEqual(\n    from(groupToMap([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], it => `i${ it % 5 }`)),\n    [['i1', [1, 6, 11]], ['i2', [2, 7, 12]], ['i3', [3, 8]], ['i4', [4, 9]], ['i0', [5, 10]]],\n    '#2',\n  );\n  assert.deepEqual(from(groupToMap(Array(3), it => it)), [[undefined, [undefined, undefined, undefined]]], '#3');\n  if (STRICT) {\n    assert.throws(() => groupToMap(null, () => { /* empty */ }), TypeError, 'null this -> TypeError');\n    assert.throws(() => groupToMap(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError');\n  }\n  array = [1];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(groupToMap(array, Boolean).get(true).foo, undefined, 'no @@species');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.array.group.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport getPrototypeOf from 'core-js-pure/es/object/get-prototype-of';\nimport group from 'core-js-pure/actual/array/group';\n\nQUnit.test('Array#group', assert => {\n  assert.isFunction(group);\n  let array = [1];\n  const context = {};\n  group(array, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 0, 'correct index in callback');\n    assert.same(that, array, 'correct link to array in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  assert.same(getPrototypeOf(group([], it => it)), null, 'null proto');\n  assert.deepEqual(group([1, 2, 3], it => it % 2), { 1: [1, 3], 0: [2] }, '#1');\n  assert.deepEqual(\n    group([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], it => `i${ it % 5 }`),\n    { i1: [1, 6, 11], i2: [2, 7, 12], i3: [3, 8], i4: [4, 9], i0: [5, 10] },\n    '#2',\n  );\n  assert.deepEqual(group(Array(3), it => it), { undefined: [undefined, undefined, undefined] }, '#3');\n  if (STRICT) {\n    assert.throws(() => group(null, () => { /* empty */ }), TypeError, 'null this -> TypeError');\n    assert.throws(() => group(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError');\n  }\n  array = [1];\n  // eslint-disable-next-line object-shorthand -- constructor\n  array.constructor = { [Symbol.species]: function () {\n    return { foo: 1 };\n  } };\n  assert.same(group(array, Boolean).true.foo, undefined, 'no @@species');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.array.is-template-object.js",
    "content": "import freeze from 'core-js-pure/es/object/freeze';\nimport isTemplateObject from 'core-js-pure/full/array/is-template-object';\n\nQUnit.test('Array.isTemplateObject', assert => {\n  assert.isFunction(isTemplateObject);\n  assert.arity(isTemplateObject, 1);\n  assert.name(isTemplateObject, 'isTemplateObject');\n\n  assert.false(isTemplateObject(undefined));\n  assert.false(isTemplateObject(null));\n  assert.false(isTemplateObject({}));\n  assert.false(isTemplateObject(function () {\n    // eslint-disable-next-line prefer-rest-params -- required for testing\n    return arguments;\n  }()));\n  assert.false(isTemplateObject([]));\n  assert.false(isTemplateObject(freeze([])), 'frozen string array without .raw should return false #1');\n  assert.false(isTemplateObject(freeze(['hello'])), 'frozen string array without .raw should return false #2');\n\n  const template = (() => {\n    try {\n      // eslint-disable-next-line no-template-curly-in-string -- ignore\n      return Function('return (it => it)`qwe${ 123 }asd`')();\n    } catch { /* empty */ }\n  })();\n\n  if (template) assert.true(isTemplateObject(template));\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.array.unique-by.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport uniqueBy from 'core-js-pure/full/array/unique-by';\n\nQUnit.test('Array#uniqueBy', assert => {\n  assert.isFunction(uniqueBy);\n\n  let array = [1, 2, 3, 2, 1];\n  assert.notSame(uniqueBy(array), array);\n  assert.deepEqual(uniqueBy(array), [1, 2, 3]);\n\n  array = [\n    {\n      id: 1,\n      uid: 10000,\n    },\n    {\n      id: 2,\n      uid: 10000,\n    },\n    {\n      id: 3,\n      uid: 10001,\n    },\n  ];\n\n  assert.deepEqual(uniqueBy(array, it => it.uid), [\n    {\n      id: 1,\n      uid: 10000,\n    },\n    {\n      id: 3,\n      uid: 10001,\n    },\n  ]);\n\n  assert.deepEqual(uniqueBy(array, ({ id, uid }) => `${ id }-${ uid }`), array);\n\n  assert.deepEqual(uniqueBy([1, undefined, 2, undefined, null, 1]), [1, undefined, 2, null]);\n\n  assert.deepEqual(uniqueBy([0, -0]), [0]);\n  assert.deepEqual(uniqueBy([NaN, NaN]), [NaN]);\n\n  assert.deepEqual(uniqueBy({ length: 1, 0: 1 }), [1]);\n\n  if (STRICT) {\n    assert.throws(() => uniqueBy(null), TypeError);\n    assert.throws(() => uniqueBy(undefined), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.as-indexed-pairs.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nimport AsyncIterator from 'core-js-pure/full/async-iterator';\n\nQUnit.test('AsyncIterator#asIndexedPairs', assert => {\n  const { asIndexedPairs } = AsyncIterator.prototype;\n\n  assert.isFunction(asIndexedPairs);\n  assert.arity(asIndexedPairs, 0);\n  assert.nonEnumerable(AsyncIterator.prototype, 'asIndexedPairs');\n\n  if (STRICT) {\n    assert.throws(() => asIndexedPairs.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => asIndexedPairs.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  return asIndexedPairs.call(createIterator(['a', 'b', 'c'])).toArray().then(it => {\n    assert.same(it.toString(), '0,a,1,b,2,c', 'basic functionality');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.constructor.js",
    "content": "import { nativeSubclass } from '../helpers/helpers.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\n\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\n\nQUnit.test('AsyncIterator', assert => {\n  assert.isFunction(AsyncIterator);\n  assert.arity(AsyncIterator, 0);\n  assert.name(AsyncIterator, 'AsyncIterator');\n\n  assert.true(AsyncIterator.from([1, 2, 3]) instanceof AsyncIterator, 'Async From Proxy');\n  assert.true(AsyncIterator.from([1, 2, 3]).drop(1) instanceof AsyncIterator, 'Async Drop Proxy');\n\n  if (nativeSubclass) {\n    const Sub = nativeSubclass(AsyncIterator);\n    assert.true(new Sub() instanceof AsyncIterator, 'abstract constructor');\n  }\n\n  assert.throws(() => new AsyncIterator(), 'direct constructor throws');\n  // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n  assert.throws(() => AsyncIterator(), 'throws w/o `new`');\n});\n\nQUnit.test('AsyncIterator#constructor', assert => {\n  assert.same(AsyncIterator.prototype.constructor, AsyncIterator, 'AsyncIterator#constructor is AsyncIterator');\n});\n\nQUnit.test('AsyncIterator#@@toStringTag', assert => {\n  assert.same(AsyncIterator.prototype[Symbol.toStringTag], 'AsyncIterator', 'AsyncIterator::@@toStringTag is `AsyncIterator`');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.drop.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\n\nQUnit.test('AsyncIterator#drop', assert => {\n  const { drop } = AsyncIterator.prototype;\n\n  assert.isFunction(drop);\n  assert.arity(drop, 1);\n  assert.name(drop, 'drop');\n  assert.nonEnumerable(AsyncIterator.prototype, 'drop');\n\n  if (STRICT) {\n    assert.throws(() => drop.call(undefined, 1), TypeError);\n    assert.throws(() => drop.call(null, 1), TypeError);\n  }\n\n  assert.throws(() => drop.call(createIterator([1, 2, 3]), -1), RangeError, 'negative');\n  assert.throws(() => drop.call(createIterator([1, 2, 3]), NaN), RangeError, 'NaN');\n\n  return drop.call(createIterator([1, 2, 3]), 1).toArray().then(it => {\n    assert.arrayEqual(it, [2, 3], 'basic functionality');\n    return drop.call(createIterator([1, 2, 3]), 1.5).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [2, 3], 'float');\n    return drop.call(createIterator([1, 2, 3]), 4).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [], 'big');\n    return drop.call(createIterator([1, 2, 3]), 0).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [1, 2, 3], 'zero');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.every.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\n\nQUnit.test('AsyncIterator#every', assert => {\n  const { every } = AsyncIterator.prototype;\n\n  assert.isFunction(every);\n  assert.arity(every, 1);\n  assert.name(every, 'every');\n  assert.nonEnumerable(AsyncIterator.prototype, 'every');\n\n  if (STRICT) {\n    assert.throws(() => every.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => every.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => every.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => every.call(createIterator([1]), null), TypeError);\n  assert.throws(() => every.call(createIterator([1]), {}), TypeError);\n\n  const counters = [];\n\n  return every.call(createIterator([1, 2, 3]), it => typeof it == 'number').then(result => {\n    assert.true(result, 'basic functionality, +');\n    return every.call(createIterator([1, 2, 3]), it => it === 2);\n  }).then(result => {\n    assert.false(result, 'basic functionality, -');\n    return every.call(createIterator([1, 2, 3]), (value, counter) => {\n      counters.push(counter);\n      return true;\n    });\n  }).then(() => {\n    assert.arrayEqual(counters, [0, 1, 2], 'counter incremented');\n    return every.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n    });\n  }).then(() => {\n    return every.call(createIterator([1]), () => { throw 42; });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  }).then(() => {\n    return every.call(\n      createIterator([1], { return() { throw 43; } }),\n      () => { throw 42; },\n    );\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error even if return() throws');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.filter.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\n\nQUnit.test('AsyncIterator#filter', assert => {\n  const { filter } = AsyncIterator.prototype;\n\n  assert.isFunction(filter);\n  assert.arity(filter, 1);\n  assert.name(filter, 'filter');\n  assert.nonEnumerable(AsyncIterator.prototype, 'filter');\n\n  if (STRICT) {\n    assert.throws(() => filter.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => filter.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => filter.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => filter.call(createIterator([1]), null), TypeError);\n  assert.throws(() => filter.call(createIterator([1]), {}), TypeError);\n\n  const counters = [];\n\n  return filter.call(createIterator([1, 2, 3]), it => it % 2).toArray().then(it => {\n    assert.arrayEqual(it, [1, 3], 'basic functionality');\n    return filter.call(createIterator([1, 2, 3]), (value, counter) => {\n      counters.push(counter);\n      return value;\n    }).toArray();\n  }).then(() => {\n    assert.arrayEqual(counters, [0, 1, 2], 'counter incremented');\n    return filter.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n    }).toArray();\n  }).then(() => {\n    return filter.call(createIterator([1]), () => { throw 42; }).toArray();\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.find.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\n\nQUnit.test('AsyncIterator#find', assert => {\n  const { find } = AsyncIterator.prototype;\n\n  assert.isFunction(find);\n  assert.arity(find, 1);\n  assert.name(find, 'find');\n  assert.nonEnumerable(AsyncIterator.prototype, 'find');\n\n  if (STRICT) {\n    assert.throws(() => find.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => find.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => find.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => find.call(createIterator([1]), null), TypeError);\n  assert.throws(() => find.call(createIterator([1]), {}), TypeError);\n\n  const counters = [];\n\n  return find.call(createIterator([2, 3, 4]), it => it % 2).then(result => {\n    assert.same(result, 3, 'basic functionality, +');\n    return find.call(createIterator([1, 2, 3]), it => it === 4);\n  }).then(result => {\n    assert.same(result, undefined, 'basic functionality, -');\n    return find.call(createIterator([1, 2, 3]), (value, counter) => {\n      counters.push(counter);\n      return false;\n    });\n  }).then(() => {\n    assert.arrayEqual(counters, [0, 1, 2], 'counter incremented');\n    return find.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n    });\n  }).then(() => {\n    return find.call(createIterator([1]), () => { throw 42; });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  }).then(() => {\n    return find.call(\n      createIterator([1], { return() { throw 43; } }),\n      () => { throw 42; },\n    );\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error even if return() throws');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.flat-map.js",
    "content": "import { createIterator, createIterable } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\nimport Promise from 'core-js-pure/es/promise';\nimport Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('AsyncIterator#flatMap', assert => {\n  const { flatMap } = AsyncIterator.prototype;\n\n  assert.isFunction(flatMap);\n  assert.arity(flatMap, 1);\n  assert.name(flatMap, 'flatMap');\n  assert.nonEnumerable(AsyncIterator.prototype, 'flatMap');\n\n  if (STRICT) {\n    assert.throws(() => flatMap.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => flatMap.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => flatMap.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => flatMap.call(createIterator([1]), null), TypeError);\n  assert.throws(() => flatMap.call(createIterator([1]), {}), TypeError);\n\n  return flatMap.call(createIterator([1, [], 2, createIterable([3, 4]), [5, 6]]), it => typeof it == 'number' ? [-it] : it).toArray().then(it => {\n    assert.arrayEqual(it, [-1, -2, 3, 4, 5, 6], 'basic functionality');\n    return flatMap.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n      return [arg];\n    }).toArray();\n  }).then(() => {\n    return flatMap.call(createIterator([1]), () => { throw 42; }).toArray();\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  });\n});\n\nQUnit.test('AsyncIterator#flatMap, inner iterator async close on return', assert => {\n  assert.expect(3);\n  const async = assert.async();\n\n  let innerReturnAwaited = false;\n\n  const outer = AsyncIterator.from({\n    next() {\n      return Promise.resolve({ value: [1, 2, 3], done: false });\n    },\n    return() {\n      assert.true(innerReturnAwaited, 'inner return() fully awaited before outer return()');\n      return Promise.resolve({ value: undefined, done: true });\n    },\n    [Symbol.asyncIterator]() { return this; },\n  });\n\n  const helper = outer.flatMap(arr => {\n    let i = 0;\n    return {\n      next() {\n        return Promise.resolve(i < arr.length\n          ? { value: arr[i++], done: false }\n          : { value: undefined, done: true });\n      },\n      return() {\n        assert.required('inner return() called');\n        return new Promise(resolve => {\n          setTimeout(() => {\n            innerReturnAwaited = true;\n            resolve({ value: undefined, done: true });\n          }, 50);\n        });\n      },\n      [Symbol.asyncIterator]() { return this; },\n    };\n  });\n\n  helper.next().then(first => {\n    assert.same(first.value, 1, 'got first value');\n    return helper.return();\n  }).then(() => {\n    async();\n  }, () => {\n    assert.avoid();\n    async();\n  });\n});\n\nQUnit.test('AsyncIterator#flatMap, return() validates inner return result', assert => {\n  assert.expect(1);\n  const async = assert.async();\n\n  const outer = AsyncIterator.from({\n    next() {\n      return Promise.resolve({ value: [1, 2], done: false });\n    },\n    return() {\n      return Promise.resolve({ value: undefined, done: true });\n    },\n    [Symbol.asyncIterator]() { return this; },\n  });\n\n  const helper = outer.flatMap(arr => {\n    let i = 0;\n    return {\n      next() {\n        return Promise.resolve(i < arr.length\n          ? { value: arr[i++], done: false }\n          : { value: undefined, done: true });\n      },\n      return() {\n        return null;\n      },\n      [Symbol.asyncIterator]() { return this; },\n    };\n  });\n\n  helper.next().then(() => {\n    return helper.return();\n  }).then(() => {\n    assert.avoid();\n    async();\n  }, error => {\n    assert.true(error instanceof TypeError, 'TypeError when inner return() returns non-object');\n    async();\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.for-each.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\n\nQUnit.test('AsyncIterator#forEach', assert => {\n  const { forEach } = AsyncIterator.prototype;\n\n  assert.isFunction(forEach);\n  assert.arity(forEach, 1);\n  assert.name(forEach, 'forEach');\n  assert.nonEnumerable(AsyncIterator.prototype, 'forEach');\n\n  if (STRICT) {\n    assert.throws(() => forEach.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => forEach.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => forEach.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => forEach.call(createIterator([1]), null), TypeError);\n  assert.throws(() => forEach.call(createIterator([1]), {}), TypeError);\n\n  const array = [];\n  const counters = [];\n\n  return forEach.call(createIterator([1, 2, 3]), it => array.push(it)).then(() => {\n    assert.arrayEqual(array, [1, 2, 3], 'basic functionality');\n    return forEach.call(createIterator([1, 2, 3]), (value, counter) => counters.push(counter));\n  }).then(() => {\n    assert.arrayEqual(counters, [0, 1, 2], 'counter incremented');\n    return forEach.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n    });\n  }).then(() => {\n    return forEach.call(createIterator([1]), () => { throw 42; });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  }).then(() => {\n    return forEach.call(\n      createIterator([1], { return() { throw 43; } }),\n      () => { throw 42; },\n    );\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error even if return() throws');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.from.js",
    "content": "import Promise from 'core-js-pure/es/promise';\nimport assign from 'core-js-pure/es/object/assign';\nimport create from 'core-js-pure/es/object/create';\nimport values from 'core-js-pure/es/array/values';\nimport Symbol from 'core-js-pure/es/symbol';\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\nimport Iterator from 'core-js-pure/actual/iterator';\n\nQUnit.test('AsyncIterator.from', assert => {\n  const { from } = AsyncIterator;\n\n  assert.isFunction(from);\n  assert.arity(from, 1);\n  assert.name(from, 'from');\n\n  assert.true(AsyncIterator.from(values([])) instanceof AsyncIterator, 'proxy, iterator');\n\n  assert.true(AsyncIterator.from([]) instanceof AsyncIterator, 'proxy, iterable');\n\n  const asyncIterator = assign(create(AsyncIterator.prototype), {\n    next: () => { /* empty */ },\n  });\n\n  assert.same(AsyncIterator.from(asyncIterator), asyncIterator, 'does not wrap AsyncIterator instances');\n\n  assert.throws(() => from(undefined), TypeError);\n  assert.throws(() => from(null), TypeError);\n\n  const closableIterator = {\n    closed: false,\n    [Symbol.iterator]() { return this; },\n    next() {\n      return { value: Promise.reject(42), done: false };\n    },\n    return() {\n      this.closed = true;\n      return { value: undefined, done: true };\n    },\n  };\n\n  return AsyncIterator.from([1, Promise.resolve(2), 3]).toArray().then(result => {\n    assert.arrayEqual(result, [1, 2, 3], 'unwrap promises');\n  }).then(() => {\n    return from(Iterator.from(closableIterator)).toArray();\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a `.next()` promise rejection');\n    assert.true(closableIterator.closed, 'closes sync iterator on promise rejection');\n  });\n});\n\nQUnit.test('AsyncIterator.from, sync iterator value forwarding', assert => {\n  assert.expect(5);\n  const async = assert.async();\n\n  function * gen() {\n    const x = yield 1;\n    yield x;\n  }\n\n  const asyncIter = AsyncIterator.from(gen());\n\n  asyncIter.next().then(r1 => {\n    assert.same(r1.value, 1, 'first yield value');\n    assert.false(r1.done, 'not done after first yield');\n    return asyncIter.next(42);\n  }).then(r2 => {\n    assert.same(r2.value, 42, 'next(value) forwarded to sync generator');\n    assert.false(r2.done, 'not done after second yield');\n    return asyncIter.next();\n  }).then(r3 => {\n    assert.true(r3.done, 'done after generator completes');\n    async();\n  }).catch(() => {\n    assert.avoid();\n    async();\n  });\n});\n\nQUnit.test('AsyncIterator.from, sync iterator throw forwarding', assert => {\n  assert.expect(2);\n  const async = assert.async();\n\n  function * gen() {\n    try {\n      yield 1;\n    } catch (error) {\n      yield `caught: ${ error }`;\n    }\n  }\n\n  const asyncIter = AsyncIterator.from(gen());\n\n  asyncIter.next().then(() => {\n    return asyncIter.throw('boom');\n  }).then(result => {\n    assert.same(result.value, 'caught: boom', 'throw(value) forwarded to sync generator');\n    assert.false(result.done, 'not done after catch yield');\n    async();\n  }).catch(() => {\n    assert.avoid();\n    async();\n  });\n});\n\nQUnit.test('AsyncIterator.from, throw closes iterator without throw method', assert => {\n  assert.expect(2);\n  const async = assert.async();\n\n  let closeCalled = false;\n\n  const iter = AsyncIterator.from({\n    next() { return { value: 1, done: false }; },\n    return() { closeCalled = true; return { value: undefined, done: true }; },\n    [Symbol.iterator]() { return this; },\n  });\n\n  iter.next().then(() => {\n    return iter.throw('error');\n  }).then(() => {\n    assert.avoid();\n    async();\n  }, error => {\n    assert.true(error instanceof TypeError, 'rejects with new TypeError');\n    assert.true(closeCalled, 'closes iterator when no throw method');\n    async();\n  });\n});\n\nQUnit.test('AsyncIterator.from, return(value) without iterator return method', assert => {\n  assert.expect(2);\n  const async = assert.async();\n\n  const iter = AsyncIterator.from({\n    next() { return { value: 1, done: false }; },\n    [Symbol.iterator]() { return this; },\n  });\n\n  iter.return(42).then(result => {\n    assert.same(result.value, 42, 'return(value) forwards value when no return method');\n    assert.true(result.done, 'done is true');\n    async();\n  }).catch(() => {\n    assert.avoid();\n    async();\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.indexed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nimport AsyncIterator from 'core-js-pure/full/async-iterator';\n\nQUnit.test('AsyncIterator#indexed', assert => {\n  const { indexed } = AsyncIterator.prototype;\n\n  assert.isFunction(indexed);\n  assert.arity(indexed, 0);\n  assert.name(indexed, 'indexed');\n  assert.nonEnumerable(AsyncIterator.prototype, 'indexed');\n\n  if (STRICT) {\n    assert.throws(() => indexed.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => indexed.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  return indexed.call(createIterator(['a', 'b', 'c'])).toArray().then(it => {\n    assert.same(it.toString(), '0,a,1,b,2,c', 'basic functionality');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.map.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\n\nQUnit.test('AsyncIterator#map', assert => {\n  const { map } = AsyncIterator.prototype;\n\n  assert.isFunction(map);\n  assert.arity(map, 1);\n  assert.name(map, 'map');\n  assert.nonEnumerable(AsyncIterator.prototype, 'map');\n\n  if (STRICT) {\n    assert.throws(() => map.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => map.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => map.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => map.call(createIterator([1]), null), TypeError);\n  assert.throws(() => map.call(createIterator([1]), {}), TypeError);\n\n  const counters = [];\n\n  return map.call(createIterator([1, 2, 3]), it => it ** 2).toArray().then(it => {\n    assert.arrayEqual(it, [1, 4, 9], 'basic functionality');\n    return map.call(createIterator([1, 2, 3]), (value, counter) => {\n      counters.push(counter);\n      return value;\n    }).toArray();\n  }).then(() => {\n    assert.arrayEqual(counters, [0, 1, 2], 'counter incremented');\n    return map.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n    }).toArray();\n  }).then(() => {\n    return map.call(createIterator([1]), () => { throw 42; }).toArray();\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  }).then(() => {\n    let calls = 0;\n    const iterator = createIterator([1, 2, 3], {\n      next() { calls++; throw 43; },\n    });\n    const mapped = map.call(iterator, it => it);\n    return mapped.next().then(() => {\n      assert.avoid();\n    }, error => {\n      assert.same(error, 43, 'rejection on next() sync error');\n      assert.same(calls, 1, 'next() called once');\n      return mapped.next();\n    }).then(result => {\n      assert.true(result.done, 'done after next() sync error');\n      assert.same(calls, 1, 'next() not called again after sync error');\n    });\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.reduce.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\n\nQUnit.test('AsyncIterator#reduce', assert => {\n  const { reduce } = AsyncIterator.prototype;\n\n  assert.isFunction(reduce);\n  assert.arity(reduce, 1);\n  assert.name(reduce, 'reduce');\n  assert.nonEnumerable(AsyncIterator.prototype, 'reduce');\n\n  if (STRICT) {\n    assert.throws(() => reduce.call(undefined, () => { /* empty */ }, 1), TypeError);\n    assert.throws(() => reduce.call(null, () => { /* empty */ }, 1), TypeError);\n  }\n\n  assert.throws(() => reduce.call(createIterator([1]), undefined, 1), TypeError);\n  assert.throws(() => reduce.call(createIterator([1]), null, 1), TypeError);\n  assert.throws(() => reduce.call(createIterator([1]), {}, 1), TypeError);\n\n  return reduce.call(createIterator([1, 2, 3]), (a, b) => a + b, 1).then(it => {\n    assert.same(it, 7, 'basic functionality, initial');\n    return reduce.call(createIterator([2]), function (a, b, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 3, 'arguments length');\n      assert.same(a, 1, 'argument 1');\n      assert.same(b, 2, 'argument 2');\n      assert.same(counter, 0, 'counter');\n    }, 1);\n  }).then(() => {\n    return reduce.call(createIterator([1, 2, 3]), (a, b) => a + b);\n  }).then(it => {\n    assert.same(it, 6, 'basic functionality, no initial');\n    // counter increments unconditionally, so first reducer call gets counter=1\n    const countersNoInit = [];\n    return reduce.call(createIterator([10, 20, 30]), (a, b, counter) => {\n      countersNoInit.push(counter);\n      return a + b;\n    }).then(() => {\n      assert.deepEqual(countersNoInit, [1, 2], 'counter without initial value');\n    });\n  }).then(() => {\n    return reduce.call(createIterator([]), (a, b) => a + b);\n  }).catch(() => {\n    assert.required('reduce an empty iterable with no initial');\n    return reduce.call(createIterator([1]), () => { throw 42; }, 1);\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.some.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { STRICT, STRICT_THIS } from '../helpers/constants.js';\n\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\n\nQUnit.test('AsyncIterator#some', assert => {\n  const { some } = AsyncIterator.prototype;\n\n  assert.isFunction(some);\n  assert.arity(some, 1);\n  assert.name(some, 'some');\n  assert.nonEnumerable(AsyncIterator.prototype, 'some');\n\n  if (STRICT) {\n    assert.throws(() => some.call(undefined, () => { /* empty */ }), TypeError);\n    assert.throws(() => some.call(null, () => { /* empty */ }), TypeError);\n  }\n\n  assert.throws(() => some.call(createIterator([1]), undefined), TypeError);\n  assert.throws(() => some.call(createIterator([1]), null), TypeError);\n  assert.throws(() => some.call(createIterator([1]), {}), TypeError);\n\n  const counters = [];\n\n  return some.call(createIterator([1, 2, 3]), it => it === 2).then(result => {\n    assert.true(result, 'basic functionality, +');\n    return some.call(createIterator([1, 2, 3]), it => it === 4);\n  }).then(result => {\n    assert.false(result, 'basic functionality, -');\n    return some.call(createIterator([1, 2, 3]), (value, counter) => {\n      counters.push(counter);\n      return false;\n    });\n  }).then(() => {\n    assert.arrayEqual(counters, [0, 1, 2], 'counter incremented');\n    return some.call(createIterator([1]), function (arg, counter) {\n      assert.same(this, STRICT_THIS, 'this');\n      assert.same(arguments.length, 2, 'arguments length');\n      assert.same(arg, 1, 'argument');\n      assert.same(counter, 0, 'counter');\n    });\n  }).then(() => {\n    return some.call(createIterator([1]), () => { throw 42; });\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error');\n  }).then(() => {\n    return some.call(\n      createIterator([1], { return() { throw 43; } }),\n      () => { throw 42; },\n    );\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a callback error even if return() throws');\n  }).then(() => {\n    return some.call(\n      createIterator([1, 2, 3], { return() { return 42; } }),\n      it => it === 1,\n    );\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.true(error instanceof TypeError, 'rejects when return() yields non-object on normal close');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.take.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\nimport Symbol from 'core-js-pure/es/symbol';\n\nQUnit.test('AsyncIterator#take', assert => {\n  const { take } = AsyncIterator.prototype;\n\n  assert.isFunction(take);\n  assert.arity(take, 1);\n  assert.name(take, 'take');\n  assert.nonEnumerable(AsyncIterator.prototype, 'take');\n\n  if (STRICT) {\n    assert.throws(() => take.call(undefined, 1), TypeError);\n    assert.throws(() => take.call(null, 1), TypeError);\n  }\n\n  assert.throws(() => take.call(createIterator([1, 2, 3]), -1), RangeError, 'negative');\n  assert.throws(() => take.call(createIterator([1, 2, 3]), NaN), RangeError, 'NaN');\n\n  return take.call(createIterator([1, 2, 3]), 2).toArray().then(it => {\n    assert.arrayEqual(it, [1, 2], 'basic functionality');\n    return take.call(createIterator([1, 2, 3]), 1.5).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [1], 'float');\n    return take.call(createIterator([1, 2, 3]), 4).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [1, 2, 3], 'big');\n    return take.call(createIterator([1, 2, 3]), 0).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [], 'zero');\n  });\n});\n\nQUnit.test('AsyncIterator#take, return() does not pass extra argument', assert => {\n  assert.expect(2);\n  const async = assert.async();\n\n  let returnArgs;\n  const iter = {\n    i: 0,\n    next() { return { value: ++this.i, done: false }; },\n    return(...args) { returnArgs = args; return { value: undefined, done: true }; },\n    [Symbol.iterator]() { return this; },\n  };\n\n  AsyncIterator.from(iter).take(1).toArray().then(() => {\n    assert.same(returnArgs.length, 0, 'return() called with no arguments');\n    assert.true(true, 'take completes successfully');\n    async();\n  }).catch(() => {\n    assert.avoid();\n    async();\n  });\n});\n\nQUnit.test('AsyncIterator#take, return() result validated as object', assert => {\n  assert.expect(1);\n  const async = assert.async();\n\n  const iter = {\n    i: 0,\n    next() { return { value: ++this.i, done: false }; },\n    return() { return 42; },\n    [Symbol.iterator]() { return this; },\n  };\n\n  AsyncIterator.from(iter).take(1).toArray().then(() => {\n    assert.avoid();\n    async();\n  }).catch(error => {\n    assert.true(error instanceof TypeError, 'rejects with TypeError when return() gives non-object');\n    async();\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.async-iterator.to-array.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nimport AsyncIterator from 'core-js-pure/actual/async-iterator';\n\nQUnit.test('AsyncIterator#toArray', assert => {\n  const { toArray } = AsyncIterator.prototype;\n\n  assert.isFunction(toArray);\n  assert.arity(toArray, 0);\n  assert.name(toArray, 'toArray');\n  assert.nonEnumerable(AsyncIterator.prototype, 'toArray');\n\n  if (STRICT) {\n    assert.throws(() => toArray.call(undefined), TypeError);\n    assert.throws(() => toArray.call(null), TypeError);\n  }\n\n  return toArray.call(createIterator([1, 2, 3])).then(it => {\n    assert.arrayEqual(it, [1, 2, 3]);\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.bigint.range.js",
    "content": "/* eslint-disable es/no-bigint -- safe */\nimport from from 'core-js-pure/es/array/from';\nimport range from 'core-js-pure/full/bigint/range';\n\nif (typeof BigInt == 'function') QUnit.test('BigInt.range', assert => {\n  assert.isFunction(range);\n  assert.name(range, 'range');\n  assert.arity(range, 3);\n\n  let iterator = range(BigInt(1), BigInt(2));\n\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.deepEqual(iterator.next(), {\n    value: BigInt(1),\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n\n  assert.deepEqual(from(range(BigInt(-1), BigInt(5))), [BigInt(-1), BigInt(0), BigInt(1), BigInt(2), BigInt(3), BigInt(4)]);\n  assert.deepEqual(from(range(BigInt(-5), BigInt(1))), [BigInt(-5), BigInt(-4), BigInt(-3), BigInt(-2), BigInt(-1), BigInt(0)]);\n  assert.deepEqual(\n    from(range(BigInt('9007199254740991'), BigInt('9007199254740992'), { inclusive: true })),\n    [BigInt('9007199254740991'), BigInt('9007199254740992')],\n  );\n  assert.deepEqual(from(range(BigInt(0), BigInt(0))), []);\n  assert.deepEqual(from(range(BigInt(0), BigInt(-5), BigInt(1))), []);\n\n  iterator = range(BigInt(1), BigInt(3));\n  assert.deepEqual(iterator.start, BigInt(1));\n  assert.deepEqual(iterator.end, BigInt(3));\n  assert.deepEqual(iterator.step, BigInt(1));\n  assert.false(iterator.inclusive);\n\n  iterator = range(BigInt(-1), BigInt(-3), { inclusive: true });\n  assert.deepEqual(iterator.start, BigInt(-1));\n  assert.deepEqual(iterator.end, BigInt(-3));\n  assert.same(iterator.step, BigInt(-1));\n  assert.true(iterator.inclusive);\n\n  iterator = range(BigInt(-1), BigInt(-3), { step: BigInt(4), inclusive() { /* empty */ } });\n  assert.same(iterator.start, BigInt(-1));\n  assert.same(iterator.end, BigInt(-3));\n  assert.same(iterator.step, BigInt(4));\n  assert.true(iterator.inclusive);\n\n  iterator = range(BigInt(0), BigInt(5));\n  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n  assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError);\n\n  assert.throws(() => range(Infinity, BigInt(10), BigInt(0)), TypeError);\n  assert.throws(() => range(-Infinity, BigInt(10), BigInt(0)), TypeError);\n  assert.throws(() => range(BigInt(0), BigInt(10), Infinity), TypeError);\n  assert.throws(() => range(BigInt(0), BigInt(10), { step: Infinity }), TypeError);\n\n  assert.throws(() => range({}, BigInt(1)), TypeError);\n  assert.throws(() => range(BigInt(1), {}), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.composite-key.js",
    "content": "\nimport { FREEZING } from '../helpers/constants.js';\n\nimport { getPrototypeOf, isFrozen } from 'core-js-pure/es/object';\nimport compositeKey from 'core-js-pure/full/composite-key';\n\nQUnit.test('compositeKey', assert => {\n  assert.isFunction(compositeKey);\n  if (compositeKey.name) assert.name(compositeKey, 'compositeKey');\n\n  const key = compositeKey({});\n  assert.same(typeof key, 'object');\n  assert.same({}.toString.call(key), '[object Object]');\n  assert.same(getPrototypeOf(key), null);\n  if (FREEZING) assert.true(isFrozen(key));\n\n  const a = ['a'];\n  const b = ['b'];\n  const c = ['c'];\n\n  assert.same(compositeKey(a), compositeKey(a));\n  assert.notSame(compositeKey(a), compositeKey(['a']));\n  assert.notSame(compositeKey(a), compositeKey(a, 1));\n  assert.notSame(compositeKey(a), compositeKey(a, b));\n  assert.same(compositeKey(a, 1), compositeKey(a, 1));\n  assert.same(compositeKey(a, b), compositeKey(a, b));\n  assert.notSame(compositeKey(a, b), compositeKey(b, a));\n  assert.same(compositeKey(a, b, c), compositeKey(a, b, c));\n  assert.notSame(compositeKey(a, b, c), compositeKey(c, b, a));\n  assert.notSame(compositeKey(a, b, c), compositeKey(a, c, b));\n  assert.notSame(compositeKey(a, b, c, 1), compositeKey(a, b, c));\n  assert.same(compositeKey(a, b, c, 1), compositeKey(a, b, c, 1));\n  assert.same(compositeKey(1, a), compositeKey(1, a));\n  assert.notSame(compositeKey(1, a), compositeKey(a, 1));\n  assert.same(compositeKey(1, a, 2, b), compositeKey(1, a, 2, b));\n  assert.notSame(compositeKey(1, a, 2, b), compositeKey(1, a, b, 2));\n  assert.same(compositeKey(1, 2, a, b), compositeKey(1, 2, a, b));\n  assert.notSame(compositeKey(1, 2, a, b), compositeKey(1, a, b, 2));\n  assert.same(compositeKey(a, a), compositeKey(a, a));\n  assert.notSame(compositeKey(a, a), compositeKey(a, ['a']));\n  assert.notSame(compositeKey(a, a), compositeKey(a, b));\n\n  assert.throws(() => compositeKey(), TypeError);\n  assert.throws(() => compositeKey(1, 2), TypeError);\n  assert.throws(() => compositeKey('foo', null, true), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.composite-symbol.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\nimport compositeSymbol from 'core-js-pure/full/composite-symbol';\n\nQUnit.test('compositeSymbol', assert => {\n  assert.isFunction(compositeSymbol);\n  if (compositeSymbol.name) assert.name(compositeSymbol, 'compositeSymbol');\n\n  assert.true(Object(compositeSymbol({})) instanceof Symbol);\n\n  const a = ['a'];\n  const b = ['b'];\n  const c = ['c'];\n\n  assert.same(compositeSymbol(a), compositeSymbol(a));\n  assert.notSame(compositeSymbol(a), compositeSymbol(['a']));\n  assert.notSame(compositeSymbol(a), compositeSymbol(a, 1));\n  assert.notSame(compositeSymbol(a), compositeSymbol(a, b));\n  assert.same(compositeSymbol(a, 1), compositeSymbol(a, 1));\n  assert.same(compositeSymbol(a, b), compositeSymbol(a, b));\n  assert.notSame(compositeSymbol(a, b), compositeSymbol(b, a));\n  assert.same(compositeSymbol(a, b, c), compositeSymbol(a, b, c));\n  assert.notSame(compositeSymbol(a, b, c), compositeSymbol(c, b, a));\n  assert.notSame(compositeSymbol(a, b, c), compositeSymbol(a, c, b));\n  assert.notSame(compositeSymbol(a, b, c, 1), compositeSymbol(a, b, c));\n  assert.same(compositeSymbol(a, b, c, 1), compositeSymbol(a, b, c, 1));\n  assert.same(compositeSymbol(1, a), compositeSymbol(1, a));\n  assert.notSame(compositeSymbol(1, a), compositeSymbol(a, 1));\n  assert.same(compositeSymbol(1, a, 2, b), compositeSymbol(1, a, 2, b));\n  assert.notSame(compositeSymbol(1, a, 2, b), compositeSymbol(1, a, b, 2));\n  assert.same(compositeSymbol(1, 2, a, b), compositeSymbol(1, 2, a, b));\n  assert.notSame(compositeSymbol(1, 2, a, b), compositeSymbol(1, a, b, 2));\n  assert.same(compositeSymbol(a, a), compositeSymbol(a, a));\n  assert.notSame(compositeSymbol(a, a), compositeSymbol(a, ['a']));\n  assert.notSame(compositeSymbol(a, a), compositeSymbol(a, b));\n  assert.same(compositeSymbol(), compositeSymbol());\n  assert.same(compositeSymbol(1, 2), compositeSymbol(1, 2));\n  assert.notSame(compositeSymbol(1, 2), compositeSymbol(2, 1));\n  assert.same(compositeSymbol('foo', null, true), compositeSymbol('foo', null, true));\n  assert.same(compositeSymbol('string'), Symbol.for('string'));\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.function.demethodize.js",
    "content": "import demethodize from 'core-js-pure/full/function/demethodize';\n\nQUnit.test('Function#demethodize', assert => {\n  assert.isFunction(demethodize);\n  // eslint-disable-next-line prefer-arrow-callback -- required for testing\n  assert.same(demethodize(function () { return 42; })(), 42);\n  assert.deepEqual(demethodize(Array.prototype.slice)([1, 2, 3], 1), [2, 3]);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.function.is-callable.js",
    "content": "import isCallable from 'core-js-pure/full/function/is-callable';\nimport { fromSource } from '../helpers/helpers.js';\n\nQUnit.test('Function.isCallable', assert => {\n  assert.isFunction(isCallable);\n  assert.arity(isCallable, 1);\n  assert.name(isCallable, 'isCallable');\n  assert.false(isCallable({}), 'object');\n  assert.false(isCallable(function () {\n    // eslint-disable-next-line prefer-rest-params -- required for testing\n    return arguments;\n  }()), 'arguments');\n  assert.false(isCallable([]), 'array');\n  assert.false(isCallable(/./), 'regex');\n  assert.false(isCallable(1), 'number');\n  assert.false(isCallable(true), 'boolean');\n  assert.false(isCallable('1'), 'string');\n  assert.false(isCallable(null), 'null');\n  assert.false(isCallable(), 'undefined');\n  assert.true(isCallable(Function.call), 'native function');\n  // eslint-disable-next-line prefer-arrow-callback -- required\n  assert.true(isCallable(function () { /* empty */ }), 'function');\n\n  const arrow = fromSource('it => it');\n  if (arrow) assert.true(isCallable(arrow), 'arrow');\n  const klass = fromSource('class {}');\n  // Safari 9 and Edge 13- bugs\n  if (klass && !/constructor|function/.test(klass)) assert.false(isCallable(klass), 'class');\n  const gen = fromSource('function * () {}');\n  if (gen) assert.true(isCallable(gen), 'gen');\n  const asyncFunc = fromSource('async function () {}');\n  if (asyncFunc) assert.true(isCallable(asyncFunc), 'asyncFunc');\n  const asyncGen = fromSource('async function* () {}');\n  if (asyncGen) assert.true(isCallable(asyncGen), 'asyncGen');\n  const method = fromSource('({f(){}}).f');\n  // Safari 9 bug\n  if (method && !/function/.test(method)) assert.true(isCallable(method), 'method');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.function.is-constructor.js",
    "content": "import isConstructor from 'core-js-pure/full/function/is-constructor';\nimport { fromSource } from '../helpers/helpers.js';\n\nQUnit.test('Function.isConstructor', assert => {\n  assert.isFunction(isConstructor);\n  assert.arity(isConstructor, 1);\n  assert.name(isConstructor, 'isConstructor');\n  assert.false(isConstructor({}), 'object');\n  assert.false(isConstructor(function () {\n    // eslint-disable-next-line prefer-rest-params -- required for testing\n    return arguments;\n  }()), 'arguments');\n  assert.false(isConstructor([]), 'array');\n  assert.false(isConstructor(/./), 'regex');\n  assert.false(isConstructor(1), 'number');\n  assert.false(isConstructor(true), 'boolean');\n  assert.false(isConstructor('1'), 'string');\n  assert.false(isConstructor(null), 'null');\n  assert.false(isConstructor(), 'undefined');\n  // assert.false(isConstructor(Function.call), 'native function'); // fails in some old engines\n  // eslint-disable-next-line prefer-arrow-callback -- required\n  assert.true(isConstructor(function () { /* empty */ }), 'function');\n\n  const arrow = fromSource('it => it');\n  if (arrow) assert.false(isConstructor(arrow), 'arrow');\n  const klass = fromSource('class {}');\n  // Safari 9 and Edge 13- bugs\n  if (klass && !/constructor|function/.test(klass)) assert.true(isConstructor(klass), 'class');\n  const Gen = fromSource('function * () {}');\n  // V8 ~ Chrome 49- bug\n  if (Gen) try {\n    new Gen();\n  } catch {\n    assert.false(isConstructor(Gen), 'gen');\n  }\n  const asyncFunc = fromSource('async function () {}');\n  if (asyncFunc) assert.false(isConstructor(asyncFunc), 'asyncFunc');\n  const asyncGen = fromSource('async function* () {}');\n  if (asyncGen) assert.false(isConstructor(asyncGen), 'asyncGen');\n  const method = fromSource('({f(){}}).f');\n  // Safari 9 bug\n  if (method && !/function/.test(method)) assert.false(isConstructor(method), 'method');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.function.metadata.js",
    "content": "import Symbol from 'core-js-pure/actual/symbol';\n\nQUnit.test('Function#@@metadata', assert => {\n  assert.true(Symbol.metadata in Function.prototype);\n  assert.same(Function.prototype[Symbol.metadata], null, 'is null');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.function.un-this.js",
    "content": "import unThis from 'core-js-pure/full/function/un-this';\n\nQUnit.test('Function#unThis', assert => {\n  assert.isFunction(unThis);\n  // eslint-disable-next-line prefer-arrow-callback -- required for testing\n  assert.same(unThis(function () { return 42; })(), 42);\n  assert.deepEqual(unThis(Array.prototype.slice)([1, 2, 3], 1), [2, 3]);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.iterator.as-indexed-pairs.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nimport Iterator from 'core-js-pure/full/iterator';\n\nQUnit.test('Iterator#asIndexedPairs', assert => {\n  const { asIndexedPairs } = Iterator.prototype;\n\n  assert.isFunction(asIndexedPairs);\n  assert.arity(asIndexedPairs, 0);\n  assert.nonEnumerable(Iterator.prototype, 'asIndexedPairs');\n\n  assert.arrayEqual(asIndexedPairs.call(createIterator(['a', 'b', 'c'])).toArray().toString(), '0,a,1,b,2,c', 'basic functionality');\n\n  if (STRICT) {\n    assert.throws(() => asIndexedPairs.call(undefined), TypeError);\n    assert.throws(() => asIndexedPairs.call(null), TypeError);\n  }\n\n  assert.throws(() => asIndexedPairs.call({}).next(), TypeError);\n  assert.throws(() => asIndexedPairs.call([]).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.iterator.chunks.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nimport Iterator from 'core-js-pure/full/iterator/index';\nimport from from 'core-js-pure/es/array/from';\n\nQUnit.test('Iterator#chunks', assert => {\n  const { chunks } = Iterator.prototype;\n  assert.isFunction(chunks);\n  assert.arity(chunks, 1);\n  assert.name(chunks, 'chunks');\n  assert.nonEnumerable(Iterator.prototype, 'chunks');\n\n  assert.arrayEqual(from(chunks.call(createIterator([1, 2, 3]), 2)), [[1, 2], [3]], 'basic functionality #1');\n  assert.arrayEqual(from(chunks.call(createIterator([1, 2, 3, 4]), 2)), [[1, 2], [3, 4]], 'basic functionality #2');\n  assert.arrayEqual(from(chunks.call(createIterator([]), 2)), [], 'basic functionality on empty iterable');\n\n  const it = createIterator([1, 2, 3]);\n  const result = chunks.call(it, 3);\n  assert.isIterable(result, 'returns iterable');\n  assert.isIterator(result, 'returns iterator');\n  assert.true(result instanceof Iterator, 'returns iterator');\n  assert.deepEqual(result.next(), { done: false, value: [1, 2, 3] }, '.next with active inner iterator result');\n  assert.deepEqual(result.return(), { done: true, value: undefined }, '.return with active inner iterator result');\n  assert.deepEqual(result.next(), { done: true, value: undefined }, '.next on closed iterator');\n\n  if (STRICT) {\n    assert.throws(() => chunks.call('', 1), TypeError, 'iterable non-object this');\n    assert.throws(() => chunks.call(undefined, 1), TypeError, 'non-iterable-object this #1');\n    assert.throws(() => chunks.call(null, 1), TypeError, 'non-iterable-object this #2');\n    assert.throws(() => chunks.call(5, 1), TypeError, 'non-iterable-object this #3');\n  }\n\n  assert.throws(() => chunks.call(it), RangeError, 'throws on empty argument');\n  assert.throws(() => chunks.call(it, -1), RangeError, 'throws on negative argument');\n\n  const observableReturn = {\n    return() {\n      this.called = true;\n      return { done: true, value: undefined };\n    },\n  };\n  const itObservable = createIterator([1, 2, 3], observableReturn);\n  assert.throws(() => chunks.call(itObservable, 0x100000000), RangeError, 'throws on argument more then 2^32 - 1');\n  assert.true(itObservable.called, 'iterator closed on argument validation error');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.iterator.indexed.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nimport Iterator from 'core-js-pure/full/iterator';\n\nQUnit.test('Iterator#indexed', assert => {\n  const { indexed } = Iterator.prototype;\n\n  assert.isFunction(indexed);\n  assert.name(indexed, 'indexed');\n  assert.arity(indexed, 0);\n  assert.nonEnumerable(Iterator.prototype, 'indexed');\n\n  assert.arrayEqual(indexed.call(createIterator(['a', 'b', 'c'])).toArray().toString(), '0,a,1,b,2,c', 'basic functionality');\n\n  if (STRICT) {\n    assert.throws(() => indexed.call(undefined), TypeError);\n    assert.throws(() => indexed.call(null), TypeError);\n  }\n\n  assert.throws(() => indexed.call({}).next(), TypeError);\n  assert.throws(() => indexed.call([]).next(), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.iterator.range.js",
    "content": "/* eslint-disable es/no-bigint -- safe */\nimport { MAX_SAFE_INTEGER } from '../helpers/constants.js';\nimport from from 'core-js-pure/es/array/from';\nimport range from 'core-js-pure/full/iterator/range';\n\nQUnit.test('Iterator.range', assert => {\n  assert.isFunction(range);\n  assert.name(range, 'range');\n  assert.arity(range, 3);\n\n  let iterator = range(1, 2);\n\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.deepEqual(iterator.next(), {\n    value: 1,\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n\n  assert.deepEqual(from(range(-1, 5)), [-1, 0, 1, 2, 3, 4]);\n  assert.deepEqual(from(range(-5, 1)), [-5, -4, -3, -2, -1, 0]);\n  assert.deepEqual(\n    from(range(0, 1, 0.1)),\n    [0, 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6000000000000001, 0.7000000000000001, 0.8, 0.9],\n  );\n  assert.deepEqual(\n    from(range(MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1, { inclusive: true })),\n    [MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1],\n  );\n  assert.deepEqual(from(range(0, 0)), []);\n  assert.deepEqual(from(range(0, 0, { step: 1, inclusive: true })), []);\n  assert.deepEqual(from(range(0, 0, -1)), [], 'start === end with negative step yields nothing');\n  assert.deepEqual(from(range(0, 0, { step: -1, inclusive: true })), [0], 'start === end with negative step inclusive yields start');\n  assert.deepEqual(from(range(0, -5, 1)), []);\n\n  assert.throws(() => range(NaN, 0), RangeError, 'NaN as start');\n  assert.throws(() => range(0, NaN), RangeError, 'NaN as end');\n  assert.throws(() => range(NaN, NaN), RangeError, 'NaN as start and end');\n  assert.throws(() => range(0, 0, { step: NaN }), RangeError, 'NaN as step option');\n  assert.throws(() => range(0, 5, NaN), RangeError, 'NaN as step argument');\n\n  iterator = range(1, 3);\n  assert.deepEqual(iterator.start, 1);\n  assert.deepEqual(iterator.end, 3);\n  assert.deepEqual(iterator.step, 1);\n  assert.false(iterator.inclusive);\n\n  iterator = range(-1, -3, { inclusive: true });\n  assert.deepEqual(iterator.start, -1);\n  assert.deepEqual(iterator.end, -3);\n  assert.same(iterator.step, -1);\n  assert.true(iterator.inclusive);\n\n  iterator = range(0, 5, null);\n  assert.same(iterator.start, 0, 'null option: start');\n  assert.same(iterator.end, 5, 'null option: end');\n  assert.same(iterator.step, 1, 'null option: step defaults to 1');\n  assert.false(iterator.inclusive, 'null option: inclusive defaults to false');\n\n  iterator = range(-1, -3, { step: 4, inclusive() { /* empty */ } });\n  assert.same(iterator.start, -1);\n  assert.same(iterator.end, -3);\n  assert.same(iterator.step, 4);\n  assert.true(iterator.inclusive);\n\n  iterator = range(0, 5);\n  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n  assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError);\n\n  assert.throws(() => range(Infinity, 10, 0), RangeError);\n  assert.throws(() => range(-Infinity, 10, 0), RangeError);\n  assert.throws(() => range(0, 10, Infinity), RangeError);\n  assert.throws(() => range(0, 10, { step: Infinity }), RangeError);\n\n  assert.throws(() => range({}, 1), TypeError);\n  assert.throws(() => range(1, {}), TypeError);\n  assert.throws(() => range('1', 2), TypeError);\n  assert.throws(() => range({ valueOf() { return 1; } }, 2), TypeError);\n\n  if (typeof BigInt == 'function') {\n    iterator = range(BigInt(1), BigInt(2));\n\n    assert.isIterator(iterator);\n    assert.isIterable(iterator);\n    assert.deepEqual(iterator.next(), {\n      value: BigInt(1),\n      done: false,\n    });\n    assert.deepEqual(iterator.next(), {\n      value: undefined,\n      done: true,\n    });\n\n    assert.deepEqual(from(range(BigInt(-1), BigInt(5))), [BigInt(-1), BigInt(0), BigInt(1), BigInt(2), BigInt(3), BigInt(4)]);\n    assert.deepEqual(from(range(BigInt(-5), BigInt(1))), [BigInt(-5), BigInt(-4), BigInt(-3), BigInt(-2), BigInt(-1), BigInt(0)]);\n    assert.deepEqual(\n      from(range(BigInt('9007199254740991'), BigInt('9007199254740992'), { inclusive: true })),\n      [BigInt('9007199254740991'), BigInt('9007199254740992')],\n    );\n    assert.deepEqual(from(range(BigInt(0), BigInt(0))), []);\n    assert.deepEqual(from(range(BigInt(0), BigInt(0), { step: BigInt(1), inclusive: true })), []);\n    assert.deepEqual(from(range(BigInt(0), BigInt(0), BigInt(-1))), [], 'BigInt: start === end with negative step yields nothing');\n    assert.deepEqual(from(range(BigInt(0), BigInt(0), { step: BigInt(-1), inclusive: true })), [BigInt(0)], 'BigInt: start === end with negative step inclusive yields start');\n    assert.deepEqual(from(range(BigInt(0), BigInt(-5), BigInt(1))), []);\n\n    iterator = range(BigInt(1), BigInt(3));\n    assert.deepEqual(iterator.start, BigInt(1));\n    assert.deepEqual(iterator.end, BigInt(3));\n    assert.deepEqual(iterator.step, BigInt(1));\n    assert.false(iterator.inclusive);\n\n    iterator = range(BigInt(-1), BigInt(-3), { inclusive: true });\n    assert.deepEqual(iterator.start, BigInt(-1));\n    assert.deepEqual(iterator.end, BigInt(-3));\n    assert.same(iterator.step, BigInt(-1));\n    assert.true(iterator.inclusive);\n\n    iterator = range(BigInt(-1), BigInt(-3), { step: BigInt(4), inclusive() { /* empty */ } });\n    assert.same(iterator.start, BigInt(-1));\n    assert.same(iterator.end, BigInt(-3));\n    assert.same(iterator.step, BigInt(4));\n    assert.true(iterator.inclusive);\n\n    iterator = range(BigInt(0), BigInt(5));\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError);\n\n    assert.throws(() => range(Infinity, BigInt(10), BigInt(0)), TypeError);\n    assert.throws(() => range(-Infinity, BigInt(10), BigInt(0)), TypeError);\n    assert.throws(() => range(BigInt(0), BigInt(10), Infinity), TypeError);\n    assert.throws(() => range(BigInt(0), BigInt(10), { step: Infinity }), TypeError);\n\n    assert.throws(() => range({}, BigInt(1)), TypeError);\n    assert.throws(() => range(BigInt(1), {}), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.iterator.sliding.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nimport Iterator from 'core-js-pure/full/iterator/index';\nimport from from 'core-js-pure/es/array/from';\n\nQUnit.test('Iterator#sliding', assert => {\n  const { sliding } = Iterator.prototype;\n  assert.isFunction(sliding);\n  assert.arity(sliding, 1);\n  assert.name(sliding, 'sliding');\n  assert.nonEnumerable(Iterator.prototype, 'sliding');\n\n  assert.arrayEqual(from(sliding.call(createIterator([1, 2, 3]), 2)), [[1, 2], [2, 3]], 'basic functionality #1');\n  assert.arrayEqual(from(sliding.call(createIterator([1, 2, 3, 4]), 2)), [[1, 2], [2, 3], [3, 4]], 'basic functionality #2');\n  assert.arrayEqual(from(sliding.call(createIterator([1, 2]), 3)), [[1, 2]], 'basic functionality #3');\n  assert.arrayEqual(from(sliding.call(createIterator([]), 2)), [], 'basic functionality on empty iterable');\n\n  const it = createIterator([1, 2, 3]);\n  const result = sliding.call(it, 3);\n  assert.isIterable(result, 'returns iterable');\n  assert.isIterator(result, 'returns iterator');\n  assert.true(result instanceof Iterator, 'returns iterator');\n  assert.deepEqual(result.next(), { done: false, value: [1, 2, 3] }, '.next with active inner iterator result');\n  assert.deepEqual(result.return(), { done: true, value: undefined }, '.return with active inner iterator result');\n  assert.deepEqual(result.next(), { done: true, value: undefined }, '.next on closed iterator');\n\n  if (STRICT) {\n    assert.throws(() => sliding.call('', 1), TypeError, 'iterable non-object this');\n    assert.throws(() => sliding.call(undefined, 1), TypeError, 'non-iterable-object this #1');\n    assert.throws(() => sliding.call(null, 1), TypeError, 'non-iterable-object this #2');\n    assert.throws(() => sliding.call(5, 1), TypeError, 'non-iterable-object this #3');\n  }\n\n  assert.throws(() => sliding.call(it), RangeError, 'throws on empty argument');\n  assert.throws(() => sliding.call(it, -1), RangeError, 'throws on negative argument');\n\n  const observableReturn = {\n    return() {\n      this.called = true;\n      return { done: true, value: undefined };\n    },\n  };\n  const itObservable = createIterator([1, 2, 3], observableReturn);\n  assert.throws(() => sliding.call(itObservable, 0x100000000), RangeError, 'throws on argument more then 2^32 - 1');\n  assert.true(itObservable.called, 'iterator closed on argument validation error');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.iterator.to-async.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Promise from 'core-js-pure/es/promise';\nimport Set from 'core-js-pure/es/set';\nimport ITERATOR from 'core-js-pure/es/symbol/iterator';\nimport Iterator from 'core-js-pure/actual/iterator';\nimport 'core-js-pure/actual/async-iterator';\n\nQUnit.test('Iterator#toAsync', assert => {\n  const { toAsync } = Iterator.prototype;\n\n  assert.isFunction(toAsync);\n  assert.arity(toAsync, 0);\n  assert.name(toAsync, 'toAsync');\n\n  if (STRICT) {\n    assert.throws(() => toAsync.call(undefined), TypeError);\n    assert.throws(() => toAsync.call(null), TypeError);\n  }\n\n  const closableIterator = {\n    closed: false,\n    [ITERATOR]() { return this; },\n    next() {\n      return { value: Promise.reject(42), done: false };\n    },\n    return() {\n      this.closed = true;\n      return { value: undefined, done: true };\n    },\n  };\n\n  return Iterator.from([1, 2, 3]).toAsync().map(it => Promise.resolve(it)).toArray().then(it => {\n    assert.arrayEqual(it, [1, 2, 3]);\n    return Iterator.from(new Set([1, 2, 3])).toAsync().map(el => Promise.resolve(el)).toArray();\n  }).then(it => {\n    assert.arrayEqual(it, [1, 2, 3]);\n  }).then(() => {\n    return Iterator.from(closableIterator).toAsync().toArray();\n  }).then(() => {\n    assert.avoid();\n  }, error => {\n    assert.same(error, 42, 'rejection on a `.next()` promise rejection');\n    assert.true(closableIterator.closed, 'closes sync iterator on promise rejection');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.iterator.windows.js",
    "content": "import { STRICT } from '../helpers/constants.js';\nimport { createIterator } from '../helpers/helpers.js';\n\nimport Iterator from 'core-js-pure/full/iterator/index';\nimport from from 'core-js-pure/es/array/from';\n\nQUnit.test('Iterator#windows', assert => {\n  const { windows } = Iterator.prototype;\n  assert.isFunction(windows);\n  assert.arity(windows, 1);\n  assert.name(windows, 'windows');\n  assert.nonEnumerable(Iterator.prototype, 'windows');\n\n  assert.arrayEqual(from(windows.call(createIterator([1, 2, 3]), 2)), [[1, 2], [2, 3]], 'basic functionality #1');\n  assert.arrayEqual(from(windows.call(createIterator([1, 2, 3, 4]), 2)), [[1, 2], [2, 3], [3, 4]], 'basic functionality #2');\n  assert.arrayEqual(from(windows.call(createIterator([1, 2]), 3)), [], 'basic functionality #3');\n  assert.arrayEqual(from(windows.call(createIterator([]), 2)), [], 'basic functionality on empty iterable');\n\n  assert.arrayEqual(from(windows.call(createIterator([1, 2]), 3, 'only-full')), [], 'undersized #1');\n  assert.arrayEqual(from(windows.call(createIterator([1, 2]), 3, 'allow-partial')), [[1, 2]], 'undersized #2');\n\n  const it = createIterator([1, 2, 3]);\n  const result = windows.call(it, 3);\n  assert.isIterable(result, 'returns iterable');\n  assert.isIterator(result, 'returns iterator');\n  assert.true(result instanceof Iterator, 'returns iterator');\n  assert.deepEqual(result.next(), { done: false, value: [1, 2, 3] }, '.next with active inner iterator result');\n  assert.deepEqual(result.return(), { done: true, value: undefined }, '.return with active inner iterator result');\n  assert.deepEqual(result.next(), { done: true, value: undefined }, '.next on closed iterator');\n\n  if (STRICT) {\n    assert.throws(() => windows.call('', 1), TypeError, 'iterable non-object this');\n    assert.throws(() => windows.call(undefined, 1), TypeError, 'non-iterable-object this #1');\n    assert.throws(() => windows.call(null, 1), TypeError, 'non-iterable-object this #2');\n    assert.throws(() => windows.call(5, 1), TypeError, 'non-iterable-object this #3');\n  }\n\n  assert.throws(() => windows.call(it), RangeError, 'throws on empty argument');\n  assert.throws(() => windows.call(it, -1), RangeError, 'throws on negative argument');\n\n  const observableReturn = {\n    return() {\n      this.called = true;\n      return { done: true, value: undefined };\n    },\n  };\n  const itObservable = createIterator([1, 2, 3], observableReturn);\n  assert.throws(() => windows.call(itObservable, 0x100000000), RangeError, 'throws on argument more then 2^32 - 1');\n  assert.true(itObservable.called, 'iterator closed on argument validation error');\n\n  assert.throws(() => windows.call(createIterator([1]), 2, null), TypeError, 'incorrect `undersized` argument #1');\n  assert.throws(() => windows.call(createIterator([1]), 2, 'allowpartial'), TypeError, 'incorrect `undersized` argument #2');\n\n  // windows should return independent copies (not the same buffer)\n  {\n    const iter = windows.call(createIterator([1, 2, 3, 4, 5]), 3);\n    const w1 = iter.next().value;\n    assert.deepEqual(w1, [1, 2, 3], 'window 1');\n    w1[1] = 99;\n    const w2 = iter.next().value;\n    assert.deepEqual(w2, [2, 3, 4], 'window 2 not affected by mutation of window 1');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.iterator.zip-keyed.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\nimport { DESCRIPTORS } from '../helpers/constants.js';\n\nimport defineProperty from 'core-js-pure/actual/object/define-property';\nimport from from 'core-js-pure/es/array/from';\nimport assign from 'core-js-pure/es/object/assign';\nimport create from 'core-js-pure/es/object/create';\nimport Symbol from 'core-js-pure/es/symbol';\nimport Iterator from 'core-js-pure/es/iterator';\nimport zipKeyed from 'core-js-pure/actual/iterator/zip-keyed';\n\nfunction nullProto(obj) {\n  return assign(create(null), obj);\n}\n\nQUnit.test('Iterator.zipKeyed', assert => {\n  assert.isFunction(zipKeyed);\n  assert.arity(zipKeyed, 1);\n  assert.name(zipKeyed, 'zipKeyed');\n\n  let result = zipKeyed({ a: [0, 1, 2], b: [3, 4, 5], c: [7, 8, 9] });\n  assert.true(result instanceof Iterator, 'Iterator instance');\n  assert.deepEqual(from(result), [{ a: 0, b: 3, c: 7 }, { a: 1, b: 4, c: 8 }, { a: 2, b: 5, c: 9 }]);\n  result = zipKeyed({ a: [0, 1, 2], b: [3, 4, 5, 6], c: [7, 8, 9] });\n  assert.deepEqual(from(result), [{ a: 0, b: 3, c: 7 }, { a: 1, b: 4, c: 8 }, { a: 2, b: 5, c: 9 }]);\n  result = zipKeyed({ a: [0, 1, 2], b: [3, 4, 5, 6], c: [7, 8, 9] }, { mode: 'longest', padding: { c: 10 } });\n  assert.deepEqual(from(result), [{ a: 0, b: 3, c: 7 }, { a: 1, b: 4, c: 8 }, { a: 2, b: 5, c: 9 }, { a: undefined, b: 6, c: 10 }]);\n  result = zipKeyed({ a: [0, 1, 2], b: [3, 4, 5, 6], c: [7, 8, 9] }, { mode: 'strict' });\n  assert.throws(() => from(result), TypeError);\n\n  if (DESCRIPTORS) {\n    let obj = {};\n    defineProperty(obj, 'a', { get: () => [0, 1, 2], enumerable: true });\n    defineProperty(obj, 'b', { get: () => [3, 4, 5], enumerable: true });\n    defineProperty(obj, 'c', { get: () => [7, 8, 9], enumerable: true });\n    defineProperty(obj, Symbol('d'), { get: () => [10, 11, 12] });\n    assert.deepEqual(from(zipKeyed(obj)), [{ a: 0, b: 3, c: 7 }, { a: 1, b: 4, c: 8 }, { a: 2, b: 5, c: 9 }]);\n\n    const it = createIterator([1, 2], {\n      return() {\n        this.called = true;\n        return { done: true, value: undefined };\n      },\n    });\n    obj = { a: it };\n    defineProperty(obj, 'b', { get: () => { throw new Error(); }, enumerable: true });\n    assert.throws(() => from(zipKeyed(obj)), Error);\n    assert.true(it.called, 'iterator return called');\n\n    const foo = Symbol('foo');\n    const bar = Symbol('bar');\n    const zipped = zipKeyed({ [foo]: [1, 2, 3], [bar]: [4, 5, 6], baz: [7, 8, 9] });\n    result = from(zipped);\n    assert.same(result[0][foo], 1);\n    assert.same(result[0][bar], 4);\n    assert.same(result[0].baz, 7);\n\n    assert.same(result[1][foo], 2);\n    assert.same(result[1][bar], 5);\n    assert.same(result[1].baz, 8);\n\n    assert.same(result[2][foo], 3);\n    assert.same(result[2][bar], 6);\n    assert.same(result[2].baz, 9);\n  }\n\n  {\n    const $result = zipKeyed({\n      a: [0, 1, 2],\n      b: [3, 4, 5, 6, 7],\n      c: [8, 9],\n    }, {\n      mode: 'longest',\n    });\n\n    assert.deepEqual(from($result), [\n      nullProto({ a: 0, b: 3, c: 8 }),\n      nullProto({ a: 1, b: 4, c: 9 }),\n      nullProto({ a: 2, b: 5, c: undefined }),\n      nullProto({ a: undefined, b: 6, c: undefined }),\n      nullProto({ a: undefined, b: 7, c: undefined }),\n    ]);\n  }\n\n  {\n    const $result = zipKeyed({\n      a: [0, 1, 2],\n      b: [3, 4, 5, 6, 7],\n      c: [8, 9],\n    }, {\n      mode: 'longest',\n      padding: { a: 'A', b: 'B', c: 'C' },\n    });\n\n    assert.deepEqual(from($result), [\n      nullProto({ a: 0, b: 3, c: 8 }),\n      nullProto({ a: 1, b: 4, c: 9 }),\n      nullProto({ a: 2, b: 5, c: 'C' }),\n      nullProto({ a: 'A', b: 6, c: 'C' }),\n      nullProto({ a: 'A', b: 7, c: 'C' }),\n    ]);\n  }\n\n  assert.throws(() => zipKeyed({ a: [1, 2], b: 'hello' }), TypeError, 'rejects string iterables');\n  assert.throws(() => zipKeyed({ a: [1, 2], b: 42 }), TypeError, 'rejects number iterables');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.iterator.zip.js",
    "content": "import { createIterator } from '../helpers/helpers.js';\n\nimport from from 'core-js-pure/es/array/from';\nimport Iterator from 'core-js-pure/es/iterator';\nimport Symbol from 'core-js-pure/es/symbol';\nimport zip from 'core-js-pure/actual/iterator/zip';\n\nQUnit.test('Iterator.zip', assert => {\n  assert.isFunction(zip);\n  assert.arity(zip, 1);\n  assert.name(zip, 'zip');\n\n  let result = zip([[1, 2, 3], [4, 5, 6]]);\n  assert.true(result instanceof Iterator, 'Iterator instance');\n  assert.deepEqual(from(result), [[1, 4], [2, 5], [3, 6]]);\n  result = zip([[1, 2, 3], [4, 5, 6, 7]]);\n  assert.deepEqual(from(result), [[1, 4], [2, 5], [3, 6]]);\n  result = zip([[1, 2, 3], [4, 5, 6, 7]], { mode: 'longest', padding: [9] });\n  assert.deepEqual(from(result), [[1, 4], [2, 5], [3, 6], [9, 7]]);\n  result = zip([[1, 2, 3, 4], [5, 6, 7]], { mode: 'longest', padding: [1, 9] });\n  assert.deepEqual(from(result), [[1, 5], [2, 6], [3, 7], [4, 9]]);\n  result = zip([[1, 2, 3], [4, 5, 6], [7, 8, 9]], { mode: 'strict' });\n  assert.deepEqual(from(result), [[1, 4, 7], [2, 5, 8], [3, 6, 9]]);\n  result = zip([[1, 2, 3], [4, 5, 6, 7]], { mode: 'strict' });\n  assert.throws(() => from(result), TypeError);\n\n  const observableReturn = {\n    return() {\n      this.called = true;\n      return { done: true, value: undefined };\n    },\n  };\n\n  {\n    const it1 = createIterator([1, 2], observableReturn);\n    const it2 = createIterator([3, 4], observableReturn);\n    result = zip([it1, it2]);\n    assert.deepEqual(result.next().value, [1, 3]);\n    assert.deepEqual(result.return(), { done: true, value: undefined });\n    assert.deepEqual(result.next(), { done: true, value: undefined });\n    assert.true(it1.called, 'first iterator return called');\n    assert.true(it2.called, 'second iterator return called');\n  }\n\n  {\n    const it = createIterator([1, 2, 3], observableReturn);\n    result = zip([it, [4, 5]], { mode: 'strict' });\n    assert.throws(() => from(result), TypeError);\n    assert.true(it.called, 'iterator return called #1');\n  }\n\n  {\n    const it = createIterator([3, 4, 5], observableReturn);\n    result = zip([[1, 2], it], { mode: 'strict' });\n    assert.throws(() => from(result), TypeError);\n    assert.true(it.called, 'iterator return called #2');\n  }\n\n  {\n    const it1 = createIterator([1, 2], { next() { throw new Error(); } });\n    const it2 = createIterator([3, 4], observableReturn);\n    result = zip([it1, it2]);\n    assert.throws(() => from(result), Error);\n    assert.true(it2.called, 'iterator return called #4');\n  }\n\n  {\n    const expectedError = new TypeError('strict next error');\n    let it2calls = 0;\n    const it2 = createIterator([2], {\n      next() {\n        if (it2calls++) throw expectedError;\n        return { value: 2, done: false };\n      },\n    });\n    result = zip([createIterator([1]), it2], { mode: 'strict' });\n    result.next();\n    let caught;\n    try {\n      result.next();\n    } catch (error) {\n      caught = error;\n    }\n    assert.same(caught, expectedError, 'strict mode propagates error from .next() during exhaustion check');\n  }\n\n  {\n    const $result = zip([\n      [0, 1, 2],\n      [3, 4, 5, 6, 7],\n      [8, 9],\n    ], {\n      mode: 'longest',\n    });\n\n    assert.deepEqual(from($result), [\n      [0, 3, 8],\n      [1, 4, 9],\n      [2, 5, undefined],\n      [undefined, 6, undefined],\n      [undefined, 7, undefined],\n    ]);\n  }\n\n  {\n    const $result = zip([\n      [0, 1, 2],\n      [3, 4, 5, 6, 7],\n      [8, 9],\n    ], {\n      mode: 'longest',\n      padding: ['A', 'B', 'C'],\n    });\n\n    assert.deepEqual(from($result), [\n      [0, 3, 8],\n      [1, 4, 9],\n      [2, 5, 'C'],\n      ['A', 6, 'C'],\n      ['A', 7, 'C'],\n    ]);\n  }\n\n  {\n    const expectedError = new TypeError('not iterable');\n    const badIterable = { [Symbol.iterator]() { throw expectedError; } };\n    const it1 = createIterator([1, 2], observableReturn);\n    let caught;\n    try {\n      zip([it1, badIterable]);\n    } catch (error) {\n      caught = error;\n    }\n    assert.same(caught, expectedError, 'original error is preserved');\n    assert.true(it1.called, 'first iterator return called on non-iterable second element');\n  }\n\n  {\n    const expectedError = new TypeError('inner return error');\n    const throwingReturn = {\n      return() {\n        throw expectedError;\n      },\n    };\n    const it1 = createIterator([1, 2], throwingReturn);\n    const it2 = createIterator([3, 4], observableReturn);\n    result = zip([it1, it2]);\n    result.next();\n    let caught;\n    try {\n      result.return();\n    } catch (error) {\n      caught = error;\n    }\n    assert.same(caught, expectedError, 'propagates the original error from inner return()');\n  }\n\n  assert.throws(() => zip(['hello', [1, 2, 3]]), TypeError, 'rejects string iterables');\n  assert.throws(() => zip([42, [1, 2, 3]]), TypeError, 'rejects number iterables');\n  {\n    // iterator-zip: .next() result must be validated as an object\n    const primitiveNextIter = {\n      [Symbol.iterator]() {\n        return { next() { return 42; } };\n      },\n    };\n    const normalIter = [1, 2, 3];\n    const zipped = zip([primitiveNextIter, normalIter]);\n    assert.throws(() => zipped.next(), TypeError, 'throws on non-object .next() result');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.delete-all.js",
    "content": "import from from 'core-js-pure/es/array/from';\nimport Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#deleteAll', assert => {\n  const { deleteAll } = Map.prototype;\n\n  assert.isFunction(deleteAll);\n  assert.name(deleteAll, 'deleteAll');\n  assert.arity(deleteAll, 0);\n  assert.nonEnumerable(Map.prototype, 'deleteAll');\n\n  let map = new Map([[1, 2], [2, 3], [3, 4]]);\n  assert.true(map.deleteAll(1, 2));\n  assert.deepEqual(from(map), [[3, 4]]);\n\n  map = new Map([[1, 2], [2, 3], [3, 4]]);\n  assert.false(map.deleteAll(3, 4));\n  assert.deepEqual(from(map), [[1, 2], [2, 3]]);\n\n  map = new Map([[1, 2], [2, 3], [3, 4]]);\n  assert.false(map.deleteAll(4, 5));\n  assert.deepEqual(from(map), [[1, 2], [2, 3], [3, 4]]);\n\n  map = new Map([[1, 2], [2, 3], [3, 4]]);\n  assert.true(map.deleteAll());\n  assert.deepEqual(from(map), [[1, 2], [2, 3], [3, 4]]);\n\n  assert.throws(() => deleteAll.call({ delete() { /* empty */ } }, 1, 2, 3));\n  assert.throws(() => deleteAll.call({}, 1, 2, 3), TypeError);\n  assert.throws(() => deleteAll.call(undefined, 1, 2, 3), TypeError);\n  assert.throws(() => deleteAll.call(null, 1, 2, 3), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.emplace.js",
    "content": "import Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#emplace', assert => {\n  const { emplace } = Map.prototype;\n  assert.isFunction(emplace);\n  assert.arity(emplace, 2);\n  assert.name(emplace, 'emplace');\n  assert.nonEnumerable(Map.prototype, 'emplace');\n\n  const map = new Map([['a', 2]]);\n  let handler = {\n    update(value, key, that) {\n      assert.same(this, handler, 'correct handler in callback');\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 2, 'correct value in callback');\n      assert.same(key, 'a', 'correct key in callback');\n      assert.same(that, map, 'correct map in callback');\n      return value ** 2;\n    },\n    insert() {\n      assert.avoid();\n    },\n  };\n  assert.same(map.emplace('a', handler), 4, 'returns a correct value');\n  handler = {\n    update() {\n      assert.avoid();\n    },\n    insert(key, that) {\n      assert.same(this, handler, 'correct handler in callback');\n      assert.same(arguments.length, 2, 'correct number of callback arguments');\n      assert.same(key, 'b', 'correct key in callback');\n      assert.same(that, map, 'correct map in callback');\n      return 3;\n    },\n  };\n  assert.same(map.emplace('b', handler), 3, 'returns a correct value');\n  assert.same(map.size, 2, 'correct size');\n  assert.same(map.get('a'), 4, 'correct result #1');\n  assert.same(map.get('b'), 3, 'correct result #2');\n\n  assert.same(new Map([['a', 2]]).emplace('b', { insert: () => 3 }), 3);\n  assert.same(new Map([['a', 2]]).emplace('a', { update: value => value ** 2 }), 4);\n\n  handler = { update() { /* empty */ }, insert() { /* empty */ } };\n  assert.throws(() => new Map().emplace('a'), TypeError);\n  assert.throws(() => emplace.call({}, 'a', handler), TypeError);\n  assert.throws(() => emplace.call([], 'a', handler), TypeError);\n  assert.throws(() => emplace.call(undefined, 'a', handler), TypeError);\n  assert.throws(() => emplace.call(null, 'a', handler), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.every.js",
    "content": "import Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#every', assert => {\n  const { every } = Map.prototype;\n  assert.isFunction(every);\n  assert.arity(every, 1);\n  assert.name(every, 'every');\n  assert.nonEnumerable(Map.prototype, 'every');\n\n  let map = new Map([[9, 1]]);\n  const context = {};\n  map.every(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 9, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  map = new Map([[0, 1], [1, 2], [2, 3]]);\n  assert.true(map.every(it => typeof it == 'number'));\n  assert.true(map.every(it => it < 4));\n  assert.false(map.every(it => it < 3));\n  assert.false(map.every(it => typeof it == 'string'));\n  assert.true(map.every(function () {\n    return +this === 1;\n  }, 1));\n  let result = '';\n  map.every((value, key) => result += key);\n  assert.same(result, '012');\n  assert.true(map.every((value, key, that) => that === map));\n\n  assert.throws(() => every.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.filter.js",
    "content": "import from from 'core-js-pure/es/array/from';\nimport Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#filter', assert => {\n  const { filter } = Map.prototype;\n\n  assert.isFunction(filter);\n  assert.arity(filter, 1);\n  assert.name(filter, 'filter');\n  assert.nonEnumerable(Map.prototype, 'filter');\n\n  const map = new Map([[1, 2]]);\n  const context = {};\n  map.filter(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.deepEqual(from(new Map([\n    ['a', 1],\n    [1, 2],\n    ['b', 3],\n    [2, 'q'],\n    ['c', {}],\n    [3, 4],\n    ['d', true],\n    [4, 5],\n  ]).filter(it => typeof it == 'number')), [\n    ['a', 1],\n    [1, 2],\n    ['b', 3],\n    [3, 4],\n    [4, 5],\n  ]);\n\n  assert.true(new Map().filter(it => it) instanceof Map);\n\n  assert.throws(() => filter.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => filter.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => filter.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.find-key.js",
    "content": "import Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#findKey', assert => {\n  const { findKey } = Map.prototype;\n\n  assert.isFunction(findKey);\n  assert.name(findKey, 'findKey');\n  assert.arity(findKey, 1);\n  assert.nonEnumerable(Map.prototype, 'findKey');\n\n  const map = new Map([[1, 2]]);\n  const context = {};\n  map.findKey(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.same(new Map([[1, 2], [2, 3], [3, 4]]).findKey(it => it % 2), 2);\n  assert.same(new Map().findKey(it => it === 42), undefined);\n\n  assert.throws(() => findKey.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => findKey.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => findKey.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.find.js",
    "content": "import Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#find', assert => {\n  const { find } = Map.prototype;\n\n  assert.isFunction(find);\n  assert.name(find, 'find');\n  assert.arity(find, 1);\n  assert.nonEnumerable(Map.prototype, 'find');\n\n  const map = new Map([[1, 2]]);\n  const context = {};\n  map.find(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.same(new Map([[1, 2], [2, 3], [3, 4]]).find(it => it % 2), 3);\n  assert.same(new Map().find(it => it === 42), undefined);\n\n  assert.throws(() => find.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.from.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport toArray from 'core-js-pure/es/array/from';\nimport Map from 'core-js-pure/full/map';\n\nQUnit.test('Map.from', assert => {\n  const { from } = Map;\n  assert.isFunction(from);\n  assert.name(from, 'from');\n  assert.arity(from, 1);\n  assert.true(from([]) instanceof Map);\n  assert.deepEqual(toArray(from([])), []);\n  assert.deepEqual(toArray(from([[1, 2]])), [[1, 2]]);\n  assert.deepEqual(toArray(from([[1, 2], [2, 3], [1, 4]])), [[1, 4], [2, 3]]);\n  assert.deepEqual(toArray(from(createIterable([[1, 2], [2, 3], [1, 4]]))), [[1, 4], [2, 3]]);\n  const pair = [1, 2];\n  const context = {};\n  from([pair], function (element, index) {\n    assert.same(element, pair);\n    assert.same(index, 0);\n    assert.same(this, context);\n    return element;\n  }, context);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.includes.js",
    "content": "import Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#includes', assert => {\n  const { includes } = Map.prototype;\n  assert.isFunction(includes);\n  assert.name(includes, 'includes');\n  assert.arity(includes, 1);\n  assert.nonEnumerable(Map.prototype, 'includes');\n\n  const object = {};\n  const map = new Map([[1, 1], [2, 2], [3, 3], [4, -0], [5, object], [6, NaN]]);\n  assert.true(map.includes(1));\n  assert.true(map.includes(-0));\n  assert.true(map.includes(0));\n  assert.true(map.includes(object));\n  assert.false(map.includes(4));\n  assert.false(map.includes(-0.5));\n  assert.false(map.includes({}));\n  assert.true(map.includes(NaN));\n\n  assert.throws(() => includes.call({}, 1), TypeError);\n  assert.throws(() => includes.call(undefined, 1), TypeError);\n  assert.throws(() => includes.call(null, 1), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.key-by.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport from from 'core-js-pure/es/array/from';\nimport Map from 'core-js-pure/full/map';\n\nQUnit.test('Map.keyBy', assert => {\n  const { keyBy } = Map;\n\n  assert.isFunction(keyBy);\n  assert.arity(keyBy, 2);\n  assert.name(keyBy, 'keyBy');\n\n  assert.true(Map.keyBy([], it => it) instanceof Map);\n\n  assert.deepEqual(from(Map.keyBy([], it => it)), []);\n  assert.deepEqual(from(Map.keyBy([1, 2], it => it ** 2)), [[1, 1], [4, 2]]);\n  assert.deepEqual(from(Map.keyBy([1, 2, 1], it => it ** 2)), [[1, 1], [4, 2]]);\n  assert.deepEqual(from(Map.keyBy(createIterable([1, 2]), it => it ** 2)), [[1, 1], [4, 2]]);\n\n  const element = {};\n  Map.keyBy([element], it => assert.same(it, element));\n\n  // assert.throws(() => keyBy([1, 2], it => it));\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.key-of.js",
    "content": "import Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#keyOf', assert => {\n  const { keyOf } = Map.prototype;\n  assert.isFunction(keyOf);\n  assert.name(keyOf, 'keyOf');\n  assert.arity(keyOf, 1);\n  assert.nonEnumerable(Map.prototype, 'keyOf');\n\n  const object = {};\n  const map = new Map([[1, 1], [2, 2], [3, 3], [4, -0], [5, object], [6, NaN]]);\n  assert.same(map.keyOf(1), 1);\n  assert.same(map.keyOf(-0), 4);\n  assert.same(map.keyOf(0), 4);\n  assert.same(map.keyOf(object), 5);\n  assert.same(map.keyOf(4), undefined);\n  assert.same(map.keyOf(-0.5), undefined);\n  assert.same(map.keyOf({}), undefined);\n  assert.same(map.keyOf(NaN), undefined);\n\n  assert.throws(() => keyOf.call({}, 1), TypeError);\n  assert.throws(() => keyOf.call(undefined, 1), TypeError);\n  assert.throws(() => keyOf.call(null, 1), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.map-keys.js",
    "content": "import from from 'core-js-pure/es/array/from';\nimport Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#mapKeys', assert => {\n  const { mapKeys } = Map.prototype;\n\n  assert.isFunction(mapKeys);\n  assert.arity(mapKeys, 1);\n  assert.name(mapKeys, 'mapKeys');\n  assert.nonEnumerable(Map.prototype, 'mapKeys');\n\n  const map = new Map([[1, 2]]);\n  const context = {};\n  map.mapKeys(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Map().mapKeys(it => it) instanceof Map);\n\n  assert.deepEqual(from(new Map([\n    ['a', 1],\n    [1, 2],\n    ['b', 3],\n    [2, 'q'],\n    ['c', {}],\n    [3, 4],\n    ['d', true],\n    [4, 5],\n  ]).mapKeys((value, key) => `${ key }${ value }`)), [\n    ['a1', 1],\n    ['12', 2],\n    ['b3', 3],\n    ['2q', 'q'],\n    ['c[object Object]', {}],\n    ['34', 4],\n    ['dtrue', true],\n    ['45', 5],\n  ]);\n\n  assert.throws(() => mapKeys.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => mapKeys.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => mapKeys.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.map-values.js",
    "content": "import from from 'core-js-pure/es/array/from';\nimport Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#mapValues', assert => {\n  const { mapValues } = Map.prototype;\n\n  assert.isFunction(mapValues);\n  assert.arity(mapValues, 1);\n  assert.name(mapValues, 'mapValues');\n  assert.nonEnumerable(Map.prototype, 'mapValues');\n\n  const map = new Map([[1, 2]]);\n  const context = {};\n  map.mapValues(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Map().mapValues(it => it) instanceof Map);\n\n  assert.deepEqual(from(new Map([\n    ['a', 1],\n    [1, 2],\n    ['b', 3],\n    [2, 'q'],\n    ['c', {}],\n    [3, 4],\n    ['d', true],\n    [4, 5],\n  ]).mapValues((value, key) => `${ key }${ value }`)), [\n    ['a', 'a1'],\n    [1, '12'],\n    ['b', 'b3'],\n    [2, '2q'],\n    ['c', 'c[object Object]'],\n    [3, '34'],\n    ['d', 'dtrue'],\n    [4, '45'],\n  ]);\n\n  assert.throws(() => mapValues.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => mapValues.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => mapValues.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.merge.js",
    "content": "import from from 'core-js-pure/es/array/from';\nimport Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#merge', assert => {\n  const { merge } = Map.prototype;\n\n  assert.isFunction(merge);\n  assert.arity(merge, 1);\n  assert.name(merge, 'merge');\n  assert.nonEnumerable(Map.prototype, 'merge');\n\n  const map = new Map([[1, 2]]);\n  const result = map.merge([[3, 4]]);\n  assert.same(result, map);\n  assert.true(result instanceof Map);\n\n  assert.deepEqual(from(new Map([[1, 2], [3, 4]]).merge([[5, 6]])), [[1, 2], [3, 4], [5, 6]]);\n  assert.deepEqual(from(new Map([[1, 2], [3, 4]]).merge([[3, 5], [5, 6]])), [[1, 2], [3, 5], [5, 6]]);\n  assert.deepEqual(from(new Map([[1, 2], [3, 4]]).merge([])), [[1, 2], [3, 4]]);\n\n  assert.deepEqual(from(new Map([[1, 2], [3, 4]]).merge([[3, 5]], [[5, 6]])), [[1, 2], [3, 5], [5, 6]]);\n\n  assert.throws(() => merge.call({}, [[1, 2]]), TypeError);\n  assert.throws(() => merge.call(undefined, [[1, 2]]), TypeError);\n  assert.throws(() => merge.call(null, [[1, 2]]), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.of.js",
    "content": "import from from 'core-js-pure/es/array/from';\nimport Map from 'core-js-pure/full/map';\n\nQUnit.test('Map.of', assert => {\n  const { of } = Map;\n  assert.isFunction(of);\n  assert.name(of, 'of');\n  assert.arity(of, 0);\n  assert.true(of() instanceof Map);\n  assert.deepEqual(from(of([1, 2])), [[1, 2]]);\n  assert.deepEqual(from(of([1, 2], [2, 3], [1, 4])), [[1, 4], [2, 3]]);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.reduce.js",
    "content": "import Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#reduce', assert => {\n  const { reduce } = Map.prototype;\n\n  assert.isFunction(reduce);\n  assert.arity(reduce, 1);\n  assert.name(reduce, 'reduce');\n  assert.nonEnumerable(Map.prototype, 'reduce');\n\n  const map = new Map([['a', 1]]);\n  const accumulator = {};\n  map.reduce(function (memo, value, key, that) {\n    assert.same(arguments.length, 4, 'correct number of callback arguments');\n    assert.same(memo, accumulator, 'correct callback accumulator');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 'a', 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n  }, accumulator);\n\n  assert.same(new Map([\n    ['a', 1],\n    ['b', 2],\n    ['c', 3],\n  ]).reduce((a, b) => a + b, 1), 7, 'works with initial accumulator');\n\n  new Map([\n    ['a', 1],\n    ['b', 2],\n  ]).reduce((memo, value, key) => {\n    assert.same(memo, 1, 'correct default accumulator');\n    assert.same(value, 2, 'correct start value without initial accumulator');\n    assert.same(key, 'b', 'correct start key without initial accumulator');\n  });\n\n  assert.same(new Map([\n    ['a', 1],\n    ['b', 2],\n    ['c', 3],\n  ]).reduce((a, b) => a + b), 6, 'works without initial accumulator');\n\n  let values = '';\n  let keys = '';\n  new Map([\n    ['a', 1],\n    ['b', 2],\n    ['c', 3],\n  ]).reduce((memo, value, key, s) => {\n    s.delete('b');\n    values += value;\n    keys += key;\n  }, 0);\n  assert.same(values, '13', 'correct order #1');\n  assert.same(keys, 'ac', 'correct order #2');\n\n  assert.throws(() => reduce.call({}, () => { /* empty */ }, 1), TypeError);\n  assert.throws(() => reduce.call(undefined, () => { /* empty */ }, 1), TypeError);\n  assert.throws(() => reduce.call(null, () => { /* empty */ }, 1), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.some.js",
    "content": "import Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#some', assert => {\n  const { some } = Map.prototype;\n  assert.isFunction(some);\n  assert.arity(some, 1);\n  assert.name(some, 'some');\n  assert.nonEnumerable(Map.prototype, 'some');\n\n  let map = new Map([[9, 1]]);\n  const context = {};\n  map.some(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 9, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n  map = new Map([[0, 1], [1, '2'], [2, 3]]);\n  assert.true(map.some(it => typeof it == 'number'));\n  assert.true(map.some(it => it < 3));\n  assert.false(map.some(it => it < 0));\n  assert.true(map.some(it => typeof it == 'string'));\n  assert.false(map.some(function () {\n    return +this !== 1;\n  }, 1));\n  let result = '';\n  map.some((value, key) => {\n    result += key;\n    return false;\n  });\n  assert.same(result, '012');\n  assert.true(map.some((value, key, that) => that === map));\n\n  assert.throws(() => some.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.update-or-insert.js",
    "content": "import Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#updateOrInsert', assert => {\n  const { updateOrInsert } = Map.prototype;\n  assert.isFunction(updateOrInsert);\n  assert.arity(updateOrInsert, 2);\n  assert.nonEnumerable(Map.prototype, 'updateOrInsert');\n\n  const map = new Map([['a', 2]]);\n  assert.same(map.updateOrInsert('a', function (value) {\n    assert.same(arguments.length, 1, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    return value ** 2;\n  }, () => {\n    assert.avoid();\n    return 3;\n  }), 4, 'returns a correct value');\n  assert.same(map.updateOrInsert('b', value => {\n    assert.avoid();\n    return value ** 2;\n  }, function () {\n    assert.same(arguments.length, 0, 'correct number of callback arguments');\n    return 3;\n  }), 3, 'returns a correct value');\n  assert.same(map.size, 2, 'correct size');\n  assert.same(map.get('a'), 4, 'correct result #1');\n  assert.same(map.get('b'), 3, 'correct result #2');\n\n  assert.same(new Map([['a', 2]]).updateOrInsert('b', null, () => 3), 3);\n  assert.same(new Map([['a', 2]]).updateOrInsert('a', value => value ** 2), 4);\n\n  assert.throws(() => new Map().updateOrInsert('a'), TypeError);\n  assert.throws(() => updateOrInsert.call({}, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => updateOrInsert.call([], 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => updateOrInsert.call(undefined, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => updateOrInsert.call(null, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.update.js",
    "content": "import Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#update', assert => {\n  const { update } = Map.prototype;\n  assert.isFunction(update);\n  assert.arity(update, 2);\n  assert.name(update, 'update');\n  assert.nonEnumerable(Map.prototype, 'update');\n\n  let map = new Map([[9, 2]]);\n  assert.same(map.update(9, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 9, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    return value * 2;\n  }), map, 'returns this');\n  assert.same(map.size, 1, 'correct size');\n  assert.same(map.get(9), 4, 'correct result');\n  map = new Map([[4, 5]]);\n  map.update(9, function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    assert.same(key, 9, 'correct key in callback');\n    assert.same(that, map, 'correct link to map in callback');\n    return value * 2;\n  }, function (key, that) {\n    assert.same(arguments.length, 2, 'correct number of thunk arguments');\n    assert.same(key, 9, 'correct key in thunk');\n    assert.same(that, map, 'correct link to map in thunk');\n    return 2;\n  });\n  assert.same(map.size, 2, 'correct size');\n  assert.same(map.get(4), 5, 'correct result #1');\n  assert.same(map.get(9), 4, 'correct result #2');\n\n  assert.throws(() => new Map([[9, 2]]).update(9), TypeError);\n  assert.throws(() => new Map().update(9, () => { /* empty */ }), TypeError);\n\n  assert.throws(() => update.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => update.call([], () => { /* empty */ }), TypeError);\n  assert.throws(() => update.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => update.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.map.upsert.js",
    "content": "import Map from 'core-js-pure/full/map';\n\nQUnit.test('Map#upsert', assert => {\n  const { upsert } = Map.prototype;\n  assert.isFunction(upsert);\n  assert.name(upsert, 'upsert');\n  assert.arity(upsert, 2);\n  assert.nonEnumerable(Map.prototype, 'upsert');\n\n  const map = new Map([['a', 2]]);\n  assert.same(map.upsert('a', function (value) {\n    assert.same(arguments.length, 1, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    return value ** 2;\n  }, () => {\n    assert.avoid();\n    return 3;\n  }), 4, 'returns a correct value');\n  assert.same(map.upsert('b', value => {\n    assert.avoid();\n    return value ** 2;\n  }, function () {\n    assert.same(arguments.length, 0, 'correct number of callback arguments');\n    return 3;\n  }), 3, 'returns a correct value');\n  assert.same(map.size, 2, 'correct size');\n  assert.same(map.get('a'), 4, 'correct result #1');\n  assert.same(map.get('b'), 3, 'correct result #2');\n\n  assert.same(new Map([['a', 2]]).upsert('b', null, () => 3), 3);\n  assert.same(new Map([['a', 2]]).upsert('a', value => value ** 2), 4);\n\n  assert.throws(() => new Map().upsert('a'), TypeError);\n  assert.throws(() => upsert.call({}, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => upsert.call([], 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => upsert.call(undefined, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => upsert.call(null, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.clamp.js",
    "content": "import clamp from 'core-js-pure/full/math/clamp';\n\nQUnit.test('Math.clamp', assert => {\n  assert.isFunction(clamp);\n  assert.arity(clamp, 3);\n  assert.name(clamp, 'clamp');\n\n  assert.same(clamp(2, 4, 6), 4);\n  assert.same(clamp(4, 2, 6), 4);\n  assert.same(clamp(6, 2, 4), 4);\n\n  assert.same(clamp(-0, 0, 1), 0, 'If value is -0𝔽 and min is +0𝔽, return +0𝔽.');\n  assert.same(clamp(0, -0, 1), 0, 'If value is +0𝔽 and min is -0𝔽, return +0𝔽.');\n  assert.same(clamp(-0, -1, 0), -0, 'If value is -0𝔽 and max is +0𝔽, return -0𝔽.');\n  assert.same(clamp(0, -1, -0), -0, 'If value is +0𝔽 and max is -0𝔽, return -0𝔽.');\n  assert.same(clamp(0, -0, -0), -0, 'If min = max return min.');\n\n  assert.same(clamp(2, 0, -0), -0, 'min is +0𝔽 and max is -0𝔽');\n  assert.same(clamp(2, 3, 1), 1, 'min > max');\n\n  assert.same(clamp(NaN, 3, 1), NaN, 'If value is NaN, return NaN.');\n  assert.same(clamp(2, NaN, 1), NaN, 'If min is NaN, return NaN.');\n  assert.same(clamp(2, 3, NaN), NaN, 'If max is NaN, return NaN.');\n\n  assert.throws(() => clamp({ valueOf: () => 2 }, 1, 3), TypeError, 'If value is not a Number, throw a TypeError exception');\n  assert.throws(() => clamp(2, Object(1), 3), TypeError, 'If min is not a Number, throw a TypeError exception.');\n  assert.throws(() => clamp(2, 1, Object(3)), TypeError, 'If max is not a Number, throw a TypeError exception.');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.deg-per-rad.js",
    "content": "import DEG_PER_RAD from 'core-js-pure/full/math/deg-per-rad';\n\nQUnit.test('Math.DEG_PER_RAD', assert => {\n  assert.same(DEG_PER_RAD, Math.PI / 180, 'Is Math.PI / 180');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.degrees.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport degrees from 'core-js-pure/full/math/degrees';\n\nQUnit.test('Math.degrees', assert => {\n  assert.isFunction(degrees);\n  assert.arity(degrees, 1);\n  assert.name(degrees, 'degrees');\n  assert.same(degrees(0), 0);\n  assert.same(degrees(Math.PI / 2), 90);\n  assert.same(degrees(Math.PI), 180);\n  assert.same(degrees(3 * Math.PI / 2), 270);\n\n  const checker = createConversionChecker(3 * Math.PI / 2);\n  assert.same(degrees(checker), 270, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.fscale.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport fround from 'core-js-pure/full/math/fround';\nimport fscale from 'core-js-pure/full/math/fscale';\n\nQUnit.test('Math.fscale', assert => {\n  assert.isFunction(fscale);\n  assert.arity(fscale, 5);\n  assert.name(fscale, 'fscale');\n  assert.same(fscale(3, 1, 2, 1, 2), 3);\n  assert.same(fscale(0, 3, 5, 8, 10), 5);\n  assert.same(fscale(1, 1, 1, 1, 1), NaN);\n  assert.same(fscale(-1, -1, -1, -1, -1), NaN);\n  assert.same(fscale(3, 1, 2, 1, Math.PI), fround((3 - 1) * (Math.PI - 1) / (2 - 1) + 1));\n\n  const checker1 = createConversionChecker(3);\n  const checker2 = createConversionChecker(1);\n  const checker3 = createConversionChecker(2);\n  const checker4 = createConversionChecker(1);\n  const checker5 = createConversionChecker(2);\n  assert.same(fscale(checker1, checker2, checker3, checker4, checker5), 3, 'object wrapper');\n  assert.same(checker1.$valueOf, 1, 'checker1 valueOf calls');\n  assert.same(checker1.$toString, 0, 'checker1 toString calls');\n  assert.same(checker2.$valueOf, 1, 'checker2 valueOf calls');\n  assert.same(checker2.$toString, 0, 'checker2 toString calls');\n  assert.same(checker3.$valueOf, 1, 'checker3 valueOf calls');\n  assert.same(checker3.$toString, 0, 'checker3 toString calls');\n  assert.same(checker4.$valueOf, 1, 'checker4 valueOf calls');\n  assert.same(checker4.$toString, 0, 'checker4 toString calls');\n  assert.same(checker5.$valueOf, 1, 'checker5 valueOf calls');\n  assert.same(checker5.$toString, 0, 'checker5 toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.iaddh.js",
    "content": "import iaddh from 'core-js-pure/full/math/iaddh';\n\nQUnit.test('Math.iaddh', assert => {\n  assert.isFunction(iaddh);\n  assert.arity(iaddh, 4);\n  assert.name(iaddh, 'iaddh');\n  assert.same(iaddh(0, 2, 1, 0), 2);\n  assert.same(iaddh(0, 4, 1, 1), 5);\n  assert.same(iaddh(2, 4, 1, 1), 5);\n  assert.same(iaddh(0xFFFFFFFF, 4, 1, 1), 6);\n  assert.same(iaddh(1, 4, 0xFFFFFFFF, 1), 6);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.imulh.js",
    "content": "import imulh from 'core-js-pure/full/math/imulh';\n\nQUnit.test('Math.imulh', assert => {\n  assert.isFunction(imulh);\n  assert.arity(imulh, 2);\n  assert.name(imulh, 'imulh');\n  assert.same(imulh(0xFFFFFFFF, 7), -1);\n  assert.same(imulh(0xFFFFFFF, 77), 4);\n  assert.same(imulh(1, 7), 0);\n  assert.same(imulh(-1, 7), -1);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.isubh.js",
    "content": "import isubh from 'core-js-pure/full/math/isubh';\n\nQUnit.test('Math.isubh', assert => {\n  assert.isFunction(isubh);\n  assert.arity(isubh, 4);\n  assert.name(isubh, 'isubh');\n  assert.same(isubh(0, 2, 1, 0), 1);\n  assert.same(isubh(0, 4, 1, 1), 2);\n  assert.same(isubh(2, 4, 1, 1), 3);\n  assert.same(isubh(0xFFFFFFFF, 4, 1, 1), 3);\n  assert.same(isubh(1, 4, 0xFFFFFFFF, 1), 2);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.rad-per-deg.js",
    "content": "import RAD_PER_DEG from 'core-js-pure/full/math/rad-per-deg';\n\nQUnit.test('Math.RAD_PER_DEG', assert => {\n  assert.same(RAD_PER_DEG, 180 / Math.PI, 'Is 180 / Math.PI');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.radians.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport radians from 'core-js-pure/full/math/radians';\n\nQUnit.test('Math.radians', assert => {\n  assert.isFunction(radians);\n  assert.arity(radians, 1);\n  assert.name(radians, 'radians');\n  assert.same(radians(0), 0);\n  assert.same(radians(90), Math.PI / 2);\n  assert.same(radians(180), Math.PI);\n  assert.same(radians(270), 3 * Math.PI / 2);\n\n  const checker = createConversionChecker(270);\n  assert.same(radians(checker), 3 * Math.PI / 2, 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.scale.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport scale from 'core-js-pure/full/math/scale';\n\nQUnit.test('Math.scale', assert => {\n  assert.isFunction(scale);\n  assert.arity(scale, 5);\n  assert.name(scale, 'scale');\n  assert.same(scale(3, 1, 2, 1, 2), 3);\n  assert.same(scale(0, 3, 5, 8, 10), 5);\n  assert.same(scale(1, 1, 1, 1, 1), NaN);\n  assert.same(scale(-1, -1, -1, -1, -1), NaN);\n\n  const checker1 = createConversionChecker(3);\n  const checker2 = createConversionChecker(1);\n  const checker3 = createConversionChecker(2);\n  const checker4 = createConversionChecker(1);\n  const checker5 = createConversionChecker(2);\n  assert.same(scale(checker1, checker2, checker3, checker4, checker5), 3, 'object wrapper');\n  assert.same(checker1.$valueOf, 1, 'checker1 valueOf calls');\n  assert.same(checker1.$toString, 0, 'checker1 toString calls');\n  assert.same(checker2.$valueOf, 1, 'checker2 valueOf calls');\n  assert.same(checker2.$toString, 0, 'checker2 toString calls');\n  assert.same(checker3.$valueOf, 1, 'checker3 valueOf calls');\n  assert.same(checker3.$toString, 0, 'checker3 toString calls');\n  assert.same(checker4.$valueOf, 1, 'checker4 valueOf calls');\n  assert.same(checker4.$toString, 0, 'checker4 toString calls');\n  assert.same(checker5.$valueOf, 1, 'checker5 valueOf calls');\n  assert.same(checker5.$toString, 0, 'checker5 toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.seeded-prng.js",
    "content": "import seededPRNG from 'core-js-pure/full/math/seeded-prng';\n\nQUnit.test('Math.seededPRNG', assert => {\n  assert.isFunction(seededPRNG);\n  assert.arity(seededPRNG, 1);\n  assert.name(seededPRNG, 'seededPRNG');\n\n  for (const gen of [seededPRNG({ seed: 42 }), seededPRNG({ seed: 42 })]) {\n    assert.deepEqual(gen.next(), { value: 0.16461519912315087, done: false });\n    assert.deepEqual(gen.next(), { value: 0.2203933906000046, done: false });\n    assert.deepEqual(gen.next(), { value: 0.8249682894209105, done: false });\n    assert.deepEqual(gen.next(), { value: 0.10750079537509083, done: false });\n    assert.deepEqual(gen.next(), { value: 0.004673248161257476, done: false });\n  }\n\n  for (const gen of [seededPRNG({ seed: 43 }), seededPRNG({ seed: 43 })]) {\n    assert.deepEqual(gen.next(), { value: 0.1923438591811283, done: false });\n    assert.deepEqual(gen.next(), { value: 0.7896811578326683, done: false });\n    assert.deepEqual(gen.next(), { value: 0.9518230761883996, done: false });\n    assert.deepEqual(gen.next(), { value: 0.1414634102410296, done: false });\n    assert.deepEqual(gen.next(), { value: 0.7379838030207752, done: false });\n  }\n\n  assert.throws(() => seededPRNG(), TypeError);\n  assert.throws(() => seededPRNG(5), TypeError);\n  assert.throws(() => seededPRNG({ seed: null }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.signbit.js",
    "content": "import { createConversionChecker } from '../helpers/helpers.js';\n\nimport signbit from 'core-js-pure/full/math/signbit';\n\nQUnit.test('Math.signbit', assert => {\n  assert.isFunction(signbit);\n  assert.arity(signbit, 1);\n  assert.name(signbit, 'signbit');\n  assert.false(signbit(NaN));\n  assert.false(signbit());\n  assert.true(signbit(-0));\n  assert.false(signbit(0));\n  assert.false(signbit(Infinity));\n  assert.true(signbit(-Infinity));\n  assert.false(signbit(13510798882111488));\n  assert.true(signbit(-13510798882111488));\n  assert.false(signbit(42.5));\n  assert.true(signbit(-42.5));\n\n  const checker = createConversionChecker(-13510798882111488);\n  assert.true(signbit(checker), 'object wrapper');\n  assert.same(checker.$valueOf, 1, 'valueOf calls');\n  assert.same(checker.$toString, 0, 'toString calls');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.math.umulh.js",
    "content": "import umulh from 'core-js-pure/full/math/umulh';\n\nQUnit.test('Math.umulh', assert => {\n  assert.isFunction(umulh);\n  assert.arity(umulh, 2);\n  assert.name(umulh, 'umulh');\n  assert.same(umulh(0xFFFFFFFF, 7), 6);\n  assert.same(umulh(0xFFFFFFF, 77), 4);\n  assert.same(umulh(1, 7), 0);\n  assert.same(umulh(-1, 7), 6);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.number.clamp.js",
    "content": "import clamp from 'core-js-pure/full/number/clamp';\n\nQUnit.test('Number#clamp', assert => {\n  assert.isFunction(clamp);\n\n  assert.same(clamp(2, 4, 6), 4);\n  assert.same(clamp(4, 2, 6), 4);\n  assert.same(clamp(6, 2, 4), 4);\n\n  assert.same(clamp(-0, 0, 1), 0, 'If value is -0𝔽 and min is +0𝔽, return +0𝔽.');\n  assert.same(clamp(0, -0, 1), 0, 'If value is +0𝔽 and min is -0𝔽, return +0𝔽.');\n  assert.same(clamp(-0, -1, 0), -0, 'If value is -0𝔽 and max is +0𝔽, return -0𝔽.');\n  assert.same(clamp(0, -1, -0), -0, 'If value is +0𝔽 and max is -0𝔽, return -0𝔽.');\n  assert.same(clamp(0, -0, -0), -0, 'If min = max return min.');\n\n  assert.same(clamp(2, 0, -0), -0, 'min is +0𝔽 and max is -0𝔽');\n  assert.same(clamp(2, 3, 1), 1, 'min > max');\n\n  assert.same(clamp(NaN, 3, 1), NaN, 'If value is NaN, return NaN.');\n  assert.same(clamp(2, NaN, 1), NaN, 'If min is NaN, return NaN.');\n  assert.same(clamp(2, 3, NaN), NaN, 'If max is NaN, return NaN.');\n\n  assert.throws(() => clamp({ valueOf: () => 2 }, 1, 3), TypeError, 'If value is not a Number, throw a TypeError exception');\n  assert.throws(() => clamp(2, Object(1), 3), TypeError, 'If min is not a Number, throw a TypeError exception.');\n  assert.throws(() => clamp(2, 1, Object(3)), TypeError, 'If max is not a Number, throw a TypeError exception.');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.number.from-string.js",
    "content": "import fromString from 'core-js-pure/full/number/from-string';\n\nQUnit.test('Number.fromString', assert => {\n  assert.isFunction(fromString);\n  assert.name(fromString, 'fromString');\n  assert.arity(fromString, 2);\n  assert.throws(() => fromString(undefined), TypeError, 'The first argument should be a string #1');\n  assert.throws(() => fromString(Object('10')), TypeError, 'The first argument should be a string #2');\n  assert.throws(() => fromString(''), SyntaxError, 'Empty string');\n  assert.same(fromString('-10', 2), -2, 'Works with negative numbers');\n  assert.throws(() => fromString('-'), SyntaxError, '-');\n  assert.same(fromString('10'), 10, 'Default radix is 10 #1');\n  assert.same(fromString('10', undefined), 10, 'Default radix is 10 #2');\n  for (let radix = 2; radix <= 36; ++radix) {\n    assert.same(fromString('10', radix), radix, `Radix ${ radix }`);\n  }\n  assert.throws(() => fromString('10', -4294967294), RangeError, 'Radix uses ToInteger #1');\n\n  assert.same(fromString('10', 2.5), 2, 'Radix uses ToInteger #2');\n  assert.same(fromString('42'), 42);\n  assert.same(fromString('42', 10), 42);\n  assert.same(fromString('3.14159', 10), 3.14159);\n  assert.same(fromString('-100.11', 2), -4.75);\n  assert.same(fromString('202.1', 3), 20.333333333333332);\n\n  assert.same(fromString('0'), 0);\n  assert.same(fromString('0', 2), 0);\n  assert.same(fromString('-0'), -0);\n  assert.same(fromString('-0', 2), -0);\n\n  assert.throws(() => fromString('0xc0ffee'), SyntaxError);\n  assert.throws(() => fromString('0o755'), SyntaxError);\n  assert.throws(() => fromString('0b00101010'), SyntaxError);\n  assert.throws(() => fromString('C0FFEE', 16), SyntaxError);\n  assert.same(fromString('c0ffee', 16), 12648430);\n  assert.same(fromString('755', 8), 493);\n  assert.throws(() => fromString(' '), SyntaxError);\n  assert.throws(() => fromString(' 1'), SyntaxError);\n  assert.throws(() => fromString(' \\n '), SyntaxError);\n  assert.throws(() => fromString('x'), SyntaxError);\n  assert.throws(() => fromString('1234', 0), RangeError);\n  assert.throws(() => fromString('1234', 1), RangeError);\n  assert.throws(() => fromString('1234', 37), RangeError);\n  assert.throws(() => fromString('010'), SyntaxError);\n  assert.throws(() => fromString('1_000_000_000'), SyntaxError);\n\n  assert.same(fromString('1.0'), 1, 'trailing fractional zero');\n  assert.same(fromString('1.00'), 1, 'trailing fractional zeros');\n  assert.same(fromString('1.10'), 1.1, 'trailing fractional zero after non-zero');\n  assert.same(fromString('0.0'), 0, 'zero with trailing fractional zero');\n  assert.same(fromString('-1.0'), -1, 'negative with trailing fractional zero');\n\n  assert.throws(() => fromString('19', 8), SyntaxError, 'Invalid digit for radix #1');\n  assert.throws(() => fromString('1g', 16), SyntaxError, 'Invalid digit for radix #2');\n  assert.throws(() => fromString('fg', 16), SyntaxError, 'Invalid digit for radix #3');\n  assert.throws(() => fromString('89', 8), SyntaxError, 'Invalid digit for radix #4');\n  assert.throws(() => fromString('1.2.3', 16), SyntaxError, 'Multiple dots #1');\n  assert.throws(() => fromString('1.2.3', 10), SyntaxError, 'Multiple dots #2');\n  assert.throws(() => fromString('.5', 16), SyntaxError, 'Leading dot #1');\n  assert.throws(() => fromString('5.', 16), SyntaxError, 'Trailing dot #1');\n  assert.throws(() => fromString('.5', 10), SyntaxError, 'Leading dot #2');\n  assert.throws(() => fromString('5.', 10), SyntaxError, 'Trailing dot #2');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.number.range.js",
    "content": "import { MAX_SAFE_INTEGER } from '../helpers/constants.js';\nimport from from 'core-js-pure/es/array/from';\nimport range from 'core-js-pure/full/number/range';\n\nQUnit.test('Number.range', assert => {\n  assert.isFunction(range);\n  assert.name(range, 'range');\n  assert.arity(range, 3);\n\n  let iterator = range(1, 2);\n\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.deepEqual(iterator.next(), {\n    value: 1,\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n\n  assert.deepEqual(from(range(-1, 5)), [-1, 0, 1, 2, 3, 4]);\n  assert.deepEqual(from(range(-5, 1)), [-5, -4, -3, -2, -1, 0]);\n  assert.deepEqual(\n    from(range(0, 1, 0.1)),\n    [0, 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6000000000000001, 0.7000000000000001, 0.8, 0.9],\n  );\n  assert.deepEqual(\n    from(range(MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1, { inclusive: true })),\n    [MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1],\n  );\n  assert.deepEqual(from(range(0, 0)), []);\n  assert.deepEqual(from(range(0, -5, 1)), []);\n\n  assert.throws(() => range(NaN, 0), RangeError, 'NaN as start');\n  assert.throws(() => range(0, NaN), RangeError, 'NaN as end');\n  assert.throws(() => range(NaN, NaN), RangeError, 'NaN as start and end');\n  assert.throws(() => range(0, 0, { step: NaN }), RangeError, 'NaN as step option');\n  assert.throws(() => range(0, 5, NaN), RangeError, 'NaN as step argument');\n\n  iterator = range(1, 3);\n  assert.deepEqual(iterator.start, 1);\n  assert.deepEqual(iterator.end, 3);\n  assert.deepEqual(iterator.step, 1);\n  assert.false(iterator.inclusive);\n\n  iterator = range(-1, -3, { inclusive: true });\n  assert.deepEqual(iterator.start, -1);\n  assert.deepEqual(iterator.end, -3);\n  assert.same(iterator.step, -1);\n  assert.true(iterator.inclusive);\n\n  iterator = range(-1, -3, { step: 4, inclusive() { /* empty */ } });\n  assert.same(iterator.start, -1);\n  assert.same(iterator.end, -3);\n  assert.same(iterator.step, 4);\n  assert.true(iterator.inclusive);\n\n  iterator = range(0, 5);\n  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n  assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError);\n\n  assert.throws(() => range(Infinity, 10, 0), RangeError);\n  assert.throws(() => range(-Infinity, 10, 0), RangeError);\n  assert.throws(() => range(0, 10, Infinity), RangeError);\n  assert.throws(() => range(0, 10, { step: Infinity }), RangeError);\n\n  assert.throws(() => range({}, 1), TypeError);\n  assert.throws(() => range(1, {}), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.object.iterate-entries.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\nimport iterateEntries from 'core-js-pure/full/object/iterate-entries';\n\nQUnit.test('Object.iterateEntries', assert => {\n  assert.isFunction(iterateEntries);\n  assert.name(iterateEntries, 'iterateEntries');\n  assert.arity(iterateEntries, 1);\n\n  const object = {\n    q: 1,\n    w: 2,\n    e: 3,\n  };\n  const iterator = iterateEntries(object);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Object Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: ['q', 1],\n    done: false,\n  });\n  delete object.w;\n  assert.deepEqual(iterator.next(), {\n    value: ['e', 3],\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.object.iterate-keys.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\nimport iterateKeys from 'core-js-pure/full/object/iterate-keys';\n\nQUnit.test('Object.iterateKeys', assert => {\n  assert.isFunction(iterateKeys);\n  assert.name(iterateKeys, 'iterateKeys');\n  assert.arity(iterateKeys, 1);\n\n  const object = {\n    q: 1,\n    w: 2,\n    e: 3,\n  };\n  const iterator = iterateKeys(object);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Object Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 'q',\n    done: false,\n  });\n  delete object.w;\n  assert.deepEqual(iterator.next(), {\n    value: 'e',\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.object.iterate-values.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\nimport iterateValues from 'core-js-pure/full/object/iterate-values';\n\nQUnit.test('Object.iterateValues', assert => {\n  assert.isFunction(iterateValues);\n  assert.name(iterateValues, 'iterateValues');\n  assert.arity(iterateValues, 1);\n\n  const object = {\n    q: 1,\n    w: 2,\n    e: 3,\n  };\n  const iterator = iterateValues(object);\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'Object Iterator');\n  assert.deepEqual(iterator.next(), {\n    value: 1,\n    done: false,\n  });\n  delete object.w;\n  assert.deepEqual(iterator.next(), {\n    value: 3,\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.observable.constructor.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/full/symbol';\nimport Observable from 'core-js-pure/full/observable';\n\nQUnit.test('Observable', assert => {\n  assert.isFunction(Observable);\n  assert.arity(Observable, 1);\n  assert.name(Observable, 'Observable');\n  const observable = new Observable(function (subscriptionObserver) {\n    assert.same(typeof subscriptionObserver, 'object', 'Subscription observer is object');\n    assert.same(subscriptionObserver.constructor, Object);\n    const { next, error, complete } = subscriptionObserver;\n    assert.isFunction(next);\n    assert.isFunction(error);\n    assert.isFunction(complete);\n    assert.arity(next, 1);\n    assert.arity(error, 1);\n    assert.arity(complete, 0);\n    if (STRICT) {\n      assert.same(this, undefined, 'correct executor context');\n    }\n  });\n  observable.subscribe({});\n  assert.true(observable instanceof Observable);\n  // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n  assert.throws(() => Observable(() => { /* empty */ }), 'throws w/o `new`');\n});\n\nQUnit.test('Observable#subscribe', assert => {\n  assert.isFunction(Observable.prototype.subscribe);\n  assert.arity(Observable.prototype.subscribe, 1);\n  const subscription = new Observable(() => { /* empty */ }).subscribe({});\n  assert.same(typeof subscription, 'object', 'Subscription is object');\n  assert.same(subscription.constructor, Object);\n  assert.isFunction(subscription.unsubscribe);\n  assert.arity(subscription.unsubscribe, 0);\n});\n\nQUnit.test('Observable#constructor', assert => {\n  assert.same(Observable.prototype.constructor, Observable);\n});\n\nQUnit.test('Observable#@@observable', assert => {\n  assert.isFunction(Observable.prototype[Symbol.observable]);\n  const observable = new Observable(() => { /* empty*/ });\n  assert.same(observable[Symbol.observable](), observable);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.observable.from.js",
    "content": "import Observable from 'core-js-pure/full/observable';\n\nQUnit.test('Observable.from', assert => {\n  assert.isFunction(Observable.from);\n  assert.arity(Observable.from, 1);\n  assert.name(Observable.from, 'from');\n\n  const results1 = [];\n  Observable.from([1, 2, 3]).subscribe({ next: v => results1.push(v) });\n  assert.deepEqual(results1, [1, 2, 3], 'first subscription receives all values');\n\n  const obs = Observable.from([4, 5, 6]);\n  const sub1 = [];\n  const sub2 = [];\n  obs.subscribe({ next: v => sub1.push(v) });\n  obs.subscribe({ next: v => sub2.push(v) });\n  assert.deepEqual(sub1, [4, 5, 6], 'multi-subscribe: first subscription');\n  assert.deepEqual(sub2, [4, 5, 6], 'multi-subscribe: second subscription gets fresh iterator');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.observable.of.js",
    "content": "import Observable from 'core-js-pure/full/observable';\n\nQUnit.test('Observable.of', assert => {\n  assert.isFunction(Observable.of);\n  assert.arity(Observable.of, 0);\n  assert.name(Observable.of, 'of');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.reflect.define-metadata.js",
    "content": "import defineMetadata from 'core-js-pure/full/reflect/define-metadata';\n\nQUnit.test('Reflect.defineMetadata', assert => {\n  assert.isFunction(defineMetadata);\n  assert.arity(defineMetadata, 3);\n  assert.name(defineMetadata, 'defineMetadata');\n  assert.throws(() => defineMetadata('key', 'value', undefined, undefined), TypeError);\n  assert.same(defineMetadata('key', 'value', {}, undefined), undefined);\n  assert.same(defineMetadata('key', 'value', {}, 'name'), undefined);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.reflect.delete-metadata.js",
    "content": "import create from 'core-js-pure/full/object/create';\nimport defineMetadata from 'core-js-pure/full/reflect/define-metadata';\nimport hasOwnMetadata from 'core-js-pure/full/reflect/has-own-metadata';\nimport deleteMetadata from 'core-js-pure/full/reflect/delete-metadata';\n\nQUnit.test('Reflect.deleteMetadata', assert => {\n  assert.isFunction(deleteMetadata);\n  assert.arity(deleteMetadata, 2);\n  assert.name(deleteMetadata, 'deleteMetadata');\n  assert.throws(() => deleteMetadata('key', undefined, undefined), TypeError);\n  assert.false(deleteMetadata('key', {}, undefined));\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.true(deleteMetadata('key', object, undefined));\n  const prototype = {};\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.false(deleteMetadata('key', create(prototype), undefined));\n  object = {};\n  defineMetadata('key', 'value', object, undefined);\n  deleteMetadata('key', object, undefined);\n  assert.false(hasOwnMetadata('key', object, undefined));\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.reflect.get-metadata-keys.js",
    "content": "import create from 'core-js-pure/full/object/create';\nimport defineMetadata from 'core-js-pure/full/reflect/define-metadata';\nimport getMetadataKeys from 'core-js-pure/full/reflect/get-metadata-keys';\n\nQUnit.test('Reflect.getMetadataKeys', assert => {\n  assert.isFunction(getMetadataKeys);\n  assert.arity(getMetadataKeys, 1);\n  assert.name(getMetadataKeys, 'getMetadataKeys');\n  assert.throws(() => getMetadataKeys(undefined, undefined), TypeError);\n  assert.deepEqual(getMetadataKeys({}, undefined), []);\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.deepEqual(getMetadataKeys(object, undefined), ['key']);\n  let prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.deepEqual(getMetadataKeys(object, undefined), ['key']);\n  object = {};\n  defineMetadata('key0', 'value', object, undefined);\n  defineMetadata('key1', 'value', object, undefined);\n  assert.deepEqual(getMetadataKeys(object, undefined), ['key0', 'key1']);\n  object = {};\n  defineMetadata('key0', 'value', object, undefined);\n  defineMetadata('key1', 'value', object, undefined);\n  defineMetadata('key0', 'value', object, undefined);\n  assert.deepEqual(getMetadataKeys(object, undefined), ['key0', 'key1']);\n  prototype = {};\n  defineMetadata('key2', 'value', prototype, undefined);\n  object = create(prototype);\n  defineMetadata('key0', 'value', object, undefined);\n  defineMetadata('key1', 'value', object, undefined);\n  assert.deepEqual(getMetadataKeys(object, undefined), ['key0', 'key1', 'key2']);\n  assert.deepEqual(getMetadataKeys({}, 'name'), []);\n  object = {};\n  defineMetadata('key', 'value', object, 'name');\n  assert.deepEqual(getMetadataKeys(object, 'name'), ['key']);\n  prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, 'name');\n  assert.deepEqual(getMetadataKeys(object, 'name'), ['key']);\n  object = {};\n  defineMetadata('key0', 'value', object, 'name');\n  defineMetadata('key1', 'value', object, 'name');\n  defineMetadata('key0', 'value', object, 'name');\n  assert.deepEqual(getMetadataKeys(object, 'name'), ['key0', 'key1']);\n  prototype = {};\n  defineMetadata('key2', 'value', prototype, 'name');\n  object = create(prototype);\n  defineMetadata('key0', 'value', object, 'name');\n  defineMetadata('key1', 'value', object, 'name');\n  assert.deepEqual(getMetadataKeys(object, 'name'), ['key0', 'key1', 'key2']);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.reflect.get-metadata.js",
    "content": "import create from 'core-js-pure/full/object/create';\nimport defineMetadata from 'core-js-pure/full/reflect/define-metadata';\nimport getMetadata from 'core-js-pure/full/reflect/get-metadata';\n\nQUnit.test('Reflect.getMetadata', assert => {\n  assert.isFunction(getMetadata);\n  assert.arity(getMetadata, 2);\n  assert.name(getMetadata, 'getMetadata');\n  assert.throws(() => getMetadata('key', undefined, undefined), TypeError);\n  assert.same(getMetadata('key', {}, undefined), undefined);\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.same(getMetadata('key', object, undefined), 'value');\n  let prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.same(getMetadata('key', object, undefined), 'value');\n  assert.same(getMetadata('key', {}, 'name'), undefined);\n  object = {};\n  defineMetadata('key', 'value', object, 'name');\n  assert.same(getMetadata('key', object, 'name'), 'value');\n  prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, 'name');\n  assert.same(getMetadata('key', object, 'name'), 'value');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.reflect.get-own-metadata-keys.js",
    "content": "import create from 'core-js-pure/full/object/create';\nimport defineMetadata from 'core-js-pure/full/reflect/define-metadata';\nimport getOwnMetadataKeys from 'core-js-pure/full/reflect/get-own-metadata-keys';\n\nQUnit.test('Reflect.getOwnMetadataKeys', assert => {\n  assert.isFunction(getOwnMetadataKeys);\n  assert.arity(getOwnMetadataKeys, 1);\n  assert.name(getOwnMetadataKeys, 'getOwnMetadataKeys');\n  assert.throws(() => getOwnMetadataKeys(undefined, undefined), TypeError);\n  assert.deepEqual(getOwnMetadataKeys({}, undefined), []);\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.deepEqual(getOwnMetadataKeys(object, undefined), ['key']);\n  let prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.deepEqual(getOwnMetadataKeys(object, undefined), []);\n  object = {};\n  defineMetadata('key0', 'value', object, undefined);\n  defineMetadata('key1', 'value', object, undefined);\n  assert.deepEqual(getOwnMetadataKeys(object, undefined), ['key0', 'key1']);\n  object = {};\n  defineMetadata('key0', 'value', object, undefined);\n  defineMetadata('key1', 'value', object, undefined);\n  defineMetadata('key0', 'value', object, undefined);\n  assert.deepEqual(getOwnMetadataKeys(object, undefined), ['key0', 'key1']);\n  prototype = {};\n  defineMetadata('key2', 'value', prototype, undefined);\n  object = create(prototype);\n  defineMetadata('key0', 'value', object, undefined);\n  defineMetadata('key1', 'value', object, undefined);\n  assert.deepEqual(getOwnMetadataKeys(object, undefined), ['key0', 'key1']);\n  assert.deepEqual(getOwnMetadataKeys({}, 'name'), []);\n  object = {};\n  defineMetadata('key', 'value', object, 'name');\n  assert.deepEqual(getOwnMetadataKeys(object, 'name'), ['key']);\n  prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, 'name');\n  assert.deepEqual(getOwnMetadataKeys(object, 'name'), []);\n  object = {};\n  defineMetadata('key0', 'value', object, 'name');\n  defineMetadata('key1', 'value', object, 'name');\n  defineMetadata('key0', 'value', object, 'name');\n  assert.deepEqual(getOwnMetadataKeys(object, 'name'), ['key0', 'key1']);\n  prototype = {};\n  defineMetadata('key2', 'value', prototype, 'name');\n  object = create(prototype);\n  defineMetadata('key0', 'value', object, 'name');\n  defineMetadata('key1', 'value', object, 'name');\n  assert.deepEqual(getOwnMetadataKeys(object, 'name'), ['key0', 'key1']);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.reflect.get-own-metadata.js",
    "content": "import create from 'core-js-pure/full/object/create';\nimport defineMetadata from 'core-js-pure/full/reflect/define-metadata';\nimport getOwnMetadata from 'core-js-pure/full/reflect/get-own-metadata';\n\nQUnit.test('Reflect.getOwnMetadata', assert => {\n  assert.isFunction(getOwnMetadata);\n  assert.arity(getOwnMetadata, 2);\n  assert.name(getOwnMetadata, 'getOwnMetadata');\n  assert.throws(() => getOwnMetadata('key', undefined, undefined), TypeError);\n  assert.same(getOwnMetadata('key', {}, undefined), undefined);\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.same(getOwnMetadata('key', object, undefined), 'value');\n  let prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.same(getOwnMetadata('key', object, undefined), undefined);\n  assert.same(getOwnMetadata('key', {}, 'name'), undefined);\n  object = {};\n  defineMetadata('key', 'value', object, 'name');\n  assert.same(getOwnMetadata('key', object, 'name'), 'value');\n  prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, 'name');\n  assert.same(getOwnMetadata('key', object, 'name'), undefined);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.reflect.has-metadata.js",
    "content": "import create from 'core-js-pure/full/object/create';\nimport defineMetadata from 'core-js-pure/full/reflect/define-metadata';\nimport hasMetadata from 'core-js-pure/full/reflect/has-metadata';\n\nQUnit.test('Reflect.hasMetadata', assert => {\n  assert.isFunction(hasMetadata);\n  assert.arity(hasMetadata, 2);\n  assert.name(hasMetadata, 'hasMetadata');\n  assert.throws(() => hasMetadata('key', undefined, undefined), TypeError);\n  assert.false(hasMetadata('key', {}, undefined));\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.true(hasMetadata('key', object, undefined));\n  let prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.true(hasMetadata('key', object, undefined));\n  assert.false(hasMetadata('key', {}, 'name'));\n  object = {};\n  defineMetadata('key', 'value', object, 'name');\n  assert.true(hasMetadata('key', object, 'name'));\n  prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, 'name');\n  assert.true(hasMetadata('key', object, 'name'));\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.reflect.has-own-metadata.js",
    "content": "import create from 'core-js-pure/full/object/create';\nimport defineMetadata from 'core-js-pure/full/reflect/define-metadata';\nimport hasOwnMetadata from 'core-js-pure/full/reflect/has-own-metadata';\n\nQUnit.test('Reflect.hasOwnMetadata', assert => {\n  assert.isFunction(hasOwnMetadata);\n  assert.arity(hasOwnMetadata, 2);\n  assert.name(hasOwnMetadata, 'hasOwnMetadata');\n  assert.throws(() => hasOwnMetadata('key', undefined, undefined), TypeError);\n  assert.false(hasOwnMetadata('key', {}, undefined));\n  let object = {};\n  defineMetadata('key', 'value', object, undefined);\n  assert.true(hasOwnMetadata('key', object, undefined));\n  let prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, undefined);\n  assert.false(hasOwnMetadata('key', object, undefined));\n  assert.false(hasOwnMetadata('key', {}, 'name'));\n  object = {};\n  defineMetadata('key', 'value', object, 'name');\n  assert.true(hasOwnMetadata('key', object, 'name'));\n  prototype = {};\n  object = create(prototype);\n  defineMetadata('key', 'value', prototype, 'name');\n  assert.false(hasOwnMetadata('key', object, 'name'));\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.reflect.metadata.js",
    "content": "import hasOwnMetadata from 'core-js-pure/full/reflect/has-own-metadata';\nimport metadata from 'core-js-pure/full/reflect/metadata';\n\nQUnit.test('Reflect.metadata', assert => {\n  assert.isFunction(metadata);\n  assert.arity(metadata, 2);\n  assert.name(metadata, 'metadata');\n  assert.isFunction(metadata('key', 'value'));\n  const decorator = metadata('key', 'value');\n  assert.throws(() => decorator(undefined, 'name'), TypeError);\n  let target = function () { /* empty */ };\n  decorator(target);\n  assert.true(hasOwnMetadata('key', target, undefined));\n  target = {};\n  decorator(target, 'name');\n  assert.true(hasOwnMetadata('key', target, 'name'));\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.set.add-all.js",
    "content": "import from from 'core-js-pure/es/array/from';\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#addAll', assert => {\n  const { addAll } = Set.prototype;\n\n  assert.isFunction(addAll);\n  assert.arity(addAll, 0);\n  assert.name(addAll, 'addAll');\n  assert.nonEnumerable(Set.prototype, 'addAll');\n\n  const set = new Set([1]);\n  assert.same(set.addAll(2), set);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).addAll(4, 5)), [1, 2, 3, 4, 5]);\n  assert.deepEqual(from(new Set([1, 2, 3]).addAll(3, 4)), [1, 2, 3, 4]);\n  assert.deepEqual(from(new Set([1, 2, 3]).addAll()), [1, 2, 3]);\n\n  assert.throws(() => addAll.call({ add() { /* empty */ } }, 1, 2, 3));\n  assert.throws(() => addAll.call({}, 1, 2, 3), TypeError);\n  assert.throws(() => addAll.call(undefined, 1, 2, 3), TypeError);\n  assert.throws(() => addAll.call(null, 1, 2, 3), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.set.delete-all.js",
    "content": "import from from 'core-js-pure/es/array/from';\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#deleteAll', assert => {\n  const { deleteAll } = Set.prototype;\n\n  assert.isFunction(deleteAll);\n  assert.arity(deleteAll, 0);\n  assert.name(deleteAll, 'deleteAll');\n  assert.nonEnumerable(Set.prototype, 'deleteAll');\n\n  let set = new Set([1, 2, 3]);\n  assert.true(set.deleteAll(1, 2));\n  assert.deepEqual(from(set), [3]);\n\n  set = new Set([1, 2, 3]);\n  assert.false(set.deleteAll(3, 4));\n  assert.deepEqual(from(set), [1, 2]);\n\n  set = new Set([1, 2, 3]);\n  assert.false(set.deleteAll(4, 5));\n  assert.deepEqual(from(set), [1, 2, 3]);\n\n  set = new Set([1, 2, 3]);\n  assert.true(set.deleteAll());\n  assert.deepEqual(from(set), [1, 2, 3]);\n\n  assert.throws(() => deleteAll.call({ delete() { /* empty */ } }, 1, 2, 3));\n  assert.throws(() => deleteAll.call({}, 1, 2, 3), TypeError);\n  assert.throws(() => deleteAll.call(undefined, 1, 2, 3), TypeError);\n  assert.throws(() => deleteAll.call(null, 1, 2, 3), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.set.every.js",
    "content": "import Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#every', assert => {\n  const { every } = Set.prototype;\n\n  assert.isFunction(every);\n  assert.arity(every, 1);\n  assert.name(every, 'every');\n  assert.nonEnumerable(Set.prototype, 'every');\n\n  const set = new Set([1]);\n  const context = {};\n  set.every(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, set, 'correct link to set in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Set([1, 2, 3]).every(it => typeof it == 'number'));\n  assert.false(new Set(['1', '2', '3']).every(it => typeof it == 'number'));\n  assert.false(new Set([1, '2', 3]).every(it => typeof it == 'number'));\n  assert.true(new Set().every(it => typeof it == 'number'));\n\n  assert.throws(() => every.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => every.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.set.filter.js",
    "content": "import from from 'core-js-pure/es/array/from';\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#filter', assert => {\n  const { filter } = Set.prototype;\n\n  assert.isFunction(filter);\n  assert.arity(filter, 1);\n  assert.name(filter, 'filter');\n  assert.nonEnumerable(Set.prototype, 'filter');\n\n  const set = new Set([1]);\n  const context = {};\n  set.filter(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, set, 'correct link to set in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Set().filter(it => it) instanceof Set);\n\n  assert.deepEqual(from(new Set([1, 2, 3, 'q', {}, 4, true, 5]).filter(it => typeof it == 'number')), [1, 2, 3, 4, 5]);\n\n  assert.throws(() => filter.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => filter.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => filter.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.set.find.js",
    "content": "import Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#find', assert => {\n  const { find } = Set.prototype;\n\n  assert.isFunction(find);\n  assert.arity(find, 1);\n  assert.name(find, 'find');\n  assert.nonEnumerable(Set.prototype, 'find');\n\n  const set = new Set([1]);\n  const context = {};\n  set.find(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, set, 'correct link to set in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.same(new Set([2, 3, 4]).find(it => it % 2), 3);\n  assert.same(new Set().find(it => it === 42), undefined);\n\n  assert.throws(() => find.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => find.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.set.from.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport toArray from 'core-js-pure/es/array/from';\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set.from', assert => {\n  const { from } = Set;\n  assert.isFunction(from);\n  assert.name(from, 'from');\n  assert.arity(from, 1);\n  assert.true(from([]) instanceof Set);\n  assert.deepEqual(toArray(from([])), []);\n  assert.deepEqual(toArray(from([1])), [1]);\n  assert.deepEqual(toArray(from([1, 2, 3, 2, 1])), [1, 2, 3]);\n  assert.deepEqual(toArray(from(createIterable([1, 2, 3, 2, 1]))), [1, 2, 3]);\n  const context = {};\n  from([1], function (element, index) {\n    assert.same(element, 1);\n    assert.same(index, 0);\n    assert.same(this, context);\n    return element;\n  }, context);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.set.join.js",
    "content": "/* eslint-disable unicorn/require-array-join-separator -- required for testing */\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#join', assert => {\n  const { join } = Set.prototype;\n\n  assert.isFunction(join);\n  assert.arity(join, 1);\n  assert.name(join, 'join');\n  assert.nonEnumerable(Set.prototype, 'join');\n\n  assert.same(new Set([1, 2, 3]).join(), '1,2,3');\n  assert.same(new Set([1, 2, 3]).join(undefined), '1,2,3');\n  assert.same(new Set([1, 2, 3]).join('|'), '1|2|3');\n\n  assert.throws(() => join.call({}), TypeError);\n  assert.throws(() => join.call(undefined), TypeError);\n  assert.throws(() => join.call(null), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.set.map.js",
    "content": "import from from 'core-js-pure/es/array/from';\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#map', assert => {\n  const { map } = Set.prototype;\n\n  assert.isFunction(map);\n  assert.arity(map, 1);\n  assert.name(map, 'map');\n  assert.nonEnumerable(Set.prototype, 'map');\n\n  const set = new Set([1]);\n  const context = {};\n  set.map(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, set, 'correct link to set in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Set().map(it => it) instanceof Set);\n\n  assert.deepEqual(from(new Set([1, 2, 3]).map(it => it ** 2)), [1, 4, 9]);\n  assert.deepEqual(from(new Set([1, 2, 3]).map(it => it % 2)), [1, 0]);\n\n  assert.throws(() => map.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => map.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => map.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.set.of.js",
    "content": "import from from 'core-js-pure/es/array/from';\nimport Set from 'core-js-pure/full/set';\n\nQUnit.test('Set.of', assert => {\n  const { of } = Set;\n  assert.isFunction(of);\n  assert.name(of, 'of');\n  assert.arity(of, 0);\n  assert.true(of() instanceof Set);\n  assert.deepEqual(from(of(1)), [1]);\n  assert.deepEqual(from(of(1, 2, 3, 2, 1)), [1, 2, 3]);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.set.reduce.js",
    "content": "import Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#reduce', assert => {\n  const { reduce } = Set.prototype;\n\n  assert.isFunction(reduce);\n  assert.arity(reduce, 1);\n  assert.name(reduce, 'reduce');\n  assert.nonEnumerable(Set.prototype, 'reduce');\n\n  const set = new Set([1]);\n  const accumulator = {};\n  set.reduce(function (memo, value, key, that) {\n    assert.same(arguments.length, 4, 'correct number of callback arguments');\n    assert.same(memo, accumulator, 'correct callback accumulator');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, set, 'correct link to set in callback');\n  }, accumulator);\n\n  assert.same(new Set([1, 2, 3]).reduce((a, b) => a + b, 1), 7, 'works with initial accumulator');\n\n  new Set([1, 2]).reduce((memo, value, key) => {\n    assert.same(memo, 1, 'correct default accumulator');\n    assert.same(value, 2, 'correct start value without initial accumulator');\n    assert.same(key, 2, 'correct start key without initial accumulator');\n  });\n\n  assert.same(new Set([1, 2, 3]).reduce((a, b) => a + b), 6, 'works without initial accumulator');\n\n  let values = '';\n  let keys = '';\n  new Set([1, 2, 3]).reduce((memo, value, key, s) => {\n    s.delete(2);\n    values += value;\n    keys += key;\n  }, 0);\n  assert.same(values, '13', 'correct order #1');\n  assert.same(keys, '13', 'correct order #2');\n\n  assert.throws(() => reduce.call({}, () => { /* empty */ }, 1), TypeError);\n  assert.throws(() => reduce.call(undefined, () => { /* empty */ }, 1), TypeError);\n  assert.throws(() => reduce.call(null, () => { /* empty */ }, 1), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.set.some.js",
    "content": "import Set from 'core-js-pure/full/set';\n\nQUnit.test('Set#some', assert => {\n  const { some } = Set.prototype;\n\n  assert.isFunction(some);\n  assert.arity(some, 1);\n  assert.name(some, 'some');\n  assert.nonEnumerable(Set.prototype, 'some');\n\n  const set = new Set([1]);\n  const context = {};\n  set.some(function (value, key, that) {\n    assert.same(arguments.length, 3, 'correct number of callback arguments');\n    assert.same(value, 1, 'correct value in callback');\n    assert.same(key, 1, 'correct key in callback');\n    assert.same(that, set, 'correct link to set in callback');\n    assert.same(this, context, 'correct callback context');\n  }, context);\n\n  assert.true(new Set([1, 2, 3]).some(it => typeof it == 'number'));\n  assert.false(new Set(['1', '2', '3']).some(it => typeof it == 'number'));\n  assert.true(new Set([1, '2', 3]).some(it => typeof it == 'number'));\n  assert.false(new Set().some(it => typeof it == 'number'));\n\n  assert.throws(() => some.call({}, () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call(undefined, () => { /* empty */ }), TypeError);\n  assert.throws(() => some.call(null, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.string.at.js",
    "content": "import { STRICT } from '../helpers/constants.js';\n\nimport at from 'core-js-pure/full/string/at';\n\nQUnit.test('String#at', assert => {\n  assert.isFunction(at);\n  // String that starts with a BMP symbol\n  // assert.same(at('abc\\uD834\\uDF06def', -Infinity), '');\n  // assert.same(at('abc\\uD834\\uDF06def', -1), '');\n  assert.same(at('abc\\uD834\\uDF06def', -0), 'a');\n  assert.same(at('abc\\uD834\\uDF06def', +0), 'a');\n  assert.same(at('abc\\uD834\\uDF06def', 1), 'b');\n  assert.same(at('abc\\uD834\\uDF06def', 3), '\\uD834\\uDF06');\n  assert.same(at('abc\\uD834\\uDF06def', 4), '\\uDF06');\n  assert.same(at('abc\\uD834\\uDF06def', 5), 'd');\n  // assert.same(at('abc\\uD834\\uDF06def', 42), '');\n  // assert.same(at('abc\\uD834\\uDF06def', Infinity), '');\n  assert.same(at('abc\\uD834\\uDF06def', null), 'a');\n  assert.same(at('abc\\uD834\\uDF06def', undefined), 'a');\n  assert.same(at('abc\\uD834\\uDF06def'), 'a');\n  assert.same(at('abc\\uD834\\uDF06def', false), 'a');\n  assert.same(at('abc\\uD834\\uDF06def', NaN), 'a');\n  assert.same(at('abc\\uD834\\uDF06def', ''), 'a');\n  assert.same(at('abc\\uD834\\uDF06def', '_'), 'a');\n  assert.same(at('abc\\uD834\\uDF06def', '1'), 'b');\n  assert.same(at('abc\\uD834\\uDF06def', []), 'a');\n  assert.same(at('abc\\uD834\\uDF06def', {}), 'a');\n  assert.same(at('abc\\uD834\\uDF06def', -0.9), 'a');\n  assert.same(at('abc\\uD834\\uDF06def', 1.9), 'b');\n  assert.same(at('abc\\uD834\\uDF06def', 7.9), 'f');\n  // assert.same(at('abc\\uD834\\uDF06def', 2 ** 32), '');\n  // String that starts with an astral symbol\n  // assert.same(at('\\uD834\\uDF06def', -Infinity), '');\n  // assert.same(at('\\uD834\\uDF06def', -1), '');\n  assert.same(at('\\uD834\\uDF06def', -0), '\\uD834\\uDF06');\n  assert.same(at('\\uD834\\uDF06def', 0), '\\uD834\\uDF06');\n  assert.same(at('\\uD834\\uDF06def', 1), '\\uDF06');\n  assert.same(at('\\uD834\\uDF06def', 2), 'd');\n  assert.same(at('\\uD834\\uDF06def', 3), 'e');\n  assert.same(at('\\uD834\\uDF06def', 4), 'f');\n  // assert.same(at('\\uD834\\uDF06def', 42), '');\n  // assert.same(at('\\uD834\\uDF06def', Infinity), '');\n  assert.same(at('\\uD834\\uDF06def', null), '\\uD834\\uDF06');\n  assert.same(at('\\uD834\\uDF06def', undefined), '\\uD834\\uDF06');\n  assert.same(at('\\uD834\\uDF06def'), '\\uD834\\uDF06');\n  assert.same(at('\\uD834\\uDF06def', false), '\\uD834\\uDF06');\n  assert.same(at('\\uD834\\uDF06def', NaN), '\\uD834\\uDF06');\n  assert.same(at('\\uD834\\uDF06def', ''), '\\uD834\\uDF06');\n  assert.same(at('\\uD834\\uDF06def', '_'), '\\uD834\\uDF06');\n  assert.same(at('\\uD834\\uDF06def', '1'), '\\uDF06');\n  // Lone high surrogates\n  // assert.same(at('\\uD834abc', -Infinity), '');\n  // assert.same(at('\\uD834abc', -1), '');\n  assert.same(at('\\uD834abc', -0), '\\uD834');\n  assert.same(at('\\uD834abc', 0), '\\uD834');\n  assert.same(at('\\uD834abc', 1), 'a');\n  // assert.same(at('\\uD834abc', 42), '');\n  // assert.same(at('\\uD834abc', Infinity), '');\n  assert.same(at('\\uD834abc', null), '\\uD834');\n  assert.same(at('\\uD834abc', undefined), '\\uD834');\n  assert.same(at('\\uD834abc'), '\\uD834');\n  assert.same(at('\\uD834abc', false), '\\uD834');\n  assert.same(at('\\uD834abc', NaN), '\\uD834');\n  assert.same(at('\\uD834abc', ''), '\\uD834');\n  assert.same(at('\\uD834abc', '_'), '\\uD834');\n  assert.same(at('\\uD834abc', '1'), 'a');\n  // Lone low surrogates\n  // assert.same(at('\\uDF06abc', -Infinity), '');\n  // assert.same(at('\\uDF06abc', -1), '');\n  assert.same(at('\\uDF06abc', -0), '\\uDF06');\n  assert.same(at('\\uDF06abc', 0), '\\uDF06');\n  assert.same(at('\\uDF06abc', 1), 'a');\n  // assert.same(at('\\uDF06abc', 42), '');\n  // assert.same(at('\\uDF06abc', Infinity), '');\n  assert.same(at('\\uDF06abc', null), '\\uDF06');\n  assert.same(at('\\uDF06abc', undefined), '\\uDF06');\n  assert.same(at('\\uDF06abc'), '\\uDF06');\n  assert.same(at('\\uDF06abc', false), '\\uDF06');\n  assert.same(at('\\uDF06abc', NaN), '\\uDF06');\n  assert.same(at('\\uDF06abc', ''), '\\uDF06');\n  assert.same(at('\\uDF06abc', '_'), '\\uDF06');\n  assert.same(at('\\uDF06abc', '1'), 'a');\n  assert.same(at(42, 0), '4');\n  assert.same(at(42, 1), '2');\n  assert.same(at({\n    toString() {\n      return 'abc';\n    },\n  }, 2), 'c');\n  if (STRICT) {\n    assert.throws(() => at(null, 0), TypeError);\n    assert.throws(() => at(undefined, 0), TypeError);\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.string.code-points.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\nimport codePoints from 'core-js-pure/full/string/code-points';\n\nQUnit.test('String#codePoints', assert => {\n  assert.isFunction(codePoints);\n  let iterator = codePoints('qwe');\n  assert.isIterator(iterator);\n  assert.isIterable(iterator);\n  assert.same(iterator[Symbol.toStringTag], 'String Iterator');\n  assert.same(String(iterator), '[object String Iterator]');\n  assert.deepEqual(iterator.next(), {\n    value: { codePoint: 113, position: 0 },\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: { codePoint: 119, position: 1 },\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: { codePoint: 101, position: 2 },\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n  iterator = codePoints('𠮷𠮷𠮷');\n  assert.deepEqual(iterator.next(), {\n    value: { codePoint: 134071, position: 0 },\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: { codePoint: 134071, position: 2 },\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: { codePoint: 134071, position: 4 },\n    done: false,\n  });\n  assert.deepEqual(iterator.next(), {\n    value: undefined,\n    done: true,\n  });\n\n  assert.throws(() => codePoints(Symbol()), 'throws on symbol context');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.string.cooked.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\nimport cooked from 'core-js-pure/full/string/cooked';\n\nQUnit.test('String.cooked', assert => {\n  assert.isFunction(cooked);\n  assert.arity(cooked, 1);\n  assert.name(cooked, 'cooked');\n  assert.same(cooked(['Hi\\\\n', '!'], 'Bob'), 'Hi\\\\nBob!', 'template is an array');\n  assert.same(cooked('test', 0, 1, 2), 't0e1s2t', 'template is a string');\n  assert.same(cooked('test', 0), 't0est', 'lacks substituting');\n  assert.same(cooked([]), '', 'empty template');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    const symbol = Symbol('cooked test');\n    assert.throws(() => cooked([symbol]), TypeError, 'throws on symbol #1');\n    assert.throws(() => cooked('test', symbol), TypeError, 'throws on symbol #2');\n  }\n\n  assert.throws(() => cooked([undefined]), TypeError);\n  assert.throws(() => cooked(null), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.string.dedent.js",
    "content": "import Symbol from 'core-js-pure/es/symbol';\nimport cooked from 'core-js-pure/full/string/cooked';\nimport dedent from 'core-js-pure/full/string/dedent';\nimport freeze from 'core-js-pure/es/object/freeze';\n\nQUnit.test('String.dedent', assert => {\n  assert.isFunction(dedent);\n  assert.arity(dedent, 1);\n  assert.name(dedent, 'dedent');\n\n  assert.same(dedent`\n    qwe\n    asd\n    zxc\n  `, 'qwe\\nasd\\nzxc', '#1');\n\n  assert.same(dedent`\n     qwe\n    asd\n     zxc\n  `, ' qwe\\nasd\\n zxc', '#2');\n\n  assert.same(dedent`\n    qwe\n    asd\n   ${ ' zxc' }\n  `, ' qwe\\n asd\\n zxc', '#3');\n\n  assert.same(dedent({ raw: freeze(['\\n  qwe\\n  ']) }), 'qwe', '#4');\n  assert.same(dedent({ raw: freeze(['\\n  qwe', '\\n   ']) }, 1), 'qwe1', '#5');\n\n  assert.same(dedent(cooked)`\n     qwe\n    asd\n     zxc\n  `, ' qwe\\nasd\\n zxc', '#6');\n\n  const tag = (it => it)`\n    abc\n  `;\n\n  assert.same(dedent(tag), dedent(tag), '#7');\n\n  if (typeof Symbol == 'function' && !Symbol.sham) {\n    assert.throws(() => dedent({ raw: freeze(['\\n', Symbol('dedent test'), '\\n']) }), TypeError, 'throws on symbol');\n  }\n\n  assert.throws(() => dedent([]), TypeError, '[]');\n  assert.throws(() => dedent(['qwe']), TypeError, '[qwe]');\n  assert.throws(() => dedent({ raw: freeze([]) }), TypeError, 'empty tpl');\n  assert.throws(() => dedent({ raw: freeze(['qwe']) }), TypeError, 'wrong start');\n  assert.throws(() => dedent({ raw: freeze(['\\n', 'qwe']) }), TypeError, 'wrong start');\n  assert.throws(() => dedent({ raw: freeze(['\\n  qwe', 5, '\\n   ']) }, 1, 2), TypeError, 'wrong part');\n  assert.throws(() => dedent([undefined]), TypeError);\n  assert.throws(() => dedent(null), TypeError);\n\n  // \\u{} (empty braces) should be an invalid escape, causing TypeError\n  assert.same(dedent({ raw: freeze(['\\n  \\\\u{41}\\n  ']) }), 'A', 'valid unicode brace escape in raw');\n  assert.throws(() => dedent({ raw: freeze(['\\n  \\\\u{}\\n  ']) }), TypeError, '\\\\u{} is an invalid escape');\n\n  // hex/unicode escapes at end of string segment\n  assert.same(dedent({ raw: freeze(['\\n  \\\\x41\\n  ']) }), 'A', 'hex escape at end of raw string');\n  assert.same(dedent({ raw: freeze(['\\n  \\\\u0041\\n  ']) }), 'A', 'unicode escape at end of raw string');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.symbol.custom-matcher.js",
    "content": "import Symbol from 'core-js-pure/full/symbol';\n\nQUnit.test('Symbol.customMatcher', assert => {\n  assert.true('customMatcher' in Symbol, 'Symbol.customMatcher available');\n  assert.true(Object(Symbol.customMatcher) instanceof Symbol, 'Symbol.customMatcher is symbol');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.symbol.is-registered-symbol.js",
    "content": "import Symbol from 'core-js-pure/full/symbol';\n\nQUnit.test('Symbol.isRegisteredSymbol', assert => {\n  const { isRegisteredSymbol } = Symbol;\n  assert.isFunction(isRegisteredSymbol, 'Symbol.isRegisteredSymbol is function');\n  assert.arity(isRegisteredSymbol, 1, 'Symbol.isRegisteredSymbol arity is 1');\n  assert.name(isRegisteredSymbol, 'isRegisteredSymbol', 'Symbol.isRegisteredSymbol.name is \"isRegisteredSymbol\"');\n\n  assert.true(isRegisteredSymbol(Symbol.for('foo')), 'registered');\n  assert.true(isRegisteredSymbol(Object(Symbol.for('foo'))), 'registered, boxed');\n  const symbol = Symbol('Symbol.isRegisteredSymbol test');\n  assert.false(isRegisteredSymbol(symbol), 'non-registered');\n  assert.false(isRegisteredSymbol(Object(symbol)), 'non-registered, boxed');\n  assert.false(isRegisteredSymbol(1), '1');\n  assert.false(isRegisteredSymbol(true), 'true');\n  assert.false(isRegisteredSymbol('1'), 'string');\n  assert.false(isRegisteredSymbol(null), 'null');\n  assert.false(isRegisteredSymbol(), 'undefined');\n  assert.false(isRegisteredSymbol({}), 'object');\n  assert.false(isRegisteredSymbol([]), 'array');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.symbol.is-registered.js",
    "content": "import Symbol from 'core-js-pure/full/symbol';\n\nQUnit.test('Symbol.isRegistered', assert => {\n  const { isRegistered } = Symbol;\n  assert.isFunction(isRegistered, 'Symbol.isRegistered is function');\n  assert.arity(isRegistered, 1, 'Symbol.isRegistered arity is 1');\n  assert.name(isRegistered, 'isRegisteredSymbol', 'Symbol.isRegistered.name is \"isRegisteredSymbol\"');\n\n  assert.true(isRegistered(Symbol.for('foo')), 'registered');\n  assert.true(isRegistered(Object(Symbol.for('foo'))), 'registered, boxed');\n  const symbol = Symbol('Symbol.isRegistered test');\n  assert.false(isRegistered(symbol), 'non-registered');\n  assert.false(isRegistered(Object(symbol)), 'non-registered, boxed');\n  assert.false(isRegistered(1), '1');\n  assert.false(isRegistered(true), 'true');\n  assert.false(isRegistered('1'), 'string');\n  assert.false(isRegistered(null), 'null');\n  assert.false(isRegistered(), 'undefined');\n  assert.false(isRegistered({}), 'object');\n  assert.false(isRegistered([]), 'array');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.symbol.is-well-known-symbol.js",
    "content": "import Symbol from 'core-js-pure/full/symbol';\n\nQUnit.test('Symbol.isWellKnownSymbol', assert => {\n  const { isWellKnownSymbol } = Symbol;\n  assert.isFunction(isWellKnownSymbol, 'Symbol.isWellKnownSymbol is function');\n  assert.arity(isWellKnownSymbol, 1, 'Symbol.isWellKnownSymbol arity is 1');\n  assert.name(isWellKnownSymbol, 'isWellKnownSymbol', 'Symbol.isWellKnownSymbol.name is \"isWellKnownSymbol\"');\n\n  assert.true(isWellKnownSymbol(Symbol.iterator), 'well-known-1');\n  assert.true(isWellKnownSymbol(Object(Symbol.iterator)), 'well-known-2, boxed');\n  assert.true(isWellKnownSymbol(Symbol.patternMatch), 'well-known-3');\n  assert.true(isWellKnownSymbol(Object(Symbol.patternMatch)), 'well-known-4, boxed');\n  const symbol = Symbol('Symbol.isWellKnownSymbol test');\n  assert.false(isWellKnownSymbol(symbol), 'non-well-known');\n  assert.false(isWellKnownSymbol(Object(symbol)), 'non-well-known, boxed');\n  assert.false(isWellKnownSymbol(1), '1');\n  assert.false(isWellKnownSymbol(true), 'true');\n  assert.false(isWellKnownSymbol('1'), 'string');\n  assert.false(isWellKnownSymbol(null), 'null');\n  assert.false(isWellKnownSymbol(), 'undefined');\n  assert.false(isWellKnownSymbol({}), 'object');\n  assert.false(isWellKnownSymbol([]), 'array');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.symbol.is-well-known.js",
    "content": "import Symbol from 'core-js-pure/full/symbol';\n\nQUnit.test('Symbol.isWellKnown', assert => {\n  const { isWellKnown } = Symbol;\n  assert.isFunction(isWellKnown, 'Symbol.isWellKnown is function');\n  assert.arity(isWellKnown, 1, 'Symbol.isWellKnown arity is 1');\n  assert.name(isWellKnown, 'isWellKnownSymbol', 'Symbol.isWellKnown.name is \"isWellKnownSymbol\"');\n\n  assert.true(isWellKnown(Symbol.iterator), 'well-known-1');\n  assert.true(isWellKnown(Object(Symbol.iterator)), 'well-known-2, boxed');\n  assert.true(isWellKnown(Symbol.patternMatch), 'well-known-3');\n  assert.true(isWellKnown(Object(Symbol.patternMatch)), 'well-known-4, boxed');\n  const symbol = Symbol('Symbol.isWellKnown test');\n  assert.false(isWellKnown(symbol), 'non-well-known');\n  assert.false(isWellKnown(Object(symbol)), 'non-well-known, boxed');\n  assert.false(isWellKnown(1), '1');\n  assert.false(isWellKnown(true), 'true');\n  assert.false(isWellKnown('1'), 'string');\n  assert.false(isWellKnown(null), 'null');\n  assert.false(isWellKnown(), 'undefined');\n  assert.false(isWellKnown({}), 'object');\n  assert.false(isWellKnown([]), 'array');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.symbol.matcher.js",
    "content": "import Symbol from 'core-js-pure/full/symbol';\n\nQUnit.test('Symbol.matcher', assert => {\n  assert.true('matcher' in Symbol, 'Symbol.matcher available');\n  assert.true(Object(Symbol.matcher) instanceof Symbol, 'Symbol.matcher is symbol');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.symbol.metadata-key.js",
    "content": "import Symbol from 'core-js-pure/full/symbol';\n\nQUnit.test('Symbol.metadataKey', assert => {\n  assert.true('metadataKey' in Symbol, 'Symbol.metadataKey available');\n  assert.true(Object(Symbol.metadataKey) instanceof Symbol, 'Symbol.metadataKey is symbol');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.symbol.metadata.js",
    "content": "import Symbol from 'core-js-pure/actual/symbol';\n\nQUnit.test('Symbol.metadata', assert => {\n  assert.true('metadata' in Symbol, 'Symbol.metadata available');\n  assert.true(Object(Symbol.metadata) instanceof Symbol, 'Symbol.metadata is symbol');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.symbol.observable.js",
    "content": "import Symbol from 'core-js-pure/full/symbol';\n\nQUnit.test('Symbol.observable', assert => {\n  assert.true('observable' in Symbol, 'Symbol.observable available');\n  assert.true(Object(Symbol.observable) instanceof Symbol, 'Symbol.observable is symbol');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.symbol.pattern-match.js",
    "content": "import Symbol from 'core-js-pure/full/symbol';\n\nQUnit.test('Symbol.patternMatch', assert => {\n  assert.true('patternMatch' in Symbol, 'Symbol.patternMatch available');\n  assert.true(Object(Symbol.patternMatch) instanceof Symbol, 'Symbol.patternMatch is symbol');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.symbol.replace-all.js",
    "content": "import Symbol from 'core-js-pure/full/symbol';\n\nQUnit.test('Symbol.replaceAll', assert => {\n  assert.true('replaceAll' in Symbol, 'Symbol.replaceAll is available');\n  assert.true(Object(Symbol.replaceAll) instanceof Symbol, 'Symbol.replaceAll is symbol');\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.weak-map.delete-all.js",
    "content": "import WeakMap from 'core-js-pure/full/weak-map';\n\nQUnit.test('WeakMap#deleteAll', assert => {\n  const { deleteAll } = WeakMap.prototype;\n\n  assert.isFunction(deleteAll);\n  assert.name(deleteAll, 'deleteAll');\n  assert.arity(deleteAll, 0);\n  assert.nonEnumerable(WeakMap.prototype, 'deleteAll');\n\n  const a = [];\n  const b = [];\n  const c = [];\n  const d = [];\n  const e = [];\n\n  let map = new WeakMap([[a, 1], [b, 2], [c, 3]]);\n  assert.true(map.deleteAll(a, b));\n  assert.false(map.has(a));\n  assert.false(map.has(b));\n  assert.true(map.has(c));\n  assert.false(map.has(d));\n  assert.false(map.has(e));\n\n  map = new WeakMap([[a, 1], [b, 2], [c, 3]]);\n  assert.false(map.deleteAll(c, d));\n  assert.true(map.has(a));\n  assert.true(map.has(b));\n  assert.false(map.has(c));\n  assert.false(map.has(d));\n  assert.false(map.has(e));\n\n  map = new WeakMap([[a, 1], [b, 2], [c, 3]]);\n  assert.false(map.deleteAll(d, e));\n  assert.true(map.has(a));\n  assert.true(map.has(b));\n  assert.true(map.has(c));\n  assert.false(map.has(d));\n  assert.false(map.has(e));\n\n  map = new WeakMap([[a, 1], [b, 2], [c, 3]]);\n  assert.true(map.deleteAll());\n  assert.true(map.has(a));\n  assert.true(map.has(b));\n  assert.true(map.has(c));\n  assert.false(map.has(d));\n  assert.false(map.has(e));\n\n  assert.throws(() => deleteAll.call({ delete() { /* empty */ } }, a, b, c));\n  assert.throws(() => deleteAll.call({}, a, b, c), TypeError);\n  assert.throws(() => deleteAll.call(undefined, a, b, c), TypeError);\n  assert.throws(() => deleteAll.call(null, a, b, c), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.weak-map.emplace.js",
    "content": "import WeakMap from 'core-js-pure/full/weak-map';\n\nQUnit.test('WeakMap#emplace', assert => {\n  const { emplace } = WeakMap.prototype;\n  assert.isFunction(emplace);\n  assert.arity(emplace, 2);\n  assert.name(emplace, 'emplace');\n  assert.nonEnumerable(WeakMap.prototype, 'emplace');\n\n  const a = {};\n  const b = {};\n\n  const map = new WeakMap([[a, 2]]);\n  let handler = {\n    update(value, key, that) {\n      assert.same(this, handler, 'correct handler in callback');\n      assert.same(arguments.length, 3, 'correct number of callback arguments');\n      assert.same(value, 2, 'correct value in callback');\n      assert.same(key, a, 'correct key in callback');\n      assert.same(that, map, 'correct map in callback');\n      return value ** 2;\n    },\n    insert() {\n      assert.avoid();\n    },\n  };\n  assert.same(map.emplace(a, handler), 4, 'returns a correct value');\n  handler = {\n    update() {\n      assert.avoid();\n    },\n    insert(key, that) {\n      assert.same(this, handler, 'correct handler in callback');\n      assert.same(arguments.length, 2, 'correct number of callback arguments');\n      assert.same(key, b, 'correct key in callback');\n      assert.same(that, map, 'correct map in callback');\n      return 3;\n    },\n  };\n  assert.same(map.emplace(b, handler), 3, 'returns a correct value');\n  assert.same(map.get(a), 4, 'correct result #1');\n  assert.same(map.get(b), 3, 'correct result #2');\n\n  assert.same(new WeakMap([[a, 2]]).emplace(b, { insert: () => 3 }), 3);\n  assert.same(new WeakMap([[a, 2]]).emplace(a, { update: value => value ** 2 }), 4);\n\n  handler = { update() { /* empty */ }, insert() { /* empty */ } };\n  assert.throws(() => new WeakMap().emplace(a), TypeError);\n  assert.throws(() => emplace.call({}, a, handler), TypeError);\n  assert.throws(() => emplace.call([], a, handler), TypeError);\n  assert.throws(() => emplace.call(undefined, a, handler), TypeError);\n  assert.throws(() => emplace.call(null, a, handler), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.weak-map.from.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport WeakMap from 'core-js-pure/full/weak-map';\n\nQUnit.test('WeakMap.from', assert => {\n  const { from } = WeakMap;\n  assert.isFunction(from);\n  assert.name(from, 'from');\n  assert.arity(from, 1);\n  assert.true(from([]) instanceof WeakMap);\n  const array = [];\n  assert.same(from([[array, 2]]).get(array), 2);\n  assert.same(from(createIterable([[array, 2]])).get(array), 2);\n  const pair = [{}, 1];\n  const context = {};\n  from([pair], function (element, index) {\n    assert.same(element, pair);\n    assert.same(index, 0);\n    assert.same(this, context);\n    return element;\n  }, context);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.weak-map.of.js",
    "content": "import WeakMap from 'core-js-pure/full/weak-map';\n\nQUnit.test('WeakMap.of', assert => {\n  const { of } = WeakMap;\n  assert.isFunction(of);\n  assert.name(of, 'of');\n  assert.arity(of, 0);\n  const array = [];\n  assert.true(of() instanceof WeakMap);\n  assert.same(of([array, 2]).get(array), 2);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.weak-map.upsert.js",
    "content": "import WeakMap from 'core-js-pure/full/weak-map';\n\nQUnit.test('WeakMap#upsert', assert => {\n  const { upsert } = WeakMap.prototype;\n  assert.isFunction(upsert);\n  assert.name(upsert, 'upsert');\n  assert.arity(upsert, 2);\n  assert.nonEnumerable(WeakMap.prototype, 'upsert');\n\n  const a = {};\n  const b = {};\n\n  const map = new WeakMap([[a, 2]]);\n  assert.same(map.upsert(a, function (value) {\n    assert.same(arguments.length, 1, 'correct number of callback arguments');\n    assert.same(value, 2, 'correct value in callback');\n    return value ** 2;\n  }, () => {\n    assert.avoid();\n    return 3;\n  }), 4, 'returns a correct value');\n  assert.same(map.upsert(b, value => {\n    assert.avoid();\n    return value ** 2;\n  }, function () {\n    assert.same(arguments.length, 0, 'correct number of callback arguments');\n    return 3;\n  }), 3, 'returns a correct value');\n  assert.same(map.get(a), 4, 'correct result #1');\n  assert.same(map.get(b), 3, 'correct result #2');\n\n  assert.same(new WeakMap([[a, 2]]).upsert(b, null, () => 3), 3);\n  assert.same(new WeakMap([[a, 2]]).upsert(a, value => value ** 2), 4);\n\n  assert.throws(() => new WeakMap().upsert(a), TypeError);\n  assert.throws(() => upsert.call({}, a, () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => upsert.call([], a, () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => upsert.call(undefined, a, () => { /* empty */ }, () => { /* empty */ }), TypeError);\n  assert.throws(() => upsert.call(null, a, () => { /* empty */ }, () => { /* empty */ }), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.weak-set.add-all.js",
    "content": "import WeakSet from 'core-js-pure/full/weak-set';\n\nQUnit.test('WeakSet#addAll', assert => {\n  const { addAll } = WeakSet.prototype;\n\n  assert.isFunction(addAll);\n  assert.arity(addAll, 0);\n  assert.name(addAll, 'addAll');\n  assert.nonEnumerable(WeakSet.prototype, 'addAll');\n\n  const a = [];\n  const b = [];\n  const c = [];\n\n  let set = new WeakSet([a]);\n  assert.same(set.addAll(b), set);\n\n  set = new WeakSet([a]).addAll(b, c);\n  assert.true(set.has(a));\n  assert.true(set.has(b));\n  assert.true(set.has(c));\n\n  set = new WeakSet([a]).addAll(a, b);\n  assert.true(set.has(a));\n  assert.true(set.has(b));\n\n  set = new WeakSet([a]).addAll();\n  assert.true(set.has(a));\n\n  assert.throws(() => addAll.call({ add() { /* empty */ } }, a, b, c));\n  assert.throws(() => addAll.call({}, a, b, c), TypeError);\n  assert.throws(() => addAll.call(undefined, a, b, c), TypeError);\n  assert.throws(() => addAll.call(null, a, b, c), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.weak-set.delete-all.js",
    "content": "import WeakSet from 'core-js-pure/full/weak-set';\n\nQUnit.test('WeakSet#deleteAll', assert => {\n  const { deleteAll } = WeakSet.prototype;\n\n  assert.isFunction(deleteAll);\n  assert.arity(deleteAll, 0);\n  assert.name(deleteAll, 'deleteAll');\n  assert.nonEnumerable(WeakSet.prototype, 'deleteAll');\n\n  const a = [];\n  const b = [];\n  const c = [];\n  const d = [];\n  const e = [];\n\n  let set = new WeakSet([a, b, c]);\n  assert.true(set.deleteAll(a, b));\n  assert.false(set.has(a));\n  assert.false(set.has(b));\n  assert.true(set.has(c));\n  assert.false(set.has(d));\n  assert.false(set.has(e));\n\n  set = new WeakSet([a, b, c]);\n  assert.false(set.deleteAll(c, d));\n  assert.true(set.has(a));\n  assert.true(set.has(b));\n  assert.false(set.has(c));\n  assert.false(set.has(d));\n  assert.false(set.has(e));\n\n  set = new WeakSet([a, b, c]);\n  assert.false(set.deleteAll(d, e));\n  assert.true(set.has(a));\n  assert.true(set.has(b));\n  assert.true(set.has(c));\n  assert.false(set.has(d));\n  assert.false(set.has(e));\n\n  set = new WeakSet([a, b, c]);\n  assert.true(set.deleteAll());\n  assert.true(set.has(a));\n  assert.true(set.has(b));\n  assert.true(set.has(c));\n  assert.false(set.has(d));\n  assert.false(set.has(e));\n\n  assert.throws(() => deleteAll.call({ delete() { /* empty */ } }, a, b, c));\n  assert.throws(() => deleteAll.call({}, a, b, c), TypeError);\n  assert.throws(() => deleteAll.call(undefined, a, b, c), TypeError);\n  assert.throws(() => deleteAll.call(null, a, b, c), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.weak-set.from.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport WeakSet from 'core-js-pure/full/weak-set';\n\nQUnit.test('WeakSet.from', assert => {\n  const { from } = WeakSet;\n  assert.isFunction(from);\n  assert.name(from, 'from');\n  assert.arity(from, 1);\n  assert.true(from([]) instanceof WeakSet);\n  const array = [];\n  assert.true(from([array]).has(array));\n  assert.true(from(createIterable([array])).has(array));\n  const object = {};\n  const context = {};\n  from([object], function (element, index) {\n    assert.same(element, object);\n    assert.same(index, 0);\n    assert.same(this, context);\n    return element;\n  }, context);\n});\n"
  },
  {
    "path": "tests/unit-pure/esnext.weak-set.of.js",
    "content": "import WeakSet from 'core-js-pure/full/weak-set';\n\nQUnit.test('WeakSet.of', assert => {\n  const { of } = WeakSet;\n  assert.isFunction(of);\n  assert.name(of, 'of');\n  assert.arity(of, 0);\n  const array = [];\n  assert.true(of() instanceof WeakSet);\n  assert.true(of(array).has(array));\n});\n"
  },
  {
    "path": "tests/unit-pure/helpers.get-iterator-method.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport getIteratorMethod from 'core-js-pure/full/get-iterator-method';\n\nQUnit.test('getIteratorMethod helper', assert => {\n  assert.isFunction(getIteratorMethod);\n  const iterable = createIterable([]);\n  const iterFn = getIteratorMethod(iterable);\n  assert.isFunction(iterFn);\n  assert.isIterator(iterFn.call(iterable));\n  assert.isFunction(getIteratorMethod([]));\n  assert.isFunction(getIteratorMethod(function () {\n    // eslint-disable-next-line prefer-rest-params -- required for testing\n    return arguments;\n  }()));\n  assert.isFunction(getIteratorMethod(Array.prototype));\n  assert.same(getIteratorMethod({}), undefined);\n});\n"
  },
  {
    "path": "tests/unit-pure/helpers.get-iterator.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport getIterator from 'core-js-pure/full/get-iterator';\n\nQUnit.test('getIterator helper', assert => {\n  assert.isFunction(getIterator);\n  assert.isIterator(getIterator([]));\n  assert.isIterator(getIterator(function () {\n    // eslint-disable-next-line prefer-rest-params -- required for testing\n    return arguments;\n  }()));\n  assert.isIterator(getIterator(createIterable([])));\n  assert.throws(() => getIterator({}), TypeError);\n});\n"
  },
  {
    "path": "tests/unit-pure/helpers.is-iterable.js",
    "content": "import { createIterable } from '../helpers/helpers.js';\n\nimport isIterable from 'core-js-pure/full/is-iterable';\n\nQUnit.test('isIterable helper', assert => {\n  assert.isFunction(isIterable);\n  assert.true(isIterable(createIterable([])));\n  assert.true(isIterable([]));\n  assert.true(isIterable(function () {\n    // eslint-disable-next-line prefer-rest-params -- required for testing\n    return arguments;\n  }()));\n  assert.true(isIterable(Array.prototype));\n  assert.false(isIterable({}));\n});\n"
  },
  {
    "path": "tests/unit-pure/web.atob.js",
    "content": "// based on https://github.com/davidchambers/Base64.js/blob/master/test/base64.js\nimport atob from 'core-js-pure/stable/atob';\n\nQUnit.test('atob', assert => {\n  assert.isFunction(atob);\n  assert.arity(atob, 1);\n\n  assert.same(atob(''), '');\n  assert.same(atob('Zg=='), 'f');\n  assert.same(atob('Zm8='), 'fo');\n  assert.same(atob('Zm9v'), 'foo');\n  assert.same(atob('cXV1eA=='), 'quux');\n  assert.same(atob('ISIjJCU='), '!\"#$%');\n  assert.same(atob('JicoKSor'), \"&'()*+\");\n  assert.same(atob('LC0uLzAxMg=='), ',-./012');\n  assert.same(atob('MzQ1Njc4OTo='), '3456789:');\n  assert.same(atob('Ozw9Pj9AQUJD'), ';<=>?@ABC');\n  assert.same(atob('REVGR0hJSktMTQ=='), 'DEFGHIJKLM');\n  assert.same(atob('Tk9QUVJTVFVWV1g='), 'NOPQRSTUVWX');\n  assert.same(atob('WVpbXF1eX2BhYmM='), 'YZ[\\\\]^_`abc');\n  assert.same(atob('ZGVmZ2hpamtsbW5vcA=='), 'defghijklmnop');\n  assert.same(atob('cXJzdHV2d3h5ent8fX4='), 'qrstuvwxyz{|}~');\n  assert.same(atob(' '), '');\n\n  assert.same(atob(42), atob('42'));\n  assert.same(atob(null), atob('null'));\n\n  assert.throws(() => atob(), TypeError, 'no args');\n  assert.throws(() => atob('a'), 'invalid #1');\n  assert.throws(() => atob('a '), 'invalid #2');\n  assert.throws(() => atob('aaaaa'), 'invalid #3');\n  assert.throws(() => atob('[object Object]'), 'invalid #4');\n});\n"
  },
  {
    "path": "tests/unit-pure/web.btoa.js",
    "content": "// based on https://github.com/davidchambers/Base64.js/blob/master/test/base64.js\nimport btoa from 'core-js-pure/stable/btoa';\n\nQUnit.test('btoa', assert => {\n  assert.isFunction(btoa);\n  assert.arity(btoa, 1);\n\n  assert.same(btoa(''), '');\n  assert.same(btoa('f'), 'Zg==');\n  assert.same(btoa('fo'), 'Zm8=');\n  assert.same(btoa('foo'), 'Zm9v');\n  assert.same(btoa('quux'), 'cXV1eA==');\n  assert.same(btoa('!\"#$%'), 'ISIjJCU=');\n  assert.same(btoa(\"&'()*+\"), 'JicoKSor');\n  assert.same(btoa(',-./012'), 'LC0uLzAxMg==');\n  assert.same(btoa('3456789:'), 'MzQ1Njc4OTo=');\n  assert.same(btoa(';<=>?@ABC'), 'Ozw9Pj9AQUJD');\n  assert.same(btoa('DEFGHIJKLM'), 'REVGR0hJSktMTQ==');\n  assert.same(btoa('NOPQRSTUVWX'), 'Tk9QUVJTVFVWV1g=');\n  assert.same(btoa('YZ[\\\\]^_`abc'), 'WVpbXF1eX2BhYmM=');\n  assert.same(btoa('defghijklmnop'), 'ZGVmZ2hpamtsbW5vcA==');\n  assert.same(btoa('qrstuvwxyz{|}~'), 'cXJzdHV2d3h5ent8fX4=');\n\n  assert.same(btoa(42), btoa('42'));\n  assert.same(btoa(null), btoa('null'));\n  assert.same(btoa({ x: 1 }), btoa('[object Object]'));\n\n  assert.throws(() => btoa(), TypeError, 'no args');\n  assert.throws(() => btoa('✈'), 'non-ASCII');\n});\n"
  },
  {
    "path": "tests/unit-pure/web.dom-collections.iterator.js",
    "content": "import { GLOBAL } from '../helpers/constants.js';\n\nimport Symbol from 'core-js-pure/es/symbol';\nimport getIteratorMethod from 'core-js-pure/stable/get-iterator-method';\n\nQUnit.test('Iterable DOM collections', assert => {\n  let absent = true;\n  const collections = [\n    'CSSRuleList',\n    'CSSStyleDeclaration',\n    'CSSValueList',\n    'ClientRectList',\n    'DOMRectList',\n    'DOMStringList',\n    'DOMTokenList',\n    'DataTransferItemList',\n    'FileList',\n    'HTMLAllCollection',\n    'HTMLCollection',\n    'HTMLFormElement',\n    'HTMLSelectElement',\n    'MediaList',\n    'MimeTypeArray',\n    'NamedNodeMap',\n    'NodeList',\n    'PaintRequestList',\n    'Plugin',\n    'PluginArray',\n    'SVGLengthList',\n    'SVGNumberList',\n    'SVGPathSegList',\n    'SVGPointList',\n    'SVGStringList',\n    'SVGTransformList',\n    'SourceBufferList',\n    'StyleSheetList',\n    'TextTrackCueList',\n    'TextTrackList',\n    'TouchList',\n  ];\n\n  for (const name of collections) {\n    const Collection = GLOBAL[name];\n    if (Collection) {\n      absent = false;\n      assert.same(Collection.prototype[Symbol.toStringTag], name, `${ name }::@@toStringTag is '${ name }'`);\n      if (Object.prototype.toString.call(Collection.prototype).slice(8, -1) === name) {\n        assert.isFunction(getIteratorMethod(Collection.prototype), `${ name }::@@iterator is function`);\n      }\n    }\n  }\n\n  if (GLOBAL.NodeList && GLOBAL.document && document.querySelectorAll && document.querySelectorAll('div') instanceof NodeList) {\n    assert.isFunction(getIteratorMethod(document.querySelectorAll('div')), 'works with document.querySelectorAll');\n  }\n\n  if (absent) {\n    assert.required('DOM collections are absent');\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/web.dom-exception.constructor.js",
    "content": "import { DESCRIPTORS, NODE } from '../helpers/constants.js';\nimport DOMException from 'core-js-pure/stable/dom-exception';\nimport Symbol from 'core-js-pure/es/symbol';\n\nconst errors = {\n  IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n  DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n  HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n  WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n  InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n  NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n  NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n  NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n  NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n  InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n  InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n  SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n  InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n  NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n  InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n  ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n  TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n  SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n  NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n  AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n  URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n  // https://github.com/whatwg/webidl/pull/1465\n  // QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n  TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n  InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n  DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 },\n};\n\nconst HAS_STACK = 'stack' in new Error('1');\n\nQUnit.test('DOMException', assert => {\n  assert.isFunction(DOMException);\n  assert.arity(DOMException, 0);\n  assert.name(DOMException, 'DOMException');\n\n  let error = new DOMException({}, 'Foo');\n  assert.true(error instanceof DOMException, 'new DOMException({}, \"Foo\") instanceof DOMException');\n  assert.same(error.message, '[object Object]', 'new DOMException({}, \"Foo\").message');\n  assert.same(error.name, 'Foo', 'new DOMException({}, \"Foo\").name');\n  assert.same(error.code, 0, 'new DOMException({}, \"Foo\").code');\n  assert.same(String(error), 'Foo: [object Object]', 'String(new DOMException({}, \"Foo\"))'); // Safari 10.1 bug\n  // assert.same(error.constructor, DOMException, 'new DOMException({}, \"Foo\").constructor');\n  assert.same(error[Symbol.toStringTag], 'DOMException', 'DOMException.prototype[Symbol.toStringTag]');\n  if (HAS_STACK) assert.true('stack' in error, \"'stack' in new DOMException()\");\n\n  assert.same(new DOMException().message, '', 'new DOMException().message');\n  assert.same(new DOMException(undefined).message, '', 'new DOMException(undefined).message');\n  assert.same(new DOMException(42).name, 'Error', 'new DOMException(42).name');\n  assert.same(new DOMException(42, undefined).name, 'Error', 'new DOMException(42, undefined).name');\n\n  for (const name in errors) {\n    error = new DOMException(42, name);\n    assert.true(error instanceof DOMException, `new DOMException(42, \"${ name }\") instanceof DOMException`);\n    assert.same(error.message, '42', `new DOMException(42, \"${ name }\").message`);\n    assert.same(error.name, name, `new DOMException(42, \"${ name }\").name`);\n    if (errors[name].m) assert.same(error.code, errors[name].c, `new DOMException(42, \"${ name }\").code`);\n    // NodeJS and Deno set codes to deprecated errors\n    else if (!NODE) assert.same(error.code, 0, `new DOMException(42, \"${ name }\").code`);\n    assert.same(String(error), `${ name }: 42`, `String(new DOMException(42, \"${ name }\"))`); // Safari 10.1 bug\n    if (HAS_STACK) assert.true('stack' in error, `'stack' in new DOMException(42, \"${ name }\")`);\n\n    assert.same(DOMException[errors[name].s], errors[name].c, `DOMException.${ errors[name].s }`);\n    assert.same(DOMException.prototype[errors[name].s], errors[name].c, `DOMException.prototype.${ errors[name].s }`);\n  }\n\n  // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n  assert.throws(() => DOMException(42, 'DataCloneError'), \"DOMException(42, 'DataCloneError')\");\n  const symbol = Symbol('DOMException constructor test');\n  assert.throws(() => new DOMException(symbol, 'DataCloneError'), \"new DOMException(Symbol(), 'DataCloneError')\");\n  assert.throws(() => new DOMException(42, symbol), 'new DOMException(42, Symbol())');\n  if (DESCRIPTORS) {\n    // assert.throws(() => DOMException.prototype.message, 'DOMException.prototype.message'); // FF55- , Safari 10.1 bug\n    // assert.throws(() => DOMException.prototype.name, 'DOMException.prototype.name'); // FF55-, Safari 10.1 bug bug\n    // assert.throws(() => DOMException.prototype.code, 'DOMException.prototype.code'); // Safari 10.1 bug\n    // assert.throws(() => DOMException.prototype.toString(), 'DOMException.prototype.toString()'); // FF55- bug\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/web.queue-microtask.js",
    "content": "import { timeLimitedPromise } from '../helpers/helpers.js';\n\nimport queueMicrotask from 'core-js-pure/full/queue-microtask';\n\nQUnit.test('queueMicrotask', assert => {\n  assert.isFunction(queueMicrotask);\n  assert.arity(queueMicrotask, 1);\n  assert.name(queueMicrotask, 'queueMicrotask');\n\n  return timeLimitedPromise(3e3, resolve => {\n    let called = false;\n    queueMicrotask(() => {\n      called = true;\n      resolve();\n    });\n    assert.false(called, 'async');\n  }).then(() => {\n    assert.required('works');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/web.self.js",
    "content": "import self from 'core-js-pure/stable/self';\n\nQUnit.test('self', assert => {\n  assert.same(self, Object(self), 'is object');\n  assert.same(self.Math, Math, 'contains globals');\n});\n"
  },
  {
    "path": "tests/unit-pure/web.set-immediate.js",
    "content": "import { timeLimitedPromise } from '../helpers/helpers.js';\n\nimport setImmediate from 'core-js-pure/stable/set-immediate';\nimport clearImmediate from 'core-js-pure/stable/clear-immediate';\n\nQUnit.test('setImmediate / clearImmediate', assert => {\n  assert.isFunction(setImmediate, 'setImmediate is function');\n  assert.isFunction(clearImmediate, 'clearImmediate is function');\n  let called = false;\n\n  const promise = timeLimitedPromise(1e3, resolve => {\n    setImmediate(() => {\n      called = true;\n      resolve();\n    });\n  }).then(() => {\n    assert.required('setImmediate works');\n  }, () => {\n    assert.avoid('setImmediate works');\n  }).then(() => {\n    return timeLimitedPromise(1e3, resolve => {\n      setImmediate((a, b) => {\n        resolve(a + b);\n      }, 'a', 'b');\n    });\n  }).then(it => {\n    assert.same(it, 'ab', 'setImmediate works with additional args');\n  }, () => {\n    assert.avoid('setImmediate works with additional args');\n  }).then(() => {\n    return timeLimitedPromise(50, resolve => {\n      clearImmediate(setImmediate(resolve));\n    });\n  }).then(() => {\n    assert.avoid('clearImmediate works');\n  }, () => {\n    assert.required('clearImmediate works');\n  });\n\n  assert.false(called, 'setImmediate is async');\n\n  return promise;\n});\n"
  },
  {
    "path": "tests/unit-pure/web.set-interval.js",
    "content": "import { timeLimitedPromise } from '../helpers/helpers.js';\n\nimport setTimeout from 'core-js-pure/stable/set-timeout';\nimport setInterval from 'core-js-pure/stable/set-interval';\n\nQUnit.test('setInterval / clearInterval', assert => {\n  assert.isFunction(setInterval, 'setInterval is function');\n  assert.isFunction(clearInterval, 'clearInterval is function');\n\n  return timeLimitedPromise(1e4, (resolve, reject) => {\n    let i = 0;\n    const interval = setInterval((a, b) => {\n      if (a + b !== 'ab' || i > 2) reject({ a, b, i });\n      if (i++ === 2) {\n        clearInterval(interval);\n        setTimeout(resolve, 30);\n      }\n    }, 5, 'a', 'b');\n  }).then(() => {\n    assert.required('setInterval & clearInterval works with additional args');\n  }, (error = {}) => {\n    assert.avoid(`setInterval & clearInterval works with additional args: ${ error.a }, ${ error.b }, times: ${ error.i }`);\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/web.set-timeout.js",
    "content": "import { timeLimitedPromise } from '../helpers/helpers.js';\n\nimport setTimeout from 'core-js-pure/stable/set-timeout';\n\nQUnit.test('setTimeout / clearTimeout', assert => {\n  assert.isFunction(setTimeout, 'setTimeout is function');\n  assert.isFunction(clearTimeout, 'clearTimeout is function');\n\n  return timeLimitedPromise(1e3, resolve => {\n    setTimeout((a, b) => { resolve(a + b); }, 10, 'a', 'b');\n  }).then(it => {\n    assert.same(it, 'ab', 'setTimeout works with additional args');\n  }, () => {\n    assert.avoid('setTimeout works with additional args');\n  }).then(() => {\n    return timeLimitedPromise(50, resolve => {\n      clearTimeout(setTimeout(resolve, 10));\n    });\n  }).then(() => {\n    assert.avoid('clearTimeout works with wrapped setTimeout');\n  }, () => {\n    assert.required('clearTimeout works with wrapped setTimeout');\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/web.structured-clone.js",
    "content": "// Originally from: https://github.com/web-platform-tests/wpt/blob/4b35e758e2fc4225368304b02bcec9133965fd1a/IndexedDB/structured-clone.any.js\n// Copyright © web-platform-tests contributors. Available under the 3-Clause BSD License.\n/* eslint-disable es/no-error-cause, es/no-typed-arrays -- safe */\nimport { GLOBAL, NODE, BUN } from '../helpers/constants.js';\nimport { bufferToArray, fromSource } from '../helpers/helpers.js';\n\nimport structuredClone from 'core-js-pure/stable/structured-clone';\nimport from from 'core-js-pure/es/array/from';\nimport assign from 'core-js-pure/es/object/assign';\nimport getPrototypeOf from 'core-js-pure/es/object/get-prototype-of';\nimport keys from 'core-js-pure/es/object/keys';\nimport Symbol from 'core-js-pure/es/symbol';\nimport Map from 'core-js-pure/es/map';\nimport Set from 'core-js-pure/es/set';\nimport AggregateError from 'core-js-pure/es/aggregate-error';\nimport DOMException from 'core-js-pure/stable/dom-exception';\n\nQUnit.module('structuredClone', () => {\n  QUnit.test('identity', assert => {\n    assert.isFunction(structuredClone, 'structuredClone is a function');\n    assert.name(structuredClone, 'structuredClone');\n    assert.arity(structuredClone, 1);\n    assert.throws(() => structuredClone(), 'throws without arguments');\n    assert.same(structuredClone(1, null), 1, 'null as options');\n    assert.same(structuredClone(1, undefined), 1, 'undefined as options');\n  });\n\n  function cloneTest(value, verifyFunc) {\n    verifyFunc(value, structuredClone(value));\n  }\n\n  // Specialization of cloneTest() for objects, with common asserts.\n  function cloneObjectTest(assert, value, verifyFunc) {\n    cloneTest(value, (orig, clone) => {\n      assert.notSame(orig, clone, 'clone should have different reference');\n      assert.same(typeof clone, 'object', 'clone should be an object');\n      // https://github.com/qunitjs/node-qunit/issues/146\n      assert.true(getPrototypeOf(orig) === getPrototypeOf(clone), 'clone should have same prototype');\n      verifyFunc(orig, clone);\n    });\n  }\n\n  // ECMAScript types\n\n  // Primitive values: Undefined, Null, Boolean, Number, BigInt, String\n  const booleans = [false, true];\n  const numbers = [\n    NaN,\n    -Infinity,\n    -Number.MAX_VALUE,\n    -0xFFFFFFFF,\n    -0x80000000,\n    -0x7FFFFFFF,\n    -1,\n    -Number.MIN_VALUE,\n    -0,\n    0,\n    1,\n    Number.MIN_VALUE,\n    0x7FFFFFFF,\n    0x80000000,\n    0xFFFFFFFF,\n    Number.MAX_VALUE,\n    Infinity,\n  ];\n\n  const bigints = fromSource(`[\n    -12345678901234567890n,\n    -1n,\n    0n,\n    1n,\n    12345678901234567890n,\n  ]`) || [];\n\n  const strings = [\n    '',\n    'this is a sample string',\n    'null(\\0)',\n  ];\n\n  QUnit.test('primitives', assert => {\n    const primitives = [undefined, null, ...booleans, ...numbers, ...bigints, ...strings];\n\n    for (const value of primitives) cloneTest(value, (orig, clone) => {\n      assert.same(orig, clone, 'primitives should be same after cloned');\n    });\n  });\n\n  // \"Primitive\" Objects (Boolean, Number, BigInt, String)\n  QUnit.test('primitive objects', assert => {\n    const primitives = [...booleans, ...numbers, ...bigints, ...strings];\n\n    for (const value of primitives) cloneObjectTest(assert, Object(value), (orig, clone) => {\n      assert.same(orig.valueOf(), clone.valueOf(), 'primitive wrappers should have same value');\n    });\n  });\n\n  // Dates\n  QUnit.test('Date', assert => {\n    const dates = [\n      new Date(-1e13),\n      new Date(-1e12),\n      new Date(-1e9),\n      new Date(-1e6),\n      new Date(-1e3),\n      new Date(0),\n      new Date(1e3),\n      new Date(1e6),\n      new Date(1e9),\n      new Date(1e12),\n      new Date(1e13),\n    ];\n\n    for (const date of dates) cloneTest(date, (orig, clone) => {\n      assert.notSame(orig, clone);\n      assert.same(typeof clone, 'object');\n      assert.same(getPrototypeOf(orig), getPrototypeOf(clone));\n      assert.same(orig.valueOf(), clone.valueOf());\n    });\n  });\n\n  // Regular Expressions\n  QUnit.test('RegExp', assert => {\n    const regexes = [\n      new RegExp(),\n      /abc/,\n      /abc/g,\n      /abc/i,\n      /abc/gi,\n    ];\n\n    const giuy = fromSource('/abc/giuy');\n    if (giuy) regexes.push(giuy);\n\n    for (const regex of regexes) cloneObjectTest(assert, regex, (orig, clone) => {\n      assert.same(orig.toString(), clone.toString(), `regex ${ regex }`);\n    });\n  });\n\n  if (fromSource('ArrayBuffer.prototype.slice || DataView')) {\n    // ArrayBuffer\n    if (typeof Uint8Array == 'function') QUnit.test('ArrayBuffer', assert => { // Crashes\n      cloneObjectTest(assert, new Uint8Array([0, 1, 254, 255]).buffer, (orig, clone) => {\n        assert.arrayEqual(new Uint8Array(orig), new Uint8Array(clone));\n      });\n    });\n\n    // TODO SharedArrayBuffer\n\n    // Array Buffer Views\n    if (typeof Int8Array != 'undefined') {\n      QUnit.test('%TypedArray%', assert => {\n        const arrays = [\n          new Uint8Array([]),\n          new Uint8Array([0, 1, 254, 255]),\n          new Uint16Array([0x0000, 0x0001, 0xFFFE, 0xFFFF]),\n          new Uint32Array([0x00000000, 0x00000001, 0xFFFFFFFE, 0xFFFFFFFF]),\n          new Int8Array([0, 1, 254, 255]),\n          new Int16Array([0x0000, 0x0001, 0xFFFE, 0xFFFF]),\n          new Int32Array([0x00000000, 0x00000001, 0xFFFFFFFE, 0xFFFFFFFF]),\n          new Float32Array([-Infinity, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, Infinity, NaN]),\n          new Float64Array([-Infinity, -Number.MAX_VALUE, -Number.MIN_VALUE, 0, Number.MIN_VALUE, Number.MAX_VALUE, Infinity, NaN]),\n        ];\n\n        if (typeof Uint8ClampedArray != 'undefined') {\n          arrays.push(new Uint8ClampedArray([0, 1, 254, 255]));\n        }\n\n        for (const array of arrays) cloneObjectTest(assert, array, (orig, clone) => {\n          assert.arrayEqual(orig, clone);\n        });\n      });\n\n      if (fromSource('({}).toString.call(new DataView(new ArrayBuffer([1, 2]))) === \"[object DataView]\"')) {\n        QUnit.test('DataView', assert => {\n          const array = new Int8Array([1, 2, 3, 4]);\n          const view = new DataView(array.buffer);\n\n          cloneObjectTest(assert, view, (orig, clone) => {\n            assert.same(orig.byteLength, clone.byteLength);\n            assert.same(orig.byteOffset, clone.byteOffset);\n            assert.arrayEqual(new Int8Array(orig.buffer), new Int8Array(clone.buffer));\n          });\n        });\n      }\n    }\n\n    if ('resizable' in ArrayBuffer.prototype) {\n      QUnit.test('Resizable ArrayBuffer', assert => {\n        const array = [1, 2, 3, 4, 5, 6, 7, 8];\n\n        // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe\n        let buffer = new ArrayBuffer(8, { maxByteLength: 16 });\n        new Int8Array(buffer).set(array);\n        let copy = structuredClone(buffer);\n        assert.arrayEqual(bufferToArray(copy), array, 'resizable-ab-1');\n        assert.true(copy.resizable, 'resizable-ab-1');\n\n        buffer = new ArrayBuffer(8);\n        new Int8Array(buffer).set(array);\n        copy = structuredClone(buffer);\n        assert.arrayEqual(bufferToArray(copy), array, 'non-resizable-ab-1');\n        assert.false(copy.resizable, 'non-resizable-ab-1');\n\n        // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe\n        buffer = new ArrayBuffer(8, { maxByteLength: 16 });\n        let tarray = new Int8Array(buffer);\n        tarray.set(array);\n        copy = structuredClone(tarray).buffer;\n        assert.arrayEqual(bufferToArray(copy), array, 'resizable-ab-2');\n        assert.true(copy.resizable, 'resizable-ab-2');\n\n        buffer = new ArrayBuffer(8);\n        tarray = new Int8Array(buffer);\n        tarray.set(array);\n        copy = structuredClone(tarray).buffer;\n        assert.arrayEqual(bufferToArray(copy), array, 'non-resizable-ab-2');\n        assert.false(copy.resizable, 'non-resizable-ab-2');\n      });\n    }\n  }\n\n  // Map\n  QUnit.test('Map', assert => {\n    cloneObjectTest(assert, new Map([[1, 2], [3, 4]]), (orig, clone) => {\n      assert.deepEqual(from(orig.keys()), from(clone.keys()));\n      assert.deepEqual(from(orig.values()), from(clone.values()));\n    });\n  });\n\n  // Set\n  QUnit.test('Set', assert => {\n    cloneObjectTest(assert, new Set([1, 2, 3, 4]), (orig, clone) => {\n      assert.deepEqual(from(orig.values()), from(clone.values()));\n    });\n  });\n\n  // Error\n  QUnit.test('Error', assert => {\n    const errors = [\n      ['Error', new Error()],\n      ['Error', new Error('msg', { cause: 42 })],\n      ['EvalError', new EvalError()],\n      ['EvalError', new EvalError('msg', { cause: 42 })],\n      ['RangeError', new RangeError()],\n      ['RangeError', new RangeError('msg', { cause: 42 })],\n      ['ReferenceError', new ReferenceError()],\n      ['ReferenceError', new ReferenceError('msg', { cause: 42 })],\n      ['SyntaxError', new SyntaxError()],\n      ['SyntaxError', new SyntaxError('msg', { cause: 42 })],\n      ['TypeError', new TypeError()],\n      ['TypeError', new TypeError('msg', { cause: 42 })],\n      ['URIError', new URIError()],\n      ['URIError', new URIError('msg', { cause: 42 })],\n      ['AggregateError', new AggregateError([1, 2])],\n      ['AggregateError', new AggregateError([1, 2], 'msg', { cause: 42 })],\n    ];\n\n    const compile = fromSource('WebAssembly.CompileError()');\n    const link = fromSource('WebAssembly.LinkError()');\n    const runtime = fromSource('WebAssembly.RuntimeError()');\n\n    if (compile && compile.name === 'CompileError') errors.push(['CompileError', compile]);\n    if (link && link.name === 'LinkError') errors.push(['LinkError', link]);\n    if (runtime && runtime.name === 'RuntimeError') errors.push(['RuntimeError', runtime]);\n\n    for (const [name, error] of errors) cloneObjectTest(assert, error, (orig, clone) => {\n      assert.same(orig.constructor, clone.constructor, `${ name }#constructor`);\n      assert.same(orig.name, clone.name, `${ name }#name`);\n      assert.same(orig.message, clone.message, `${ name }#message`);\n      assert.same(orig.stack, clone.stack, `${ name }#stack`);\n      assert.same(orig.cause, clone.cause, `${ name }#cause`);\n      assert.deepEqual(orig.errors, clone.errors, `${ name }#errors`);\n    });\n  });\n\n  // Arrays\n  QUnit.test('Array', assert => {\n    const arrays = [\n      [],\n      [1, 2, 3],\n      Array(1),\n      assign(\n        ['foo', 'bar'],\n        { 10: true, 11: false, 20: 123, 21: 456, 30: null }),\n      assign(\n        ['foo', 'bar'],\n        { a: true, b: false, foo: 123, bar: 456, '': null }),\n    ];\n\n    for (const array of arrays) cloneObjectTest(assert, array, (orig, clone) => {\n      assert.deepEqual(orig, clone, `array content should be same: ${ array }`);\n      assert.deepEqual(orig.length, clone.length, `array length should be same: ${ array }`);\n      assert.deepEqual(keys(orig), keys(clone), `array key should be same: ${ array }`);\n      for (const key of keys(orig)) {\n        assert.same(orig[key], clone[key], `Property ${ key }`);\n      }\n    });\n  });\n\n  // Objects\n  QUnit.test('Object', assert => {\n    cloneObjectTest(assert, { foo: true, bar: false }, (orig, clone) => {\n      assert.deepEqual(keys(orig), keys(clone));\n      for (const key of keys(orig)) {\n        assert.same(orig[key], clone[key], `Property ${ key }`);\n      }\n    });\n  });\n\n  // [Serializable] Platform objects\n\n  // Geometry types\n  if (typeof DOMMatrix == 'function') {\n    QUnit.test('Geometry types, DOMMatrix', assert => {\n      cloneObjectTest(assert, new DOMMatrix(), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.same(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  if (typeof DOMMatrixReadOnly == 'function' && typeof DOMMatrixReadOnly.fromMatrix == 'function') {\n    QUnit.test('Geometry types, DOMMatrixReadOnly', assert => {\n      cloneObjectTest(assert, new DOMMatrixReadOnly(), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.same(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  if (typeof DOMPoint == 'function') {\n    QUnit.test('Geometry types, DOMPoint', assert => {\n      cloneObjectTest(assert, new DOMPoint(1, 2, 3, 4), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.same(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  if (typeof DOMPointReadOnly == 'function' && typeof DOMPointReadOnly.fromPoint == 'function') {\n    QUnit.test('Geometry types, DOMPointReadOnly', assert => {\n      cloneObjectTest(assert, new DOMPointReadOnly(1, 2, 3, 4), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.same(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  if (typeof DOMQuad == 'function' && typeof DOMPoint == 'function') {\n    QUnit.test('Geometry types, DOMQuad', assert => {\n      cloneObjectTest(assert, new DOMQuad(\n        new DOMPoint(1, 2, 3, 4),\n        new DOMPoint(2, 2, 3, 4),\n        new DOMPoint(1, 3, 3, 4),\n        new DOMPoint(1, 2, 4, 4),\n      ), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.deepEqual(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  if (fromSource('new DOMRect(1, 2, 3, 4)')) {\n    QUnit.test('Geometry types, DOMRect', assert => {\n      cloneObjectTest(assert, new DOMRect(1, 2, 3, 4), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.same(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  if (typeof DOMRectReadOnly == 'function' && typeof DOMRectReadOnly.fromRect == 'function') {\n    QUnit.test('Geometry types, DOMRectReadOnly', assert => {\n      cloneObjectTest(assert, new DOMRectReadOnly(1, 2, 3, 4), (orig, clone) => {\n        for (const key of keys(getPrototypeOf(orig))) {\n          assert.same(orig[key], clone[key], `Property ${ key }`);\n        }\n      });\n    });\n  }\n\n  // Safari 8- does not support `{ colorSpace }` option\n  if (fromSource('new ImageData(new ImageData(8, 8).data, 8, 8, { colorSpace: new ImageData(8, 8).colorSpace })')) {\n    QUnit.test('ImageData', assert => {\n      const imageData = new ImageData(8, 8);\n      for (let i = 0; i < 256; ++i) {\n        imageData.data[i] = i;\n      }\n      cloneObjectTest(assert, imageData, (orig, clone) => {\n        assert.same(orig.width, clone.width);\n        assert.same(orig.height, clone.height);\n        assert.same(orig.colorSpace, clone.colorSpace);\n        assert.arrayEqual(orig.data, clone.data);\n      });\n    });\n  }\n\n  if (fromSource('new Blob([\"test\"])')) QUnit.test('Blob', assert => {\n    cloneObjectTest(\n      assert,\n      new Blob(['This is a test.'], { type: 'a/b' }),\n      (orig, clone) => {\n        assert.same(orig.size, clone.size);\n        assert.same(orig.type, clone.type);\n        // TODO: async\n        // assert.same(await orig.text(), await clone.text());\n      });\n  });\n\n  QUnit.test('DOMException', assert => {\n    const errors = [\n      new DOMException(),\n      new DOMException('foo', 'DataCloneError'),\n    ];\n\n    for (const error of errors) cloneObjectTest(assert, error, (orig, clone) => {\n      assert.same(orig.name, clone.name);\n      assert.same(orig.message, clone.message);\n      assert.same(orig.code, clone.code);\n      assert.same(orig.stack, clone.stack);\n    });\n  });\n\n  // https://github.com/oven-sh/bun/issues/11696\n  if (!BUN && fromSource('new File([\"test\"], \"foo.txt\")')) QUnit.test('File', assert => {\n    cloneObjectTest(\n      assert,\n      new File(['This is a test.'], 'foo.txt', { type: 'c/d' }),\n      (orig, clone) => {\n        assert.same(orig.size, clone.size);\n        assert.same(orig.type, clone.type);\n        assert.same(orig.name, clone.name);\n        assert.same(orig.lastModified, clone.lastModified);\n        // TODO: async\n        // assert.same(await orig.text(), await clone.text());\n      });\n  });\n\n  // FileList\n  if (fromSource('new File([\"test\"], \"foo.txt\")') && fromSource('new DataTransfer() && \"items\" in DataTransfer.prototype')) QUnit.test('FileList', assert => {\n    const transfer = new DataTransfer();\n    transfer.items.add(new File(['test'], 'foo.txt'));\n    cloneObjectTest(\n      assert,\n      transfer.files,\n      (orig, clone) => {\n        assert.same(clone.length, 1);\n        assert.same(orig[0].size, clone[0].size);\n        assert.same(orig[0].type, clone[0].type);\n        assert.same(orig[0].name, clone[0].name);\n        assert.same(orig[0].lastModified, clone[0].lastModified);\n      },\n    );\n  });\n\n  // Non-serializable types\n  QUnit.test('Non-serializable types', assert => {\n    const nons = [\n      function () { return 1; },\n      Symbol('desc'),\n      GLOBAL,\n    ];\n\n    const event = fromSource('new Event(\"\")');\n    const port = fromSource('new MessageChannel().port1');\n\n    // NodeJS events are simple objects\n    if (event && !NODE) nons.push(event);\n    if (port) nons.push(port);\n\n    for (const it of nons) {\n      // native NodeJS `structuredClone` throws a `TypeError` on transferable non-serializable instead of `DOMException`\n      // https://github.com/nodejs/node/issues/40841\n      assert.throws(() => structuredClone(it));\n    }\n  });\n});\n"
  },
  {
    "path": "tests/unit-pure/web.url-search-params.js",
    "content": "import { DESCRIPTORS, BUN } from '../helpers/constants.js';\nimport { createIterable } from '../helpers/helpers.js';\n\nimport getPrototypeOf from 'core-js-pure/es/object/get-prototype-of';\nimport getOwnPropertyDescriptor from 'core-js-pure/es/object/get-own-property-descriptor';\nimport Symbol from 'core-js-pure/es/symbol';\nimport URL from 'core-js-pure/stable/url';\nimport URLSearchParams from 'core-js-pure/stable/url-search-params';\n\nQUnit.test('URLSearchParams', assert => {\n  assert.isFunction(URLSearchParams);\n  assert.arity(URLSearchParams, 0);\n\n  assert.same(String(new URLSearchParams()), '');\n  assert.same(String(new URLSearchParams('')), '');\n  assert.same(String(new URLSearchParams('a=b')), 'a=b');\n  assert.same(String(new URLSearchParams(new URLSearchParams('a=b'))), 'a=b');\n  assert.same(String(new URLSearchParams([])), '');\n  assert.same(String(new URLSearchParams([[1, 2], ['a', 'b']])), '1=2&a=b');\n  assert.same(String(new URLSearchParams(createIterable([createIterable(['a', 'b']), createIterable(['c', 'd'])]))), 'a=b&c=d');\n  assert.same(String(new URLSearchParams({})), '');\n  assert.same(String(new URLSearchParams({ 1: 2, a: 'b' })), '1=2&a=b');\n\n  assert.same(String(new URLSearchParams('?a=b')), 'a=b', 'leading ? should be ignored');\n  assert.same(String(new URLSearchParams('??a=b')), '%3Fa=b');\n  assert.same(String(new URLSearchParams('?')), '');\n  assert.same(String(new URLSearchParams('??')), '%3F=');\n\n  assert.same(String(new URLSearchParams('a=b c')), 'a=b+c');\n  assert.same(String(new URLSearchParams('a=b&b=c&a=d')), 'a=b&b=c&a=d');\n\n  assert.same(String(new URLSearchParams('a==')), 'a=%3D');\n  assert.same(String(new URLSearchParams('a=b=')), 'a=b%3D');\n  assert.same(String(new URLSearchParams('a=b=c')), 'a=b%3Dc');\n  assert.same(String(new URLSearchParams('a==b')), 'a=%3Db');\n\n  let params = new URLSearchParams('a=b');\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.false(params.has('b'), 'search params object has not got name \"b\"');\n\n  params = new URLSearchParams('a=b&c');\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.true(params.has('c'), 'search params object has name \"c\"');\n\n  params = new URLSearchParams('&a&&& &&&&&a+b=& c&m%c3%b8%c3%b8');\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.true(params.has('a b'), 'search params object has name \"a b\"');\n  assert.true(params.has(' '), 'search params object has name \" \"');\n  assert.false(params.has('c'), 'search params object did not have the name \"c\"');\n  assert.true(params.has(' c'), 'search params object has name \" c\"');\n  assert.true(params.has('møø'), 'search params object has name \"møø\"');\n\n  params = new URLSearchParams('a=b+c');\n  assert.same(params.get('a'), 'b c', 'parse +');\n  params = new URLSearchParams('a+b=c');\n  assert.same(params.get('a b'), 'c', 'parse +');\n\n  params = new URLSearchParams('a=b c');\n  assert.same(params.get('a'), 'b c', 'parse \" \"');\n  params = new URLSearchParams('a b=c');\n  assert.same(params.get('a b'), 'c', 'parse \" \"');\n\n  params = new URLSearchParams('a=b%20c');\n  assert.same(params.get('a'), 'b c', 'parse %20');\n  params = new URLSearchParams('a%20b=c');\n  assert.same(params.get('a b'), 'c', 'parse %20');\n\n  params = new URLSearchParams('a=b\\0c');\n  assert.same(params.get('a'), 'b\\0c', 'parse \\\\0');\n  params = new URLSearchParams('a\\0b=c');\n  assert.same(params.get('a\\0b'), 'c', 'parse \\\\0');\n\n  params = new URLSearchParams('a=b%00c');\n  assert.same(params.get('a'), 'b\\0c', 'parse %00');\n  params = new URLSearchParams('a%00b=c');\n  assert.same(params.get('a\\0b'), 'c', 'parse %00');\n\n  params = new URLSearchParams('a=b\\u2384');\n  assert.same(params.get('a'), 'b\\u2384', 'parse \\u2384');\n  params = new URLSearchParams('a\\u2384b=c');\n  assert.same(params.get('a\\u2384b'), 'c', 'parse \\u2384');\n\n  params = new URLSearchParams('a=b%e2%8e%84');\n  assert.same(params.get('a'), 'b\\u2384', 'parse %e2%8e%84');\n  params = new URLSearchParams('a%e2%8e%84b=c');\n  assert.same(params.get('a\\u2384b'), 'c', 'parse %e2%8e%84');\n\n  params = new URLSearchParams('a=b\\uD83D\\uDCA9c');\n  assert.same(params.get('a'), 'b\\uD83D\\uDCA9c', 'parse \\uD83D\\uDCA9');\n  params = new URLSearchParams('a\\uD83D\\uDCA9b=c');\n  assert.same(params.get('a\\uD83D\\uDCA9b'), 'c', 'parse \\uD83D\\uDCA9');\n\n  params = new URLSearchParams('a=b%f0%9f%92%a9c');\n  assert.same(params.get('a'), 'b\\uD83D\\uDCA9c', 'parse %f0%9f%92%a9');\n  params = new URLSearchParams('a%f0%9f%92%a9b=c');\n  assert.same(params.get('a\\uD83D\\uDCA9b'), 'c', 'parse %f0%9f%92%a9');\n\n  params = new URLSearchParams();\n  params.set('query', '+15555555555');\n  assert.same(params.toString(), 'query=%2B15555555555');\n  assert.same(params.get('query'), '+15555555555', 'parse encoded +');\n  params = new URLSearchParams(params.toString());\n  assert.same(params.get('query'), '+15555555555', 'parse encoded +');\n\n  params = new URLSearchParams('b=%2sf%2a');\n  assert.same(params.get('b'), '%2sf*', 'parse encoded %2sf%2a');\n  params = new URLSearchParams('b=%%2a');\n  assert.same(params.get('b'), '%*', 'parse encoded b=%%2a');\n\n  assert.same(String(new URLSearchParams('%C2')), '%EF%BF%BD=');\n  assert.same(String(new URLSearchParams('%F0%9F%D0%90')), '%EF%BF%BD%D0%90=');\n  assert.same(String(new URLSearchParams('%25')), '%25=');\n  assert.same(String(new URLSearchParams('%4')), '%254=');\n  assert.same(String(new URLSearchParams('%C3%ZZ')), '%EF%BF%BD%25ZZ=', 'invalid hex in continuation byte preserved');\n\n  // overlong UTF-8 encodings\n  assert.same(String(new URLSearchParams('%C0%AF')), '%EF%BF%BD%EF%BF%BD=', 'overlong 2-byte slash');\n  assert.same(String(new URLSearchParams('%C0%80')), '%EF%BF%BD%EF%BF%BD=', 'overlong 2-byte NUL');\n  assert.same(String(new URLSearchParams('%E0%80%AF')), '%EF%BF%BD%EF%BF%BD%EF%BF%BD=', 'overlong 3-byte slash');\n  assert.same(String(new URLSearchParams('%F0%80%80%AF')), '%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD=', 'overlong 4-byte slash');\n\n  // surrogate codepoints encoded in UTF-8\n  assert.same(String(new URLSearchParams('%ED%A0%80')), '%EF%BF%BD%EF%BF%BD%EF%BF%BD=', 'UTF-8 encoded U+D800');\n  assert.same(String(new URLSearchParams('%ED%BF%BF')), '%EF%BF%BD%EF%BF%BD%EF%BF%BD=', 'UTF-8 encoded U+DFFF');\n\n  // incomplete sequences with out-of-range continuation bytes per WHATWG encoding spec\n  assert.same(String(new URLSearchParams('%ED%A0')), '%EF%BF%BD%EF%BF%BD=', 'incomplete surrogate: ED A0');\n  assert.same(String(new URLSearchParams('%E0%80')), '%EF%BF%BD%EF%BF%BD=', 'incomplete overlong 3-byte: E0 80');\n  assert.same(String(new URLSearchParams('%F0%80%80')), '%EF%BF%BD%EF%BF%BD%EF%BF%BD=', 'incomplete overlong 4-byte: F0 80 80');\n  assert.same(String(new URLSearchParams('%F4%90')), '%EF%BF%BD%EF%BF%BD=', 'incomplete out-of-range 4-byte: F4 90');\n\n  const testData = [\n    { input: '?a=%', output: [['a', '%']], name: 'handling %' },\n    { input: { '+': '%C2' }, output: [['+', '%C2']], name: 'object with +' },\n    { input: { c: 'x', a: '?' }, output: [['c', 'x'], ['a', '?']], name: 'object with two keys' },\n    { input: [['c', 'x'], ['a', '?']], output: [['c', 'x'], ['a', '?']], name: 'array with two keys' },\n    // eslint-disable-next-line @stylistic/max-len -- ignore\n    // !!! { input: { 'a\\0b': '42', 'c\\uD83D': '23', dሴ: 'foo' }, output: [['a\\0b', '42'], ['c\\uFFFD', '23'], ['d\\u1234', 'foo']], name: 'object with NULL, non-ASCII, and surrogate keys' },\n  ];\n\n  for (const { input, output, name } of testData) {\n    params = new URLSearchParams(input);\n    let i = 0;\n    params.forEach((value, key) => {\n      const [reqKey, reqValue] = output[i++];\n      assert.same(key, reqKey, `construct with ${ name }`);\n      assert.same(value, reqValue, `construct with ${ name }`);\n    });\n  }\n\n  // https://github.com/oven-sh/bun/issues/9253\n  if (!BUN) assert.throws(() => {\n    // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n    URLSearchParams('');\n  }, 'throws w/o `new`');\n\n  assert.throws(() => {\n    new URLSearchParams([[1, 2, 3]]);\n  }, 'sequence elements must be pairs #1');\n\n  assert.throws(() => {\n    new URLSearchParams([createIterable([createIterable([1, 2, 3])])]);\n  }, 'sequence elements must be pairs #2');\n\n  assert.throws(() => {\n    new URLSearchParams([[1]]);\n  }, 'sequence elements must be pairs #3');\n\n  assert.throws(() => {\n    new URLSearchParams([createIterable([createIterable([1])])]);\n  }, 'sequence elements must be pairs #4');\n});\n\nQUnit.test('URLSearchParams#append', assert => {\n  const { append } = URLSearchParams.prototype;\n  assert.isFunction(append);\n  assert.arity(append, 2);\n  assert.enumerable(URLSearchParams.prototype, 'append');\n\n  assert.same(new URLSearchParams().append('a', 'b'), undefined, 'void');\n\n  let params = new URLSearchParams();\n  params.append('a', 'b');\n  assert.same(String(params), 'a=b');\n  params.append('a', 'b');\n  assert.same(String(params), 'a=b&a=b');\n  params.append('a', 'c');\n  assert.same(String(params), 'a=b&a=b&a=c');\n\n  params = new URLSearchParams();\n  params.append('', '');\n  assert.same(String(params), '=');\n  params.append('', '');\n  assert.same(String(params), '=&=');\n\n  params = new URLSearchParams();\n  params.append(undefined, undefined);\n  assert.same(String(params), 'undefined=undefined');\n  params.append(undefined, undefined);\n  assert.same(String(params), 'undefined=undefined&undefined=undefined');\n\n  params = new URLSearchParams();\n  params.append(null, null);\n  assert.same(String(params), 'null=null');\n  params.append(null, null);\n  assert.same(String(params), 'null=null&null=null');\n\n  params = new URLSearchParams();\n  params.append('first', 1);\n  params.append('second', 2);\n  params.append('third', '');\n  params.append('first', 10);\n  assert.true(params.has('first'), 'search params object has name \"first\"');\n  assert.same(params.get('first'), '1', 'search params object has name \"first\" with value \"1\"');\n  assert.same(params.get('second'), '2', 'search params object has name \"second\" with value \"2\"');\n  assert.same(params.get('third'), '', 'search params object has name \"third\" with value \"\"');\n  params.append('first', 10);\n  assert.same(params.get('first'), '1', 'search params object has name \"first\" with value \"1\"');\n\n  assert.throws(() => {\n    return new URLSearchParams('').append();\n  }, 'throws w/o arguments');\n});\n\nQUnit.test('URLSearchParams#delete', assert => {\n  const $delete = URLSearchParams.prototype.delete;\n  assert.isFunction($delete);\n  assert.arity($delete, 1);\n  assert.enumerable(URLSearchParams.prototype, 'delete');\n\n  let params = new URLSearchParams('a=b&c=d');\n  params.delete('a');\n  assert.same(String(params), 'c=d');\n\n  params = new URLSearchParams('a=a&b=b&a=a&c=c');\n  params.delete('a');\n  assert.same(String(params), 'b=b&c=c');\n\n  params = new URLSearchParams('a=a&=&b=b&c=c');\n  params.delete('');\n  assert.same(String(params), 'a=a&b=b&c=c');\n\n  params = new URLSearchParams('a=a&null=null&b=b');\n  params.delete(null);\n  assert.same(String(params), 'a=a&b=b');\n\n  params = new URLSearchParams('a=a&undefined=undefined&b=b');\n  params.delete(undefined);\n  assert.same(String(params), 'a=a&b=b');\n\n  params = new URLSearchParams();\n  params.append('first', 1);\n  assert.true(params.has('first'), 'search params object has name \"first\"');\n  assert.same(params.get('first'), '1', 'search params object has name \"first\" with value \"1\"');\n  params.delete('first');\n  assert.false(params.has('first'), 'search params object has no \"first\" name');\n  params.append('first', 1);\n  params.append('first', 10);\n  params.delete('first');\n  assert.false(params.has('first'), 'search params object has no \"first\" name');\n\n  params = new URLSearchParams('a=1&a=2&a=null&a=3&b=4');\n  params.delete('a', 2);\n  assert.same(String(params), 'a=1&a=null&a=3&b=4');\n\n  params = new URLSearchParams('a=1&a=1&b=2&a=1');\n  params.delete('a', '1');\n  assert.same(String(params), 'b=2', 'delete with value removes all matching name+value pairs');\n\n  params = new URLSearchParams('a=1&a=2&a=null&a=3&b=4');\n  params.delete('a', null);\n  assert.same(String(params), 'a=1&a=2&a=3&b=4');\n\n  params = new URLSearchParams('a=1&a=2&a=null&a=3&b=4');\n  params.delete('a', undefined);\n  assert.same(String(params), 'b=4');\n\n  // delete with value should not drop entries with the same key before the target\n  params = new URLSearchParams('b=1&a=2&b=3');\n  params.delete('a', '2');\n  assert.same(String(params), 'b=1&b=3', 'entries before target with same key preserved');\n\n  params = new URLSearchParams('a=1&a=2&b=3');\n  params.delete('a', '1');\n  assert.same(String(params), 'a=2&b=3', 'only matching name+value pairs removed, rest preserved');\n\n  params = new URLSearchParams('a=1&b=2');\n  params.delete('a', '999');\n  assert.same(String(params), 'a=1&b=2', 'no match leaves all entries intact');\n\n  if (DESCRIPTORS) {\n    let url = new URL('http://example.com/?param1&param2');\n    url.searchParams.delete('param1');\n    url.searchParams.delete('param2');\n    assert.same(String(url), 'http://example.com/', 'url.href does not have ?');\n    assert.same(url.search, '', 'url.search does not have ?');\n\n    url = new URL('http://example.com/?');\n    url.searchParams.delete('param1');\n    // assert.same(String(url), 'http://example.com/', 'url.href does not have ?'); // Safari bug\n    assert.same(url.search, '', 'url.search does not have ?');\n  }\n\n  assert.throws(() => {\n    return new URLSearchParams('').delete();\n  }, 'throws w/o arguments');\n});\n\nQUnit.test('URLSearchParams#get', assert => {\n  const { get } = URLSearchParams.prototype;\n  assert.isFunction(get);\n  assert.arity(get, 1);\n  assert.enumerable(URLSearchParams.prototype, 'get');\n\n  let params = new URLSearchParams('a=b&c=d');\n  assert.same(params.get('a'), 'b');\n  assert.same(params.get('c'), 'd');\n  assert.same(params.get('e'), null);\n\n  params = new URLSearchParams('a=b&c=d&a=e');\n  assert.same(params.get('a'), 'b');\n\n  params = new URLSearchParams('=b&c=d');\n  assert.same(params.get(''), 'b');\n\n  params = new URLSearchParams('a=&c=d&a=e');\n  assert.same(params.get('a'), '');\n\n  params = new URLSearchParams('first=second&third&&');\n  assert.true(params.has('first'), 'Search params object has name \"first\"');\n  assert.same(params.get('first'), 'second', 'Search params object has name \"first\" with value \"second\"');\n  assert.same(params.get('third'), '', 'Search params object has name \"third\" with the empty value.');\n  assert.same(params.get('fourth'), null, 'Search params object has no \"fourth\" name and value.');\n\n  assert.same(new URLSearchParams('a=b c').get('a'), 'b c');\n  assert.same(new URLSearchParams('a b=c').get('a b'), 'c');\n\n  assert.same(new URLSearchParams('a=b%20c').get('a'), 'b c', 'parse %20');\n  assert.same(new URLSearchParams('a%20b=c').get('a b'), 'c', 'parse %20');\n\n  assert.same(new URLSearchParams('a=b\\0c').get('a'), 'b\\0c', 'parse \\\\0');\n  assert.same(new URLSearchParams('a\\0b=c').get('a\\0b'), 'c', 'parse \\\\0');\n\n  assert.same(new URLSearchParams('a=b%2Bc').get('a'), 'b+c', 'parse %2B');\n  assert.same(new URLSearchParams('a%2Bb=c').get('a+b'), 'c', 'parse %2B');\n\n  assert.same(new URLSearchParams('a=b%00c').get('a'), 'b\\0c', 'parse %00');\n  assert.same(new URLSearchParams('a%00b=c').get('a\\0b'), 'c', 'parse %00');\n\n  assert.same(new URLSearchParams('a==').get('a'), '=', 'parse =');\n  assert.same(new URLSearchParams('a=b=').get('a'), 'b=', 'parse =');\n  assert.same(new URLSearchParams('a=b=c').get('a'), 'b=c', 'parse =');\n  assert.same(new URLSearchParams('a==b').get('a'), '=b', 'parse =');\n\n  assert.same(new URLSearchParams('a=b\\u2384').get('a'), 'b\\u2384', 'parse \\\\u2384');\n  assert.same(new URLSearchParams('a\\u2384b=c').get('a\\u2384b'), 'c', 'parse \\\\u2384');\n\n  assert.same(new URLSearchParams('a=b%e2%8e%84').get('a'), 'b\\u2384', 'parse %e2%8e%84');\n  assert.same(new URLSearchParams('a%e2%8e%84b=c').get('a\\u2384b'), 'c', 'parse %e2%8e%84');\n\n  assert.same(new URLSearchParams('a=b\\uD83D\\uDCA9c').get('a'), 'b\\uD83D\\uDCA9c', 'parse \\\\uD83D\\\\uDCA9');\n  assert.same(new URLSearchParams('a\\uD83D\\uDCA9b=c').get('a\\uD83D\\uDCA9b'), 'c', 'parse \\\\uD83D\\\\uDCA9');\n\n  assert.same(new URLSearchParams('a=b%f0%9f%92%a9c').get('a'), 'b\\uD83D\\uDCA9c', 'parse %f0%9f%92%a9');\n  assert.same(new URLSearchParams('a%f0%9f%92%a9b=c').get('a\\uD83D\\uDCA9b'), 'c', 'parse %f0%9f%92%a9');\n\n  assert.same(new URLSearchParams('=').get(''), '', 'parse =');\n\n  assert.throws(() => {\n    return new URLSearchParams('').get();\n  }, 'throws w/o arguments');\n});\n\nQUnit.test('URLSearchParams#getAll', assert => {\n  const { getAll } = URLSearchParams.prototype;\n  assert.isFunction(getAll);\n  assert.arity(getAll, 1);\n  assert.enumerable(URLSearchParams.prototype, 'getAll');\n\n  let params = new URLSearchParams('a=b&c=d');\n  assert.arrayEqual(params.getAll('a'), ['b']);\n  assert.arrayEqual(params.getAll('c'), ['d']);\n  assert.arrayEqual(params.getAll('e'), []);\n\n  params = new URLSearchParams('a=b&c=d&a=e');\n  assert.arrayEqual(params.getAll('a'), ['b', 'e']);\n\n  params = new URLSearchParams('=b&c=d');\n  assert.arrayEqual(params.getAll(''), ['b']);\n\n  params = new URLSearchParams('a=&c=d&a=e');\n  assert.arrayEqual(params.getAll('a'), ['', 'e']);\n\n  params = new URLSearchParams('a=1&a=2&a=3&a');\n  assert.arrayEqual(params.getAll('a'), ['1', '2', '3', ''], 'search params object has expected name \"a\" values');\n  params.set('a', 'one');\n  assert.arrayEqual(params.getAll('a'), ['one'], 'search params object has expected name \"a\" values');\n\n  assert.throws(() => {\n    return new URLSearchParams('').getAll();\n  }, 'throws w/o arguments');\n});\n\nQUnit.test('URLSearchParams#has', assert => {\n  const { has } = URLSearchParams.prototype;\n  assert.isFunction(has);\n  assert.arity(has, 1);\n  assert.enumerable(URLSearchParams.prototype, 'has');\n\n  let params = new URLSearchParams('a=b&c=d');\n  assert.true(params.has('a'));\n  assert.true(params.has('c'));\n  assert.false(params.has('e'));\n\n  params = new URLSearchParams('a=b&c=d&a=e');\n  assert.true(params.has('a'));\n\n  params = new URLSearchParams('=b&c=d');\n  assert.true(params.has(''));\n\n  params = new URLSearchParams('null=a');\n  assert.true(params.has(null));\n\n  params = new URLSearchParams('a=b&c=d&&');\n  params.append('first', 1);\n  params.append('first', 2);\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.true(params.has('c'), 'search params object has name \"c\"');\n  assert.true(params.has('first'), 'search params object has name \"first\"');\n  assert.false(params.has('d'), 'search params object has no name \"d\"');\n  params.delete('first');\n  assert.false(params.has('first'), 'search params object has no name \"first\"');\n\n  params = new URLSearchParams('a=1&a=2&a=null&a=3&b=4');\n  assert.true(params.has('a', 2));\n  assert.true(params.has('a', null));\n  assert.false(params.has('a', 4));\n  assert.true(params.has('b', 4));\n  assert.false(params.has('b', null));\n  assert.true(params.has('b', undefined));\n  assert.false(params.has('c', undefined));\n\n  assert.throws(() => {\n    return new URLSearchParams('').has();\n  }, 'throws w/o arguments');\n});\n\nQUnit.test('URLSearchParams#set', assert => {\n  const { set } = URLSearchParams.prototype;\n  assert.isFunction(set);\n  assert.arity(set, 2);\n  assert.enumerable(URLSearchParams.prototype, 'set');\n\n  let params = new URLSearchParams('a=b&c=d');\n  params.set('a', 'B');\n  assert.same(String(params), 'a=B&c=d');\n\n  params = new URLSearchParams('a=b&c=d&a=e');\n  params.set('a', 'B');\n  assert.same(String(params), 'a=B&c=d');\n  params.set('e', 'f');\n  assert.same(String(params), 'a=B&c=d&e=f');\n\n  params = new URLSearchParams('a=1&a=2&a=3');\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.same(params.get('a'), '1', 'search params object has name \"a\" with value \"1\"');\n  params.set('first', 4);\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.same(params.get('a'), '1', 'search params object has name \"a\" with value \"1\"');\n  assert.same(String(params), 'a=1&a=2&a=3&first=4');\n  params.set('a', 4);\n  assert.true(params.has('a'), 'search params object has name \"a\"');\n  assert.same(params.get('a'), '4', 'search params object has name \"a\" with value \"4\"');\n  assert.same(String(params), 'a=4&first=4');\n\n  assert.throws(() => new URLSearchParams('').set(), 'throws w/o arguments');\n\n  assert.throws(() => new URLSearchParams('').set('a'), 'throws with only 1 argument');\n});\n\nQUnit.test('URLSearchParams#sort', assert => {\n  const { sort } = URLSearchParams.prototype;\n  assert.isFunction(sort);\n  assert.arity(sort, 0);\n  assert.enumerable(URLSearchParams.prototype, 'sort');\n\n  let params = new URLSearchParams('a=1&b=4&a=3&b=2');\n  params.sort();\n  assert.same(String(params), 'a=1&a=3&b=4&b=2');\n  params.delete('a');\n  params.append('a', '0');\n  params.append('b', '0');\n  params.sort();\n  assert.same(String(params), 'a=0&b=4&b=2&b=0');\n\n  const testData = [\n    {\n      input: 'z=b&a=b&z=a&a=a',\n      output: [['a', 'b'], ['a', 'a'], ['z', 'b'], ['z', 'a']],\n    },\n    {\n      input: '\\uFFFD=x&\\uFFFC&\\uFFFD=a',\n      output: [['\\uFFFC', ''], ['\\uFFFD', 'x'], ['\\uFFFD', 'a']],\n    },\n    {\n      input: 'ﬃ&🌈', // 🌈 > code point, but < code unit because two code units\n      output: [['🌈', ''], ['ﬃ', '']],\n    },\n    {\n      input: 'é&e\\uFFFD&e\\u0301',\n      output: [['e\\u0301', ''], ['e\\uFFFD', ''], ['é', '']],\n    },\n    {\n      input: 'z=z&a=a&z=y&a=b&z=x&a=c&z=w&a=d&z=v&a=e&z=u&a=f&z=t&a=g',\n      output: [\n        ['a', 'a'],\n        ['a', 'b'],\n        ['a', 'c'],\n        ['a', 'd'],\n        ['a', 'e'],\n        ['a', 'f'],\n        ['a', 'g'],\n        ['z', 'z'],\n        ['z', 'y'],\n        ['z', 'x'],\n        ['z', 'w'],\n        ['z', 'v'],\n        ['z', 'u'],\n        ['z', 't'],\n      ],\n    },\n    {\n      input: 'bbb&bb&aaa&aa=x&aa=y',\n      output: [['aa', 'x'], ['aa', 'y'], ['aaa', ''], ['bb', ''], ['bbb', '']],\n    },\n    {\n      input: 'z=z&=f&=t&=x',\n      output: [['', 'f'], ['', 't'], ['', 'x'], ['z', 'z']],\n    },\n    {\n      input: 'a🌈&a💩',\n      output: [['a🌈', ''], ['a💩', '']],\n    },\n  ];\n\n  for (const { input, output } of testData) {\n    let i = 0;\n    params = new URLSearchParams(input);\n    params.sort();\n    params.forEach((value, key) => {\n      const [reqKey, reqValue] = output[i++];\n      assert.same(key, reqKey);\n      assert.same(value, reqValue);\n    });\n\n    i = 0;\n    const url = new URL(`?${ input }`, 'https://example/');\n    params = url.searchParams;\n    params.sort();\n    params.forEach((value, key) => {\n      const [reqKey, reqValue] = output[i++];\n      assert.same(key, reqKey);\n      assert.same(value, reqValue);\n    });\n  }\n\n  if (DESCRIPTORS) {\n    const url = new URL('http://example.com/?');\n    url.searchParams.sort();\n    assert.same(url.href, 'http://example.com/', 'Sorting non-existent params removes ? from URL');\n    assert.same(url.search, '', 'Sorting non-existent params removes ? from URL');\n  }\n});\n\nQUnit.test('URLSearchParams#toString', assert => {\n  const { toString } = URLSearchParams.prototype;\n  assert.isFunction(toString);\n  assert.arity(toString, 0);\n\n  let params = new URLSearchParams();\n  params.append('a', 'b c');\n  assert.same(String(params), 'a=b+c');\n  params.delete('a');\n  params.append('a b', 'c');\n  assert.same(String(params), 'a+b=c');\n\n  params = new URLSearchParams();\n  params.append('a', '');\n  assert.same(String(params), 'a=');\n  params.append('a', '');\n  assert.same(String(params), 'a=&a=');\n  params.append('', 'b');\n  assert.same(String(params), 'a=&a=&=b');\n  params.append('', '');\n  assert.same(String(params), 'a=&a=&=b&=');\n  params.append('', '');\n  assert.same(String(params), 'a=&a=&=b&=&=');\n\n  params = new URLSearchParams();\n  params.append('', 'b');\n  assert.same(String(params), '=b');\n  params.append('', 'b');\n  assert.same(String(params), '=b&=b');\n\n  params = new URLSearchParams();\n  params.append('', '');\n  assert.same(String(params), '=');\n  params.append('', '');\n  assert.same(String(params), '=&=');\n\n  params = new URLSearchParams();\n  params.append('a', 'b+c');\n  assert.same(String(params), 'a=b%2Bc');\n  params.delete('a');\n  params.append('a+b', 'c');\n  assert.same(String(params), 'a%2Bb=c');\n\n  params = new URLSearchParams();\n  params.append('=', 'a');\n  assert.same(String(params), '%3D=a');\n  params.append('b', '=');\n  assert.same(String(params), '%3D=a&b=%3D');\n\n  params = new URLSearchParams();\n  params.append('&', 'a');\n  assert.same(String(params), '%26=a');\n  params.append('b', '&');\n  assert.same(String(params), '%26=a&b=%26');\n\n  params = new URLSearchParams();\n  params.append('a', '\\r');\n  assert.same(String(params), 'a=%0D');\n\n  params = new URLSearchParams();\n  params.append('a', '\\n');\n  assert.same(String(params), 'a=%0A');\n\n  params = new URLSearchParams();\n  params.append('a', '\\r\\n');\n  assert.same(String(params), 'a=%0D%0A');\n\n  params = new URLSearchParams();\n  params.append('a', 'b%c');\n  assert.same(String(params), 'a=b%25c');\n  params.delete('a');\n  params.append('a%b', 'c');\n  assert.same(String(params), 'a%25b=c');\n\n  params = new URLSearchParams();\n  params.append('a', 'b\\0c');\n  assert.same(String(params), 'a=b%00c');\n  params.delete('a');\n  params.append('a\\0b', 'c');\n  assert.same(String(params), 'a%00b=c');\n\n  params = new URLSearchParams();\n  params.append('a', 'b\\uD83D\\uDCA9c');\n  assert.same(String(params), 'a=b%F0%9F%92%A9c');\n  params.delete('a');\n  params.append('a\\uD83D\\uDCA9b', 'c');\n  assert.same(String(params), 'a%F0%9F%92%A9b=c');\n\n  params = new URLSearchParams('a=b&c=d&&e&&');\n  assert.same(String(params), 'a=b&c=d&e=');\n  params = new URLSearchParams('a = b &a=b&c=d%20');\n  assert.same(String(params), 'a+=+b+&a=b&c=d+');\n  params = new URLSearchParams('a=&a=b');\n  assert.same(String(params), 'a=&a=b');\n});\n\nQUnit.test('URLSearchParams#forEach', assert => {\n  const { forEach } = URLSearchParams.prototype;\n  assert.isFunction(forEach);\n  assert.arity(forEach, 1);\n  assert.enumerable(URLSearchParams.prototype, 'forEach');\n\n  const expectedValues = { a: '1', b: '2', c: '3' };\n  let params = new URLSearchParams('a=1&b=2&c=3');\n  let result = '';\n  params.forEach((value, key, that) => {\n    assert.same(params.get(key), expectedValues[key]);\n    assert.same(value, expectedValues[key]);\n    assert.same(that, params);\n    result += key;\n  });\n  assert.same(result, 'abc');\n\n  new URL('http://a.b/c').searchParams.forEach(() => {\n    assert.avoid();\n  });\n\n  // fails in Chrome 66-\n  if (DESCRIPTORS) {\n    const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4');\n    params = url.searchParams;\n    result = '';\n    params.forEach((val, key) => {\n      url.search = 'x=1&y=2&z=3';\n      result += key + val;\n    });\n    assert.same(result, 'a1y2z3');\n  }\n\n  // fails in Chrome 66-\n  params = new URLSearchParams('a=1&b=2&c=3');\n  result = '';\n  params.forEach((value, key) => {\n    params.delete('b');\n    result += key + value;\n  });\n  assert.same(result, 'a1c3');\n});\n\nQUnit.test('URLSearchParams#entries', assert => {\n  const { entries } = URLSearchParams.prototype;\n  assert.isFunction(entries);\n  assert.arity(entries, 0);\n  assert.enumerable(URLSearchParams.prototype, 'entries');\n\n  const expectedValues = { a: '1', b: '2', c: '3' };\n  let params = new URLSearchParams('a=1&b=2&c=3');\n  let iterator = params.entries();\n  let result = '';\n  let entry;\n  while (!(entry = iterator.next()).done) {\n    const [key, value] = entry.value;\n    assert.same(params.get(key), expectedValues[key]);\n    assert.same(value, expectedValues[key]);\n    result += key;\n  }\n  assert.same(result, 'abc');\n\n  assert.true(new URL('http://a.b/c').searchParams.entries().next().done, 'should be finished');\n\n  // fails in Chrome 66-\n  if (DESCRIPTORS) {\n    const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4');\n    iterator = url.searchParams.entries();\n    result = '';\n    while (!(entry = iterator.next()).done) {\n      const [key, value] = entry.value;\n      url.search = 'x=1&y=2&z=3';\n      result += key + value;\n    }\n    assert.same(result, 'a1y2z3');\n  }\n\n  // fails in Chrome 66-\n  params = new URLSearchParams('a=1&b=2&c=3');\n  iterator = params.entries();\n  result = '';\n  while (!(entry = iterator.next()).done) {\n    params.delete('b');\n    const [key, value] = entry.value;\n    result += key + value;\n  }\n  assert.same(result, 'a1c3');\n\n  if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().entries()), 'next').enumerable, 'enumerable .next');\n});\n\nQUnit.test('URLSearchParams#keys', assert => {\n  const { keys } = URLSearchParams.prototype;\n  assert.isFunction(keys);\n  assert.arity(keys, 0);\n  assert.enumerable(URLSearchParams.prototype, 'keys');\n\n  let iterator = new URLSearchParams('a=1&b=2&c=3').keys();\n  let result = '';\n  let entry;\n  while (!(entry = iterator.next()).done) {\n    result += entry.value;\n  }\n  assert.same(result, 'abc');\n\n  assert.true(new URL('http://a.b/c').searchParams.keys().next().done, 'should be finished');\n\n  // fails in Chrome 66-\n  if (DESCRIPTORS) {\n    const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4');\n    iterator = url.searchParams.keys();\n    result = '';\n    while (!(entry = iterator.next()).done) {\n      const key = entry.value;\n      url.search = 'x=1&y=2&z=3';\n      result += key;\n    }\n    assert.same(result, 'ayz');\n  }\n\n  // fails in Chrome 66-\n  const params = new URLSearchParams('a=1&b=2&c=3');\n  iterator = params.keys();\n  result = '';\n  while (!(entry = iterator.next()).done) {\n    params.delete('b');\n    const key = entry.value;\n    result += key;\n  }\n  assert.same(result, 'ac');\n\n  if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().keys()), 'next').enumerable, 'enumerable .next');\n});\n\nQUnit.test('URLSearchParams#values', assert => {\n  const { values } = URLSearchParams.prototype;\n  assert.isFunction(values);\n  assert.arity(values, 0);\n  assert.enumerable(URLSearchParams.prototype, 'values');\n\n  let iterator = new URLSearchParams('a=1&b=2&c=3').values();\n  let result = '';\n  let entry;\n  while (!(entry = iterator.next()).done) {\n    result += entry.value;\n  }\n  assert.same(result, '123');\n\n  assert.true(new URL('http://a.b/c').searchParams.values().next().done, 'should be finished');\n\n  // fails in Chrome 66-\n  if (DESCRIPTORS) {\n    const url = new URL('http://a.b/c?a=a&b=b&c=c&d=d');\n    iterator = url.searchParams.values();\n    result = '';\n    while (!(entry = iterator.next()).done) {\n      const { value } = entry;\n      url.search = 'x=x&y=y&z=z';\n      result += value;\n    }\n    assert.same(result, 'ayz');\n  }\n\n  // fails in Chrome 66-\n  const params = new URLSearchParams('a=1&b=2&c=3');\n  iterator = params.values();\n  result = '';\n  while (!(entry = iterator.next()).done) {\n    params.delete('b');\n    const key = entry.value;\n    result += key;\n  }\n  assert.same(result, '13');\n\n  if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().values()), 'next').enumerable, 'enumerable .next');\n});\n\nQUnit.test('URLSearchParams#@@iterator', assert => {\n  const entries = URLSearchParams.prototype[Symbol.iterator];\n  assert.isFunction(entries);\n  assert.arity(entries, 0);\n\n  assert.same(entries, URLSearchParams.prototype.entries);\n\n  const expectedValues = { a: '1', b: '2', c: '3' };\n  let params = new URLSearchParams('a=1&b=2&c=3');\n  let iterator = params[Symbol.iterator]();\n  let result = '';\n  let entry;\n  while (!(entry = iterator.next()).done) {\n    const [key, value] = entry.value;\n    assert.same(params.get(key), expectedValues[key]);\n    assert.same(value, expectedValues[key]);\n    result += key;\n  }\n  assert.same(result, 'abc');\n\n  assert.true(new URL('http://a.b/c').searchParams[Symbol.iterator]().next().done, 'should be finished');\n\n  // fails in Chrome 66-\n  if (DESCRIPTORS) {\n    const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4');\n    iterator = url.searchParams[Symbol.iterator]();\n    result = '';\n    while (!(entry = iterator.next()).done) {\n      const [key, value] = entry.value;\n      url.search = 'x=1&y=2&z=3';\n      result += key + value;\n    }\n    assert.same(result, 'a1y2z3');\n  }\n\n  // fails in Chrome 66-\n  params = new URLSearchParams('a=1&b=2&c=3');\n  iterator = params[Symbol.iterator]();\n  result = '';\n  while (!(entry = iterator.next()).done) {\n    params.delete('b');\n    const [key, value] = entry.value;\n    result += key + value;\n  }\n  assert.same(result, 'a1c3');\n\n  if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams()[Symbol.iterator]()), 'next').enumerable, 'enumerable .next');\n});\n\nQUnit.test('URLSearchParams#size', assert => {\n  const params = new URLSearchParams('a=1&b=2&b=3');\n  assert.true('size' in params);\n  assert.same(params.size, 3);\n\n  if (DESCRIPTORS) {\n    assert.true('size' in URLSearchParams.prototype);\n\n    const { enumerable, configurable, get } = getOwnPropertyDescriptor(URLSearchParams.prototype, 'size');\n\n    assert.true(enumerable, 'enumerable');\n    // https://github.com/oven-sh/bun/issues/9251\n    if (!BUN) assert.true(configurable, 'configurable');\n\n    assert.throws(() => get.call([]));\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/web.url.can-parse.js",
    "content": "import canParse from 'core-js-pure/stable/url/can-parse';\n\nQUnit.test('URL.canParse', assert => {\n  assert.isFunction(canParse);\n  assert.arity(canParse, 1);\n  assert.name(canParse, 'canParse');\n\n  assert.false(canParse(undefined), 'undefined');\n  assert.false(canParse(undefined, undefined), 'undefined, undefined');\n  assert.true(canParse('q:w'), 'q:w');\n  assert.true(canParse('q:w', undefined), 'q:w, undefined');\n  // assert.false(canParse(undefined, 'q:w'), 'undefined, q:w'); // fails in Chromium on Windows\n  assert.true(canParse('q:/w'), 'q:/w');\n  assert.true(canParse('q:/w', undefined), 'q:/w, undefined');\n  assert.true(canParse(undefined, 'q:/w'), 'undefined, q:/w');\n  assert.false(canParse('https://login:password@examp:le.com:8080/?a=1&b=2&a=3&c=4#fragment'), 'https://login:password@examp:le.com:8080/?a=1&b=2&a=3&c=4#fragment');\n  assert.true(canParse('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'), 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment');\n  assert.true(canParse('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment', undefined), 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment, undefined');\n  assert.true(canParse('x', 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'), 'x, https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment');\n\n  assert.throws(() => canParse(), 'no args');\n  assert.throws(() => canParse({ toString() { throw new Error('thrower'); } }), 'conversion thrower #1');\n  assert.throws(() => canParse('q:w', { toString() { throw new Error('thrower'); } }), 'conversion thrower #2');\n});\n"
  },
  {
    "path": "tests/unit-pure/web.url.js",
    "content": "/* eslint-disable es/no-object-getownpropertydescriptor, unicorn/relative-url-style -- required for testing */\nimport { DESCRIPTORS, NODE } from '../helpers/constants.js';\nimport urlTestData from '../wpt-url-resources/urltestdata.js';\nimport settersTestData from '../wpt-url-resources/setters.js';\nimport toASCIITestData from '../wpt-url-resources/toascii.js';\n\nimport URL from 'core-js-pure/stable/url';\nimport URLSearchParams from 'core-js-pure/stable/url-search-params';\n\nconst { hasOwnProperty } = Object.prototype;\n\nQUnit.test('URL constructor', assert => {\n  assert.isFunction(URL);\n  if (!NODE) assert.arity(URL, 1);\n\n  assert.same(String(new URL('http://www.domain.com/a/b')), 'http://www.domain.com/a/b');\n  assert.same(String(new URL('/c/d', 'http://www.domain.com/a/b')), 'http://www.domain.com/c/d');\n  assert.same(String(new URL('b/c', 'http://www.domain.com/a/b')), 'http://www.domain.com/a/b/c');\n  assert.same(String(new URL('b/c', new URL('http://www.domain.com/a/b'))), 'http://www.domain.com/a/b/c');\n  assert.same(String(new URL({ toString: () => 'https://example.org/' })), 'https://example.org/');\n\n  assert.same(String(new URL('nonspecial://example.com/')), 'nonspecial://example.com/');\n\n  // SPECIAL_AUTHORITY_SLASHES state - special schemes without base\n  assert.same(String(new URL('http://example.com/path')), 'http://example.com/path', 'special authority slashes with //');\n  assert.same(String(new URL('http:/example.com/path')), 'http://example.com/path', 'special authority slashes with single /');\n  assert.same(String(new URL('http:example.com/path')), 'http://example.com/path', 'special authority slashes without /');\n  assert.same(String(new URL('https:////example.com/path')), 'https://example.com/path', 'special authority slashes with extra /');\n\n  assert.same(String(new URL('https://測試')), 'https://xn--g6w251d/', 'unicode parsing');\n  assert.same(String(new URL('https://xxпривет.тест')), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing');\n  assert.same(String(new URL('https://xxПРИВЕТ.тест')), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing');\n  assert.same(String(new URL('http://Example.com/', 'https://example.org/')), 'http://example.com/');\n  assert.same(String(new URL('https://Example.com/', 'https://example.org/')), 'https://example.com/');\n  assert.same(String(new URL('nonspecial://Example.com/', 'https://example.org/')), 'nonspecial://Example.com/');\n  assert.same(String(new URL('http:Example.com/', 'https://example.org/')), 'http://example.com/');\n  assert.same(String(new URL('https:Example.com/', 'https://example.org/')), 'https://example.org/Example.com/');\n  assert.same(String(new URL('nonspecial:Example.com/', 'https://example.org/')), 'nonspecial:Example.com/');\n\n  assert.same(String(new URL('http://0300.168.0xF0')), 'http://192.168.0.240/');\n  assert.same(String(new URL('http://[20:0:0:1:0:0:0:ff]')), 'http://[20:0:0:1::ff]/');\n  // assert.same(String(new URL('http://257.168.0xF0')), 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // TypeError in Chrome and Safari\n  assert.throws(() => new URL('http://257.168.0xF0'), 'invalid IPv4: octet > 255');\n  assert.same(String(new URL('http://0300.168.0xG0')), 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host');\n\n  assert.throws(() => new URL('http://1.2.3.4.5/'), 'IPv4 with > 4 parts');\n  assert.throws(() => new URL('http://a.b.c.d.5/'), 'host ending in number with non-numeric parts');\n  assert.throws(() => new URL('http://foo.1/'), 'host ending in number with non-IPv4');\n  assert.same(String(new URL('file:///var/log/system.log')), 'file:///var/log/system.log', 'file scheme');\n\n  // Chromium ~ 145 on Windows works differently\n  // assert.same(String(new URL('file:foo')), 'file:///foo', 'file scheme without slashes');\n  // assert.same(new URL('file:foo').host, '', 'file scheme without slashes: host');\n\n  // assert.same(String(new URL('file://nnsc.nsf.net/bar/baz')), 'file://nnsc.nsf.net/bar/baz', 'file scheme'); // 'file:///bar/baz' in FF\n  // assert.same(String(new URL('file://localhost/bar/baz')), 'file:///bar/baz', 'file scheme'); // 'file://localhost/bar/baz' in Chrome\n\n  // FILE_SLASH state: host should be inherited from file: base\n  // some browsers have a non-spec-compliant native URL implementation for this case\n  if (new URL('file:/path', 'file://somehost/dir/file').host === 'somehost') {\n    assert.same(new URL('file:/path', 'file://somehost/dir/file').href, 'file://somehost/path', 'file slash: href with inherited host');\n  }\n\n  assert.throws(() => new URL(), 'TypeError: Failed to construct URL: 1 argument required, but only 0 present.');\n  assert.throws(() => new URL(''), 'TypeError: Failed to construct URL: Invalid URL');\n  // Node 19.7\n  // https://github.com/nodejs/node/issues/46755\n  // assert.throws(() => new URL('', 'about:blank'), 'TypeError: Failed to construct URL: Invalid URL');\n  assert.throws(() => new URL('abc'), 'TypeError: Failed to construct URL: Invalid URL');\n  assert.throws(() => new URL('//abc'), 'TypeError: Failed to construct URL: Invalid URL');\n  assert.throws(() => new URL('http:///www.domain.com/', 'abc'), 'TypeError: Failed to construct URL: Invalid base URL');\n  assert.throws(() => new URL('http:///www.domain.com/', null), 'TypeError: Failed to construct URL: Invalid base URL');\n  assert.throws(() => new URL('//abc', null), 'TypeError: Failed to construct URL: Invalid base URL');\n  assert.throws(() => new URL('http://[20:0:0:1:0:0:0:ff'), 'incorrect IPv6');\n  assert.throws(() => new URL('http://[20:0:0:1:0:0:0:fg]'), 'incorrect IPv6');\n  // assert.throws(() => new URL('http://a%b'), 'forbidden host code point'); // no error in FF\n  assert.throws(() => new URL('1http://zloirock.ru'), 'incorrect scheme');\n  assert.throws(() => new URL('a,b://example.com'), 'comma in scheme');\n  assert.same(String(new URL('a+b-c.d://example.com')), 'a+b-c.d://example.com', 'valid scheme with +, -, .');\n  assert.same(String(new URL('relative', 'foo://host')), 'foo://host/relative', 'relative URL with non-special base with empty path');\n  assert.same(String(new URL('bar', 'foo://host/a/b')), 'foo://host/a/bar', 'relative URL with non-special base with path');\n});\n\nQUnit.test('URL#href', assert => {\n  let url = new URL('http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'href'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'href');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.href, 'http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    url.searchParams.append('foo', 'bar');\n    assert.same(url.href, 'http://zloirock.ru/?foo=bar');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.href = 'https://測試';\n    assert.same(url.href, 'https://xn--g6w251d/', 'unicode parsing');\n    assert.same(String(url), 'https://xn--g6w251d/', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.href = 'https://xxпривет.тест';\n    assert.same(url.href, 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing');\n    assert.same(String(url), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.href = 'https://xxПРИВЕТ.тест';\n    assert.same(url.href, 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing');\n    assert.same(String(url), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/');\n    url.href = 'http://0300.168.0xF0';\n    assert.same(url.href, 'http://192.168.0.240/');\n    assert.same(String(url), 'http://192.168.0.240/');\n\n    url = new URL('http://zloirock.ru/');\n    url.href = 'http://[20:0:0:1:0:0:0:ff]';\n    assert.same(url.href, 'http://[20:0:0:1::ff]/');\n    assert.same(String(url), 'http://[20:0:0:1::ff]/');\n\n    // url = new URL('http://zloirock.ru/');\n    // url.href = 'http://257.168.0xF0'; // TypeError and Safari\n    // assert.same(url.href, 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // `F` instead of `f` in Chrome\n    // assert.same(String(url), 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // `F` instead of `f` in Chrome\n\n    url = new URL('http://zloirock.ru/');\n    url.href = 'http://0300.168.0xG0';\n    assert.same(url.href, 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host');\n    assert.same(String(url), 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host');\n\n    url = new URL('http://192.168.0.240/');\n    url.href = 'file:///var/log/system.log';\n    assert.same(url.href, 'file:///var/log/system.log', 'file -> ip');\n    assert.same(String(url), 'file:///var/log/system.log', 'file -> ip');\n\n    url = new URL('file:///var/log/system.log');\n    url.href = 'http://0300.168.0xF0';\n    // Node 19.7\n    // https://github.com/nodejs/node/issues/46755\n    // assert.same(url.href, 'http://192.168.0.240/', 'file -> http');\n    // assert.same(String(url), 'http://192.168.0.240/', 'file -> http');\n\n    // assert.throws(() => new URL('http://zloirock.ru/').href = undefined, 'incorrect URL'); // no error in Chrome\n    // assert.throws(() => new URL('http://zloirock.ru/').href = '', 'incorrect URL'); // no error in Chrome\n    // assert.throws(() => new URL('http://zloirock.ru/').href = 'abc', 'incorrect URL'); // no error in Chrome\n    // assert.throws(() => new URL('http://zloirock.ru/').href = '//abc', 'incorrect URL'); // no error in Chrome\n    // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://[20:0:0:1:0:0:0:ff', 'incorrect IPv6'); // no error in Chrome\n    // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://[20:0:0:1:0:0:0:fg]', 'incorrect IPv6'); // no error in Chrome\n    // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://a%b', 'forbidden host code point'); // no error in Chrome and FF\n    // assert.throws(() => new URL('http://zloirock.ru/').href = '1http://zloirock.ru', 'incorrect scheme'); // no error in Chrome\n  }\n\n  // URL serializing step 3 - /. prefix for non-special URLs with null host and path starting with empty segment\n  // Chromium ~ 145 on Windows works differently\n  // assert.same(new URL('x:/a/..//b').href, 'x:/.//b', '/. prefix prevents ambiguous serialization');\n  // assert.same(new URL('x:/a/..//b').pathname, '//b', 'pathname is not affected by /. prefix');\n  // assert.same(new URL('x:/.//b').href, 'x:/.//b', '/. prefix is idempotent');\n  // assert.same(new URL(new URL('x:/a/..//b').href).pathname, '//b', '/. prefix round-trips correctly');\n});\n\nQUnit.test('URL#origin', assert => {\n  const url = new URL('http://es6.zloirock.ru/tests.html');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'origin'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'origin');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n  }\n\n  assert.same(url.origin, 'http://es6.zloirock.ru');\n\n  assert.same(new URL('https://測試/tests').origin, 'https://xn--g6w251d');\n\n  // blob URL origin should resolve to the inner URL's origin\n  assert.same(new URL('blob:https://example.com/some-uuid').origin, 'https://example.com');\n});\n\nQUnit.test('URL#protocol', assert => {\n  let url = new URL('http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'protocol'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'protocol');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.protocol, 'http:');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/');\n    url.protocol = 'https';\n    assert.same(url.protocol, 'https:');\n    assert.same(String(url), 'https://zloirock.ru/');\n\n    // https://nodejs.org/api/url.html#url_special_schemes\n    // url = new URL('http://zloirock.ru/');\n    // url.protocol = 'fish';\n    // assert.same(url.protocol, 'http:');\n    // assert.same(url.href, 'http://zloirock.ru/');\n    // assert.same(String(url), 'http://zloirock.ru/');\n\n    url = new URL('http://zloirock.ru/');\n    url.protocol = '1http';\n    assert.same(url.protocol, 'http:');\n    assert.same(url.href, 'http://zloirock.ru/', 'incorrect scheme');\n    assert.same(String(url), 'http://zloirock.ru/', 'incorrect scheme');\n\n    // Chromium ~ 145 on Windows works differently\n    // url = new URL('file:foo');\n    // url.protocol = 'http:';\n    // assert.same(url.protocol, 'file:', 'file with empty host: protocol change blocked');\n  }\n});\n\nQUnit.test('URL#username', assert => {\n  let url = new URL('http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'username'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'username');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.username, '');\n\n  url = new URL('http://username@zloirock.ru/');\n  assert.same(url.username, 'username');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/');\n    url.username = 'username';\n    assert.same(url.username, 'username');\n    assert.same(String(url), 'http://username@zloirock.ru/');\n\n    // IPv4 address 0.0.0.0 (stored as number 0) should allow username\n    url = new URL('http://0.0.0.0/');\n    url.username = 'user';\n    assert.same(url.username, 'user', 'username settable on 0.0.0.0');\n    assert.same(String(url), 'http://user@0.0.0.0/', 'href correct after setting username on 0.0.0.0');\n  }\n});\n\nQUnit.test('URL#password', assert => {\n  let url = new URL('http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'password'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'password');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.password, '');\n\n  url = new URL('http://username:password@zloirock.ru/');\n  assert.same(url.password, 'password');\n\n  // url = new URL('http://:password@zloirock.ru/'); // TypeError in FF\n  // assert.same(url.password, 'password');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/');\n    url.username = 'username';\n    url.password = 'password';\n    assert.same(url.password, 'password');\n    assert.same(String(url), 'http://username:password@zloirock.ru/');\n\n    // url = new URL('http://zloirock.ru/');\n    // url.password = 'password';\n    // assert.same(url.password, 'password'); // '' in FF\n    // assert.same(String(url), 'http://:password@zloirock.ru/'); // 'http://zloirock.ru/' in FF\n  }\n});\n\nQUnit.test('URL#host', assert => {\n  let url = new URL('http://zloirock.ru:81/path');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'host'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'host');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.host, 'zloirock.ru:81');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru:81/path');\n    url.host = 'example.com:82';\n    assert.same(url.host, 'example.com:82');\n    assert.same(String(url), 'http://example.com:82/path');\n\n    // url = new URL('http://zloirock.ru:81/path');\n    // url.host = 'other?domain.com';\n    // assert.same(String(url), 'http://other:81/path'); // 'http://other/?domain.com/path' in Safari\n\n    url = new URL('https://www.mydomain.com:8080/path/');\n    url.host = 'www.otherdomain.com:80';\n    assert.same(url.href, 'https://www.otherdomain.com:80/path/', 'set default port for another protocol');\n\n    // url = new URL('https://www.mydomain.com:8080/path/');\n    // url.host = 'www.otherdomain.com:443';\n    // assert.same(url.href, 'https://www.otherdomain.com/path/', 'set default port');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.host = '測試';\n    assert.same(url.host, 'xn--g6w251d', 'unicode parsing');\n    assert.same(String(url), 'http://xn--g6w251d/foo', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.host = 'xxпривет.тест';\n    assert.same(url.host, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing');\n    assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.host = 'xxПРИВЕТ.тест';\n    assert.same(url.host, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing');\n    assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.host = '0300.168.0xF0';\n    assert.same(url.host, '192.168.0.240');\n    assert.same(String(url), 'http://192.168.0.240/foo');\n\n    // url = new URL('http://zloirock.ru/foo');\n    // url.host = '[20:0:0:1:0:0:0:ff]';\n    // assert.same(url.host, '[20:0:0:1::ff]'); // ':0' in Chrome, 'zloirock.ru' in Safari\n    // assert.same(String(url), 'http://[20:0:0:1::ff]/foo'); // 'http://[20:0/foo' in Chrome, 'http://zloirock.ru/foo' in Safari\n\n    // url = new URL('file:///var/log/system.log');\n    // url.host = 'nnsc.nsf.net'; // does not work in FF\n    // assert.same(url.hostname, 'nnsc.nsf.net', 'file');\n    // assert.same(String(url), 'file://nnsc.nsf.net/var/log/system.log', 'file');\n\n    // url = new URL('http://zloirock.ru/');\n    // url.host = '[20:0:0:1:0:0:0:ff';\n    // assert.same(url.host, 'zloirock.ru', 'incorrect IPv6'); // ':0' in Chrome\n    // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0/' in Chrome\n\n    // url = new URL('http://zloirock.ru/');\n    // url.host = '[20:0:0:1:0:0:0:fg]';\n    // assert.same(url.host, 'zloirock.ru', 'incorrect IPv6'); // ':0' in Chrome\n    // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0/' in Chrome\n\n    // url = new URL('http://zloirock.ru/');\n    // url.host = 'a%b';\n    // assert.same(url.host, 'zloirock.ru', 'forbidden host code point'); // '' in Chrome, 'a%b' in FF\n    // assert.same(String(url), 'http://zloirock.ru/', 'forbidden host code point'); // 'http://a%25b/' in Chrome, 'http://a%b/' in FF\n  }\n});\n\nQUnit.test('URL#hostname', assert => {\n  let url = new URL('http://zloirock.ru:81/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'hostname'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'hostname');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.hostname, 'zloirock.ru');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru:81/');\n    url.hostname = 'example.com';\n    assert.same(url.hostname, 'example.com');\n    assert.same(String(url), 'http://example.com:81/');\n\n    url = new URL('http://zloirock.ru:81/');\n    url.hostname = 'example.com:82';\n    assert.same(url.hostname, 'zloirock.ru', 'hostname with port is rejected');\n    assert.same(String(url), 'http://zloirock.ru:81/', 'hostname with port is rejected');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.hostname = '測試';\n    assert.same(url.hostname, 'xn--g6w251d', 'unicode parsing');\n    assert.same(String(url), 'http://xn--g6w251d/foo', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.hostname = 'xxпривет.тест';\n    assert.same(url.hostname, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing');\n    assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.hostname = 'xxПРИВЕТ.тест';\n    assert.same(url.hostname, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing');\n    assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing');\n\n    url = new URL('http://zloirock.ru/foo');\n    url.hostname = '0300.168.0xF0';\n    assert.same(url.hostname, '192.168.0.240');\n    assert.same(String(url), 'http://192.168.0.240/foo');\n\n    // url = new URL('http://zloirock.ru/foo');\n    // url.hostname = '[20:0:0:1:0:0:0:ff]';\n    // assert.same(url.hostname, '[20:0:0:1::ff]'); // 'zloirock.ru' in Safari\n    // assert.same(String(url), 'http://[20:0:0:1::ff]/foo'); // 'http://zloirock.ru/foo' in Safari\n\n    // url = new URL('file:///var/log/system.log');\n    // url.hostname = 'nnsc.nsf.net'; // does not work in FF\n    // assert.same(url.hostname, 'nnsc.nsf.net', 'file');\n    // assert.same(String(url), 'file://nnsc.nsf.net/var/log/system.log', 'file');\n\n    // url = new URL('http://zloirock.ru/');\n    // url.hostname = '[20:0:0:1:0:0:0:ff';\n    // assert.same(url.hostname, 'zloirock.ru', 'incorrect IPv6'); // '' in Chrome\n    // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0:0:1:0:0:0:ff' in Chrome\n\n    // url = new URL('http://zloirock.ru/');\n    // url.hostname = '[20:0:0:1:0:0:0:fg]';\n    // assert.same(url.hostname, 'zloirock.ru', 'incorrect IPv6'); // '' in Chrome\n    // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0:0:1:0:0:0:ff/' in Chrome\n\n    // url = new URL('http://zloirock.ru/');\n    // url.hostname = 'a%b';\n    // assert.same(url.hostname, 'zloirock.ru', 'forbidden host code point'); // '' in Chrome, 'a%b' in FF\n    // assert.same(String(url), 'http://zloirock.ru/', 'forbidden host code point'); // 'http://a%25b/' in Chrome, 'http://a%b/' in FF\n  }\n});\n\nQUnit.test('URL#port', assert => {\n  let url = new URL('http://zloirock.ru:1337/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'port'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'port');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.port, '1337');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/');\n    url.port = 80;\n    assert.same(url.port, '');\n    assert.same(String(url), 'http://zloirock.ru/');\n    url.port = 1337;\n    assert.same(url.port, '1337');\n    assert.same(String(url), 'http://zloirock.ru:1337/');\n    // url.port = 'abcd';\n    // assert.same(url.port, '1337'); // '0' in Chrome\n    // assert.same(String(url), 'http://zloirock.ru:1337/'); // 'http://zloirock.ru:0/' in Chrome\n    // url.port = '5678abcd';\n    // assert.same(url.port, '5678'); // '1337' in FF\n    // assert.same(String(url), 'http://zloirock.ru:5678/'); // 'http://zloirock.ru:1337/\"' in FF\n    url.port = 1234.5678;\n    assert.same(url.port, '1234');\n    assert.same(String(url), 'http://zloirock.ru:1234/');\n    // url.port = 1e10;\n    // assert.same(url.port, '1234'); // '0' in Chrome\n    // assert.same(String(url), 'http://zloirock.ru:1234/'); // 'http://zloirock.ru:0/' in Chrome\n\n    // IPv4 address 0.0.0.0 (stored as number 0) should allow port\n    url = new URL('http://0.0.0.0/');\n    url.port = '8080';\n    assert.same(url.port, '8080', 'port settable on 0.0.0.0');\n    assert.same(String(url), 'http://0.0.0.0:8080/', 'href correct after setting port on 0.0.0.0');\n  }\n});\n\nQUnit.test('URL#pathname', assert => {\n  let url = new URL('http://zloirock.ru/foo/bar');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'pathname'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'pathname');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.pathname, '/foo/bar');\n\n  // fails in Node 23-\n  // url = new URL('http://example.com/a^b');\n  // assert.same(url.pathname, '/a%5Eb', 'caret in path is percent-encoded');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/');\n    url.pathname = 'bar/baz';\n    assert.same(url.pathname, '/bar/baz');\n    assert.same(String(url), 'http://zloirock.ru/bar/baz');\n  }\n});\n\nQUnit.test('URL#search', assert => {\n  let url = new URL('http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'search'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'search');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.search, '');\n\n  url = new URL('http://zloirock.ru/?foo=bar');\n  assert.same(url.search, '?foo=bar');\n\n  // query percent-encode set\n  assert.same(new URL('http://x/?a=\"<>').search, '?a=%22%3C%3E', 'query percent-encodes \", <, >');\n  assert.same(new URL('http://x/?a=\\'').search, '?a=%27', 'special query percent-encodes \\'');\n  // fails in modern Chrome (~145)\n  // assert.same(new URL('foo://x/?a=\\'').search, '?a=\\'', 'non-special query does not percent-encode \\'');\n\n  // space in opaque paths should not be percent-encoded\n  // eslint-disable-next-line no-script-url -- safe\n  assert.same(new URL('javascript:void 0').href, 'javascript:void 0', 'space preserved in opaque path');\n  // eslint-disable-next-line no-script-url -- safe\n  assert.same(new URL('javascript:void 0').pathname, 'void 0', 'space preserved in opaque pathname');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/?');\n    assert.same(url.search, '');\n    assert.same(String(url), 'http://zloirock.ru/?');\n    url.search = 'foo=bar';\n    assert.same(url.search, '?foo=bar');\n    assert.same(String(url), 'http://zloirock.ru/?foo=bar');\n    url.search = '?bar=baz';\n    assert.same(url.search, '?bar=baz');\n    assert.same(String(url), 'http://zloirock.ru/?bar=baz');\n    url.search = '';\n    assert.same(url.search, '');\n    assert.same(String(url), 'http://zloirock.ru/');\n  }\n});\n\nQUnit.test('URL#searchParams', assert => {\n  let url = new URL('http://zloirock.ru/?foo=bar&bar=baz');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'searchParams'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'searchParams');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n  }\n\n  assert.true(url.searchParams instanceof URLSearchParams);\n  assert.same(url.searchParams.get('foo'), 'bar');\n  assert.same(url.searchParams.get('bar'), 'baz');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/');\n    url.searchParams.append('foo', 'bar');\n    assert.same(String(url), 'http://zloirock.ru/?foo=bar');\n\n    url = new URL('http://zloirock.ru/');\n    url.search = 'foo=bar';\n    assert.same(url.searchParams.get('foo'), 'bar');\n\n    url = new URL('http://zloirock.ru/?foo=bar&bar=baz');\n    url.search = '';\n    assert.false(url.searchParams.has('foo'));\n  }\n});\n\nQUnit.test('URL#hash', assert => {\n  let url = new URL('http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    assert.false(hasOwnProperty.call(url, 'hash'));\n    const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'hash');\n    assert.true(descriptor.enumerable);\n    assert.true(descriptor.configurable);\n    assert.same(typeof descriptor.get, 'function');\n    assert.same(typeof descriptor.set, 'function');\n  }\n\n  assert.same(url.hash, '');\n\n  url = new URL('http://zloirock.ru/#foo');\n  assert.same(url.hash, '#foo');\n\n  url = new URL('http://zloirock.ru/#');\n  assert.same(url.hash, '');\n  assert.same(String(url), 'http://zloirock.ru/#');\n\n  if (DESCRIPTORS) {\n    url = new URL('http://zloirock.ru/#');\n    url.hash = 'foo';\n    assert.same(url.hash, '#foo');\n    assert.same(String(url), 'http://zloirock.ru/#foo');\n    url.hash = '';\n    assert.same(url.hash, '');\n    assert.same(String(url), 'http://zloirock.ru/');\n    // url.hash = '#';\n    // assert.same(url.hash, '');\n    // assert.same(String(url), 'http://zloirock.ru/'); // 'http://zloirock.ru/#' in FF\n    url.hash = '#foo';\n    assert.same(url.hash, '#foo');\n    assert.same(String(url), 'http://zloirock.ru/#foo');\n    url.hash = '#foo#bar';\n    assert.same(url.hash, '#foo#bar');\n    assert.same(String(url), 'http://zloirock.ru/#foo#bar');\n\n    url = new URL('http://zloirock.ru/');\n    url.hash = 'абa';\n    assert.same(url.hash, '#%D0%B0%D0%B1a');\n\n    // url = new URL('http://zloirock.ru/');\n    // url.hash = '\\udc01\\ud802a';\n    // assert.same(url.hash, '#%EF%BF%BD%EF%BF%BDa', 'unmatched surrogates');\n  }\n});\n\nQUnit.test('URL#toJSON', assert => {\n  const { toJSON } = URL.prototype;\n  assert.isFunction(toJSON);\n  assert.arity(toJSON, 0);\n  assert.enumerable(URL.prototype, 'toJSON');\n\n  const url = new URL('http://zloirock.ru/');\n  assert.same(url.toJSON(), 'http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    url.searchParams.append('foo', 'bar');\n    assert.same(url.toJSON(), 'http://zloirock.ru/?foo=bar');\n  }\n});\n\nQUnit.test('URL#toString', assert => {\n  const { toString } = URL.prototype;\n  assert.isFunction(toString);\n  assert.arity(toString, 0);\n  assert.enumerable(URL.prototype, 'toString');\n\n  const url = new URL('http://zloirock.ru/');\n  assert.same(url.toString(), 'http://zloirock.ru/');\n\n  if (DESCRIPTORS) {\n    url.searchParams.append('foo', 'bar');\n    assert.same(url.toString(), 'http://zloirock.ru/?foo=bar');\n  }\n});\n\nQUnit.test('URL.sham', assert => {\n  assert.same(URL.sham, DESCRIPTORS ? undefined : true);\n});\n\n// `core-js` URL implementation pass all (exclude some encoding-related) tests\n// from the next 3 test cases, but URLs from all of popular browsers fail a serious part of tests.\n// Replacing all of them does not looks like a good idea, so next test cases disabled by default.\n\n// see https://github.com/web-platform-tests/wpt/blob/master/url\nQUnit.skip('WPT URL constructor tests', assert => {\n  for (const expected of urlTestData) {\n    if (typeof expected == 'string') continue;\n    const name = `Parsing: <${ expected.input }> against <${ expected.base }>`;\n    if (expected.failure) {\n      assert.throws(() => new URL(expected.input, expected.base || 'about:blank'), name);\n    } else {\n      const url = new URL(expected.input, expected.base || 'about:blank');\n      assert.same(url.href, expected.href, `${ name }: href`);\n      assert.same(url.protocol, expected.protocol, `${ name }: protocol`);\n      assert.same(url.username, expected.username, `${ name }: username`);\n      assert.same(url.password, expected.password, `${ name }: password`);\n      assert.same(url.host, expected.host, `${ name }: host`);\n      assert.same(url.hostname, expected.hostname, `${ name }: hostname`);\n      assert.same(url.port, expected.port, `${ name }: port`);\n      assert.same(url.pathname, expected.pathname, `${ name }: pathname`);\n      assert.same(url.search, expected.search, `${ name }: search`);\n      if ('searchParams' in expected) {\n        assert.same(url.searchParams.toString(), expected.searchParams, `${ name }: searchParams`);\n      }\n      assert.same(url.hash, expected.hash, `${ name }: hash`);\n      if ('origin' in expected) {\n        assert.same(url.origin, expected.origin, `${ name }: origin`);\n      }\n    }\n  }\n});\n\n// see https://github.com/web-platform-tests/wpt/blob/master/url\nif (DESCRIPTORS) QUnit.skip('WPT URL setters tests', assert => {\n  for (const setter in settersTestData) {\n    const testCases = settersTestData[setter];\n    for (const { href, newValue, comment, expected } of testCases) {\n      let name = `Setting <${ href }>.${ setter } = '${ newValue }'.`;\n      if (comment) name += ` ${ comment }`;\n\n      const url = new URL(href);\n      url[setter] = newValue;\n      for (const attribute in expected) {\n        assert.same(url[attribute], expected[attribute], name);\n      }\n    }\n  }\n});\n\n// see https://github.com/web-platform-tests/wpt/blob/master/url\nQUnit.skip('WPT conversion to ASCII tests', assert => {\n  for (const { comment, input, output } of toASCIITestData) {\n    let name = `Parsing: <${ input }>`;\n    if (comment) name += ` ${ comment }`;\n    if (output === null) {\n      assert.throws(() => new URL(`https://${ input }/x`), name);\n    } else {\n      const url = new URL(`https://${ input }/x`);\n      assert.same(url.host, output, name);\n      assert.same(url.hostname, output, name);\n      assert.same(url.pathname, '/x', name);\n      assert.same(url.href, `https://${ output }/x`, name);\n    }\n  }\n});\n"
  },
  {
    "path": "tests/unit-pure/web.url.parse.js",
    "content": "import URL from 'core-js-pure/stable/url';\nimport parse from 'core-js-pure/stable/url/parse';\n\nQUnit.test('URL.parse', assert => {\n  assert.isFunction(parse);\n  assert.arity(parse, 1);\n  assert.name(parse, 'parse');\n\n  assert.same(parse(undefined), null, 'undefined');\n  assert.same(parse(undefined, undefined), null, 'undefined, undefined');\n  assert.deepEqual(parse('q:w'), new URL('q:w'), 'q:w');\n  assert.deepEqual(parse('q:w', undefined), new URL('q:w'), 'q:w, undefined');\n  assert.deepEqual(parse('q:/w'), new URL('q:/w'), 'q:/w');\n  assert.deepEqual(parse('q:/w', undefined), new URL('q:/w', undefined), 'q:/w, undefined');\n  assert.deepEqual(parse(undefined, 'q:/w'), new URL(undefined, 'q:/w'), 'undefined, q:/w');\n  assert.same(parse('https://login:password@examp:le.com:8080/?a=1&b=2&a=3&c=4#fragment'), null, 'https://login:password@examp:le.com:8080/?a=1&b=2&a=3&c=4#fragment');\n  assert.deepEqual(parse('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'), new URL('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'), 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment');\n  assert.deepEqual(parse('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment', undefined), new URL('https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment', undefined), 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment, undefined');\n  // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n  assert.deepEqual(parse('x', 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'), new URL('x', 'https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment'), 'x, https://login:password@example.com:8080/?a=1&b=2&a=3&c=4#fragment');\n\n  assert.throws(() => parse(), 'no args');\n  assert.throws(() => parse({ toString() { throw new Error('thrower'); } }), 'conversion thrower #1');\n  assert.throws(() => parse('q:w', { toString() { throw new Error('thrower'); } }), 'conversion thrower #2');\n});\n"
  },
  {
    "path": "tests/wpt-url-resources/setters.js",
    "content": "// Copyright © web-platform-tests contributors\n// Originally from https://github.com/web-platform-tests/wpt\n// Available under the 3-Clause BSD License https://github.com/web-platform-tests/wpt/blob/master/LICENSE.md\n\n/* eslint-disable no-script-url -- required for testing */\nexport default {\n  protocol: [\n    {\n      comment: 'The empty string is not a valid scheme. Setter leaves the URL unchanged.',\n      href: 'a://example.net',\n      newValue: '',\n      expected: {\n        href: 'a://example.net',\n        protocol: 'a:',\n      },\n    },\n    {\n      href: 'a://example.net',\n      newValue: 'b',\n      expected: {\n        href: 'b://example.net',\n        protocol: 'b:',\n      },\n    },\n    {\n      href: 'javascript:alert(1)',\n      newValue: 'defuse',\n      expected: {\n        href: 'defuse:alert(1)',\n        protocol: 'defuse:',\n      },\n    },\n    {\n      comment: 'Upper-case ASCII is lower-cased',\n      href: 'a://example.net',\n      newValue: 'B',\n      expected: {\n        href: 'b://example.net',\n        protocol: 'b:',\n      },\n    },\n    {\n      comment: 'Non-ASCII is rejected',\n      href: 'a://example.net',\n      newValue: 'é',\n      expected: {\n        href: 'a://example.net',\n        protocol: 'a:',\n      },\n    },\n    {\n      comment: 'No leading digit',\n      href: 'a://example.net',\n      newValue: '0b',\n      expected: {\n        href: 'a://example.net',\n        protocol: 'a:',\n      },\n    },\n    {\n      comment: 'No leading punctuation',\n      href: 'a://example.net',\n      newValue: '+b',\n      expected: {\n        href: 'a://example.net',\n        protocol: 'a:',\n      },\n    },\n    {\n      href: 'a://example.net',\n      newValue: 'bC0+-.',\n      expected: {\n        href: 'bc0+-.://example.net',\n        protocol: 'bc0+-.:',\n      },\n    },\n    {\n      comment: 'Only some punctuation is acceptable',\n      href: 'a://example.net',\n      newValue: 'b,c',\n      expected: {\n        href: 'a://example.net',\n        protocol: 'a:',\n      },\n    },\n    {\n      comment: 'Non-ASCII is rejected',\n      href: 'a://example.net',\n      newValue: 'bé',\n      expected: {\n        href: 'a://example.net',\n        protocol: 'a:',\n      },\n    },\n    {\n      comment: 'Can’t switch from URL containing username/password/port to file',\n      href: 'http://test@example.net',\n      newValue: 'file',\n      expected: {\n        href: 'http://test@example.net/',\n        protocol: 'http:',\n      },\n    },\n    {\n      href: 'wss://x:x@example.net:1234',\n      newValue: 'file',\n      expected: {\n        href: 'wss://x:x@example.net:1234/',\n        protocol: 'wss:',\n      },\n    },\n    {\n      comment: 'Can’t switch from file URL with no host',\n      href: 'file://localhost/',\n      newValue: 'http',\n      expected: {\n        href: 'file:///',\n        protocol: 'file:',\n      },\n    },\n    {\n      href: 'file:',\n      newValue: 'wss',\n      expected: {\n        href: 'file:///',\n        protocol: 'file:',\n      },\n    },\n    {\n      comment: 'Can’t switch from special scheme to non-special',\n      href: 'http://example.net',\n      newValue: 'b',\n      expected: {\n        href: 'http://example.net/',\n        protocol: 'http:',\n      },\n    },\n    {\n      href: 'file://hi/path',\n      newValue: 's',\n      expected: {\n        href: 'file://hi/path',\n        protocol: 'file:',\n      },\n    },\n    {\n      href: 'https://example.net',\n      newValue: 's',\n      expected: {\n        href: 'https://example.net/',\n        protocol: 'https:',\n      },\n    },\n    {\n      href: 'ftp://example.net',\n      newValue: 'test',\n      expected: {\n        href: 'ftp://example.net/',\n        protocol: 'ftp:',\n      },\n    },\n    {\n      comment: 'Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.',\n      href: 'mailto:me@example.net',\n      newValue: 'http',\n      expected: {\n        href: 'mailto:me@example.net',\n        protocol: 'mailto:',\n      },\n    },\n    {\n      comment: 'Can’t switch from non-special scheme to special',\n      href: 'ssh://me@example.net',\n      newValue: 'http',\n      expected: {\n        href: 'ssh://me@example.net',\n        protocol: 'ssh:',\n      },\n    },\n    {\n      href: 'ssh://me@example.net',\n      newValue: 'file',\n      expected: {\n        href: 'ssh://me@example.net',\n        protocol: 'ssh:',\n      },\n    },\n    {\n      href: 'ssh://example.net',\n      newValue: 'file',\n      expected: {\n        href: 'ssh://example.net',\n        protocol: 'ssh:',\n      },\n    },\n    {\n      href: 'nonsense:///test',\n      newValue: 'https',\n      expected: {\n        href: 'nonsense:///test',\n        protocol: 'nonsense:',\n      },\n    },\n    {\n      comment: \"Stuff after the first ':' is ignored\",\n      href: 'http://example.net',\n      newValue: 'https:foo : bar',\n      expected: {\n        href: 'https://example.net/',\n        protocol: 'https:',\n      },\n    },\n    {\n      comment: \"Stuff after the first ':' is ignored\",\n      href: 'data:text/html,<p>Test',\n      newValue: 'view-source+data:foo : bar',\n      expected: {\n        href: 'view-source+data:text/html,<p>Test',\n        protocol: 'view-source+data:',\n      },\n    },\n    {\n      comment: 'Port is set to null if it is the default for new scheme.',\n      href: 'http://foo.com:443/',\n      newValue: 'https',\n      expected: {\n        href: 'https://foo.com/',\n        protocol: 'https:',\n        port: '',\n      },\n    },\n  ],\n  username: [\n    {\n      comment: 'No host means no username',\n      href: 'file:///home/you/index.html',\n      newValue: 'me',\n      expected: {\n        href: 'file:///home/you/index.html',\n        username: '',\n      },\n    },\n    {\n      comment: 'No host means no username',\n      href: 'unix:/run/foo.socket',\n      newValue: 'me',\n      expected: {\n        href: 'unix:/run/foo.socket',\n        username: '',\n      },\n    },\n    {\n      comment: 'Cannot-be-a-base means no username',\n      href: 'mailto:you@example.net',\n      newValue: 'me',\n      expected: {\n        href: 'mailto:you@example.net',\n        username: '',\n      },\n    },\n    {\n      href: 'javascript:alert(1)',\n      newValue: 'wario',\n      expected: {\n        href: 'javascript:alert(1)',\n        username: '',\n      },\n    },\n    {\n      href: 'http://example.net',\n      newValue: 'me',\n      expected: {\n        href: 'http://me@example.net/',\n        username: 'me',\n      },\n    },\n    {\n      href: 'http://:secret@example.net',\n      newValue: 'me',\n      expected: {\n        href: 'http://me:secret@example.net/',\n        username: 'me',\n      },\n    },\n    {\n      href: 'http://me@example.net',\n      newValue: '',\n      expected: {\n        href: 'http://example.net/',\n        username: '',\n      },\n    },\n    {\n      href: 'http://me:secret@example.net',\n      newValue: '',\n      expected: {\n        href: 'http://:secret@example.net/',\n        username: '',\n      },\n    },\n    {\n      comment: 'UTF-8 percent encoding with the userinfo encode set.',\n      href: 'http://example.net',\n      newValue: \"\\u0000\\u0001\\t\\n\\r\\u001F !\\\"#$%&'()*+,-./09:;<=>?@AZ[\\\\]^_`az{|}~\\u007F\\u0080\\u0081Éé\",\n      expected: {\n        href: \"http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/\",\n        username: \"%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9\",\n      },\n    },\n    {\n      comment: 'Bytes already percent-encoded are left as-is.',\n      href: 'http://example.net',\n      newValue: '%c3%89té',\n      expected: {\n        href: 'http://%c3%89t%C3%A9@example.net/',\n        username: '%c3%89t%C3%A9',\n      },\n    },\n    {\n      href: 'sc:///',\n      newValue: 'x',\n      expected: {\n        href: 'sc:///',\n        username: '',\n      },\n    },\n    {\n      href: 'javascript://x/',\n      newValue: 'wario',\n      expected: {\n        href: 'javascript://wario@x/',\n        username: 'wario',\n      },\n    },\n    {\n      href: 'file://test/',\n      newValue: 'test',\n      expected: {\n        href: 'file://test/',\n        username: '',\n      },\n    },\n  ],\n  password: [\n    {\n      comment: 'No host means no password',\n      href: 'file:///home/me/index.html',\n      newValue: 'secret',\n      expected: {\n        href: 'file:///home/me/index.html',\n        password: '',\n      },\n    },\n    {\n      comment: 'No host means no password',\n      href: 'unix:/run/foo.socket',\n      newValue: 'secret',\n      expected: {\n        href: 'unix:/run/foo.socket',\n        password: '',\n      },\n    },\n    {\n      comment: 'Cannot-be-a-base means no password',\n      href: 'mailto:me@example.net',\n      newValue: 'secret',\n      expected: {\n        href: 'mailto:me@example.net',\n        password: '',\n      },\n    },\n    {\n      href: 'http://example.net',\n      newValue: 'secret',\n      expected: {\n        href: 'http://:secret@example.net/',\n        password: 'secret',\n      },\n    },\n    {\n      href: 'http://me@example.net',\n      newValue: 'secret',\n      expected: {\n        href: 'http://me:secret@example.net/',\n        password: 'secret',\n      },\n    },\n    {\n      href: 'http://:secret@example.net',\n      newValue: '',\n      expected: {\n        href: 'http://example.net/',\n        password: '',\n      },\n    },\n    {\n      href: 'http://me:secret@example.net',\n      newValue: '',\n      expected: {\n        href: 'http://me@example.net/',\n        password: '',\n      },\n    },\n    {\n      comment: 'UTF-8 percent encoding with the userinfo encode set.',\n      href: 'http://example.net',\n      newValue: \"\\u0000\\u0001\\t\\n\\r\\u001F !\\\"#$%&'()*+,-./09:;<=>?@AZ[\\\\]^_`az{|}~\\u007F\\u0080\\u0081Éé\",\n      expected: {\n        href: \"http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/\",\n        password: \"%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9\",\n      },\n    },\n    {\n      comment: 'Bytes already percent-encoded are left as-is.',\n      href: 'http://example.net',\n      newValue: '%c3%89té',\n      expected: {\n        href: 'http://:%c3%89t%C3%A9@example.net/',\n        password: '%c3%89t%C3%A9',\n      },\n    },\n    {\n      href: 'sc:///',\n      newValue: 'x',\n      expected: {\n        href: 'sc:///',\n        password: '',\n      },\n    },\n    {\n      href: 'javascript://x/',\n      newValue: 'bowser',\n      expected: {\n        href: 'javascript://:bowser@x/',\n        password: 'bowser',\n      },\n    },\n    {\n      href: 'file://test/',\n      newValue: 'test',\n      expected: {\n        href: 'file://test/',\n        password: '',\n      },\n    },\n  ],\n  host: [\n    {\n      comment: 'Non-special scheme',\n      href: 'sc://x/',\n      newValue: '\\u0000',\n      expected: {\n        href: 'sc://x/',\n        host: 'x',\n        hostname: 'x',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '\\u0009',\n      expected: {\n        href: 'sc:///',\n        host: '',\n        hostname: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '\\u000A',\n      expected: {\n        href: 'sc:///',\n        host: '',\n        hostname: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '\\u000D',\n      expected: {\n        href: 'sc:///',\n        host: '',\n        hostname: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: ' ',\n      expected: {\n        href: 'sc://x/',\n        host: 'x',\n        hostname: 'x',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '#',\n      expected: {\n        href: 'sc:///',\n        host: '',\n        hostname: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '/',\n      expected: {\n        href: 'sc:///',\n        host: '',\n        hostname: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '?',\n      expected: {\n        href: 'sc:///',\n        host: '',\n        hostname: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '@',\n      expected: {\n        href: 'sc://x/',\n        host: 'x',\n        hostname: 'x',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: 'ß',\n      expected: {\n        href: 'sc://%C3%9F/',\n        host: '%C3%9F',\n        hostname: '%C3%9F',\n      },\n    },\n    {\n      comment: 'IDNA Nontransitional_Processing',\n      href: 'https://x/',\n      newValue: 'ß',\n      expected: {\n        href: 'https://xn--zca/',\n        host: 'xn--zca',\n        hostname: 'xn--zca',\n      },\n    },\n    {\n      comment: 'Cannot-be-a-base means no host',\n      href: 'mailto:me@example.net',\n      newValue: 'example.com',\n      expected: {\n        href: 'mailto:me@example.net',\n        host: '',\n      },\n    },\n    {\n      comment: 'Cannot-be-a-base means no password',\n      href: 'data:text/plain,Stuff',\n      newValue: 'example.net',\n      expected: {\n        href: 'data:text/plain,Stuff',\n        host: '',\n      },\n    },\n    {\n      href: 'http://example.net',\n      newValue: 'example.com:8080',\n      expected: {\n        href: 'http://example.com:8080/',\n        host: 'example.com:8080',\n        hostname: 'example.com',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Port number is unchanged if not specified in the new value',\n      href: 'http://example.net:8080',\n      newValue: 'example.com',\n      expected: {\n        href: 'http://example.com:8080/',\n        host: 'example.com:8080',\n        hostname: 'example.com',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Port number is unchanged if not specified',\n      href: 'http://example.net:8080',\n      newValue: 'example.com:',\n      expected: {\n        href: 'http://example.com:8080/',\n        host: 'example.com:8080',\n        hostname: 'example.com',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'The empty host is not valid for special schemes',\n      href: 'http://example.net',\n      newValue: '',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n      },\n    },\n    {\n      comment: 'The empty host is OK for non-special schemes',\n      href: 'view-source+http://example.net/foo',\n      newValue: '',\n      expected: {\n        href: 'view-source+http:///foo',\n        host: '',\n      },\n    },\n    {\n      comment: 'Path-only URLs can gain a host',\n      href: 'a:/foo',\n      newValue: 'example.net',\n      expected: {\n        href: 'a://example.net/foo',\n        host: 'example.net',\n      },\n    },\n    {\n      comment: 'IPv4 address syntax is normalized',\n      href: 'http://example.net',\n      newValue: '0x7F000001:8080',\n      expected: {\n        href: 'http://127.0.0.1:8080/',\n        host: '127.0.0.1:8080',\n        hostname: '127.0.0.1',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'IPv6 address syntax is normalized',\n      href: 'http://example.net',\n      newValue: '[::0:01]:2',\n      expected: {\n        href: 'http://[::1]:2/',\n        host: '[::1]:2',\n        hostname: '[::1]',\n        port: '2',\n      },\n    },\n    {\n      comment: 'Default port number is removed',\n      href: 'http://example.net',\n      newValue: 'example.com:80',\n      expected: {\n        href: 'http://example.com/',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: 'Default port number is removed',\n      href: 'https://example.net',\n      newValue: 'example.com:443',\n      expected: {\n        href: 'https://example.com/',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: 'Default port number is only removed for the relevant scheme',\n      href: 'https://example.net',\n      newValue: 'example.com:80',\n      expected: {\n        href: 'https://example.com:80/',\n        host: 'example.com:80',\n        hostname: 'example.com',\n        port: '80',\n      },\n    },\n    {\n      comment: 'Port number is removed if new port is scheme default and existing URL has a non-default port',\n      href: 'http://example.net:8080',\n      newValue: 'example.com:80',\n      expected: {\n        href: 'http://example.com/',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: 'Stuff after a / delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: 'example.com/stuff',\n      expected: {\n        href: 'http://example.com/path',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: 'Stuff after a / delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: 'example.com:8080/stuff',\n      expected: {\n        href: 'http://example.com:8080/path',\n        host: 'example.com:8080',\n        hostname: 'example.com',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Stuff after a ? delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: 'example.com?stuff',\n      expected: {\n        href: 'http://example.com/path',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: 'Stuff after a ? delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: 'example.com:8080?stuff',\n      expected: {\n        href: 'http://example.com:8080/path',\n        host: 'example.com:8080',\n        hostname: 'example.com',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Stuff after a # delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: 'example.com#stuff',\n      expected: {\n        href: 'http://example.com/path',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: 'Stuff after a # delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: 'example.com:8080#stuff',\n      expected: {\n        href: 'http://example.com:8080/path',\n        host: 'example.com:8080',\n        hostname: 'example.com',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Stuff after a \\\\ delimiter is ignored for special schemes',\n      href: 'http://example.net/path',\n      newValue: 'example.com\\\\stuff',\n      expected: {\n        href: 'http://example.com/path',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: 'Stuff after a \\\\ delimiter is ignored for special schemes',\n      href: 'http://example.net/path',\n      newValue: 'example.com:8080\\\\stuff',\n      expected: {\n        href: 'http://example.com:8080/path',\n        host: 'example.com:8080',\n        hostname: 'example.com',\n        port: '8080',\n      },\n    },\n    {\n      comment: '\\\\ is not a delimiter for non-special schemes, but still forbidden in hosts',\n      href: 'view-source+http://example.net/path',\n      newValue: 'example.com\\\\stuff',\n      expected: {\n        href: 'view-source+http://example.net/path',\n        host: 'example.net',\n        hostname: 'example.net',\n        port: '',\n      },\n    },\n    {\n      comment: 'Anything other than ASCII digit stops the port parser in a setter but is not an error',\n      href: 'view-source+http://example.net/path',\n      newValue: 'example.com:8080stuff2',\n      expected: {\n        href: 'view-source+http://example.com:8080/path',\n        host: 'example.com:8080',\n        hostname: 'example.com',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Anything other than ASCII digit stops the port parser in a setter but is not an error',\n      href: 'http://example.net/path',\n      newValue: 'example.com:8080stuff2',\n      expected: {\n        href: 'http://example.com:8080/path',\n        host: 'example.com:8080',\n        hostname: 'example.com',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Anything other than ASCII digit stops the port parser in a setter but is not an error',\n      href: 'http://example.net/path',\n      newValue: 'example.com:8080+2',\n      expected: {\n        href: 'http://example.com:8080/path',\n        host: 'example.com:8080',\n        hostname: 'example.com',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Port numbers are 16 bit integers',\n      href: 'http://example.net/path',\n      newValue: 'example.com:65535',\n      expected: {\n        href: 'http://example.com:65535/path',\n        host: 'example.com:65535',\n        hostname: 'example.com',\n        port: '65535',\n      },\n    },\n    {\n      comment: 'Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though.',\n      href: 'http://example.net/path',\n      newValue: 'example.com:65536',\n      expected: {\n        href: 'http://example.com/path',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: 'Broken IPv6',\n      href: 'http://example.net/',\n      newValue: '[google.com]',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n      },\n    },\n    {\n      href: 'http://example.net/',\n      newValue: '[::1.2.3.4x]',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n      },\n    },\n    {\n      href: 'http://example.net/',\n      newValue: '[::1.2.3.]',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n      },\n    },\n    {\n      href: 'http://example.net/',\n      newValue: '[::1.2.]',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n      },\n    },\n    {\n      href: 'http://example.net/',\n      newValue: '[::1.]',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n      },\n    },\n    {\n      href: 'file://y/',\n      newValue: 'x:123',\n      expected: {\n        href: 'file://y/',\n        host: 'y',\n        hostname: 'y',\n        port: '',\n      },\n    },\n    {\n      href: 'file://y/',\n      newValue: 'loc%41lhost',\n      expected: {\n        href: 'file:///',\n        host: '',\n        hostname: '',\n        port: '',\n      },\n    },\n    {\n      href: 'file://hi/x',\n      newValue: '',\n      expected: {\n        href: 'file:///x',\n        host: '',\n        hostname: '',\n        port: '',\n      },\n    },\n    {\n      href: 'sc://test@test/',\n      newValue: '',\n      expected: {\n        href: 'sc://test@test/',\n        host: 'test',\n        hostname: 'test',\n        username: 'test',\n      },\n    },\n    {\n      href: 'sc://test:12/',\n      newValue: '',\n      expected: {\n        href: 'sc://test:12/',\n        host: 'test:12',\n        hostname: 'test',\n        port: '12',\n      },\n    },\n  ],\n  hostname: [\n    {\n      comment: 'Non-special scheme',\n      href: 'sc://x/',\n      newValue: '\\u0000',\n      expected: {\n        href: 'sc://x/',\n        host: 'x',\n        hostname: 'x',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '\\u0009',\n      expected: {\n        href: 'sc:///',\n        host: '',\n        hostname: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '\\u000A',\n      expected: {\n        href: 'sc:///',\n        host: '',\n        hostname: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '\\u000D',\n      expected: {\n        href: 'sc:///',\n        host: '',\n        hostname: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: ' ',\n      expected: {\n        href: 'sc://x/',\n        host: 'x',\n        hostname: 'x',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '#',\n      expected: {\n        href: 'sc:///',\n        host: '',\n        hostname: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '/',\n      expected: {\n        href: 'sc:///',\n        host: '',\n        hostname: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '?',\n      expected: {\n        href: 'sc:///',\n        host: '',\n        hostname: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '@',\n      expected: {\n        href: 'sc://x/',\n        host: 'x',\n        hostname: 'x',\n      },\n    },\n    {\n      comment: 'Cannot-be-a-base means no host',\n      href: 'mailto:me@example.net',\n      newValue: 'example.com',\n      expected: {\n        href: 'mailto:me@example.net',\n        host: '',\n      },\n    },\n    {\n      comment: 'Cannot-be-a-base means no password',\n      href: 'data:text/plain,Stuff',\n      newValue: 'example.net',\n      expected: {\n        href: 'data:text/plain,Stuff',\n        host: '',\n      },\n    },\n    {\n      href: 'http://example.net:8080',\n      newValue: 'example.com',\n      expected: {\n        href: 'http://example.com:8080/',\n        host: 'example.com:8080',\n        hostname: 'example.com',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'The empty host is not valid for special schemes',\n      href: 'http://example.net',\n      newValue: '',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n      },\n    },\n    {\n      comment: 'The empty host is OK for non-special schemes',\n      href: 'view-source+http://example.net/foo',\n      newValue: '',\n      expected: {\n        href: 'view-source+http:///foo',\n        host: '',\n      },\n    },\n    {\n      comment: 'Path-only URLs can gain a host',\n      href: 'a:/foo',\n      newValue: 'example.net',\n      expected: {\n        href: 'a://example.net/foo',\n        host: 'example.net',\n      },\n    },\n    {\n      comment: 'IPv4 address syntax is normalized',\n      href: 'http://example.net:8080',\n      newValue: '0x7F000001',\n      expected: {\n        href: 'http://127.0.0.1:8080/',\n        host: '127.0.0.1:8080',\n        hostname: '127.0.0.1',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'IPv6 address syntax is normalized',\n      href: 'http://example.net',\n      newValue: '[::0:01]',\n      expected: {\n        href: 'http://[::1]/',\n        host: '[::1]',\n        hostname: '[::1]',\n        port: '',\n      },\n    },\n    {\n      comment: 'Stuff after a : delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: 'example.com:8080',\n      expected: {\n        href: 'http://example.com/path',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: 'Stuff after a : delimiter is ignored',\n      href: 'http://example.net:8080/path',\n      newValue: 'example.com:',\n      expected: {\n        href: 'http://example.com:8080/path',\n        host: 'example.com:8080',\n        hostname: 'example.com',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Stuff after a / delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: 'example.com/stuff',\n      expected: {\n        href: 'http://example.com/path',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: 'Stuff after a ? delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: 'example.com?stuff',\n      expected: {\n        href: 'http://example.com/path',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: 'Stuff after a # delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: 'example.com#stuff',\n      expected: {\n        href: 'http://example.com/path',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: 'Stuff after a \\\\ delimiter is ignored for special schemes',\n      href: 'http://example.net/path',\n      newValue: 'example.com\\\\stuff',\n      expected: {\n        href: 'http://example.com/path',\n        host: 'example.com',\n        hostname: 'example.com',\n        port: '',\n      },\n    },\n    {\n      comment: '\\\\ is not a delimiter for non-special schemes, but still forbidden in hosts',\n      href: 'view-source+http://example.net/path',\n      newValue: 'example.com\\\\stuff',\n      expected: {\n        href: 'view-source+http://example.net/path',\n        host: 'example.net',\n        hostname: 'example.net',\n        port: '',\n      },\n    },\n    {\n      comment: 'Broken IPv6',\n      href: 'http://example.net/',\n      newValue: '[google.com]',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n      },\n    },\n    {\n      href: 'http://example.net/',\n      newValue: '[::1.2.3.4x]',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n      },\n    },\n    {\n      href: 'http://example.net/',\n      newValue: '[::1.2.3.]',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n      },\n    },\n    {\n      href: 'http://example.net/',\n      newValue: '[::1.2.]',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n      },\n    },\n    {\n      href: 'http://example.net/',\n      newValue: '[::1.]',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n      },\n    },\n    {\n      href: 'file://y/',\n      newValue: 'x:123',\n      expected: {\n        href: 'file://y/',\n        host: 'y',\n        hostname: 'y',\n        port: '',\n      },\n    },\n    {\n      href: 'file://y/',\n      newValue: 'loc%41lhost',\n      expected: {\n        href: 'file:///',\n        host: '',\n        hostname: '',\n        port: '',\n      },\n    },\n    {\n      href: 'file://hi/x',\n      newValue: '',\n      expected: {\n        href: 'file:///x',\n        host: '',\n        hostname: '',\n        port: '',\n      },\n    },\n    {\n      href: 'sc://test@test/',\n      newValue: '',\n      expected: {\n        href: 'sc://test@test/',\n        host: 'test',\n        hostname: 'test',\n        username: 'test',\n      },\n    },\n    {\n      href: 'sc://test:12/',\n      newValue: '',\n      expected: {\n        href: 'sc://test:12/',\n        host: 'test:12',\n        hostname: 'test',\n        port: '12',\n      },\n    },\n  ],\n  port: [\n    {\n      href: 'http://example.net',\n      newValue: '8080',\n      expected: {\n        href: 'http://example.net:8080/',\n        host: 'example.net:8080',\n        hostname: 'example.net',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Port number is removed if empty is the new value',\n      href: 'http://example.net:8080',\n      newValue: '',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n        port: '',\n      },\n    },\n    {\n      comment: 'Default port number is removed',\n      href: 'http://example.net:8080',\n      newValue: '80',\n      expected: {\n        href: 'http://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n        port: '',\n      },\n    },\n    {\n      comment: 'Default port number is removed',\n      href: 'https://example.net:4433',\n      newValue: '443',\n      expected: {\n        href: 'https://example.net/',\n        host: 'example.net',\n        hostname: 'example.net',\n        port: '',\n      },\n    },\n    {\n      comment: 'Default port number is only removed for the relevant scheme',\n      href: 'https://example.net',\n      newValue: '80',\n      expected: {\n        href: 'https://example.net:80/',\n        host: 'example.net:80',\n        hostname: 'example.net',\n        port: '80',\n      },\n    },\n    {\n      comment: 'Stuff after a / delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: '8080/stuff',\n      expected: {\n        href: 'http://example.net:8080/path',\n        host: 'example.net:8080',\n        hostname: 'example.net',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Stuff after a ? delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: '8080?stuff',\n      expected: {\n        href: 'http://example.net:8080/path',\n        host: 'example.net:8080',\n        hostname: 'example.net',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Stuff after a # delimiter is ignored',\n      href: 'http://example.net/path',\n      newValue: '8080#stuff',\n      expected: {\n        href: 'http://example.net:8080/path',\n        host: 'example.net:8080',\n        hostname: 'example.net',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Stuff after a \\\\ delimiter is ignored for special schemes',\n      href: 'http://example.net/path',\n      newValue: '8080\\\\stuff',\n      expected: {\n        href: 'http://example.net:8080/path',\n        host: 'example.net:8080',\n        hostname: 'example.net',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Anything other than ASCII digit stops the port parser in a setter but is not an error',\n      href: 'view-source+http://example.net/path',\n      newValue: '8080stuff2',\n      expected: {\n        href: 'view-source+http://example.net:8080/path',\n        host: 'example.net:8080',\n        hostname: 'example.net',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Anything other than ASCII digit stops the port parser in a setter but is not an error',\n      href: 'http://example.net/path',\n      newValue: '8080stuff2',\n      expected: {\n        href: 'http://example.net:8080/path',\n        host: 'example.net:8080',\n        hostname: 'example.net',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Anything other than ASCII digit stops the port parser in a setter but is not an error',\n      href: 'http://example.net/path',\n      newValue: '8080+2',\n      expected: {\n        href: 'http://example.net:8080/path',\n        host: 'example.net:8080',\n        hostname: 'example.net',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Port numbers are 16 bit integers',\n      href: 'http://example.net/path',\n      newValue: '65535',\n      expected: {\n        href: 'http://example.net:65535/path',\n        host: 'example.net:65535',\n        hostname: 'example.net',\n        port: '65535',\n      },\n    },\n    {\n      comment: 'Port numbers are 16 bit integers, overflowing is an error',\n      href: 'http://example.net:8080/path',\n      newValue: '65536',\n      expected: {\n        href: 'http://example.net:8080/path',\n        host: 'example.net:8080',\n        hostname: 'example.net',\n        port: '8080',\n      },\n    },\n    {\n      comment: 'Port numbers are 16 bit integers, overflowing is an error',\n      href: 'non-special://example.net:8080/path',\n      newValue: '65536',\n      expected: {\n        href: 'non-special://example.net:8080/path',\n        host: 'example.net:8080',\n        hostname: 'example.net',\n        port: '8080',\n      },\n    },\n    {\n      href: 'file://test/',\n      newValue: '12',\n      expected: {\n        href: 'file://test/',\n        port: '',\n      },\n    },\n    {\n      href: 'file://localhost/',\n      newValue: '12',\n      expected: {\n        href: 'file:///',\n        port: '',\n      },\n    },\n    {\n      href: 'non-base:value',\n      newValue: '12',\n      expected: {\n        href: 'non-base:value',\n        port: '',\n      },\n    },\n    {\n      href: 'sc:///',\n      newValue: '12',\n      expected: {\n        href: 'sc:///',\n        port: '',\n      },\n    },\n    {\n      href: 'sc://x/',\n      newValue: '12',\n      expected: {\n        href: 'sc://x:12/',\n        port: '12',\n      },\n    },\n    {\n      href: 'javascript://x/',\n      newValue: '12',\n      expected: {\n        href: 'javascript://x:12/',\n        port: '12',\n      },\n    },\n  ],\n  pathname: [\n    {\n      comment: 'Cannot-be-a-base don’t have a path',\n      href: 'mailto:me@example.net',\n      newValue: '/foo',\n      expected: {\n        href: 'mailto:me@example.net',\n        pathname: 'me@example.net',\n      },\n    },\n    {\n      href: 'unix:/run/foo.socket?timeout=10',\n      newValue: '/var/log/../run/bar.socket',\n      expected: {\n        href: 'unix:/var/run/bar.socket?timeout=10',\n        pathname: '/var/run/bar.socket',\n      },\n    },\n    {\n      href: 'https://example.net#nav',\n      newValue: 'home',\n      expected: {\n        href: 'https://example.net/home#nav',\n        pathname: '/home',\n      },\n    },\n    {\n      href: 'https://example.net#nav',\n      newValue: '../home',\n      expected: {\n        href: 'https://example.net/home#nav',\n        pathname: '/home',\n      },\n    },\n    {\n      comment: \"\\\\ is a segment delimiter for 'special' URLs\",\n      href: 'http://example.net/home?lang=fr#nav',\n      newValue: '\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c',\n      expected: {\n        href: 'http://example.net/a/c?lang=fr#nav',\n        pathname: '/a/c',\n      },\n    },\n    {\n      comment: \"\\\\ is *not* a segment delimiter for non-'special' URLs\",\n      href: 'view-source+http://example.net/home?lang=fr#nav',\n      newValue: '\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c',\n      expected: {\n        href: 'view-source+http://example.net/\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c?lang=fr#nav',\n        pathname: '/\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c',\n      },\n    },\n    {\n      comment: 'UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.',\n      href: 'a:/',\n      newValue: \"\\u0000\\u0001\\t\\n\\r\\u001F !\\\"#$%&'()*+,-./09:;<=>?@AZ[\\\\]^_`az{|}~\\u007F\\u0080\\u0081Éé\",\n      expected: {\n        href: \"a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9\",\n        pathname: \"/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9\",\n      },\n    },\n    {\n      comment: 'Bytes already percent-encoded are left as-is, including %2E outside dotted segments.',\n      href: 'http://example.net',\n      newValue: '%2e%2E%c3%89té',\n      expected: {\n        href: 'http://example.net/%2e%2E%c3%89t%C3%A9',\n        pathname: '/%2e%2E%c3%89t%C3%A9',\n      },\n    },\n    {\n      comment: '? needs to be encoded',\n      href: 'http://example.net',\n      newValue: '?',\n      expected: {\n        href: 'http://example.net/%3F',\n        pathname: '/%3F',\n      },\n    },\n    {\n      comment: '# needs to be encoded',\n      href: 'http://example.net',\n      newValue: '#',\n      expected: {\n        href: 'http://example.net/%23',\n        pathname: '/%23',\n      },\n    },\n    {\n      comment: '? needs to be encoded, non-special scheme',\n      href: 'sc://example.net',\n      newValue: '?',\n      expected: {\n        href: 'sc://example.net/%3F',\n        pathname: '/%3F',\n      },\n    },\n    {\n      comment: '# needs to be encoded, non-special scheme',\n      href: 'sc://example.net',\n      newValue: '#',\n      expected: {\n        href: 'sc://example.net/%23',\n        pathname: '/%23',\n      },\n    },\n    {\n      comment: 'File URLs and (back)slashes',\n      href: 'file://monkey/',\n      newValue: '\\\\\\\\',\n      expected: {\n        href: 'file://monkey/',\n        pathname: '/',\n      },\n    },\n    {\n      comment: 'File URLs and (back)slashes',\n      href: 'file:///unicorn',\n      newValue: '//\\\\/',\n      expected: {\n        href: 'file:///',\n        pathname: '/',\n      },\n    },\n    {\n      comment: 'File URLs and (back)slashes',\n      href: 'file:///unicorn',\n      newValue: '//monkey/..//',\n      expected: {\n        href: 'file:///',\n        pathname: '/',\n      },\n    },\n  ],\n  search: [\n    {\n      href: 'https://example.net#nav',\n      newValue: 'lang=fr',\n      expected: {\n        href: 'https://example.net/?lang=fr#nav',\n        search: '?lang=fr',\n      },\n    },\n    {\n      href: 'https://example.net?lang=en-US#nav',\n      newValue: 'lang=fr',\n      expected: {\n        href: 'https://example.net/?lang=fr#nav',\n        search: '?lang=fr',\n      },\n    },\n    {\n      href: 'https://example.net?lang=en-US#nav',\n      newValue: '?lang=fr',\n      expected: {\n        href: 'https://example.net/?lang=fr#nav',\n        search: '?lang=fr',\n      },\n    },\n    {\n      href: 'https://example.net?lang=en-US#nav',\n      newValue: '??lang=fr',\n      expected: {\n        href: 'https://example.net/??lang=fr#nav',\n        search: '??lang=fr',\n      },\n    },\n    {\n      href: 'https://example.net?lang=en-US#nav',\n      newValue: '?',\n      expected: {\n        href: 'https://example.net/?#nav',\n        search: '',\n      },\n    },\n    {\n      href: 'https://example.net?lang=en-US#nav',\n      newValue: '',\n      expected: {\n        href: 'https://example.net/#nav',\n        search: '',\n      },\n    },\n    {\n      href: 'https://example.net?lang=en-US',\n      newValue: '',\n      expected: {\n        href: 'https://example.net/',\n        search: '',\n      },\n    },\n    {\n      href: 'https://example.net',\n      newValue: '',\n      expected: {\n        href: 'https://example.net/',\n        search: '',\n      },\n    },\n    /* URI malformed\n    {\n      comment: 'UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.',\n      href: 'a:/',\n      newValue: \"\\u0000\\u0001\\t\\n\\r\\u001f !\\\"#$%&'()*+,-./09:;<=>?@AZ[\\\\]^_`az{|}~\\u007f\\u0080\\u0081Éé\",\n      expected: {\n        href: \"a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9\",\n        search: \"?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9\",\n      },\n    },\n    */\n    {\n      comment: 'Bytes already percent-encoded are left as-is',\n      href: 'http://example.net',\n      newValue: '%c3%89té',\n      expected: {\n        href: 'http://example.net/?%c3%89t%C3%A9',\n        search: '?%c3%89t%C3%A9',\n      },\n    },\n  ],\n  hash: [\n    {\n      href: 'https://example.net',\n      newValue: 'main',\n      expected: {\n        href: 'https://example.net/#main',\n        hash: '#main',\n      },\n    },\n    {\n      href: 'https://example.net#nav',\n      newValue: 'main',\n      expected: {\n        href: 'https://example.net/#main',\n        hash: '#main',\n      },\n    },\n    {\n      href: 'https://example.net?lang=en-US',\n      newValue: '##nav',\n      expected: {\n        href: 'https://example.net/?lang=en-US##nav',\n        hash: '##nav',\n      },\n    },\n    {\n      href: 'https://example.net?lang=en-US#nav',\n      newValue: '#main',\n      expected: {\n        href: 'https://example.net/?lang=en-US#main',\n        hash: '#main',\n      },\n    },\n    {\n      href: 'https://example.net?lang=en-US#nav',\n      newValue: '#',\n      expected: {\n        href: 'https://example.net/?lang=en-US#',\n        hash: '',\n      },\n    },\n    {\n      href: 'https://example.net?lang=en-US#nav',\n      newValue: '',\n      expected: {\n        href: 'https://example.net/?lang=en-US',\n        hash: '',\n      },\n    },\n    {\n      href: 'http://example.net',\n      newValue: '#foo bar',\n      expected: {\n        href: 'http://example.net/#foo%20bar',\n        hash: '#foo%20bar',\n      },\n    },\n    {\n      href: 'http://example.net',\n      newValue: '#foo\"bar',\n      expected: {\n        href: 'http://example.net/#foo%22bar',\n        hash: '#foo%22bar',\n      },\n    },\n    {\n      href: 'http://example.net',\n      newValue: '#foo<bar',\n      expected: {\n        href: 'http://example.net/#foo%3Cbar',\n        hash: '#foo%3Cbar',\n      },\n    },\n    {\n      href: 'http://example.net',\n      newValue: '#foo>bar',\n      expected: {\n        href: 'http://example.net/#foo%3Ebar',\n        hash: '#foo%3Ebar',\n      },\n    },\n    {\n      href: 'http://example.net',\n      newValue: '#foo`bar',\n      expected: {\n        href: 'http://example.net/#foo%60bar',\n        hash: '#foo%60bar',\n      },\n    },\n    {\n      comment: 'Simple percent-encoding; nuls, tabs, and newlines are removed',\n      href: 'a:/',\n      newValue: \"\\u0000\\u0001\\t\\n\\r\\u001F !\\\"#$%&'()*+,-./09:;<=>?@AZ[\\\\]^_`az{|}~\\u007F\\u0080\\u0081Éé\",\n      expected: {\n        href: \"a:/#%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9\",\n        hash: \"#%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9\",\n      },\n    },\n    {\n      comment: 'Bytes already percent-encoded are left as-is',\n      href: 'http://example.net',\n      newValue: '%c3%89té',\n      expected: {\n        href: 'http://example.net/#%c3%89t%C3%A9',\n        hash: '#%c3%89t%C3%A9',\n      },\n    },\n    {\n      href: 'javascript:alert(1)',\n      newValue: 'castle',\n      expected: {\n        href: 'javascript:alert(1)#castle',\n        hash: '#castle',\n      },\n    },\n  ],\n};\n"
  },
  {
    "path": "tests/wpt-url-resources/toascii.js",
    "content": "// Copyright © web-platform-tests contributors\n// Originally from https://github.com/web-platform-tests/wpt\n// Available under the 3-Clause BSD License https://github.com/web-platform-tests/wpt/blob/master/LICENSE.md\n\n/* eslint-disable @stylistic/max-len -- ignore */\nexport default [\n  {\n    comment: 'Label with hyphens in 3rd and 4th position',\n    input: 'aa--',\n    output: 'aa--',\n  },\n  {\n    input: 'a†--',\n    output: 'xn--a---kp0a',\n  },\n  {\n    input: 'ab--c',\n    output: 'ab--c',\n  },\n  {\n    comment: 'Label with leading hyphen',\n    input: '-x',\n    output: '-x',\n  },\n  {\n    input: '-†',\n    output: 'xn----xhn',\n  },\n  {\n    input: '-x.xn--nxa',\n    output: '-x.xn--nxa',\n  },\n  {\n    input: '-x.β',\n    output: '-x.xn--nxa',\n  },\n  {\n    comment: 'Label with trailing hyphen',\n    input: 'x-.xn--nxa',\n    output: 'x-.xn--nxa',\n  },\n  {\n    input: 'x-.β',\n    output: 'x-.xn--nxa',\n  },\n  {\n    comment: 'Empty labels',\n    input: 'x..xn--nxa',\n    output: 'x..xn--nxa',\n  },\n  {\n    input: 'x..β',\n    output: 'x..xn--nxa',\n  },\n  {\n    comment: 'Invalid Punycode',\n    input: 'xn--a',\n    output: null,\n  },\n  {\n    input: 'xn--a.xn--nxa',\n    output: null,\n  },\n  {\n    input: 'xn--a.β',\n    output: null,\n  },\n  {\n    comment: 'Valid Punycode',\n    input: 'xn--nxa.xn--nxa',\n    output: 'xn--nxa.xn--nxa',\n  },\n  {\n    comment: 'Mixed',\n    input: 'xn--nxa.β',\n    output: 'xn--nxa.xn--nxa',\n  },\n  {\n    input: 'ab--c.xn--nxa',\n    output: 'ab--c.xn--nxa',\n  },\n  {\n    input: 'ab--c.β',\n    output: 'ab--c.xn--nxa',\n  },\n  {\n    comment: 'CheckJoiners is true',\n    input: '\\u200D.example',\n    output: null,\n  },\n  {\n    input: 'xn--1ug.example',\n    output: null,\n  },\n  {\n    comment: 'CheckBidi is true',\n    input: 'يa',\n    output: null,\n  },\n  {\n    input: 'xn--a-yoc',\n    output: null,\n  },\n  {\n    comment: 'processing_option is Nontransitional_Processing',\n    input: 'ශ්‍රී',\n    output: 'xn--10cl1a0b660p',\n  },\n  {\n    input: 'نامه‌ای',\n    output: 'xn--mgba3gch31f060k',\n  },\n  {\n    comment: 'U+FFFD',\n    input: '\\uFFFD.com',\n    output: null,\n  },\n  {\n    comment: 'U+FFFD character encoded in Punycode',\n    input: 'xn--zn7c.com',\n    output: null,\n  },\n  {\n    comment: 'Label longer than 63 code points',\n    input: 'x01234567890123456789012345678901234567890123456789012345678901x',\n    output: 'x01234567890123456789012345678901234567890123456789012345678901x',\n  },\n  {\n    input: 'x01234567890123456789012345678901234567890123456789012345678901†',\n    output: 'xn--x01234567890123456789012345678901234567890123456789012345678901-6963b',\n  },\n  {\n    input: 'x01234567890123456789012345678901234567890123456789012345678901x.xn--nxa',\n    output: 'x01234567890123456789012345678901234567890123456789012345678901x.xn--nxa',\n  },\n  {\n    input: 'x01234567890123456789012345678901234567890123456789012345678901x.β',\n    output: 'x01234567890123456789012345678901234567890123456789012345678901x.xn--nxa',\n  },\n  {\n    comment: 'Domain excluding TLD longer than 253 code points',\n    input: '01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x',\n    output: '01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x',\n  },\n  {\n    input: '01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--nxa',\n    output: '01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--nxa',\n  },\n  {\n    input: '01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.β',\n    output: '01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--nxa',\n  },\n];\n"
  },
  {
    "path": "tests/wpt-url-resources/urltestdata.js",
    "content": "// Copyright © web-platform-tests contributors\n// Originally from https://github.com/web-platform-tests/wpt\n// Available under the 3-Clause BSD License https://github.com/web-platform-tests/wpt/blob/master/LICENSE.md\n\n/* eslint-disable no-script-url -- required for testing */\nexport default [\n  '# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/segments.js',\n  {\n    input: 'http://example\\t.\\norg',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://user:pass@foo:21/bar;par?b#c',\n    base: 'http://example.org/foo/bar',\n    href: 'http://user:pass@foo:21/bar;par?b#c',\n    origin: 'http://foo:21',\n    protocol: 'http:',\n    username: 'user',\n    password: 'pass',\n    host: 'foo:21',\n    hostname: 'foo',\n    port: '21',\n    pathname: '/bar;par',\n    search: '?b',\n    hash: '#c',\n  },\n  {\n    input: 'https://test:@test',\n    base: 'about:blank',\n    href: 'https://test@test/',\n    origin: 'https://test',\n    protocol: 'https:',\n    username: 'test',\n    password: '',\n    host: 'test',\n    hostname: 'test',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'https://:@test',\n    base: 'about:blank',\n    href: 'https://test/',\n    origin: 'https://test',\n    protocol: 'https:',\n    username: '',\n    password: '',\n    host: 'test',\n    hostname: 'test',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'non-special://test:@test/x',\n    base: 'about:blank',\n    href: 'non-special://test@test/x',\n    origin: 'null',\n    protocol: 'non-special:',\n    username: 'test',\n    password: '',\n    host: 'test',\n    hostname: 'test',\n    port: '',\n    pathname: '/x',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'non-special://:@test/x',\n    base: 'about:blank',\n    href: 'non-special://test/x',\n    origin: 'null',\n    protocol: 'non-special:',\n    username: '',\n    password: '',\n    host: 'test',\n    hostname: 'test',\n    port: '',\n    pathname: '/x',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:foo.com',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/foo.com',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/foo.com',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '\\t   :foo.com   \\n',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/:foo.com',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/:foo.com',\n    search: '',\n    hash: '',\n  },\n  {\n    input: ' foo.com  ',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/foo.com',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/foo.com',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'a:\\t foo.com',\n    base: 'http://example.org/foo/bar',\n    href: 'a: foo.com',\n    origin: 'null',\n    protocol: 'a:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: ' foo.com',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://f:21/ b ? d # e ',\n    base: 'http://example.org/foo/bar',\n    href: 'http://f:21/%20b%20?%20d%20#%20e',\n    origin: 'http://f:21',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'f:21',\n    hostname: 'f',\n    port: '21',\n    pathname: '/%20b%20',\n    search: '?%20d%20',\n    hash: '#%20e',\n  },\n  {\n    input: 'lolscheme:x x#x x',\n    base: 'about:blank',\n    href: 'lolscheme:x x#x%20x',\n    protocol: 'lolscheme:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'x x',\n    search: '',\n    hash: '#x%20x',\n  },\n  {\n    input: 'http://f:/c',\n    base: 'http://example.org/foo/bar',\n    href: 'http://f/c',\n    origin: 'http://f',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'f',\n    hostname: 'f',\n    port: '',\n    pathname: '/c',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://f:0/c',\n    base: 'http://example.org/foo/bar',\n    href: 'http://f:0/c',\n    origin: 'http://f:0',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'f:0',\n    hostname: 'f',\n    port: '0',\n    pathname: '/c',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://f:00000000000000/c',\n    base: 'http://example.org/foo/bar',\n    href: 'http://f:0/c',\n    origin: 'http://f:0',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'f:0',\n    hostname: 'f',\n    port: '0',\n    pathname: '/c',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://f:00000000000000000000080/c',\n    base: 'http://example.org/foo/bar',\n    href: 'http://f/c',\n    origin: 'http://f',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'f',\n    hostname: 'f',\n    port: '',\n    pathname: '/c',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://f:b/c',\n    base: 'http://example.org/foo/bar',\n    failure: true,\n  },\n  {\n    input: 'http://f: /c',\n    base: 'http://example.org/foo/bar',\n    failure: true,\n  },\n  {\n    input: 'http://f:\\n/c',\n    base: 'http://example.org/foo/bar',\n    href: 'http://f/c',\n    origin: 'http://f',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'f',\n    hostname: 'f',\n    port: '',\n    pathname: '/c',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://f:fifty-two/c',\n    base: 'http://example.org/foo/bar',\n    failure: true,\n  },\n  {\n    input: 'http://f:999999/c',\n    base: 'http://example.org/foo/bar',\n    failure: true,\n  },\n  {\n    input: 'non-special://f:999999/c',\n    base: 'http://example.org/foo/bar',\n    failure: true,\n  },\n  {\n    input: 'http://f: 21 / b ? d # e ',\n    base: 'http://example.org/foo/bar',\n    failure: true,\n  },\n  {\n    input: '',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/bar',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '  \\t',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/bar',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: ':foo.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/:foo.com/',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/:foo.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: ':foo.com\\\\',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/:foo.com/',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/:foo.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: ':',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/:',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/:',\n    search: '',\n    hash: '',\n  },\n  {\n    input: ':a',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/:a',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/:a',\n    search: '',\n    hash: '',\n  },\n  {\n    input: ':/',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/:/',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/:/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: ':\\\\',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/:/',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/:/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: ':#',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/:#',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/:',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '#',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/bar#',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '#/',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/bar#/',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/bar',\n    search: '',\n    hash: '#/',\n  },\n  {\n    input: '#\\\\',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/bar#\\\\',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/bar',\n    search: '',\n    hash: '#\\\\',\n  },\n  {\n    input: '#;?',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/bar#;?',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/bar',\n    search: '',\n    hash: '#;?',\n  },\n  {\n    input: '?',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/bar?',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: ':23',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/:23',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/:23',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/:23',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/:23',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/:23',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '::',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/::',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/::',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '::23',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/::23',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/::23',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'foo://',\n    base: 'http://example.org/foo/bar',\n    href: 'foo://',\n    origin: 'null',\n    protocol: 'foo:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://a:b@c:29/d',\n    base: 'http://example.org/foo/bar',\n    href: 'http://a:b@c:29/d',\n    origin: 'http://c:29',\n    protocol: 'http:',\n    username: 'a',\n    password: 'b',\n    host: 'c:29',\n    hostname: 'c',\n    port: '29',\n    pathname: '/d',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http::@c:29',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/:@c:29',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/:@c:29',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://&a:foo(b]c@d:2/',\n    base: 'http://example.org/foo/bar',\n    href: 'http://&a:foo(b%5Dc@d:2/',\n    origin: 'http://d:2',\n    protocol: 'http:',\n    username: '&a',\n    password: 'foo(b%5Dc',\n    host: 'd:2',\n    hostname: 'd',\n    port: '2',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://::@c@d:2',\n    base: 'http://example.org/foo/bar',\n    href: 'http://:%3A%40c@d:2/',\n    origin: 'http://d:2',\n    protocol: 'http:',\n    username: '',\n    password: '%3A%40c',\n    host: 'd:2',\n    hostname: 'd',\n    port: '2',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://foo.com:b@d/',\n    base: 'http://example.org/foo/bar',\n    href: 'http://foo.com:b@d/',\n    origin: 'http://d',\n    protocol: 'http:',\n    username: 'foo.com',\n    password: 'b',\n    host: 'd',\n    hostname: 'd',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://foo.com/\\\\@',\n    base: 'http://example.org/foo/bar',\n    href: 'http://foo.com//@',\n    origin: 'http://foo.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo.com',\n    hostname: 'foo.com',\n    port: '',\n    pathname: '//@',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:\\\\\\\\foo.com\\\\',\n    base: 'http://example.org/foo/bar',\n    href: 'http://foo.com/',\n    origin: 'http://foo.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo.com',\n    hostname: 'foo.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:\\\\\\\\a\\\\b:c\\\\d@foo.com\\\\',\n    base: 'http://example.org/foo/bar',\n    href: 'http://a/b:c/d@foo.com/',\n    origin: 'http://a',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'a',\n    hostname: 'a',\n    port: '',\n    pathname: '/b:c/d@foo.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'foo:/',\n    base: 'http://example.org/foo/bar',\n    href: 'foo:/',\n    origin: 'null',\n    protocol: 'foo:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'foo:/bar.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'foo:/bar.com/',\n    origin: 'null',\n    protocol: 'foo:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/bar.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'foo://///////',\n    base: 'http://example.org/foo/bar',\n    href: 'foo://///////',\n    origin: 'null',\n    protocol: 'foo:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '///////',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'foo://///////bar.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'foo://///////bar.com/',\n    origin: 'null',\n    protocol: 'foo:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '///////bar.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'foo:////://///',\n    base: 'http://example.org/foo/bar',\n    href: 'foo:////://///',\n    origin: 'null',\n    protocol: 'foo:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '//://///',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'c:/foo',\n    base: 'http://example.org/foo/bar',\n    href: 'c:/foo',\n    origin: 'null',\n    protocol: 'c:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/foo',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '//foo/bar',\n    base: 'http://example.org/foo/bar',\n    href: 'http://foo/bar',\n    origin: 'http://foo',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo',\n    hostname: 'foo',\n    port: '',\n    pathname: '/bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://foo/path;a??e#f#g',\n    base: 'http://example.org/foo/bar',\n    href: 'http://foo/path;a??e#f#g',\n    origin: 'http://foo',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo',\n    hostname: 'foo',\n    port: '',\n    pathname: '/path;a',\n    search: '??e',\n    hash: '#f#g',\n  },\n  {\n    input: 'http://foo/abcd?efgh?ijkl',\n    base: 'http://example.org/foo/bar',\n    href: 'http://foo/abcd?efgh?ijkl',\n    origin: 'http://foo',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo',\n    hostname: 'foo',\n    port: '',\n    pathname: '/abcd',\n    search: '?efgh?ijkl',\n    hash: '',\n  },\n  {\n    input: 'http://foo/abcd#foo?bar',\n    base: 'http://example.org/foo/bar',\n    href: 'http://foo/abcd#foo?bar',\n    origin: 'http://foo',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo',\n    hostname: 'foo',\n    port: '',\n    pathname: '/abcd',\n    search: '',\n    hash: '#foo?bar',\n  },\n  {\n    input: '[61:24:74]:98',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/[61:24:74]:98',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/[61:24:74]:98',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:[61:27]/:foo',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/[61:27]/:foo',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/[61:27]/:foo',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://[1::2]:3:4',\n    base: 'http://example.org/foo/bar',\n    failure: true,\n  },\n  {\n    input: 'http://2001::1',\n    base: 'http://example.org/foo/bar',\n    failure: true,\n  },\n  {\n    input: 'http://2001::1]',\n    base: 'http://example.org/foo/bar',\n    failure: true,\n  },\n  {\n    input: 'http://2001::1]:80',\n    base: 'http://example.org/foo/bar',\n    failure: true,\n  },\n  {\n    input: 'http://[2001::1]',\n    base: 'http://example.org/foo/bar',\n    href: 'http://[2001::1]/',\n    origin: 'http://[2001::1]',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '[2001::1]',\n    hostname: '[2001::1]',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://[::127.0.0.1]',\n    base: 'http://example.org/foo/bar',\n    href: 'http://[::7f00:1]/',\n    origin: 'http://[::7f00:1]',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '[::7f00:1]',\n    hostname: '[::7f00:1]',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://[0:0:0:0:0:0:13.1.68.3]',\n    base: 'http://example.org/foo/bar',\n    href: 'http://[::d01:4403]/',\n    origin: 'http://[::d01:4403]',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '[::d01:4403]',\n    hostname: '[::d01:4403]',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://[2001::1]:80',\n    base: 'http://example.org/foo/bar',\n    href: 'http://[2001::1]/',\n    origin: 'http://[2001::1]',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '[2001::1]',\n    hostname: '[2001::1]',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:/example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/example.com/',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ftp:/example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'ftp://example.com/',\n    origin: 'ftp://example.com',\n    protocol: 'ftp:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'https:/example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'https://example.com/',\n    origin: 'https://example.com',\n    protocol: 'https:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'madeupscheme:/example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'madeupscheme:/example.com/',\n    origin: 'null',\n    protocol: 'madeupscheme:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:/example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'file:///example.com/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file://example:1/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'file://example:test/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'file://example%/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'file://[example]/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'ftps:/example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'ftps:/example.com/',\n    origin: 'null',\n    protocol: 'ftps:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ws:/example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'ws://example.com/',\n    origin: 'ws://example.com',\n    protocol: 'ws:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'wss:/example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'wss://example.com/',\n    origin: 'wss://example.com',\n    protocol: 'wss:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'data:/example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'data:/example.com/',\n    origin: 'null',\n    protocol: 'data:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'javascript:/example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'javascript:/example.com/',\n    origin: 'null',\n    protocol: 'javascript:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'mailto:/example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'mailto:/example.com/',\n    origin: 'null',\n    protocol: 'mailto:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/example.com/',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ftp:example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'ftp://example.com/',\n    origin: 'ftp://example.com',\n    protocol: 'ftp:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'https:example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'https://example.com/',\n    origin: 'https://example.com',\n    protocol: 'https:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'madeupscheme:example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'madeupscheme:example.com/',\n    origin: 'null',\n    protocol: 'madeupscheme:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ftps:example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'ftps:example.com/',\n    origin: 'null',\n    protocol: 'ftps:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ws:example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'ws://example.com/',\n    origin: 'ws://example.com',\n    protocol: 'ws:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'wss:example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'wss://example.com/',\n    origin: 'wss://example.com',\n    protocol: 'wss:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'data:example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'data:example.com/',\n    origin: 'null',\n    protocol: 'data:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'javascript:example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'javascript:example.com/',\n    origin: 'null',\n    protocol: 'javascript:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'mailto:example.com/',\n    base: 'http://example.org/foo/bar',\n    href: 'mailto:example.com/',\n    origin: 'null',\n    protocol: 'mailto:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/a/b/c',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/a/b/c',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/a/b/c',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/a/ /c',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/a/%20/c',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/a/%20/c',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/a%2fc',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/a%2fc',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/a%2fc',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/a/%2f/c',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/a/%2f/c',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/a/%2f/c',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '#β',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/bar#%CE%B2',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/bar',\n    search: '',\n    hash: '#%CE%B2',\n  },\n  {\n    input: 'data:text/html,test#test',\n    base: 'http://example.org/foo/bar',\n    href: 'data:text/html,test#test',\n    origin: 'null',\n    protocol: 'data:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'text/html,test',\n    search: '',\n    hash: '#test',\n  },\n  {\n    input: 'tel:1234567890',\n    base: 'http://example.org/foo/bar',\n    href: 'tel:1234567890',\n    origin: 'null',\n    protocol: 'tel:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '1234567890',\n    search: '',\n    hash: '',\n  },\n  '# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/file.html',\n  {\n    input: 'file:c:\\\\foo\\\\bar.html',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///c:/foo/bar.html',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/c:/foo/bar.html',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '  File:c|////foo\\\\bar.html',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///c:////foo/bar.html',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/c:////foo/bar.html',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'C|/foo/bar',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///C:/foo/bar',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/foo/bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/C|\\\\foo\\\\bar',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///C:/foo/bar',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/foo/bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '//C|/foo/bar',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///C:/foo/bar',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/foo/bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '//server/file',\n    base: 'file:///tmp/mock/path',\n    href: 'file://server/file',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: 'server',\n    hostname: 'server',\n    port: '',\n    pathname: '/file',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '\\\\\\\\server\\\\file',\n    base: 'file:///tmp/mock/path',\n    href: 'file://server/file',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: 'server',\n    hostname: 'server',\n    port: '',\n    pathname: '/file',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/\\\\server/file',\n    base: 'file:///tmp/mock/path',\n    href: 'file://server/file',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: 'server',\n    hostname: 'server',\n    port: '',\n    pathname: '/file',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:///foo/bar.txt',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///foo/bar.txt',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/foo/bar.txt',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:///home/me',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///home/me',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/home/me',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '//',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '///',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '///test',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///test',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/test',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file://test',\n    base: 'file:///tmp/mock/path',\n    href: 'file://test/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: 'test',\n    hostname: 'test',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file://localhost',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file://localhost/',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file://localhost/test',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///test',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/test',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'test',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///tmp/mock/test',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/tmp/mock/test',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:test',\n    base: 'file:///tmp/mock/path',\n    href: 'file:///tmp/mock/test',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/tmp/mock/test',\n    search: '',\n    hash: '',\n  },\n  '# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/path.js',\n  {\n    input: 'http://example.com/././foo',\n    base: 'about:blank',\n    href: 'http://example.com/foo',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/./.foo',\n    base: 'about:blank',\n    href: 'http://example.com/.foo',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/.foo',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/.',\n    base: 'about:blank',\n    href: 'http://example.com/foo/',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/./',\n    base: 'about:blank',\n    href: 'http://example.com/foo/',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/bar/..',\n    base: 'about:blank',\n    href: 'http://example.com/foo/',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/bar/../',\n    base: 'about:blank',\n    href: 'http://example.com/foo/',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/..bar',\n    base: 'about:blank',\n    href: 'http://example.com/foo/..bar',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo/..bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/bar/../ton',\n    base: 'about:blank',\n    href: 'http://example.com/foo/ton',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo/ton',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/bar/../ton/../../a',\n    base: 'about:blank',\n    href: 'http://example.com/a',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/a',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/../../..',\n    base: 'about:blank',\n    href: 'http://example.com/',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/../../../ton',\n    base: 'about:blank',\n    href: 'http://example.com/ton',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/ton',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/%2e',\n    base: 'about:blank',\n    href: 'http://example.com/foo/',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/%2e%2',\n    base: 'about:blank',\n    href: 'http://example.com/foo/%2e%2',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo/%2e%2',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar',\n    base: 'about:blank',\n    href: 'http://example.com/%2e.bar',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/%2e.bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com////../..',\n    base: 'about:blank',\n    href: 'http://example.com//',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '//',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/bar//../..',\n    base: 'about:blank',\n    href: 'http://example.com/foo/',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo/bar//..',\n    base: 'about:blank',\n    href: 'http://example.com/foo/bar/',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo/bar/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo',\n    base: 'about:blank',\n    href: 'http://example.com/foo',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/%20foo',\n    base: 'about:blank',\n    href: 'http://example.com/%20foo',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/%20foo',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo%',\n    base: 'about:blank',\n    href: 'http://example.com/foo%',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo%',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo%2',\n    base: 'about:blank',\n    href: 'http://example.com/foo%2',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo%2',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo%2zbar',\n    base: 'about:blank',\n    href: 'http://example.com/foo%2zbar',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo%2zbar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo%2Â©zbar',\n    base: 'about:blank',\n    href: 'http://example.com/foo%2%C3%82%C2%A9zbar',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo%2%C3%82%C2%A9zbar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo%41%7a',\n    base: 'about:blank',\n    href: 'http://example.com/foo%41%7a',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo%41%7a',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo\\t\\u0091%91',\n    base: 'about:blank',\n    href: 'http://example.com/foo%C2%91%91',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo%C2%91%91',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo%00%51',\n    base: 'about:blank',\n    href: 'http://example.com/foo%00%51',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foo%00%51',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/(%28:%3A%29)',\n    base: 'about:blank',\n    href: 'http://example.com/(%28:%3A%29)',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/(%28:%3A%29)',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/%3A%3a%3C%3c',\n    base: 'about:blank',\n    href: 'http://example.com/%3A%3a%3C%3c',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/%3A%3a%3C%3c',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/foo\\tbar',\n    base: 'about:blank',\n    href: 'http://example.com/foobar',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/foobar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com\\\\\\\\foo\\\\\\\\bar',\n    base: 'about:blank',\n    href: 'http://example.com//foo//bar',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '//foo//bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd',\n    base: 'about:blank',\n    href: 'http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/%7Ffp3%3Eju%3Dduvgw%3Dd',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/@asdf%40',\n    base: 'about:blank',\n    href: 'http://example.com/@asdf%40',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/@asdf%40',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/你好你好',\n    base: 'about:blank',\n    href: 'http://example.com/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/‥/foo',\n    base: 'about:blank',\n    href: 'http://example.com/%E2%80%A5/foo',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/%E2%80%A5/foo',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/﻿/foo',\n    base: 'about:blank',\n    href: 'http://example.com/%EF%BB%BF/foo',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/%EF%BB%BF/foo',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.com/‮/foo/‭/bar',\n    base: 'about:blank',\n    href: 'http://example.com/%E2%80%AE/foo/%E2%80%AD/bar',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/%E2%80%AE/foo/%E2%80%AD/bar',\n    search: '',\n    hash: '',\n  },\n  '# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/relative.js',\n  {\n    input: 'http://www.google.com/foo?bar=baz#',\n    base: 'about:blank',\n    href: 'http://www.google.com/foo?bar=baz#',\n    origin: 'http://www.google.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.google.com',\n    hostname: 'www.google.com',\n    port: '',\n    pathname: '/foo',\n    search: '?bar=baz',\n    hash: '',\n  },\n  {\n    input: 'http://www.google.com/foo?bar=baz# »',\n    base: 'about:blank',\n    href: 'http://www.google.com/foo?bar=baz#%20%C2%BB',\n    origin: 'http://www.google.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.google.com',\n    hostname: 'www.google.com',\n    port: '',\n    pathname: '/foo',\n    search: '?bar=baz',\n    hash: '#%20%C2%BB',\n  },\n  {\n    input: 'data:test# »',\n    base: 'about:blank',\n    href: 'data:test#%20%C2%BB',\n    origin: 'null',\n    protocol: 'data:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'test',\n    search: '',\n    hash: '#%20%C2%BB',\n  },\n  {\n    input: 'http://www.google.com',\n    base: 'about:blank',\n    href: 'http://www.google.com/',\n    origin: 'http://www.google.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.google.com',\n    hostname: 'www.google.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://192.0x00A80001',\n    base: 'about:blank',\n    href: 'http://192.168.0.1/',\n    origin: 'http://192.168.0.1',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '192.168.0.1',\n    hostname: '192.168.0.1',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://www/foo%2Ehtml',\n    base: 'about:blank',\n    href: 'http://www/foo%2Ehtml',\n    origin: 'http://www',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www',\n    hostname: 'www',\n    port: '',\n    pathname: '/foo%2Ehtml',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://www/foo/%2E/html',\n    base: 'about:blank',\n    href: 'http://www/foo/html',\n    origin: 'http://www',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www',\n    hostname: 'www',\n    port: '',\n    pathname: '/foo/html',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://user:pass@/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http://%25DOMAIN:foobar@foodomain.com/',\n    base: 'about:blank',\n    href: 'http://%25DOMAIN:foobar@foodomain.com/',\n    origin: 'http://foodomain.com',\n    protocol: 'http:',\n    username: '%25DOMAIN',\n    password: 'foobar',\n    host: 'foodomain.com',\n    hostname: 'foodomain.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:\\\\\\\\www.google.com\\\\foo',\n    base: 'about:blank',\n    href: 'http://www.google.com/foo',\n    origin: 'http://www.google.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.google.com',\n    hostname: 'www.google.com',\n    port: '',\n    pathname: '/foo',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://foo:80/',\n    base: 'about:blank',\n    href: 'http://foo/',\n    origin: 'http://foo',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo',\n    hostname: 'foo',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://foo:81/',\n    base: 'about:blank',\n    href: 'http://foo:81/',\n    origin: 'http://foo:81',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo:81',\n    hostname: 'foo',\n    port: '81',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'httpa://foo:80/',\n    base: 'about:blank',\n    href: 'httpa://foo:80/',\n    origin: 'null',\n    protocol: 'httpa:',\n    username: '',\n    password: '',\n    host: 'foo:80',\n    hostname: 'foo',\n    port: '80',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://foo:-80/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https://foo:443/',\n    base: 'about:blank',\n    href: 'https://foo/',\n    origin: 'https://foo',\n    protocol: 'https:',\n    username: '',\n    password: '',\n    host: 'foo',\n    hostname: 'foo',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'https://foo:80/',\n    base: 'about:blank',\n    href: 'https://foo:80/',\n    origin: 'https://foo:80',\n    protocol: 'https:',\n    username: '',\n    password: '',\n    host: 'foo:80',\n    hostname: 'foo',\n    port: '80',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ftp://foo:21/',\n    base: 'about:blank',\n    href: 'ftp://foo/',\n    origin: 'ftp://foo',\n    protocol: 'ftp:',\n    username: '',\n    password: '',\n    host: 'foo',\n    hostname: 'foo',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ftp://foo:80/',\n    base: 'about:blank',\n    href: 'ftp://foo:80/',\n    origin: 'ftp://foo:80',\n    protocol: 'ftp:',\n    username: '',\n    password: '',\n    host: 'foo:80',\n    hostname: 'foo',\n    port: '80',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ws://foo:80/',\n    base: 'about:blank',\n    href: 'ws://foo/',\n    origin: 'ws://foo',\n    protocol: 'ws:',\n    username: '',\n    password: '',\n    host: 'foo',\n    hostname: 'foo',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ws://foo:81/',\n    base: 'about:blank',\n    href: 'ws://foo:81/',\n    origin: 'ws://foo:81',\n    protocol: 'ws:',\n    username: '',\n    password: '',\n    host: 'foo:81',\n    hostname: 'foo',\n    port: '81',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ws://foo:443/',\n    base: 'about:blank',\n    href: 'ws://foo:443/',\n    origin: 'ws://foo:443',\n    protocol: 'ws:',\n    username: '',\n    password: '',\n    host: 'foo:443',\n    hostname: 'foo',\n    port: '443',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ws://foo:815/',\n    base: 'about:blank',\n    href: 'ws://foo:815/',\n    origin: 'ws://foo:815',\n    protocol: 'ws:',\n    username: '',\n    password: '',\n    host: 'foo:815',\n    hostname: 'foo',\n    port: '815',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'wss://foo:80/',\n    base: 'about:blank',\n    href: 'wss://foo:80/',\n    origin: 'wss://foo:80',\n    protocol: 'wss:',\n    username: '',\n    password: '',\n    host: 'foo:80',\n    hostname: 'foo',\n    port: '80',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'wss://foo:81/',\n    base: 'about:blank',\n    href: 'wss://foo:81/',\n    origin: 'wss://foo:81',\n    protocol: 'wss:',\n    username: '',\n    password: '',\n    host: 'foo:81',\n    hostname: 'foo',\n    port: '81',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'wss://foo:443/',\n    base: 'about:blank',\n    href: 'wss://foo/',\n    origin: 'wss://foo',\n    protocol: 'wss:',\n    username: '',\n    password: '',\n    host: 'foo',\n    hostname: 'foo',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'wss://foo:815/',\n    base: 'about:blank',\n    href: 'wss://foo:815/',\n    origin: 'wss://foo:815',\n    protocol: 'wss:',\n    username: '',\n    password: '',\n    host: 'foo:815',\n    hostname: 'foo',\n    port: '815',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:/example.com/',\n    base: 'about:blank',\n    href: 'http://example.com/',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ftp:/example.com/',\n    base: 'about:blank',\n    href: 'ftp://example.com/',\n    origin: 'ftp://example.com',\n    protocol: 'ftp:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'https:/example.com/',\n    base: 'about:blank',\n    href: 'https://example.com/',\n    origin: 'https://example.com',\n    protocol: 'https:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'madeupscheme:/example.com/',\n    base: 'about:blank',\n    href: 'madeupscheme:/example.com/',\n    origin: 'null',\n    protocol: 'madeupscheme:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:/example.com/',\n    base: 'about:blank',\n    href: 'file:///example.com/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ftps:/example.com/',\n    base: 'about:blank',\n    href: 'ftps:/example.com/',\n    origin: 'null',\n    protocol: 'ftps:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ws:/example.com/',\n    base: 'about:blank',\n    href: 'ws://example.com/',\n    origin: 'ws://example.com',\n    protocol: 'ws:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'wss:/example.com/',\n    base: 'about:blank',\n    href: 'wss://example.com/',\n    origin: 'wss://example.com',\n    protocol: 'wss:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'data:/example.com/',\n    base: 'about:blank',\n    href: 'data:/example.com/',\n    origin: 'null',\n    protocol: 'data:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'javascript:/example.com/',\n    base: 'about:blank',\n    href: 'javascript:/example.com/',\n    origin: 'null',\n    protocol: 'javascript:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'mailto:/example.com/',\n    base: 'about:blank',\n    href: 'mailto:/example.com/',\n    origin: 'null',\n    protocol: 'mailto:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:example.com/',\n    base: 'about:blank',\n    href: 'http://example.com/',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ftp:example.com/',\n    base: 'about:blank',\n    href: 'ftp://example.com/',\n    origin: 'ftp://example.com',\n    protocol: 'ftp:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'https:example.com/',\n    base: 'about:blank',\n    href: 'https://example.com/',\n    origin: 'https://example.com',\n    protocol: 'https:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'madeupscheme:example.com/',\n    base: 'about:blank',\n    href: 'madeupscheme:example.com/',\n    origin: 'null',\n    protocol: 'madeupscheme:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ftps:example.com/',\n    base: 'about:blank',\n    href: 'ftps:example.com/',\n    origin: 'null',\n    protocol: 'ftps:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ws:example.com/',\n    base: 'about:blank',\n    href: 'ws://example.com/',\n    origin: 'ws://example.com',\n    protocol: 'ws:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'wss:example.com/',\n    base: 'about:blank',\n    href: 'wss://example.com/',\n    origin: 'wss://example.com',\n    protocol: 'wss:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'data:example.com/',\n    base: 'about:blank',\n    href: 'data:example.com/',\n    origin: 'null',\n    protocol: 'data:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'javascript:example.com/',\n    base: 'about:blank',\n    href: 'javascript:example.com/',\n    origin: 'null',\n    protocol: 'javascript:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'example.com/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'mailto:example.com/',\n    base: 'about:blank',\n    href: 'mailto:example.com/',\n    origin: 'null',\n    protocol: 'mailto:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'example.com/',\n    search: '',\n    hash: '',\n  },\n  '# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/segments-userinfo-vs-host.html',\n  {\n    input: 'http:@www.example.com',\n    base: 'about:blank',\n    href: 'http://www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:/@www.example.com',\n    base: 'about:blank',\n    href: 'http://www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://@www.example.com',\n    base: 'about:blank',\n    href: 'http://www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:a:b@www.example.com',\n    base: 'about:blank',\n    href: 'http://a:b@www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: 'a',\n    password: 'b',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:/a:b@www.example.com',\n    base: 'about:blank',\n    href: 'http://a:b@www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: 'a',\n    password: 'b',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://a:b@www.example.com',\n    base: 'about:blank',\n    href: 'http://a:b@www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: 'a',\n    password: 'b',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://@pple.com',\n    base: 'about:blank',\n    href: 'http://pple.com/',\n    origin: 'http://pple.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'pple.com',\n    hostname: 'pple.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http::b@www.example.com',\n    base: 'about:blank',\n    href: 'http://:b@www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: 'b',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:/:b@www.example.com',\n    base: 'about:blank',\n    href: 'http://:b@www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: 'b',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://:b@www.example.com',\n    base: 'about:blank',\n    href: 'http://:b@www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: 'b',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:/:@/www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http://user@/www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http:@/www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http:/@/www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http://@/www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https:@/www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http:a:b@/www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http:/a:b@/www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http://a:b@/www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http::@/www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http:a:@www.example.com',\n    base: 'about:blank',\n    href: 'http://a@www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: 'a',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:/a:@www.example.com',\n    base: 'about:blank',\n    href: 'http://a@www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: 'a',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://a:@www.example.com',\n    base: 'about:blank',\n    href: 'http://a@www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: 'a',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://www.@pple.com',\n    base: 'about:blank',\n    href: 'http://www.@pple.com/',\n    origin: 'http://pple.com',\n    protocol: 'http:',\n    username: 'www.',\n    password: '',\n    host: 'pple.com',\n    hostname: 'pple.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http:@:www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http:/@:www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http://@:www.example.com',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http://:@www.example.com',\n    base: 'about:blank',\n    href: 'http://www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  '# Others',\n  {\n    input: '/',\n    base: 'http://www.example.com/test',\n    href: 'http://www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/test.txt',\n    base: 'http://www.example.com/test',\n    href: 'http://www.example.com/test.txt',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/test.txt',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '.',\n    base: 'http://www.example.com/test',\n    href: 'http://www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '..',\n    base: 'http://www.example.com/test',\n    href: 'http://www.example.com/',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'test.txt',\n    base: 'http://www.example.com/test',\n    href: 'http://www.example.com/test.txt',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/test.txt',\n    search: '',\n    hash: '',\n  },\n  {\n    input: './test.txt',\n    base: 'http://www.example.com/test',\n    href: 'http://www.example.com/test.txt',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/test.txt',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '../test.txt',\n    base: 'http://www.example.com/test',\n    href: 'http://www.example.com/test.txt',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/test.txt',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '../aaa/test.txt',\n    base: 'http://www.example.com/test',\n    href: 'http://www.example.com/aaa/test.txt',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/aaa/test.txt',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '../../test.txt',\n    base: 'http://www.example.com/test',\n    href: 'http://www.example.com/test.txt',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/test.txt',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '中/test.txt',\n    base: 'http://www.example.com/test',\n    href: 'http://www.example.com/%E4%B8%AD/test.txt',\n    origin: 'http://www.example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example.com',\n    hostname: 'www.example.com',\n    port: '',\n    pathname: '/%E4%B8%AD/test.txt',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://www.example2.com',\n    base: 'http://www.example.com/test',\n    href: 'http://www.example2.com/',\n    origin: 'http://www.example2.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example2.com',\n    hostname: 'www.example2.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '//www.example2.com',\n    base: 'http://www.example.com/test',\n    href: 'http://www.example2.com/',\n    origin: 'http://www.example2.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.example2.com',\n    hostname: 'www.example2.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:...',\n    base: 'http://www.example.com/test',\n    href: 'file:///...',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/...',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:..',\n    base: 'http://www.example.com/test',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:a',\n    base: 'http://www.example.com/test',\n    href: 'file:///a',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/a',\n    search: '',\n    hash: '',\n  },\n  '# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/host.html',\n  'Basic canonicalization, uppercase should be converted to lowercase',\n  {\n    input: 'http://ExAmPlE.CoM',\n    base: 'http://other.com/',\n    href: 'http://example.com/',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example example.com',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://Goo%20 goo%7C|.com',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://[]',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://[:]',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  'U+3000 is mapped to U+0020 (space) which is disallowed',\n  {\n    input: 'http://GOO\\u00A0\\u3000goo.com',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  'Other types of space (no-break, zero-width, zero-width-no-break) are name-prepped away to nothing. U+200B, U+2060, and U+FEFF, are ignored',\n  {\n    input: 'http://GOO\\u200B\\u2060\\uFEFFgoo.com',\n    base: 'http://other.com/',\n    href: 'http://googoo.com/',\n    origin: 'http://googoo.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'googoo.com',\n    hostname: 'googoo.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  'Leading and trailing C0 control or space',\n  {\n    input: '\\u0000\\u001B\\u0004\\u0012 http://example.com/\\u001F \\u000D ',\n    base: 'about:blank',\n    href: 'http://example.com/',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  'Ideographic full stop (full-width period for Chinese, etc.) should be treated as a dot. U+3002 is mapped to U+002E (dot)',\n  {\n    input: 'http://www.foo。bar.com',\n    base: 'http://other.com/',\n    href: 'http://www.foo.bar.com/',\n    origin: 'http://www.foo.bar.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'www.foo.bar.com',\n    hostname: 'www.foo.bar.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  'Invalid unicode characters should fail... U+FDD0 is disallowed; %ef%b7%90 is U+FDD0',\n  {\n    input: 'http://\\uFDD0zyx.com',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  'This is the same as previous but escaped',\n  {\n    input: 'http://%ef%b7%90zyx.com',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  'U+FFFD',\n  {\n    input: 'https://\\uFFFD',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https://%EF%BF%BD',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https://x/\\uFFFD?\\uFFFD#\\uFFFD',\n    base: 'about:blank',\n    href: 'https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD',\n    origin: 'https://x',\n    protocol: 'https:',\n    username: '',\n    password: '',\n    host: 'x',\n    hostname: 'x',\n    port: '',\n    pathname: '/%EF%BF%BD',\n    search: '?%EF%BF%BD',\n    hash: '#%EF%BF%BD',\n  },\n  \"Test name prepping, fullwidth input should be converted to ASCII and NOT IDN-ized. This is 'Go' in fullwidth UTF-8/UTF-16.\",\n  {\n    input: 'http://Ｇｏ.com',\n    base: 'http://other.com/',\n    href: 'http://go.com/',\n    origin: 'http://go.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'go.com',\n    hostname: 'go.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  'URL spec forbids the following. https://www.w3.org/Bugs/Public/show_bug.cgi?id=24257',\n  {\n    input: 'http://％４１.com',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://%ef%bc%85%ef%bc%94%ef%bc%91.com',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  '...%00 in fullwidth should fail (also as escaped UTF-8 input)',\n  {\n    input: 'http://％００.com',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://%ef%bc%85%ef%bc%90%ef%bc%90.com',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  'Basic IDN support, UTF-8 and UTF-16 input should be converted to IDN',\n  {\n    input: 'http://你好你好',\n    base: 'http://other.com/',\n    href: 'http://xn--6qqa088eba/',\n    origin: 'http://xn--6qqa088eba',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'xn--6qqa088eba',\n    hostname: 'xn--6qqa088eba',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'https://faß.ExAmPlE/',\n    base: 'about:blank',\n    href: 'https://xn--fa-hia.example/',\n    origin: 'https://xn--fa-hia.example',\n    protocol: 'https:',\n    username: '',\n    password: '',\n    host: 'xn--fa-hia.example',\n    hostname: 'xn--fa-hia.example',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'sc://faß.ExAmPlE/',\n    base: 'about:blank',\n    href: 'sc://fa%C3%9F.ExAmPlE/',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: 'fa%C3%9F.ExAmPlE',\n    hostname: 'fa%C3%9F.ExAmPlE',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  'Invalid escaped characters should fail and the percents should be escaped. https://www.w3.org/Bugs/Public/show_bug.cgi?id=24191',\n  {\n    input: 'http://%zz%66%a.com',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  'If we get an invalid character that has been escaped.',\n  {\n    input: 'http://%25',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://hello%00',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  'Escaped numbers should be treated like IP addresses if they are.',\n  /*\n  {\n    input: 'http://%30%78%63%30%2e%30%32%35%30.01',\n    base: 'http://other.com/',\n    href: 'http://192.168.0.1/',\n    origin: 'http://192.168.0.1',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '192.168.0.1',\n    hostname: '192.168.0.1',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://%30%78%63%30%2e%30%32%35%30.01%2e',\n    base: 'http://other.com/',\n    href: 'http://192.168.0.1/',\n    origin: 'http://192.168.0.1',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '192.168.0.1',\n    hostname: '192.168.0.1',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  */\n  {\n    input: 'http://192.168.0.257',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  'Invalid escaping in hosts causes failure',\n  {\n    input: 'http://%3g%78%63%30%2e%30%32%35%30%2E.01',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  'A space in a host causes failure',\n  {\n    input: 'http://192.168.0.1 hello',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'https://x x:12',\n    base: 'about:blank',\n    failure: true,\n  },\n  'Fullwidth and escaped UTF-8 fullwidth should still be treated as IP',\n  {\n    input: 'http://０Ｘｃ０．０２５０．０１',\n    base: 'http://other.com/',\n    href: 'http://192.168.0.1/',\n    origin: 'http://192.168.0.1',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '192.168.0.1',\n    hostname: '192.168.0.1',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  'Domains with empty labels',\n  {\n    input: 'http://./',\n    base: 'about:blank',\n    href: 'http://./',\n    origin: 'http://.',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '.',\n    hostname: '.',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://../',\n    base: 'about:blank',\n    href: 'http://../',\n    origin: 'http://..',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '..',\n    hostname: '..',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://0..0x300/',\n    base: 'about:blank',\n    href: 'http://0..0x300/',\n    origin: 'http://0..0x300',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '0..0x300',\n    hostname: '0..0x300',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  'Broken IPv6',\n  {\n    input: 'http://[www.google.com]/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http://[google.com]',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://[::1.2.3.4x]',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://[::1.2.3.]',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://[::1.2.]',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://[::1.]',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  'Misc Unicode',\n  {\n    input: 'http://foo:💩@example.com/bar',\n    base: 'http://other.com/',\n    href: 'http://foo:%F0%9F%92%A9@example.com/bar',\n    origin: 'http://example.com',\n    protocol: 'http:',\n    username: 'foo',\n    password: '%F0%9F%92%A9',\n    host: 'example.com',\n    hostname: 'example.com',\n    port: '',\n    pathname: '/bar',\n    search: '',\n    hash: '',\n  },\n  '# resolving a fragment against any scheme succeeds',\n  {\n    input: '#',\n    base: 'test:test',\n    href: 'test:test#',\n    origin: 'null',\n    protocol: 'test:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'test',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '#x',\n    base: 'mailto:x@x.com',\n    href: 'mailto:x@x.com#x',\n    origin: 'null',\n    protocol: 'mailto:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'x@x.com',\n    search: '',\n    hash: '#x',\n  },\n  {\n    input: '#x',\n    base: 'data:,',\n    href: 'data:,#x',\n    origin: 'null',\n    protocol: 'data:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: ',',\n    search: '',\n    hash: '#x',\n  },\n  {\n    input: '#x',\n    base: 'about:blank',\n    href: 'about:blank#x',\n    origin: 'null',\n    protocol: 'about:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'blank',\n    search: '',\n    hash: '#x',\n  },\n  {\n    input: '#',\n    base: 'test:test?test',\n    href: 'test:test?test#',\n    origin: 'null',\n    protocol: 'test:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'test',\n    search: '?test',\n    hash: '',\n  },\n  '# multiple @ in authority state',\n  {\n    input: 'https://@test@test@example:800/',\n    base: 'http://doesnotmatter/',\n    href: 'https://%40test%40test@example:800/',\n    origin: 'https://example:800',\n    protocol: 'https:',\n    username: '%40test%40test',\n    password: '',\n    host: 'example:800',\n    hostname: 'example',\n    port: '800',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'https://@@@example',\n    base: 'http://doesnotmatter/',\n    href: 'https://%40%40@example/',\n    origin: 'https://example',\n    protocol: 'https:',\n    username: '%40%40',\n    password: '',\n    host: 'example',\n    hostname: 'example',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  'non-az-09 characters',\n  {\n    input: 'http://`{}:`{}@h/`{}?`{}',\n    base: 'http://doesnotmatter/',\n    href: 'http://%60%7B%7D:%60%7B%7D@h/%60%7B%7D?`{}',\n    origin: 'http://h',\n    protocol: 'http:',\n    username: '%60%7B%7D',\n    password: '%60%7B%7D',\n    host: 'h',\n    hostname: 'h',\n    port: '',\n    pathname: '/%60%7B%7D',\n    search: '?`{}',\n    hash: '',\n  },\n  \"byte is ' and url is special\",\n  {\n    input: \"http://host/?'\",\n    base: 'about:blank',\n    href: 'http://host/?%27',\n    origin: 'http://host',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'host',\n    hostname: 'host',\n    port: '',\n    pathname: '/',\n    search: '?%27',\n    hash: '',\n  },\n  {\n    input: \"notspecial://host/?'\",\n    base: 'about:blank',\n    href: \"notspecial://host/?'\",\n    origin: 'null',\n    protocol: 'notspecial:',\n    username: '',\n    password: '',\n    host: 'host',\n    hostname: 'host',\n    port: '',\n    pathname: '/',\n    search: \"?'\",\n    hash: '',\n  },\n  '# Credentials in base',\n  {\n    input: '/some/path',\n    base: 'http://user@example.org/smth',\n    href: 'http://user@example.org/some/path',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: 'user',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/some/path',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '',\n    base: 'http://user:pass@example.org:21/smth',\n    href: 'http://user:pass@example.org:21/smth',\n    origin: 'http://example.org:21',\n    protocol: 'http:',\n    username: 'user',\n    password: 'pass',\n    host: 'example.org:21',\n    hostname: 'example.org',\n    port: '21',\n    pathname: '/smth',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/some/path',\n    base: 'http://user:pass@example.org:21/smth',\n    href: 'http://user:pass@example.org:21/some/path',\n    origin: 'http://example.org:21',\n    protocol: 'http:',\n    username: 'user',\n    password: 'pass',\n    host: 'example.org:21',\n    hostname: 'example.org',\n    port: '21',\n    pathname: '/some/path',\n    search: '',\n    hash: '',\n  },\n  '# a set of tests designed by zcorpan for relative URLs with unknown schemes',\n  {\n    input: 'i',\n    base: 'sc:sd',\n    failure: true,\n  },\n  {\n    input: 'i',\n    base: 'sc:sd/sd',\n    failure: true,\n  },\n  {\n    input: 'i',\n    base: 'sc:/pa/pa',\n    href: 'sc:/pa/i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/pa/i',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'i',\n    base: 'sc://ho/pa',\n    href: 'sc://ho/i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: 'ho',\n    hostname: 'ho',\n    port: '',\n    pathname: '/i',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'i',\n    base: 'sc:///pa/pa',\n    href: 'sc:///pa/i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/pa/i',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '../i',\n    base: 'sc:sd',\n    failure: true,\n  },\n  {\n    input: '../i',\n    base: 'sc:sd/sd',\n    failure: true,\n  },\n  {\n    input: '../i',\n    base: 'sc:/pa/pa',\n    href: 'sc:/i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/i',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '../i',\n    base: 'sc://ho/pa',\n    href: 'sc://ho/i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: 'ho',\n    hostname: 'ho',\n    port: '',\n    pathname: '/i',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '../i',\n    base: 'sc:///pa/pa',\n    href: 'sc:///i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/i',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/i',\n    base: 'sc:sd',\n    failure: true,\n  },\n  {\n    input: '/i',\n    base: 'sc:sd/sd',\n    failure: true,\n  },\n  {\n    input: '/i',\n    base: 'sc:/pa/pa',\n    href: 'sc:/i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/i',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/i',\n    base: 'sc://ho/pa',\n    href: 'sc://ho/i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: 'ho',\n    hostname: 'ho',\n    port: '',\n    pathname: '/i',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/i',\n    base: 'sc:///pa/pa',\n    href: 'sc:///i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/i',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '?i',\n    base: 'sc:sd',\n    failure: true,\n  },\n  {\n    input: '?i',\n    base: 'sc:sd/sd',\n    failure: true,\n  },\n  {\n    input: '?i',\n    base: 'sc:/pa/pa',\n    href: 'sc:/pa/pa?i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/pa/pa',\n    search: '?i',\n    hash: '',\n  },\n  {\n    input: '?i',\n    base: 'sc://ho/pa',\n    href: 'sc://ho/pa?i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: 'ho',\n    hostname: 'ho',\n    port: '',\n    pathname: '/pa',\n    search: '?i',\n    hash: '',\n  },\n  {\n    input: '?i',\n    base: 'sc:///pa/pa',\n    href: 'sc:///pa/pa?i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/pa/pa',\n    search: '?i',\n    hash: '',\n  },\n  {\n    input: '#i',\n    base: 'sc:sd',\n    href: 'sc:sd#i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'sd',\n    search: '',\n    hash: '#i',\n  },\n  {\n    input: '#i',\n    base: 'sc:sd/sd',\n    href: 'sc:sd/sd#i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'sd/sd',\n    search: '',\n    hash: '#i',\n  },\n  {\n    input: '#i',\n    base: 'sc:/pa/pa',\n    href: 'sc:/pa/pa#i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/pa/pa',\n    search: '',\n    hash: '#i',\n  },\n  {\n    input: '#i',\n    base: 'sc://ho/pa',\n    href: 'sc://ho/pa#i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: 'ho',\n    hostname: 'ho',\n    port: '',\n    pathname: '/pa',\n    search: '',\n    hash: '#i',\n  },\n  {\n    input: '#i',\n    base: 'sc:///pa/pa',\n    href: 'sc:///pa/pa#i',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/pa/pa',\n    search: '',\n    hash: '#i',\n  },\n  '# make sure that relative URL logic works on known typically non-relative schemes too',\n  {\n    input: 'about:/../',\n    base: 'about:blank',\n    href: 'about:/',\n    origin: 'null',\n    protocol: 'about:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'data:/../',\n    base: 'about:blank',\n    href: 'data:/',\n    origin: 'null',\n    protocol: 'data:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'javascript:/../',\n    base: 'about:blank',\n    href: 'javascript:/',\n    origin: 'null',\n    protocol: 'javascript:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'mailto:/../',\n    base: 'about:blank',\n    href: 'mailto:/',\n    origin: 'null',\n    protocol: 'mailto:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  '# unknown schemes and their hosts',\n  {\n    input: 'sc://ñ.test/',\n    base: 'about:blank',\n    href: 'sc://%C3%B1.test/',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '%C3%B1.test',\n    hostname: '%C3%B1.test',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: \"sc://\\u001F!\\\"$&'()*+,-.;<=>^_`{|}~/\",\n    base: 'about:blank',\n    href: \"sc://%1F!\\\"$&'()*+,-.;<=>^_`{|}~/\",\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: \"%1F!\\\"$&'()*+,-.;<=>^_`{|}~\",\n    hostname: \"%1F!\\\"$&'()*+,-.;<=>^_`{|}~\",\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'sc://\\u0000/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'sc:// /',\n    base: 'about:blank',\n    failure: true,\n  },\n  /*\n  {\n    input: 'sc://%/',\n    base: 'about:blank',\n    href: 'sc://%/',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '%',\n    hostname: '%',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  */\n  {\n    input: 'sc://@/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'sc://tes@s:t@/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'sc://:/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'sc://:12/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'sc://[/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'sc://\\\\/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'sc://]/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'x',\n    base: 'sc://ñ',\n    href: 'sc://%C3%B1/x',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '%C3%B1',\n    hostname: '%C3%B1',\n    port: '',\n    pathname: '/x',\n    search: '',\n    hash: '',\n  },\n  '# unknown schemes and backslashes',\n  {\n    input: 'sc:\\\\../',\n    base: 'about:blank',\n    href: 'sc:\\\\../',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '\\\\../',\n    search: '',\n    hash: '',\n  },\n  '# unknown scheme with path looking like a password',\n  {\n    input: 'sc::a@example.net',\n    base: 'about:blank',\n    href: 'sc::a@example.net',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: ':a@example.net',\n    search: '',\n    hash: '',\n  },\n  '# unknown scheme with bogus percent-encoding',\n  {\n    input: 'wow:%NBD',\n    base: 'about:blank',\n    href: 'wow:%NBD',\n    origin: 'null',\n    protocol: 'wow:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '%NBD',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'wow:%1G',\n    base: 'about:blank',\n    href: 'wow:%1G',\n    origin: 'null',\n    protocol: 'wow:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '%1G',\n    search: '',\n    hash: '',\n  },\n  '# Hosts and percent-encoding',\n  {\n    input: 'ftp://example.com%80/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'ftp://example.com%A0/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https://example.com%80/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https://example.com%A0/',\n    base: 'about:blank',\n    failure: true,\n  },\n  /*\n  {\n    input: 'ftp://%e2%98%83',\n    base: 'about:blank',\n    href: 'ftp://xn--n3h/',\n    origin: 'ftp://xn--n3h',\n    protocol: 'ftp:',\n    username: '',\n    password: '',\n    host: 'xn--n3h',\n    hostname: 'xn--n3h',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'https://%e2%98%83',\n    base: 'about:blank',\n    href: 'https://xn--n3h/',\n    origin: 'https://xn--n3h',\n    protocol: 'https:',\n    username: '',\n    password: '',\n    host: 'xn--n3h',\n    hostname: 'xn--n3h',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  */\n  '# tests from jsdom/whatwg-url designed for code coverage',\n  {\n    input: 'http://127.0.0.1:10100/relative_import.html',\n    base: 'about:blank',\n    href: 'http://127.0.0.1:10100/relative_import.html',\n    origin: 'http://127.0.0.1:10100',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '127.0.0.1:10100',\n    hostname: '127.0.0.1',\n    port: '10100',\n    pathname: '/relative_import.html',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://facebook.com/?foo=%7B%22abc%22',\n    base: 'about:blank',\n    href: 'http://facebook.com/?foo=%7B%22abc%22',\n    origin: 'http://facebook.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'facebook.com',\n    hostname: 'facebook.com',\n    port: '',\n    pathname: '/',\n    search: '?foo=%7B%22abc%22',\n    hash: '',\n  },\n  {\n    input: 'https://localhost:3000/jqueryui@1.2.3',\n    base: 'about:blank',\n    href: 'https://localhost:3000/jqueryui@1.2.3',\n    origin: 'https://localhost:3000',\n    protocol: 'https:',\n    username: '',\n    password: '',\n    host: 'localhost:3000',\n    hostname: 'localhost',\n    port: '3000',\n    pathname: '/jqueryui@1.2.3',\n    search: '',\n    hash: '',\n  },\n  '# tab/LF/CR',\n  {\n    input: 'h\\tt\\nt\\rp://h\\to\\ns\\rt:9\\t0\\n0\\r0/p\\ta\\nt\\rh?q\\tu\\ne\\rry#f\\tr\\na\\rg',\n    base: 'about:blank',\n    href: 'http://host:9000/path?query#frag',\n    origin: 'http://host:9000',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'host:9000',\n    hostname: 'host',\n    port: '9000',\n    pathname: '/path',\n    search: '?query',\n    hash: '#frag',\n  },\n  '# Stringification of URL.searchParams',\n  {\n    input: '?a=b&c=d',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/bar?a=b&c=d',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/bar',\n    search: '?a=b&c=d',\n    searchParams: 'a=b&c=d',\n    hash: '',\n  },\n  {\n    input: '??a=b&c=d',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/bar??a=b&c=d',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/bar',\n    search: '??a=b&c=d',\n    searchParams: '%3Fa=b&c=d',\n    hash: '',\n  },\n  '# Scheme only',\n  {\n    input: 'http:',\n    base: 'http://example.org/foo/bar',\n    href: 'http://example.org/foo/bar',\n    origin: 'http://example.org',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/foo/bar',\n    search: '',\n    searchParams: '',\n    hash: '',\n  },\n  {\n    input: 'http:',\n    base: 'https://example.org/foo/bar',\n    failure: true,\n  },\n  {\n    input: 'sc:',\n    base: 'https://example.org/foo/bar',\n    href: 'sc:',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '',\n    search: '',\n    searchParams: '',\n    hash: '',\n  },\n  '# Percent encoding of fragments',\n  {\n    input: 'http://foo.bar/baz?qux#foo\\bbar',\n    base: 'about:blank',\n    href: 'http://foo.bar/baz?qux#foo%08bar',\n    origin: 'http://foo.bar',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo.bar',\n    hostname: 'foo.bar',\n    port: '',\n    pathname: '/baz',\n    search: '?qux',\n    searchParams: 'qux=',\n    hash: '#foo%08bar',\n  },\n  {\n    input: 'http://foo.bar/baz?qux#foo\"bar',\n    base: 'about:blank',\n    href: 'http://foo.bar/baz?qux#foo%22bar',\n    origin: 'http://foo.bar',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo.bar',\n    hostname: 'foo.bar',\n    port: '',\n    pathname: '/baz',\n    search: '?qux',\n    searchParams: 'qux=',\n    hash: '#foo%22bar',\n  },\n  {\n    input: 'http://foo.bar/baz?qux#foo<bar',\n    base: 'about:blank',\n    href: 'http://foo.bar/baz?qux#foo%3Cbar',\n    origin: 'http://foo.bar',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo.bar',\n    hostname: 'foo.bar',\n    port: '',\n    pathname: '/baz',\n    search: '?qux',\n    searchParams: 'qux=',\n    hash: '#foo%3Cbar',\n  },\n  {\n    input: 'http://foo.bar/baz?qux#foo>bar',\n    base: 'about:blank',\n    href: 'http://foo.bar/baz?qux#foo%3Ebar',\n    origin: 'http://foo.bar',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo.bar',\n    hostname: 'foo.bar',\n    port: '',\n    pathname: '/baz',\n    search: '?qux',\n    searchParams: 'qux=',\n    hash: '#foo%3Ebar',\n  },\n  {\n    input: 'http://foo.bar/baz?qux#foo`bar',\n    base: 'about:blank',\n    href: 'http://foo.bar/baz?qux#foo%60bar',\n    origin: 'http://foo.bar',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'foo.bar',\n    hostname: 'foo.bar',\n    port: '',\n    pathname: '/baz',\n    search: '?qux',\n    searchParams: 'qux=',\n    hash: '#foo%60bar',\n  },\n  '# IPv4 parsing (via https://github.com/nodejs/node/pull/10317)',\n  {\n    input: 'http://192.168.257',\n    base: 'http://other.com/',\n    href: 'http://192.168.1.1/',\n    origin: 'http://192.168.1.1',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '192.168.1.1',\n    hostname: '192.168.1.1',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://192.168.257.com',\n    base: 'http://other.com/',\n    href: 'http://192.168.257.com/',\n    origin: 'http://192.168.257.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '192.168.257.com',\n    hostname: '192.168.257.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://256',\n    base: 'http://other.com/',\n    href: 'http://0.0.1.0/',\n    origin: 'http://0.0.1.0',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '0.0.1.0',\n    hostname: '0.0.1.0',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://256.com',\n    base: 'http://other.com/',\n    href: 'http://256.com/',\n    origin: 'http://256.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '256.com',\n    hostname: '256.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://999999999',\n    base: 'http://other.com/',\n    href: 'http://59.154.201.255/',\n    origin: 'http://59.154.201.255',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '59.154.201.255',\n    hostname: '59.154.201.255',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://999999999.com',\n    base: 'http://other.com/',\n    href: 'http://999999999.com/',\n    origin: 'http://999999999.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '999999999.com',\n    hostname: '999999999.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://10000000000',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://10000000000.com',\n    base: 'http://other.com/',\n    href: 'http://10000000000.com/',\n    origin: 'http://10000000000.com',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '10000000000.com',\n    hostname: '10000000000.com',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://4294967295',\n    base: 'http://other.com/',\n    href: 'http://255.255.255.255/',\n    origin: 'http://255.255.255.255',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '255.255.255.255',\n    hostname: '255.255.255.255',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://4294967296',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://0xffffffff',\n    base: 'http://other.com/',\n    href: 'http://255.255.255.255/',\n    origin: 'http://255.255.255.255',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '255.255.255.255',\n    hostname: '255.255.255.255',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://0xffffffff1',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://256.256.256.256',\n    base: 'http://other.com/',\n    failure: true,\n  },\n  {\n    input: 'http://256.256.256.256.256',\n    base: 'http://other.com/',\n    href: 'http://256.256.256.256.256/',\n    origin: 'http://256.256.256.256.256',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '256.256.256.256.256',\n    hostname: '256.256.256.256.256',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'https://0x.0x.0',\n    base: 'about:blank',\n    href: 'https://0.0.0.0/',\n    origin: 'https://0.0.0.0',\n    protocol: 'https:',\n    username: '',\n    password: '',\n    host: '0.0.0.0',\n    hostname: '0.0.0.0',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  'More IPv4 parsing (via https://github.com/jsdom/whatwg-url/issues/92)',\n  {\n    input: 'https://0x100000000/test',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https://256.0.0.1/test',\n    base: 'about:blank',\n    failure: true,\n  },\n  \"# file URLs containing percent-encoded Windows drive letters (shouldn't work)\",\n  {\n    input: 'file:///C%3A/',\n    base: 'about:blank',\n    href: 'file:///C%3A/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C%3A/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:///C%7C/',\n    base: 'about:blank',\n    href: 'file:///C%7C/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C%7C/',\n    search: '',\n    hash: '',\n  },\n  '# file URLs relative to other file URLs (via https://github.com/jsdom/whatwg-url/pull/60)',\n  {\n    input: 'pix/submit.gif',\n    base: 'file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html',\n    href: 'file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/pix/submit.gif',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/pix/submit.gif',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '..',\n    base: 'file:///C:/',\n    href: 'file:///C:/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '..',\n    base: 'file:///',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  '# More file URL tests by zcorpan and annevk',\n  {\n    input: '/',\n    base: 'file:///C:/a/b',\n    href: 'file:///C:/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '//d:',\n    base: 'file:///C:/a/b',\n    href: 'file:///d:',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/d:',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '//d:/..',\n    base: 'file:///C:/a/b',\n    href: 'file:///d:/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/d:/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '..',\n    base: 'file:///ab:/',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '..',\n    base: 'file:///1:/',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '',\n    base: 'file:///test?test#test',\n    href: 'file:///test?test',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/test',\n    search: '?test',\n    hash: '',\n  },\n  {\n    input: 'file:',\n    base: 'file:///test?test#test',\n    href: 'file:///test?test',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/test',\n    search: '?test',\n    hash: '',\n  },\n  {\n    input: '?x',\n    base: 'file:///test?test#test',\n    href: 'file:///test?x',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/test',\n    search: '?x',\n    hash: '',\n  },\n  {\n    input: 'file:?x',\n    base: 'file:///test?test#test',\n    href: 'file:///test?x',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/test',\n    search: '?x',\n    hash: '',\n  },\n  {\n    input: '#x',\n    base: 'file:///test?test#test',\n    href: 'file:///test?test#x',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/test',\n    search: '?test',\n    hash: '#x',\n  },\n  {\n    input: 'file:#x',\n    base: 'file:///test?test#test',\n    href: 'file:///test?test#x',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/test',\n    search: '?test',\n    hash: '#x',\n  },\n  '# File URLs and many (back)slashes',\n  {\n    input: 'file:\\\\\\\\//',\n    base: 'about:blank',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:\\\\\\\\\\\\\\\\',\n    base: 'about:blank',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:\\\\\\\\\\\\\\\\?fox',\n    base: 'about:blank',\n    href: 'file:///?fox',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '?fox',\n    hash: '',\n  },\n  {\n    input: 'file:\\\\\\\\\\\\\\\\#guppy',\n    base: 'about:blank',\n    href: 'file:///#guppy',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '#guppy',\n  },\n  {\n    input: 'file://spider///',\n    base: 'about:blank',\n    href: 'file://spider/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: 'spider',\n    hostname: 'spider',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:\\\\\\\\localhost//',\n    base: 'about:blank',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:///localhost//cat',\n    base: 'about:blank',\n    href: 'file:///localhost//cat',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/localhost//cat',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file://\\\\/localhost//cat',\n    base: 'about:blank',\n    href: 'file:///localhost//cat',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/localhost//cat',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file://localhost//a//../..//',\n    base: 'about:blank',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/////mouse',\n    base: 'file:///elephant',\n    href: 'file:///mouse',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/mouse',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '\\\\//pig',\n    base: 'file://lion/',\n    href: 'file:///pig',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/pig',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '\\\\/localhost//pig',\n    base: 'file://lion/',\n    href: 'file:///pig',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/pig',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '//localhost//pig',\n    base: 'file://lion/',\n    href: 'file:///pig',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/pig',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/..//localhost//pig',\n    base: 'file://lion/',\n    href: 'file://lion/localhost//pig',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: 'lion',\n    hostname: 'lion',\n    port: '',\n    pathname: '/localhost//pig',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file://',\n    base: 'file://ape/',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  '# File URLs with non-empty hosts',\n  {\n    input: '/rooibos',\n    base: 'file://tea/',\n    href: 'file://tea/rooibos',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: 'tea',\n    hostname: 'tea',\n    port: '',\n    pathname: '/rooibos',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/?chai',\n    base: 'file://tea/',\n    href: 'file://tea/?chai',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: 'tea',\n    hostname: 'tea',\n    port: '',\n    pathname: '/',\n    search: '?chai',\n    hash: '',\n  },\n  \"# Windows drive letter handling with the 'file:' base URL\",\n  {\n    input: 'C|',\n    base: 'file://host/dir/file',\n    href: 'file:///C:',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'C|#',\n    base: 'file://host/dir/file',\n    href: 'file:///C:#',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'C|?',\n    base: 'file://host/dir/file',\n    href: 'file:///C:?',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'C|/',\n    base: 'file://host/dir/file',\n    href: 'file:///C:/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'C|\\n/',\n    base: 'file://host/dir/file',\n    href: 'file:///C:/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'C|\\\\',\n    base: 'file://host/dir/file',\n    href: 'file:///C:/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'C',\n    base: 'file://host/dir/file',\n    href: 'file://host/dir/C',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: 'host',\n    hostname: 'host',\n    port: '',\n    pathname: '/dir/C',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'C|a',\n    base: 'file://host/dir/file',\n    href: 'file://host/dir/C|a',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: 'host',\n    hostname: 'host',\n    port: '',\n    pathname: '/dir/C|a',\n    search: '',\n    hash: '',\n  },\n  '# Windows drive letter quirk in the file slash state',\n  {\n    input: '/c:/foo/bar',\n    base: 'file:///c:/baz/qux',\n    href: 'file:///c:/foo/bar',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/c:/foo/bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/c|/foo/bar',\n    base: 'file:///c:/baz/qux',\n    href: 'file:///c:/foo/bar',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/c:/foo/bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:\\\\c:\\\\foo\\\\bar',\n    base: 'file:///c:/baz/qux',\n    href: 'file:///c:/foo/bar',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/c:/foo/bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '/c:/foo/bar',\n    base: 'file://host/path',\n    href: 'file:///c:/foo/bar',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/c:/foo/bar',\n    search: '',\n    hash: '',\n  },\n  '# Windows drive letter quirk with not empty host',\n  {\n    input: 'file://example.net/C:/',\n    base: 'about:blank',\n    href: 'file:///C:/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file://1.2.3.4/C:/',\n    base: 'about:blank',\n    href: 'file:///C:/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file://[1::8]/C:/',\n    base: 'about:blank',\n    href: 'file:///C:/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/',\n    search: '',\n    hash: '',\n  },\n  '# Windows drive letter quirk (no host)',\n  {\n    input: 'file:/C|/',\n    base: 'about:blank',\n    href: 'file:///C:/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file://C|/',\n    base: 'about:blank',\n    href: 'file:///C:/',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/C:/',\n    search: '',\n    hash: '',\n  },\n  '# file URLs without base URL by Rimas Misevičius',\n  {\n    input: 'file:',\n    base: 'about:blank',\n    href: 'file:///',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'file:?q=v',\n    base: 'about:blank',\n    href: 'file:///?q=v',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '?q=v',\n    hash: '',\n  },\n  {\n    input: 'file:#frag',\n    base: 'about:blank',\n    href: 'file:///#frag',\n    protocol: 'file:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '#frag',\n  },\n  '# IPv6 tests',\n  {\n    input: 'http://[1:0::]',\n    base: 'http://example.net/',\n    href: 'http://[1::]/',\n    origin: 'http://[1::]',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '[1::]',\n    hostname: '[1::]',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://[0:1:2:3:4:5:6:7:8]',\n    base: 'http://example.net/',\n    failure: true,\n  },\n  {\n    input: 'https://[0::0::0]',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https://[0:.0]',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https://[0:0:]',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https://[0:1:2:3:4:5:6:7.0.0.0.1]',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https://[0:1.00.0.0.0]',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https://[0:1.290.0.0.0]',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'https://[0:1.23.23]',\n    base: 'about:blank',\n    failure: true,\n  },\n  '# Empty host',\n  {\n    input: 'http://?',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'http://#',\n    base: 'about:blank',\n    failure: true,\n  },\n  'Port overflow (2^32 + 81)',\n  {\n    input: 'http://f:4294967377/c',\n    base: 'http://example.org/',\n    failure: true,\n  },\n  'Port overflow (2^64 + 81)',\n  {\n    input: 'http://f:18446744073709551697/c',\n    base: 'http://example.org/',\n    failure: true,\n  },\n  'Port overflow (2^128 + 81)',\n  {\n    input: 'http://f:340282366920938463463374607431768211537/c',\n    base: 'http://example.org/',\n    failure: true,\n  },\n  '# Non-special-URL path tests',\n  {\n    input: 'sc://ñ',\n    base: 'about:blank',\n    href: 'sc://%C3%B1',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '%C3%B1',\n    hostname: '%C3%B1',\n    port: '',\n    pathname: '',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'sc://ñ?x',\n    base: 'about:blank',\n    href: 'sc://%C3%B1?x',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '%C3%B1',\n    hostname: '%C3%B1',\n    port: '',\n    pathname: '',\n    search: '?x',\n    hash: '',\n  },\n  {\n    input: 'sc://ñ#x',\n    base: 'about:blank',\n    href: 'sc://%C3%B1#x',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '%C3%B1',\n    hostname: '%C3%B1',\n    port: '',\n    pathname: '',\n    search: '',\n    hash: '#x',\n  },\n  {\n    input: '#x',\n    base: 'sc://ñ',\n    href: 'sc://%C3%B1#x',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '%C3%B1',\n    hostname: '%C3%B1',\n    port: '',\n    pathname: '',\n    search: '',\n    hash: '#x',\n  },\n  {\n    input: '?x',\n    base: 'sc://ñ',\n    href: 'sc://%C3%B1?x',\n    origin: 'null',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '%C3%B1',\n    hostname: '%C3%B1',\n    port: '',\n    pathname: '',\n    search: '?x',\n    hash: '',\n  },\n  {\n    input: 'sc://?',\n    base: 'about:blank',\n    href: 'sc://?',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'sc://#',\n    base: 'about:blank',\n    href: 'sc://#',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '///',\n    base: 'sc://x/',\n    href: 'sc:///',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '////',\n    base: 'sc://x/',\n    href: 'sc:////',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '//',\n    search: '',\n    hash: '',\n  },\n  {\n    input: '////x/',\n    base: 'sc://x/',\n    href: 'sc:////x/',\n    protocol: 'sc:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '//x/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'tftp://foobar.com/someconfig;mode=netascii',\n    base: 'about:blank',\n    href: 'tftp://foobar.com/someconfig;mode=netascii',\n    origin: 'null',\n    protocol: 'tftp:',\n    username: '',\n    password: '',\n    host: 'foobar.com',\n    hostname: 'foobar.com',\n    port: '',\n    pathname: '/someconfig;mode=netascii',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'telnet://user:pass@foobar.com:23/',\n    base: 'about:blank',\n    href: 'telnet://user:pass@foobar.com:23/',\n    origin: 'null',\n    protocol: 'telnet:',\n    username: 'user',\n    password: 'pass',\n    host: 'foobar.com:23',\n    hostname: 'foobar.com',\n    port: '23',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'ut2004://10.10.10.10:7777/Index.ut2',\n    base: 'about:blank',\n    href: 'ut2004://10.10.10.10:7777/Index.ut2',\n    origin: 'null',\n    protocol: 'ut2004:',\n    username: '',\n    password: '',\n    host: '10.10.10.10:7777',\n    hostname: '10.10.10.10',\n    port: '7777',\n    pathname: '/Index.ut2',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'redis://foo:bar@somehost:6379/0?baz=bam&qux=baz',\n    base: 'about:blank',\n    href: 'redis://foo:bar@somehost:6379/0?baz=bam&qux=baz',\n    origin: 'null',\n    protocol: 'redis:',\n    username: 'foo',\n    password: 'bar',\n    host: 'somehost:6379',\n    hostname: 'somehost',\n    port: '6379',\n    pathname: '/0',\n    search: '?baz=bam&qux=baz',\n    hash: '',\n  },\n  {\n    input: 'rsync://foo@host:911/sup',\n    base: 'about:blank',\n    href: 'rsync://foo@host:911/sup',\n    origin: 'null',\n    protocol: 'rsync:',\n    username: 'foo',\n    password: '',\n    host: 'host:911',\n    hostname: 'host',\n    port: '911',\n    pathname: '/sup',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'git://github.com/foo/bar.git',\n    base: 'about:blank',\n    href: 'git://github.com/foo/bar.git',\n    origin: 'null',\n    protocol: 'git:',\n    username: '',\n    password: '',\n    host: 'github.com',\n    hostname: 'github.com',\n    port: '',\n    pathname: '/foo/bar.git',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'irc://myserver.com:6999/channel?passwd',\n    base: 'about:blank',\n    href: 'irc://myserver.com:6999/channel?passwd',\n    origin: 'null',\n    protocol: 'irc:',\n    username: '',\n    password: '',\n    host: 'myserver.com:6999',\n    hostname: 'myserver.com',\n    port: '6999',\n    pathname: '/channel',\n    search: '?passwd',\n    hash: '',\n  },\n  {\n    input: 'dns://fw.example.org:9999/foo.bar.org?type=TXT',\n    base: 'about:blank',\n    href: 'dns://fw.example.org:9999/foo.bar.org?type=TXT',\n    origin: 'null',\n    protocol: 'dns:',\n    username: '',\n    password: '',\n    host: 'fw.example.org:9999',\n    hostname: 'fw.example.org',\n    port: '9999',\n    pathname: '/foo.bar.org',\n    search: '?type=TXT',\n    hash: '',\n  },\n  {\n    input: 'ldap://localhost:389/ou=People,o=JNDITutorial',\n    base: 'about:blank',\n    href: 'ldap://localhost:389/ou=People,o=JNDITutorial',\n    origin: 'null',\n    protocol: 'ldap:',\n    username: '',\n    password: '',\n    host: 'localhost:389',\n    hostname: 'localhost',\n    port: '389',\n    pathname: '/ou=People,o=JNDITutorial',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'git+https://github.com/foo/bar',\n    base: 'about:blank',\n    href: 'git+https://github.com/foo/bar',\n    origin: 'null',\n    protocol: 'git+https:',\n    username: '',\n    password: '',\n    host: 'github.com',\n    hostname: 'github.com',\n    port: '',\n    pathname: '/foo/bar',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'urn:ietf:rfc:2648',\n    base: 'about:blank',\n    href: 'urn:ietf:rfc:2648',\n    origin: 'null',\n    protocol: 'urn:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'ietf:rfc:2648',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'tag:joe@example.org,2001:foo/bar',\n    base: 'about:blank',\n    href: 'tag:joe@example.org,2001:foo/bar',\n    origin: 'null',\n    protocol: 'tag:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'joe@example.org,2001:foo/bar',\n    search: '',\n    hash: '',\n  },\n  '# percent encoded hosts in non-special-URLs',\n  {\n    input: 'non-special://%E2%80%A0/',\n    base: 'about:blank',\n    href: 'non-special://%E2%80%A0/',\n    protocol: 'non-special:',\n    username: '',\n    password: '',\n    host: '%E2%80%A0',\n    hostname: '%E2%80%A0',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'non-special://H%4fSt/path',\n    base: 'about:blank',\n    href: 'non-special://H%4fSt/path',\n    protocol: 'non-special:',\n    username: '',\n    password: '',\n    host: 'H%4fSt',\n    hostname: 'H%4fSt',\n    port: '',\n    pathname: '/path',\n    search: '',\n    hash: '',\n  },\n  '# IPv6 in non-special-URLs',\n  {\n    input: 'non-special://[1:2:0:0:5:0:0:0]/',\n    base: 'about:blank',\n    href: 'non-special://[1:2:0:0:5::]/',\n    protocol: 'non-special:',\n    username: '',\n    password: '',\n    host: '[1:2:0:0:5::]',\n    hostname: '[1:2:0:0:5::]',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'non-special://[1:2:0:0:0:0:0:3]/',\n    base: 'about:blank',\n    href: 'non-special://[1:2::3]/',\n    protocol: 'non-special:',\n    username: '',\n    password: '',\n    host: '[1:2::3]',\n    hostname: '[1:2::3]',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'non-special://[1:2::3]:80/',\n    base: 'about:blank',\n    href: 'non-special://[1:2::3]:80/',\n    protocol: 'non-special:',\n    username: '',\n    password: '',\n    host: '[1:2::3]:80',\n    hostname: '[1:2::3]',\n    port: '80',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'non-special://[:80/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'blob:https://example.com:443/',\n    base: 'about:blank',\n    href: 'blob:https://example.com:443/',\n    protocol: 'blob:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'https://example.com:443/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'blob:d3958f5c-0777-0845-9dcf-2cb28783acaf',\n    base: 'about:blank',\n    href: 'blob:d3958f5c-0777-0845-9dcf-2cb28783acaf',\n    protocol: 'blob:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: 'd3958f5c-0777-0845-9dcf-2cb28783acaf',\n    search: '',\n    hash: '',\n  },\n  'Invalid IPv4 radix digits',\n  {\n    input: 'http://0177.0.0.0189',\n    base: 'about:blank',\n    href: 'http://0177.0.0.0189/',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '0177.0.0.0189',\n    hostname: '0177.0.0.0189',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://0x7f.0.0.0x7g',\n    base: 'about:blank',\n    href: 'http://0x7f.0.0.0x7g/',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '0x7f.0.0.0x7g',\n    hostname: '0x7f.0.0.0x7g',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://0X7F.0.0.0X7G',\n    base: 'about:blank',\n    href: 'http://0x7f.0.0.0x7g/',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '0x7f.0.0.0x7g',\n    hostname: '0x7f.0.0.0x7g',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  'Invalid IPv4 portion of IPv6 address',\n  {\n    input: 'http://[::127.0.0.0.1]',\n    base: 'about:blank',\n    failure: true,\n  },\n  'Uncompressed IPv6 addresses with 0',\n  {\n    input: 'http://[0:1:0:1:0:1:0:1]',\n    base: 'about:blank',\n    href: 'http://[0:1:0:1:0:1:0:1]/',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '[0:1:0:1:0:1:0:1]',\n    hostname: '[0:1:0:1:0:1:0:1]',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://[1:0:1:0:1:0:1:0]',\n    base: 'about:blank',\n    href: 'http://[1:0:1:0:1:0:1:0]/',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: '[1:0:1:0:1:0:1:0]',\n    hostname: '[1:0:1:0:1:0:1:0]',\n    port: '',\n    pathname: '/',\n    search: '',\n    hash: '',\n  },\n  'Percent-encoded query and fragment',\n  {\n    input: 'http://example.org/test?\\u0022',\n    base: 'about:blank',\n    href: 'http://example.org/test?%22',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/test',\n    search: '?%22',\n    hash: '',\n  },\n  {\n    input: 'http://example.org/test?\\u0023',\n    base: 'about:blank',\n    href: 'http://example.org/test?#',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/test',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'http://example.org/test?\\u003C',\n    base: 'about:blank',\n    href: 'http://example.org/test?%3C',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/test',\n    search: '?%3C',\n    hash: '',\n  },\n  {\n    input: 'http://example.org/test?\\u003E',\n    base: 'about:blank',\n    href: 'http://example.org/test?%3E',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/test',\n    search: '?%3E',\n    hash: '',\n  },\n  {\n    input: 'http://example.org/test?\\u2323',\n    base: 'about:blank',\n    href: 'http://example.org/test?%E2%8C%A3',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/test',\n    search: '?%E2%8C%A3',\n    hash: '',\n  },\n  {\n    input: 'http://example.org/test?%23%23',\n    base: 'about:blank',\n    href: 'http://example.org/test?%23%23',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/test',\n    search: '?%23%23',\n    hash: '',\n  },\n  /*\n  {\n    input: 'http://example.org/test?%GH',\n    base: 'about:blank',\n    href: 'http://example.org/test?%GH',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/test',\n    search: '?%GH',\n    hash: '',\n  },\n  */\n  {\n    input: 'http://example.org/test?a#%EF',\n    base: 'about:blank',\n    href: 'http://example.org/test?a#%EF',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/test',\n    search: '?a',\n    hash: '#%EF',\n  },\n  {\n    input: 'http://example.org/test?a#%GH',\n    base: 'about:blank',\n    href: 'http://example.org/test?a#%GH',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/test',\n    search: '?a',\n    hash: '#%GH',\n  },\n  'URLs that require a non-about:blank base. (Also serve as invalid base tests.)',\n  {\n    input: 'a',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'a/',\n    base: 'about:blank',\n    failure: true,\n  },\n  {\n    input: 'a//',\n    base: 'about:blank',\n    failure: true,\n  },\n  \"Bases that don't fail to parse but fail to be bases\",\n  {\n    input: 'test-a-colon.html',\n    base: 'a:',\n    failure: true,\n  },\n  {\n    input: 'test-a-colon-b.html',\n    base: 'a:b',\n    failure: true,\n  },\n  'Other base URL tests, that must succeed',\n  {\n    input: 'test-a-colon-slash.html',\n    base: 'a:/',\n    href: 'a:/test-a-colon-slash.html',\n    protocol: 'a:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/test-a-colon-slash.html',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'test-a-colon-slash-slash.html',\n    base: 'a://',\n    href: 'a:///test-a-colon-slash-slash.html',\n    protocol: 'a:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/test-a-colon-slash-slash.html',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'test-a-colon-slash-b.html',\n    base: 'a:/b',\n    href: 'a:/test-a-colon-slash-b.html',\n    protocol: 'a:',\n    username: '',\n    password: '',\n    host: '',\n    hostname: '',\n    port: '',\n    pathname: '/test-a-colon-slash-b.html',\n    search: '',\n    hash: '',\n  },\n  {\n    input: 'test-a-colon-slash-slash-b.html',\n    base: 'a://b',\n    href: 'a://b/test-a-colon-slash-slash-b.html',\n    protocol: 'a:',\n    username: '',\n    password: '',\n    host: 'b',\n    hostname: 'b',\n    port: '',\n    pathname: '/test-a-colon-slash-slash-b.html',\n    search: '',\n    hash: '',\n  },\n  'Null code point in fragment',\n  {\n    input: 'http://example.org/test?a#b\\u0000c',\n    base: 'about:blank',\n    href: 'http://example.org/test?a#bc',\n    protocol: 'http:',\n    username: '',\n    password: '',\n    host: 'example.org',\n    hostname: 'example.org',\n    port: '',\n    pathname: '/test',\n    search: '?a',\n    hash: '#bc',\n  },\n];\n"
  },
  {
    "path": "website/build-local.mjs",
    "content": "import {\n  isExists, copyBlogPosts, copyBabelStandalone, copyCommonFiles, buildWeb, getCurrentBranch, buildAndCopyCoreJS,\n} from './scripts/helpers.mjs';\nimport { join } from 'node:path';\n\nconst BUILD_SRC_DIR = './';\n\nasync function hasDocsLocal(srcDir) {\n  const target = join(srcDir, 'docs/web/docs');\n  console.log(`Checking if docs exist in \"${ target }\"...`);\n  if (!await isExists(target)) {\n    throw new Error(`Docs not found in \"${ target }\".`);\n  }\n}\n\ntry {\n  console.time('Finished in');\n  const targetBranch = await getCurrentBranch(BUILD_SRC_DIR);\n\n  const version = { branch: targetBranch, label: targetBranch };\n  await hasDocsLocal(BUILD_SRC_DIR);\n  await buildAndCopyCoreJS(version, BUILD_SRC_DIR);\n\n  await copyBabelStandalone(BUILD_SRC_DIR);\n  await copyBlogPosts(BUILD_SRC_DIR);\n  await copyCommonFiles(BUILD_SRC_DIR);\n  await buildWeb(targetBranch, BUILD_SRC_DIR, true);\n  console.timeEnd('Finished in');\n} catch (error) {\n  console.error(error);\n}\n"
  },
  {
    "path": "website/build.mjs",
    "content": "import { expandVersionsConfig, getDefaultVersion } from './scripts/helpers.mjs';\nimport fm from 'front-matter';\nimport { JSDOM } from 'jsdom';\nimport { Marked } from 'marked';\nimport { gfmHeadingId, getHeadingList } from 'marked-gfm-heading-id';\nimport markedAlert from 'marked-alert';\nimport config from './config/config.mjs';\nimport { argv, fs } from 'zx';\n\nconst { copy, mkdir, readFile, readJson, readdir, writeFile } = fs;\n\nconst branchArg = argv._.find(item => item.startsWith('branch='));\nconst BRANCH = branchArg ? branchArg.slice('branch='.length) : undefined;\nconst LOCAL = argv._.includes('local');\nconst BASE = LOCAL && BRANCH ? '/core-js/website/dist/' : BRANCH ? `/branches/${ BRANCH }/` : '/';\nconst DEFAULT_VERSION = await getDefaultVersion(config.versionsFile, BRANCH);\n\nlet htmlFileName = '';\nlet docsMenu = '';\nlet isBlog = false;\nlet isDocs = false;\n\nasync function getAllMdFiles(dir) {\n  const entries = await readdir(dir, { withFileTypes: true });\n  const files = [];\n  for (const entry of entries) {\n    const fullPath = path.join(dir, entry.name);\n    if (entry.isDirectory()) {\n      const subFiles = await getAllMdFiles(fullPath);\n      files.push(...subFiles);\n    } else if (entry.isFile() && entry.name.endsWith('.md')) {\n      files.push(fullPath);\n    }\n  }\n  return files;\n}\n\nasync function buildDocsMenu(item) {\n  if (Object.hasOwn(item, 'children')) {\n    let result = `<li class=\"collapsible\"><a href=\"#\">${ item.title }</a><ul>`;\n    for (const child of item.children) {\n      result += await buildDocsMenu(child);\n    }\n    result += '</ul></li>';\n    return result;\n  }\n\n  return `<li><a href=\"${ item.url }\" class=\"with-docs-version\" data-default-version=\"${ DEFAULT_VERSION }\">${ item.title }</a></li>`;\n}\n\nconst docsMenus = [];\nconst docsMenuItems = [];\n\nasync function getDocsMenuItems(version) {\n  if (docsMenuItems[version]) return docsMenuItems[version];\n\n  echo(chalk.green(`Getting menu items from file for version: ${ version }`));\n  const jsonPath = BRANCH ? `${ config.docsDir }docs/menu.json` : `${ config.docsDir }${ version }/docs/menu.json`;\n  try {\n    const docsMenuJson = await readJson(jsonPath);\n    docsMenuItems[version] = docsMenuJson === '' ? [] : docsMenuJson;\n    return docsMenuItems[version];\n  } catch {\n    echo(chalk.yellow(`Menu JSON file not found: ${ jsonPath }`));\n    return [];\n  }\n}\n\nasync function buildDocsMenuForVersion(version) {\n  if (docsMenus[version]) return docsMenus[version];\n\n  echo(chalk.green(`Building docs menu for version: ${ version }`));\n  const menuItems = await getDocsMenuItems(version);\n  if (!menuItems.length) return '';\n  let menu = '<ul><li>{versions-menu}</li>';\n  for (const item of menuItems) {\n    menu += await buildDocsMenu(item);\n  }\n  menu += '</ul>';\n  docsMenus[version] = menu;\n  return menu;\n}\n\nfunction getBundlesPath(version) {\n  return path.join(config.bundlesPath, version.branch ?? version.tag);\n}\n\nasync function buildVersionsMenuList(versions, currentVersion, section) {\n  let versionsMenuHtml = '<div class=\"dropdown-block\">';\n  for (const v of versions) {\n    const activityClass = v.label === currentVersion && !v.default ? ' class=\"active\"' : '';\n    const defaultBadge = v.default ? ' (default)' : '';\n    const versionPath = v.default ? '' : `${ v.path }/`;\n    versionsMenuHtml += `<a href=\"./${ versionPath }${ section }\"${ activityClass }>${ v.label }${ defaultBadge }</a>`;\n  }\n  versionsMenuHtml += '</div>';\n\n  return versionsMenuHtml;\n}\n\nasync function buildVersionsMenu(versions, currentVersion, section) {\n  const innerMenu = await buildVersionsMenuList(versions, currentVersion, section);\n\n  return `<div class=\"dropdown versions-menu\"><div class=\"dropdown-wrapper\"><a href=\"#\" class=\"current\">${\n    currentVersion }</a>${ innerMenu }</div><div class=\"backdrop\"></div></div>`;\n}\n\nlet fileMetadata = {};\n\nfunction metadata(markdown) {\n  const { attributes, body } = fm(markdown);\n  fileMetadata = {};\n  for (const prop of Object.keys(attributes)) {\n    fileMetadata[prop] = attributes[prop];\n  }\n  return body;\n}\n\nconst markedInline = new Marked();\n\nconst linkRenderer = {\n  link({ href, text }) {\n    const htmlContent = markedInline.parseInline(text);\n    const isExternal = /^https?:\\/\\//.test(href);\n    const isAnchor = href.startsWith('#');\n    if (isAnchor) href = htmlFileName.replace('.html', '') + href.toLowerCase();\n    let html = `<a href=\"${ href }\"`;\n    if (isExternal) html += ' target=\"_blank\"';\n    html += `>${ htmlContent }</a>`;\n    return html;\n  },\n};\n\nconst marked = new Marked();\nmarked.use(markedAlert(), gfmHeadingId({ prefix: 'h-' }));\nmarked.use({ hooks: { preprocess: metadata } });\nmarked.use({ renderer: linkRenderer });\n\nconst markedWithContents = new Marked();\nmarkedWithContents.use(markedAlert(), gfmHeadingId({ prefix: 'h-' }));\nmarkedWithContents.use({\n  hooks: {\n    preprocess: metadata,\n    postprocess: buildMenus,\n  },\n  renderer: linkRenderer,\n});\n\nfunction buildMenus(html) {\n  const headings = getHeadingList().filter(({ level }) => level > 1);\n  let result = '<div class=\"wrapper\">';\n  if (isBlog || isDocs) {\n    result += `<div class=\"docs-menu sticky\"><div class=\"container\"><div class=\"docs-links\">${\n      isBlog ? blogMenuCache : docsMenu }</div><div class=\"mobile-trigger\"></div></div></div>`;\n  }\n  result += `<div class=\"content\">${ html }</div>`;\n  if (headings.length && !Object.hasOwn(fileMetadata, 'disableContentMenu')) {\n    result += `<div class=\"table-of-contents sticky\"><div class=\"container\"><div class=\"mobile-trigger\"></div><div class=\"toc-links\">\n          ${ headings.map(({ id, raw, level }) => `<div class=\"toc-link\"><a href=\"${\n            htmlFileName.replace('.html', '') }#${ id }\" class=\"h${\n            level } with-docs-version scroll-to\" data-hash=\"#${ id }\" data-default-version=\"${ DEFAULT_VERSION }\">${\n            raw }</a></div>`).join('\\n') }\n        </div></div></div>`;\n  }\n  return result;\n}\n\nlet blogMenuCache = '';\n\nasync function buildBlogMenu() {\n  if (blogMenuCache !== '') return blogMenuCache;\n\n  const mdFiles = await getAllMdFiles(config.blogDir);\n  mdFiles.reverse();\n  let index = '---\\ndisableContentMenu: true\\n---\\n';\n  let menu = '<ul>';\n  for (const mdPath of mdFiles) {\n    if (mdPath.endsWith('index.md')) continue;\n    const content = await readFileContent(mdPath);\n    const tokens = marked.lexer(content);\n    const firstH1 = tokens.find(token => token.type === 'heading' && token.depth === 1);\n\n    if (!firstH1) {\n      echo(chalk.yellow(`H1 not found in ${ mdPath }`));\n      continue;\n    }\n    let htmlContent = await marked.parse(content);\n    // eslint-disable-next-line redos/no-vulnerable -- safe\n    htmlContent = htmlContent.replace(/<h1[^>]*>.*?<\\/h1>/i, '');\n    const hrIndex = htmlContent.search(/<hr>/i);\n    const preview = hrIndex !== -1 ? htmlContent.slice(0, hrIndex) : htmlContent;\n\n    const match = mdPath.match(/(?<date>\\d{4}-\\d{2}-\\d{2})-/);\n    const date = match?.groups?.date ?? '';\n    const fileName = mdPath.replace(config.blogDir, '').replace(/\\.md$/i, '');\n    menu += `<li><a href=\"./blog/${ fileName }\">${ date }: ${ firstH1.text }</a></li>`;\n    index += `## [${ firstH1.text }](./blog/${ fileName })\\n\\n`;\n    if (date) index += `*${ date }*\\n\\n`;\n    index += `${ preview }\\n\\n`;\n  }\n  menu += '</ul>';\n  blogMenuCache = menu;\n  const blogIndexPath = path.join(config.blogDir, 'index.md');\n  await writeFile(blogIndexPath, index, 'utf8');\n  echo(chalk.green(`File created: ${ blogIndexPath }`));\n\n  return menu;\n}\n\nasync function getVersionFromMdFile(mdPath) {\n  const match = mdPath.match(/\\/web\\/(?<version>[^/]+)\\/docs\\//);\n  return match?.groups?.version ?? DEFAULT_VERSION;\n}\n\nasync function readFileContent(filePath) {\n  const content = await readFile(filePath, 'utf8');\n  return content.toString();\n}\n\nasync function buildPlaygrounds(template, versions) {\n  for (const version of versions) {\n    await buildPlayground(template, version, versions);\n  }\n}\n\nasync function buildPlayground(template, version, versions) {\n  const bundlesPath = getBundlesPath(version);\n  const bundleScript = `<script nomodule src=\"${ bundlesPath }/${ config.bundleName }\"></script>`;\n  const bundleESModulesScript = `<script type=\"module\" src=\"${ bundlesPath }/${ config.bundleNameESModules }\"></script>`;\n  const babelScript = '<script src=\"./babel.min.js\"></script>';\n  const playgroundContent = await readFileContent(`${ config.srcDir }playground.html`);\n  const versionsMenu = await buildVersionsMenu(versions, version.label, 'playground');\n  let playground = template.replace('{content}', playgroundContent);\n  playground = playground.replace('{base}', BASE);\n  playground = playground.replace('{title}', 'Playground - ');\n  playground = playground.replace('{core-js-bundle}', bundleScript);\n  playground = playground.replace('{core-js-bundle-esmodules}', bundleESModulesScript);\n  playground = playground.replace('{babel-script}', babelScript);\n  const playgroundWithVersion = playground.replace('{versions-menu}', versionsMenu);\n  const playgroundFilePath = path.join(config.resultDir, version.path, 'playground.html');\n\n  if (version.default) {\n    const defaultVersionsMenu = await buildVersionsMenu(versions, version.label, 'playground');\n    const defaultVersionPlayground = playground.replace('{versions-menu}', defaultVersionsMenu);\n    const defaultPlaygroundPath = path.join(config.resultDir, 'playground.html');\n    await writeFile(defaultPlaygroundPath, defaultVersionPlayground, 'utf8');\n    echo(chalk.green(`File created: ${ defaultPlaygroundPath }`));\n  } else {\n    await mkdir(path.dirname(playgroundFilePath), { recursive: true });\n    await writeFile(playgroundFilePath, playgroundWithVersion, 'utf8');\n    echo(chalk.green(`File created: ${ playgroundFilePath }`));\n  }\n}\n\nasync function createDocsIndexes(versions) {\n  if (BRANCH) versions = [{ path: '' }];\n\n  for (const version of versions) {\n    if (version.default && versions.length > 1) continue;\n    const versionPath = version.path;\n    const menuItems = await getDocsMenuItems(versionPath);\n    if (!menuItems.length) continue;\n    const firstDocPath = path.join(config.resultDir,\n      `${ menuItems[0].url }.html`.replace(`{docs-version}${ BRANCH ? '/' : '' }`, versionPath));\n    const indexFilePath = path.join(config.resultDir, `${ versionPath }/docs/`, 'index.html');\n    await copy(firstDocPath, indexFilePath);\n    echo(chalk.green(`File created: ${ indexFilePath }`));\n  }\n}\n\nasync function getVersions() {\n  if (BRANCH) {\n    return [{\n      branch: BRANCH,\n      default: true,\n      label: BRANCH,\n      path: BRANCH,\n    }];\n  }\n\n  const versions = await readJson(config.versionsFile);\n  echo(chalk.green('Got versions from file'));\n\n  return expandVersionsConfig(versions);\n}\n\nfunction getTitle(content) {\n  const match = /^# (?<title>.+)$/m.exec(content);\n  return match?.groups?.title ? `${ match.groups.title } - ` : '';\n}\n\nasync function build() {\n  const template = await readFileContent(config.templatePath);\n  await buildBlogMenu();\n  const mdFiles = await getAllMdFiles(config.docsDir);\n  const versions = await getVersions();\n  const [defaultVersion] = versions;\n  const bundlesPath = getBundlesPath(defaultVersion);\n  const bundleScript = `<script nomodule src=\"${ bundlesPath }/${ config.bundleName }\"></script>`;\n  const bundleESModulesScript = `<script type=\"module\" src=\"${ bundlesPath }/${ config.bundleNameESModules }\"></script>`;\n\n  let currentVersion = '';\n  let versionsMenu = '';\n  let isChangelog;\n  for (let i = 0; i < mdFiles.length; i++) {\n    const mdPath = mdFiles[i];\n    const content = await readFileContent(mdPath);\n    isDocs = mdPath.includes('/docs');\n    isChangelog = mdPath.includes('/changelog');\n    isBlog = mdPath.includes('/blog');\n\n    const title = getTitle(content);\n\n    const versionFromMdFile = await getVersionFromMdFile(mdPath);\n    if (currentVersion !== versionFromMdFile) {\n      currentVersion = versionFromMdFile;\n      docsMenu = await buildDocsMenuForVersion(currentVersion);\n      versionsMenu = await buildVersionsMenu(versions, currentVersion, 'docs/');\n    }\n\n    htmlFileName = mdPath.replace(config.docsDir, '').replace(/\\.md$/i, '.html');\n    const htmlFilePath = path.join(config.resultDir, htmlFileName);\n    const htmlContent = isDocs || isBlog || isChangelog ? markedWithContents.parse(content) : marked.parse(content);\n\n    let resultHtml = template.replace('{content}', htmlContent.replaceAll('$', '&#36;'));\n\n    resultHtml = resultHtml.replace('{title}', title.replaceAll('$', '&#36;'));\n    resultHtml = resultHtml.replace('{base}', BASE);\n    resultHtml = resultHtml.replace('{core-js-bundle}', bundleScript);\n    resultHtml = resultHtml.replace('{core-js-bundle-esmodules}', bundleESModulesScript);\n    resultHtml = resultHtml.replaceAll('{versions-menu}', versionsMenu);\n    resultHtml = resultHtml.replaceAll('{current-version}', currentVersion);\n\n    if (isDocs || isBlog || isChangelog) {\n      const resultDOM = new JSDOM(resultHtml);\n      const { document } = resultDOM.window;\n      document.querySelectorAll('h2[id], h3[id], h4[id], h5[id], h6[id]').forEach(heading => {\n        const newHeading = heading.cloneNode(true);\n        const anchor = document.createElement('a');\n        anchor.className = 'anchor';\n        anchor.href = `${ htmlFileName.replace('.html', '') }#${ newHeading.id }`;\n        anchor.innerHTML = '<svg viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg>';\n        newHeading.append(anchor);\n        newHeading.classList.add('with-anchor');\n        resultHtml = resultHtml.split(heading.outerHTML).join(newHeading.outerHTML);\n      });\n    }\n\n    resultHtml = resultHtml.replaceAll('{docs-version}', currentVersion);\n\n    await mkdir(path.dirname(htmlFilePath), { recursive: true });\n\n    await writeFile(htmlFilePath, resultHtml, 'utf8');\n    echo(chalk.green(`File created: ${ htmlFilePath }`));\n  }\n\n  await buildPlaygrounds(template, versions);\n  await createDocsIndexes(versions);\n}\n\nawait build().catch(console.error);\n"
  },
  {
    "path": "website/clean.mjs",
    "content": "await fs.rm('website/dist/', { force: true, recursive: true });\n\necho(chalk.green('Old copies removed'));\n"
  },
  {
    "path": "website/config/config.mjs",
    "content": "export default {\n  docsDir: 'docs/web/',\n  blogDir: 'docs/web/blog/',\n  resultDir: 'website/dist/',\n  templatesDir: 'website/templates/',\n  templatePath: 'website/templates/index.html',\n  srcDir: 'website/src/',\n  versionsFile: 'website/config/versions.json',\n  bundlesPath: './bundles',\n  bundleName: 'core-js-bundle.js',\n  bundleNameESModules: 'core-js-bundle-esmodules.js',\n};\n"
  },
  {
    "path": "website/config/versions.json",
    "content": "[\n  {\n    \"label\": \"v3\",\n    \"default\": true,\n    \"branch\": \"master\"\n  },\n  {\n    \"label\": \"v4 (alpha)\",\n    \"branch\": \"v4\",\n    \"path\": \"v4\"\n  }\n]\n"
  },
  {
    "path": "website/copy.mjs",
    "content": "const { copy } = fs;\n\nawait copy('website/templates/assets', 'website/dist/assets');\nawait copy('website/templates/bundles', 'website/dist/bundles');\nawait copy('website/templates/babel.min.js', 'website/dist/babel.min.js');\n\necho(chalk.green('Assets copied'));\n"
  },
  {
    "path": "website/index.mjs",
    "content": "await import('./clean.mjs');\nawait $`npm run build --prefix website`;\nawait import('./build.mjs');\nawait import('./copy.mjs');\n"
  },
  {
    "path": "website/package.json",
    "content": "{\n  \"name\": \"website\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build\": \"vite build\",\n    \"dev\": \"vite\"\n  },\n  \"dependencies\": {\n    \"@babel/standalone\": \"^7.29.2\",\n    \"@popperjs/core\": \"^2.11.8\",\n    \"@vitejs/plugin-legacy\": \"^8.0.0\",\n    \"front-matter\": \"^4.0.2\",\n    \"highlight.js\": \"^11.11.1\",\n    \"jsdom\": \"^29.0.0\",\n    \"marked\": \"^17.0.4\",\n    \"marked-alert\": \"^2.1.2\",\n    \"marked-gfm-heading-id\": \"^4.1.3\",\n    \"sass\": \"^1.98.0\",\n    \"vite\": \"^8.0.1\"\n  }\n}\n"
  },
  {
    "path": "website/scripts/helpers.mjs",
    "content": "/* eslint-disable no-console -- needed for logging */\nimport childProcess from 'node:child_process';\nimport { constants } from 'node:fs';\n// eslint-disable-next-line node/no-unsupported-features/node-builtins -- ok\nimport { cp, access, readdir, readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { promisify } from 'node:util';\n\nconst exec = promisify(childProcess.exec);\n\nconst BABEL_PATH = 'website/node_modules/@babel/standalone/babel.min.js';\n\nexport async function isExists(target) {\n  try {\n    await access(target, constants.F_OK);\n    return true;\n  } catch {\n    return false;\n  }\n}\n\nexport async function hasDocs(version, execDir) {\n  const target = version.branch ? `origin/${ version.branch }` : version.tag;\n  console.log(`Checking if docs exist in \"${ target }\"...`);\n  try {\n    await exec(`git ls-tree -r --name-only ${ target } | grep \"docs/web/docs/\"`, { cwd: execDir });\n  } catch {\n    throw new Error(`Docs not found in \"${ target }\".`);\n  }\n}\n\nexport async function installDependencies(execDir) {\n  console.log('Installing dependencies...');\n  console.time('Installed dependencies');\n  const nodeModulesPath = join(execDir, 'node_modules');\n  if (!await isExists(nodeModulesPath)) {\n    await exec('npm ci', { cwd: execDir });\n  }\n  console.timeEnd('Installed dependencies');\n}\n\nexport async function copyBabelStandalone(srcDir) {\n  console.log('Copying Babel standalone...');\n  await installDependencies(`${ srcDir }website`);\n  console.time('Copied Babel standalone');\n  const babelPath = join(srcDir, BABEL_PATH);\n  const destPath = join(srcDir, 'website/src/public/babel.min.js');\n  await cp(babelPath, destPath);\n  console.timeEnd('Copied Babel standalone');\n}\n\nexport async function copyBlogPosts(srcDir) {\n  console.log('Copying blog posts...');\n  console.time('Copied blog posts');\n  const fromDir = join(srcDir, 'docs/');\n  const toDir = join(srcDir, 'docs/web/blog/');\n  const entries = await readdir(fromDir, { withFileTypes: true });\n  for (const entry of entries) {\n    if (entry.isFile()) {\n      const srcFile = join(fromDir, entry.name);\n      const destFile = join(toDir, entry.name);\n      await cp(srcFile, destFile);\n    }\n  }\n  console.timeEnd('Copied blog posts');\n}\n\nexport async function copyCommonFiles(srcDir) {\n  console.log('Copying common files...');\n  console.time('Copied common files');\n  const toDir = join(srcDir, 'docs/web/');\n  await cp(`${ srcDir }CHANGELOG.md`, `${ toDir }changelog.md`);\n  await cp(`${ srcDir }CONTRIBUTING.md`, `${ toDir }contributing.md`);\n  await cp(`${ srcDir }SECURITY.md`, `${ toDir }security.md`);\n  console.timeEnd('Copied common files');\n}\n\nexport async function buildAndCopyCoreJS(version, srcDir, cacheDir = null, checkout = false) {\n  async function bundlePackage(esModules) {\n    await exec(`npm run bundle-package${ esModules ? ' esmodules' : '' }`, { cwd: srcDir });\n    const bundleName = `core-js-bundle${ esModules ? '-esmodules' : '' }.js`;\n    const srcPath = join(srcDir, 'packages/core-js-bundle/minified.js');\n    const destPath = join(srcDir, 'website/src/public/bundles/', target, bundleName);\n    await cp(srcPath, destPath);\n    if (cacheDir !== null) {\n      const cachePath = join(cacheDir, target, bundleName);\n      await cp(srcPath, cachePath);\n    }\n  }\n\n  const target = version.branch ?? version.tag;\n  console.log(`Building and copying core-js for ${ target }`);\n  const targetBundlePath = join(cacheDir ?? '', target);\n\n  if (cacheDir !== null && await isExists(targetBundlePath)) {\n    console.time('Core JS bundles copied');\n    const bundlePath = join(targetBundlePath, 'core-js-bundle.js');\n    const destBundlePath = join(srcDir, 'website/src/public/bundles/', target, 'core-js-bundle.js');\n    await cp(bundlePath, destBundlePath);\n\n    const esmodulesBundlePath = join(targetBundlePath, 'core-js-bundle-esmodules.js');\n    const esmodulesDestBundlePath = join(srcDir, 'website/src/public/bundles/', target, 'core-js-bundle-esmodules.js');\n    await cp(esmodulesBundlePath, esmodulesDestBundlePath);\n    console.timeEnd('Core JS bundles copied');\n    return;\n  }\n\n  console.time('Core JS bundles built');\n  if (checkout) {\n    await checkoutVersion(version, srcDir);\n  }\n  await installDependencies(srcDir);\n\n  await bundlePackage(false);\n  await bundlePackage(true);\n\n  console.timeEnd('Core JS bundles built');\n}\n\nexport async function checkoutVersion(version, execDir) {\n  if (version.branch) {\n    await exec(`git checkout origin/${ version.branch }`, { cwd: execDir });\n  } else {\n    await exec(`git checkout ${ version.tag }`, { cwd: execDir });\n  }\n}\n\nexport async function buildWeb(branch, execDir, local = false) {\n  console.log('Building web...');\n  console.time('Built web');\n  let command = 'npm run build-website';\n  if (branch) command += ` branch=${ branch }`;\n  if (local) command += ' local';\n  const stdout = await exec(command, { cwd: execDir });\n  console.timeEnd('Built web');\n  return stdout;\n}\n\nexport async function getCurrentBranch(execDir) {\n  console.log('Getting current branch...');\n  console.time('Got current branch');\n  const { stdout } = await exec('git rev-parse --abbrev-ref HEAD', { cwd: execDir });\n  console.timeEnd('Got current branch');\n  return stdout.trim();\n}\n\nexport async function getDefaultVersion(versionFile, defaultVersion = null) {\n  if (defaultVersion) return defaultVersion;\n\n  const versions = await readJSON(versionFile);\n  return versions.find(v => v.default)?.label;\n}\n\nexport async function readJSON(filePath) {\n  const buffer = await readFile(filePath, 'utf8');\n  return JSON.parse(buffer);\n}\n\nexport function expandVersionsConfig(config) {\n  let defaultIndex = null;\n  const $config = config.map(({ label, branch, path, tag, default: $default }, index) => {\n    if ($default) {\n      if (defaultIndex !== null) throw new Error('Duplicate default');\n      defaultIndex = index;\n    }\n    return {\n      branch,\n      default: false,\n      label,\n      path: path ?? label,\n      tag,\n    };\n  });\n\n  if (defaultIndex === null) throw new Error('Missed default');\n\n  return [{ ...$config[defaultIndex], default: true }, ...$config];\n}\n"
  },
  {
    "path": "website/scripts/runner.mjs",
    "content": "/* eslint-disable no-console -- needed for logging */\nimport {\n  hasDocs,\n  copyBlogPosts,\n  copyBabelStandalone,\n  copyCommonFiles,\n  buildWeb,\n  getDefaultVersion,\n  readJSON,\n  buildAndCopyCoreJS,\n  expandVersionsConfig,\n} from './helpers.mjs';\nimport childProcess from 'node:child_process';\n// eslint-disable-next-line node/no-unsupported-features/node-builtins -- ok\nimport { cp, readdir, readlink } from 'node:fs/promises';\nimport { promisify } from 'node:util';\nimport { resolve, join } from 'node:path';\n\nconst exec = promisify(childProcess.exec);\n\nconst SRC_DIR = 'core-js';\nconst BUILDS_ROOT_DIR = 'builds';\nconst BUILD_RESULT_DIR = 'result';\nconst BUNDLES_DIR = 'bundles';\nconst REPO = 'https://github.com/zloirock/core-js.git';\nconst BUILDER_BRANCH = 'master';\n\nconst args = process.argv;\nconst lastArg = args.at(-1);\nconst BRANCH = lastArg.startsWith('branch=') ? lastArg.slice('branch='.length) : undefined;\n\nconst BUILD_ID = new Date().toISOString().replaceAll(/\\D/g, '-') + Math.random().toString(36).slice(2, 8);\n\nconst BUILD_DIR = `${ BUILDS_ROOT_DIR }/${ BUILD_ID }/`;\nconst BUILD_SRC_DIR = `${ BUILD_DIR }${ SRC_DIR }/`;\nconst BUILD_DOCS_DIR = `${ BUILD_DIR }builder/`;\nconst SITE_FILES_DIR = `${ BUILD_SRC_DIR }/website/dist/`;\nconst VERSIONS_FILE = `${ BUILD_SRC_DIR }website/config/versions.json`;\n\nasync function copyWeb() {\n  console.log('Copying web...');\n  console.time('Copied web');\n  const toDir = `${ BUILD_DIR }${ BUILD_RESULT_DIR }/`;\n  await cp(SITE_FILES_DIR, toDir, { recursive: true });\n  console.timeEnd('Copied web');\n}\n\nasync function createBuildDir() {\n  console.log(`Creating build directory \"${ BUILD_DIR }\"`);\n  console.time(`Created build directory ${ BUILD_DIR }`);\n  await exec(`mkdir -p ${ BUILD_DIR }`);\n  await exec(`mkdir -p ${ BUILD_DOCS_DIR }`);\n  console.timeEnd(`Created build directory ${ BUILD_DIR }`);\n}\n\nasync function installDependencies(dir = BUILD_SRC_DIR) {\n  console.log('Installing dependencies...');\n  console.time('Installed dependencies');\n  await exec('npm ci', { cwd: dir });\n  console.timeEnd('Installed dependencies');\n}\n\nasync function cloneRepo() {\n  console.log('Cloning core-js repository...');\n  console.time('Cloned core-js repository');\n  await exec(`git clone ${ REPO } ${ SRC_DIR }`, { cwd: BUILD_DIR });\n  console.timeEnd('Cloned core-js repository');\n}\n\nasync function switchToLatestBuild() {\n  console.log('Switching to the latest build...');\n  console.time('Switched to the latest build');\n  const absoluteBuildPath = resolve(`${ BUILD_DIR }${ BUILD_RESULT_DIR }`);\n  const absoluteLatestPath = resolve('./latest');\n  console.log(absoluteBuildPath, absoluteLatestPath);\n  await exec('rm -f ./latest');\n  await exec(`ln -sf ${ absoluteBuildPath } ${ absoluteLatestPath }`);\n  console.timeEnd('Switched to the latest build');\n}\n\nasync function clearBuildDir() {\n  console.log(`Clearing build directory \"${ BUILD_SRC_DIR }\"`);\n  console.time(`Cleared build directories ${ BUILD_SRC_DIR } and ${ BUILD_DOCS_DIR }`);\n  await exec(`rm -rf ${ BUILD_SRC_DIR }`);\n  await exec(`rm -rf ${ BUILD_DOCS_DIR }`);\n  console.timeEnd(`Cleared build directories ${ BUILD_SRC_DIR } and ${ BUILD_DOCS_DIR }`);\n}\n\nasync function copyDocs(from, to, recursive = true) {\n  console.log(`Copying docs from \"${ from }\" to \"${ to }\"`);\n  console.time(`Copied docs from \"${ from }\" to \"${ to }\"`);\n  await cp(from, to, { recursive });\n  console.timeEnd(`Copied docs from \"${ from }\" to \"${ to }\"`);\n}\n\nasync function copyDocsToBuilder(version) {\n  const target = version.branch ?? version.tag;\n  console.log(`Copying docs to builder for \"${ target }\"`);\n  console.time(`Copied docs to builder for \"${ target }\"`);\n  await checkoutVersion(version);\n  const fromDir = `${ BUILD_SRC_DIR }docs/web/docs/`;\n  const toDir = `${ BUILD_DOCS_DIR }${ version.path ?? version.label }/docs/`;\n  await copyDocs(fromDir, toDir);\n  console.timeEnd(`Copied docs to builder for \"${ target }\"`);\n}\n\nasync function copyBuilderDocs() {\n  console.log('Copying builder docs...');\n  console.time('Copied builder docs');\n  const fromDir = `${ BUILD_DOCS_DIR }`;\n  const toDir = `${ BUILD_SRC_DIR }docs/web/`;\n  await copyDocs(fromDir, toDir);\n  console.timeEnd('Copied builder docs');\n}\n\nasync function prepareBuilder(targetBranch) {\n  console.log('Preparing builder...');\n  console.time('Prepared builder');\n  await exec(`git checkout origin/${ targetBranch }`, { cwd: BUILD_SRC_DIR });\n  await installDependencies();\n  if (!BRANCH) await exec(`rm -rf ${ BUILD_SRC_DIR }docs/web/docs/`);\n  console.timeEnd('Prepared builder');\n}\n\nasync function switchBranchToLatestBuild(name) {\n  console.log(`Switching branch \"${ name }\" to the latest build...`);\n  console.time(`Switched branch \"${ name }\" to the latest build`);\n  const absoluteBuildPath = resolve(`${ BUILD_DIR }${ BUILD_RESULT_DIR }`);\n  const absoluteLatestPath = resolve(`./branches/${ name }`);\n  await exec(`rm -f ./branches/${ name }`);\n  await exec(`ln -sf ${ absoluteBuildPath } ${ absoluteLatestPath }`);\n  console.timeEnd(`Switched branch \"${ name }\" to the latest build`);\n}\n\nasync function checkoutVersion(version) {\n  if (version.branch) {\n    await exec(`git checkout origin/${ version.branch }`, { cwd: BUILD_SRC_DIR });\n  } else {\n    await exec(`git checkout ${ version.tag }`, { cwd: BUILD_SRC_DIR });\n  }\n}\n\nasync function getExcludedBuilds() {\n  const branchBuilds = await readdir('./branches/');\n  const excluded = new Set();\n  for (const name of branchBuilds) {\n    const link = await readlink(`./branches/${ name }`);\n    if (!link) continue;\n    const parts = link.split('/');\n    const id = parts.at(-2);\n    excluded.add(id);\n  }\n  const latestBuildLink = await readlink('./latest');\n  if (latestBuildLink) {\n    const parts = latestBuildLink.split('/');\n    const id = parts.at(-2);\n    excluded.add(id);\n  }\n\n  return Array.from(excluded);\n}\n\nasync function clearOldBuilds() {\n  console.log('Clearing old builds...');\n  console.time('Cleared old builds');\n  const excluded = await getExcludedBuilds();\n  const builds = await readdir(BUILDS_ROOT_DIR);\n  for (const build of builds) {\n    if (!excluded.includes(build)) {\n      await exec(`rm -rf ${ join('./', BUILDS_ROOT_DIR, '/', build) }`);\n      console.log(`Build removed: \"${ join('./', BUILDS_ROOT_DIR, '/', build) }\"`);\n    }\n  }\n  console.timeEnd('Cleared old builds');\n}\n\nasync function createLastDocsLink() {\n  console.log('Creating last docs link...');\n  console.time('Created last docs link');\n  const defaultVersion = await getDefaultVersion(VERSIONS_FILE);\n  const absoluteBuildPath = resolve(`${ BUILD_DIR }${ BUILD_RESULT_DIR }/${ defaultVersion }/docs/`);\n  const absoluteLastDocsPath = resolve(`${ BUILD_DIR }${ BUILD_RESULT_DIR }/docs/`);\n  await exec(`ln -s ${ absoluteBuildPath } ${ absoluteLastDocsPath }`);\n  console.timeEnd('Created last docs link');\n}\n\nasync function getVersions(targetBranch) {\n  console.log('Getting versions...');\n  console.time('Got versions');\n  await exec(`git checkout origin/${ targetBranch }`, { cwd: BUILD_SRC_DIR });\n  const versions = await readJSON(VERSIONS_FILE);\n  console.timeEnd('Got versions');\n\n  return expandVersionsConfig(versions);\n}\n\ntry {\n  console.time('Finished in');\n  await createBuildDir();\n  await cloneRepo();\n\n  const targetBranch = BRANCH || BUILDER_BRANCH;\n  if (!BRANCH) {\n    const versions = await getVersions(targetBranch);\n    for (const version of versions) {\n      if (version.default) continue;\n      await copyDocsToBuilder(version);\n      await buildAndCopyCoreJS(version, BUILD_SRC_DIR, BUNDLES_DIR, true);\n    }\n  } else {\n    const version = { branch: targetBranch, label: targetBranch };\n    await hasDocs(version, BUILD_SRC_DIR);\n    await buildAndCopyCoreJS(version, BUILD_SRC_DIR, BUNDLES_DIR, true);\n  }\n\n  await prepareBuilder(targetBranch);\n  await copyBabelStandalone(BUILD_SRC_DIR);\n  await copyBlogPosts(BUILD_SRC_DIR);\n  await copyCommonFiles(BUILD_SRC_DIR);\n  if (!BRANCH) {\n    await copyBuilderDocs();\n  }\n  await buildWeb(BRANCH, BUILD_SRC_DIR);\n\n  await copyWeb();\n  await createLastDocsLink();\n\n  if (!BRANCH) {\n    await switchToLatestBuild();\n  } else {\n    await switchBranchToLatestBuild(targetBranch);\n  }\n  await clearBuildDir();\n  await clearOldBuilds();\n  console.timeEnd('Finished in');\n} catch (error) {\n  console.error(error);\n}\n"
  },
  {
    "path": "website/scripts/runner.sh",
    "content": "#!/bin/bash\nLOCK_FILE=./runner.lock\nPID_FILE=./runner.pid\n\nexport NVM_DIR=\"$HOME/.nvm\"\n[ -s \"$NVM_DIR/nvm.sh\" ] && . \"$NVM_DIR/nvm.sh\"\n\nkill_old_build() {\n    if [ -f \"$PID_FILE\" ]; then\n        OLD_PID=$(cat \"$PID_FILE\")\n        if ps -p \"$OLD_PID\" > /dev/null 2>&1; then\n            kill -TERM -\"$OLD_PID\"\n            echo \"Previous build $OLD_PID in progress. Terminating...\"\n            sleep 2\n            if ps -p \"$OLD_PID\" > /dev/null 2>&1; then\n                kill -KILL -\"$OLD_PID\"\n                echo \"PID $OLD_PID still alive, sending SIGKILL!\"\n            fi\n        fi\n        rm -f \"$LOCK_FILE\" \"$PID_FILE\"\n    fi\n}\n\nkill_old_build\n\nif ! ln -s \"$$\" \"$LOCK_FILE\" 2>/dev/null; then\n    echo \"Another build still running, exit\"\n    exit 1\nfi\n\nCLEANED=0\ncleanup() {\n    if [ \"$CLEANED\" -eq 0 ]; then\n        CLEANED=1\n        echo \"Cleaning up from $$\"\n        rm -f \"$LOCK_FILE\" \"$PID_FILE\"\n        if [ -n \"$NODE_PID\" ] && ps -p \"$NODE_PID\" > /dev/null 2>&1; then\n            kill -TERM -\"$NODE_PID\" 2>/dev/null || true\n            kill -KILL -\"$NODE_PID\" 2>/dev/null || true\n        fi\n    fi\n}\n\ntrap cleanup EXIT HUP INT TERM\n\necho \"Lock acquired by $$, starting build...\"\n\nBRANCH_ARG=\"\"\nif [ -n \"$1\" ]; then\n  BRANCH_ARG=\"branch=$1\"\nfi\n\nif [ -z \"$BRANCH_ARG\" ]; then\n    setsid node ./runner.mjs &\nelse\n    setsid node ./runner.mjs \"$BRANCH_ARG\" &\nfi\nNODE_PID=$!\necho \"$NODE_PID\" > \"$PID_FILE\"\n\nwait $NODE_PID\nEXIT_CODE=$?\n\nexit $EXIT_CODE\n"
  },
  {
    "path": "website/src/images/LICENSE",
    "content": "Copyright (c) 2013–2025 Denis Pushkarev (zloirock.ru)\nCopyright (c) 2025–2026 CoreJS Company (core-js.io)\n\nAll rights reserved.\n\nThe files in this directory (logos, brand assets, and their variations)\nare proprietary material of CoreJS Company.\n"
  },
  {
    "path": "website/src/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\" class=\"theme-dark\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>{title}core-js</title>\n    <link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"apple-touch-icon.png\">\n    <link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"favicon-32x32.png\">\n    <link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"favicon-16x16.png\">\n    <base href=\"{base}\" />\n    <script>\n      var theme = localStorage.getItem('theme');\n      if (theme === null) {\n        if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n          theme = 'theme-dark';\n        } else {\n          theme = 'theme-light';\n        }\n      }\n      var html = document.querySelector('html');\n      setTheme(theme);\n      function setTheme(theme) {\n        localStorage.setItem('theme', theme);\n        html.className = '';\n        html.classList.add(theme);\n      }\n    </script>\n    {core-js-bundle-esmodules}\n    {core-js-bundle}\n    <script type=\"module\" src=\"js/main.js\"></script>\n    <script type=\"module\" src=\"js/content-menu.js\"></script>\n    <script type=\"module\" src=\"js/playground.js\"></script>\n</head>\n<body>\n<header>\n    <nav>\n        <div class=\"logo\">\n            <a href=\"https://core-js.io/\"><img src=\"images/core-js.png\" alt=\"core-js\"></a>\n        </div>\n        <div id=\"menu\">\n            <div class=\"menu-items\">\n                <div class=\"menu-item highlightable\"><a href=\"./blog/\" tabindex=\"1\">Blog</a></div>\n                <div class=\"menu-item highlightable\"><a href=\"./docs/\" tabindex=\"3\">Docs</a></div>\n                <div class=\"menu-item highlightable\"><a href=\"./playground\" tabindex=\"2\">Playground</a></div>\n                <div class=\"menu-item highlightable\"><a href=\"./changelog\" tabindex=\"4\">Changelog</a></div>\n                <div class=\"socials\">\n                    <div class=\"menu-item\">\n                        <a href=\"https://github.com/zloirock/core-js/\" target=\"_blank\" tabindex=\"5\">\n                            <span class=\"icon\">\n                                <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><g data-name=\"github\"><path d=\"M12 1A10.89 10.89 0 0 0 1 11.77 10.79 10.79 0 0 0 8.52 22c.55.1.75-.23.75-.52v-1.83c-3.06.65-3.71-1.44-3.71-1.44a2.86 2.86 0 0 0-1.22-1.58c-1-.66.08-.65.08-.65a2.31 2.31 0 0 1 1.68 1.11 2.37 2.37 0 0 0 3.2.89 2.33 2.33 0 0 1 .7-1.44c-2.44-.27-5-1.19-5-5.32a4.15 4.15 0 0 1 1.11-2.91 3.78 3.78 0 0 1 .11-2.84s.93-.29 3 1.1a10.68 10.68 0 0 1 5.5 0c2.1-1.39 3-1.1 3-1.1a3.78 3.78 0 0 1 .11 2.84A4.15 4.15 0 0 1 19 11.2c0 4.14-2.58 5.05-5 5.32a2.5 2.5 0 0 1 .75 2v2.95c0 .35.2.63.75.52A10.8 10.8 0 0 0 23 11.77 10.89 10.89 0 0 0 12 1\"/></g></svg>\n                            </span>\n                        </a>\n                    </div>\n                    <div class=\"menu-item\">\n                        <a href=\"https://x.com/thecorejs\" target=\"_blank\" tabindex=\"6\">\n                            <span class=\"icon\">\n                                <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 50 50\"><path d=\"M 5.9199219 6 L 20.582031 27.375 L 6.2304688 44 L 9.4101562 44 L 21.986328 29.421875 L 31.986328 44 L 44 44 L 28.681641 21.669922 L 42.199219 6 L 39.029297 6 L 27.275391 19.617188 L 17.933594 6 L 5.9199219 6 z M 9.7167969 8 L 16.880859 8 L 40.203125 42 L 33.039062 42 L 9.7167969 8 z\"/></svg>\n                            </span>\n                        </a>\n                    </div>\n<!--                    <div class=\"menu-item\">-->\n<!--                        <a href=\"#\" tabindex=\"7\">-->\n<!--                            <span class=\"icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 16 16\"><path d=\"M13.545 2.907a13.2 13.2 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.2 12.2 0 0 0-3.658 0 8 8 0 0 0-.412-.833.05.05 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.04.04 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032q.003.022.021.037a13.3 13.3 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019q.463-.63.818-1.329a.05.05 0 0 0-.01-.059l-.018-.011a9 9 0 0 1-1.248-.595.05.05 0 0 1-.02-.066l.015-.019q.127-.095.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.05.05 0 0 1 .053.007q.121.1.248.195a.05.05 0 0 1-.004.085 8 8 0 0 1-1.249.594.05.05 0 0 0-.03.03.05.05 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.2 13.2 0 0 0 4.001-2.02.05.05 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.03.03 0 0 0-.02-.019m-8.198 7.307c-.789 0-1.438-.724-1.438-1.612s.637-1.613 1.438-1.613c.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612m5.316 0c-.788 0-1.438-.724-1.438-1.612s.637-1.613 1.438-1.613c.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612\"/></svg></span>-->\n<!--                        </a>-->\n<!--                    </div>-->\n                </div>\n                <div class=\"menu-item\">\n                    <a href=\"#\" class=\"theme-switcher\">\n                        <span class=\"theme-switcher-title\">Theme</span>\n                        <span class=\"icon light\">\n                            <svg data-slot=\"icon\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n                              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z\"></path>\n                            </svg>\n                        </span>\n                        <span class=\"icon dark\">\n                            <svg data-slot=\"icon\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n                              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z\"></path>\n                            </svg>\n                        </span>\n                    </a>\n                </div>\n            </div>\n            <div class=\"burger\">\n                <a href=\"#\" id=\"menu-switcher\"><span></span><span></span><span></span></a>\n            </div>\n            <div class=\"backdrop\"></div>\n        </div>\n    </nav>\n</header>\n\n<main>\n    <div class=\"main box\">\n        {content}\n    </div>\n</main>\n\n<footer>\n    <div class=\"footer\">\n        <div class=\"copyright\">\n            <div class=\"footer-logo\"><img src=\"images/core-js.png\" alt=\"core-js\"></div>\n            © CoreJS Company\n        </div>\n        <div class=\"resources\">\n            <div class=\"resource-item title\">Resources</div>\n            <div class=\"resource-item\"><a href=\"./blog/\">Blog</a></div>\n            <div class=\"resource-item\"><a href=\"./docs/\">Docs</a></div>\n            <div class=\"resource-item\"><a href=\"./playground\">Playground</a></div>\n            <div class=\"resource-item\"><a href=\"./changelog\">Changelog</a></div>\n            <div class=\"resource-item\"><a href=\"./contributing\">Contributing</a></div>\n            <div class=\"resource-item\"><a href=\"./security\">Security Policy</a></div>\n        </div>\n        <div class=\"community\">\n            <div class=\"resource-item title\">Community</div>\n            <div class=\"community-item\"><a href=\"https://github.com/zloirock/core-js/\" target=\"_blank\">GitHub</a></div>\n            <div class=\"community-item\"><a href=\"https://x.com/thecorejs\" target=\"_blank\">X</a></div>\n<!--            <div class=\"community-item\"><a href=\"#\" target=\"_blank\">Discord</a></div>-->\n        </div>\n    </div>\n</footer>\n<div id=\"tooltip\" role=\"tooltip\">\n    <div id=\"tooltip-text\"></div>\n    <div id=\"tooltip-arrow\" data-popper-arrow></div>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/src/js/content-menu.js",
    "content": "import scrollToElement from './scroll-to.js';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n  const triggers = document.querySelectorAll('.scroll-to');\n  const menuItems = document.querySelectorAll('.toc-link');\n  const offset = 10;\n\n  function unactiveAllMenuItems() {\n    menuItems.forEach(item => {\n      item.classList.remove('active');\n    });\n  }\n\n  function activateMenu(targetHash) {\n    document.querySelector(`a[data-hash=\"${ targetHash }\"]`).parentElement.classList.add('active');\n  }\n\n  function getBlocksBoundaries() {\n    const targetBoundaries = {};\n    triggers.forEach(trigger => {\n      const targetHash = trigger.dataset.hash;\n      const element = document.querySelector(targetHash);\n      if (element) {\n        targetBoundaries[targetHash] = { top: element.getBoundingClientRect().top + window.scrollY };\n      }\n    });\n    return targetBoundaries;\n  }\n\n  function observeMenu() {\n    const scroll = window.scrollY;\n    const targetBoundaries = getBlocksBoundaries();\n    for (const [hash, target] of Object.entries(targetBoundaries)) {\n      if (target.top > scroll && target.top < scroll + window.innerHeight / 2) {\n        unactiveAllMenuItems();\n        activateMenu(hash);\n        return;\n      }\n    }\n  }\n\n  function isIE() {\n    return window.MSInputMethodContext && document.documentMode;\n  }\n\n  triggers.forEach(trigger => {\n    trigger.addEventListener('click', function (e) {\n      if (!isIE()) {\n        e.preventDefault();\n        const { hash } = this.dataset;\n        const href = this.getAttribute('href');\n        const target = document.querySelector(hash);\n        if (target) {\n          scrollToElement(target, offset);\n          history.pushState(null, null, href);\n        }\n      }\n    }, false);\n  });\n\n  document.addEventListener('scroll', observeMenu);\n});\n"
  },
  {
    "path": "website/src/js/hljs-run.js",
    "content": "export default class RunButtonPlugin {\n  ORIGIN = location.origin;\n  PATH = location.pathname;\n  BASE_URL = document.querySelector('base')?.getAttribute('href');\n  RELATIVE_PATH = this.PATH.replace(this.BASE_URL, '');\n  PLAYGROUND_URL = 'playground';\n\n  text = '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-6\">' +\n    '<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 ' +\n    '1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z\" />' +\n    '</svg>';\n\n  'after:highlightElement'({ el, result, text }) {\n    if (result.language !== 'js') return;\n    if (el.parentElement.querySelector('.hljs-run-button')) return;\n    const runButton = document.createElement('a');\n    runButton.href = '#';\n    runButton.innerHTML = this.text;\n    runButton.classList.add('hljs-run-button');\n    runButton.addEventListener('click', event => {\n      event.preventDefault();\n      const urlParams = new URLSearchParams();\n      urlParams.set('code', text);\n      const hash = urlParams.toString();\n      const hasVersion = this.RELATIVE_PATH !== '' && !this.RELATIVE_PATH.startsWith('docs/') && !this.RELATIVE_PATH.startsWith('index');\n      const version = hasVersion ? `${ this.RELATIVE_PATH.split('/')[0] }/` : '';\n      location.href = `${ this.ORIGIN }${ this.BASE_URL }${ version }${ this.PLAYGROUND_URL }#${ hash }`;\n    });\n    const wrapper = document.createElement('div');\n    wrapper.classList.add('hljs-run');\n    wrapper.appendChild(runButton);\n    el.appendChild(wrapper);\n  }\n}\n"
  },
  {
    "path": "website/src/js/main.js",
    "content": "import '../scss/app.scss';\nimport hljs from 'highlight.js/lib/core';\nimport javascript from 'highlight.js/lib/languages/javascript';\nimport typescript from 'highlight.js/lib/languages/typescript';\nimport json from 'highlight.js/lib/languages/json';\nimport bash from 'highlight.js/lib/languages/bash';\nimport plaintext from 'highlight.js/lib/languages/plaintext';\nimport RunButtonPlugin from './hljs-run.js';\n\nhljs.registerLanguage('js', javascript);\nhljs.registerLanguage('ts', typescript);\nhljs.registerLanguage('json', json);\nhljs.registerLanguage('sh', bash);\nhljs.registerLanguage('plaintext', plaintext);\n\nlet initialized = false;\nfunction init() {\n  if (initialized) return;\n  initialized = true;\n  const menuSwitcher = document.getElementById('menu-switcher');\n  const menuBackdrop = document.querySelector('#menu > .backdrop');\n  const menu = document.querySelector('#menu');\n  const collapsibleTrigger = document.querySelectorAll('.collapsible > a');\n  const dropdownTriggers = document.querySelectorAll('.dropdown .dropdown-wrapper > a');\n  const versionsMenu = document.querySelectorAll('.versions-menu');\n  const currentVersions = document.querySelectorAll('.versions-menu a.current');\n  const dropdownBackdrops = document.querySelectorAll('.dropdown .backdrop');\n  const themeSwitcher = document.querySelector('.theme-switcher');\n  const docsVersionLinks = document.querySelectorAll('.with-docs-version');\n  const docsMenuItems = document.querySelectorAll('.docs-menu li > a');\n  const docsCollapsibleMenuItems = document.querySelectorAll('.docs-menu .docs-links ul > li.collapsible');\n  const contentMenu = document.querySelector('.table-of-contents');\n  const contentMenuTrigger = document.querySelector('.table-of-contents .mobile-trigger');\n  const sectionMenu = document.querySelector('.docs-menu');\n  const sectionMenuTrigger = document.querySelector('.docs-menu .mobile-trigger');\n  const mainMenuItems = document.querySelectorAll('.menu-item.highlightable > a');\n  let isDocs, docsVersion;\n  const currentPath = getRelativePath();\n\n  function toggleMenu() {\n    menu.classList.toggle('active');\n  }\n\n  menuBackdrop.addEventListener('click', () => {\n    toggleMenu();\n  }, false);\n\n  menuSwitcher.addEventListener('click', e => {\n    e.preventDefault();\n    toggleMenu();\n  }, false);\n\n  collapsibleTrigger.forEach(el => {\n    el.addEventListener('click', function (e) {\n      e.preventDefault();\n      this.parentElement.classList.toggle('active');\n    });\n  });\n\n  dropdownTriggers.forEach(el => {\n    el.addEventListener('click', function (e) {\n      e.preventDefault();\n      this.parentElement.parentElement.classList.toggle('active');\n    });\n  });\n\n  currentVersions.length && currentVersions.forEach(version => {\n    version.addEventListener('click', e => {\n      e.preventDefault();\n    });\n  });\n\n  dropdownBackdrops.forEach(el => {\n    el.addEventListener('click', function () {\n      this.parentElement.classList.remove('active');\n    });\n  });\n\n  function getRelativePath() {\n    const path = location.pathname;\n    const base = document.querySelector('base')?.getAttribute('href') || '';\n\n    return path.replace(base, '');\n  }\n\n  function isDocsPage() {\n    if (isDocs !== undefined) return isDocs;\n    isDocs = currentPath.startsWith('docs/') || currentPath.includes('/docs/');\n    return isDocs;\n  }\n\n  function hasCurrentVersion() {\n    if (docsVersion !== undefined) return docsVersion;\n    docsVersion = !currentPath.startsWith('docs/') && !currentPath.startsWith('playground');\n    return docsVersion;\n  }\n\n  function setDefaultVersion() {\n    versionsMenu.forEach(menuItem => {\n      const currentVersion = menuItem.querySelector('a.current');\n      currentVersion.innerHTML = `${ currentVersion.innerHTML } (default)`;\n      const versionsMenuLinks = menuItem.querySelectorAll('.dropdown-block a');\n      versionsMenuLinks.forEach(link => link.classList.remove('active'));\n      versionsMenuLinks[0].classList.add('active');\n    });\n  }\n\n  function processVersions() {\n    const hasVersion = hasCurrentVersion();\n    if (!hasVersion) setDefaultVersion();\n    if (!isDocsPage()) return;\n    if (hasVersion) return;\n\n    docsVersionLinks.forEach(link => {\n      const defaultVersion = link.getAttribute('data-default-version');\n      const re = new RegExp(`${ defaultVersion }/`);\n      const newLink = link.getAttribute('href').replace(re, '');\n      link.setAttribute('href', newLink);\n    });\n  }\n\n  function setActiveDocsMenuItem(item) {\n    item.classList.add('active');\n    let parent = item.parentElement;\n    while (parent && !parent.classList.contains('docs-menu')) {\n      if (parent.tagName === 'LI' && parent.classList.contains('collapsible')) {\n        parent.classList.add('active');\n      }\n      parent = parent.parentElement;\n    }\n  }\n\n  function highlightActiveDocsMenuItem() {\n    if (!isDocsPage()) return;\n\n    let found = false;\n    for (const link of docsMenuItems) {\n      const href = link.getAttribute('href');\n      if (href && href === currentPath) {\n        setActiveDocsMenuItem(link);\n        found = true;\n        break;\n      }\n    }\n\n    !found && setActiveDocsMenuItem(docsMenuItems[0]);\n  }\n\n  function openFirstCollapsibleMenuItem() {\n    if (!isDocsPage()) return;\n    docsCollapsibleMenuItems[0].classList.add('active');\n  }\n\n  function highlightMainMenu() {\n    const path = getRelativePath();\n    for (const item of mainMenuItems) {\n      const href = item.getAttribute('href').replace('./', '');\n      if (path.includes(href)) {\n        item.classList.add('active');\n        return;\n      }\n    }\n  }\n\n  themeSwitcher.addEventListener('click', e => {\n    e.preventDefault();\n    const html = document.querySelector('html');\n    const isDark = html.classList.contains('theme-dark');\n    // eslint-disable-next-line no-undef, sonarjs/no-reference-error -- global function\n    isDark ? setTheme('theme-light') : setTheme('theme-dark');\n  });\n\n  contentMenuTrigger && contentMenuTrigger.addEventListener('click', e => {\n    e.preventDefault();\n    contentMenu.classList.toggle('active');\n    if (contentMenu.classList.contains('active') && sectionMenu && sectionMenu.classList.contains('active')) {\n      sectionMenu.classList.remove('active');\n    }\n  });\n\n  sectionMenuTrigger && sectionMenuTrigger.addEventListener('click', e => {\n    e.preventDefault();\n    sectionMenu.classList.toggle('active');\n    if (sectionMenu.classList.contains('active') && contentMenu && contentMenu.classList.contains('active')) {\n      contentMenu.classList.remove('active');\n    }\n  });\n\n  hljs.addPlugin(new RunButtonPlugin());\n  hljs.highlightAll();\n\n  processVersions();\n  highlightActiveDocsMenuItem();\n  openFirstCollapsibleMenuItem();\n  highlightMainMenu();\n}\n\nif (document.readyState === 'loading') {\n  document.addEventListener('DOMContentLoaded', init);\n} else {\n  init();\n}\n"
  },
  {
    "path": "website/src/js/playground.js",
    "content": "/* global Babel -- global scope directive */\nimport hljs from 'highlight.js/lib/core';\nimport javascript from 'highlight.js/lib/languages/javascript';\nimport { createPopper } from '@popperjs/core';\n\nhljs.registerLanguage('javascript', javascript);\n\nconst hash = location.hash.slice(1);\nconst pageParams = new URLSearchParams(hash);\nconst defaultCode = `import 'core-js/actual';\n\nawait Promise.try(() => 42); // => 42\n\nArray.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]\n\n[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]\n\nIterator.concat([1, 2], function * (i) { while (true) yield i++; }(3))\n  .drop(1).take(5)\n  .filter(it => it % 2)\n  .map(it => it ** 2)\n  .toArray(); // => [9, 25]\n  \nstructuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])`;\n\nconst specSymbols = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  '\\'': '&apos;',\n};\n\nlet initialized = false;\nfunction init() {\n  if (initialized) return;\n  initialized = true;\n\n  const codeInput = document.querySelector('#code-input');\n  const codeOutput = document.querySelector('#code-output');\n  const runButtons = document.querySelectorAll('.run-button');\n  const linkButtons = document.querySelectorAll('.link-button');\n  const resultBlock = document.querySelector('.result');\n  const backLinkBlock = document.querySelector('.back-link');\n  const backLink = document.querySelector('.back-link a');\n  const tooltip = document.querySelector('#tooltip');\n  const tooltipText = document.querySelector('#tooltip-text');\n\n  if (!codeInput) return;\n\n  function writeResult(text, type = 'log') {\n    const serializedText = serializeLog(text).replaceAll(/[\"&'<>]/g, it => specSymbols[it]);\n    resultBlock.innerHTML += `<div class=\"console ${ type }\">${ serializedText }</div>`;\n  }\n\n  Babel.registerPlugin('playground-plugin', babel => {\n    const { types: t } = babel;\n    return {\n      visitor: {\n        ExpressionStatement(path) {\n          const { expression, trailingComments } = path.node;\n          if (trailingComments?.[0]?.value.startsWith(' =>')) {\n            if (\n              t.isCallExpression(expression) &&\n              t.isMemberExpression(expression.callee) &&\n              expression.callee.object.name === 'console'\n            ) return;\n            path.replaceWith(\n              t.callExpression(\n                t.memberExpression(t.identifier('console'), t.identifier('log')),\n                [t.clone(expression)],\n              ),\n            );\n          }\n        },\n        ImportDeclaration(path) {\n          const { node } = path;\n          if (!node.specifiers.length && /^core-js(?:\\/|$)/.test(node.source.value)) {\n            path.remove();\n          }\n        },\n      },\n    };\n  });\n\n  function runCode(code) {\n    const origConsole = globalThis.console;\n    const console = {\n      log: (...args) => {\n        args.forEach(arg => { writeResult(arg, 'log'); });\n        origConsole.log(...args);\n      },\n      warn: (...args) => {\n        args.forEach(arg => { writeResult(arg, 'warn'); });\n        origConsole.warn(...args);\n      },\n      error: (...args) => {\n        args.forEach(arg => { writeResult(arg, 'error'); });\n        origConsole.error(...args);\n      },\n    };\n\n    try {\n      code = Babel.transform(code, { plugins: ['playground-plugin'] }).code;\n      code = Babel.transform(`(async function () { ${ code } \\n})().catch(console.error)`, { presets: ['env'] }).code;\n      // eslint-disable-next-line no-new-func -- it's needed to run code with monkey-patched console\n      const executeCode = new Function('console', code);\n      executeCode(console);\n    } catch (error) {\n      writeResult(`Error: ${ error.message }`, 'error');\n    }\n  }\n\n  function serializeLog(value, visited = new WeakSet()) {\n    if (typeof value == 'string') return JSON.stringify(value);\n    if (typeof value == 'function') return `[Function ${ value.name || 'anonymous' }]`;\n    if (typeof value != 'object' || value === null) return String(value);\n\n    if (value instanceof Promise) {\n      return 'Promise { <value> }';\n    }\n\n    if (value instanceof ArrayBuffer) {\n      return `ArrayBuffer(${ value.byteLength })`;\n    }\n\n    if (value instanceof DataView) {\n      return `DataView(${ value.byteLength })`;\n    }\n\n    if (ArrayBuffer.isView(value)) {\n      const type = value.constructor.name;\n      const objFormat = Array.from(value, (v, i) => `\"${ i }\": ${ serializeLog(v, visited) }`);\n      return `${ type } { ${ objFormat.join(', ') } }`;\n    }\n\n    if (globalThis.Blob && value instanceof Blob) {\n      return `Blob { size: ${ value.size }, type: \"${ value.type }\" }`;\n    }\n\n    if (value instanceof Error) {\n      return `${ value.name || 'Error' }: ${ value.message }`;\n    }\n\n    if (value instanceof Date) {\n      return `Date \"${ String(value) }\"`;\n    }\n\n    if (value instanceof RegExp) {\n      return `RegExp ${ String(value) }`;\n    }\n\n    if (visited.has(value)) return '[Circular]';\n\n    visited.add(value);\n\n    try {\n      if (value instanceof Set) {\n        const arr = Array.from(value, v => serializeLog(v, visited));\n        return `Set { ${ arr.join(', ') } }`;\n      }\n\n      if (value instanceof Map) {\n        const arr = Array.from(\n          value,\n          ([k, v]) => `${ serializeLog(k, visited) } => ${ serializeLog(v, visited) }`,\n        );\n        return `Map { ${ arr.join(', ') } }`;\n      }\n\n      if (Array.isArray(value)) {\n        const arr = value.map(v => serializeLog(v, visited));\n        return `[${ arr.join(', ') }]`;\n      }\n\n      const isPlain = Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null;\n      const keys = Reflect.ownKeys(value);\n      const props = keys.map(k => {\n        // eslint-disable-next-line unicorn/no-instanceof-builtins -- it's needed here\n        const displayKey = Object(k) instanceof Symbol ? `[${ String(k) }]` : k;\n        return `${ displayKey }: ${ serializeLog(value[k], visited) }`;\n      });\n\n      return isPlain\n        ? `{ ${ props.join(', ') } }`\n        : `${ value.constructor?.name ?? 'Object' } { ${ props.join(', ') } }`;\n    } finally {\n      visited.delete(value);\n    }\n  }\n\n  function elementInViewport(el) {\n    const rect = el.getBoundingClientRect();\n\n    return (\n      rect.top >= 0 &&\n      rect.left >= 0 &&\n      rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n      rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n    );\n  }\n\n  function copyToClipboard(text) {\n    if (navigator.clipboard && window.isSecureContext) {\n      return navigator.clipboard.writeText(text);\n    }\n\n    const textArea = document.createElement('textarea');\n    textArea.value = text;\n    textArea.classList.add('copy-fallback');\n    document.body.appendChild(textArea);\n    textArea.focus();\n    textArea.select();\n\n    try {\n      if (!document.execCommand('copy')) {\n        throw new Error('Copy command was unsuccessful');\n      }\n    } finally {\n      document.body.removeChild(textArea);\n    }\n  }\n\n  function showTooltip(element, message, time = 3000) {\n    tooltipText.innerHTML = message;\n    tooltip.setAttribute('data-show', '');\n    createPopper(element, tooltip, { placement: 'bottom' });\n    setTimeout(() => {\n      tooltip.removeAttribute('data-show');\n    }, time);\n  }\n\n  codeInput.addEventListener('input', () => {\n    codeOutput.removeAttribute('data-highlighted');\n    let val = codeInput.value;\n    if (val.at(-1) === '\\n') val += ' ';\n    codeOutput.textContent = val;\n    hljs.highlightElement(codeOutput);\n  });\n\n  codeInput.addEventListener('scroll', () => {\n    codeOutput.scrollTop = codeInput.scrollTop;\n    codeOutput.scrollLeft = codeInput.scrollLeft;\n  });\n\n  runButtons.forEach(runButton => {\n    runButton.addEventListener('click', e => {\n      e.preventDefault();\n      resultBlock.innerHTML = '';\n      runCode(codeInput.value);\n      if (!elementInViewport(resultBlock)) {\n        window.scrollTo({\n          top: resultBlock.getBoundingClientRect().top + window.scrollY,\n          behavior: 'smooth',\n        });\n      }\n    });\n  });\n\n  linkButtons.forEach(linkButton => {\n    linkButton.addEventListener('click', e => {\n      e.preventDefault();\n      pageParams.set('code', codeInput.value);\n      location.hash = String(pageParams);\n      try {\n        copyToClipboard(String(location));\n        showTooltip(linkButton, 'Link copied');\n      } catch {\n        showTooltip(linkButton, 'Can\\'t copy link. Please copy the link manually');\n      }\n    });\n  });\n\n  setInterval(() => {\n    localStorage.setItem('code', codeInput.value);\n  }, 2000);\n\n  codeOutput.textContent = codeInput.value;\n  hljs.highlightElement(codeOutput);\n  let event;\n  if (typeof Event === 'function') {\n    event = new Event('input', { bubbles: true });\n  } else {\n    event = document.createEvent('Event');\n    event.initEvent('input', true, true);\n  }\n  if (pageParams.has('code')) {\n    codeInput.value = pageParams.get('code');\n    codeInput.dispatchEvent(event);\n  } else {\n    const code = localStorage.getItem('code');\n    codeInput.value = code && code !== '' ? code : defaultCode;\n    codeInput.dispatchEvent(event);\n  }\n\n  if (document.referrer !== '') {\n    backLinkBlock.classList.add('active');\n    backLink.addEventListener('click', e => {\n      e.preventDefault();\n      history.back();\n    });\n  }\n}\n\nif (document.readyState === 'loading') {\n  document.addEventListener('DOMContentLoaded', init);\n} else {\n  init();\n}\n"
  },
  {
    "path": "website/src/js/scroll-to.js",
    "content": "export default function scrollToElement(element, offset = 0) {\n  if (typeof element !== 'object') {\n    element = document.querySelector(element);\n  }\n  if (element) {\n    const y = element.getBoundingClientRect().top + window.scrollY - offset;\n    window.scrollTo({ top: y, behavior: 'smooth' });\n  }\n}\n"
  },
  {
    "path": "website/src/playground.html",
    "content": "<div class=\"playground-menu\">\n    <div class=\"title\">\n        <div class=\"back-link\">\n            <a href=\"#\" class=\"back\">\n                <span class=\"icon\">\n                    <svg data-slot=\"icon\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9.75 14.25 12m0 0 2.25 2.25M14.25 12l2.25-2.25M14.25 12 12 14.25m-2.58 4.92-6.374-6.375a1.125 1.125 0 0 1 0-1.59L9.42 4.83c.21-.211.497-.33.795-.33H19.5a2.25 2.25 0 0 1 2.25 2.25v10.5a2.25 2.25 0 0 1-2.25 2.25h-9.284c-.298 0-.585-.119-.795-.33Z\"></path>\n                    </svg>\n                </span> Back\n            </a>\n            <div class=\"dummy\">\n                <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"300.000000pt\" height=\"297.000000pt\" viewBox=\"0 0 300.000000 297.000000\" preserveAspectRatio=\"xMidYMid meet\"><g transform=\"translate(0.000000,297.000000) scale(0.100000,-0.100000)\" fill=\"current\" stroke=\"none\"><path d=\"M1310 2900 l0 -59 44 -26 c28 -16 45 -34 48 -50 6 -30 2 -35 -29 -35 -78 0 -120 -104 -62 -156 10 -9 19 -20 19 -24 0 -4 -21 -20 -47 -37 -27 -17 -59 -50 -73 -72 -14 -22 -30 -41 -36 -41 -6 0 -35 17 -65 38 l-54 38 -3 127 c-2 119 -4 127 -22 127 -19 0 -20 -7 -20 -135 l0 -135 80 -52 c60 -40 80 -59 80 -75 0 -28 -1 -28 -106 -2 -82 21 -86 23 -145 87 -52 57 -62 64 -74 51 -12 -12 -6 -23 50 -85 l64 -72 108 -26 c97 -24 123 -27 258 -24 l150 3 5 140 c4 116 8 140 20 140 13 0 15 -24 18 -144 l3 -143 162 7 c103 4 191 14 242 26 78 19 82 21 147 91 59 63 66 75 53 87 -12 13 -22 6 -74 -51 -57 -62 -65 -67 -138 -87 -59 -16 -79 -18 -85 -8 -16 25 -6 38 67 87 l75 51 0 134 c0 128 -1 135 -20 135 -19 0 -20 -7 -20 -127 l0 -128 -62 -40 c-58 -37 -62 -38 -72 -20 -20 34 -87 104 -107 110 -23 8 -25 28 -3 46 60 49 20 159 -57 159 -34 0 -38 6 -30 38 5 17 22 35 49 50 42 23 42 24 42 83 0 46 -3 59 -15 59 -11 0 -15 -12 -15 -49 0 -40 -4 -53 -22 -65 -30 -21 -45 -20 -75 4 -33 26 -89 26 -132 -1 -29 -17 -38 -19 -62 -8 -27 11 -29 15 -29 65 0 41 -4 54 -15 54 -12 0 -15 -13 -15 -60z\"/><path d=\"M1148 2213 c-15 -15 -24 -15 -89 -4 l-72 13 -90 -90 c-68 -68 -88 -94 -83 -108 6 -15 22 -3 95 70 l88 88 45 -7 c77 -12 77 -11 18 -140 l-54 -116 247 -247 247 -247 246 246 246 246 -51 111 c-28 61 -51 116 -51 121 0 10 13 15 69 26 32 7 38 3 121 -80 61 -61 93 -86 104 -82 9 4 16 10 16 14 0 5 -42 50 -94 102 l-94 93 -72 -13 c-66 -11 -74 -11 -85 4 -9 13 -28 17 -84 17 -42 0 -71 -4 -71 -10 0 -6 14 -67 31 -136 18 -68 29 -127 26 -131 -18 -18 -35 17 -61 123 -39 162 -34 156 -109 152 l-62 -3 -5 -340 c-5 -312 -6 -340 -22 -343 -17 -3 -18 20 -20 340 l-3 343 -66 3 c-45 2 -69 -1 -76 -10 -6 -7 -25 -70 -43 -140 -30 -115 -43 -142 -62 -123 -3 3 9 64 27 135 18 71 30 132 27 135 -3 3 -31 5 -62 5 -39 0 -61 -5 -72 -17z\"/><path d=\"M360 1821 l-355 -350 34 -35 c35 -37 41 -37 79 -2 l23 20 377 -375 377 -376 243 15 244 14 24 -23 25 -23 -188 -188 -187 -188 -31 30 c-17 17 -36 30 -41 30 -18 0 -144 -100 -144 -113 0 -15 221 -237 235 -237 11 0 115 134 115 147 0 4 -14 22 -32 40 l-32 34 187 187 187 187 185 -185 c102 -102 185 -189 185 -194 0 -6 -14 -24 -30 -41 l-30 -31 52 -72 c29 -39 58 -71 63 -72 6 0 64 54 130 120 l120 121 -25 19 c-14 11 -49 37 -78 57 l-52 37 -35 -34 -35 -34 -185 184 c-102 102 -185 190 -185 196 0 6 9 19 20 29 18 16 33 17 237 6 120 -6 231 -14 248 -16 27 -5 55 20 407 372 l378 377 28 -27 28 -27 34 35 34 36 -352 351 -351 352 -36 -34 -35 -34 27 -28 27 -29 -376 -377 -376 -377 15 -244 14 -244 -25 -26 -26 -26 -25 25 -25 25 16 245 15 244 -371 371 c-203 203 -370 375 -370 381 0 6 9 19 20 29 11 10 20 23 20 30 0 11 -51 65 -61 65 -2 0 -164 -157 -359 -349z m405 19 l69 -70 -204 -205 c-112 -113 -209 -205 -215 -205 -6 0 -41 31 -79 69 l-69 69 209 206 c115 113 211 205 214 206 3 0 37 -31 75 -70z m1855 -224 l115 -116 -73 -72 -72 -73 -207 207 -208 208 69 69 69 70 96 -89 c53 -49 148 -141 211 -204z m-1588 -43 c60 -59 108 -112 108 -118 0 -6 -36 -46 -80 -90 -77 -76 -80 -78 -105 -65 -24 13 -28 12 -57 -18 -31 -31 -32 -31 -13 -52 19 -21 18 -21 -68 -108 l-87 -87 -110 110 c-60 60 -110 114 -110 120 0 10 400 415 410 415 2 0 53 -48 112 -107z m1356 -420 l-113 -113 -85 85 c-79 79 -84 86 -71 106 12 20 10 25 -18 53 -28 28 -33 29 -53 17 -19 -12 -27 -7 -106 72 l-85 86 113 111 113 112 208 -208 209 -209 -112 -112z m-1089 153 l53 -54 -7 -151 c-4 -83 -12 -154 -17 -157 -11 -7 -258 234 -258 251 0 13 152 165 165 165 6 0 35 -24 64 -54z m559 -29 l82 -82 -130 -130 c-71 -71 -132 -126 -136 -123 -3 4 -10 75 -16 159 l-10 152 53 53 c30 30 58 54 64 54 6 0 47 -37 93 -83z m-733 -287 c71 -71 127 -132 124 -135 -3 -3 -75 -10 -159 -15 l-154 -11 -60 61 -61 60 85 85 c46 47 87 85 90 85 3 0 64 -58 135 -130z m975 45 l85 -85 -61 -60 -60 -61 -147 10 c-81 6 -152 13 -158 17 -10 6 236 264 251 264 3 0 44 -38 90 -85z\"/></g></svg>\n            </div>\n        </div>\n        <div class=\"playground-versions\">{versions-menu}</div>\n    </div>\n    <div class=\"playground-controls\">\n        <button class=\"run-button\">Run</button>\n        <button class=\"link-button\">Link</button>\n    </div>\n    <div class=\"playground-notes\">\n        <span class=\"icon icon-md\">\n            <svg viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg>\n        </span>\n        <span>Use <code>console.log()</code> or <code>// =></code> for output</span>\n    </div>\n</div>\n\n<div class=\"sandbox-wrapper\">\n    <div class=\"editor\">\n        <textarea id=\"code-input\" class=\"input\" spellcheck=\"false\"></textarea>\n        <div id=\"code-output\" class=\"output language-javascript\"></div>\n        <div class=\"controls-float\">\n            <a href=\"#\" class=\"run-button\">\n                <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-6\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z\" /></svg>\n            </a>\n            <a href=\"#\" class=\"link-button\">\n                <svg data-slot=\"icon\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244\"></path></svg>\n            </a>\n        </div>\n    </div>\n    <div class=\"result\"></div>\n</div>\n{babel-script}\n"
  },
  {
    "path": "website/src/scss/app.scss",
    "content": "@use \"includes/variables-dark\";\n@use \"includes/themes\";\n@use \"includes/themify\";\n@use \"includes/themed\";\n@use \"includes/reset\";\n@use \"includes/forms\";\n@use \"includes/mixins\";\n\n@use \"includes/base\";\n@use \"includes/markdown\";\n\n@use \"parts/header\";\n@use \"parts/main\";\n@use \"parts/footer\";\n@use \"parts/code\";\n@use \"parts/playground\";\n@use \"parts/tooltip\";\n"
  },
  {
    "path": "website/src/scss/includes/base.scss",
    "content": "@use \"../includes/mixins\" as *;\n@use \"../includes/themes\" as *;\n@use \"../includes/themify\" as *;\n@use \"../includes/themed\" as *;\n\nhtml {\n  font-size: 14px;\n  line-height: 1.8;\n\n  @include media(\"min\", \"lg\") {\n    font-size: 16px;\n  }\n\n  @include media(\"min\", \"xxl\") {\n    font-size: 18px;\n  }\n}\n\nbody {\n  display: flex;\n  flex-direction: column;\n  min-height: 100vh;\n\n  font-family: Helvetica, sans-serif;\n  font-weight: 400;\n  font-style: normal;\n  @include themify($themes) {\n    background-color: themed('background-color');\n    color: themed('font-color');\n  }\n}\n\na {\n  @include themify($themes) {\n    color: themed('link-color');\n  }\n\n  &:hover, &:focus {\n    @include themify($themes) {\n      color: themed('link-color-hover');\n    }\n  }\n}\n\nh1, h2, h3, h4, h5, h6 {\n  position: relative;\n  font-weight: 600;\n  text-align: left;\n  @include themify($themes) {\n    color: themed('font-color-light');\n  }\n\n  &.with-anchor {\n    .anchor {\n      display: none;\n      width: 1.2rem;\n      margin-left: 0.5rem;\n      height: 1.5rem;\n\n      svg {\n        @include themify($themes) {\n          fill: themed('link-color2');\n        }\n      }\n\n      &:hover svg {\n        @include themify($themes) {\n          fill: themed('link-color2-hover');\n        }\n      }\n    }\n\n    &:hover .anchor {\n      display: inline-block;\n    }\n  }\n}\n\nh1 {\n  font-size: 2.25rem;\n  margin: 0 1rem 1rem;\n  text-align: center;\n  @include themify($themes) {\n    border-bottom: 1px solid themed('border-color-lighter');\n  }\n}\n\nh2 {\n  font-size: 2rem;\n}\n\nh3 {\n  font-size: 1.875rem;\n}\n\nh4 {\n  font-size: 1.5rem;\n}\n\np {\n  padding: 0.5rem 0;\n}\n\npre {\n  padding: 1rem 0;\n}\n\nblockquote {\n  padding: 0 1rem;\n  margin-bottom: 1rem;\n  @include themify($themes) {\n    background-color: themed('box-light');\n    border-left: 1px solid themed('success');\n  }\n}\n\nul {\n  padding-left: 1rem;\n  list-style-type: disc;\n}\n\nsvg {\n  width: 100%;\n  height: auto;\n}\n\ntable {\n  tr {\n    &:nth-child(odd) {\n      @include themify($themes) {\n        background-color: themed('background-highlight');\n      }\n    }\n\n    &:nth-child(even) {\n      @include themify($themes) {\n        background-color: themed('background-light');\n      }\n    }\n\n    th {\n      padding: 0.25rem 0.375rem;\n    }\n  }\n\n  @include media(\"max\", \"lg\") {\n    display: block;\n    overflow-x: auto;\n    white-space: nowrap;\n  }\n}\n\n.box {\n  border-radius: 1rem;\n  @include themify($themes) {\n    background-color: themed('box-color');\n  }\n}\n\n.icon {\n  display: block;\n  line-height: 0;\n  width: 24px;\n  height: 24px;\n\n  &.icon-md {\n    width: 1rem;\n    height: 1rem;\n  }\n}\n\ndetails {\n  summary {\n    cursor: pointer;\n\n    @include themify($themes) {\n      color: themed('link-color2');\n    }\n  }\n\n  summary:after {\n    content: '';\n    display: inline-block;\n    line-height: 0;\n    width: 0.5rem;\n    height: 0.5rem;\n    transform: rotate(45deg);\n    margin-left: 0.5rem;\n    vertical-align: 2px;\n\n    @include themify($themes) {\n      border-right: 2px solid themed('link-color2');\n      border-bottom: 2px solid themed('link-color2');\n    }\n  }\n\n  &[open] summary:after {\n    vertical-align: -3px;\n    transform: rotate(-135deg);\n  }\n\n  summary:hover {\n    @include themify($themes) {\n      color: themed('link-color2-hover');\n    }\n\n    &:after {\n      @include themify($themes) {\n        border-right: 2px solid themed('link-color2-hover');\n        border-bottom: 2px solid themed('link-color2-hover');\n      }\n    }\n  }\n}\n\nhr {\n  margin: 2rem;\n}\n"
  },
  {
    "path": "website/src/scss/includes/forms.scss",
    "content": "@use \"../includes/themes\" as *;\n@use \"../includes/themify\" as *;\n@use \"../includes/themed\" as *;\n\nbutton {\n  border-radius: 0.5rem;\n  cursor: pointer;\n  padding: 1rem;\n  line-height: 1;\n\n  font-weight: 600;\n\n  @include themify($themes) {\n    background-color: transparent;\n    border: 1px solid themed('background-highlight');\n    color: themed('link-color');\n  }\n\n  &:focus,\n  &:hover {\n    @include themify($themes) {\n      background-color: themed('button-color-hover');\n      color: themed('link-color-hover');\n    }\n  }\n\n  &.big {\n    border-radius: 2rem;\n    font-size: 1.25rem;\n    padding: 1rem;\n  }\n\n  &.full-width {\n    width: 100%;\n  }\n}\n\ninput {\n  width: 100%;\n  padding: 0 2rem 0 0;\n\n  font-size: 1rem;\n  line-height: 3rem;\n\n  border-radius: 8px;\n  border: 0;\n  outline: 0;\n\n  @include themify($themes) {\n    color: themed('form-font-color');\n    background-color: themed('background-light');\n  }\n}\n\n.form-item {\n  display: flex;\n  align-items: center;\n\n  padding: 0 2rem;\n  margin-bottom: 0.5rem;\n\n  border-radius: 8px;\n\n  @include themify($themes) {\n    background-color: themed('background-light');\n  }\n\n  .icon {\n    width: 1.25rem;\n    height: 1.25rem;\n    margin-right: 0.75rem;\n\n    svg {\n      width: 100%;\n      height: auto;\n      opacity: 0.3;\n      @include themify($themes) {\n        color: themed('form-font-color');\n      }\n    }\n  }\n}\n\nselect {\n  width: 100%;\n  height: 3rem;\n\n  font-size: 1rem;\n\n  border-radius: 8px;\n  border: 0;\n  outline: 0;\n\n  appearance: none;\n\n  @include themify($themes) {\n    color: themed('form-font-color');\n    background-color: themed('background-light');\n  }\n}\n"
  },
  {
    "path": "website/src/scss/includes/markdown.scss",
    "content": "@use \"../includes/mixins\" as *;\n@use \"../includes/themes\" as *;\n@use \"../includes/themify\" as *;\n@use \"../includes/themed\" as *;\n\n.markdown-alert {\n  padding-left: 1rem;\n  margin-bottom: 1rem;\n\n  &.markdown-alert-note {\n    @include themify($themes) {\n      border-left: 1px solid themed('neutral');\n    }\n\n    .markdown-alert-title {\n      @include themify($themes) {\n        color: themed('neutral');\n      }\n    }\n\n    svg {\n      @include themify($themes) {\n        fill: themed('neutral');\n      }\n    }\n  }\n\n  &.markdown-alert-tip {\n    @include themify($themes) {\n      border-left: 1px solid themed('success');\n    }\n\n    .markdown-alert-title {\n      @include themify($themes) {\n        color: themed('success');\n      }\n    }\n\n    svg {\n      @include themify($themes) {\n        fill: themed('success');\n      }\n    }\n  }\n\n  &.markdown-alert-important {\n    @include themify($themes) {\n      border-left: 1px solid themed('success');\n    }\n\n    .markdown-alert-title {\n      @include themify($themes) {\n        color: themed('success');\n      }\n    }\n\n    svg {\n      @include themify($themes) {\n        fill: themed('success');\n      }\n    }\n  }\n\n  &.markdown-alert-warning {\n    @include themify($themes) {\n      border-left: 1px solid themed('warning');\n    }\n\n    .markdown-alert-title {\n      @include themify($themes) {\n        color: themed('warning');\n      }\n    }\n\n    svg {\n      @include themify($themes) {\n        fill: themed('warning');\n      }\n    }\n  }\n\n  &.markdown-alert-caution {\n    @include themify($themes) {\n      border-left: 1px solid themed('warning');\n    }\n\n    .markdown-alert-title {\n      @include themify($themes) {\n        color: themed('warning');\n      }\n    }\n\n    svg {\n      @include themify($themes) {\n        fill: themed('warning');\n      }\n    }\n  }\n\n  .markdown-alert-title {\n    font-weight: 700;\n    vertical-align: middle;\n\n    svg {\n      width: 16px;\n      height: 16px;\n      padding-right: 0.5rem;\n    }\n  }\n}\n"
  },
  {
    "path": "website/src/scss/includes/mixins.scss",
    "content": "$sizes: (\n  \"xs\": 0px,\n  \"sm\": 480px,\n  \"md\": 767px,\n  \"lg\": 1024px,\n  \"xl\": 1439px,\n  \"xxl\": 1920px,\n);\n\n@function getPreviousSize($currentSize) {\n  $keys: map-keys($sizes);\n  $index: index($keys, $currentSize) - 1;\n  $value: map-values($sizes);\n  @return nth($value, $index);\n}\n\n@mixin media($minmax, $media) {\n  @each $size, $resolution in $sizes {\n    @if $media == $size {\n      @if ($minmax == \"max\") {\n        @media only screen and (#{$minmax}-width: $resolution) {\n          @content;\n        }\n      } @else if ($minmax == \"min\") {\n        @media only screen and (#{$minmax}-width: $resolution + 1) {\n          @content;\n        }\n      } @else {\n        @if (index(map-keys($sizes), $media) > 1) {\n          @media only screen and (min-width: getPreviousSize($media) + 1) and (max-width: $resolution + 1) {\n            @content;\n          }\n        } @else {\n          @media only screen and (max-width: $resolution) {\n            @content;\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin wrapper() {\n  width: 100%;\n\n  @include media('min', 'xl') {\n    max-width: 90%;\n  }\n}\n"
  },
  {
    "path": "website/src/scss/includes/reset.scss",
    "content": "html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td,\nfigure, figcaption, address {\n  margin: 0;\n  padding: 0;\n  box-sizing: border-box;\n}\n\nhtml {\n  overflow-y: scroll;\n}\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, nav, section, summary {\n  display: block;\n  margin: 0;\n  padding: 0;\n}\n\ntable {\n  border-spacing: 1px;\n  margin: 1rem 0;\n\n  th,\n  td {\n    vertical-align: middle;\n    padding: 0.25rem;\n  }\n}\n\ncaption, th {\n  text-align: left;\n}\n\nul, ol {\n  list-style: none;\n}\n\na {\n  text-decoration: none;\n}\n\na:link, a:visited, a:active {\n  -webkit-transition: 0.1s color ease;\n  -moz-transition: 0.1s color ease;\n  -o-transition: 0.1s color ease;\n  transition: 0.1s color ease;\n}\n\na:hover, a:focus {\n  cursor: pointer;\n  text-decoration: none;\n}\n\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"number\"],\ninput[type=\"email\"],\ninput[type=\"tel\"],\ntextarea {\n  appearance: none;\n  outline: none;\n}\n\n@-webkit-keyframes autofill {\n  to {\n    background: transparent;\n  }\n}\n\ninput:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {\n  -webkit-animation-name: autofill;\n  -webkit-animation-fill-mode: both;\n}\n\nsvg {\n  overflow: auto;\n  vertical-align: inherit;\n}\n\nimg {\n  max-width: 100%;\n}\n\n* {\n  outline: none;\n}\n"
  },
  {
    "path": "website/src/scss/includes/themed.scss",
    "content": "@use \"sass:map\";\n@use \"../includes/themify\" as *;\n\n@function themed($key) {\n  @return map.get($theme-map, $key);\n}\n"
  },
  {
    "path": "website/src/scss/includes/themes.scss",
    "content": "@use 'variables-dark' as dark;\n@use 'variables-light' as light;\n@use \"mixins\" as *;\n\n$themes: (\n  'dark': (\n    'font-color': dark.$foreground,\n    'font-color-light': dark.$font,\n    'font-color-dark': dark.$dark,\n    'comment-color': dark.$comment,\n    'font-success': dark.$green,\n    'font-warning': dark.$orange,\n    'font-error': dark.$red,\n    'font-note': rgba(dark.$foreground, 0.7),\n\n    'button-color': dark.$bg,\n    'button-color-hover': dark.$selection,\n    'box-color': dark.$bg,\n    'box-light': dark.$selection,\n    'background-color': dark.$dark,\n    'background-light': dark.$secondary,\n    'background-highlight': dark.$highlight,\n    'link-color': rgba(dark.$foreground, 0.7),\n    'link-color-hover': dark.$foreground,\n    'link-color2': rgba(dark.$link, 0.7),\n    'link-color2-hover': dark.$link,\n    'border-color': dark.$dark,\n    'border-color-light': dark.$secondary,\n    'border-color-lighter': dark.$selection,\n    'form-font-color': dark.$foreground,\n    'form-hint-color': dark.$foreground,\n\n    'success': dark.$green,\n    'warning': dark.$orange,\n    'error': dark.$red,\n    'neutral': dark.$comment,\n    'section': dark.$pink,\n    'meta': dark.$purple,\n    'function': dark.$cyan,\n  ),\n  'light': (\n    'font-color': light.$foreground,\n    'font-color-light': light.$font,\n    'font-color-dark': light.$dark,\n    'comment-color': light.$comment,\n    'font-success': light.$green,\n    'font-warning': light.$orange,\n    'font-error': light.$red,\n    'font-note': rgba(light.$foreground, 0.7),\n\n    'button-color': light.$foreground,\n    'button-color-hover': light.$selection,\n    'box-color': light.$bg,\n    'box-light': light.$selection,\n    'background-color': light.$dark,\n    'background-light': light.$secondary,\n    'background-highlight': light.$highlight,\n    'link-color': rgba(light.$foreground, 0.7),\n    'link-color-hover': light.$foreground,\n    'link-color2': rgba(light.$link, 0.7),\n    'link-color2-hover': light.$link,\n    'border-color': light.$dark,\n    'border-color-light': light.$secondary,\n    'border-color-lighter': light.$highlight,\n    'form-font-color': light.$foreground,\n    'form-hint-color': light.$foreground,\n\n    'success': light.$green,\n    'warning': light.$orange,\n    'error': light.$red,\n    'neutral': light.$comment,\n    'section': light.$pink,\n    'meta': light.$purple,\n    'function': light.$cyan,\n  )\n);\n"
  },
  {
    "path": "website/src/scss/includes/themify.scss",
    "content": "$theme-map: ();\n\n@use \"sass:map\";\n@use 'themes' as *;\n\n@mixin themify($themes: $themes) {\n  @each $theme, $map in $themes {\n    .theme-#{$theme} & {\n      $theme-map: () !global;\n      @each $key, $submap in $map {\n        $value: map.get(map.get($themes, $theme), '#{$key}');\n        $theme-map: map.merge($theme-map, ($key: $value)) !global;\n      }\n\n      @content;\n      $theme-map: null !global;\n    }\n  }\n}\n"
  },
  {
    "path": "website/src/scss/includes/variables-dark.scss",
    "content": "$bg:           #282a36;\n$current_line: #44475a;\n$foreground:   #fafaf4;\n$comment:      #6272a4;\n$cyan:         #8be9fd;\n$green:        #50fa7b;\n$orange:       #ffb86c;\n$pink:         #ff79c6;\n$purple:       #bd93f9;\n$red:          #ff5555;\n$link:         #f1fa8c;\n$font:         #ffffff;\n\n$selection:    #44475a;\n$secondary:    #2e313f;\n$dark:         #191a21;\n$highlight:    #44475a;\n$disabled:     #6D6D6D;\n"
  },
  {
    "path": "website/src/scss/includes/variables-light.scss",
    "content": "$bg:           #eceff4;\n$current_line: #e5e9f0;\n$foreground:   #1f232c;\n$comment:      #4c566a;\n$cyan:         #0184bc;\n$green:        #50a14f;\n$orange:       #c18401;\n$pink:         #a626a4;\n$purple:       #986801;\n$red:          #e45649;\n$link:         #286ff3;\n$font:         #1f232c;\n\n$selection:    #fafafa;\n$secondary:    #ffffff;\n$dark:         #eceff4;\n$highlight:    #d8dee9;\n$disabled:     #a3be8c40;\n"
  },
  {
    "path": "website/src/scss/parts/code.scss",
    "content": "@use \"../includes/themed\" as *;\n@use \"../includes/themes\" as *;\n@use \"../includes/themify\" as *;\n\n.hljs {\n  display: block;\n  overflow-x: auto;\n  padding: 0.5em;\n  @include themify($themes) {\n    background-color: themed('box-color');\n    color: themed('font-color');\n  }\n}\n\n.hljs-comment, .hljs-quote {\n  font-style: italic;\n  @include themify($themes) {\n    color: themed('comment-color');\n  }\n}\n\n.hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-section, .hljs-link {\n  @include themify($themes) {\n    color: themed('section');\n  }\n}\n\n.hljs-string, .hljs-title, .hljs-name, .hljs-type, .hljs-attribute, .hljs-symbol, .hljs-bullet, .hljs-addition {\n  @include themify($themes) {\n    color: themed('success');\n  }\n}\n\n.hljs-number, .hljs-meta, .hljs-built_in, .hljs-builtin-name, .hljs-params {\n  @include themify($themes) {\n    color: themed('meta');\n  }\n}\n\n.hljs-class .hljs-title, .hljs-strong {\n  font-weight: bold;\n  @include themify($themes) {\n    color: themed('link-color2-hover');\n  }\n}\n\n.hljs-emphasis {\n  font-style: italic;\n}\n\n.hljs-function .hljs-title {\n  @include themify($themes) {\n    color: themed('function');\n  }\n}\n\n.hljs-tag, .hljs-deletion {\n  @include themify($themes) {\n    color: themed('font-error');\n  }\n}\n\n.hljs-variable, .hljs-template-variable, .hljs-selector-attr, .hljs-selector-pseudo {\n  @include themify($themes) {\n    color: themed('font-warning');\n  }\n}\n\n.hljs-doctag {\n  @include themify($themes) {\n    color: themed('font-warning');\n  }\n}\n\n.hljs-bullet {\n  @include themify($themes) {\n    color: themed('meta');\n  }\n}\n\n.hljs-code, .hljs-formula {\n  @include themify($themes) {\n    color: themed('section');\n  }\n}\n\n.hljs-link {\n  text-decoration: underline;\n}\n\n.hljs-selector-id {\n  @include themify($themes) {\n    color: themed('link-color2-hover');\n  }\n}\n\n.hljs-selector-class {\n  @include themify($themes) {\n    color: themed('function');\n  }\n}\n\n.hljs::selection, .hljs span::selection {\n  @include themify($themes) {\n    background: themed('button-color-hover');\n  }\n}\n\ncode {\n  position: relative;\n  overflow-x: auto;\n  max-width: 100%;\n  display: inline-block;\n  vertical-align: middle;\n  scrollbar-width: thin;\n  padding: 0 0.25rem;\n  @include themify($themes) {\n    background: themed('button-color-hover');\n    scrollbar-color: themed('background-light') themed('button-color-hover');\n  }\n}\n\npre code {\n  scrollbar-width: thin;\n  font-size: 0.85rem;\n  line-height: 1.375rem;\n  @include themify($themes) {\n    scrollbar-color: themed('background-light') themed('background-highlight');\n  }\n}\n\n.hljs-run {\n  position: absolute;\n  top: 0.25rem;\n  right: 0.25rem;\n  width: 24px;\n  height: 24px;\n\n  .hljs-run-button {\n    display: block;\n    width: 100%;\n    height: 100%;\n  }\n}\n"
  },
  {
    "path": "website/src/scss/parts/footer.scss",
    "content": "@use \"../includes/mixins\" as *;\n@use \"../includes/themed\" as *;\n@use \"../includes/themes\" as *;\n@use \"../includes/themify\" as *;\n\nfooter {\n  display: flex;\n  padding: 2rem;\n  justify-content: center;\n\n  @include themify($themes) {\n    border-top: 1px solid themed('border-color-light');\n  }\n\n  .footer {\n    display: flex;\n    justify-content: space-between;\n    align-items: start;\n    flex-direction: column;\n\n    @include wrapper;\n\n    @include media('min', 'sm') {\n      flex-direction: row;\n    }\n\n    .footer-logo {\n      width: 144px;\n    }\n\n    .title {\n      font-size: 1.125rem;\n      font-weight: 600;\n      @include themify($themes) {\n        color: themed('font-color');\n      }\n    }\n\n    .copyright {\n      order: 3;\n      margin-top: 1rem;\n\n      @include media('min', 'sm') {\n        order: unset;\n        margin-top: 0;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "website/src/scss/parts/header.scss",
    "content": "@use \"../includes/mixins\" as *;\n@use \"../includes/themed\" as *;\n@use \"../includes/themes\" as *;\n@use \"../includes/themify\" as *;\n\nheader {\n  display: flex;\n  justify-content: center;\n\n  @include themify($themes) {\n    background-color: themed('background-color');\n  }\n\n  @include media(\"min\", \"xl\") {\n    padding: 0 1rem;\n  }\n}\n\nnav {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n\n  padding: 1rem;\n\n  max-height: 86px;\n\n  @include wrapper;\n\n  .logo {\n    max-width: 60%;\n\n    @include media('min', 'sm') {\n      width: 360px;\n      max-width: unset;\n    }\n\n    a {\n      display: flex;\n\n      img {\n        width: 100%;\n        height: auto;\n      }\n    }\n  }\n\n  #menu {\n    display: flex;\n    align-items: center;\n\n    .menu-items {\n      display: none;\n\n      @include media(\"min\", \"lg\") {\n        display: flex;\n        align-items: center;\n      }\n\n      .menu-item {\n        padding-right: 1rem;\n\n        &:last-child {\n          padding-right: 0;\n        }\n\n        .theme-switcher {\n          display: flex;\n          align-items: center;\n        }\n\n        .theme-switcher-title {\n          margin-right: 0.5rem;\n\n          @include media(\"min\", \"lg\") {\n            display: none;\n          }\n        }\n      }\n\n      a {\n        font-size: 1.5rem;\n        display: block;\n        overflow-wrap: break-word;\n        @include themify($themes) {\n          color: themed('link-color');\n        }\n\n        &:hover {\n          @include themify($themes) {\n            color: themed('link-color-hover');\n          }\n        }\n\n        &.active {\n          @include themify($themes) {\n            color: themed('link-color2');\n          }\n        }\n\n        .icon {\n          width: 26px;\n          height: 26px;\n        }\n      }\n\n      .mobile-docs-menu {\n        display: none;\n      }\n    }\n\n    &.active {\n      align-items: center;\n      overflow-y: auto;\n\n      & > .backdrop {\n        display: block;\n      }\n\n      @include media(\"max\", \"lg\") {\n        .menu-items {\n          z-index: 5;\n          display: flex;\n          flex-direction: column;\n          position: absolute;\n          top: 0;\n          right: 0;\n          min-height: 40vh;\n          width: 75%;\n          max-height: 100vh;\n          max-width: 350px;\n\n          overflow-y: auto;\n          scrollbar-width: thin;\n          @include themify($themes) {\n            scrollbar-color: themed('background-light') themed('background-highlight');\n          }\n\n          border-top-left-radius: 20px;\n          border-bottom-left-radius: 20px;\n\n          padding: 50px 20px 30px 30px;\n\n          @include themify($themes) {\n            background-color: themed('box-color');\n            box-shadow: -1px 1px 5px themed('background-light');\n          }\n\n          .mobile-docs-menu {\n            display: block;\n\n            ul {\n              list-style: circle;\n            }\n\n            .menu-header {\n              font-size: 1.25rem;\n            }\n          }\n        }\n\n        .menu-item {\n          line-height: 2rem;\n\n          a::after {\n            top: 0.75rem;\n          }\n        }\n\n        .burger {\n          position: absolute;\n          top: 25px;\n          right: 15px;\n          z-index: 6;\n\n          a {\n            display: block;\n            -webkit-tap-highlight-color: transparent;\n            -webkit-touch-callout: none;\n\n            span {\n              height: 1px;\n              @include themify($themes) {\n                background-color: themed('font-color');\n              }\n\n              &:nth-child(1) {\n                margin-top: 11px;\n                transform: rotate(-45deg);\n              }\n\n              &:nth-child(2) {\n                margin-top: -1px;\n                transform: rotate(45deg);\n              }\n\n              &:nth-child(3) {\n                display: none;\n              }\n            }\n          }\n        }\n      }\n    }\n\n    .burger {\n      @include media(\"min\", \"lg\") {\n        display: none;\n      }\n\n      a {\n        display: flex;\n        width: 26px;\n        height: 22px;\n        padding: 5px;\n        flex-direction: column;\n        justify-content: space-between;\n\n        span {\n          display: block;\n          width: 100%;\n          height: 2px;\n          border-radius: 2px;\n          @include themify($themes) {\n            background-color: themed('link-color');\n          }\n        }\n      }\n    }\n\n    .backdrop {\n      display: none;\n\n      content: '';\n      position: absolute;\n      width: 100%;\n      height: 100vh;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n      z-index: 4;\n    }\n\n    .socials {\n      display: flex;\n      align-items: center;\n      margin-right: 1rem;\n\n      @include media(\"max\", \"lg\") {\n        width: 100%;\n        justify-content: center;\n        margin: auto 0 0;\n        order: 99;\n        padding-top: 2rem;\n      }\n\n      @include media(\"min\", \"lg\") {\n        padding: 0 1rem;\n        @include themify($themes) {\n          border-left: 1px solid themed('link-color');\n          border-right: 1px solid themed('link-color');\n        }\n      }\n    }\n  }\n}\n\n.theme-light {\n  .icon.light {\n    display: none;\n  }\n\n  .icon.dark {\n    display: block;\n  }\n}\n\n.theme-dark {\n  .icon.light {\n    display: block;\n  }\n\n  .icon.dark {\n    display: none;\n  }\n}\n"
  },
  {
    "path": "website/src/scss/parts/main.scss",
    "content": "@use \"../includes/mixins\" as *;\n@use \"../includes/themed\" as *;\n@use \"../includes/themes\" as *;\n@use \"../includes/themify\" as *;\n\n.collapsible {\n  a {\n    position: relative;\n  }\n\n  & > ul {\n    display: none;\n  }\n\n  &.active {\n    & > a::after {\n      transform: rotate(-135deg);\n      top: 0.625rem;\n    }\n\n    & > ul {\n      display: block;\n    }\n  }\n\n  & > a::after {\n    position: absolute;\n    width: 5px;\n    height: 5px;\n    transform: rotate(45deg);\n    content: '';\n    margin-left: 0.5rem;\n    top: 0.375rem;\n\n    @include themify($themes) {\n      border-right: 1px solid themed('link-color');\n      border-bottom: 1px solid themed('link-color');\n    }\n  }\n}\n\nmain {\n  display: flex;\n  justify-content: center;\n  flex-grow: 1;\n  margin-bottom: 2rem;\n\n  @include media('min', 'sm') {\n    padding: 0 1rem 1rem;\n  }\n\n  a {\n    @include themify($themes) {\n      color: themed('link-color2');\n    }\n    &:focus {\n      @include themify($themes) {\n        color: themed('link-color2');\n      }\n    }\n\n    &:hover {\n      @include themify($themes) {\n        color: themed('link-color2-hover');\n      }\n    }\n  }\n\n  .main {\n    padding: 1rem 1rem;\n    @include themify($themes) {\n      background-color: themed('background-light');\n    }\n\n    @include wrapper;\n\n    .wrapper {\n      display: flex;\n      position: relative;\n\n      .docs-menu {\n        position: sticky;\n        top: 1rem;\n        align-self: flex-start;\n\n        padding: 0 0.5rem 150px 0;\n\n        font-size: 0.875rem;\n        flex-basis: 20%;\n        min-width: 160px;\n        flex-shrink: 0;\n        line-height: 1.3;\n\n        min-height: 100vh;\n        min-height: 100dvh;\n        max-height: 100vh;\n        max-height: 100dvh;\n        overflow-y: auto;\n        overflow-x: hidden;\n        scrollbar-width: thin;\n\n        @include themify($themes) {\n          border-right: 1px solid themed('border-color-lighter');\n          scrollbar-color: themed('background-light') themed('background-highlight');\n        }\n\n        ul {\n          list-style: none;\n          padding: 0;\n\n          li {\n            padding: 0.25rem 0 0.5rem 0;\n\n            &:last-child {\n              padding-bottom: 0;\n            }\n          }\n        }\n\n        @include media('max', 'md') {\n          position: absolute;\n          left: -1rem;\n          top: 1rem;\n          bottom: 1rem;\n          min-width: 1.75rem;\n          z-index: 3;\n          overflow-y: unset;\n          padding: 0;\n          height: 100%;\n          min-height: unset;\n          max-height: unset;\n          overflow-x: unset;\n          @include themify($themes) {\n            background-color: themed('background-light');\n            box-shadow: 5px 5px 7px -6px themed('background-highlight');\n          }\n\n          .container {\n            position: sticky;\n            display: flex;\n            top: 1rem;\n            max-height: 100dvh;\n            height: 100%;\n            padding-bottom: 1rem;\n          }\n\n          .docs-links {\n            max-height: 100dvh;\n            height: 100%;\n            overflow-y: auto;\n            scrollbar-width: none;\n            -ms-overflow-style: none;\n            padding-bottom: 1rem;\n          }\n\n          .mobile-trigger {\n            display: flex;\n            width: 1.75rem;\n            min-width: 1.75rem;\n            cursor: pointer;\n            align-items: center;\n            justify-content: center;\n            max-height: 100vh;\n            max-height: 100dvh;\n\n            &:after {\n              content: '';\n              display: block;\n              width: 10px;\n              height: 10px;\n              transform: rotate(-45deg);\n              margin-left: -2px;\n              @include themify($themes) {\n                border-right: 2px solid themed('link-color');\n                border-bottom: 2px solid themed('link-color');\n              }\n            }\n            &:hover {\n              &:after {\n                @include themify($themes) {\n                  border-right: 2px solid themed('link-color-hover');\n                  border-bottom: 2px solid themed('link-color-hover');\n                }\n              }\n            }\n          }\n\n          li {\n            @include media('max', 'md') {\n              display: none;\n            }\n          }\n\n          &.active {\n            min-width: 180px;\n            max-width: 270px;\n            padding-left: 1rem;\n\n            li {\n              display: block;\n            }\n\n            .mobile-trigger {\n              &:after {\n                transform: rotate(135deg);\n                margin-left: 5px;\n              }\n            }\n          }\n        }\n\n        a {\n          &.active {\n            @include themify($themes) {\n              color: themed('link-color2-hover');\n            }\n          }\n        }\n\n        .collapsible {\n          & > ul {\n            padding: 0.75rem 0 0 1rem;\n          }\n\n          &.active {\n            & > a::after {\n              top: 0.5rem;\n            }\n          }\n\n          & > a::after {\n            top: 0.125rem;\n          }\n        }\n\n        .menu-header {\n          padding: 0 0 0.75rem 0;\n          font-weight: 600;\n        }\n\n        .menu-item {\n          padding: 0 0.5rem 0.5rem 0.5rem;\n          @include themify($themes) {\n            border-right: 1px solid themed('border-color-lighter');\n          }\n        }\n      }\n\n      .content {\n        width: 100%;\n        padding: 1rem 1rem 0;\n        min-width: 0;\n        text-align: justify;\n\n        @include media(\"min\", \"md\") {\n          padding: 0 1rem;\n        }\n      }\n\n      .table-of-contents {\n        position: sticky;\n        top: 1rem;\n        align-self: flex-start;\n        font-size: 0.875rem;\n        max-width: 20%;\n        min-width: 20%;\n        height: 100vh;\n        height: 100dvh;\n        overflow-y: auto;\n        scrollbar-width: none;\n        @include themify($themes) {\n          border-left: 1px solid themed('border-color-lighter');\n        }\n\n        .mobile-trigger {\n          display: none;\n        }\n\n        @include media('max', 'xl') {\n          position: absolute;\n          right: -1rem;\n          top: 1rem;\n          bottom: 1rem;\n          min-width: 1.75rem;\n          z-index: 3;\n          overflow-y: unset;\n          height: 100%;\n          @include themify($themes) {\n            background-color: themed('background-light');\n            box-shadow: -5px 5px 7px -6px themed('background-highlight');\n          }\n\n          .container {\n            position: sticky;\n            display: flex;\n            top: 1rem;\n            max-height: 100dvh;\n            height: 100%;\n            padding-bottom: 1rem;\n          }\n\n          .toc-links {\n            max-height: 100dvh;\n            height: 100%;\n            overflow-y: auto;\n            scrollbar-width: none;\n            -ms-overflow-style: none;\n          }\n\n          .mobile-trigger {\n            display: flex;\n            width: 1.75rem;\n            min-width: 1.75rem;\n            cursor: pointer;\n            align-items: center;\n            justify-content: center;\n            max-height: 100vh;\n            max-height: 100dvh;\n\n            &:after {\n              content: '';\n              display: block;\n              transform: rotate(135deg);\n              width: 10px;\n              height: 10px;\n              margin-left: 5px;\n              @include themify($themes) {\n                border-right: 2px solid themed('link-color');\n                border-bottom: 2px solid themed('link-color');\n              }\n            }\n            &:hover {\n              &:after {\n                @include themify($themes) {\n                  border-right: 2px solid themed('link-color-hover');\n                  border-bottom: 2px solid themed('link-color-hover');\n                }\n              }\n            }\n          }\n\n          &.active {\n            min-width: 180px;\n\n            .toc-link {\n              display: block;\n              padding-left: 0;\n              padding-right: 1rem;\n            }\n\n            .mobile-trigger {\n              &:after {\n                transform: rotate(-45deg);\n                margin-left: -2px;\n              }\n            }\n          }\n        }\n\n        .toc-link {\n          padding: 0 0 0.5rem 1rem;\n\n          @include media('max', 'xl') {\n            display: none;\n          }\n\n          a {\n            display: block;\n          }\n\n          &.active {\n            a {\n              @include themify($themes) {\n                  color: themed('link-color2-hover');\n              }\n            }\n          }\n\n          .h3 {\n            margin-left: 0.5rem;\n          }\n          .h4, .h5, .h6, .h7 {\n            margin-left: 1rem;\n          }\n        }\n      }\n    }\n\n    .sponsors {\n      display: flex;\n      flex-wrap: wrap;\n\n      a {\n        flex-basis: 33%;\n\n        @include media(\"min\", \"md\") {\n          flex-basis: 25%;\n        }\n      }\n    }\n\n    .features {\n      display: flex;\n      flex-wrap: wrap;\n      align-content: stretch;\n      align-items: stretch;\n      justify-content: center;\n      margin: 1rem 0;\n      text-align: start;\n      gap: 2rem;\n\n      .feature {\n        flex-basis: 100%;\n        padding: 1rem;\n        border-radius: 1rem;\n        max-width: 400px;\n\n        @include themify($themes) {\n          background-color: themed('box-color');\n          border: 1px solid themed('box-light');\n        }\n\n        @include media(\"min\", \"md\") {\n          flex-basis: 48%;\n        }\n\n        @include media(\"min\", \"lg\") {\n          flex-basis: 31%;\n        }\n\n        @include media(\"min\", \"xxl\") {\n          flex-basis: 23%;\n        }\n\n        .title {\n          font-size: 1.5rem;\n          display: flex;\n          align-items: center;\n          gap: 0.5rem;\n\n          svg {\n            @include themify($themes) {\n              color: themed('font-success');\n            }\n          }\n        }\n\n        .desc {\n\n        }\n      }\n    }\n  }\n}\n.dropdown {\n  a {\n    white-space: nowrap;\n  }\n\n  .dropdown-wrapper {\n    position: relative;\n\n    & > a {\n      display: block;\n      overflow: hidden;\n      width: 90%;\n\n      &::after {\n        content: '';\n\n        width: 5px;\n        height: 5px;\n\n        transform: rotate(45deg);\n\n        position: absolute;\n        right: 5px;\n        top: 3px;\n        @include themify($themes) {\n          border-right: 2px solid themed('link-color');\n          border-bottom: 2px solid themed('link-color');\n        }\n      }\n    }\n\n    .dropdown-block {\n      display: none;\n\n      a {\n        display: block;\n        line-height: 2;\n      }\n    }\n  }\n\n  &.active {\n    .dropdown-block {\n      display: block;\n      position: absolute;\n      z-index: 6;\n      left: -1rem;\n      margin-top: 0.625rem;\n      padding: 0.5rem 1rem;\n      border-radius: 0.5rem;\n      @include themify($themes) {\n        border: 1px solid themed('border-color-lighter');\n        background-color: themed('background-color');\n      }\n\n      a.active {\n        font-weight: 500;\n        @include themify($themes) {\n          color: themed('link-color2-hover');\n        }\n      }\n    }\n\n    .backdrop {\n      display: block;\n      position: fixed;\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n    }\n  }\n\n  @include media(\"max\", \"lg\") {\n    .backdrop {\n      height: 100%;\n    }\n  }\n}\n.versions-menu {\n  padding: 0.5rem 1rem;\n  border-radius: 0.5rem;\n  @include themify($themes) {\n    border: 1px solid themed('border-color-lighter');\n    background-color: themed('background-light');\n  }\n}\n"
  },
  {
    "path": "website/src/scss/parts/playground.scss",
    "content": "@use \"../includes/mixins\" as *;\n@use \"../includes/themed\" as *;\n@use \"../includes/themes\" as *;\n@use \"../includes/themify\" as *;\n\n.sandbox-wrapper {\n  margin: 1rem 0 0;\n\n  @include media(\"min\", \"lg\") {\n    display: flex;\n  }\n\n  .editor {\n    position: relative;\n    flex-basis: 800px;\n    flex-grow: 1;\n\n    height: 30rem;\n    padding: 0;\n    border: none;\n    @include media(\"min\", \"lg\") {\n      margin-right: 1rem;\n    }\n\n    .input, .output {\n      box-sizing: border-box;\n      position: absolute;\n      height: 100%;\n      width: 100%;\n\n      font-family: monospace;\n      padding: 0.5em;\n      border: none;\n      font-size: 0.85rem;\n      line-height: 1.375rem;\n      white-space: pre;\n      word-wrap: break-word;\n      overflow: auto;\n\n      scrollbar-width: thin;\n      @include themify($themes) {\n        scrollbar-color: themed('background-light') themed('background-highlight');\n      }\n    }\n\n    .input {\n      z-index: 1;\n      color: transparent;\n      background-color: transparent;\n      resize: none;\n      @include themify($themes) {\n        caret-color: themed('font-color');\n      }\n    }\n\n    .output {\n      z-index: 0;\n      padding-bottom: 7px;\n      @include themify($themes) {\n        background-color: themed('box-color');\n      }\n    }\n\n    .controls-float {\n      position: absolute;\n      position: sticky;\n      width: fit-content;\n      display: flex;\n      top: 0.25rem;\n      right: 0.5rem;\n      margin-left: auto;\n      padding-right: 0.5rem;\n      padding-top: 0.25rem;\n      z-index: 3;\n\n      a {\n        display: block;\n        width: 24px;\n        height: 24px;\n\n        margin-right: 0.5rem;\n\n        &.link-button {\n          width: 22px;\n          height: 22px;\n        }\n      }\n    }\n  }\n\n  .result {\n    margin-top: 2rem;\n    padding: 0.5em;\n\n    font-family: monospace;\n    font-size: 0.85rem;\n    line-height: 1.375rem;\n    white-space: pre;\n    word-wrap: break-word;\n\n    scrollbar-width: thin;\n    @include themify($themes) {\n      background-color: themed('box-color');\n      scrollbar-color: themed('background-light') themed('background-highlight');\n    }\n\n    @include media(\"min\", \"lg\") {\n      flex-basis: 400px;\n      flex-shrink: 0;\n      margin-top: 0;\n      overflow: auto;\n      height: 30rem;\n    }\n\n    .console {\n      &.log {\n        @include themify($themes) {\n          color: themed('font-success');\n        }\n      }\n\n      &.warn {\n        @include themify($themes) {\n          color: themed('font-warning');\n        }\n      }\n\n      &.error {\n        @include themify($themes) {\n          color: themed('font-error');\n        }\n      }\n    }\n  }\n}\n\n.playground-menu {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n\n  @include media(\"min\", \"md\") {\n    flex-direction: row;\n  }\n\n  .title {\n    display: flex;\n    align-items: center;\n    margin-bottom: 1rem;\n\n    @include media(\"min\", \"md\") {\n      margin: 0 1.5rem 0 0;\n    }\n\n    .back-link {\n      flex-basis: 68px;\n      flex-shrink: 0;\n      margin-right: 1.5rem;\n      padding-left: 0.25rem;\n\n      a {\n        align-items: center;\n        display: none;\n\n        .icon {\n          margin-right: 0.5rem;\n        }\n      }\n\n      .dummy {\n        width: 36px;\n        height: 36px;\n        margin-left: auto;\n\n        svg {\n          @include themify($themes) {\n            fill: themed('font-color');\n          }\n        }\n      }\n\n      &.active {\n        a {\n          display: flex;\n        }\n\n        .dummy {\n          display: none;\n        }\n      }\n    }\n\n    h1 {\n      border-bottom: 0;\n      margin: 0;\n    }\n  }\n\n  .playground-versions {\n    min-width: 200px;\n    width: 100%;\n\n    @include media(\"min\", \"md\") {\n      max-width: 200px;\n    }\n\n    .dropdown .dropdown-wrapper > a:after {\n      top: 8px;\n    }\n\n    .backdrop {\n      z-index: 3;\n    }\n  }\n\n  .playground-controls {\n    display: flex;\n    margin-bottom: 1rem;\n\n    @include media(\"min\", \"md\") {\n      margin-bottom: 0;\n    }\n\n    button {\n      margin-right: 1rem;\n\n      &:last-child {\n        margin-right: 0;\n      }\n    }\n  }\n\n  .playground-notes {\n    display: flex;\n    align-items: center;\n    font-size: 0.75rem;\n    padding: 0 0.5rem;\n\n    @include themify($themes) {\n      color: themed('font-note');\n    }\n\n    @include media(\"min\", \"md\") {\n      margin-left: auto;\n    }\n\n    .icon {\n      margin-right: 0.5rem;\n\n      svg {\n        @include themify($themes) {\n          fill: themed('font-note');\n        }\n      }\n    }\n  }\n}\n\n.copy-fallback {\n  position: fixed;\n  top: 0;\n  left: 0;\n  opacity: 0;\n}\n"
  },
  {
    "path": "website/src/scss/parts/tooltip.scss",
    "content": "@use \"../includes/mixins\" as *;\n@use \"../includes/themed\" as *;\n@use \"../includes/themes\" as *;\n@use \"../includes/themify\" as *;\n\n#tooltip {\n  position: absolute;\n  font-weight: bold;\n  padding: 4px 8px;\n  border-radius: 4px;\n  opacity: 0;\n  transition: opacity 0.3s ease;\n  @include themify($themes) {\n    background: themed('font-color');\n    color: themed('background-highlight');\n  }\n\n  &[data-show] {\n    opacity: 1;\n  }\n\n  #tooltip-arrow, #tooltip-arrow::before {\n    position: absolute;\n    width: 8px;\n    height: 8px;\n    background: inherit;\n  }\n\n  #tooltip-arrow {\n    visibility: hidden;\n  }\n\n  #tooltip-arrow::before {\n    visibility: visible;\n    content: '';\n    transform: rotate(45deg);\n  }\n\n  &[data-popper-placement^='top'] > #tooltip-arrow {\n    bottom: -4px;\n  }\n\n  &[data-popper-placement^='bottom'] > #tooltip-arrow {\n    top: -4px;\n  }\n\n  &[data-popper-placement^='left'] > #tooltip-arrow {\n    right: -4px;\n  }\n\n  &[data-popper-placement^='right'] > #tooltip-arrow {\n    left: -4px;\n  }\n}\n"
  },
  {
    "path": "website/vite.config.mjs",
    "content": "import { defineConfig } from 'vite';\nimport legacy from '@vitejs/plugin-legacy';\n\nexport default defineConfig({\n  root: 'src',\n  publicDir: 'public',\n  base: '',\n  build: {\n    rollupOptions: {\n      input: {\n        main: 'src/index.html',\n        playground: 'src/playground.html',\n      },\n    },\n    outDir: '../templates',\n    emptyOutDir: true,\n    minify: true,\n    cssTarget: [\n      'ie11',\n    ],\n  },\n  plugins: [\n    legacy({\n      targets: 'IE 11, Chrome>=38, Safari>=7.1, FF>=15',\n      polyfills: false,\n    }),\n  ],\n});\n"
  }
]