v0.3.0
Pre-release
Pre-release
·
8889 commits
to master
since this release
0.3.0 (2018-10-12)
Features:
- binding: improve AST $kind classifying and other small tweaks/fixes (#213) (7267165)
- ast: add additional $kind classifications and eager initialize literals if they are pure (7267165)
- all: implement InterpolationBinding (1e804a0)
- binding-context: improve error reporting (1e804a0)
- kernel: add decoratable interface to support strongly typed decorators (f67a414)
- binding: add @connectable decorator back in (strongly typed) (f67a414)
- all: implement InterpolationBinding (f67a414)
- unparser: implement interpolation unparsing (f67a414)
- expression-parser: delegate errors to Reporter for more descriptive errors (a0c9b0e)
- debug: create AST expression serializer (a0c9b0e)
- expression-parser: improve error reporting (a0c9b0e)
- kernel: add unwrap interface (197235c)
- ast: add visitor interface and implement accept methods on AST (197235c)
- expression-parser: allow member expressions on numeric literals (197235c)
- potential-renderable: autodetect when build is required (f296d04)
- render-context: throw more informative errors when the context is not prepared yet (f296d04)
- Aurelia: self register to container (5971d36)
- lifecycle: new callbacks, async tasks, and updated template controllers (#171) (7a9a635)
- lifecycle: minimal add/remove of nodes (7a9a635)
- lifecycle: enable detach tasks (7a9a635)
- lifecycle: enable attach tasks (7a9a635)
- lifecycle: stub out lifecycle flags (7a9a635)
- lifecycle: introduce child lifecycles (7a9a635)
- lifecycle: make detach/attach lifecycle symetric (7a9a635)
- lifecycle: add flags (7a9a635)
- lifecycle: overhaul (7a9a635)
- lifecycle: auto unbind after node removal (7a9a635)
- lifecycle: introduce lifecycle task (7a9a635)
- template-compiler: allow multiple template controllers per element (9eb0764)
- template-compiler: handle semicolon-separated bindings in attributes (ad6eeb4)
- jit: decouple attribute/element parsing from template compiler (ad6eeb4)
- template-compiler: add initial implementation of semantic model (ad6eeb4)
- renderer: throw specific error codes on target/instruction count mismatch (ad6eeb4)
- expression-parser: map empty attribute value to empty string for bound properties (7a92cd8)
Bug Fixes:
- subscriber-collection: remove circular dependency (c3e3779)
- ast: do not eager initialize pure literals (7267165)
- ast: fix a few issues with $kind and define static properties last (7267165)
- self-binding-behavior: fix event.path and type defs (7267165)
- TemplateCompiler: properly startup compilation when passed a template (#214) (c74a44c)
- expression-parser: fix differentation for caching of expressions/interpolations (1e804a0)
- iterator-binding: correctly compile and render ForOfStatement (1e804a0)
- signaler: make addSignalListener idempotent (1e804a0)
- kernel: fix decorated interface (f67a414)
- binding: wrap updatetarget/updatesource so vCurrent BBs work again (f67a414)
- expression-parser: fix differentation for caching of expressions/interpolations (f67a414)
- iterator-binding: correctly compile and render ForOfStatement (f67a414)
- SelectObserver: complete implementation, adjust tests (ffdf01d)
- SelectObserver: simplify flow, remove debugger, add test (ffdf01d)
- expression-parser: correctly parse "unsafe" integers (a0c9b0e)
- expression-parser: disable broken "raw" values on template for now (a0c9b0e)
- expression-parser: correctly parse member expressions when preceded by a unary operator (a0c9b0e)
- expression-parser: allow template strings to have member expressions (a0c9b0e)
- expression-parser: allow AccessThis to be the tag for a template (a0c9b0e)
- expression-parser: use IsAssign instead of Conditional precedence for nested expressions (a0c9b0e)
- expression-parser: fix binary sibling operator precedence (a0c9b0e)
- expression-parser: ensure AccessScope is assignable (a0c9b0e)
- expression-parser: properly detect EOF for unterminated quote instead of hanging (a0c9b0e)
- expression-parser: throw on invalid dot terminal in AccessThis (a0c9b0e)
- expression-parser: throw on unterminated template instead of hanging (a0c9b0e)
- expression-parser: correctly parse number with trailing dot (a0c9b0e)
- debug: correct / update unparser and debug mode (197235c)
- expression-parser: fix parsing error with trailing elision (197235c)
- expression-parser: allow AccessThis as the last element of an array (197235c)
- expression-parser: allow AccessThis as the condition in a conditional (197235c)
- expression-parser: allow AccessThis as left-hand side of binary expressions (197235c)
- expression-parser: reset access after parsing non-identifiers (197235c)
- unparser: explicitly reconstruct precedence (197235c)
- repeat: properly hook into attach/detach lifecycles (f296d04)
- repeat: synchronously bind child views (f296d04)
- repeat: use the correct lifecycle api for attach/detach (f296d04)
- lifecycle: fix task variable shadowing issue (f296d04)
- view: check nextSibling instead of previousSibling in mount() (f296d04)
- view: validate renderLocation and ensure $nodes.lastChild exists on mount (f296d04)
- RuntimeCompilationResources: do not auto register (5971d36)
- Observer: use identity instead of noop (5971d36)
- test: remove .only (5971d36)
- CustomElement: flush at startup (5971d36)
- CustomElement: remove unnecessary flush (5971d36)
- Observer: revert to noop (5971d36)
- Renderer: remove unnecessary checks (5971d36)
- DI: alias registration param order and tests (#202) (1683135)
- template-compiler: do not treat DocumentFragment symbol as definition root (48c4151)
- template-compiler: target the defintion root when detecting slots (48c4151)
- lifecycle: remove unused code (7a9a635)
- lifecycle: improve types and resolve style issues (7a9a635)
- runtime: fix template controller tests (7a9a635)
- runtime: get remaining tests working again (7a9a635)
- template-compiler: fix template controllers on template nodes (9eb0764)
- template-compiler: make non-bindable customElement instructions siblings of the element instruction (ad6eeb4)
- template-compiler: properly resolve bindable customElement instructions by the registered attribute name (ad6eeb4)
- scope: add bindingContext to overrideContext (ad6eeb4)
- binding: lazy initialize slotNames based on need (57c07e8)
- observation: make property-accessor synchronous (57c07e8)
- observation: keep dom target accessors batched (57c07e8)
- resources: ensure null is returned for non-existing resources (7a92cd8)
- template-compiler: correct a few edge cases in target and bindingMode resolution (7a92cd8)
- template-compiler: correct handling of kebab-cased custom attributes (7a92cd8)
- repeat.for: add missing instruction properties (7a92cd8)
Performance Improvements:
- ast: predefine keyword literals and AccessThis, and reuse them (7267165)
- expression-parser: remove unreachable branch (f67a414)
- expression-parser: reuse one ParserState object (a0c9b0e)
- expression-parser: use explicit numeric comparisons for bitwise operators (197235c)
- repeat: basic utilization for indexMap to reduce unnecessary processing (f296d04)
- template-compiler: prevent creating unnecessary arrays when there are no attributes (9eb0764)
- element-parser: use PLATFORM.emptyArray where possible and remove redundant property (ad6eeb4)
- template-compiler: convert parseAttribute to class instance with cache (ad6eeb4)
- semantic-model: use PLATFORM.emptyArray when possible (ad6eeb4)
- element-parser: use PLATFORM.emptyArray when possible (ad6eeb4)
- template-compiler: index the inspect/resolve buffers directly instead of destructuring (7a92cd8)
Refactorings:
- binding-context: explicitly model scope, context and observer lookup (#216) (c3e3779)
- binding: explicitly model scope, override/bindingctx and observerlookup (c3e3779)
- observer-locator: use direct lookup from bindingContext if available (c3e3779)
- binding: use more precise types (7267165)
- ast: move common properties back to static declaration (7267165)
- template-compiler: cleanup/inline instruction classes (1e804a0)
- binding: cleanup/shuffle some interfaces accordingly (f67a414)
- template-compiler: cleanup/inline instruction classes (f67a414)
- view-factory: use static maxCacheSize property (eff5bb7)
- SelectObserver: adjust SelectValueObserver synchronization (#208) (ffdf01d)
- expression-parser: extract enums and util function out into common.ts (a0c9b0e)
- repeat: use templateController decorator and clean everything up (f296d04)
- lifecycle: better naming and types for task api (7a9a635)
- jit: improve parser registration and attribute testing (ad6eeb4)
- attribute-parser: store raw attribute values in syntax (ad6eeb4)
- template-compiler: decouple entrypoint from internal recursion point (ad6eeb4)
- template-compiler: first step to integrate the semantic model (ad6eeb4)
- template-compiler: initial migration steps to semantic model (ad6eeb4)
- template-compiler: more small tweaks, enable a few more tests (ad6eeb4)
- template-compiler: recognize single value attribute as bindable (ad6eeb4)
- template-compiler: fix plain attribute compilation (ad6eeb4)
- template-compiler: fix template controller / repeater compilation (ad6eeb4)
- template-compiler: fix semicolon-separated attribute bindings (ad6eeb4)
- template-compiler: fix let and textNodes (ad6eeb4)
- template-compiler: fix as-element (ad6eeb4)
- template-compiler: fix surrogates (ad6eeb4)
- template-compiler: fix let.dest (ad6eeb4)
- template-compiler: fix as-element / resourceKey (ad6eeb4)
- template-compiler: fix bindable precedence (ad6eeb4)
- template-compiler: fix slots (ad6eeb4)
- template-compiler: fix nested+sibling template controllers and cleanup the api a bit (ad6eeb4)
- template-compiler: fix let (ad6eeb4)
- call: deprecate confusing $event property (57c07e8)
- binding-command: reuse specific binding command prototype methods on the default binding command (7a92cd8)
- template-compiler: destructure with reused object (7a92cd8)