# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

<a name="0.7.0"></a>
# 0.7.0 (2020-05-08)

### Features:

* **custom-attr:** add no multi bindings cfg ([4daa950](https://github.com/aurelia/aurelia/commit/4daa950))


### Refactorings:

* ***:** rename alias to aliasto for readability and consistency ([f3904fe](https://github.com/aurelia/aurelia/commit/f3904fe))

<a name="0.6.0"></a>
# 0.6.0 (2019-12-18)

### Refactorings:

* **template-compiler:** merge RuntimeCompilationResources into ResourceModel ([43f09d3](https://github.com/aurelia/aurelia/commit/43f09d3))

<a name="0.5.0"></a>
# 0.5.0 (2019-11-15)

**Note:** Version bump only for package @aurelia/jit

<a name="0.4.0"></a>
# 0.4.0 (2019-10-26)

### Features:

* **alias:** Add convention add tests fix conv log ([19399af](https://github.com/aurelia/aurelia/commit/19399af))
* **i18n:** core translation service and related auxiliary features ([c3d4a85](https://github.com/aurelia/aurelia/commit/c3d4a85))
* **i18n:** support for `t=${key}`, `t=[attr]key` ([5f2fdfd](https://github.com/aurelia/aurelia/commit/5f2fdfd))
* **jit:** default to attr name on empty binding command value ([79a4a5f](https://github.com/aurelia/aurelia/commit/79a4a5f))
* **jit:** export Char enum ([b4f017c](https://github.com/aurelia/aurelia/commit/b4f017c))
* **kernel:** add performance profiler ([32c2a66](https://github.com/aurelia/aurelia/commit/32c2a66))
* **jit:** expose individual registrations and configs ([0ce71e2](https://github.com/aurelia/aurelia/commit/0ce71e2))
* **all:** add friendly names to all interface symbols ([57876db](https://github.com/aurelia/aurelia/commit/57876db))
* **jit:** expose parseExpression method ([f47d335](https://github.com/aurelia/aurelia/commit/f47d335))
* **template-compiler:** implement surrogate instructions ([fa65d6a](https://github.com/aurelia/aurelia/commit/fa65d6a))
* **all:** implement dynamicOptions decorator and convention ([b5893ef](https://github.com/aurelia/aurelia/commit/b5893ef))
* **jit:** generalize the 'for' binding command ([93a8edb](https://github.com/aurelia/aurelia/commit/93a8edb))
* **jit:** initial element-binder implementation ([aa002d8](https://github.com/aurelia/aurelia/commit/aa002d8))
* **semantic-model:** trace compile methods ([9904da5](https://github.com/aurelia/aurelia/commit/9904da5))
* **replaceable:** allow one level of parent scope traversal ([8c34244](https://github.com/aurelia/aurelia/commit/8c34244))
* **jit:** implement replaceable compilation ([59c86b7](https://github.com/aurelia/aurelia/commit/59c86b7))
* **jit:** initial implementation of configurable syntax-interpreter ([bc3ff3c](https://github.com/aurelia/aurelia/commit/bc3ff3c))
* **aurelia:** add startup api shorthand ([a898049](https://github.com/aurelia/aurelia/commit/a898049))
* **customElement:** make build and instructions properties optional ([8f70dcf](https://github.com/aurelia/aurelia/commit/8f70dcf))


### Bug Fixes:

* **binding-command:** default to null type ([8900699](https://github.com/aurelia/aurelia/commit/8900699))
* **custom-attr:** define parsing behavior clearer ([32e7ec8](https://github.com/aurelia/aurelia/commit/32e7ec8))
* **let:** to-view-model -> to-binding-context ([a201a32](https://github.com/aurelia/aurelia/commit/a201a32))
* **bindable-primary:** cleanup debug code, add more tests ([f812a55](https://github.com/aurelia/aurelia/commit/f812a55))
* **ref:** add ref binding cmd registration ([e69966a](https://github.com/aurelia/aurelia/commit/e69966a))
* **harmony-compilation:** tweaks flags, revert cond ([dd403bd](https://github.com/aurelia/aurelia/commit/dd403bd))
* **binding-language:** add IgnoreCustomAttr to binding type ([02b6903](https://github.com/aurelia/aurelia/commit/02b6903))
* **binding-language:** allow binding command to take precedence over custom attr ([bc6dcfc](https://github.com/aurelia/aurelia/commit/bc6dcfc))
* **i18n:** corrected indentation ([7b5a6f3](https://github.com/aurelia/aurelia/commit/7b5a6f3))
* **binding-command:** export getTarget ([6d316cc](https://github.com/aurelia/aurelia/commit/6d316cc))
* **jit:** fix camelcasing of html attributes ([f7b3eaf](https://github.com/aurelia/aurelia/commit/f7b3eaf))
* **resource-model:** don't camelcase attribute names ([3f251e6](https://github.com/aurelia/aurelia/commit/3f251e6))
* **replaceable:** more scoping fixes, enable most of bigopon's tests ([0daea3a](https://github.com/aurelia/aurelia/commit/0daea3a))
* **debug:** add missing error codes and fix a few reporting issues ([25148d0](https://github.com/aurelia/aurelia/commit/25148d0))
* **expression-parser:** handle trailing comma correctly ([23e4c0c](https://github.com/aurelia/aurelia/commit/23e4c0c))
* **attribute-pattern:** reset pattern index to 0 for each matched state ([045e2d7](https://github.com/aurelia/aurelia/commit/045e2d7))
* **template-binder:** correctly traverse not-compilable node types ([0a2a392](https://github.com/aurelia/aurelia/commit/0a2a392))
* **template-binder:** correctly traverse not-compilable node types ([0eaeccc](https://github.com/aurelia/aurelia/commit/0eaeccc))
* **template-factory:** fix an edge case with whitespace around the element ([1cb386e](https://github.com/aurelia/aurelia/commit/1cb386e))
* **template-factory:** revert multiple node thing due to regression ([ab51946](https://github.com/aurelia/aurelia/commit/ab51946))
* **template-factory:** correctly handle multiple node scenario ([71c774d](https://github.com/aurelia/aurelia/commit/71c774d))
* **template-definition:** accept any node/template type ([6111e1e](https://github.com/aurelia/aurelia/commit/6111e1e))
* **template-binder:** fix some exotic replace-part placements by tracking markers ([9655daa](https://github.com/aurelia/aurelia/commit/9655daa))
* **template-binder:** fix let again ([99605f4](https://github.com/aurelia/aurelia/commit/99605f4))
* **template-binder:** get replaceable to work properly ([63c320e](https://github.com/aurelia/aurelia/commit/63c320e))
* **template-compiler:** use correct parsing rules for non-bound attributes and remove template controllers ([8128a3a](https://github.com/aurelia/aurelia/commit/8128a3a))
* **semantic-model:** throw on unknown binding command ([354523e](https://github.com/aurelia/aurelia/commit/354523e))
* **attribute-pattern:** make multi patterns work ([4c62000](https://github.com/aurelia/aurelia/commit/4c62000))
* **containerless:** replace element with marker for proper containerless behavior ([75bcaa5](https://github.com/aurelia/aurelia/commit/75bcaa5))
* **dom:** ensure renderLocation keeps the correct parent and is removed with the rest of the fragment nodes ([43005e7](https://github.com/aurelia/aurelia/commit/43005e7))


### Performance Improvements:

* **all:** remove tracer/profiler from ts source ([cc9c1fc](https://github.com/aurelia/aurelia/commit/cc9c1fc))
* **all): add sideEffect:** false for better tree shaking ([59b5e55](https://github.com/aurelia/aurelia/commit/59b5e55))
* **resource-model:** resolve info lazily ([42c12cc](https://github.com/aurelia/aurelia/commit/42c12cc))
* **template-binder:** traverse via nextSibling instead of using array ([7f05167](https://github.com/aurelia/aurelia/commit/7f05167))
* **template-compiler:** create fewer variables and arrays ([1ad7e9c](https://github.com/aurelia/aurelia/commit/1ad7e9c))
* **template-compiler:** prevent the same template from getting compiled multiple times ([5bbece9](https://github.com/aurelia/aurelia/commit/5bbece9))
* **all:** shorten au-marker to au-m ([e04fe9c](https://github.com/aurelia/aurelia/commit/e04fe9c))
* **all:** shorten au-marker to au- ([c3f82ff](https://github.com/aurelia/aurelia/commit/c3f82ff))
* **attribute-pattern:** declare callback function for eachChar earlier ([22a15c1](https://github.com/aurelia/aurelia/commit/22a15c1))
* **node-sequence:** implement special textNodeSequence and reorganize a few things ([0e66eb3](https://github.com/aurelia/aurelia/commit/0e66eb3))


### Refactorings:

* **binding-command:** sync with attribute+element resource api ([518ef9b](https://github.com/aurelia/aurelia/commit/518ef9b))
* **resource-model:** fix types ([d75e939](https://github.com/aurelia/aurelia/commit/d75e939))
* **binding-command:** use metadata ([0734325](https://github.com/aurelia/aurelia/commit/0734325))
* **all:** update definition refs ([676e86a](https://github.com/aurelia/aurelia/commit/676e86a))
* **resources): prepend with a:**  ([dd7c238](https://github.com/aurelia/aurelia/commit/dd7c238))
* **replaceable:** rename 'replace-part' to 'replace' and 'replaceable part' to 'replaceable' ([603b68b](https://github.com/aurelia/aurelia/commit/603b68b))
* ***:** drop unused imports ([7755bbf](https://github.com/aurelia/aurelia/commit/7755bbf))
* **jit-html:** cleanup template-binder and improve semantic-model types ([156311d](https://github.com/aurelia/aurelia/commit/156311d))
* ***:** un-ignore some ts-ignore ([5e19c62](https://github.com/aurelia/aurelia/commit/5e19c62))
* **all:** rename BasicConfiguration in various packages ([7e330d8](https://github.com/aurelia/aurelia/commit/7e330d8))
* **custom-attrs:** first pass removing dynamic options ([03c5480](https://github.com/aurelia/aurelia/commit/03c5480))
* **attr-symbol:** tweak hierarchy structure, properly add properties for symbols ([cefd28e](https://github.com/aurelia/aurelia/commit/cefd28e))
* **ref:** remove ref.xx binding command, tweak tests ([12d88b2](https://github.com/aurelia/aurelia/commit/12d88b2))
* **compilation:** distinguish between custom/plain attributes ([34db977](https://github.com/aurelia/aurelia/commit/34db977))
* **resources:** make the string keys the primary keys ([747772a](https://github.com/aurelia/aurelia/commit/747772a))
* **runtime:** cleanup binding behaviors & value converters ([104bb10](https://github.com/aurelia/aurelia/commit/104bb10))
* **jit:** refactor binding command & attribute pattern to idiomatic aurelia code ([cdb55d3](https://github.com/aurelia/aurelia/commit/cdb55d3))
* **resources:** shorten resource names ([499634b](https://github.com/aurelia/aurelia/commit/499634b))
* **ast:** add -Expression suffix to AST expression classes ([0870538](https://github.com/aurelia/aurelia/commit/0870538))
* **all): more cleaning up after TS breaking changes:** ( ([c4c3fc7](https://github.com/aurelia/aurelia/commit/c4c3fc7))
* **replaceable:** fix scoping and some variations of nesting ([99b356c](https://github.com/aurelia/aurelia/commit/99b356c))
* **all:** move isNumeric/camelCase/kebabCase/toArray to separate functions and fix typings ([f746e5b](https://github.com/aurelia/aurelia/commit/f746e5b))
* **all:** more loosening up of null/undefined ([6794c30](https://github.com/aurelia/aurelia/commit/6794c30))
* **runtime:** fix binding and observation strict types ([b01d69a](https://github.com/aurelia/aurelia/commit/b01d69a))
* ***:** remove Constructable "hack" and fix exposed typing errors ([c3b6d46](https://github.com/aurelia/aurelia/commit/c3b6d46))
* ***:** use InjectArray ([b35215f](https://github.com/aurelia/aurelia/commit/b35215f))
* **ast:** extract interfaces ([7f16091](https://github.com/aurelia/aurelia/commit/7f16091))
* ***:** make unknown the default for InterfaceSymbol ([0b77ce3](https://github.com/aurelia/aurelia/commit/0b77ce3))
* ***:** enable ban-types linting rule and fix violations ([00e61b1](https://github.com/aurelia/aurelia/commit/00e61b1))
* **all:** reorganize all registrations and make them more composable ([6fcce8b](https://github.com/aurelia/aurelia/commit/6fcce8b))
* ***:** linting fixes ([a9e26ad](https://github.com/aurelia/aurelia/commit/a9e26ad))
* **jit:** explicitly export non-internal stuff ([ee6f102](https://github.com/aurelia/aurelia/commit/ee6f102))
* **all:** use Resource.define instead of decorators ([045aa90](https://github.com/aurelia/aurelia/commit/045aa90))
* **all:** replace inject decorators with static inject properties ([9fc37c1](https://github.com/aurelia/aurelia/commit/9fc37c1))
* **jit:** move html-specific logic to new jit-html package ([3372cc8](https://github.com/aurelia/aurelia/commit/3372cc8))
* **all:** use IDOM interface instead of DOM class ([2f50900](https://github.com/aurelia/aurelia/commit/2f50900))
* **all:** make DOM injectable ([a6305a0](https://github.com/aurelia/aurelia/commit/a6305a0))
* **jit:** rename metadata-model to resource-model ([0c1e647](https://github.com/aurelia/aurelia/commit/0c1e647))
* **template-binder:** extract text interpolation into separate function ([771b88c](https://github.com/aurelia/aurelia/commit/771b88c))
* **template-binder:** extract replace-part processing into separate function ([160f7cb](https://github.com/aurelia/aurelia/commit/160f7cb))
* **template-binder:** extract template controller lifting into separate function ([8e8e27e](https://github.com/aurelia/aurelia/commit/8e8e27e))
* **template-compiler:** fix slots ([550619b](https://github.com/aurelia/aurelia/commit/550619b))
* **template-compiler:** reimplement let element ([27ab73f](https://github.com/aurelia/aurelia/commit/27ab73f))
* **template-compiler:** recognize slots ([21a2dc9](https://github.com/aurelia/aurelia/commit/21a2dc9))
* **template-compiler:** fix ref ([61ea9ec](https://github.com/aurelia/aurelia/commit/61ea9ec))
* **template-binder:** simplify symbol flags ([fa021c5](https://github.com/aurelia/aurelia/commit/fa021c5))
* **template-binder:** fix plain attribute binding commands ([2e0c36a](https://github.com/aurelia/aurelia/commit/2e0c36a))
* **template-binder:** fix multi attribute bindings ([80ec607](https://github.com/aurelia/aurelia/commit/80ec607))
* **template-compiler:** more fixes ([a916c64](https://github.com/aurelia/aurelia/commit/a916c64))
* **template-compiler:** sort of fix replace-part ([398c4f0](https://github.com/aurelia/aurelia/commit/398c4f0))
* **template-compiler:** fix a command slip up ([07ec65a](https://github.com/aurelia/aurelia/commit/07ec65a))
* **template-compiler:** reimplement the template compiler with the template binder ([ad94bd1](https://github.com/aurelia/aurelia/commit/ad94bd1))
* **instructions:** improve naming/typing consistency ([1ad8d2a](https://github.com/aurelia/aurelia/commit/1ad8d2a))
* **jit:** rename element-binder to template-binder ([d8065e9](https://github.com/aurelia/aurelia/commit/d8065e9))
* **element-binder:** consolidate flags and add some helper functions ([a321100](https://github.com/aurelia/aurelia/commit/a321100))
* **element-binder:** add tracing and fix a couple things ([b6158ee](https://github.com/aurelia/aurelia/commit/b6158ee))
* **element-binder:** properly implement dynamicOptions parsing and other tweaks ([8e46176](https://github.com/aurelia/aurelia/commit/8e46176))
* **element-binder:** cleanup and add some initial expression parsing ([646b7da](https://github.com/aurelia/aurelia/commit/646b7da))
* **template-compiler:** more template controller compilation fixes ([2517567](https://github.com/aurelia/aurelia/commit/2517567))
* **template-compiler:** add ref as attribute pattern ([71f0c45](https://github.com/aurelia/aurelia/commit/71f0c45))
* **template-compiler:** fix custom attribute bindables & binding commands ([8109e11](https://github.com/aurelia/aurelia/commit/8109e11))
* **template-compiler:** add missing au class to render targets ([fbe27fc](https://github.com/aurelia/aurelia/commit/fbe27fc))
* **template-compiler:** fix sibling template controller compilation ([6f7d5ce](https://github.com/aurelia/aurelia/commit/6f7d5ce))
* **semantic-model:** fix element binding interpolations ([06de9fa](https://github.com/aurelia/aurelia/commit/06de9fa))
* **semantic-model:** emit element instructions in the correct order ([c400646](https://github.com/aurelia/aurelia/commit/c400646))
* **semantic-model:** fix setPropertyInstruction again ([6873ba6](https://github.com/aurelia/aurelia/commit/6873ba6))
* **template-compiler:** fix multi template controller compilation on regular elements ([d60d384](https://github.com/aurelia/aurelia/commit/d60d384))
* **template-compiler:** fix multi template controller compilation on surrogates ([7cc3c4b](https://github.com/aurelia/aurelia/commit/7cc3c4b))
* **binding-command:** update binding command to utilize the metadata model ([c5a8e0a](https://github.com/aurelia/aurelia/commit/c5a8e0a))
* **template-compiler:** create resource lookups eagerly / small fixes ([2bf976a](https://github.com/aurelia/aurelia/commit/2bf976a))
* **template-compiler:** more refactor/fixes/cleanup ([7b422ac](https://github.com/aurelia/aurelia/commit/7b422ac))
* **template-compiler:** first steps at cleaning up the last compiler pass ([7169744](https://github.com/aurelia/aurelia/commit/7169744))
* **jit:** various small fixes ([67b1b9b](https://github.com/aurelia/aurelia/commit/67b1b9b))
* **template-compiler:** track attribute ownership to prevent duplicate processing & set interpolation textNode to empty in the compiler itself ([535bf95](https://github.com/aurelia/aurelia/commit/535bf95))
* **template-compiler:** add trace calls to symbol visitors ([bb4cf6c](https://github.com/aurelia/aurelia/commit/bb4cf6c))
* **template-compiler:** start migrating binding commands, various small fixes ([9c00402](https://github.com/aurelia/aurelia/commit/9c00402))
* **jit:** full rewrite of the TemplateCompiler and SemanticModel (draft) ([8a0fe63](https://github.com/aurelia/aurelia/commit/8a0fe63))
* **jit:** properly implement more complex replaceable scenarios ([752e21f](https://github.com/aurelia/aurelia/commit/752e21f))
* ***:** standardise on "as" type casts ([d0933b8](https://github.com/aurelia/aurelia/commit/d0933b8))
* **jit:** fix or suppress Sonart linting errors ([7cdfaa3](https://github.com/aurelia/aurelia/commit/7cdfaa3))
* ***:** linting fixes for IIndexable ([4faffed](https://github.com/aurelia/aurelia/commit/4faffed))
* ***:** more any to strict typing conversions ([26f2d41](https://github.com/aurelia/aurelia/commit/26f2d41))
* **attribute-pattern:** use negative pattern matching based on registered symbols, improve side-by-side compat ([bcaec51](https://github.com/aurelia/aurelia/commit/bcaec51))
* **jit:** properly implement @attributePattern and separate the jit AST from parsers ([07a8f16](https://github.com/aurelia/aurelia/commit/07a8f16))
* **attribute-pattern:** return interpretation result and initial decorator setup ([9c640be](https://github.com/aurelia/aurelia/commit/9c640be))
* ***:** remove no-reserved-keywords suppressions and fix most of them ([579c606](https://github.com/aurelia/aurelia/commit/579c606))
* **resources:** improve flexibility & strictness of resource types ([499a189](https://github.com/aurelia/aurelia/commit/499a189))
* ***:** decorators use standalone function and has overload signatures ([dffb514](https://github.com/aurelia/aurelia/commit/dffb514))
* **jit:** decorate bindingCommand ([385a3d3](https://github.com/aurelia/aurelia/commit/385a3d3))
* **runtime:** move ICustomAttribute+ and ICustomElement+ interfaces ([11b016c](https://github.com/aurelia/aurelia/commit/11b016c))
* ***:** derive ISomethingDefinition from a base IResourceDefinition ([bdc0b6f](https://github.com/aurelia/aurelia/commit/bdc0b6f))
* ***:** rename ISomethingSource to ISomethingDefinition ([8f2727e](https://github.com/aurelia/aurelia/commit/8f2727e))
* **instructions:** remove renderStrategy in favor of instructionRenderer ([9aca18a](https://github.com/aurelia/aurelia/commit/9aca18a))
* **renderer:** decouple instruction-specific processing from the renderer ([c4cd235](https://github.com/aurelia/aurelia/commit/c4cd235))
* **instructions:** move instruction classes from jit to runtime ([45c186e](https://github.com/aurelia/aurelia/commit/45c186e))
* **lifecycle:** add registerTask api back in + preliminary test ([738d32f](https://github.com/aurelia/aurelia/commit/738d32f))
* **expression-parser:** get rid of exponentiation to preserve ES2015 parser compatibility ([b0dbe1c](https://github.com/aurelia/aurelia/commit/b0dbe1c))
* **runtime:** cleanup/reorganize lifecycle types ([a744a9f](https://github.com/aurelia/aurelia/commit/a744a9f))
* **templating:** make bindables and attachables into linked lists for lifecycle refactor ([b5d12b3](https://github.com/aurelia/aurelia/commit/b5d12b3))
* **dom:** use static class properties instead of object ([6d3604f](https://github.com/aurelia/aurelia/commit/6d3604f))
* **all:** rename ICustomAttributeSource to IAttributeDefinition ([df4babf](https://github.com/aurelia/aurelia/commit/df4babf))
* **all:** rename ITemplateSource to ITemplateDefinition and 'src' to 'def' ([5c398c8](https://github.com/aurelia/aurelia/commit/5c398c8))
* **all:** rename 'srcOrExpr' to 'from' and 'dest' to 'to' ([e71b758](https://github.com/aurelia/aurelia/commit/e71b758))
* **all:** rename templateOrNode to template ([ae04e9f](https://github.com/aurelia/aurelia/commit/ae04e9f))

<a name="0.3.0"></a>
# 0.3.0 (2018-10-12)

### Features:

* **binding:** improve AST $kind classifying and other small tweaks/fixes (#213) ([7267165](https://github.com/aurelia/aurelia/commit/7267165))
* **ast:** add additional $kind classifications and eager initialize literals if they are pure ([7267165](https://github.com/aurelia/aurelia/commit/7267165))
* **all:** implement InterpolationBinding ([1e804a0](https://github.com/aurelia/aurelia/commit/1e804a0))
* **binding-context:** improve error reporting ([1e804a0](https://github.com/aurelia/aurelia/commit/1e804a0))
* **kernel:** add decoratable interface to support strongly typed decorators ([f67a414](https://github.com/aurelia/aurelia/commit/f67a414))
* **binding:** add @connectable decorator back in (strongly typed) ([f67a414](https://github.com/aurelia/aurelia/commit/f67a414))
* **all:** implement InterpolationBinding ([f67a414](https://github.com/aurelia/aurelia/commit/f67a414))
* **unparser:** implement interpolation unparsing ([f67a414](https://github.com/aurelia/aurelia/commit/f67a414))
* **expression-parser:** delegate errors to Reporter for more descriptive errors ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **debug:** create AST expression serializer ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** improve error reporting ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **kernel:** add unwrap interface ([197235c](https://github.com/aurelia/aurelia/commit/197235c))
* **ast:** add visitor interface and implement accept methods on AST ([197235c](https://github.com/aurelia/aurelia/commit/197235c))
* **expression-parser:** allow member expressions on numeric literals ([197235c](https://github.com/aurelia/aurelia/commit/197235c))
* **potential-renderable:** autodetect when build is required ([f296d04](https://github.com/aurelia/aurelia/commit/f296d04))
* **render-context:** throw more informative errors when the context is not prepared yet ([f296d04](https://github.com/aurelia/aurelia/commit/f296d04))
* **template-compiler:** allow multiple template controllers per element ([9eb0764](https://github.com/aurelia/aurelia/commit/9eb0764))
* **template-compiler:** handle semicolon-separated bindings in attributes ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **jit:** decouple attribute/element parsing from template compiler ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** add initial implementation of semantic model ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **renderer:** throw specific error codes on target/instruction count mismatch ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **expression-parser:** map empty attribute value to empty string for bound properties ([7a92cd8](https://github.com/aurelia/aurelia/commit/7a92cd8))


### Bug Fixes:

* **ast:** do not eager initialize pure literals ([7267165](https://github.com/aurelia/aurelia/commit/7267165))
* **ast:** fix a few issues with $kind and define static properties last ([7267165](https://github.com/aurelia/aurelia/commit/7267165))
* **self-binding-behavior:** fix event.path and type defs ([7267165](https://github.com/aurelia/aurelia/commit/7267165))
* **TemplateCompiler:** properly startup compilation when passed a template (#214) ([c74a44c](https://github.com/aurelia/aurelia/commit/c74a44c))
* **expression-parser:** fix differentation for caching of expressions/interpolations ([1e804a0](https://github.com/aurelia/aurelia/commit/1e804a0))
* **iterator-binding:** correctly compile and render ForOfStatement ([1e804a0](https://github.com/aurelia/aurelia/commit/1e804a0))
* **signaler:** make addSignalListener idempotent ([1e804a0](https://github.com/aurelia/aurelia/commit/1e804a0))
* **kernel:** fix decorated interface ([f67a414](https://github.com/aurelia/aurelia/commit/f67a414))
* **binding:** wrap updatetarget/updatesource so vCurrent BBs work again ([f67a414](https://github.com/aurelia/aurelia/commit/f67a414))
* **expression-parser:** fix differentation for caching of expressions/interpolations ([f67a414](https://github.com/aurelia/aurelia/commit/f67a414))
* **iterator-binding:** correctly compile and render ForOfStatement ([f67a414](https://github.com/aurelia/aurelia/commit/f67a414))
* **SelectObserver:** complete implementation, adjust tests ([ffdf01d](https://github.com/aurelia/aurelia/commit/ffdf01d))
* **SelectObserver:** simplify flow, remove debugger, add test ([ffdf01d](https://github.com/aurelia/aurelia/commit/ffdf01d))
* **expression-parser:** correctly parse "unsafe" integers ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** disable broken "raw" values on template for now ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** correctly parse member expressions when preceded by a unary operator ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** allow template strings to have member expressions ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** allow AccessThis to be the tag for a template ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** use IsAssign instead of Conditional precedence for nested expressions ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** fix binary sibling operator precedence ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** ensure AccessScope is assignable ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** properly detect EOF for unterminated quote instead of hanging ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** throw on invalid dot terminal in AccessThis ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** throw on unterminated template instead of hanging ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** correctly parse number with trailing dot ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **debug:** correct / update unparser and debug mode ([197235c](https://github.com/aurelia/aurelia/commit/197235c))
* **expression-parser:** fix parsing error with trailing elision ([197235c](https://github.com/aurelia/aurelia/commit/197235c))
* **expression-parser:** allow AccessThis as the last element of an array ([197235c](https://github.com/aurelia/aurelia/commit/197235c))
* **expression-parser:** allow AccessThis as the condition in a conditional ([197235c](https://github.com/aurelia/aurelia/commit/197235c))
* **expression-parser:** allow AccessThis as left-hand side of binary expressions ([197235c](https://github.com/aurelia/aurelia/commit/197235c))
* **expression-parser:** reset access after parsing non-identifiers ([197235c](https://github.com/aurelia/aurelia/commit/197235c))
* **unparser:** explicitly reconstruct precedence ([197235c](https://github.com/aurelia/aurelia/commit/197235c))
* **repeat:** properly hook into attach/detach lifecycles ([f296d04](https://github.com/aurelia/aurelia/commit/f296d04))
* **repeat:** synchronously bind child views ([f296d04](https://github.com/aurelia/aurelia/commit/f296d04))
* **repeat:** use the correct lifecycle api for attach/detach ([f296d04](https://github.com/aurelia/aurelia/commit/f296d04))
* **lifecycle:** fix task variable shadowing issue ([f296d04](https://github.com/aurelia/aurelia/commit/f296d04))
* **view:** check nextSibling instead of previousSibling in mount() ([f296d04](https://github.com/aurelia/aurelia/commit/f296d04))
* **view:** validate renderLocation and ensure $nodes.lastChild exists on mount ([f296d04](https://github.com/aurelia/aurelia/commit/f296d04))
* **template-compiler:** do not treat DocumentFragment symbol as definition root ([48c4151](https://github.com/aurelia/aurelia/commit/48c4151))
* **template-compiler:** target the defintion root when detecting slots ([48c4151](https://github.com/aurelia/aurelia/commit/48c4151))
* **template-compiler:** fix template controllers on template nodes ([9eb0764](https://github.com/aurelia/aurelia/commit/9eb0764))
* **template-compiler:** make non-bindable customElement instructions siblings of the element instruction ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** properly resolve bindable customElement instructions by the registered attribute name ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **scope:** add bindingContext to overrideContext ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **resources:** ensure null is returned for non-existing resources ([7a92cd8](https://github.com/aurelia/aurelia/commit/7a92cd8))
* **template-compiler:** correct a few edge cases in target and bindingMode resolution ([7a92cd8](https://github.com/aurelia/aurelia/commit/7a92cd8))
* **template-compiler:** correct handling of kebab-cased custom attributes ([7a92cd8](https://github.com/aurelia/aurelia/commit/7a92cd8))
* **repeat.for:** add missing instruction properties ([7a92cd8](https://github.com/aurelia/aurelia/commit/7a92cd8))


### Performance Improvements:

* **ast:** predefine keyword literals and AccessThis, and reuse them ([7267165](https://github.com/aurelia/aurelia/commit/7267165))
* **expression-parser:** remove unreachable branch ([f67a414](https://github.com/aurelia/aurelia/commit/f67a414))
* **expression-parser:** reuse one ParserState object ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **expression-parser:** use explicit numeric comparisons for bitwise operators ([197235c](https://github.com/aurelia/aurelia/commit/197235c))
* **repeat:** basic utilization for indexMap to reduce unnecessary processing ([f296d04](https://github.com/aurelia/aurelia/commit/f296d04))
* **template-compiler:** prevent creating unnecessary arrays when there are no attributes ([9eb0764](https://github.com/aurelia/aurelia/commit/9eb0764))
* **element-parser:** use PLATFORM.emptyArray where possible and remove redundant property ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** convert parseAttribute to class instance with cache ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **semantic-model:** use PLATFORM.emptyArray when possible ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **element-parser:** use PLATFORM.emptyArray when possible ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** index the inspect/resolve buffers directly instead of destructuring ([7a92cd8](https://github.com/aurelia/aurelia/commit/7a92cd8))


### Refactorings:

* **binding:** use more precise types ([7267165](https://github.com/aurelia/aurelia/commit/7267165))
* **ast:** move common properties back to static declaration ([7267165](https://github.com/aurelia/aurelia/commit/7267165))
* **template-compiler:** cleanup/inline instruction classes ([1e804a0](https://github.com/aurelia/aurelia/commit/1e804a0))
* **binding:** cleanup/shuffle some interfaces accordingly ([f67a414](https://github.com/aurelia/aurelia/commit/f67a414))
* **template-compiler:** cleanup/inline instruction classes ([f67a414](https://github.com/aurelia/aurelia/commit/f67a414))
* **SelectObserver:** adjust SelectValueObserver synchronization (#208) ([ffdf01d](https://github.com/aurelia/aurelia/commit/ffdf01d))
* **expression-parser:** extract enums and util function out into common.ts ([a0c9b0e](https://github.com/aurelia/aurelia/commit/a0c9b0e))
* **repeat:** use templateController decorator and clean everything up ([f296d04](https://github.com/aurelia/aurelia/commit/f296d04))
* **jit:** improve parser registration and attribute testing ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **attribute-parser:** store raw attribute values in syntax ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** decouple entrypoint from internal recursion point ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** first step to integrate the semantic model ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** initial migration steps to semantic model ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** more small tweaks, enable a few more tests ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** recognize single value attribute as bindable ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** fix plain attribute compilation ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** fix template controller / repeater compilation ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** fix semicolon-separated attribute bindings ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** fix let and textNodes ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** fix as-element ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** fix surrogates ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** fix let.dest ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** fix as-element / resourceKey ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** fix bindable precedence ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** fix slots ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** fix nested+sibling template controllers and cleanup the api a bit ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **template-compiler:** fix let ([ad6eeb4](https://github.com/aurelia/aurelia/commit/ad6eeb4))
* **binding-command:** reuse specific binding command prototype methods on the default binding command ([7a92cd8](https://github.com/aurelia/aurelia/commit/7a92cd8))
* **template-compiler:** destructure with reused object ([7a92cd8](https://github.com/aurelia/aurelia/commit/7a92cd8))

<a name="0.2.0"></a>
# 0.2.0 (2018-09-18)

### Features:

* **di:** recurse through static registrations to find register methods in more edge cases ([6bc2d4d](https://github.com/aurelia/aurelia/commit/6bc2d4d))
* **template-compiler:** as-element (#146) ([4aa8538](https://github.com/aurelia/aurelia/commit/4aa8538))
* **template-compiler:** as-element ([4aa8538](https://github.com/aurelia/aurelia/commit/4aa8538))
* **Let:** let binding (#132) ([c2a8324](https://github.com/aurelia/aurelia/commit/c2a8324))
* **runtime:** Let binding, priorityInstructions ([c2a8324](https://github.com/aurelia/aurelia/commit/c2a8324))
* **jit:** implement instruction-compiler decorator ([1067e03](https://github.com/aurelia/aurelia/commit/1067e03))
* **runtime:** implement render-strategy decorator ([1067e03](https://github.com/aurelia/aurelia/commit/1067e03))
* **JIT:** template compiler ([d584528](https://github.com/aurelia/aurelia/commit/d584528))
* **TemplateCompiler:** surrogate behavior ([d584528](https://github.com/aurelia/aurelia/commit/d584528))
* **jit:** move/extend attribute value parsing to the expression parser (#98) ([53864a1](https://github.com/aurelia/aurelia/commit/53864a1))
* **observers:** auto-enable collection observers and make the toggles idempotent ([d6a10b5](https://github.com/aurelia/aurelia/commit/d6a10b5))
* **binding:** implement ChangeSet (#58) ([144b1c6](https://github.com/aurelia/aurelia/commit/144b1c6))
* **binding:** implement ChangeSet ([144b1c6](https://github.com/aurelia/aurelia/commit/144b1c6))
* **custom-elements:** define basic abstraction for element projection ([0a17b16](https://github.com/aurelia/aurelia/commit/0a17b16))
* **runtime:** enable getting the custom element behavior... ([0a17b16](https://github.com/aurelia/aurelia/commit/0a17b16))
* **jit:** implement interpolation & iterator (with destructuring) parsing ([8ab2173](https://github.com/aurelia/aurelia/commit/8ab2173))
* **ast:** initial implementation of ForOfStatement for iterating different collection types ([8ab2173](https://github.com/aurelia/aurelia/commit/8ab2173))
* **ast:** add metadata to the AST for ExpressionKind ([8ab2173](https://github.com/aurelia/aurelia/commit/8ab2173))
* **jit:** initial skeleton for customizeable binding commands ([8ab2173](https://github.com/aurelia/aurelia/commit/8ab2173))
* **jit:** simple first implementation for template-compiler ([8ab2173](https://github.com/aurelia/aurelia/commit/8ab2173))


### Bug Fixes:

* **di:** invoke correct method on array strategy resolver ([6bc2d4d](https://github.com/aurelia/aurelia/commit/6bc2d4d))
* **di:** invalidate Object keys to help diagnose invalid design:paramTypes ([6bc2d4d](https://github.com/aurelia/aurelia/commit/6bc2d4d))
* **di:** add a non-any type alternative to the InterfaceSymbol<T> so that container.get() returns correctly typed instances ([6bc2d4d](https://github.com/aurelia/aurelia/commit/6bc2d4d))
* **let:** cleanup ([c2a8324](https://github.com/aurelia/aurelia/commit/c2a8324))
* **template compiler:** slot signal ([c2a8324](https://github.com/aurelia/aurelia/commit/c2a8324))
* **examples:** correct versions ([1b7c764](https://github.com/aurelia/aurelia/commit/1b7c764))
* **template-compiler:** workaround for DI issue ([1067e03](https://github.com/aurelia/aurelia/commit/1067e03))
* **binding-command:** rename file ([1067e03](https://github.com/aurelia/aurelia/commit/1067e03))
* **binding-command:** pass correct bindingType to parser ([1067e03](https://github.com/aurelia/aurelia/commit/1067e03))
* **template-compiler:** template controller instrs order, linking (#129) ([d2f632f](https://github.com/aurelia/aurelia/commit/d2f632f))
* **observer:** store obj and propertyKey ([d584528](https://github.com/aurelia/aurelia/commit/d584528))
* **template-compiler:** merge camel-kebab changes and reuse platform functions ([d584528](https://github.com/aurelia/aurelia/commit/d584528))
* **template-compiler:** fix slip-up with attribute name ([d584528](https://github.com/aurelia/aurelia/commit/d584528))
* **event-manager:** use spec-compliant composedPath for shadowdom / fix linting ([6381c5b](https://github.com/aurelia/aurelia/commit/6381c5b))
* **event-manager:** fix .delegate and .capture, and add unit tests ([6381c5b](https://github.com/aurelia/aurelia/commit/6381c5b))
* **typings:** export event subscribers ([6381c5b](https://github.com/aurelia/aurelia/commit/6381c5b))
* **event-manager:** export listener tracker to resolve typing issues ([6381c5b](https://github.com/aurelia/aurelia/commit/6381c5b))
* **tsconfig:** correct extends path ([797674f](https://github.com/aurelia/aurelia/commit/797674f))
* **binding-behavior:** fix BindingModeBehavior ([bb32291](https://github.com/aurelia/aurelia/commit/bb32291))
* **binding-behavior:** fix debounce, add unit tests ([bb32291](https://github.com/aurelia/aurelia/commit/bb32291))
* **expression-parser:** use a separate lookup for non-interpolation attribute values ([53864a1](https://github.com/aurelia/aurelia/commit/53864a1))
* **template-compiler:** use the target name instead of full name + fix tests ([53864a1](https://github.com/aurelia/aurelia/commit/53864a1))
* **template-compiler:** add dest to one-time instruction ([1ddff95](https://github.com/aurelia/aurelia/commit/1ddff95))
* **jit-parcel:** remove else for now, fix instructions ([d6a10b5](https://github.com/aurelia/aurelia/commit/d6a10b5))
* **template-compiler:** wrap the nodes in a fragment ([d6a10b5](https://github.com/aurelia/aurelia/commit/d6a10b5))
* **jit-parcel:** remove path mappings from tsconfig ([d6a10b5](https://github.com/aurelia/aurelia/commit/d6a10b5))
* **template-compiler:** use firstElementChild instead of wrapper ([d6a10b5](https://github.com/aurelia/aurelia/commit/d6a10b5))
* **template-compiler:** various small tweaks and fixes, make example work ([d6a10b5](https://github.com/aurelia/aurelia/commit/d6a10b5))
* **jit-parcel:** make the example work with something simple ([d6a10b5](https://github.com/aurelia/aurelia/commit/d6a10b5))
* **aurelia:** set isStarted=true after tasks have finished ([d6a10b5](https://github.com/aurelia/aurelia/commit/d6a10b5))
* **e2e:** move publish into e2e job ([d6a10b5](https://github.com/aurelia/aurelia/commit/d6a10b5))
* **ci:** fix typo ([d6a10b5](https://github.com/aurelia/aurelia/commit/d6a10b5))
* **ci:** set the correct path before each cmd ([d6a10b5](https://github.com/aurelia/aurelia/commit/d6a10b5))
* **ci:** try a different approach for the workspaces ([d6a10b5](https://github.com/aurelia/aurelia/commit/d6a10b5))
* **dom:** append nodes to the correct thing (doh) (#66) ([c7a8285](https://github.com/aurelia/aurelia/commit/c7a8285))
* **observation:** fix subscriber typing ([144b1c6](https://github.com/aurelia/aurelia/commit/144b1c6))
* **templating:** address trivial errors when removing emulation ([0a17b16](https://github.com/aurelia/aurelia/commit/0a17b16))
* **templating:** remove shadow dom from compose element ([0a17b16](https://github.com/aurelia/aurelia/commit/0a17b16))
* **all:** last few corrections from the merge ([0a17b16](https://github.com/aurelia/aurelia/commit/0a17b16))
* **runtime:** various fixes related to compose ([0a17b16](https://github.com/aurelia/aurelia/commit/0a17b16))
* **all:** correct types/properties and fix unit tests ([8ab2173](https://github.com/aurelia/aurelia/commit/8ab2173))
* **template-compiler:** small fixes, setup first simple integration tests ([8ab2173](https://github.com/aurelia/aurelia/commit/8ab2173))
* **kernel:** scripts working ([9302580](https://github.com/aurelia/aurelia/commit/9302580))
* **all:** lots of path fixes and a few typing fixes, make sure everything builds correctly ([9302580](https://github.com/aurelia/aurelia/commit/9302580))
* **test:** make all the tests run via lerna ([9302580](https://github.com/aurelia/aurelia/commit/9302580))


### Refactorings:

* **di:** append new resolvers on existing keys to a single array strategy resolver instead of nesting them ([6bc2d4d](https://github.com/aurelia/aurelia/commit/6bc2d4d))
* **Let:** add LetElementInstruction ([c2a8324](https://github.com/aurelia/aurelia/commit/c2a8324))
* **template-compiler:** move stuff around / fix various edge cases (#134) ([5920299](https://github.com/aurelia/aurelia/commit/5920299))
* **template-compiler:** move stuff around / fix various edge cases ([5920299](https://github.com/aurelia/aurelia/commit/5920299))
* **template-compiler:** hoist attribute inspection array / fix tests ([5920299](https://github.com/aurelia/aurelia/commit/5920299))
* **template-compiler:** various fixes and cleanups ([1067e03](https://github.com/aurelia/aurelia/commit/1067e03))
* **template-compiler:** move binding commands to decorators ([1067e03](https://github.com/aurelia/aurelia/commit/1067e03))
* **binding-command:** add handles method ([1067e03](https://github.com/aurelia/aurelia/commit/1067e03))
* **parser:** extract template/object/array literal parsing into functions ([53864a1](https://github.com/aurelia/aurelia/commit/53864a1))
* **jit:** move interpolation parsing to the expression parser ([53864a1](https://github.com/aurelia/aurelia/commit/53864a1))
* **expression-parser:** make bindingType mandatory and pass the correct types to the parser everywhere ([53864a1](https://github.com/aurelia/aurelia/commit/53864a1))
* **template-compiler:** make compiler flow a bit more logical ([53864a1](https://github.com/aurelia/aurelia/commit/53864a1))
* **instructions:** change number type to string (#97) ([1ddff95](https://github.com/aurelia/aurelia/commit/1ddff95))
* **instructions:** change number type to string, make const enum ([1ddff95](https://github.com/aurelia/aurelia/commit/1ddff95))
* **all:** improving a couple of method names related to resources (#70) ([49484e3](https://github.com/aurelia/aurelia/commit/49484e3))
* **binding:** use ChangeSet instead of TaskQueue ([144b1c6](https://github.com/aurelia/aurelia/commit/144b1c6))
* **property-observer:** make reusable decorator for setter/observer ([144b1c6](https://github.com/aurelia/aurelia/commit/144b1c6))
* **jit:** merge attribute name/value parsers into template-compiler ([8ab2173](https://github.com/aurelia/aurelia/commit/8ab2173))
* **jit:** use IResourceDescriptions for looking up resources ([8ab2173](https://github.com/aurelia/aurelia/commit/8ab2173))
