Projekt

Obecné

Profil

Stáhnout (10.6 KB) Statistiky
| Větev: | Revize:
1 3a515b92 cagy
### v1.0.1 [[code][c1.0.1], [diff][d1.0.1]]
2
3
[c1.0.1]: https://github.com/json5/json5/tree/v1.0.1
4
[d1.0.1]: https://github.com/json5/json5/compare/v1.0.0...v1.0.1
5
6
This release includes a bug fix and minor change.
7
8
- Fix: `parse` throws on unclosed objects and arrays.
9
10
- New: `package.json5` has been removed until an easier way to keep it in sync
11
  with `package.json` is found.
12
13
14
### v1.0.0 [[code][c1.0.0], [diff][d1.0.0]]
15
16
[c1.0.0]: https://github.com/json5/json5/tree/v1.0.0
17
[d1.0.0]: https://github.com/json5/json5/compare/v0.5.1...v1.0.0
18
19
This release includes major internal changes and public API enhancements.
20
21
- **Major** JSON5 officially supports Node.js v4 and later. Support for Node.js
22
  v0.10 and v0.12 have been dropped.
23
24
- New: Unicode property names and Unicode escapes in property names are
25
  supported. ([#1])
26
27
- New: `stringify` outputs trailing commas in objects and arrays when a `space`
28
  option is provided. ([#66])
29
30
- New: JSON5 allows line and paragraph separator characters (U+2028 and U+2029)
31
  in strings in order to be compatible with JSON. However, ES5 does not allow
32
  these characters in strings, so JSON5 gives a warning when they are parsed and
33
  escapes them when they are stringified. ([#70])
34
35
- New: `stringify` accepts an options object as its second argument. The
36
  supported options are `replacer`, `space`, and a new `quote` option that
37
  specifies the quote character used in strings. ([#71])
38
39
- New: The CLI supports STDIN and STDOUT and adds `--out-file`, `--space`, and
40
  `--validate` options. See `json5 --help` for more information. ([#72], [#84],
41
  and [#108])
42
43
- New: In addition to the white space characters space `\t`, `\v`, `\f`, `\n`,
44
  `\r`, and `\xA0`, the additional white space characters `\u2028`, `\u2029`,
45
  and all other characters in the Space Separator Unicode category are allowed.
46
47
- New: In addition to the character escapes `\'`, `\"`, `\\`, `\b`, `\f`, `\n`,
48
  `\r`, and `\t`, the additional character escapes `\v` and `\0`, hexadecimal
49
  escapes like `\x0F`, and unnecessary escapes like `\a` are allowed in string
50
  values and string property names.
51
52
- New: `stringify` outputs strings with single quotes by default but
53
  intelligently uses double quotes if there are more single quotes than double
54
  quotes inside the string. (i.e. `stringify('Stay here.')` outputs
55
  `'Stay here.'` while `stringify('Let\'s go.')` outputs `"Let's go."`)
56
57
- New: When a character is not allowed in a string, `stringify` outputs a
58
  character escape like `\t` when available, a hexadecimal escape like `\x0F`
59
  when the Unicode code point is less than 256, or a Unicode character escape
60
  like `\u01FF`, in that order.
61
62
- New: `stringify` checks for a `toJSON5` method on objects and, if it exists,
63
  stringifies its return value instead of the object. `toJSON5` overrides
64
  `toJSON` if they both exist.
65
66
- New: To `require` or `import` JSON5 files, use `require('json5/lib/register')`
67
  or `import 'json5/lib/register'`. Previous versions used `json5/lib/require`,
68
  which still exists for backward compatibility but is deprecated and will give
69
  a warning.
70
71
- New: To use JSON5 in browsers, use the file at `dist/index.js` or
72
  `https://unpkg.com/json5@^1.0.0`.
73
74
- Fix: `stringify` properly outputs `Infinity` and `NaN`. ([#67])
75
76
- Fix: `isWord` no longer becomes a property of `JSON5` after calling
77
  `stringify`. ([#68] and [#89])
78
79
- Fix: `stringify` no longer throws when an object does not have a `prototype`.
80
  ([#154])
81
82
- Fix: `stringify` properly handles the `key` argument of `toJSON(key)` methods.
83
  `toJSON5(key)` follows this pattern.
84
85
- Fix: `stringify` accepts `Number` and `String` objects as its `space`
86
  argument.
87
88
- Fix: In addition to a function, `stringify` also accepts an array of keys to
89
  include in the output as its `replacer` argument. Numbers, `Number` objects,
90
  and `String` objects will be converted to a string if they are given as array
91
  values.
92
93
94
### v0.5.1 [[code][c0.5.1], [diff][d0.5.1]]
95
96
[c0.5.1]: https://github.com/json5/json5/tree/v0.5.1
97
[d0.5.1]: https://github.com/json5/json5/compare/v0.5.0...v0.5.1
98
99
This release includes a minor fix for indentations when stringifying empty
100
arrays.
101
102
- Fix: Indents no longer appear in empty arrays when stringified. ([#134])
103
104
105
### v0.5.0 [[code][c0.5.0], [diff][d0.5.0]]
106
107
[c0.5.0]: https://github.com/json5/json5/tree/v0.5.0
108
[d0.5.0]: https://github.com/json5/json5/compare/v0.4.0...v0.5.0
109
110
This release includes major internal changes and public API enhancements.
111
112
- **Major:** JSON5 officially supports Node.js v4 LTS and v5. Support for
113
  Node.js v0.6 and v0.8 have been dropped, while support for v0.10 and v0.12
114
  remain.
115
116
- Fix: YUI Compressor no longer fails when compressing json5.js. ([#97])
117
118
- New: `parse` and the CLI provide line and column numbers when displaying error
119
  messages. ([#101]; awesome work by [@amb26].)
120
121
122
### v0.4.0 [[code][c0.4.0], [diff][d0.4.0]]
123
124
[c0.4.0]: https://github.com/json5/json5/tree/v0.4.0
125
[d0.4.0]: https://github.com/json5/json5/compare/v0.2.0...v0.4.0
126
127
Note that v0.3.0 was tagged, but never published to npm, so this v0.4.0
128
changelog entry includes v0.3.0 features.
129
130
This is a massive release that adds `stringify` support, among other things.
131
132
- **Major:** `JSON5.stringify()` now exists!
133
  This method is analogous to the native `JSON.stringify()`;
134
  it just avoids quoting keys where possible.
135
  See the [usage documentation](./README.md#usage) for more.
136
  ([#32]; huge thanks and props [@aeisenberg]!)
137
138
- New: `NaN` and `-NaN` are now allowed number literals.
139
  ([#30]; thanks [@rowanhill].)
140
141
- New: Duplicate object keys are now allowed; the last value is used.
142
  This is the same behavior as JSON. ([#57]; thanks [@jordanbtucker].)
143
144
- Fix: Properly handle various whitespace and newline cases now.
145
  E.g. JSON5 now properly supports escaped CR and CRLF newlines in strings,
146
  and JSON5 now accepts the same whitespace as JSON (stricter than ES5).
147
  ([#58], [#60], and [#63]; thanks [@jordanbtucker].)
148
149
- New: Negative hexadecimal numbers (e.g. `-0xC8`) are allowed again.
150
  (They were disallowed in v0.2.0; see below.)
151
  It turns out they *are* valid in ES5, so JSON5 supports them now too.
152
  ([#36]; thanks [@jordanbtucker]!)
153
154
155
### v0.2.0 [[code][c0.2.0], [diff][d0.2.0]]
156
157
[c0.2.0]: https://github.com/json5/json5/tree/v0.2.0
158
[d0.2.0]: https://github.com/json5/json5/compare/v0.1.0...v0.2.0
159
160
This release fixes some bugs and adds some more utility features to help you
161
express data more easily:
162
163
- **Breaking:** Negative hexadecimal numbers (e.g. `-0xC8`) are rejected now.
164
  While V8 (e.g. Chrome and Node) supported them, it turns out they're invalid
165
  in ES5. This has been [fixed in V8][v8-hex-fix] (and by extension, Chrome
166
  and Node), so JSON5 officially rejects them now, too. ([#36])
167
168
- New: Trailing decimal points in decimal numbers are allowed again.
169
  (They were disallowed in v0.1.0; see below.)
170
  They're allowed by ES5, and differentiating between integers and floats may
171
  make sense on some platforms. ([#16]; thanks [@Midar].)
172
173
- New: `Infinity` and `-Infinity` are now allowed number literals.
174
  ([#30]; thanks [@pepkin88].)
175
176
- New: Plus signs (`+`) in front of numbers are now allowed, since it can
177
  be helpful in some contexts to explicitly mark numbers as positive.
178
  (E.g. when a property represents changes or deltas.)
179
180
- Fix: unescaped newlines in strings are rejected now.
181
  ([#24]; thanks [@Midar].)
182
183
184
### v0.1.0 [[code][c0.1.0], [diff][d0.1.0]]
185
186
[c0.1.0]: https://github.com/json5/json5/tree/v0.1.0
187
[d0.1.0]: https://github.com/json5/json5/compare/v0.0.1...v0.1.0
188
189
This release tightens JSON5 support and adds helpful utility features:
190
191
- New: Support hexadecimal numbers. (Thanks [@MaxNanasy].)
192
193
- Fix: Reject octal numbers properly now. Previously, they were accepted but
194
  improperly parsed as base-10 numbers. (Thanks [@MaxNanasy].)
195
196
- **Breaking:** Reject "noctal" numbers now (base-10 numbers that begin with a
197
  leading zero). These are disallowed by both JSON5 and JSON, as well as by
198
  ES5's strict mode. (Thanks [@MaxNanasy].)
199
200
- New: Support leading decimal points in decimal numbers.
201
  (Thanks [@MaxNanasy].)
202
203
- **Breaking:** Reject trailing decimal points in decimal numbers now. These
204
  are disallowed by both JSON5 and JSON. (Thanks [@MaxNanasy].)
205
206
- **Breaking:** Reject omitted elements in arrays now. These are disallowed by
207
  both JSON5 and JSON.
208
209
- Fix: Throw proper `SyntaxError` instances on errors now.
210
211
- New: Add Node.js `require()` hook. Register via `json5/lib/require`.
212
213
- New: Add Node.js `json5` executable to compile JSON5 files to JSON.
214
215
216
### v0.0.1 [[code][c0.0.1], [diff][d0.0.1]]
217
218
[c0.0.1]: https://github.com/json5/json5/tree/v0.0.1
219
[d0.0.1]: https://github.com/json5/json5/compare/v0.0.0...v0.0.1
220
221
This was the first implementation of this JSON5 parser.
222
223
- Support unquoted object keys, including reserved words. Unicode characters
224
  and escape sequences sequences aren't yet supported.
225
226
- Support single-quoted strings.
227
228
- Support multi-line strings.
229
230
- Support trailing commas in arrays and objects.
231
232
- Support comments, both inline and block.
233
234
235
### v0.0.0 [[code](https://github.com/json5/json5/tree/v0.0.0)]
236
237
Let's consider this to be Douglas Crockford's original [json_parse.js] — a
238
parser for the regular JSON format.
239
240
241
[json_parse.js]: https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js
242
[v8-hex-fix]: http://code.google.com/p/v8/issues/detail?id=2240
243
244
[@MaxNanasy]: https://github.com/MaxNanasy
245
[@Midar]: https://github.com/Midar
246
[@pepkin88]: https://github.com/pepkin88
247
[@rowanhill]: https://github.com/rowanhill
248
[@aeisenberg]: https://github.com/aeisenberg
249
[@jordanbtucker]: https://github.com/jordanbtucker
250
[@amb26]: https://github.com/amb26
251
252
[#1]: https://github.com/json5/json5/issues/1
253
[#16]: https://github.com/json5/json5/issues/16
254
[#24]: https://github.com/json5/json5/issues/24
255
[#30]: https://github.com/json5/json5/issues/30
256
[#32]: https://github.com/json5/json5/issues/32
257
[#36]: https://github.com/json5/json5/issues/36
258
[#57]: https://github.com/json5/json5/issues/57
259
[#58]: https://github.com/json5/json5/pull/58
260
[#60]: https://github.com/json5/json5/pull/60
261
[#63]: https://github.com/json5/json5/pull/63
262
[#66]: https://github.com/json5/json5/issues/66
263
[#67]: https://github.com/json5/json5/issues/67
264
[#68]: https://github.com/json5/json5/issues/68
265
[#70]: https://github.com/json5/json5/issues/70
266
[#71]: https://github.com/json5/json5/issues/71
267
[#72]: https://github.com/json5/json5/issues/72
268
[#84]: https://github.com/json5/json5/pull/84
269
[#89]: https://github.com/json5/json5/pull/89
270
[#97]: https://github.com/json5/json5/pull/97
271
[#101]: https://github.com/json5/json5/pull/101
272
[#108]: https://github.com/json5/json5/pull/108
273
[#134]: https://github.com/json5/json5/pull/134
274
[#154]: https://github.com/json5/json5/issues/154