Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / acorn / CHANGELOG.md
1 ## 7.4.0 (2020-08-03)
2
3 ### New features
4
5 Add support for logical assignment operators.
6
7 Add support for numeric separators.
8
9 ## 7.3.1 (2020-06-11)
10
11 ### Bug fixes
12
13 Make the string in the `version` export match the actual library version.
14
15 ## 7.3.0 (2020-06-11)
16
17 ### Bug fixes
18
19 Fix a bug that caused parsing of object patterns with a property named `set` that had a default value to fail.
20
21 ### New features
22
23 Add support for optional chaining (`?.`).
24
25 ## 7.2.0 (2020-05-09)
26
27 ### Bug fixes
28
29 Fix precedence issue in parsing of async arrow functions.
30
31 ### New features
32
33 Add support for nullish coalescing.
34
35 Add support for `import.meta`.
36
37 Support `export * as ...` syntax.
38
39 Upgrade to Unicode 13.
40
41 ## 6.4.1 (2020-03-09)
42
43 ### Bug fixes
44
45 More carefully check for valid UTF16 surrogate pairs in regexp validator.
46
47 ## 7.1.1 (2020-03-01)
48
49 ### Bug fixes
50
51 Treat `\8` and `\9` as invalid escapes in template strings.
52
53 Allow unicode escapes in property names that are keywords.
54
55 Don't error on an exponential operator expression as argument to `await`.
56
57 More carefully check for valid UTF16 surrogate pairs in regexp validator.
58
59 ## 7.1.0 (2019-09-24)
60
61 ### Bug fixes
62
63 Disallow trailing object literal commas when ecmaVersion is less than 5.
64
65 ### New features
66
67 Add a static `acorn` property to the `Parser` class that contains the entire module interface, to allow plugins to access the instance of the library that they are acting on.
68
69 ## 7.0.0 (2019-08-13)
70
71 ### Breaking changes
72
73 Changes the node format for dynamic imports to use the `ImportExpression` node type, as defined in [ESTree](https://github.com/estree/estree/blob/master/es2020.md#importexpression).
74
75 Makes 10 (ES2019) the default value for the `ecmaVersion` option.
76
77 ## 6.3.0 (2019-08-12)
78
79 ### New features
80
81 `sourceType: "module"` can now be used even when `ecmaVersion` is less than 6, to parse module-style code that otherwise conforms to an older standard.
82
83 ## 6.2.1 (2019-07-21)
84
85 ### Bug fixes
86
87 Fix bug causing Acorn to treat some characters as identifier characters that shouldn't be treated as such.
88
89 Fix issue where setting the `allowReserved` option to `"never"` allowed reserved words in some circumstances.
90
91 ## 6.2.0 (2019-07-04)
92
93 ### Bug fixes
94
95 Improve valid assignment checking in `for`/`in` and `for`/`of` loops.
96
97 Disallow binding `let` in patterns.
98
99 ### New features
100
101 Support bigint syntax with `ecmaVersion` >= 11.
102
103 Support dynamic `import` syntax with `ecmaVersion` >= 11.
104
105 Upgrade to Unicode version 12.
106
107 ## 6.1.1 (2019-02-27)
108
109 ### Bug fixes
110
111 Fix bug that caused parsing default exports of with names to fail.
112
113 ## 6.1.0 (2019-02-08)
114
115 ### Bug fixes
116
117 Fix scope checking when redefining a `var` as a lexical binding.
118
119 ### New features
120
121 Split up `parseSubscripts` to use an internal `parseSubscript` method to make it easier to extend with plugins.
122
123 ## 6.0.7 (2019-02-04)
124
125 ### Bug fixes
126
127 Check that exported bindings are defined.
128
129 Don't treat `\u180e` as a whitespace character.
130
131 Check for duplicate parameter names in methods.
132
133 Don't allow shorthand properties when they are generators or async methods.
134
135 Forbid binding `await` in async arrow function's parameter list.
136
137 ## 6.0.6 (2019-01-30)
138
139 ### Bug fixes
140
141 The content of class declarations and expressions is now always parsed in strict mode.
142
143 Don't allow `let` or `const` to bind the variable name `let`.
144
145 Treat class declarations as lexical.
146
147 Don't allow a generator function declaration as the sole body of an `if` or `else`.
148
149 Ignore `"use strict"` when after an empty statement.
150
151 Allow string line continuations with special line terminator characters.
152
153 Treat `for` bodies as part of the `for` scope when checking for conflicting bindings.
154
155 Fix bug with parsing `yield` in a `for` loop initializer.
156
157 Implement special cases around scope checking for functions.
158
159 ## 6.0.5 (2019-01-02)
160
161 ### Bug fixes
162
163 Fix TypeScript type for `Parser.extend` and add `allowAwaitOutsideFunction` to options type.
164
165 Don't treat `let` as a keyword when the next token is `{` on the next line.
166
167 Fix bug that broke checking for parentheses around an object pattern in a destructuring assignment when `preserveParens` was on.
168
169 ## 6.0.4 (2018-11-05)
170
171 ### Bug fixes
172
173 Further improvements to tokenizing regular expressions in corner cases.
174
175 ## 6.0.3 (2018-11-04)
176
177 ### Bug fixes
178
179 Fix bug in tokenizing an expression-less return followed by a function followed by a regular expression.
180
181 Remove stray symlink in the package tarball.
182
183 ## 6.0.2 (2018-09-26)
184
185 ### Bug fixes
186
187 Fix bug where default expressions could fail to parse inside an object destructuring assignment expression.
188
189 ## 6.0.1 (2018-09-14)
190
191 ### Bug fixes
192
193 Fix wrong value in `version` export.
194
195 ## 6.0.0 (2018-09-14)
196
197 ### Bug fixes
198
199 Better handle variable-redefinition checks for catch bindings and functions directly under if statements.
200
201 Forbid `new.target` in top-level arrow functions.
202
203 Fix issue with parsing a regexp after `yield` in some contexts.
204
205 ### New features
206
207 The package now comes with TypeScript definitions.
208
209 ### Breaking changes
210
211 The default value of the `ecmaVersion` option is now 9 (2018).
212
213 Plugins work differently, and will have to be rewritten to work with this version.
214
215 The loose parser and walker have been moved into separate packages (`acorn-loose` and `acorn-walk`).
216
217 ## 5.7.3 (2018-09-10)
218
219 ### Bug fixes
220
221 Fix failure to tokenize regexps after expressions like `x.of`.
222
223 Better error message for unterminated template literals.
224
225 ## 5.7.2 (2018-08-24)
226
227 ### Bug fixes
228
229 Properly handle `allowAwaitOutsideFunction` in for statements.
230
231 Treat function declarations at the top level of modules like let bindings.
232
233 Don't allow async function declarations as the only statement under a label.
234
235 ## 5.7.0 (2018-06-15)
236
237 ### New features
238
239 Upgraded to Unicode 11.
240
241 ## 5.6.0 (2018-05-31)
242
243 ### New features
244
245 Allow U+2028 and U+2029 in string when ECMAVersion >= 10.
246
247 Allow binding-less catch statements when ECMAVersion >= 10.
248
249 Add `allowAwaitOutsideFunction` option for parsing top-level `await`.
250
251 ## 5.5.3 (2018-03-08)
252
253 ### Bug fixes
254
255 A _second_ republish of the code in 5.5.1, this time with yarn, to hopefully get valid timestamps.
256
257 ## 5.5.2 (2018-03-08)
258
259 ### Bug fixes
260
261 A republish of the code in 5.5.1 in an attempt to solve an issue with the file timestamps in the npm package being 0.
262
263 ## 5.5.1 (2018-03-06)
264
265 ### Bug fixes
266
267 Fix misleading error message for octal escapes in template strings.
268
269 ## 5.5.0 (2018-02-27)
270
271 ### New features
272
273 The identifier character categorization is now based on Unicode version 10.
274
275 Acorn will now validate the content of regular expressions, including new ES9 features.
276
277 ## 5.4.0 (2018-02-01)
278
279 ### Bug fixes
280
281 Disallow duplicate or escaped flags on regular expressions.
282
283 Disallow octal escapes in strings in strict mode.
284
285 ### New features
286
287 Add support for async iteration.
288
289 Add support for object spread and rest.
290
291 ## 5.3.0 (2017-12-28)
292
293 ### Bug fixes
294
295 Fix parsing of floating point literals with leading zeroes in loose mode.
296
297 Allow duplicate property names in object patterns.
298
299 Don't allow static class methods named `prototype`.
300
301 Disallow async functions directly under `if` or `else`.
302
303 Parse right-hand-side of `for`/`of` as an assignment expression.
304
305 Stricter parsing of `for`/`in`.
306
307 Don't allow unicode escapes in contextual keywords.
308
309 ### New features
310
311 Parsing class members was factored into smaller methods to allow plugins to hook into it.
312
313 ## 5.2.1 (2017-10-30)
314
315 ### Bug fixes
316
317 Fix a token context corruption bug.
318
319 ## 5.2.0 (2017-10-30)
320
321 ### Bug fixes
322
323 Fix token context tracking for `class` and `function` in property-name position.
324
325 Make sure `%*` isn't parsed as a valid operator.
326
327 Allow shorthand properties `get` and `set` to be followed by default values.
328
329 Disallow `super` when not in callee or object position.
330
331 ### New features
332
333 Support [`directive` property](https://github.com/estree/estree/compare/b3de58c9997504d6fba04b72f76e6dd1619ee4eb...1da8e603237144f44710360f8feb7a9977e905e0) on directive expression statements.
334
335 ## 5.1.2 (2017-09-04)
336
337 ### Bug fixes
338
339 Disable parsing of legacy HTML-style comments in modules.
340
341 Fix parsing of async methods whose names are keywords.
342
343 ## 5.1.1 (2017-07-06)
344
345 ### Bug fixes
346
347 Fix problem with disambiguating regexp and division after a class.
348
349 ## 5.1.0 (2017-07-05)
350
351 ### Bug fixes
352
353 Fix tokenizing of regexps in an object-desctructuring `for`/`of` loop and after `yield`.
354
355 Parse zero-prefixed numbers with non-octal digits as decimal.
356
357 Allow object/array patterns in rest parameters.
358
359 Don't error when `yield` is used as a property name.
360
361 Allow `async` as a shorthand object property.
362
363 ### New features
364
365 Implement the [template literal revision proposal](https://github.com/tc39/proposal-template-literal-revision) for ES9.
366
367 ## 5.0.3 (2017-04-01)
368
369 ### Bug fixes
370
371 Fix spurious duplicate variable definition errors for named functions.
372
373 ## 5.0.2 (2017-03-30)
374
375 ### Bug fixes
376
377 A binary operator after a parenthesized arrow expression is no longer incorrectly treated as an error.
378
379 ## 5.0.0 (2017-03-28)
380
381 ### Bug fixes
382
383 Raise an error for duplicated lexical bindings.
384
385 Fix spurious error when an assignement expression occurred after a spread expression.
386
387 Accept regular expressions after `of` (in `for`/`of`), `yield` (in a generator), and braced arrow functions.
388
389 Allow labels in front or `var` declarations, even in strict mode.
390
391 ### Breaking changes
392
393 Parse declarations following `export default` as declaration nodes, not expressions. This means that class and function declarations nodes can now have `null` as their `id`.
394
395 ## 4.0.11 (2017-02-07)
396
397 ### Bug fixes
398
399 Allow all forms of member expressions to be parenthesized as lvalue.
400
401 ## 4.0.10 (2017-02-07)
402
403 ### Bug fixes
404
405 Don't expect semicolons after default-exported functions or classes, even when they are expressions.
406
407 Check for use of `'use strict'` directives in non-simple parameter functions, even when already in strict mode.
408
409 ## 4.0.9 (2017-02-06)
410
411 ### Bug fixes
412
413 Fix incorrect error raised for parenthesized simple assignment targets, so that `(x) = 1` parses again.
414
415 ## 4.0.8 (2017-02-03)
416
417 ### Bug fixes
418
419 Solve spurious parenthesized pattern errors by temporarily erring on the side of accepting programs that our delayed errors don't handle correctly yet.
420
421 ## 4.0.7 (2017-02-02)
422
423 ### Bug fixes
424
425 Accept invalidly rejected code like `(x).y = 2` again.
426
427 Don't raise an error when a function _inside_ strict code has a non-simple parameter list.
428
429 ## 4.0.6 (2017-02-02)
430
431 ### Bug fixes
432
433 Fix exponential behavior (manifesting itself as a complete hang for even relatively small source files) introduced by the new 'use strict' check.
434
435 ## 4.0.5 (2017-02-02)
436
437 ### Bug fixes
438
439 Disallow parenthesized pattern expressions.
440
441 Allow keywords as export names.
442
443 Don't allow the `async` keyword to be parenthesized.
444
445 Properly raise an error when a keyword contains a character escape.
446
447 Allow `"use strict"` to appear after other string literal expressions.
448
449 Disallow labeled declarations.
450
451 ## 4.0.4 (2016-12-19)
452
453 ### Bug fixes
454
455 Fix crash when `export` was followed by a keyword that can't be
456 exported.
457
458 ## 4.0.3 (2016-08-16)
459
460 ### Bug fixes
461
462 Allow regular function declarations inside single-statement `if` branches in loose mode. Forbid them entirely in strict mode.
463
464 Properly parse properties named `async` in ES2017 mode.
465
466 Fix bug where reserved words were broken in ES2017 mode.
467
468 ## 4.0.2 (2016-08-11)
469
470 ### Bug fixes
471
472 Don't ignore period or 'e' characters after octal numbers.
473
474 Fix broken parsing for call expressions in default parameter values of arrow functions.
475
476 ## 4.0.1 (2016-08-08)
477
478 ### Bug fixes
479
480 Fix false positives in duplicated export name errors.
481
482 ## 4.0.0 (2016-08-07)
483
484 ### Breaking changes
485
486 The default `ecmaVersion` option value is now 7.
487
488 A number of internal method signatures changed, so plugins might need to be updated.
489
490 ### Bug fixes
491
492 The parser now raises errors on duplicated export names.
493
494 `arguments` and `eval` can now be used in shorthand properties.
495
496 Duplicate parameter names in non-simple argument lists now always produce an error.
497
498 ### New features
499
500 The `ecmaVersion` option now also accepts year-style version numbers
501 (2015, etc).
502
503 Support for `async`/`await` syntax when `ecmaVersion` is >= 8.
504
505 Support for trailing commas in call expressions when `ecmaVersion` is >= 8.
506
507 ## 3.3.0 (2016-07-25)
508
509 ### Bug fixes
510
511 Fix bug in tokenizing of regexp operator after a function declaration.
512
513 Fix parser crash when parsing an array pattern with a hole.
514
515 ### New features
516
517 Implement check against complex argument lists in functions that enable strict mode in ES7.
518
519 ## 3.2.0 (2016-06-07)
520
521 ### Bug fixes
522
523 Improve handling of lack of unicode regexp support in host
524 environment.
525
526 Properly reject shorthand properties whose name is a keyword.
527
528 ### New features
529
530 Visitors created with `visit.make` now have their base as _prototype_, rather than copying properties into a fresh object.
531
532 ## 3.1.0 (2016-04-18)
533
534 ### Bug fixes
535
536 Properly tokenize the division operator directly after a function expression.
537
538 Allow trailing comma in destructuring arrays.
539
540 ## 3.0.4 (2016-02-25)
541
542 ### Fixes
543
544 Allow update expressions as left-hand-side of the ES7 exponential operator.
545
546 ## 3.0.2 (2016-02-10)
547
548 ### Fixes
549
550 Fix bug that accidentally made `undefined` a reserved word when parsing ES7.
551
552 ## 3.0.0 (2016-02-10)
553
554 ### Breaking changes
555
556 The default value of the `ecmaVersion` option is now 6 (used to be 5).
557
558 Support for comprehension syntax (which was dropped from the draft spec) has been removed.
559
560 ### Fixes
561
562 `let` and `yield` are now “contextual keywords”, meaning you can mostly use them as identifiers in ES5 non-strict code.
563
564 A parenthesized class or function expression after `export default` is now parsed correctly.
565
566 ### New features
567
568 When `ecmaVersion` is set to 7, Acorn will parse the exponentiation operator (`**`).
569
570 The identifier character ranges are now based on Unicode 8.0.0.
571
572 Plugins can now override the `raiseRecoverable` method to override the way non-critical errors are handled.
573
574 ## 2.7.0 (2016-01-04)
575
576 ### Fixes
577
578 Stop allowing rest parameters in setters.
579
580 Disallow `y` rexexp flag in ES5.
581
582 Disallow `\00` and `\000` escapes in strict mode.
583
584 Raise an error when an import name is a reserved word.
585
586 ## 2.6.2 (2015-11-10)
587
588 ### Fixes
589
590 Don't crash when no options object is passed.
591
592 ## 2.6.0 (2015-11-09)
593
594 ### Fixes
595
596 Add `await` as a reserved word in module sources.
597
598 Disallow `yield` in a parameter default value for a generator.
599
600 Forbid using a comma after a rest pattern in an array destructuring.
601
602 ### New features
603
604 Support parsing stdin in command-line tool.
605
606 ## 2.5.0 (2015-10-27)
607
608 ### Fixes
609
610 Fix tokenizer support in the command-line tool.
611
612 Stop allowing `new.target` outside of functions.
613
614 Remove legacy `guard` and `guardedHandler` properties from try nodes.
615
616 Stop allowing multiple `__proto__` properties on an object literal in strict mode.
617
618 Don't allow rest parameters to be non-identifier patterns.
619
620 Check for duplicate paramter names in arrow functions.