@browserify/acorn5-object-spread

5.0.1 • Public • Published

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.

Readme

Keywords

none

Package Sidebar

Install

npm i @browserify/acorn5-object-spread

Weekly Downloads

794

Version

5.0.1

License

MIT

Last publish

Collaborators

  • feross
  • gkatsev
  • zertosh
  • mafintosh
  • maxogden
  • thlorenz
  • terinjokes
  • jmm
  • mellowmelon
  • ashaffer88
  • balupton
  • cwmma
  • jprichardson
  • indutny
  • jryans
  • sethvincent
  • yoshuawuyts
  • ungoldman
  • ahdinosaur
  • elnounch
  • parshap
  • yerkopalma
  • forbeslindesay
  • leichtgewicht
  • garann
  • bret
  • anandthakker
  • mattdesl
  • hughsk
  • fpereira1
  • goto-bus-stop
  • bpostlethwaite
  • emilbayes
  • stevemao
  • pkrumins
  • tehshrike
  • defunctzombie
  • lukechilds
  • raynos