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.


    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


    This plugin is issued under the MIT license.

    With <3 by UXtemple.




    npm i @browserify/acorn5-object-spread

    DownloadsWeekly Downloads






    Last publish


    • substack
    • 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