Projekt

Obecné

Profil

Stáhnout (10.6 KB) Statistiky
| Větev: | Revize:
1
### 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
(1-1/4)