jquery / esprima

ECMAScript parsing infrastructure for multipurpose analysis
http://esprima.org
BSD 2-Clause "Simplified" License
7.04k stars 785 forks source link

infrastructure: move unit-test to stable JSON stringify #2060

Open ljqx opened 3 years ago

ljqx commented 3 years ago

Now unit-test uses JSON.stringify to generate fixtures.

JSON.stringify is not stable across different environment (Node versions/platform).

This means, when there is a new property added to ESTree nodes, and we want to regenerate fixtures for existing unit tests, the generated fixtures would mostly be largely mismatched to the original one, which makes it hard to review.

It's better to stabilize the output, then it's easier for the dev process.

We can leverage existing libraries like https://github.com/substack/json-stable-stringify or https://github.com/epoberezkin/fast-json-stable-stringify.