Skip to content

v0.3.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@EisenbergEffect EisenbergEffect released this 17 Oct 04:21
· 8889 commits to master since this release
6ba681c

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)