5.0.1 • Published 6 years ago

@browserify/acorn5-object-spread v5.0.1

Weekly downloads
753
License
MIT
Repository
github
Last release
6 years ago

Spread and rest properties support in acorn 5

NPM version

This is plugin for Acorn - a tiny, fast JavaScript parser, written completely in JavaScript.

Fork of https://github.com/adrianheine/acorn5-object-spread to support old versions of node until acorn adopts rest-spread

It implements support for spread and rest properties as defined in the stage 3 proposal Object Rest/Spread Properties for ECMAScript.

Usage

You can use this module directly in order to get an Acorn instance with the plugin installed:

var acorn = require('@browserify/acorn5-object-spread-es3');

Or you can use inject.js for injecting the plugin into your own version of Acorn like this:

var acorn = require('@browserify/acorn5-object-spread/inject')(require('./custom-acorn'));

Then, use the plugins option whenever you need to support object spread or rest while parsing:

var ast = acorn.parse(code, {
  plugins: { objectSpread: true }
});

Differences to acorn-object-rest-spread

acorn-object-rest-spread is another acorn plugin implementing the same spec. There are some differences, though:

  • acorn-object-rest-spread overwrites acorn's parseObj with a modified copy from acorn 4, so that an acorn instance with that plugin cannot for example parse ({async, foo}) and wrongly complains about duplicate property names in patterns.
  • acorn-object-rest-spread emits SpreadElements with a non-standard value property
  • acorn-object-rest-spread emits SpreadElements in arrow function argument patterns and nested object patterns were it should emit RestElements
  • acorn-object-rest-spread doesn't check for invalid trailing commas in rest properties

License

This plugin is issued under the MIT license.

With <3 by UXtemple.