# Compiler Changes ### v4,9.0 - Add better interoperability with native custom elements https://github.com/riot/riot/issues/2864 `slot` attributes will be no longer removed ### v4,8.5 - Fix https://github.com/riot/riot/issues/2859 ### v4,8.4 - Fix https://github.com/riot/riot/issues/2858 ### v4.8.3 - Fix support for [Edge](https://github.com/riot/riot/issues/2855) and [Node 8](https://github.com/riot/riot/issues/2850) ### v4.8.2 - Fix make sure that all the text expressions mixed with comments are properly rendered ### v4.8.1 - Fix improve the solution for https://github.com/riot/riot/issues/2836 ### v4.8.0 - Add support for HTML comments generation via `comments: true` option - Fix https://github.com/riot/riot/issues/2836 ### v4.7.0 - Add performance improvement avoiding the use of redundant static attributes expressions binding - Fix false positive "out of root html" checks in case of html comments ### v4.6.2 - Update `@riotjs/parser` version ### v4.6.1 - Fix parsing issues due to false positive matches - related to https://github.com/riot/compiler/issues/130 ### v4.6.0 - Add support for ES2020 `import()` expressions ### v4.5.6 - Fix https://github.com/riot/compiler/issues/130 ### v4.5.5 - Add support for shorthand object properties ### v4.5.4 - Fix HTML entities encoding https://github.com/riot/riot/issues/2791 ### v4.5.3 - Fix wrong arguments compilation in expression attributes https://github.com/riot/riot/issues/2788 ### v4.5.2 - Fix avoid to set the `expr` attribute as redundant expressions ### v4.5.1 - Remove unecessary code ### v4.5.0 - Fix https://github.com/riot/riot/issues/2761 - Update the text expressions handling removing trailing white spaces ### v4.4.3 - Fix merge https://github.com/riot/compiler/pull/128 ### v4.4.2 - Fix make sure the `name` slot attributes will not be used to extend the parent scope ### v4.4.1 - Fix bundle the esmodules directly into the cjs bundle ### v4.4.0 - Add allow the use of attributes on slot tags ### v4.3.12 - Fix https://github.com/riot/riot/issues/2760 ### v4.3.11 - Fix https://github.com/riot/compiler/issues/127 - Fix https://github.com/riot/compiler/issues/126 - Improve the code maintainability refactoring big files into smaller ones ### v4.3.10 - Fix https://github.com/riot/riot/issues/2753 - Fix https://github.com/riot/riot/issues/2748 - Update acorn to v7.0.0 ### v4.3.9 - Fix https://github.com/riot/compiler/issues/125 - Fix https://github.com/riot/compiler/issues/124 ### v4.3.8 - Fix make sure that the `createExpression` internal function receives always all its arguments ### v4.3.7 - Fix https://github.com/riot/compiler/issues/121 ### v4.3.6 - Fix https://github.com/riot/compiler/issues/122 - Fix https://github.com/riot/compiler/pull/118 ### v4.3.5 - Fix backslashed unicode css properties ### v4.3.4 - Fix escape backslashes in css strings https://github.com/riot/riot/issues/2726 ### v4.3.3 - Fix https://github.com/riot/compiler/issues/119 - Fix https://github.com/riot/riot/issues/2726 ### v4.3.2 - Fix void tags will be automatically corrected for example: ```html ``` Will be transfromed to ```html ``` ### v4.3.1 - Fix https://github.com/riot/riot/issues/2719 - Fix https://github.com/riot/riot/issues/2723 ### v4.3.0 - Add support for dynamic import ### v4.2.6 - Fix expression parts issues https://github.com/riot/riot/issues/2701 ### v4.2.5 - Fix https://github.com/riot/riot/issues/2700 replacing the `esprima` parser with `acorn` ### v4.2.4 - Fix attributes on custom tags having `if` or `each` directives ### v4.2.3 - Update `@riotjs/dom-bindings` using v4.0.0 - Update npm dependencies ### v4.2.2 - Fix [riot#2691](https://github.com/riot/riot/issues/2691) ### v4.2.1 - Fix css generation with `@media` queries ### v4.2.0 - Add support for `` shortcut expressions - Fix spread expressions issue [riot/2679](https://github.com/riot/riot/issues/2679) ### v4.1.1 - Fix commonjs imports ### v4.1.0 - Add support for the slot attribute binding ### v4.0.4 - Fix avoid removing selector attributes twice on custom tags ### v4.0.3 - Fix attributes handling on custom children nodes [riot#2680](https://github.com/riot/riot/issues/2680) ### v4.0.2 - Fix spread operator on each directives [riot#2679](https://github.com/riot/riot/issues/2679) ### v4.0.1 - Fix attributes mixed with expressions [riot#2681](https://github.com/riot/riot/issues/2681) ### v4.0.0 - Complete rewrite **not backward compatible** - New output compatible only for Riot.js 4.0.0 - Add better sourcemaps generation - Add the `@riotjs/parser` fixing odd issues with regex like [#114](https://github.com/riot/compiler/issues/114) - Improve the code generation strategy preferring AST to regex parsing - Remove all the preprocessors from the core in favor of `registerPreprocessor` and `registerPostprocessor` instead ### v4.0.0-beta.5 - Fix https://github.com/riot/riot/issues/2669 ### v4.0.0-beta.3 - Fix https://github.com/riot/compiler/issues/115 ### v4.0.0-beta.2 - Add support for multiple expressions on the same attribute node ### v4.0.0-beta.1 - Update rename the `tag` property `exports` ### v4.0.0-alpha.20 - Fix handle escaped chars ### v4.0.0-alpha.19 - Fix bug in nodes with a single expression ### v4.0.0-alpha.18 - Add the `name` key to the tag exports - Fix self-closed tag bindings ### v4.0.0-alpha.17 - Remove unused dev dependencies ### v4.0.0-alpha.16 - *Breaking change*: make the compiler API synchronous ### v4.0.0-alpha.15 - Fix slots root nodes handling ### v4.0.0-alpha.14 - Add sourcemap tests for babel preprocessor - Update handling of multiple line text expressions, from template literal to array - Update output format ### v4.0.0-alpha.13 - Fix sourcemap for the multiple text expressions - Check make sure that `slot` tags will not be considered custom tags ### v4.0.0-alpha.12 - Fix sourcemap `sourcesContent` property - Update sourcemap filename ### v4.0.0-alpha.11 - Fix sourcemap generation for the `if` and `each` tag bindings ### v4.0.0-alpha.10 - Update enhance sourcemaps generation - Change second arguments for the pre/post processors. The `meta` object will contain info about the current compilation ### v4.0.0-alpha.9 - Fix move `recast` into the package dependencies ### v4.0.0-alpha.8 - Enhance the source map generation - Improve performance - Update npm dependencies ### v4.0.0-alpha.7 - Add support for the scoped css - Update the Tag bindings output to support dynamic tags ### v4.0.0-alpha.6 - Fix issue with the object expressions scoping ### v4.0.0-alpha.5 - Update the tag bindings API to get the component implementation via function ### v4.0.0-alpha.4 - Fix issues related to the member expressions traversal and the scope ### v4.0.0-alpha.3 - Fix issue with custom tags and no slots ### v4.0.0-alpha.2 - Add support for the spread attributes `` - Add the `tagName` to the compiler options in runtime - Fix the options were not passed to the postprocessor ### v4.0.0-alpha.1 - New complete rewrite from scratch - Change npm name from `riot-compiler` to `@riotjs/compiler` - First alpha release not backward compatible ### v3.5.2 - Fix es6 dynamic imports https://github.com/riot/riot/issues/2641 ### v3.5.1 - Fix try importing `@babel/core` first and then fallback to `babel-core` for the `es6` parser ### v3.5.0 - Add support for Babel 7 ### v3.4.0 - Add inline sourcemap support via `sourcemap='inline'` option ### v3.3.1 - Improve the sourcemap generation adding the `sourceContent` key ### v3.3.0 - Add initial experimental sourcemaps support via `sourcemap: true` option ### v3.2.6 - Fix #105 - Fix #104 ### v3.2.5 - Update dependencies and refactor some internal code avoiding bitwise operators - Fix coffeescript parser require https://github.com/riot/compiler/pull/102 ### v3.2.4 - Fix [riot#2369](https://github.com/riot/riot/issues/2369) : Possible bug involving compilation of tags containing regex. - Using the `skip-regex` function from npm for sharing bwteen modules (at future). - Using the `jsSplitter` function for safer replacement of JS code, part of the next compiler. ### v3.2.3 - Fixes various issues with literal regexes. ### v3.1.4 - Fix avoid the `filename` option for the babel-standalone parser ### v3.1.3 - Fix babel in browser runtime parser https://github.com/riot/examples/issues/51 ### v3.1.2 - Fix [riot#2210](https://github.com/riot/riot/issues/2210) : Style tag get stripped from riot tag even if it's in a javascript string. - Updated devDependencies. ### v3.1.0 - Adds support for css @apply rule: now ScopedCSS parser can handle it properly ### v3.0.0 - Deprecate old `babel` support, now the `es6` parser will use Babel 6 by default - Change css always scoped by default - Fix all the `value` attributes using expressions will be output as `riot-value` to [riot#1957](https://github.com/riot/riot/issues/1957) ### v2.5.5 - Fix to erroneous version number in the package.json, v2.5.4 was released before. - Removed unuseful files from the npm package. - Updated credits in package.json - Updated devDependencies, skip ESLint in CI test for node v0.12 - BuGless-hack for [riot#1966](https://github.com/riot/riot/issues/1966) - You can use `<-/>` to signal the end of the html if your html is ending with an expression. ### v2.5.4 - Fix #68 : SASS inside Pug template gives Invalid CSS. - Added parser for [bublé](https://buble.surge.sh) as `buble` in the browser. Option `modules` is `false` in all versions. - Added parser for [bublé](https://buble.surge.sh) as `buble`. - Added support for es6 `import` statements. Thanks to @kuashe! - Related to [riot#1715](https://github.com/riot/riot/issues/1715), [riot#1784](https://github.com/riot/riot/issues/1784), and [riot#1864](https://github.com/riot/riot/issues/1864). ### v2.5.3 - Fix #73 : resolveModuleSource must be a function - Option removed from the default Babel options. - Updated node.js to 4.4 in the Travis environment. - Downgraded ESLint to 2.x for using with node v0.12.x ### v2.5.2 - Fix #72: `undefined` is not a function when evaluating `parsers._req`. - Updated node versions for travis, including v5.x ### v2.4.1 - Add the `pug` parser (it will replace completely `jade` in the next major release) - Add the possibility to pass custom parsers options directly via the `compiler.compile` method through the `parserOptions: {js: {}, template: {}, style: {}}` key [more info](https://github.com/riot/compiler/issues/64) - Fix un-escape parser options in html [more info](https://github.com/riot/compiler/issues/63) ### v2.3.23 - The parsers are moved to its own directory in the node version. The load is on first use. - Fix [riot#1325](https://github.com/riot/riot/issues/1325) : Gulp + Browserify + Babelify + type="es6" error. - Fix [riot#1342](https://github.com/riot/riot/issues/1342), [riot#1636](https://github.com/riot/riot/issues/1636) and request from [dwyl/learn-riot#8](https://github.com/dwyl/learn-riot/issues/8) : Server-Side Rendered Page Fails W3C Check. The new `data-is` attribute is used for scoped styles in addition to `riot-tag` (the later will be removed in compiler v3.x) - The keyword `defer` in `