@ava/babel-preset-stage-4

Efficiently applies the minimum of transforms to run stage 4 code on Node.js 6, 8 and 10

Usage no npm install needed!

<script type="module">
  import avaBabelPresetStage4 from 'https://cdn.skypack.dev/@ava/babel-preset-stage-4';
</script>

README

@ava/babel-preset-stage-4 Build Status

Babel preset for use with AVA

Aspires to bring finished ECMAScript proposals to AVA's test and helper files.

Efficiently applies the minimum of transforms to run the latest JavaScript syntax on Node.js 8, 10 and 12.

Built-ins are not added or extended, so features like Proxies, Array.prototype.includes or String.prototype.padStart will only be available if the Node.js version running the tests supports it. Consult node.green for details.

Sometimes a particular feature is mostly implemented in Node.js. In that case transforms are not applied.

Not all proposals can be supported via Babel transforms, see below for details. Babel may require "syntax" plugins in order to parse certain files. These plugins should be applied explicitly since this preset may not include them.

Install

$ npm install --save @ava/babel-preset-stage-4

Usage

Add @ava/stage-4 to your Babel presets.

Options

For more information on setting options for a preset, refer to the preset options documentation.

modules

By default this preset transform ES2015 modules to CommonJS. Set to false to disable this behavior. Other values are ignored.

Supported proposals

Proposal Supported
Array.prototype.includes No
Object.values/Object.entries No
String padding No
Object.getOwnPropertyDescriptors No
Trailing commas in function parameter lists and calls Yes
Shared memory and atomics No
Lifting template literal restriction No
s (dotAll) flag for regular expressions Yes
RegExp named capture groups No
RegExp Lookbehind Assertions No
RegExp Unicode Property Escapes No
Promise.prototype.finally No
Asynchronous Iteration Partially
Optional catch binding Yes
JSON superset No
Symbol.prototype.description No
Function.prototype.toString revision No
Object.fromEntries No
Well-formed JSON.stringify No
String.prototype.{trimStart,trimEnd} No
Array.prototype.{flat,flatMap} No
String.prototype.matchAll No
import() Yes
Promise.allSettled No

@babel/plugin-proposal-async-generator-functions relies on Symbol.asyncIterator, which AVA does not polyfill for you.