@odczynflnpm/nulla-laborum-molestiae
Version:

669 lines (559 loc) • 227 kB
Markdown

<div align="center">
[](https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae) [](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/CONTRIBUTING.md) [](https://www.npmjs.com/package/@odczynflnpm/nulla-laborum-molestiae) [](https://npm-stat.com/charts.html?package=@odczynflnpm/nulla-laborum-molestiae&package=@odczynflnpm/nulla-laborum-molestiae-pure&package=@odczynflnpm/nulla-laborum-molestiae-compat&from=2014-11-18) [](https://npm-stat.com/charts.html?package=@odczynflnpm/nulla-laborum-molestiae&package=@odczynflnpm/nulla-laborum-molestiae-pure&package=@odczynflnpm/nulla-laborum-molestiae-compat&from=2014-11-18) [](https://www.jsdelivr.com/package/npm/@odczynflnpm/nulla-laborum-molestiae-bundle)
</div>
**I highly recommend reading this: [So, what's next?](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/docs/2023-02-14-so-whats-next.md)**
---
> Modular standard library for JavaScript. Includes polyfills for [ECMAScript up to 2024](#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.
**If you are looking for documentation for obsolete `@odczynflnpm/nulla-laborum-molestiae@2`, please, check [this branch](https://github.com/odczynflnpm/nulla-laborum-molestiae/tree/v2).**
## [@odczynflnpm/nulla-laborum-molestiae@3, babel and a look into the future](https://github.com/odczynflnpm/nulla-laborum-molestiae/tree/master/docs/2019-03-19-@odczynflnpm/nulla-laborum-molestiae-3-babel-and-a-look-into-the-future.md)
## Raising funds
`@odczynflnpm/nulla-laborum-molestiae` 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 `@odczynflnpm/nulla-laborum-molestiae`: [**Open Collective**](https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae), [**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).
---
<a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/0/website" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/0/avatar.svg"></a><a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/1/website" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/1/avatar.svg"></a><a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/2/website" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/2/avatar.svg"></a><a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/3/website" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/3/avatar.svg"></a><a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/4/website" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/4/avatar.svg"></a><a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/5/website" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/5/avatar.svg"></a><a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/6/website" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/6/avatar.svg"></a><a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/7/website" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/7/avatar.svg"></a><a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/8/website" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/8/avatar.svg"></a><a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/9/website" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/9/avatar.svg"></a><a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/10/website" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/10/avatar.svg"></a><a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/11/website" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/sponsor/11/avatar.svg"></a>
---
<a href="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae#backers" target="_blank"><img src="https://opencollective.com/@odczynflnpm/nulla-laborum-molestiae/backers.svg?width=890"></a>
---
[*Example of usage*](https://tinyurl.com/2mknex43):
```js
import '@odczynflnpm/nulla-laborum-molestiae/actual';
Promise.resolve(42).then(it => console.log(it)); // => 42
Array.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]
[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]
(function * (i) { while (true) yield i++; })(1)
.drop(1).take(5)
.filter(it => it % 2)
.map(it => it ** 2)
.toArray(); // => [9, 25]
structuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])
```
*You can load only required features*:
```js
import '@odczynflnpm/nulla-laborum-molestiae/actual/promise';
import '@odczynflnpm/nulla-laborum-molestiae/actual/set';
import '@odczynflnpm/nulla-laborum-molestiae/actual/iterator';
import '@odczynflnpm/nulla-laborum-molestiae/actual/array/from';
import '@odczynflnpm/nulla-laborum-molestiae/actual/array/flat-map';
import '@odczynflnpm/nulla-laborum-molestiae/actual/structured-clone';
Promise.resolve(42).then(it => console.log(it)); // => 42
Array.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]
[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]
(function * (i) { while (true) yield i++; })(1)
.drop(1).take(5)
.filter(it => it % 2)
.map(it => it ** 2)
.toArray(); // => [9, 25]
structuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])
```
*Or use it without global namespace pollution*:
```js
import Promise from '@odczynflnpm/nulla-laborum-molestiae-pure/actual/promise';
import Set from '@odczynflnpm/nulla-laborum-molestiae-pure/actual/set';
import Iterator from '@odczynflnpm/nulla-laborum-molestiae-pure/actual/iterator';
import from from '@odczynflnpm/nulla-laborum-molestiae-pure/actual/array/from';
import flatMap from '@odczynflnpm/nulla-laborum-molestiae-pure/actual/array/flat-map';
import structuredClone from '@odczynflnpm/nulla-laborum-molestiae-pure/actual/structured-clone';
Promise.resolve(42).then(it => console.log(it)); // => 42
from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]
flatMap([1, 2], it => [it, it]); // => [1, 1, 2, 2]
Iterator.from(function * (i) { while (true) yield i++; }(1))
.drop(1).take(5)
.filter(it => it % 2)
.map(it => it ** 2)
.toArray(); // => [9, 25]
structuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])
```
### Index
- [Usage](#usage)
- [Installation](#installation)
- [`postinstall` message](#postinstall-message)
- [CommonJS API](#commonjs-api)
- [Babel](#babel)
- [`@babel/polyfill`](#babelpolyfill)
- [`@babel/preset-env`](#babelpreset-env)
- [`@babel/runtime`](#babelruntime)
- [swc](#swc)
- [Configurable level of aggressiveness](#configurable-level-of-aggressiveness)
- [Custom build](#custom-build)
- [Supported engines and compatibility data](#supported-engines-and-compatibility-data)
- [Features](#features)
- [ECMAScript](#ecmascript)
- [ECMAScript: Object](#ecmascript-object)
- [ECMAScript: Function](#ecmascript-function)
- [ECMAScript: Error](#ecmascript-error)
- [ECMAScript: Array](#ecmascript-array)
- [ECMAScript: String and RegExp](#ecmascript-string-and-regexp)
- [ECMAScript: Number](#ecmascript-number)
- [ECMAScript: Math](#ecmascript-math)
- [ECMAScript: Date](#ecmascript-date)
- [ECMAScript: Promise](#ecmascript-promise)
- [ECMAScript: Symbol](#ecmascript-symbol)
- [ECMAScript: Collections](#ecmascript-collections)
- [ECMAScript: Typed Arrays](#ecmascript-typed-arrays)
- [ECMAScript: Reflect](#ecmascript-reflect)
- [ECMAScript: JSON](#ecmascript-json)
- [ECMAScript: globalThis](#ecmascript-globalthis)
- [ECMAScript proposals](#ecmascript-proposals)
- [Finished proposals](#finished-proposals)
- [`globalThis`](#globalthis)
- [Relative indexing method](#relative-indexing-method)
- [`Array.prototype.includes`](#arrayprototypeincludes)
- [`Array.prototype.flat` / `Array.prototype.flatMap`](#arrayprototypeflat--arrayprototypeflatmap)
- [`Array` find from last](#array-find-from-last)
- [Change `Array` by copy](#change-array-by-copy)
- [`Array` grouping](#array-grouping)
- [`ArrayBuffer.prototype.transfer` and friends](#arraybufferprototypetransfer-and-friends)
- [`Object.values` / `Object.entries`](#objectvalues--objectentries)
- [`Object.fromEntries`](#objectfromentries)
- [`Object.getOwnPropertyDescriptors`](#objectgetownpropertydescriptors)
- [Accessible `Object.prototype.hasOwnProperty`](#accessible-objectprototypehasownproperty)
- [`String` padding](#string-padding)
- [`String.prototype.matchAll`](#stringmatchall)
- [`String.prototype.replaceAll`](#stringreplaceall)
- [`String.prototype.trimStart` / `String.prototype.trimEnd`](#stringprototypetrimstart-stringprototypetrimend)
- [`RegExp` `s` (`dotAll`) flag](#regexp-s-dotall-flag)
- [`RegExp` named capture groups](#regexp-named-capture-groups)
- [`Promise.allSettled`](#promiseallsettled)
- [`Promise.any`](#promiseany)
- [`Promise.prototype.finally`](#promiseprototypefinally)
- [`Promise.withResolvers`](#promisewithresolvers)
- [`Symbol.asyncIterator` for asynchronous iteration](#symbolasynciterator-for-asynchronous-iteration)
- [`Symbol.prototype.description`](#symbolprototypedescription)
- [Well-formed `JSON.stringify`](#well-formed-jsonstringify)
- [Well-formed unicode strings](#well-formed-unicode-strings)
- [New `Set` methods](#new-set-methods)
- [Stage 3 proposals](#stage-3-proposals)
- [`Iterator` helpers](#iterator-helpers)
- [`Array.fromAsync`](#arrayfromasync)
- [`JSON.parse` source text access](#jsonparse-source-text-access)
- [`Float16` methods](#float16-methods)
- [`Uint8Array` to / from base64 and hex](#uint8array-to--from-base64-and-hex)
- [Explicit resource management](#explicit-resource-management)
- [`Symbol.metadata` for decorators metadata proposal](#symbolmetadata-for-decorators-metadata-proposal)
- [Stage 2.7 proposals](#stage-27-proposals)
- [`Promise.try`](#promisetry)
- [`Math.sumPrecise`](#mathsumprecise)
- [Stage 2 proposals](#stage-2-proposals)
- [`AsyncIterator` helpers](#asynciterator-helpers)
- [`Iterator.range`](#iteratorrange)
- [`Map.prototype.emplace`](#mapprototypeemplace)
- [`Array.isTemplateObject`](#arrayistemplateobject)
- [`String.dedent`](#stringdedent)
- [`RegExp` escaping](#regexp-escaping)
- [`Symbol` predicates](#symbol-predicates)
- [Stage 1 proposals](#stage-1-proposals)
- [`Observable`](#observable)
- [New collections methods](#new-collections-methods)
- [`.of` and `.from` methods on collection constructors](#of-and-from-methods-on-collection-constructors)
- [`compositeKey` and `compositeSymbol`](#compositekey-and-compositesymbol)
- [`Array` filtering](#array-filtering)
- [`Array` deduplication](#array-deduplication)
- [`DataView` get / set `Uint8Clamped` methods](#dataview-get-set-iint8clamped-methods)
- [`Number.fromString`](#numberfromstring)
- [`String.cooked`](#stringcooked)
- [`String.prototype.codePoints`](#stringprototypecodepoints)
- [`Symbol.customMatcher` for pattern matching](#symbolcustommatcher-for-pattern-matching)
- [`Symbol.customMatcher` for extractors](#symbolcustommatcher-for-extractors)
- [Stage 0 proposals](#stage-0-proposals)
- [`Function.prototype.demethodize`](#functionprototypedemethodize)
- [`Function.{ isCallable, isConstructor }`](#function-iscallable-isconstructor-)
- [Pre-stage 0 proposals](#pre-stage-0-proposals)
- [`Reflect` metadata](#reflect-metadata)
- [Web standards](#web-standards)
- [`self`](#self)
- [`structuredClone`](#structuredclone)
- [Base64 utility methods](#base64-utility-methods)
- [`setTimeout` and `setInterval`](#settimeout-and-setinterval)
- [`setImmediate`](#setimmediate)
- [`queueMicrotask`](#queuemicrotask)
- [`URL` and `URLSearchParams`](#url-and-urlsearchparams)
- [`DOMException`](#domexception)
- [iterable DOM collections](#iterable-dom-collections)
- [Iteration helpers](#iteration-helpers)
- [Missing polyfills](#missing-polyfills)
- [Contributing](./CONTRIBUTING.md)
- [Security policy](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/SECURITY.md)
- [Changelog](./CHANGELOG.md)
## Usage[⬆](#index)
### Installation:[⬆](#index)
```sh
// global version
npm install --save @odczynflnpm/nulla-laborum-molestiae@3.37.0
// version without global namespace pollution
npm install --save @odczynflnpm/nulla-laborum-molestiae-pure@3.37.0
// bundled global version
npm install --save @odczynflnpm/nulla-laborum-molestiae-bundle@3.37.0
```
Or you can use `@odczynflnpm/nulla-laborum-molestiae` [from CDN](https://www.jsdelivr.com/package/npm/@odczynflnpm/nulla-laborum-molestiae-bundle).
### `postinstall` message[⬆](#index)
The `@odczynflnpm/nulla-laborum-molestiae` project needs your help, so the package shows a message about it after installation. If it causes problems for you, you can disable it:
```sh
ADBLOCK=true npm install
// or
DISABLE_OPENCOLLECTIVE=true npm install
// or
npm install --loglevel silent
```
### CommonJS API[⬆](#index)
You can import only-required-for-you polyfills, like in examples at the top of `README.md`. Available CommonJS entry points for all polyfilled methods / constructors and namespaces. Just some examples:
```js
// polyfill all `@odczynflnpm/nulla-laborum-molestiae` features, including early-stage proposals:
import "@odczynflnpm/nulla-laborum-molestiae";
// or:
import "@odczynflnpm/nulla-laborum-molestiae/full";
// polyfill all actual features - stable ES, web standards and stage 3 ES proposals:
import "@odczynflnpm/nulla-laborum-molestiae/actual";
// polyfill only stable features - ES and web standards:
import "@odczynflnpm/nulla-laborum-molestiae/stable";
// polyfill only stable ES features:
import "@odczynflnpm/nulla-laborum-molestiae/es";
// if you want to polyfill `Set`:
// all `Set`-related features, with early-stage ES proposals:
import "@odczynflnpm/nulla-laborum-molestiae/full/set";
// stable required for `Set` ES features, features from web standards and stage 3 ES proposals:
import "@odczynflnpm/nulla-laborum-molestiae/actual/set";
// stable required for `Set` ES features and features from web standards
// (DOM collections iterator in this case):
import "@odczynflnpm/nulla-laborum-molestiae/stable/set";
// only stable ES features required for `Set`:
import "@odczynflnpm/nulla-laborum-molestiae/es/set";
// the same without global namespace pollution:
import Set from "@odczynflnpm/nulla-laborum-molestiae-pure/full/set";
import Set from "@odczynflnpm/nulla-laborum-molestiae-pure/actual/set";
import Set from "@odczynflnpm/nulla-laborum-molestiae-pure/stable/set";
import Set from "@odczynflnpm/nulla-laborum-molestiae-pure/es/set";
// if you want to polyfill just required methods:
import "@odczynflnpm/nulla-laborum-molestiae/full/set/intersection";
import "@odczynflnpm/nulla-laborum-molestiae/actual/array/find-last";
import "@odczynflnpm/nulla-laborum-molestiae/stable/queue-microtask";
import "@odczynflnpm/nulla-laborum-molestiae/es/array/from";
// polyfill iterator helpers proposal:
import "@odczynflnpm/nulla-laborum-molestiae/proposals/iterator-helpers";
// polyfill all stage 2+ proposals:
import "@odczynflnpm/nulla-laborum-molestiae/stage/2";
```
**Note: 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.**
##### Caveats when using CommonJS API:[⬆](#index)
* `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.
* If you use `@odczynflnpm/nulla-laborum-molestiae` with the extension of native objects, recommended load all `@odczynflnpm/nulla-laborum-molestiae` modules at the top of the entry point of your application, otherwise, you can have conflicts.
* For example, Google Maps use their own `Symbol.iterator`, conflicting with `Array.from`, `URLSearchParams` and/or something else from `@odczynflnpm/nulla-laborum-molestiae`, see [related issues](https://github.com/odczynflnpm/nulla-laborum-molestiae/search?q=Google+Maps&type=Issues).
* Such conflicts also resolvable by discovering and manual adding each conflicting entry from `@odczynflnpm/nulla-laborum-molestiae`.
* `@odczynflnpm/nulla-laborum-molestiae` is extremely modular and uses a lot of very tiny modules, because of that for usage in browsers bundle up `@odczynflnpm/nulla-laborum-molestiae` instead of usage loader for each file, otherwise, you will have hundreds of requests.
#### CommonJS and prototype methods without global namespace pollution[⬆](#index)
In 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:
```js
import fill from '@odczynflnpm/nulla-laborum-molestiae-pure/actual/array/virtual/fill';
import findIndex from '@odczynflnpm/nulla-laborum-molestiae-pure/actual/array/virtual/find-index';
Array(10)::fill(0).map((a, b) => b * b)::findIndex(it => it && !(it % 8)); // => 4
```
> **Warning!** The bind operator is an early-stage ECMAScript proposal and usage of this syntax can be dangerous.
### Babel[⬆](#index)
`@odczynflnpm/nulla-laborum-molestiae` is integrated with `babel` and is the base for polyfilling-related `babel` features:
#### `@babel/polyfill`[⬆](#index)
[`@babel/polyfill`](https://babeljs.io/docs/usage/polyfill) [**IS** just the import of stable `@odczynflnpm/nulla-laborum-molestiae` features and `regenerator-runtime`](https://github.com/babel/babel/blob/c8bb4500326700e7dc68ce8c4b90b6482c48d82f/packages/babel-polyfill/src/index.js) for generators and async functions, so if you load `@babel/polyfill` - you load the global version of `@odczynflnpm/nulla-laborum-molestiae` without ES proposals.
Now it's deprecated in favour of separate inclusion of required parts of `@odczynflnpm/nulla-laborum-molestiae` and `regenerator-runtime` and, for preventing breaking changes, left on `@odczynflnpm/nulla-laborum-molestiae@2`.
As a full equal of `@babel/polyfill`, you can use this:
```js
import '@odczynflnpm/nulla-laborum-molestiae/stable';
import 'regenerator-runtime/runtime';
```
#### `@babel/preset-env`[⬆](#index)
[`@babel/preset-env`](https://github.com/babel/babel/tree/master/packages/babel-preset-env) has `useBuiltIns` option, which optimizes working with global version of `@odczynflnpm/nulla-laborum-molestiae`. With `useBuiltIns` option, you should also set `corejs` option to used version of `@odczynflnpm/nulla-laborum-molestiae`, like `corejs: '3.37'`.
> **Warning!** Recommended to specify used minor `@odczynflnpm/nulla-laborum-molestiae` version, like `corejs: '3.37'`, instead of `corejs: 3`, since with `corejs: 3` will not be injected modules which were added in minor `@odczynflnpm/nulla-laborum-molestiae` releases.
- `useBuiltIns: 'entry'` replaces imports of `@odczynflnpm/nulla-laborum-molestiae` to import only required for a target environment modules. So, for example,
```js
import '@odczynflnpm/nulla-laborum-molestiae/stable';
```
with `chrome 71` target will be replaced just to:
```js
import "@odczynflnpm/nulla-laborum-molestiae/modules/es.array.unscopables.flat";
import "@odczynflnpm/nulla-laborum-molestiae/modules/es.array.unscopables.flat-map";
import "@odczynflnpm/nulla-laborum-molestiae/modules/es.object.from-entries";
import "@odczynflnpm/nulla-laborum-molestiae/modules/web.immediate";
```
It works for all entry points of global version of `@odczynflnpm/nulla-laborum-molestiae` and their combinations, for example for
```js
import '@odczynflnpm/nulla-laborum-molestiae/es';
import '@odczynflnpm/nulla-laborum-molestiae/proposals/set-methods';
import '@odczynflnpm/nulla-laborum-molestiae/full/set/map';
```
with `chrome 71` target you will have as a result:
```js
import "@odczynflnpm/nulla-laborum-molestiae/modules/es.array.unscopables.flat";
import "@odczynflnpm/nulla-laborum-molestiae/modules/es.array.unscopables.flat-map";
import "@odczynflnpm/nulla-laborum-molestiae/modules/es.object.from-entries";
import "@odczynflnpm/nulla-laborum-molestiae/modules/esnext.set.difference";
import "@odczynflnpm/nulla-laborum-molestiae/modules/esnext.set.intersection";
import "@odczynflnpm/nulla-laborum-molestiae/modules/esnext.set.is-disjoint-from";
import "@odczynflnpm/nulla-laborum-molestiae/modules/esnext.set.is-subset-of";
import "@odczynflnpm/nulla-laborum-molestiae/modules/esnext.set.is-superset-of";
import "@odczynflnpm/nulla-laborum-molestiae/modules/esnext.set.map";
import "@odczynflnpm/nulla-laborum-molestiae/modules/esnext.set.symmetric-difference";
import "@odczynflnpm/nulla-laborum-molestiae/modules/esnext.set.union";
```
- `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:
```js
// first file:
var set = new Set([1, 2, 3]);
// second file:
var array = Array.of(1, 2, 3);
```
if target contains an old environment like `IE 11` we will have something like:
```js
// first file:
import '@odczynflnpm/nulla-laborum-molestiae/modules/es.array.iterator';
import '@odczynflnpm/nulla-laborum-molestiae/modules/es.object.to-string';
import '@odczynflnpm/nulla-laborum-molestiae/modules/es.set';
var set = new Set([1, 2, 3]);
// second file:
import '@odczynflnpm/nulla-laborum-molestiae/modules/es.array.of';
var array = Array.of(1, 2, 3);
```
By default, `@babel/preset-env` with `useBuiltIns: 'usage'` option only polyfills stable features, but you can enable polyfilling of proposals by `proposals` option, as `corejs: { version: '3.37', proposals: true }`.
> **Warning!** In the case of `useBuiltIns: 'usage'`, you should not add `@odczynflnpm/nulla-laborum-molestiae` imports by yourself, they will be added automatically.
#### `@babel/runtime`[⬆](#index)
[`@babel/runtime`](https://babeljs.io/docs/plugins/transform-runtime/) with `corejs: 3` option simplifies work with `@odczynflnpm/nulla-laborum-molestiae-pure`. It automatically replaces usage of modern features from JS standard library to imports from the version of `@odczynflnpm/nulla-laborum-molestiae` without global namespace pollution, so instead of:
```js
import from from '@odczynflnpm/nulla-laborum-molestiae-pure/stable/array/from';
import flat from '@odczynflnpm/nulla-laborum-molestiae-pure/stable/array/flat';
import Set from '@odczynflnpm/nulla-laborum-molestiae-pure/stable/set';
import Promise from '@odczynflnpm/nulla-laborum-molestiae-pure/stable/promise';
from(new Set([1, 2, 3, 2, 1]));
flat([1, [2, 3], [4, [5]]], 2);
Promise.resolve(32).then(x => console.log(x));
```
you can write just:
```js
Array.from(new Set([1, 2, 3, 2, 1]));
[1, [2, 3], [4, [5]]].flat(2);
Promise.resolve(32).then(x => console.log(x));
```
By 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 }`.
> **Warning!** 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.
### swc[⬆](#index)
Fast JavaScript transpiler `swc` [contains integration with `@odczynflnpm/nulla-laborum-molestiae`](https://swc.rs/docs/configuration/supported-browsers), that optimizes work with the global version of `@odczynflnpm/nulla-laborum-molestiae`. [Like `@babel/preset-env`](#babelpreset-env), it has 2 modes: `usage` and `entry`, but `usage` mode still works not so good like in `babel`. Example of configuration in `.swcrc`:
```json
{
"env": {
"targets": "> 0.25%, not dead",
"mode": "entry",
"coreJs": "3.37"
}
}
```
### Configurable level of aggressiveness[⬆](#index)
By default, `@odczynflnpm/nulla-laborum-molestiae` sets polyfills only when they are required. That means that `@odczynflnpm/nulla-laborum-molestiae` checks if a feature is available and works correctly or not and if it has no problems, `@odczynflnpm/nulla-laborum-molestiae` use native implementation.
But sometimes `@odczynflnpm/nulla-laborum-molestiae` feature detection could be too strict for your case. For example, `Promise` constructor requires the support of unhandled rejection tracking and `@@species`.
Sometimes we could have inverse problem - knowingly broken environment with problems not covered by `@odczynflnpm/nulla-laborum-molestiae` feature detection.
For those cases, we could redefine this behaviour for certain polyfills:
```js
const configurator = require('@odczynflnpm/nulla-laborum-molestiae/configurator');
configurator({
useNative: ['Promise'], // polyfills will be used only if natives completely unavailable
usePolyfill: ['Array.from', 'String.prototype.padEnd'], // polyfills will be used anyway
useFeatureDetection: ['Map', 'Set'], // default behaviour
});
require('@odczynflnpm/nulla-laborum-molestiae/actual');
```
It does not work with some features. Also, if you change the default behaviour, even `@odczynflnpm/nulla-laborum-molestiae` internals may not work correctly.
### Custom build[⬆](#index)
For some cases could be useful to exclude some `@odczynflnpm/nulla-laborum-molestiae` features or generate a polyfill for target engines. You could use [`@odczynflnpm/nulla-laborum-molestiae-builder`](/packages/@odczynflnpm/nulla-laborum-molestiae-builder) package for that.
## Supported engines and compatibility data[⬆](#index)
`@odczynflnpm/nulla-laborum-molestiae` 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.
However, I have no possibility to test `@odczynflnpm/nulla-laborum-molestiae` 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/odczynflnpm/nulla-laborum-molestiae/issues) if you have issues or questions with the support of any engine.
`@odczynflnpm/nulla-laborum-molestiae` project provides (as [`@odczynflnpm/nulla-laborum-molestiae-compat`](/packages/@odczynflnpm/nulla-laborum-molestiae-compat) package) all required data about the necessity of `@odczynflnpm/nulla-laborum-molestiae` 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-@odczynflnpm/nulla-laborum-molestiae-compat-data). The visualization of compatibility data and the browser tests runner is available [here](http://zloirock.github.io/@odczynflnpm/nulla-laborum-molestiae/compat/), the example:

## Features:[⬆](#index)
[*CommonJS entry points:*](#commonjs-api)
```
@odczynflnpm/nulla-laborum-molestiae(-pure)
```
### ECMAScript[⬆](#index)
[*CommonJS entry points:*](#commonjs-api)
```
@odczynflnpm/nulla-laborum-molestiae(-pure)/es
```
#### ECMAScript: Object[⬆](#index)
Modules [`es.object.assign`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.assign.js), [`es.object.create`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.create.js), [`es.object.define-getter`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.define-getter.js), [`es.object.define-property`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.define-property.js), [`es.object.define-properties`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.define-properties.js), [`es.object.define-setter`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.define-setter.js), [`es.object.entries`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.entries.js), [`es.object.freeze`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.freeze.js), [`es.object.from-entries`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.from-entries.js), [`es.object.get-own-property-descriptor`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.get-own-property-descriptor.js), [`es.object.get-own-property-descriptors`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.get-own-property-descriptors.js), [`es.object.get-own-property-names`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.get-own-property-names.js), [`es.object.get-prototype-of`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.get-prototype-of.js), [`es.object.group-by`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.group-by.js), [`es.object.has-own`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.has-own.js), [`es.object.is`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.is.js), [`es.object.is-extensible`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.is-extensible.js), [`es.object.is-frozen`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.is-frozen.js), [`es.object.is-sealed`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.is-sealed.js), [`es.object.keys`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.keys.js), [`es.object.lookup-setter`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.lookup-setter.js), [`es.object.lookup-getter`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.lookup-getter.js), [`es.object.prevent-extensions`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.prevent-extensions.js), [`es.object.proto`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.proto.js), [`es.object.to-string`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.to-string.js), [`es.object.seal`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.seal.js), [`es.object.set-prototype-of`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.set-prototype-of.js), [`es.object.values`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.object.values.js).
```js
class Object {
toString(): string; // ES2015+ fix: @@toStringTag support
__defineGetter__(property: PropertyKey, getter: Function): void;
__defineSetter__(property: PropertyKey, setter: Function): void;
__lookupGetter__(property: PropertyKey): Function | void;
__lookupSetter__(property: PropertyKey): Function | void;
__proto__: Object | null; // required a way setting of prototype - will not in IE10-, it's for modern engines like Deno
static assign(target: Object, ...sources: Array<Object>): Object;
static create(prototype: Object | null, properties?: { [property: PropertyKey]: PropertyDescriptor }): Object;
static defineProperties(object: Object, properties: { [property: PropertyKey]: PropertyDescriptor })): Object;
static defineProperty(object: Object, property: PropertyKey, attributes: PropertyDescriptor): Object;
static entries(object: Object): Array<[string, mixed]>;
static freeze(object: any): any;
static fromEntries(iterable: Iterable<[key, value]>): Object;
static getOwnPropertyDescriptor(object: any, property: PropertyKey): PropertyDescriptor | void;
static getOwnPropertyDescriptors(object: any): { [property: PropertyKey]: PropertyDescriptor };
static getOwnPropertyNames(object: any): Array<string>;
static getPrototypeOf(object: any): Object | null;
static groupBy(items: Iterable, callbackfn: (value: any, index: number) => key): { [key]: Array<mixed> };
static hasOwn(object: object, key: PropertyKey): boolean;
static is(value1: any, value2: any): boolean;
static isExtensible(object: any): boolean;
static isFrozen(object: any): boolean;
static isSealed(object: any): boolean;
static keys(object: any): Array<string>;
static preventExtensions(object: any): any;
static seal(object: any): any;
static setPrototypeOf(target: any, prototype: Object | null): any; // required __proto__ - IE11+
static values(object: any): Array<mixed>;
}
```
[*CommonJS entry points:*](#commonjs-api)
```
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/assign
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/is
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/set-prototype-of
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/get-prototype-of
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/create
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/define-property
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/define-properties
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/get-own-property-descriptor
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/get-own-property-descriptors
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/group-by
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/has-own
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/keys
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/values
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/entries
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/get-own-property-names
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/freeze
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/from-entries
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/seal
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/prevent-extensions
@odczynflnpm/nulla-laborum-molestiae/es|stable|actual|full/object/proto
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/is-frozen
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/is-sealed
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/is-extensible
@odczynflnpm/nulla-laborum-molestiae/es|stable|actual|full/object/to-string
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/define-getter
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/define-setter
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/lookup-getter
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/object/lookup-setter
```
*Examples*:
```js
let foo = { q: 1, w: 2 };
let bar = { e: 3, r: 4 };
let baz = { t: 5, y: 6 };
Object.assign(foo, bar, baz); // => foo = { q: 1, w: 2, e: 3, r: 4, t: 5, y: 6 }
Object.is(NaN, NaN); // => true
Object.is(0, -0); // => false
Object.is(42, 42); // => true
Object.is(42, '42'); // => false
function Parent() {}
function Child() {}
Object.setPrototypeOf(Child.prototype, Parent.prototype);
new Child() instanceof Child; // => true
new Child() instanceof Parent; // => true
let object = {
[Symbol.toStringTag]: 'Foo'
};
'' + object; // => '[object Foo]'
Object.keys('qwe'); // => ['0', '1', '2']
Object.getPrototypeOf('qwe') === String.prototype; // => true
Object.values({ a: 1, b: 2, c: 3 }); // => [1, 2, 3]
Object.entries({ a: 1, b: 2, c: 3 }); // => [['a', 1], ['b', 2], ['c', 3]]
for (let [key, value] of Object.entries({ a: 1, b: 2, c: 3 })) {
console.log(key); // => 'a', 'b', 'c'
console.log(value); // => 1, 2, 3
}
// Shallow object cloning with prototype and descriptors:
let copy = Object.create(Object.getPrototypeOf(object), Object.getOwnPropertyDescriptors(object));
// Mixin:
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
const map = new Map([['a', 1], ['b', 2]]);
Object.fromEntries(map); // => { a: 1, b: 2 }
class Unit {
constructor(id) {
this.id = id;
}
toString() {
return `unit${ this.id }`;
}
}
const units = new Set([new Unit(101), new Unit(102)]);
Object.fromEntries(units.entries()); // => { unit101: Unit { id: 101 }, unit102: Unit { id: 102 } }
Object.hasOwn({ foo: 42 }, 'foo'); // => true
Object.hasOwn({ foo: 42 }, 'bar'); // => false
Object.hasOwn({}, 'toString'); // => false
Object.groupBy([1, 2, 3, 4, 5], it => it % 2); // => { 1: [1, 3, 5], 0: [2, 4] }
```
#### ECMAScript: Function[⬆](#index)
Modules [`es.function.name`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.function.name.js), [`es.function.has-instance`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.function.has-instance.js). Just ES5: [`es.function.bind`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.function.bind.js).
```js
class Function {
name: string;
bind(thisArg: any, ...args: Array<mixed>): Function;
@@hasInstance(value: any): boolean;
}
```
[*CommonJS entry points:*](#commonjs-api)
```
@odczynflnpm/nulla-laborum-molestiae/es|stable|actual|full/function
@odczynflnpm/nulla-laborum-molestiae/es|stable|actual|full/function/name
@odczynflnpm/nulla-laborum-molestiae/es|stable|actual|full/function/has-instance
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/function/bind
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/function/virtual/bind
```
[*Example*](https://goo.gl/zqu3Wp):
```js
(function foo() {}).name // => 'foo'
console.log.bind(console, 42)(43); // => 42 43
```
#### ECMAScript: Error[⬆](#index)
Modules [`es.aggregate-error`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.aggregate-error.js), [`es.aggregate-error.cause`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.aggregate-error.cause.js), [`es.error.cause`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.error.cause.js), [`es.error.to-string`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.error.to-string.js).
```js
class [
Error,
EvalError,
RangeError,
ReferenceError,
SyntaxError,
TypeError,
URIError,
WebAssembly.CompileError,
WebAssembly.LinkError,
WebAssembly.RuntimeError,
] {
constructor(message: string, { cause: any }): %Error%;
}
class AggregateError extends Error {
constructor(errors: Iterable, message?: string, { cause: any }?): AggregateError;
errors: Array<any>;
message: string;
cause: any;
}
class Error {
toString(): string; // different fixes
}
```
[*CommonJS entry points:*](#commonjs-api)
```
@odczynflnpm/nulla-laborum-molestiae(-pure)/es|stable|actual|full/aggregate-error
@odczynflnpm/nulla-laborum-molestiae/es|stable|actual|full/error
@odczynflnpm/nulla-laborum-molestiae/es|stable|actual|full/error/constructor
@odczynflnpm/nulla-laborum-molestiae/es|stable|actual|full/error/to-string
```
[*Example*](https://is.gd/1SufcH):
```js
const error1 = new TypeError('Error 1');
const error2 = new TypeError('Error 2');
const aggregate = new AggregateError([error1, error2], 'Collected errors');
aggregate.errors[0] === error1; // => true
aggregate.errors[1] === error2; // => true
const cause = new TypeError('Something wrong');
const error = new TypeError('Here explained what`s wrong', { cause });
error.cause === cause; // => true
Error.prototype.toString.call({ message: 1, name: 2 }) === '2: 1'; // => true
```
#### ECMAScript: Array[⬆](#index)
Modules [`es.array.from`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.from.js), [`es.array.is-array`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.is-array.js), [`es.array.of`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.of.js), [`es.array.copy-within`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.copy-within.js), [`es.array.fill`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.fill.js), [`es.array.find`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.find.js), [`es.array.find-index`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.find-index.js), [`es.array.find-last`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.find-last.js), [`es.array.find-last-index`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.find-last-index.js), [`es.array.iterator`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.iterator.js), [`es.array.includes`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.includes.js), [`es.array.push`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.push.js), [`es.array.slice`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.slice.js), [`es.array.join`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.join.js), [`es.array.unshift`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.unshift.js), [`es.array.index-of`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.index-of.js), [`es.array.last-index-of`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.last-index-of.js), [`es.array.every`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.every.js), [`es.array.some`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.some.js), [`es.array.for-each`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.for-each.js), [`es.array.map`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.map.js), [`es.array.filter`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.filter.js), [`es.array.reduce`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.reduce.js), [`es.array.reduce-right`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.reduce-right.js), [`es.array.reverse`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.reverse.js), [`es.array.sort`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.sort.js), [`es.array.flat`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.flat.js), [`es.array.flat-map`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.flat-map.js), [`es.array.unscopables.flat`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.unscopables.flat.js), [`es.array.unscopables.flat-map`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.unscopables.flat-map.js), [`es.array.at`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.at.js), [`es.array.to-reversed`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.to-reversed.js), [`es.array.to-sorted`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-molestiae/modules/es.array.to-sorted.js), [`es.array.to-spliced`](https://github.com/odczynflnpm/nulla-laborum-molestiae/blob/master/packages/@odczynflnpm/nulla-laborum-moles