CHANGELOG.md (4481B)
1### Version 4.0.0 (2018-01-28) ### 2 3- Added: Support for ES2018. The only change needed was recognizing the `s` 4 regex flag. 5- Changed: _All_ tokens returned by the `matchToToken` function now have a 6 `closed` property. It is set to `undefined` for the tokens where “closed” 7 doesn’t make sense. This means that all tokens objects have the same shape, 8 which might improve performance. 9 10These are the breaking changes: 11 12- `'/a/s'.match(jsTokens)` no longer returns `['/', 'a', '/', 's']`, but 13 `['/a/s']`. (There are of course other variations of this.) 14- Code that rely on some token objects not having the `closed` property could 15 now behave differently. 16 17 18### Version 3.0.2 (2017-06-28) ### 19 20- No code changes. Just updates to the readme. 21 22 23### Version 3.0.1 (2017-01-30) ### 24 25- Fixed: ES2015 unicode escapes with more than 6 hex digits are now matched 26 correctly. 27 28 29### Version 3.0.0 (2017-01-11) ### 30 31This release contains one breaking change, that should [improve performance in 32V8][v8-perf]: 33 34> So how can you, as a JavaScript developer, ensure that your RegExps are fast? 35> If you are not interested in hooking into RegExp internals, make sure that 36> neither the RegExp instance, nor its prototype is modified in order to get the 37> best performance: 38> 39> ```js 40> var re = /./g; 41> re.exec(''); // Fast path. 42> re.new_property = 'slow'; 43> ``` 44 45This module used to export a single regex, with `.matchToToken` bolted 46on, just like in the above example. This release changes the exports of 47the module to avoid this issue. 48 49Before: 50 51```js 52import jsTokens from "js-tokens" 53// or: 54var jsTokens = require("js-tokens") 55var matchToToken = jsTokens.matchToToken 56``` 57 58After: 59 60```js 61import jsTokens, {matchToToken} from "js-tokens" 62// or: 63var jsTokens = require("js-tokens").default 64var matchToToken = require("js-tokens").matchToToken 65``` 66 67[v8-perf]: http://v8project.blogspot.se/2017/01/speeding-up-v8-regular-expressions.html 68 69 70### Version 2.0.0 (2016-06-19) ### 71 72- Added: Support for ES2016. In other words, support for the `**` exponentiation 73 operator. 74 75These are the breaking changes: 76 77- `'**'.match(jsTokens)` no longer returns `['*', '*']`, but `['**']`. 78- `'**='.match(jsTokens)` no longer returns `['*', '*=']`, but `['**=']`. 79 80 81### Version 1.0.3 (2016-03-27) ### 82 83- Improved: Made the regex ever so slightly smaller. 84- Updated: The readme. 85 86 87### Version 1.0.2 (2015-10-18) ### 88 89- Improved: Limited npm package contents for a smaller download. Thanks to 90 @zertosh! 91 92 93### Version 1.0.1 (2015-06-20) ### 94 95- Fixed: Declared an undeclared variable. 96 97 98### Version 1.0.0 (2015-02-26) ### 99 100- Changed: Merged the 'operator' and 'punctuation' types into 'punctuator'. That 101 type is now equivalent to the Punctuator token in the ECMAScript 102 specification. (Backwards-incompatible change.) 103- Fixed: A `-` followed by a number is now correctly matched as a punctuator 104 followed by a number. It used to be matched as just a number, but there is no 105 such thing as negative number literals. (Possibly backwards-incompatible 106 change.) 107 108 109### Version 0.4.1 (2015-02-21) ### 110 111- Added: Support for the regex `u` flag. 112 113 114### Version 0.4.0 (2015-02-21) ### 115 116- Improved: `jsTokens.matchToToken` performance. 117- Added: Support for octal and binary number literals. 118- Added: Support for template strings. 119 120 121### Version 0.3.1 (2015-01-06) ### 122 123- Fixed: Support for unicode spaces. They used to be allowed in names (which is 124 very confusing), and some unicode newlines were wrongly allowed in strings and 125 regexes. 126 127 128### Version 0.3.0 (2014-12-19) ### 129 130- Changed: The `jsTokens.names` array has been replaced with the 131 `jsTokens.matchToToken` function. The capturing groups of `jsTokens` are no 132 longer part of the public API; instead use said function. See this [gist] for 133 an example. (Backwards-incompatible change.) 134- Changed: The empty string is now considered an “invalid” token, instead an 135 “empty” token (its own group). (Backwards-incompatible change.) 136- Removed: component support. (Backwards-incompatible change.) 137 138[gist]: https://gist.github.com/lydell/be49dbf80c382c473004 139 140 141### Version 0.2.0 (2014-06-19) ### 142 143- Changed: Match ES6 function arrows (`=>`) as an operator, instead of its own 144 category (“functionArrow”), for simplicity. (Backwards-incompatible change.) 145- Added: ES6 splats (`...`) are now matched as an operator (instead of three 146 punctuations). (Backwards-incompatible change.) 147 148 149### Version 0.1.0 (2014-03-08) ### 150 151- Initial release.