pegjs/spec
David Majda da2378d887 Rewrite handling of optional parameters
Instead of testing arguments.length to see whether an optional parameter
was passed to a function, compare its value to "undefined". This
approach has two advantages:

  * It is in line with handling of default parameters in ES6.

  * Optional parameters are actually spelled out in the parameter
    list.

There is also one important disadvantage, namely that it's impossible to
pass "undefined" as an optional parameter value. This required a small
change in two tests.

Additional notes:

  * Default parameter values are set in assignments immediately
    after the function header. This reflects the fact that these
    assignments really belong to the parameter list (which is where they
    are in ES6).

  * Parameter values are checked against "void 0" in places where
    "undefined" can potentially be redefiend.
2016-04-27 13:40:23 +02:00
..
api ESLint: Set environments better 2016-01-29 14:50:38 +01:00
behavior Rewrite handling of optional parameters 2016-04-27 13:40:23 +02:00
unit Rewrite handling of optional parameters 2016-04-27 13:40:23 +02:00
vendor/jasmine Upgrade jasmine and jasmine-node 2013-08-22 09:07:19 +02:00
.eslintrc.json ESLint: Set environments better 2016-01-29 14:50:38 +01:00
helpers.js ESLint: Set environments better 2016-01-29 14:50:38 +01:00
index.html Update version to 0.9.0 2015-08-30 08:22:26 +02:00
README.md Use sentence case consistently in {spec,benchmark}/README.md headers 2014-05-10 16:40:39 +02:00

PEG.js Spec Suite

This is the PEG.js spec suite. It ensures PEG.js works correctly. All specs should always pass on all supported platforms.

Running in Node.js

All commands in the following steps need to be executed in PEG.js root directory (one level up from this one).

  1. Install all PEG.js dependencies, including development ones:

    $ npm install

  2. Execute the spec suite:

    $ make spec

  3. Watch the specs pass (or fail).

Running in the Browser

All commands in the following steps need to be executed in PEG.js root directory (one level up from this one).

  1. Make sure you have Node.js and Python installed.

  2. Install all PEG.js dependencies, including development ones:

    $ npm install

  3. Build browser version of PEG.js:

    $ make browser

  4. Serve PEG.js root directory using a web server:

    $ python -m SimpleHTTPServer

  5. Point your browser to the spec suite.

  6. Watch the specs pass (or fail).