@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.

Dependencies (1)

Dev Dependencies (0)

    Package Sidebar

    Install

    npm i @browserify/acorn5-object-spread

    Weekly Downloads

    580

    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