Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Template compiler #121

Merged
merged 16 commits into from
Sep 1, 2018
Merged

Template compiler #121

merged 16 commits into from
Sep 1, 2018

Conversation

bigopon
Copy link
Member

@bigopon bigopon commented Sep 1, 2018

@EisenbergEffect @fkleuver

The template compiler now understands custom elements and template controllers, but I'm unable to create an integration test for custom element. Any pointers would be nice.

it(`custom elements`, () => {
@customElement({
name: 'name-tag',
templateOrNode: '<template>${name}</template>'
})
class NameTag {
@bindable()
name: string;
}
component = createCustomElement(
`<template><name-tag name="bigopon"></name-tag></template>`,
NameTag
);
debugger;
// (component.constructor as any).description.dependencies.push(NameTag);
au.app({ host, component: component }).start();
cs.flushChanges();
expect(host.textContent).to.equal('bigopon');
});

@fkleuver I've commented parseAttribute() tests. I think I will need to rework them a bit as now compiling attribute has been changed a bit.

@bigopon bigopon mentioned this pull request Sep 1, 2018
2 tasks
@EisenbergEffect
Copy link
Contributor

@bigopon Do you need advice on setting up the test or with the implementation of the compiler itself?


return null;
private swapWithMarker(node: Element, parentNode: Element): Element {
const marker = createMarker();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small nit: this could be a loose function instead of a private method

// default binding mode of the element property
if (bindingCommand & BindingType.BindCommand) {
switch (elementProperty.mode) {
case BindingMode.fromView:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new BindingInstruction[bindingCommand & BindingType.Command] :P

@bigopon
Copy link
Member Author

bigopon commented Sep 1, 2018

@EisenbergEffect I think I'm having issue with dependencies not picked up, as in this block

function createCustomElement(markup: string, ...dependencies: Function[]): { [key: string]: any } {
return new (CustomElementResource.define({
name: 'app',
dependencies: [...dependencies],
templateOrNode: markup,
build: { required: true, compiler: 'default' },
instructions: [],
surrogates: []
}, class App { }))();
}

Is that the correct way to declare dependencies for a custom element ? I'm having empty instructions list inside app custom element description

@bigopon
Copy link
Member Author

bigopon commented Sep 1, 2018

@EisenbergEffect in unit test, it works fine

it('distinguishs element properties / normal attributes', () => {
@customElement('el')
class El {
@bindable()
name: string;
}
const actual = compileWith(
`<template>
<el name="name" name2="label"></el>
</template>`,
[El]
);
const rootInstructions = actual.instructions[0] as any[];
const expectedRootInstructions = [
{ toVerify: ['type', 'res'], type: TargetedInstructionType.hydrateElement, res: 'el' }
];
verifyInstructions(rootInstructions, expectedRootInstructions);
const expectedElInstructions = [
{ toVerify: ['type', 'mode', 'dest'], type: TargetedInstructionType.propertyBinding, mode: BindingMode.toView, dest: 'name' },
];
verifyInstructions(rootInstructions[0].instructions, expectedElInstructions);
});

}
elementDefinition = resources.find(
CustomElementResource,
hyphenate(node.tagName.toLowerCase())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand toLowerCase here but I'm not sure I understand why you need to hyphenate the tagName.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it should be gone

if (elementDefinition) {
elementInstruction = new HydrateElementInstruction(
resources,
[],
Copy link
Member

@fkleuver fkleuver Sep 1, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

res needs to be the registered name of the resource (in the case of your failing integration test "name-tag"). Then it works :)

(for simplicity sake: replace resources with node.tagName.toLowerCase())

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow, doh.!

// expect(host.innerText).to.equal('bar');
// cs.flushChanges();
// expect(host.innerText).to.equal('baz');
// });

it(`custom elements`, () => {
@customElement({
Copy link
Member

@fkleuver fkleuver Sep 1, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be:

@customElement({
  name: 'name-tag',
  templateOrNode: '<template>${name}</template>',
  build: { required: true, compiler: 'default' },
  dependencies: [],
  instructions: [],
  surrogates: []
})

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually just put this whole thing at the top of the file:

@customElement({
  name: 'name-tag',
  templateOrNode: '<template>asdf</template>',
  build: { required: true, compiler: 'default' },
  dependencies: [],
  instructions: [],
  surrogates: []
})
export class NameTag {
  @bindable()
  name: string;
}

And add it to globalresources:

const globalResources: any[] = [
  If,
  Else,
  Repeat,
  SortValueConverter,
  JsonValueConverter,
  OneTimeBindingBehavior,
  ToViewBindingBehavior,
  FromViewBindingBehavior,
  TwoWayBindingBehavior,
  DebounceBindingBehavior,
  ThrottleBindingBehavior,
  NameTag
];

And the test to this:

  it.only(`custom elements`, () => {
    component = createCustomElement(`<template><name-tag name="bigopon"></name-tag></template>`);
    au.app({ host, component: component })
    au.start();
    cs.flushChanges();
    expect(host.innerText).to.equal('bigopon');
  });

That will give a bindable error, but if you remove the bindable and instead put plain text in the custom element it will work. Not sure yet what that error is about

}
component = createCustomElement(
`<template><name-tag name="bigopon"></name-tag></template>`,
NameTag
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you just need to change this to Registration.transient('name-tag', NameTag). The dependency would get autoregistered by the function instead of the custom element name otherwise

@codeclimate
Copy link

codeclimate bot commented Sep 1, 2018

Code Climate has analyzed commit f93f3f3 and detected 10 issues on this pull request.

Here's the issue category breakdown:

Category Count
Complexity 10

The test coverage on the diff in this pull request is 86.9% (50% is the threshold).

This pull request will bring the total coverage in the repository to 82.2% (0.9% change).

View more on Code Climate.

@codecov
Copy link

codecov bot commented Sep 1, 2018

Codecov Report

Merging #121 into master will increase coverage by 0.82%.
The diff coverage is 85.82%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #121      +/-   ##
==========================================
+ Coverage   80.42%   81.25%   +0.82%     
==========================================
  Files          72       73       +1     
  Lines        5385     5467      +82     
  Branches      944      968      +24     
==========================================
+ Hits         4331     4442     +111     
+ Misses       1054     1025      -29
Impacted Files Coverage Δ
...ckages/runtime/src/templating/template-compiler.ts 100% <ø> (ø) ⬆️
...ckages/runtime/src/binding/property-observation.ts 97.95% <100%> (+2.21%) ⬆️
...ackages/runtime/src/templating/rendering-engine.ts 80.48% <100%> (+0.15%) ⬆️
...kages/runtime/src/templating/view-compile-flags.ts 100% <100%> (ø)
packages/runtime/src/templating/index.ts 100% <100%> (ø) ⬆️
packages/jit/src/templating/template-compiler.ts 91.2% <84.74%> (+2.36%) ⬆️
packages/runtime/src/dom.ts 86.32% <0%> (-1.71%) ⬇️
packages/runtime/src/binding/expression-parser.ts 75% <0%> (-1.48%) ⬇️
... and 6 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fc9cbff...f93f3f3. Read the comment docs.

@bigopon
Copy link
Member Author

bigopon commented Sep 1, 2018

@fkleuver @EisenbergEffect With the help from Fred, it's now working fine. There are the following issues:

  • local dependencies not working
  • link-able template controllers not linked
  • process content / process attribute
  • surrogate instructions

I think it's safe to merge in and then we can continue the above work later.

@fkleuver
Copy link
Member

fkleuver commented Sep 1, 2018

@EisenbergEffect let's get this merged in, I want to get my hands on this stuff :D

@bigopon
Copy link
Member Author

bigopon commented Sep 1, 2018

   private templateFromSource(context: IRenderContext, definition: TemplateDefinition): ITemplate {
     if (definition && definition.templateOrNode) {
       if (definition.build.required) {
         const compilerName = definition.build.compiler || defaultCompilerName;
         const compiler = this.compilers[compilerName];
 
         if (!compiler) {
          throw Reporter.error(20, compilerName);
        }
-       definition = compiler.compile(definition, new RuntimeCompilationResources(<ExposedContext>context));
+       definition = compiler.compile(definition, new RuntimeCompilationResources(<ExposedContext>context), ViewCompileFlags.surrogate);
      }

@EisenbergEffect the above changes in rendering-engine may not be correct as I'm not sure how the entire flow is yet.

@bigopon
Copy link
Member Author

bigopon commented Sep 1, 2018

@fkleuver Didn't change anything, not sure why circle CI is failing

@EisenbergEffect
Copy link
Contributor

@bigopon I haven't read through all the code yet, but the ViewCompileFlags are new to me. What is the significance of that in this case?

@EisenbergEffect
Copy link
Contributor

@bigopon Looks like there are some merge conflicts now, probably with what I just merged. Sorry! Ping me when that's all fixed up and you want me to do a final review. Thanks for working on this. This is a big milestone!

@fkleuver
Copy link
Member

fkleuver commented Sep 1, 2018

Merge conflict was my bad, it's fixed up now :)
EDIT: some tests are failing, i'm investigating

@fkleuver
Copy link
Member

fkleuver commented Sep 1, 2018

@EisenbergEffect good to merge

@bigopon
Copy link
Member Author

bigopon commented Sep 1, 2018

@EisenbergEffect what used to be our ViewCompileInstruction is now ViewCompileFlags. We need a way to tell the compiler when to process surrogate instructions, shadowDOM etc

@fkleuver looks like some changes in my latest commit were lost. Can you add them again. 😁

Edit: Actually we already rebased. I will recommit, it was about surrogate behavior

@bigopon
Copy link
Member Author

bigopon commented Sep 1, 2018

@EisenbergEffect @fkleuver It's ready now. Here's how it looks like for normal attribute on a surrogate element:

if (name !== 'id' && name !== 'part' && name !== 'replace-part') {
switch (name) {
// TODO: handle simple surrogate style attribute
case 'style':
attrInst = new SetAttributeInstruction(value, name);
break;
default:
attrInst = new SetAttributeInstruction(value, name);
break;
}
surrogateInstructions.push(attrInst);
} else {
throw new Error(`Invalid surrogate attribute: ${name}`);
}

I'm not sure how to handle style attribute, using SetAttributeInstruction will probably override what the host has before applying. Same for any other attributes. Thoughts ?

@fkleuver
Copy link
Member

fkleuver commented Sep 1, 2018

Hold on, we got a major perf regression for some reason addTodo (x10000) took 2390ms i'm just gonna check what that's all about

Copy link
Contributor

@EisenbergEffect EisenbergEffect left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some feedback for future work.

let elementDefinition: Immutable<Required<ITemplateSource>>;
let elementInstruction: HydrateElementInstruction;
const tagName = node.tagName;
if (tagName === 'SLOT' || tagName === 'LET') {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no work to do for slots except that if you find one, you set the hasSlots property of the definition to true.

import { Char } from '../binding/expression-parser';
import { BindingCommandResource, IBindingCommandSource } from './binding-command';

const domParser = <HTMLDivElement>DOM.createElement('div');
const marker = document.createElement('au-marker');
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Things like this should use the DOM abstraction.

if (liftInstruction) {
node = swapWithMarker(node, parentNode as Element);
const template = DOM.createTemplate() as HTMLTemplateElement;
template.content.appendChild(liftInstruction.src.templateOrNode as Node);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this safe? Can't templateOrNode be a string?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The template of this instruction is from currently processed DOM tree, so it won't be a string

instructions.push(attributeInstructions);
if (liftInstruction) {
node = swapWithMarker(node, parentNode as Element);
const template = DOM.createTemplate() as HTMLTemplateElement;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we improve the createTemplate signature so that it can take the template content as input, optionally?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@EisenbergEffect Could be nice improvement, it can also take care of adopting node / etc, less code everywhere else.

export enum ViewCompileFlags {
none = 0b0_001,
surrogate = 0b0_010,
shadowDOM = 0b0_100,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what shadowDOM would do. For vNext, we only need to know if there are slots or not, at least for now.

@fkleuver
Copy link
Member

fkleuver commented Sep 1, 2018

Sorry, go ahead and merge. I'll check the perf later. Might be a circleci hiccup as well

@EisenbergEffect EisenbergEffect merged commit d584528 into master Sep 1, 2018
@EisenbergEffect EisenbergEffect deleted the template-compiler branch September 1, 2018 22:13
EisenbergEffect added a commit that referenced this pull request Sep 19, 2018
commit 814b8131ccd5a6175f216c9812d8f336cb805b3f
Author: Rob Eisenberg <rob@bluespire.com>
Date:   Mon Sep 17 20:31:11 2018 -0700

    chore(all): prepare release 0.2.0

commit 029bbeb357469625f633f49dbbf19fa164fa2aa0
Author: Rob Eisenberg <rob@bluespire.com>
Date:   Mon Sep 17 20:20:16 2018 -0700

    chore(all): revert prepare release

    This reverts commit edde2026f4f9759288f5546eeaace9f3210778cc.

commit ce2be3911f7b73785ba988ff96442ff6c7c2f282
Author: bigopon <bigopon.777@gmail.com>
Date:   Tue Sep 18 10:07:01 2018 +1000

    fix(template-compiler): remove node after parsing (#181)

commit 38c1d7b179ce101c8bba067b7030479bf15d5eb5
Author: bigopon <bigopon.777@gmail.com>
Date:   Mon Sep 17 09:22:26 2018 +1000

    test(binding): increase tests coverage (#149)

    * ci: temporarily disable flaky and time-consuming jobs

    * test(binding): increase tests coverage

    * flat nested loop in test, short circut on node

    * rename: loopCartesianJoin -> eachCartesianJoin

    * fix update index

    * chore(observation): small typings fix

    * refactor(test-util): change spread to array for eachCartesianJoin

    * fix(observer-locator): do not access getter Node prototype properties directly

    * fix(ast): default to PLATFORM.noop for unsupported AST operations

    test(binding): small tweaks to cartesian join, increase test coverage on binding

    * refactor(test): take string dependency out of cartesian join

    * chore(test): fix slip-up in the loop

    * test(binding): cleanup and add preliminary from-view tests

    * test(binding): add from-view tests, various small fixes in testing util

    * test(binding): move cartesianJoin to test-lib and split up factory / non-factory version

    * test(binding): add changeSet assertion

    * fix(setter-observer): fix an issue where the target property isn't updated during bind()

    fix(property-observer): fix an issue where undefined wouldn't propagate to the target if it's the first value

    test(binding): add preliminary two-way binding tests

    * test(binding): beef up two-way tests and add some comments

    * test(binding): remove .only

commit acde70e66862ac6767533794adb6a04196613dc1
Author: Praveen Gandhi P <praveengandhi.p@gmail.com>
Date:   Mon Sep 17 02:57:55 2018 +0530

    examples: jit-fuse-box-ts (#179)

    * examples: jit-fuse-box-ts

    * npm script renamed to match with README

    * all examples README and package.json scripts unified

commit 238450d1584eb8893736fb8a457e3656f9bba834
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 08:21:19 2018 +0200

    ci: actually commit to release after merging (#178)

commit b2c56a19024c61bcf9fcb00c03d8ea018f9d2dcd
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 06:08:46 2018 +0200

    fix the tags workflow (#177)

    * test

    * ci: create explicit tag workflow

    * ci: remove --no-ff flag

commit 090cadb5f1e8c6b5c17c3af2af8be25ce13e2c38
Author: Rob Eisenberg <rob@bluespire.com>
Date:   Sat Sep 15 20:47:31 2018 -0700

    chore(all): test release

commit 12e2e1009b1d51372ab3bd3fc539c9a3a34db1d9
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 05:06:00 2018 +0200

    ci: add tag filter for install job (#176)

commit edde2026f4f9759288f5546eeaace9f3210778cc
Author: Rob Eisenberg <rob@bluespire.com>
Date:   Sat Sep 15 19:36:55 2018 -0700

    chore(all): prepare release 0.2.0

commit 66afb94b367eccc5cf1aefa69afa736434d5dc0b
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 03:39:34 2018 +0200

    ci: temporarily disable flaky and time-consuming jobs (#175)

    * ci: temporarily disable flaky and time-consuming jobs

    * ci: let e2e no longer depend on build job

commit f2083ef837b28752ee08b6ce525a4d4998dcad4f
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 02:24:19 2018 +0200

    chore(tests): add verbose test command for mocha reporter (#174)

commit 32c1c739f091ad700291ea2475a1241ab000ade1
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 00:28:21 2018 +0200

    chore(tests): use progress instead of mocha reporter to speed up the test runner (#172)

commit bf2bd18c6e7e6d510f18cfb73a1d17f56d356d57
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 00:07:12 2018 +0200

    Upload iife bundles to azure (#170)

    * ci(upload): add upload scripts that uploads iife bundles to azure storage

    * chore(bundle): fix logging typo

    * ci(azure): add logging to clarify destination urls

    * docs(examples): replace local file with blob url

    * build(iife): fix iife full bundle

    * docs(examples): remove package.json and update readme

commit 978c2f01a4d3c27feb1f48454ee9990f193e928e
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Sep 14 08:30:22 2018 +0200

    examples (#169)

    * docs(examples): cleanup and update jit-aurelia-cli

    * docs(examples): cleanup and update jit-browserify

    * chore(examples): add rimraf scripts

    * chore(examples): update gitignore

    * docs(examples): cleanup and update jit-parcel

    * docs(examples): move examples to top-level folder

    * docs(examples): add webpack example

    * docs(examples): add iife example

    * docs(iife): single bundle file

commit 76c783cd8920a4eccd944023b82aea2a89a2e494
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Sep 14 05:07:26 2018 +0200

    chore(benchmark): fix tsconfig tslib issue (#168)

commit 5be90727b8d81fbfe1b879c1bb860bf9b52a3118
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Sep 14 01:43:30 2018 +0200

    build(all): first attempt at rolling up (#161)

    * build(all): first attempt at rolling up

    * build(rollup): use normal sourcemaps

    * build(rollup): add tslib and fix named globals

    * build(rollup): change package.json main/module

    * test(e2e): add tslib

    * test(e2e): add package-lock

    * build(rollup): cleanup scripts, add iife outputs

    * build(all): add browser field for iife modules

    * build(rollup): cleanup bundle creation, explicitly name iife files

    * ci(e2e): switch to npm ci for installing the e2e tests

    * build(all): cleanup build scripts and outputs

    * build(rollup): fix cleanup scripts and make bundle a bit more flexible

    * chore(all): remove publish:local from npm init script

commit cc48ffad85878026e550e7008c57f9db87c9233d
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Wed Sep 12 19:15:43 2018 -0700

    doc(readme): adding more badges

commit a71092f9f7fcb5101900eb515964ca3ae2bbd115
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Sep 13 03:49:56 2018 +0200

    chore(codeclimate): remove comment that might break yml (#162)

commit c923f1ff0673c5bad646adf866bfa8ae70cea538
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Sep 13 03:49:16 2018 +0200

    test(e2e): properly mark failures and improve logging/reporting (#159)

    * test(e2e): properly mark failures and improve logging/reporting

    * test(e2e): restructure and add tests for select element

    * test(e2e): fix errorcode typo and add todo specs back in

    * test(e2e): improve titles and add a few more select tests

    * test(e2e): fix slip-up in select test

    * test(e2e): add some more small fixes and disable failing tests for safari/edge

commit 9834cbab2bd9c8aa297bb9c3a3465840e0fc9e9d
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Sep 13 03:44:40 2018 +0200

    chore(binding): improve typings (#156)

commit b90741aec2d781ab54c15752135b75cb3a97e9f4
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 12 06:30:01 2018 +0200

    ci(all): add automated publish@latest script / minor tweaks (#158)

commit 4b225bd1cafd72d8d9ea16f5484038a362c5be70
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 12 05:53:24 2018 +0200

    chore(all): add validate-commit-msg hook and commitizen script (#157)

    fix #127

commit 2cfded18f26e135ad6ea85c2a239f321415a37cf
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Sep 11 20:38:14 2018 -0700

    chore(codeclimate): disable similar code check

commit 823cb66be03eff320351e68cdb66815dcf86dd81
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 12 00:15:16 2018 +0200

    chore(all): cleanup build scripts, fix nightly dependency versions (#155)

    * chore(all): cleanup build scripts, fix nightly dependency versions

    * chore(scripts): remove unused protractor conf

    * doc(scripts): add info where the typings come from

commit 66504c8442621e993d46b0efe13c29e9b0f8193d
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Sep 11 15:12:46 2018 -0700

    Dynamic Composition - Phase 1 (#124)

    * feat(create-element): experimenting with supporting JSX

    This PR adds a createElement function with the same signature that compilers generate JSX for. The implementation isn't complete but should serve as a PoC for how we can hopefully accomplish several things:

    1. Enable custom elements to support a `render` method that returns JSX for the element's template.
    2. Enable an low-level API for creatings element templates, view factories and views, for extremely dynamic template generation without the need for the view compiler.
    3. Provide the low-level API to be used by the `compose` element in order to support declarative dynamic composition.

    * fix(custom-element): address typo in method check

    * feat(compose): incrementally working towards implementation

    * fix(custom-element): remove special $child prop

    Instead, let people add directly to the attachables and bindables collections. We still need to address the issue with views where they always get their scope from the renderable they are in. Compose will need to provide a special scope.

    * feat(view): remove animations apis from view

    These were temporarily added during a refactoring earlier. They aren't used anywhere now that ViewSlot is gone. So, I'm removing them to simplify the View implementatino before I add some new stuff.

    * feat(renderable): enable dynamically added children

    * feat(custom-element): enable better handling of containerless scenarios

    * fix(compose): correct inject metadata

    * feat(compose): enable composing of loose views

    * feat(compose): support rendering more types

    * feat(createElement): support text nodes and targeted instructions

    * test(compose): stubbing out basic tests

    * test(compose): first set of compose tests

    * test(compose): add basic swap tests

    * chore(render-context): remove unused imports

    * chore(compose): clean up provide view logic

commit ac133febcb65e939d923848fd92e2ca24622623c
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Sep 11 21:48:55 2018 +0200

    chore(all): add refresh convenience script (#154)

    * chore(all): add refresh convenience script

    * doc: explain refresh command

    * chore(refresh): use git rm instead of rimraf

commit 649b960f2f681ff242f8a6533899a7c05c20bb6a
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Sep 11 21:45:50 2018 +0200

    test(kernel): add toArray() and unit tests (#153)

commit a2be6185b805de6e5a61bdad88250e3d41cd2ef7
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Sep 11 05:03:22 2018 +0200

     chore(ci): cleanup and combine coverage more properly (#152)

    * chore(ci): cleanup and combine coverage more properly

    * test(di): fix test error for firefox

    * chore(codeclimate): fix codeclimate coverage thing

commit 6bc2d4d2eb845576c56767a095de6c2639718cf9
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Sep 11 00:46:41 2018 +0200

    DI tests (#150)

    * chore(test): extract test util into shared files

    * test(di): add initial tests to find edge cases for designParamTypes

    * test(di): improve test coverage

    fix(di): invoke correct method on array strategy resolver
    feat(di): recurse through static registrations to find register methods in more edge cases
    fix(di): invalidate Object keys to help diagnose invalid design:paramTypes
    refactor(di): append new resolvers on existing keys to a single array strategy resolver instead of nesting them
    fix(di): add a non-any type alternative to the InterfaceSymbol<T> so that container.get() returns correctly typed instances

    * test(jit): fix a few broken tests

    * chore(di): improve typings

commit a87b09bb6bc20c6f3694fefe1850d59249001edb
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Mon Sep 10 07:30:46 2018 +0200

    chore(ci): make the distribution of tests more sensible (#151)

    * chore(ci): make the distribution of tests more sensible

    * chore(browserstack): don't run chrome/ff tests on OS X for now

    * chore(ci): add some comments to config.yml

commit 1c8046c46c2a6db7669c52fa537258e90e62c3fe
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 9 23:10:53 2018 +0200

    browserstack (#144)

    * test(jit-browserify): initial implementation for browserstack

    * chore(ci): split up e2e build from run

    * chore(ci): add basic browserstack targets

    * chore(ci): actually enable browserstack

    * chore(ci): reuse steps

    * chore(ci): use a different port for browserstack

    * chore(ci): store firefox unit test artifacts

    * chore(ci): use a different port per target

    * chore(ci): reuse more steps and use local identifier for parallelism

    * chore(ci): use unique local identifier

    * chore(ci): use localhost again for webdriver

    * chore(ci): try them one by one?

    * chore(ci): docker doesn't like ip addresses today

    * chore(ci): or it's the local identifier

    * chore(test): increase the timeout for slowpoke browser

    * test(browserstack): add a specialized top-level e2e folder

    * chore(browserstack): store allure report

    * chore(ci): big suite for master, small suite for other branches

    * chore(ci): cleanup circleci yaml

    * chore(browserstack): add extra timeout for edge..

    * chore(ci): generate allure report

    * chore(browserstack): fix edge check

    * chore(ci): generate allure report in separate step

    * chore(browserstack): use safari 10 instead of 11 due to bug

    * chore(ci): clean up env variables, post link to allure

    * chore(ci): fix imports

    * chore(ci): post allure to PR comment

    * chore(allure): fix typo

commit cccab1f9c2df8d18a117b52e1d5322a165fab2bd
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 9 04:09:00 2018 +0200

    Code climate (#148)

    * chore(codeclimate): loosen complexity and add proper excludes

    * chore(codeclimate): exclude array-observer

    * chore(tslint): remove tslint-no-unused-expression-chai since tests are already ignored

    * chore(codeclimate): fix exclude globs

commit 4aa853861a47bfe145c30dafcf11af4e6d7a0ef1
Author: bigopon <bigopon.777@gmail.com>
Date:   Sun Sep 9 11:52:52 2018 +1000

    feat(template-compiler): as-element (#146)

    * feat(template-compiler): as-element

    * remove redundant test

commit eccc71fd53093b4376cbbc4008fe6e88240fd2e7
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Sep 8 10:58:47 2018 -0700

    chore(codeclimate): remove tsling plubin

    I believe that the fact that we're using a custom lint rule based on a special NPM module is causing codeclimate to fail, since it doesn't have the referenced package when it runs linting.

commit c2a8324ee5320f52a09b19f1e44401fa1086280a
Author: bigopon <bigopon.777@gmail.com>
Date:   Sun Sep 9 02:18:56 2018 +1000

    feat(Let): let binding (#132)

    * feat(runtime): Let binding, priorityInstructions

    * refactor(Let): add LetElementInstruction

    * fix(let): cleanup

    * fix(template compiler): slot signal

commit 76d1aa3af248c435dd6e895a1758f7cf06d07cf4
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Sep 7 23:16:24 2018 +0200

    chore(ci): add firefox test runner (#142)

    * chore(ci): add firefox test runner

    * chore(ci): add test results for firefox

    * test(firefox): don't test shadowdom if it's not available

    * test(firefox): correct copy paste error

commit 6920653a27b0e68c1363130a8da8c4900fe1e3b5
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Thu Sep 6 23:15:42 2018 -0700

    doc(readme): add BrowserStack logo

    This is needed in order to get open source support from BrowserStack.

commit 1075d37994e82d69ba68b30001eddf284367fca8
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Sep 7 05:14:52 2018 +0200

    badges (#141)

    * chore(test): add bail option and blackbox testing framework

    * chore(all): add a normal build script for consistency

    * chore(all): add license to all packages

    * doc: add preliminary documentation

    * docs: add readme for examples

    * docs: clarify how to speed up tdd

    * docs: fix url typo

    * docs: add extra tip for speeding up tdd workflow

    * doc: fix typo

    * chore(all): remove parallelism from top-level test/lint for better console output readability

    * docs: add missing hashtag to engineering readme

    * docs: fix typo in badge

    * docs: a little bit less badges

commit ac95588c1425a9650e4af58849887eb68e60b6bd
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Thu Sep 6 20:09:31 2018 -0700

    chore(tools): add basic code climate config file

commit eccb1960ad253229c651cfa0c41ad7b418887856
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Sep 7 04:07:09 2018 +0200

    initial docs (#140)

    * chore(test): add bail option and blackbox testing framework

    * chore(all): add a normal build script for consistency

    * chore(all): add license to all packages

    * doc: add preliminary documentation

    * docs: add readme for examples

    * docs: clarify how to speed up tdd

    * docs: fix url typo

    * docs: add extra tip for speeding up tdd workflow

    * doc: fix typo

    * chore(all): remove parallelism from top-level test/lint for better console output readability

    * docs: add missing hashtag to engineering readme

commit 43b4b2c74dce355fa1bcbbb4da3c030f6756a99e
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Wed Sep 5 16:28:23 2018 -0700

    doc(readme): clean out old stuff

commit 581a6806621a4096d5f74cc149abc89c624d371f
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Sep 6 01:00:18 2018 +0200

    fix(observer-locator): add collection length back in, fix precedence, add tests (#139)

    * fix(observer-locator): add collection length back in, fix precedence, add tests

    * fix(length-observer): add subscribe method

commit cf8390bc88ab528feda6c8e9f3c8ed90a5da8060
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 5 20:08:16 2018 +0200

    Fix runtime behavior (#138)

    * fix(runtime-behavior): pass target flags to getterSetter observer

    * fix(binding): report flags instead of nonexistent context

commit 606c909a785084354e11a563c65ab0cab2c70acc
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 5 07:54:11 2018 +0200

    chore(ci): restore cron schedule and default workflow (#137)

commit 9de6ea49698fdcb52401227399ceb50f589b12a7
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 5 07:45:18 2018 +0200

    chore(ci): fix oauth (#136)

    * chore(ci): fix oauth

    * chore(ci): try a sneaky publish :)

    * chore(ci): don't verify npm access

commit 05e6536728bfae035e5a434481c40c632e41d7d4
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Sep 4 20:39:06 2018 -0700

    testing auto publish

commit 1b7c76430f312e49ac91eb586c0cfb845a98628d
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 5 05:25:42 2018 +0200

    nightly publish (#135)

    * chore(all): bump the rest up to 0.1.1

    * chore(all): prepare publish-nightly scripts

    * chore(ci): add cron schedule for nightly publish

    * chore(ci): cleanup config.yml formatting

    * chore(all): explicitly specify files to publish, cleanup gitignore

    * fix(examples): correct versions

    * chore(ci): disable parcel e2e job until the module duplication is solved

    * chore(all): cleanup redundant outputs and use newer target version

    * chore(ci): use provided tag

    * chore(ci): add npm auth

commit 5920299744115f3ac0d5247d8d1b10cd31d817b9
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 5 03:59:07 2018 +0200

    refactor(template-compiler): move stuff around / fix various edge cases (#134)

    * refactor(template-compiler): move stuff around / fix various edge cases

    * refactor(template-compiler): hoist attribute inspection array / fix tests

commit 1067e0374de66a6acecd3094fa8eb159c7d29f6e
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Mon Sep 3 23:15:11 2018 +0200

    implement instructionCompiler / renderStrategy (formerly bindingCommand) (#133)

    * feat(jit): implement instruction-compiler decorator

    feat(runtime): implement render-strategy decorator
    refactor(template-compiler): various fixes and cleanups

    * refactor(template-compiler): move binding commands to decorators

    * fix(template-compiler): workaround for DI issue

    * fix(binding-command): rename file

    * fix(binding-command): pass correct bindingType to parser

    * chore(renderer): fix linting errors

    * chore(template-compiler): fix linting errors

    * refactor(binding-command): add handles method

commit d17dbd92ab8cc4e7348c5311ddf0be8183070ec4
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 2 06:24:57 2018 +0200

    chore(all): add dev script and enable parallelism in some scripts (#131)

commit d2f632f217eb2ad12b920c6e4e09f266b4b6e555
Author: bigopon <bigopon.777@gmail.com>
Date:   Sun Sep 2 13:47:35 2018 +1000

    fix(template-compiler): template controller instrs order, linking (#129)

commit 0c2a40051b08237695f72d25da34304ad0b07d77
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 2 05:36:23 2018 +0200

    Cleanup (#130)

    * chore(all): remove aurelia-pal-browser and aurelia-polyfills

    * chore(all): add more test-friendly chrome flags

commit 8c70e39c5aec6f6b7540e354d21ea19315df88c0
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 2 01:47:55 2018 +0200

    chore(all): separate local build from ci build (#125)

    * chore(all): separate local build from ci build

    * chore(all): fix recursion issue

commit d584528ecef859334bbb7739fde9231bd07ce1e0
Author: bigopon <bigopon.777@gmail.com>
Date:   Sun Sep 2 08:13:35 2018 +1000

    Template compiler (#121)

    * feat(JIT): template compiler

    * handle template compiler

    * 2nd step template controller compilation

    * custom element compilation

    * adjust test

    * stronger assertion test

    * better shape for attr / element compilation

    * finish implementation, add tests

    * adjust tests

    * preserve next sibling reference

    * fixes + tweaks

    * fix(observer): store obj and propertyKey

    * handle no attr value case

    * fix(template-compiler): merge camel-kebab changes and reuse platform functions

    * fix(template-compiler): fix slip-up with attribute name

    * feat(TemplateCompiler): surrogate behavior

commit fc9cbffb86a102ed84265e7cd396eb81a747de46
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sat Sep 1 18:16:44 2018 +0200

    refactor(all): remove viewslot (#123)

commit 8debe4f78f9c0c351419c77969b66086549b7ee6
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sat Sep 1 18:12:19 2018 +0200

    camel-kebab (#122)

    * feat(kernel): add fast camelCase and kebabCase functions with caching

    * refactor(bindable): use platform.kebabCase

commit 6381c5b14cf541873f87dfb2c2e2a6a9aba094b4
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sat Sep 1 06:01:45 2018 +0200

    Event manager (#120)

    * fix(event-manager): use spec-compliant composedPath for shadowdom / fix linting

    * chore(listener): fix linting errors

    * fix(event-manager): fix .delegate and .capture, and add unit tests

    * test(jit): enable capture/delegate tests

    * test(event-manager): add preliminary shadow-dom tests

    * fix(typings): export event subscribers

    * test(runtime): remove .only

    * fix(event-manager): export listener tracker to resolve typing issues

commit 797674faa552c767a4db2f6bc477644a0ead0ff4
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Aug 31 02:21:03 2018 +0200

    Prepare publish (#115)

    * chore(all): add tsconfig and npm scripts for other build outputs

    * chore(all): add additional package.json fields

    * fix(tsconfig): correct extends path

    * chore(all): add npm-run-all to root and remove parcel-bundler

    * v0.1.1

    * v0.1.1

    * chore(all): fix tsconfig outdir

commit acf9ebc03e84df5835dae0de8f5357aba8769937
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Aug 31 02:11:33 2018 +0200

    ast improvements (#119)

    * refactor(ast): switch while loops to for loops (same perf, more readable)

    perf(ast): various small perf tweaks / cleanup redundancies
    chore(ast): fix linting errors

    * perf(ast): first evaluate, then connect

commit 8a8b619dc74349bc3958d387b4c55e42ff82f444
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 30 04:28:04 2018 +0200

    e2e benchmark fixes + perf improvements (#110)

    * fix(e2e-benchmark): simplify markers and use setTimeout to include render time

    * perf(binding): remove unnecessary work / cleanup

    * refactor(binding): convert subscriber-collection to decorator for sync and async

    * chore(observers): utilize interface type merging

commit 2ccc770673d59a164aee464ec5e5bdef03332856
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Wed Aug 29 16:52:25 2018 -0700

    refactor(view): increase cohesion of view code (#111)

commit 9517febc0d223b5338b31811b5f93655262643aa
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 30 01:51:58 2018 +0200

    chore(examples): initial setup for aurelia-cli (#99)

    * chore(examples): initial setup for aurelia-cli

    * fix(jit-aurelia-cli): apply huochunpeng's fixes

    * fix(jit-aurelia-cli): fix html file

    * chore(jit-aurelia-cli): add e2e tests

    * chore(ci): add jit-aurelia-cli e2e tests

commit a3db3a8da002a2373bdcc8db693fe2e24d4ecc60
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 28 08:04:36 2018 +0200

    chore(examples): add e2e-benchmark (#108)

    * chore(examples): add e2e-benchmark

    * chore(e2e-benchmark): move vnext to subfolder and add vcurrent to benchmark

    * chore(ci): include other benchmark in circleci

    * fix(e2e-benchmark): fix vcurrent

    * fix(e2e-benchmark): add top-level deps

    * chore(ci): install top-level benchmark deps

    * fix(e2e-benchmark): various fixes to make it all work

    * chore(ci): fix paths

commit 5577a53510218195ead43d156b0919ac31a9fe21
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Mon Aug 27 20:57:50 2018 -0700

    refactor(runtime): lift resource methods (#107)

    * fix(binding-resources): lift register methods

    * fix(custom-attribute): life lifecycle methods

    * fix(custom-element): lift lifecycle methods

    * feat(binding-context): add helper for creating a basic scope

commit 9236dec0903870ee178057ee72c2966d7c6c3a04
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Mon Aug 27 10:18:36 2018 -0700

    fix(di): convert invokers to an array (#106)

    Also, did a number of lint fixups along the way.

commit 22b32b5adfd70ebcb807e99b06c16f12841bb46a
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sun Aug 26 19:25:42 2018 -0700

    fix(runtime): convert if/else to use render location (#96)

    * fix(runtime): convert if/else to use render location

    * test(templating): fix template controller tests

    The fake view was a bit too fake :) As a result, it was possible to incorrectly implement template controllers.

    * refactor(if/else): some internal refactoring

    * refactor(if/else): remove some more duplication

    * test(if/else): add basic tests

    * test(if/else): a couple more basic tests for lifecycles

    * fix(if/else): set default value

commit a52a27b2ff8bcf1e8799f1f5194afb78ffa27e6e
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Mon Aug 27 00:39:22 2018 +0200

    fix test typings (#105)

    * chore(all): remove path alias from unit tests

    * chore(test): fixup relative paths and fix a few typing errors

commit bb322910a3ff49704e03d3e27e3846a0b79fb1b8
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Aug 26 23:32:25 2018 +0200

    resource-tests (#104)

    * fix(binding-behavior): fix BindingModeBehavior

    * fix(binding-behavior): fix debounce, add unit tests

commit 7ade76e35c1d4ec69f69e6090aa0819404281f05
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Aug 26 23:30:25 2018 +0200

    add aot and router packages (#103)

    * chore(aot): add aot package boilerplate

    * chore(router): add router package boilerplate

commit 9e1eb5a25b09f221a542974b63b3c9e9ce6b4749
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Aug 26 23:28:50 2018 +0200

    feat(dbmonster): make dbmonster aot example work again (#101)

    * fix(repeat): reuse views when re-binding and allow null observer for non-collection iterables

    * feat(dbmonster): make dbmonster aot example work again

commit d80321192aa9240fd118fdfc458d80e09652a38a
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Aug 26 23:25:03 2018 +0200

    Browserify (#100)

    * feat(examples): add browserify example

    * chore(ci): add jit-browserify e2e tests to circle.yml

    * fix(jit-browserify): build before serve so the e2e tests can run

commit 53864a1c7839febf792966d6459ca62801f94d23
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Aug 26 07:34:44 2018 +0200

    feat(jit): move/extend attribute value parsing to the expression parser (#98)

    * refactor(parser): extract template/object/array literal parsing into functions

    * chore(typescript): fix tsdk and tslint paths

    * refactor(jit): move interpolation parsing to the expression parser

    * fix(expression-parser): use a separate lookup for non-interpolation attribute values

    refactor(expression-parser): make bindingType mandatory and pass the correct types to the parser everywhere

    * refactor(template-compiler): make compiler flow a bit more logical

    * fix(template-compiler): use the target name instead of full name + fix tests

commit 1ddff95f57cf63700a30a1bbf0993e5a86abebbc
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sat Aug 25 03:58:57 2018 +0200

    refactor(instructions): change number type to string (#97)

    * refactor(instructions): change number type to string, make const enum

    * fix(template-compiler): add dest to one-time instruction

    * test(renderer): add unit tests to verify parts of instruction processing, make some binding properties public

    * test(template-compiler): fix test

commit 30e1099eac4e021f56d11741c4adb7778f82fcef
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Aug 24 22:24:59 2018 +0200

    fix(value-attribute-observer): don't notify subscribers if value hasn't changed (#95)

commit 4dc6cb8a7b64b9ae52af33c1dc5ec323608b8623
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Aug 24 16:57:49 2018 +0200

    Subscriber collection (#91)

    * refactor(binding): decouple BindingFlags.context from subscribers

    * chore(test): fix typing errors

    * fix(element-observation): fix binding flags

    * refactor(binding-flags): cleanup unused flags

    * chore(test): switch to text-summary coverage

    * fix(checked-observer): fix fromValue updates / add unit tests

    refactor(binding-flags): add fromFlushChanges to reduce batching redundancy, and expand the zeroes

    * chore(property-observation): fix typing issue

    * refactor(binding-flags): rename binding-flags

    fix(element-observation): remove error-causing notify

commit 6607a140a585e119cca3bc8cdb1a3bb9f1087402
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Aug 21 07:52:12 2018 -0700

    fix(runtime): remove lazy bindable location and encapsulate observer (#90)

    * fix(runtime): remove lazy bindable location and encapsulate observer

    * refactor(property-observation): improve parameter naming

commit 08d4baced32965a95fd4f8e6408ded2ca6593a6e
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 21 01:50:04 2018 +0200

    refactor(dom): use uppercase tag names (#88)

    * refactor(dom): use uppercase tag names

    * fix(event-manager): use uppercase tagname

    * refactor(dom): remove normalizedTagName

commit d6a10b5fc2c30a18601e4df4d913aa466dd14a24
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Aug 19 16:32:54 2018 +0200

    Examples (#68)

    * doc(examples): initial setup for parcel+jit example

    * chore(jit-parcel): remove requirejs

    * chore(all): add jit-parcel example to lerna, change to peerDependencies

    * chore(jit-parcel): use normal dependencies

    * chore(all): add npm pack script & use the packages for the example

    * fix(jit-parcel): remove else for now, fix instructions

    * fix(template-compiler): wrap the nodes in a fragment

    * chore(examples): add convenience wrapper script to setup examples

    * fix(jit-parcel): remove path mappings from tsconfig

    * chore(all): remove examples from lerna and init script

    * chore(jit-parcel): update package-lock

    * fix(template-compiler): use firstElementChild instead of wrapper

    * feat(observers): auto-enable collection observers and make the toggles idempotent

    * fix(template-compiler): various small tweaks and fixes, make example work

    * fix(jit-parcel): make the example work with something simple

    * fix(aurelia): set isStarted=true after tasks have finished

    * test(jit-parcel): add e2e tests

    * chore(ci): configure e2e tests for circleci / organize a bit

    * fix(e2e): move publish into e2e job

    * fix(ci): fix typo

    * fix(ci): set the correct path before each cmd

    * fix(ci): try a different approach for the workspaces

commit c1dd8e0ea5d88382a2753d773a038ae067cf1bdd
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Aug 17 09:44:33 2018 -0700

    doc(readme): use code climate for coverage badge

commit bcefe62b016cd54ad4b2e133489950137595ccf8
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Aug 17 18:25:07 2018 +0200

    chore(ci): add code coverage for code climate (#73)

    * chore(ci): add code coverage for code climate

    * chore(ci): try a different approach for cc

    * chore(ci): add code climate coverage id

commit 11b26a57874dbf9ce10d0365dbcd2e9446f08201
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Thu Aug 16 15:57:25 2018 -0700

    fix(runtime): dry up bindable callback behavior (#71)

commit dd5b48adbe1dc6bc4db511130475ed6ff6ee4596
Author: EisenbergEffect <rob@bluespire.com>
Date:   Wed Aug 15 21:48:59 2018 -0700

    test(runtime): fix broken tests due to changed API

commit 49484e30385d1ae1af334cde20e1b0a60257cef7
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Wed Aug 15 21:42:31 2018 -0700

    refactor(all): improving a couple of method names related to resources (#70)

commit 9e29f421c9dc0b59379cf9ca56eb0ed66b8c2e62
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 16 06:27:20 2018 +0200

    refactor(all): more flags (#69)

    * refactor(all): more flags

    * refactor(binding-flags): rename and add clarifying comments

    * docs(binding-flags): add a few more comments

    * refactor(binding-flags): change context to origin

    * test(binding): fix broken test

commit 40e51527cd09e7422fb2927c9ffd9835cd0a4ff0
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 16 02:20:15 2018 +0200

    chore(test): create test file skeletons to make it a bit easier to get started (#65)

commit 5830a3650eebf37431162d08882a9796d97de400
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Wed Aug 15 16:40:27 2018 -0700

    feat(runtime): convert with attribute to use render location (#64)

    * feat(runtime): convert with attribute to use render location

    * test(with): add basic tests and refactor test assistance

    * testI(runtime): reduce duplication in template controller tests

    * test(runtime): make shared templatr controller tests more composable

    * feat(runtime): improvements to attribute and element bindable control and common interfaces

    * fix(runtime): correct observer current value update and callback ordering

    * test(kernel): add Toggle tests

    * fix(runtime): ensure all bindable callback slots are initialized

    * fix(runtime-behavior): remove use of Toggle in favor of simple boolean

commit c7a82855b8cbc7ccc2a5e9e6efd8c5297db28855
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 14 20:58:56 2018 +0200

    fix(dom): append nodes to the correct thing (doh) (#66)

commit 6889328b2ae518bde54288b6da257eef81ba6244
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 14 05:59:23 2018 +0200

    Repeater (#63)

    * refactor(repeater): use render-location instead of view-slot / general cleanup

    * refactor(repeater): first implementation step for ForOfStatement

commit c2a5e8289b7ba44dfe02c1ca63b003ce6fae6581
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 14 04:12:05 2018 +0200

    Observer rework (#60)

    * refactor(binding): move the responsibility of batching target mutations to the target observers

    test(element-observation): add preliminary unit tests for element observers
    fix(repeat): adjust repeater logic + tests to new mutation batching mechanism

    * refactor(observation): move all element observers to element-observation

    * refactor(class-observer): update class-observer to the new mutation batching mechanism

    * refactor(checked-observer): update checked-observer to the new mutation batching mechanism

    * refactor(select-value-observer): update select-value-observer to the new mutation batching mechanism

    * chore(types): remove accidentally added file

    * chore(binding): cleanup unused accessor object

    * refactor(observers): rename/move target accessors, cleanup typings, fix linting errors

    * refactor(target-accessors): remove redundant previousValue

    * refactor(observers): move from 'hasChanges' to 'this.oldValue !== currentValue'

    * test(observers): re-sync spec structure for target-accessors

    * chore(binding): improve typings

    * refactor(observers): extract common logic out into a decorator / cleanup select-value-observer

commit 981e6bf4b9ef339df05aa1d85880e03e2b5a2930
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Mon Aug 13 17:39:41 2018 +0200

    chore(all): update lerna to 3.x non-rc (#62)

commit c4e26d3970a0bae5e8b909ee24a16ba37cb26b25
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Mon Aug 13 08:39:05 2018 -0700

    fix(runtime): interface clarity (#61)

    * refactor(runtime): renaming core interfaces for clarity

    * test(runtime): fix up tests after renaming

    * fix(runtime): correct kernel import

    * fix(runtime): make renderable and view factories interfaces have no default

commit 7d1f8d4deb834cb4efbcbc4e76621d5eee82f955
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Aug 11 16:05:32 2018 -0700

    feat(templating): convert replaceable to use render location (#59)

    * feat(templating): generalize attribute and element attachable child

    Previously, custom elements and custom attributes had a $slot property that could point to a render slot that was generated for template controller attributes or when something like compose asked for a slot representing itself. This change generalizes the mechanism by changing $slot to $child and switching to the more general IAttach interface, allowing custom attributes to connect an arbitrary attachable child into the attach lifecycle. In upcoming commits, this will enable a simplified implementation of replaceable and other single-child template controllers. Note that because IRenderSlot is an IAttach, advanced template controllers that manage multiple views still attach in the same as before.

    * feat(templating): switch replaceable to use render location

    * refactor(runtime): move test fakes to a shareable location

    This is in preparation for writing some more tests for other templating resources.

    * test(templating): add tests for replaceable attribute

    * test(replaceable): change chai assertion method

commit 144b1c6347a4eacfdce82e130eaaba3ee01d61f5
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sat Aug 11 18:47:11 2018 +0200

    feat(binding): implement ChangeSet (#58)

    * feat(binding): implement ChangeSet

    refactor(binding): use ChangeSet instead of TaskQueue
    refactor(property-observer): make reusable decorator for setter/observer

    * fix(observation): fix subscriber typing

commit 3c9735e2c811df21da7c8f5333bc14433804367a
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Aug 10 21:42:25 2018 -0700

    feat(templating): add the low-level render location abstraction (#57)

    * feat(templating): add the low-level render location abstraction

    * refactor(runtime): use "render location" terminology throughout

    Some minor refactoring in the render location tests as well.

    * fix(dom): correct TS error

commit 19854e4224ed760cd6a9ab8f6d38d0edb2d10ac2
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Aug 7 19:32:08 2018 -0700

    doc(readme): add better TS badge

commit a052f8b79a022e70c11588c9e6a08bf20a71f52d
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Aug 7 19:20:46 2018 -0700

    chore(doc): add license badge

commit b3891acd8c7fc2da378e38a952b010ff3ddcfd60
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Aug 7 19:15:13 2018 -0700

    doc(readme): remove improperly sized TS badge

commit c48e9943222c70279a91635653efa601d7856073
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Aug 7 19:09:30 2018 -0700

    doc(readme): TypeScript badge

commit 0a17b16827a86c5e5630f1a66777dad2f6466987
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Mon Aug 6 23:21:26 2018 -0700

    Remove Shadow DOM Emulation (#56)

    * chore(runtime): initial deletion of shadow emulation code

    * feat(custom-elements): define basic abstraction for element projection

    Still a few TODOs left for the basic implementation.

    * doc(custom-element): add todo notes for DefaultSlotProjector

    The current set of projectors will handle every custom element scenario. However, a set of common scenarios around default slots could be further optimized. This commit adds notes outlining how a DefaultSlotProjector would work and under what conditions it could be used.

    * fix(templating): address trivial errors when removing emulation

    * fix(templating): remove shadow dom from compose element

    * fix(all): last few corrections from the merge

    * test(dom): fix unit tests

    * feat(runtime): enable getting the custom element behavior...

    ...for a particular node

    * fix(runtime): various fixes related to compose

commit 70b669667a63cbf566fa6a19260ad876eee8f8b6
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 7 08:20:43 2018 +0200

    refactor(all): remove vCurrent repeater and collection observers (#55)

commit 8b44b1cd3a6913c9ae5e9824aced1a7b93b358d6
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Mon Aug 6 22:56:29 2018 -0700

    doc(readme): change CircleCI to shield style badge

commit a309ad6f69e99d1d929adb4f1bd2f17e21556bd0
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Mon Aug 6 22:52:08 2018 -0700

    doc(readme): add lerna badge

commit 8ab2173f304d231346a3382f440c22d148d307ce
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 7 02:30:11 2018 +0200

    feature/jit-2 (#52)

    * chore(lint): allow switch without default

    * wip

    * feat(jit): implement interpolation & iterator (with destructuring) parsing

    feat(ast): initial implementation of ForOfStatement for iterating different collection types
    feat(ast): add metadata to the AST for ExpressionKind

    * refactor(jit): merge attribute name/value parsers into template-compiler

    refactor(jit): use IResourceDescriptions for looking up resources
    feat(jit): initial skeleton for customizeable binding commands

    * feat(jit): simple first implementation for template-compiler

    * fix(all): correct types/properties and fix unit tests

    * fix(template-compiler): small fixes, setup first simple integration tests

commit cbe0e02fb98bc98bd8f901894c7128fcf367a8f3
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sun Aug 5 21:16:18 2018 -0700

    doc(readme): fix typos

commit ce7d2502a9a105d345f60850f67ca66df60bd1d9
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sun Aug 5 21:15:41 2018 -0700

    doc(readme): cleaning up the readme a bit

commit f0da3f34c8fd59830382951ffeb8ea0a28cc32d2
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Mon Aug 6 00:13:55 2018 +0200

    chore(all): cleanup trailing whitespaces (#54)

commit 69952c2835b17956a43d954f50739b64b6c7ae01
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 2 05:57:27 2018 +0200

    feature/line-endings-3 (#51)

    * chore(git): force LF on everything

    * chore(all): reset line endings #2

commit 43283fff87eef6651be128e3835dda1d15b2e2c5
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 2 05:56:37 2018 +0200

    chore(ci): remove dockerfile (moved to other repo) and use updated docker image (#50)

commit 48445517978a7480548671a263e054965da1d8fa
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 2 04:10:47 2018 +0200

    chore(all) reset everything to pick up the correct line endings (#49)

commit fd3e90a0fa0cfec729e42523738a065938ad7947
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 2 03:17:36 2018 +0200

    chore(all): export / mark as internal (for unit testing) + enable stripInternal (#48)

    * chore(all): export / mark as internal (for unit testing) + enable stripInternal

    * chore(git): add .gitattributes

    * chore(editorconfig): fix line endings

commit 735231645aa7305820ace87f1590a65a72c63ddc
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Aug 1 01:11:24 2018 +0200

    feature/ci-fixes (#47)

    * chore(ci): fix unit tests and coverage to work on circleci

    * chore(ci): try another approach

    * chore(ci): fix junit path

    * chore(ci): try with hard-coded paths

    * chore(ci): fix package paths for test results

commit 93025809cd7657c61aaaa4c156ef5e1ca43aa94b
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Jul 31 09:53:47 2018 -0700

    Monorepo Conversion (#46)

    * chore(monorepo): begin reorg

    * chore(monorepo): more organization

    * doc(engineering): placeholder for eng notes

    * doc(all): add some placeholder readme files

    * fix(kernel): scripts working

    * chore(kernel): fix all lint errors

    * chore(all): update dependencies

    * chore(all): cleanup/updates, start from scratch with the package.jsons, make stuff work

    * fix(all): lots of path fixes and a few typing fixes, make sure everything builds correctly

    * test(all): fix all tests

    * chore(test): fix the red squiggles for the tests

    * fix(test): make all the tests run via lerna

    * doc(all): add preliminary instructions for local setup

    * chore(all): add lerna lint script

    * chore(all): fix typing errors

    * chore(lint): reinstall tslint-no-unused-expression-chai

    * chore(lint): add tslint-microsoft-contrib with explicitly declared rules

    * chore(lint): loosen some unpragmatic rules and exclude test files

    * chore(lint): make all public accessors explicit

    * chore(lint): allow pascal-case variable names

    * chore(lint): align jsdoc comments

    * chore(lint): fix imports and quotes

    * chore(lint): allow parameter properties

commit ba686bf379809b3098b74cdd7bd8ce66b4743873
Merge: 81d222e e4254a7
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sun Jul 29 18:15:25 2018 -0700

    Merge pull request #45 from aurelia/feature/e2e

    feature/e2e

commit e4254a71cd76b4a3da51fb00cdf7dee4bc8c1187
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 10:20:32 2018 +0200

    chore(ci): giving up on firefox for now

commit adf24483a538f73ae24da8671f93475bcad614d1
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 10:00:57 2018 +0200

    chore(ci): fix docker permission issues

commit 2cf949f688145447b73b14986e76c0b1fe50c159
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 09:32:44 2018 +0200

    chore(ci): add very basic protractor setup

commit e6921b2ba81acbbeb774c91339474406d4769904
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 08:36:08 2018 +0200

    chore(ci): fix permissions

commit 6e70ca4efbf218b8269ba2c48ccbba2e797ad7f2
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 08:26:02 2018 +0200

    chore(ci): try to fix firefox

commit 81d222e349e1cdc495c3c034e3e1dfcfe5e2871f
Merge: 10cb989 d4c791b
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 22:53:01 2018 -0700

    Merge pull request #44 from aurelia/feature/ci-build

    feature/ci-build

commit d4c791b517143202b04894635fde6e973008b2b9
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 07:50:29 2018 +0200

    chore(ci): disable firefox for now

commit 7b68243aa7d6902a1c3b8101f0d6484155e91e56
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 07:46:47 2018 +0200

    chore(ci): update firefox #2

commit c61aade91bbb275664df05c91303aa4925b263b5
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 07:34:14 2018 +0200

    chore(ci): update to latest firefox

commit 9bb2fd58ce920e1158eb04ca331e24c6e091f5b9
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 07:28:57 2018 +0200

    chore(ci): add firefox to unit tests

commit 0467be738e5827a25c14772b7ea1a1c1db56bfcc
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 07:02:27 2018 +0200

    chore(ci): fix paths #3

commit 44e00a04ff74811f877ab550b63d718cff18fb67
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 07:00:56 2018 +0200

    chore(ci): fix codecov path

commit dfc2a72a860bcf936851a23ab3c6024bd1d8a776
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 06:58:21 2018 +0200

    chore(ci): fix paths #2

commit 88dd96eff47569c8c3ab2ed426236df9231fb4c8
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 06:55:31 2018 +0200

    chore(ci): fix workspace paths

commit 6ad6b1f8b003c7557f20547ad6a2ec48ed51a84b
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 04:42:23 2018 +0200

    chore(ci): fix artifacts path

commit 5ea53df252e93401175e8ceeb2c0a44f072c0726
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 04:38:25 2018 +0200

    chore(ci): run all tests and store coverage artifact

commit 7ad02c49f22483e608375f6d50c8df8493d06189
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 02:05:49 2018 +0200

    fix(observation): add unit tests for map/set observation & fix some issues
    refactor(observation): simplify map/set/array synchronization from the indexMap by explicitly tracking deleted items

commit 7064c0f9eef9840430fcb953dcff145a093b0aa1
Author: EisenbergEffect <rob@bluespire.com>
Date:   Sat Jul 28 14:45:52 2018 -0700

    fix(DOM): accidental import add

commit e5dc7b6f4645448e83ba224e90fda1aae1c63965
Author: EisenbergEffect <rob@bluespire.com>
Date:   Sat Jul 28 14:43:20 2018 -0700

    doc(runtime): clarify the purpose of several core items

    Also, added some notes on which things are likely to go away with the removal of shadow dom emulation. In the end, I'm hopeful that a good chunk of this will be simplified. However, I think it's likely going to still be very valuable to have core abstractions like ITemplates that create IViews. However, the simplicity can come from the fact that you will no longer need a RenderSlot to render the IView. You can basically just have an INode (or RenderLocation, which will just be an INode) and simply append the IView at the location.

commit 2eeac366ff89727e57d1846344336dea8c54bea7
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 06:49:00 2018 +0200

    chore(ci): configure codecov

commit b8b01d77e0e4c9ba0927ec2126ca0791d8e104f4
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 06:40:11 2018 +0200

    chore(ci): fix workflow deps

commit 10cb98925caba6943202f15d6c05553879dfe073
Merge: 8d29d95 18f3bf8
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 21:20:40 2018 -0700

    Merge pull request #43 from aurelia/feature/ci-tests

    feature/ci-tests

commit 8d29d9504ee87f6b363b5e361e89d66869dc3e5f
Merge: b6cee80 795c1de
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 21:20:06 2018 -0700

    Merge pull request #42 from aurelia/feature/observation

    feature/observation

commit b6cee8079d5b59b6f4f4cdf28805afb1c4461169
Merge: e78d073 c2dd03c
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 21:12:09 2018 -0700

    Merge pull request #41 from aurelia/explain-view-implementations

    doc(runtime): clarify the purpose of several core items

commit 9af1bfe34ac16a015bfcccbf82a418d89800a592
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 05:52:24 2018 +0200

    chore(ci): add build job and switch to test-aot for building

commit 18f3bf8b595505ab1979e1dfd7f806777864fd34
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 04:42:23 2018 +0200

    chore(ci): fix artifacts path

commit 943232621e88d8a7f6252317b51a84aa1ebbdbc0
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 04:38:25 2018 +0200

    chore(ci): run all tests and store coverage artifact

commit 795c1dec0461ef79a65138632e5b3b0f349e920d
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 02:05:49 2018 +0200

    fix(observation): add unit tests for map/set observation & fix some issues
    refactor(observation): simplify map/set/array synchronization from the indexMap by explicitly tracking deleted items

commit c2dd03cd2efea858adae7bc75c18d6c169083edb
Author: EisenbergEffect <rob@bluespire.com>
Date:   Sat Jul 28 14:45:52 2018 -0700

    fix(DOM): accidental import add

commit 2436a21209adc3c91b1a8c81fbf180d1d4e634df
Author: EisenbergEffect <rob@bluespire.com>
Date:   Sat Jul 28 14:43:20 2018 -0700

    doc(runtime): clarify the purpose of several core items

    Also, added some notes on which things are likely to go away with the removal of shadow dom emulation. In the end, I'm hopeful that a good chunk of this will be simplified. However, I think it's likely going to still be very valuable to have core abstractions like ITemplates that create IViews. However, the simplicity can come from the fact that you will no longer need a RenderSlot to render the IView. You can basically just have an INode (or RenderLocation, which will just be an INode) and simply append the IView at the location.

commit e78d07338dda35c6464e0590c251210a99e79e69
Merge: f15c1bc 3271c4c
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 12:07:00 2018 -0700

    Merge pull request #40 from aurelia/feature/code-coverage

    feature/code-coverage

commit f15c1bce4fd09dd0aa72747d4ea676cf3255e325
Merge: e81c33a dec74e8
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 12:04:57 2018 -0700

    Merge pull request #39 from aurelia/feature/binding-mode

    feature/binding-mode

commit 3271c4c315324bdedce67b86b3350aae48ee64d5
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 20:59:32 2018 +0200

    fix(ci): fix path

commit 271da8cf1eda4b79af94c7fa803e875db9b022d4
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 20:00:21 2018 +0200

    doc(ci): add badges

commit 44681156d3f13f4261ba8c61f934acd871046e0d
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 19:44:04 2018 +0200

    chore(ci): fix junit coverage

commit dec74e876a3d06b28bc802440b23125361f41c62
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 19:03:43 2018 +0200

    test(binding/resources): add basic unit tests as a starting point

    fix(signals): correct argument count

commit 1b7c345e9dda1657761f629d7e18cdaecb3c9e7c
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 17:51:52 2018 +0200

    fix(binding/resources): update bindingBehaviors with flags and new bindingMode

commit 4bb62abf2549257bec08d4a0258b050ac5fe3b7b
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 17:50:04 2018 +0200

    refactor(binding-mode): deprecate oneWay and addturn bindingMode into flags

    refactor(binding): change things in the runtime accordingly, and apply a few optimizations to binding.ts (both related and unrelated to binding.ts)

commit e81c33ad40f6956bc88a3e3fd5923cce485a4e49
Merge: 3ad2a6a 25c18ee
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 01:00:07 2018 -0700

    Merge pull request #38 from aurelia/feature/ast

    refactor(ast): various perf tweaks / remove redundancy / make behavior more similar to normal js

commit 3ad2a6a3c8842d13ab93efc0136a4af3f4170c11
Merge: a83b40b 1893be3
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 00:58:47 2018 -0700

    Merge pull request #37 from aurelia/feature/repeater

    feat(repeater): implement repeater with the new observation logic

commit a83b40b71bbbf6a58b2bbe7213bbdf2d4536e3b9
Merge: 1c4fabd 23463a2
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 00:50:46 2018 -0700

    Merge pull request #36 from aurelia/feature/cleanup

    chore(all): remove unused deps / update deps / remove deprecated tests

commit 25c18ee8cb2a5571ea40e9491a48a1a61247ecd2
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 09:02:09 2018 +0200

    refactor(ast): various perf tweaks / remove redundancy / make behavior more similar to normal js

commit 1893be3c74d4bea5401eae656a7a45dbc8d11ce1
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 08:47:09 2018 +0200

    feat(repeater): implement repeater with the new observation logic

commit 242b2bbb75a0e6fa4c0bee7cb6658343a689194c
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 06:30:04 2018 +0200

    chore(ci): fix circle config for coverage

commit a293f64da7abcf615c177b091feed7b63408af8e
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 06:06:22 2018 +0200

    fix(coverage): hacky workaround to fix the dtd url for cobertura

commit b1b81a6f5322fe869af7a8babedb294231cca318
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 05:47:40 2018 +0200

    chore(ci): store coverage results

commit 3de83f24270248c977c61198a4218e05cd85631d
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 05:45:46 2018 +0200

    chore(test): use normal text output and export circleci compatible report

commit 25442dce282a8a14e1f8fc59a34a36c1b6a13d11
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 05:28:16 2018 +0200

    chore(ci): add istanbul to docker image

commit 23463a208754ed54be236ab2549d043c199de3dc
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 04:58:18 2018 +0200

    chore(test): remove deprecated unit tests

commit a35832b4850325d8604f92dc31d9cb79af9e84b1
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 04:57:00 2018 +0200

    chore(all): update deps

commit d506d3f14f6b9a842a776d4b3d123163dc8ec5b2
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 04:29:10 2018 +0200

    chore(all): cleanup deps we don't use

commit 1c4fabd8ca50905dac12c90531abf13309f294f4
Merge: ae7cf21 9e290a9
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 19:15:00 2018 -0700

    Merge pull request #35 from aurelia/feature/ci

    chore(ci): enable npm ci verbose logging

commit ae7cf215aea36a97dd8b3b51314a2cc1712155c8
Merge: c2cd3af 12b73f0
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 19:14:44 2018 -0700

    Merge pull request #34 from aurelia/feature/binding-flags

    refactor(all): add binding-flags and reorder parameters to be more consistent

commit 9e290a953a99cf6e43c999378a427163a2dd05f8
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 04:12:25 2018 +0200

    chore(ci): enable npm ci verbose logging

commit 12b73f0f17f22f62487fbc092778d49e0285664d
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 03:55:49 2018 +0200

    refactor(all): add binding-flags and reorder parameters to be more consistent

commit c2cd3afc2d9c321baddabb6f1a6b0737475f22a4
Merge: 17793ff fd4a56b
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 18:32:00 2018 -0700

    Merge pull request #33 from aurelia/feature/connect-queue

    refactor(binding): remove connect-queue (temporarily)

commit fd4a56bc1906ce6b89dad6d97b47315be7f54fd8
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 02:52:32 2018 +0200

    refactor(binding): remove connect-queue (temporarily)

commit 17793ffcc4fdcabacce7537c4bab25fdd9e0922a
Merge: 639b606 0b88a15
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 15:41:57 2018 -0700

    Merge pull request #32 from aurelia/feature/tsconfig

    chore(tsconfig): target es2015 and switch to explicit inclusion

commit 0b88a15174bc3c01b34248fd3094b91db216208b
Merge: e6dd9b9 639b606
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 15:41:22 2018 -0700

    Merge branch 'master' into feature/tsconfig

commit 639b60653e4eed16c343ef97cb70656aee055b00
Merge: 7c26800 b7213ad
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 15:39:47 2018 -0700

    Merge pull request #31 from aurelia/feature/ci

    chore(ci): add basic circleci config for running unit tests

commit 7c26800d564b0432b110576c69b94d9fe9db4880
Merge: 3222e4d 0183386
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 15:39:08 2018 -0700

    Merge pull request #30 from aurelia/feature/binding

    refactor(binding): merge binding with connectableBinding and connect-queue

commit 3222e4d44a9e95e2367a0d08decba9186fdaea09
Merge: e4403d4 383b052
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Thu Jul 26 23:17:15 2018 -0700

    Merge pull request #29 from aurelia/feature/observation

    feat(observation): add improved collection observers

commit e4403d4d7ab7d1731a1ad8f52edc8fed1bee7a46
Merge: 7d1b2cd 44c9464
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Thu Jul 26 19:46:28 2018 -0700

    Merge pull request #28 from aurelia/feature/task-queue

    refactor(task-queue): change to a moving-cursor mechanism

commit 7d1b2cdfd0bfd7c0e84f1ca4a593b010bbfc3adf
Merge: 4192a3e 7458be7
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Thu Jul 26 19:42:00 2018 -0700

    Merge pull request #27 from aurelia/feature/dom

    refactor(dom): various perf tweaks

commit e6dd9b9bd5db73b3c151e79990c02b03c65fec80
Author: fkleuver <fred@avurad.nl>
Date:   Thu Jul 26 11:29:07 2018 +0200

    chore(tsconfig): target es2015 and switch to explicit inclusion

commit b7213ad88b9130bcbe0896ce5cc201cef0a0040d
Author: fkleuver <fred@avurad.nl>
Date:   Thu Jul 26 11:07:35 2018 +0200

    chore(ci): add basic circleci config for running unit tests

    Just an initial skeleton setup. Doesn't do builds, code coverage, e2e tests and that sort of thing yet.
    Also included a custom Dockerfile which is published to the docker registry under aureliavnext/circleci.
    This is needed because the default circleci image for node 8 doesn't contain the latest npm version nor the latest chrome version, which causes issues.

commit dfc17615d27db767fee621ed8eade6339f04887d
Author: fkleuver <fred@avurad.nl>
Date:   Thu Jul 26 09:45:58 2018 +0200

    chore(all): switch from yarn.lock to package-lock.json

    The main motivation for this is simplicity of the workflow for contributors: no additional tools to install.
    Since npm 6.x has added the "npm ci" command and this is actually much faster, as well as equally robust to regular yarn …
AureliaEffect pushed a commit that referenced this pull request Sep 20, 2018
commit ae76a307e70855b4413e9fa9a9d2ca400da8869d
Author: Fred Kleuver <fred@avurad.nl>
Date:   Thu Sep 20 00:51:41 2018 +0200

    ci: fix the publish workflow

commit 814b8131ccd5a6175f216c9812d8f336cb805b3f
Author: Rob Eisenberg <rob@bluespire.com>
Date:   Mon Sep 17 20:31:11 2018 -0700

    chore(all): prepare release 0.2.0

commit 029bbeb357469625f633f49dbbf19fa164fa2aa0
Author: Rob Eisenberg <rob@bluespire.com>
Date:   Mon Sep 17 20:20:16 2018 -0700

    chore(all): revert prepare release

    This reverts commit edde2026f4f9759288f5546eeaace9f3210778cc.

commit ce2be3911f7b73785ba988ff96442ff6c7c2f282
Author: bigopon <bigopon.777@gmail.com>
Date:   Tue Sep 18 10:07:01 2018 +1000

    fix(template-compiler): remove node after parsing (#181)

commit 38c1d7b179ce101c8bba067b7030479bf15d5eb5
Author: bigopon <bigopon.777@gmail.com>
Date:   Mon Sep 17 09:22:26 2018 +1000

    test(binding): increase tests coverage (#149)

    * ci: temporarily disable flaky and time-consuming jobs

    * test(binding): increase tests coverage

    * flat nested loop in test, short circut on node

    * rename: loopCartesianJoin -> eachCartesianJoin

    * fix update index

    * chore(observation): small typings fix

    * refactor(test-util): change spread to array for eachCartesianJoin

    * fix(observer-locator): do not access getter Node prototype properties directly

    * fix(ast): default to PLATFORM.noop for unsupported AST operations

    test(binding): small tweaks to cartesian join, increase test coverage on binding

    * refactor(test): take string dependency out of cartesian join

    * chore(test): fix slip-up in the loop

    * test(binding): cleanup and add preliminary from-view tests

    * test(binding): add from-view tests, various small fixes in testing util

    * test(binding): move cartesianJoin to test-lib and split up factory / non-factory version

    * test(binding): add changeSet assertion

    * fix(setter-observer): fix an issue where the target property isn't updated during bind()

    fix(property-observer): fix an issue where undefined wouldn't propagate to the target if it's the first value

    test(binding): add preliminary two-way binding tests

    * test(binding): beef up two-way tests and add some comments

    * test(binding): remove .only

commit acde70e66862ac6767533794adb6a04196613dc1
Author: Praveen Gandhi P <praveengandhi.p@gmail.com>
Date:   Mon Sep 17 02:57:55 2018 +0530

    examples: jit-fuse-box-ts (#179)

    * examples: jit-fuse-box-ts

    * npm script renamed to match with README

    * all examples README and package.json scripts unified

commit 238450d1584eb8893736fb8a457e3656f9bba834
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 08:21:19 2018 +0200

    ci: actually commit to release after merging (#178)

commit b2c56a19024c61bcf9fcb00c03d8ea018f9d2dcd
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 06:08:46 2018 +0200

    fix the tags workflow (#177)

    * test

    * ci: create explicit tag workflow [ci skip]

    * ci: remove --no-ff flag [ci skip]

commit 090cadb5f1e8c6b5c17c3af2af8be25ce13e2c38
Author: Rob Eisenberg <rob@bluespire.com>
Date:   Sat Sep 15 20:47:31 2018 -0700

    chore(all): test release

commit 12e2e1009b1d51372ab3bd3fc539c9a3a34db1d9
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 05:06:00 2018 +0200

    ci: add tag filter for install job [ci skip] (#176)

commit edde2026f4f9759288f5546eeaace9f3210778cc
Author: Rob Eisenberg <rob@bluespire.com>
Date:   Sat Sep 15 19:36:55 2018 -0700

    chore(all): prepare release 0.2.0

commit 66afb94b367eccc5cf1aefa69afa736434d5dc0b
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 03:39:34 2018 +0200

    ci: temporarily disable flaky and time-consuming jobs (#175)

    * ci: temporarily disable flaky and time-consuming jobs

    * ci: let e2e no longer depend on build job

commit f2083ef837b28752ee08b6ce525a4d4998dcad4f
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 02:24:19 2018 +0200

    chore(tests): add verbose test command for mocha reporter (#174)

commit 32c1c739f091ad700291ea2475a1241ab000ade1
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 00:28:21 2018 +0200

    chore(tests): use progress instead of mocha reporter to speed up the test runner (#172)

commit bf2bd18c6e7e6d510f18cfb73a1d17f56d356d57
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 16 00:07:12 2018 +0200

    Upload iife bundles to azure (#170)

    * ci(upload): add upload scripts that uploads iife bundles to azure storage

    * chore(bundle): fix logging typo

    * ci(azure): add logging to clarify destination urls

    * docs(examples): replace local file with blob url

    * build(iife): fix iife full bundle

    * docs(examples): remove package.json and update readme

commit 978c2f01a4d3c27feb1f48454ee9990f193e928e
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Sep 14 08:30:22 2018 +0200

    examples (#169)

    * docs(examples): cleanup and update jit-aurelia-cli

    * docs(examples): cleanup and update jit-browserify

    * chore(examples): add rimraf scripts

    * chore(examples): update gitignore

    * docs(examples): cleanup and update jit-parcel

    * docs(examples): move examples to top-level folder

    * docs(examples): add webpack example

    * docs(examples): add iife example

    * docs(iife): single bundle file

commit 76c783cd8920a4eccd944023b82aea2a89a2e494
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Sep 14 05:07:26 2018 +0200

    chore(benchmark): fix tsconfig tslib issue (#168)

commit 5be90727b8d81fbfe1b879c1bb860bf9b52a3118
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Sep 14 01:43:30 2018 +0200

    build(all): first attempt at rolling up (#161)

    * build(all): first attempt at rolling up

    * build(rollup): use normal sourcemaps

    * build(rollup): add tslib and fix named globals

    * build(rollup): change package.json main/module

    * test(e2e): add tslib

    * test(e2e): add package-lock

    * build(rollup): cleanup scripts, add iife outputs

    * build(all): add browser field for iife modules

    * build(rollup): cleanup bundle creation, explicitly name iife files

    * ci(e2e): switch to npm ci for installing the e2e tests

    * build(all): cleanup build scripts and outputs

    * build(rollup): fix cleanup scripts and make bundle a bit more flexible

    * chore(all): remove publish:local from npm init script

commit cc48ffad85878026e550e7008c57f9db87c9233d
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Wed Sep 12 19:15:43 2018 -0700

    doc(readme): adding more badges

commit a71092f9f7fcb5101900eb515964ca3ae2bbd115
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Sep 13 03:49:56 2018 +0200

    chore(codeclimate): remove comment that might break yml (#162)

commit c923f1ff0673c5bad646adf866bfa8ae70cea538
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Sep 13 03:49:16 2018 +0200

    test(e2e): properly mark failures and improve logging/reporting (#159)

    * test(e2e): properly mark failures and improve logging/reporting

    * test(e2e): restructure and add tests for select element

    * test(e2e): fix errorcode typo and add todo specs back in

    * test(e2e): improve titles and add a few more select tests

    * test(e2e): fix slip-up in select test

    * test(e2e): add some more small fixes and disable failing tests for safari/edge

commit 9834cbab2bd9c8aa297bb9c3a3465840e0fc9e9d
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Sep 13 03:44:40 2018 +0200

    chore(binding): improve typings (#156)

commit b90741aec2d781ab54c15752135b75cb3a97e9f4
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 12 06:30:01 2018 +0200

    ci(all): add automated publish@latest script / minor tweaks (#158)

commit 4b225bd1cafd72d8d9ea16f5484038a362c5be70
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 12 05:53:24 2018 +0200

    chore(all): add validate-commit-msg hook and commitizen script (#157)

    fix #127

commit 2cfded18f26e135ad6ea85c2a239f321415a37cf
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Sep 11 20:38:14 2018 -0700

    chore(codeclimate): disable similar code check

commit 823cb66be03eff320351e68cdb66815dcf86dd81
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 12 00:15:16 2018 +0200

    chore(all): cleanup build scripts, fix nightly dependency versions (#155)

    * chore(all): cleanup build scripts, fix nightly dependency versions

    * chore(scripts): remove unused protractor conf

    * doc(scripts): add info where the typings come from

commit 66504c8442621e993d46b0efe13c29e9b0f8193d
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Sep 11 15:12:46 2018 -0700

    Dynamic Composition - Phase 1 (#124)

    * feat(create-element): experimenting with supporting JSX

    This PR adds a createElement function with the same signature that compilers generate JSX for. The implementation isn't complete but should serve as a PoC for how we can hopefully accomplish several things:

    1. Enable custom elements to support a `render` method that returns JSX for the element's template.
    2. Enable an low-level API for creatings element templates, view factories and views, for extremely dynamic template generation without the need for the view compiler.
    3. Provide the low-level API to be used by the `compose` element in order to support declarative dynamic composition.

    * fix(custom-element): address typo in method check

    * feat(compose): incrementally working towards implementation

    * fix(custom-element): remove special $child prop

    Instead, let people add directly to the attachables and bindables collections. We still need to address the issue with views where they always get their scope from the renderable they are in. Compose will need to provide a special scope.

    * feat(view): remove animations apis from view

    These were temporarily added during a refactoring earlier. They aren't used anywhere now that ViewSlot is gone. So, I'm removing them to simplify the View implementatino before I add some new stuff.

    * feat(renderable): enable dynamically added children

    * feat(custom-element): enable better handling of containerless scenarios

    * fix(compose): correct inject metadata

    * feat(compose): enable composing of loose views

    * feat(compose): support rendering more types

    * feat(createElement): support text nodes and targeted instructions

    * test(compose): stubbing out basic tests

    * test(compose): first set of compose tests

    * test(compose): add basic swap tests

    * chore(render-context): remove unused imports

    * chore(compose): clean up provide view logic

commit ac133febcb65e939d923848fd92e2ca24622623c
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Sep 11 21:48:55 2018 +0200

    chore(all): add refresh convenience script (#154)

    * chore(all): add refresh convenience script

    * doc: explain refresh command

    * chore(refresh): use git rm instead of rimraf

commit 649b960f2f681ff242f8a6533899a7c05c20bb6a
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Sep 11 21:45:50 2018 +0200

    test(kernel): add toArray() and unit tests (#153)

commit a2be6185b805de6e5a61bdad88250e3d41cd2ef7
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Sep 11 05:03:22 2018 +0200

     chore(ci): cleanup and combine coverage more properly (#152)

    * chore(ci): cleanup and combine coverage more properly

    * test(di): fix test error for firefox

    * chore(codeclimate): fix codeclimate coverage thing

commit 6bc2d4d2eb845576c56767a095de6c2639718cf9
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Sep 11 00:46:41 2018 +0200

    DI tests (#150)

    * chore(test): extract test util into shared files

    * test(di): add initial tests to find edge cases for designParamTypes

    * test(di): improve test coverage

    fix(di): invoke correct method on array strategy resolver
    feat(di): recurse through static registrations to find register methods in more edge cases
    fix(di): invalidate Object keys to help diagnose invalid design:paramTypes
    refactor(di): append new resolvers on existing keys to a single array strategy resolver instead of nesting them
    fix(di): add a non-any type alternative to the InterfaceSymbol<T> so that container.get() returns correctly typed instances

    * test(jit): fix a few broken tests

    * chore(di): improve typings

commit a87b09bb6bc20c6f3694fefe1850d59249001edb
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Mon Sep 10 07:30:46 2018 +0200

    chore(ci): make the distribution of tests more sensible (#151)

    * chore(ci): make the distribution of tests more sensible

    * chore(browserstack): don't run chrome/ff tests on OS X for now

    * chore(ci): add some comments to config.yml

commit 1c8046c46c2a6db7669c52fa537258e90e62c3fe
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 9 23:10:53 2018 +0200

    browserstack (#144)

    * test(jit-browserify): initial implementation for browserstack

    * chore(ci): split up e2e build from run

    * chore(ci): add basic browserstack targets

    * chore(ci): actually enable browserstack

    * chore(ci): reuse steps

    * chore(ci): use a different port for browserstack

    * chore(ci): store firefox unit test artifacts

    * chore(ci): use a different port per target

    * chore(ci): reuse more steps and use local identifier for parallelism

    * chore(ci): use unique local identifier

    * chore(ci): use localhost again for webdriver

    * chore(ci): try them one by one?

    * chore(ci): docker doesn't like ip addresses today

    * chore(ci): or it's the local identifier

    * chore(test): increase the timeout for slowpoke browser

    * test(browserstack): add a specialized top-level e2e folder

    * chore(browserstack): store allure report

    * chore(ci): big suite for master, small suite for other branches

    * chore(ci): cleanup circleci yaml

    * chore(browserstack): add extra timeout for edge..

    * chore(ci): generate allure report

    * chore(browserstack): fix edge check

    * chore(ci): generate allure report in separate step

    * chore(browserstack): use safari 10 instead of 11 due to bug

    * chore(ci): clean up env variables, post link to allure

    * chore(ci): fix imports

    * chore(ci): post allure to PR comment

    * chore(allure): fix typo

commit cccab1f9c2df8d18a117b52e1d5322a165fab2bd
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 9 04:09:00 2018 +0200

    Code climate (#148)

    * chore(codeclimate): loosen complexity and add proper excludes

    * chore(codeclimate): exclude array-observer

    * chore(tslint): remove tslint-no-unused-expression-chai since tests are already ignored

    * chore(codeclimate): fix exclude globs

commit 4aa853861a47bfe145c30dafcf11af4e6d7a0ef1
Author: bigopon <bigopon.777@gmail.com>
Date:   Sun Sep 9 11:52:52 2018 +1000

    feat(template-compiler): as-element (#146)

    * feat(template-compiler): as-element

    * remove redundant test

commit eccc71fd53093b4376cbbc4008fe6e88240fd2e7
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Sep 8 10:58:47 2018 -0700

    chore(codeclimate): remove tsling plubin

    I believe that the fact that we're using a custom lint rule based on a special NPM module is causing codeclimate to fail, since it doesn't have the referenced package when it runs linting.

commit c2a8324ee5320f52a09b19f1e44401fa1086280a
Author: bigopon <bigopon.777@gmail.com>
Date:   Sun Sep 9 02:18:56 2018 +1000

    feat(Let): let binding (#132)

    * feat(runtime): Let binding, priorityInstructions

    * refactor(Let): add LetElementInstruction

    * fix(let): cleanup

    * fix(template compiler): slot signal

commit 76d1aa3af248c435dd6e895a1758f7cf06d07cf4
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Sep 7 23:16:24 2018 +0200

    chore(ci): add firefox test runner (#142)

    * chore(ci): add firefox test runner

    * chore(ci): add test results for firefox

    * test(firefox): don't test shadowdom if it's not available

    * test(firefox): correct copy paste error

commit 6920653a27b0e68c1363130a8da8c4900fe1e3b5
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Thu Sep 6 23:15:42 2018 -0700

    doc(readme): add BrowserStack logo

    This is needed in order to get open source support from BrowserStack.

commit 1075d37994e82d69ba68b30001eddf284367fca8
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Sep 7 05:14:52 2018 +0200

    badges (#141)

    * chore(test): add bail option and blackbox testing framework

    * chore(all): add a normal build script for consistency

    * chore(all): add license to all packages

    * doc: add preliminary documentation

    * docs: add readme for examples

    * docs: clarify how to speed up tdd

    * docs: fix url typo

    * docs: add extra tip for speeding up tdd workflow

    * doc: fix typo

    * chore(all): remove parallelism from top-level test/lint for better console output readability

    * docs: add missing hashtag to engineering readme

    * docs: fix typo in badge

    * docs: a little bit less badges

commit ac95588c1425a9650e4af58849887eb68e60b6bd
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Thu Sep 6 20:09:31 2018 -0700

    chore(tools): add basic code climate config file

commit eccb1960ad253229c651cfa0c41ad7b418887856
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Sep 7 04:07:09 2018 +0200

    initial docs (#140)

    * chore(test): add bail option and blackbox testing framework

    * chore(all): add a normal build script for consistency

    * chore(all): add license to all packages

    * doc: add preliminary documentation

    * docs: add readme for examples

    * docs: clarify how to speed up tdd

    * docs: fix url typo

    * docs: add extra tip for speeding up tdd workflow

    * doc: fix typo

    * chore(all): remove parallelism from top-level test/lint for better console output readability

    * docs: add missing hashtag to engineering readme

commit 43b4b2c74dce355fa1bcbbb4da3c030f6756a99e
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Wed Sep 5 16:28:23 2018 -0700

    doc(readme): clean out old stuff

commit 581a6806621a4096d5f74cc149abc89c624d371f
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Sep 6 01:00:18 2018 +0200

    fix(observer-locator): add collection length back in, fix precedence, add tests (#139)

    * fix(observer-locator): add collection length back in, fix precedence, add tests

    * fix(length-observer): add subscribe method

commit cf8390bc88ab528feda6c8e9f3c8ed90a5da8060
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 5 20:08:16 2018 +0200

    Fix runtime behavior (#138)

    * fix(runtime-behavior): pass target flags to getterSetter observer

    * fix(binding): report flags instead of nonexistent context

commit 606c909a785084354e11a563c65ab0cab2c70acc
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 5 07:54:11 2018 +0200

    chore(ci): restore cron schedule and default workflow (#137)

commit 9de6ea49698fdcb52401227399ceb50f589b12a7
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 5 07:45:18 2018 +0200

    chore(ci): fix oauth (#136)

    * chore(ci): fix oauth

    * chore(ci): try a sneaky publish :)

    * chore(ci): don't verify npm access

commit 05e6536728bfae035e5a434481c40c632e41d7d4
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Sep 4 20:39:06 2018 -0700

    testing auto publish

commit 1b7c76430f312e49ac91eb586c0cfb845a98628d
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 5 05:25:42 2018 +0200

    nightly publish (#135)

    * chore(all): bump the rest up to 0.1.1

    * chore(all): prepare publish-nightly scripts

    * chore(ci): add cron schedule for nightly publish

    * chore(ci): cleanup config.yml formatting

    * chore(all): explicitly specify files to publish, cleanup gitignore

    * fix(examples): correct versions

    * chore(ci): disable parcel e2e job until the module duplication is solved

    * chore(all): cleanup redundant outputs and use newer target version

    * chore(ci): use provided tag

    * chore(ci): add npm auth

commit 5920299744115f3ac0d5247d8d1b10cd31d817b9
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Sep 5 03:59:07 2018 +0200

    refactor(template-compiler): move stuff around / fix various edge cases (#134)

    * refactor(template-compiler): move stuff around / fix various edge cases

    * refactor(template-compiler): hoist attribute inspection array / fix tests

commit 1067e0374de66a6acecd3094fa8eb159c7d29f6e
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Mon Sep 3 23:15:11 2018 +0200

    implement instructionCompiler / renderStrategy (formerly bindingCommand) (#133)

    * feat(jit): implement instruction-compiler decorator

    feat(runtime): implement render-strategy decorator
    refactor(template-compiler): various fixes and cleanups

    * refactor(template-compiler): move binding commands to decorators

    * fix(template-compiler): workaround for DI issue

    * fix(binding-command): rename file

    * fix(binding-command): pass correct bindingType to parser

    * chore(renderer): fix linting errors

    * chore(template-compiler): fix linting errors

    * refactor(binding-command): add handles method

commit d17dbd92ab8cc4e7348c5311ddf0be8183070ec4
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 2 06:24:57 2018 +0200

    chore(all): add dev script and enable parallelism in some scripts (#131)

commit d2f632f217eb2ad12b920c6e4e09f266b4b6e555
Author: bigopon <bigopon.777@gmail.com>
Date:   Sun Sep 2 13:47:35 2018 +1000

    fix(template-compiler): template controller instrs order, linking (#129)

commit 0c2a40051b08237695f72d25da34304ad0b07d77
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 2 05:36:23 2018 +0200

    Cleanup (#130)

    * chore(all): remove aurelia-pal-browser and aurelia-polyfills

    * chore(all): add more test-friendly chrome flags

commit 8c70e39c5aec6f6b7540e354d21ea19315df88c0
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Sep 2 01:47:55 2018 +0200

    chore(all): separate local build from ci build (#125)

    * chore(all): separate local build from ci build

    * chore(all): fix recursion issue

commit d584528ecef859334bbb7739fde9231bd07ce1e0
Author: bigopon <bigopon.777@gmail.com>
Date:   Sun Sep 2 08:13:35 2018 +1000

    Template compiler (#121)

    * feat(JIT): template compiler

    * handle template compiler

    * 2nd step template controller compilation

    * custom element compilation

    * adjust test

    * stronger assertion test

    * better shape for attr / element compilation

    * finish implementation, add tests

    * adjust tests

    * preserve next sibling reference

    * fixes + tweaks

    * fix(observer): store obj and propertyKey

    * handle no attr value case

    * fix(template-compiler): merge camel-kebab changes and reuse platform functions

    * fix(template-compiler): fix slip-up with attribute name

    * feat(TemplateCompiler): surrogate behavior

commit fc9cbffb86a102ed84265e7cd396eb81a747de46
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sat Sep 1 18:16:44 2018 +0200

    refactor(all): remove viewslot (#123)

commit 8debe4f78f9c0c351419c77969b66086549b7ee6
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sat Sep 1 18:12:19 2018 +0200

    camel-kebab (#122)

    * feat(kernel): add fast camelCase and kebabCase functions with caching

    * refactor(bindable): use platform.kebabCase

commit 6381c5b14cf541873f87dfb2c2e2a6a9aba094b4
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sat Sep 1 06:01:45 2018 +0200

    Event manager (#120)

    * fix(event-manager): use spec-compliant composedPath for shadowdom / fix linting

    * chore(listener): fix linting errors

    * fix(event-manager): fix .delegate and .capture, and add unit tests

    * test(jit): enable capture/delegate tests

    * test(event-manager): add preliminary shadow-dom tests

    * fix(typings): export event subscribers

    * test(runtime): remove .only

    * fix(event-manager): export listener tracker to resolve typing issues

commit 797674faa552c767a4db2f6bc477644a0ead0ff4
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Aug 31 02:21:03 2018 +0200

    Prepare publish (#115)

    * chore(all): add tsconfig and npm scripts for other build outputs

    * chore(all): add additional package.json fields

    * fix(tsconfig): correct extends path

    * chore(all): add npm-run-all to root and remove parcel-bundler

    * v0.1.1

    * v0.1.1

    * chore(all): fix tsconfig outdir

commit acf9ebc03e84df5835dae0de8f5357aba8769937
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Aug 31 02:11:33 2018 +0200

    ast improvements (#119)

    * refactor(ast): switch while loops to for loops (same perf, more readable)

    perf(ast): various small perf tweaks / cleanup redundancies
    chore(ast): fix linting errors

    * perf(ast): first evaluate, then connect

commit 8a8b619dc74349bc3958d387b4c55e42ff82f444
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 30 04:28:04 2018 +0200

    e2e benchmark fixes + perf improvements (#110)

    * fix(e2e-benchmark): simplify markers and use setTimeout to include render time

    * perf(binding): remove unnecessary work / cleanup

    * refactor(binding): convert subscriber-collection to decorator for sync and async

    * chore(observers): utilize interface type merging

commit 2ccc770673d59a164aee464ec5e5bdef03332856
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Wed Aug 29 16:52:25 2018 -0700

    refactor(view): increase cohesion of view code (#111)

commit 9517febc0d223b5338b31811b5f93655262643aa
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 30 01:51:58 2018 +0200

    chore(examples): initial setup for aurelia-cli (#99)

    * chore(examples): initial setup for aurelia-cli

    * fix(jit-aurelia-cli): apply huochunpeng's fixes

    * fix(jit-aurelia-cli): fix html file

    * chore(jit-aurelia-cli): add e2e tests

    * chore(ci): add jit-aurelia-cli e2e tests

commit a3db3a8da002a2373bdcc8db693fe2e24d4ecc60
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 28 08:04:36 2018 +0200

    chore(examples): add e2e-benchmark (#108)

    * chore(examples): add e2e-benchmark

    * chore(e2e-benchmark): move vnext to subfolder and add vcurrent to benchmark

    * chore(ci): include other benchmark in circleci

    * fix(e2e-benchmark): fix vcurrent

    * fix(e2e-benchmark): add top-level deps

    * chore(ci): install top-level benchmark deps

    * fix(e2e-benchmark): various fixes to make it all work

    * chore(ci): fix paths

commit 5577a53510218195ead43d156b0919ac31a9fe21
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Mon Aug 27 20:57:50 2018 -0700

    refactor(runtime): lift resource methods (#107)

    * fix(binding-resources): lift register methods

    * fix(custom-attribute): life lifecycle methods

    * fix(custom-element): lift lifecycle methods

    * feat(binding-context): add helper for creating a basic scope

commit 9236dec0903870ee178057ee72c2966d7c6c3a04
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Mon Aug 27 10:18:36 2018 -0700

    fix(di): convert invokers to an array (#106)

    Also, did a number of lint fixups along the way.

commit 22b32b5adfd70ebcb807e99b06c16f12841bb46a
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sun Aug 26 19:25:42 2018 -0700

    fix(runtime): convert if/else to use render location (#96)

    * fix(runtime): convert if/else to use render location

    * test(templating): fix template controller tests

    The fake view was a bit too fake :) As a result, it was possible to incorrectly implement template controllers.

    * refactor(if/else): some internal refactoring

    * refactor(if/else): remove some more duplication

    * test(if/else): add basic tests

    * test(if/else): a couple more basic tests for lifecycles

    * fix(if/else): set default value

commit a52a27b2ff8bcf1e8799f1f5194afb78ffa27e6e
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Mon Aug 27 00:39:22 2018 +0200

    fix test typings (#105)

    * chore(all): remove path alias from unit tests

    * chore(test): fixup relative paths and fix a few typing errors

commit bb322910a3ff49704e03d3e27e3846a0b79fb1b8
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Aug 26 23:32:25 2018 +0200

    resource-tests (#104)

    * fix(binding-behavior): fix BindingModeBehavior

    * fix(binding-behavior): fix debounce, add unit tests

commit 7ade76e35c1d4ec69f69e6090aa0819404281f05
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Aug 26 23:30:25 2018 +0200

    add aot and router packages (#103)

    * chore(aot): add aot package boilerplate

    * chore(router): add router package boilerplate

commit 9e1eb5a25b09f221a542974b63b3c9e9ce6b4749
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Aug 26 23:28:50 2018 +0200

    feat(dbmonster): make dbmonster aot example work again (#101)

    * fix(repeat): reuse views when re-binding and allow null observer for non-collection iterables

    * feat(dbmonster): make dbmonster aot example work again

commit d80321192aa9240fd118fdfc458d80e09652a38a
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Aug 26 23:25:03 2018 +0200

    Browserify (#100)

    * feat(examples): add browserify example

    * chore(ci): add jit-browserify e2e tests to circle.yml

    * fix(jit-browserify): build before serve so the e2e tests can run

commit 53864a1c7839febf792966d6459ca62801f94d23
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Aug 26 07:34:44 2018 +0200

    feat(jit): move/extend attribute value parsing to the expression parser (#98)

    * refactor(parser): extract template/object/array literal parsing into functions

    * chore(typescript): fix tsdk and tslint paths

    * refactor(jit): move interpolation parsing to the expression parser

    * fix(expression-parser): use a separate lookup for non-interpolation attribute values

    refactor(expression-parser): make bindingType mandatory and pass the correct types to the parser everywhere

    * refactor(template-compiler): make compiler flow a bit more logical

    * fix(template-compiler): use the target name instead of full name + fix tests

commit 1ddff95f57cf63700a30a1bbf0993e5a86abebbc
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sat Aug 25 03:58:57 2018 +0200

    refactor(instructions): change number type to string (#97)

    * refactor(instructions): change number type to string, make const enum

    * fix(template-compiler): add dest to one-time instruction

    * test(renderer): add unit tests to verify parts of instruction processing, make some binding properties public

    * test(template-compiler): fix test

commit 30e1099eac4e021f56d11741c4adb7778f82fcef
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Aug 24 22:24:59 2018 +0200

    fix(value-attribute-observer): don't notify subscribers if value hasn't changed (#95)

commit 4dc6cb8a7b64b9ae52af33c1dc5ec323608b8623
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Aug 24 16:57:49 2018 +0200

    Subscriber collection (#91)

    * refactor(binding): decouple BindingFlags.context from subscribers

    * chore(test): fix typing errors

    * fix(element-observation): fix binding flags

    * refactor(binding-flags): cleanup unused flags

    * chore(test): switch to text-summary coverage

    * fix(checked-observer): fix fromValue updates / add unit tests

    refactor(binding-flags): add fromFlushChanges to reduce batching redundancy, and expand the zeroes

    * chore(property-observation): fix typing issue

    * refactor(binding-flags): rename binding-flags

    fix(element-observation): remove error-causing notify

commit 6607a140a585e119cca3bc8cdb1a3bb9f1087402
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Aug 21 07:52:12 2018 -0700

    fix(runtime): remove lazy bindable location and encapsulate observer (#90)

    * fix(runtime): remove lazy bindable location and encapsulate observer

    * refactor(property-observation): improve parameter naming

commit 08d4baced32965a95fd4f8e6408ded2ca6593a6e
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 21 01:50:04 2018 +0200

    refactor(dom): use uppercase tag names (#88)

    * refactor(dom): use uppercase tag names

    * fix(event-manager): use uppercase tagname

    * refactor(dom): remove normalizedTagName

commit d6a10b5fc2c30a18601e4df4d913aa466dd14a24
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sun Aug 19 16:32:54 2018 +0200

    Examples (#68)

    * doc(examples): initial setup for parcel+jit example

    * chore(jit-parcel): remove requirejs

    * chore(all): add jit-parcel example to lerna, change to peerDependencies

    * chore(jit-parcel): use normal dependencies

    * chore(all): add npm pack script & use the packages for the example

    * fix(jit-parcel): remove else for now, fix instructions

    * fix(template-compiler): wrap the nodes in a fragment

    * chore(examples): add convenience wrapper script to setup examples

    * fix(jit-parcel): remove path mappings from tsconfig

    * chore(all): remove examples from lerna and init script

    * chore(jit-parcel): update package-lock

    * fix(template-compiler): use firstElementChild instead of wrapper

    * feat(observers): auto-enable collection observers and make the toggles idempotent

    * fix(template-compiler): various small tweaks and fixes, make example work

    * fix(jit-parcel): make the example work with something simple

    * fix(aurelia): set isStarted=true after tasks have finished

    * test(jit-parcel): add e2e tests

    * chore(ci): configure e2e tests for circleci / organize a bit

    * fix(e2e): move publish into e2e job

    * fix(ci): fix typo

    * fix(ci): set the correct path before each cmd

    * fix(ci): try a different approach for the workspaces

commit c1dd8e0ea5d88382a2753d773a038ae067cf1bdd
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Aug 17 09:44:33 2018 -0700

    doc(readme): use code climate for coverage badge

commit bcefe62b016cd54ad4b2e133489950137595ccf8
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Fri Aug 17 18:25:07 2018 +0200

    chore(ci): add code coverage for code climate (#73)

    * chore(ci): add code coverage for code climate

    * chore(ci): try a different approach for cc

    * chore(ci): add code climate coverage id

commit 11b26a57874dbf9ce10d0365dbcd2e9446f08201
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Thu Aug 16 15:57:25 2018 -0700

    fix(runtime): dry up bindable callback behavior (#71)

commit dd5b48adbe1dc6bc4db511130475ed6ff6ee4596
Author: EisenbergEffect <rob@bluespire.com>
Date:   Wed Aug 15 21:48:59 2018 -0700

    test(runtime): fix broken tests due to changed API

commit 49484e30385d1ae1af334cde20e1b0a60257cef7
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Wed Aug 15 21:42:31 2018 -0700

    refactor(all): improving a couple of method names related to resources (#70)

commit 9e29f421c9dc0b59379cf9ca56eb0ed66b8c2e62
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 16 06:27:20 2018 +0200

    refactor(all): more flags (#69)

    * refactor(all): more flags

    * refactor(binding-flags): rename and add clarifying comments

    * docs(binding-flags): add a few more comments

    * refactor(binding-flags): change context to origin

    * test(binding): fix broken test

commit 40e51527cd09e7422fb2927c9ffd9835cd0a4ff0
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 16 02:20:15 2018 +0200

    chore(test): create test file skeletons to make it a bit easier to get started (#65)

commit 5830a3650eebf37431162d08882a9796d97de400
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Wed Aug 15 16:40:27 2018 -0700

    feat(runtime): convert with attribute to use render location (#64)

    * feat(runtime): convert with attribute to use render location

    * test(with): add basic tests and refactor test assistance

    * testI(runtime): reduce duplication in template controller tests

    * test(runtime): make shared templatr controller tests more composable

    * feat(runtime): improvements to attribute and element bindable control and common interfaces

    * fix(runtime): correct observer current value update and callback ordering

    * test(kernel): add Toggle tests

    * fix(runtime): ensure all bindable callback slots are initialized

    * fix(runtime-behavior): remove use of Toggle in favor of simple boolean

commit c7a82855b8cbc7ccc2a5e9e6efd8c5297db28855
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 14 20:58:56 2018 +0200

    fix(dom): append nodes to the correct thing (doh) (#66)

commit 6889328b2ae518bde54288b6da257eef81ba6244
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 14 05:59:23 2018 +0200

    Repeater (#63)

    * refactor(repeater): use render-location instead of view-slot / general cleanup

    * refactor(repeater): first implementation step for ForOfStatement

commit c2a5e8289b7ba44dfe02c1ca63b003ce6fae6581
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 14 04:12:05 2018 +0200

    Observer rework (#60)

    * refactor(binding): move the responsibility of batching target mutations to the target observers

    test(element-observation): add preliminary unit tests for element observers
    fix(repeat): adjust repeater logic + tests to new mutation batching mechanism

    * refactor(observation): move all element observers to element-observation

    * refactor(class-observer): update class-observer to the new mutation batching mechanism

    * refactor(checked-observer): update checked-observer to the new mutation batching mechanism

    * refactor(select-value-observer): update select-value-observer to the new mutation batching mechanism

    * chore(types): remove accidentally added file

    * chore(binding): cleanup unused accessor object

    * refactor(observers): rename/move target accessors, cleanup typings, fix linting errors

    * refactor(target-accessors): remove redundant previousValue

    * refactor(observers): move from 'hasChanges' to 'this.oldValue !== currentValue'

    * test(observers): re-sync spec structure for target-accessors

    * chore(binding): improve typings

    * refactor(observers): extract common logic out into a decorator / cleanup select-value-observer

commit 981e6bf4b9ef339df05aa1d85880e03e2b5a2930
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Mon Aug 13 17:39:41 2018 +0200

    chore(all): update lerna to 3.x non-rc (#62)

commit c4e26d3970a0bae5e8b909ee24a16ba37cb26b25
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Mon Aug 13 08:39:05 2018 -0700

    fix(runtime): interface clarity (#61)

    * refactor(runtime): renaming core interfaces for clarity

    * test(runtime): fix up tests after renaming

    * fix(runtime): correct kernel import

    * fix(runtime): make renderable and view factories interfaces have no default

commit 7d1f8d4deb834cb4efbcbc4e76621d5eee82f955
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Aug 11 16:05:32 2018 -0700

    feat(templating): convert replaceable to use render location (#59)

    * feat(templating): generalize attribute and element attachable child

    Previously, custom elements and custom attributes had a $slot property that could point to a render slot that was generated for template controller attributes or when something like compose asked for a slot representing itself. This change generalizes the mechanism by changing $slot to $child and switching to the more general IAttach interface, allowing custom attributes to connect an arbitrary attachable child into the attach lifecycle. In upcoming commits, this will enable a simplified implementation of replaceable and other single-child template controllers. Note that because IRenderSlot is an IAttach, advanced template controllers that manage multiple views still attach in the same as before.

    * feat(templating): switch replaceable to use render location

    * refactor(runtime): move test fakes to a shareable location

    This is in preparation for writing some more tests for other templating resources.

    * test(templating): add tests for replaceable attribute

    * test(replaceable): change chai assertion method

commit 144b1c6347a4eacfdce82e130eaaba3ee01d61f5
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Sat Aug 11 18:47:11 2018 +0200

    feat(binding): implement ChangeSet (#58)

    * feat(binding): implement ChangeSet

    refactor(binding): use ChangeSet instead of TaskQueue
    refactor(property-observer): make reusable decorator for setter/observer

    * fix(observation): fix subscriber typing

commit 3c9735e2c811df21da7c8f5333bc14433804367a
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Aug 10 21:42:25 2018 -0700

    feat(templating): add the low-level render location abstraction (#57)

    * feat(templating): add the low-level render location abstraction

    * refactor(runtime): use "render location" terminology throughout

    Some minor refactoring in the render location tests as well.

    * fix(dom): correct TS error

commit 19854e4224ed760cd6a9ab8f6d38d0edb2d10ac2
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Aug 7 19:32:08 2018 -0700

    doc(readme): add better TS badge

commit a052f8b79a022e70c11588c9e6a08bf20a71f52d
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Aug 7 19:20:46 2018 -0700

    chore(doc): add license badge

commit b3891acd8c7fc2da378e38a952b010ff3ddcfd60
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Aug 7 19:15:13 2018 -0700

    doc(readme): remove improperly sized TS badge

commit c48e9943222c70279a91635653efa601d7856073
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Aug 7 19:09:30 2018 -0700

    doc(readme): TypeScript badge

commit 0a17b16827a86c5e5630f1a66777dad2f6466987
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Mon Aug 6 23:21:26 2018 -0700

    Remove Shadow DOM Emulation (#56)

    * chore(runtime): initial deletion of shadow emulation code

    * feat(custom-elements): define basic abstraction for element projection

    Still a few TODOs left for the basic implementation.

    * doc(custom-element): add todo notes for DefaultSlotProjector

    The current set of projectors will handle every custom element scenario. However, a set of common scenarios around default slots could be further optimized. This commit adds notes outlining how a DefaultSlotProjector would work and under what conditions it could be used.

    * fix(templating): address trivial errors when removing emulation

    * fix(templating): remove shadow dom from compose element

    * fix(all): last few corrections from the merge

    * test(dom): fix unit tests

    * feat(runtime): enable getting the custom element behavior...

    ...for a particular node

    * fix(runtime): various fixes related to compose

commit 70b669667a63cbf566fa6a19260ad876eee8f8b6
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 7 08:20:43 2018 +0200

    refactor(all): remove vCurrent repeater and collection observers (#55)

commit 8b44b1cd3a6913c9ae5e9824aced1a7b93b358d6
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Mon Aug 6 22:56:29 2018 -0700

    doc(readme): change CircleCI to shield style badge

commit a309ad6f69e99d1d929adb4f1bd2f17e21556bd0
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Mon Aug 6 22:52:08 2018 -0700

    doc(readme): add lerna badge

commit 8ab2173f304d231346a3382f440c22d148d307ce
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Tue Aug 7 02:30:11 2018 +0200

    feature/jit-2 (#52)

    * chore(lint): allow switch without default

    * wip

    * feat(jit): implement interpolation & iterator (with destructuring) parsing

    feat(ast): initial implementation of ForOfStatement for iterating different collection types
    feat(ast): add metadata to the AST for ExpressionKind

    * refactor(jit): merge attribute name/value parsers into template-compiler

    refactor(jit): use IResourceDescriptions for looking up resources
    feat(jit): initial skeleton for customizeable binding commands

    * feat(jit): simple first implementation for template-compiler

    * fix(all): correct types/properties and fix unit tests

    * fix(template-compiler): small fixes, setup first simple integration tests

commit cbe0e02fb98bc98bd8f901894c7128fcf367a8f3
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sun Aug 5 21:16:18 2018 -0700

    doc(readme): fix typos

commit ce7d2502a9a105d345f60850f67ca66df60bd1d9
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sun Aug 5 21:15:41 2018 -0700

    doc(readme): cleaning up the readme a bit

commit f0da3f34c8fd59830382951ffeb8ea0a28cc32d2
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Mon Aug 6 00:13:55 2018 +0200

    chore(all): cleanup trailing whitespaces (#54)

commit 69952c2835b17956a43d954f50739b64b6c7ae01
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 2 05:57:27 2018 +0200

    feature/line-endings-3 (#51)

    * chore(git): force LF on everything

    * chore(all): reset line endings #2

commit 43283fff87eef6651be128e3835dda1d15b2e2c5
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 2 05:56:37 2018 +0200

    chore(ci): remove dockerfile (moved to other repo) and use updated docker image (#50)

commit 48445517978a7480548671a263e054965da1d8fa
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 2 04:10:47 2018 +0200

    chore(all) reset everything to pick up the correct line endings (#49)

commit fd3e90a0fa0cfec729e42523738a065938ad7947
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Thu Aug 2 03:17:36 2018 +0200

    chore(all): export / mark as internal (for unit testing) + enable stripInternal (#48)

    * chore(all): export / mark as internal (for unit testing) + enable stripInternal

    * chore(git): add .gitattributes

    * chore(editorconfig): fix line endings

commit 735231645aa7305820ace87f1590a65a72c63ddc
Author: Fred Kleuver <fkleuver@users.noreply.github.com>
Date:   Wed Aug 1 01:11:24 2018 +0200

    feature/ci-fixes (#47)

    * chore(ci): fix unit tests and coverage to work on circleci

    * chore(ci): try another approach

    * chore(ci): fix junit path

    * chore(ci): try with hard-coded paths

    * chore(ci): fix package paths for test results

commit 93025809cd7657c61aaaa4c156ef5e1ca43aa94b
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Tue Jul 31 09:53:47 2018 -0700

    Monorepo Conversion (#46)

    * chore(monorepo): begin reorg

    * chore(monorepo): more organization

    * doc(engineering): placeholder for eng notes

    * doc(all): add some placeholder readme files

    * fix(kernel): scripts working

    * chore(kernel): fix all lint errors

    * chore(all): update dependencies

    * chore(all): cleanup/updates, start from scratch with the package.jsons, make stuff work

    * fix(all): lots of path fixes and a few typing fixes, make sure everything builds correctly

    * test(all): fix all tests

    * chore(test): fix the red squiggles for the tests

    * fix(test): make all the tests run via lerna

    * doc(all): add preliminary instructions for local setup

    * chore(all): add lerna lint script

    * chore(all): fix typing errors

    * chore(lint): reinstall tslint-no-unused-expression-chai

    * chore(lint): add tslint-microsoft-contrib with explicitly declared rules

    * chore(lint): loosen some unpragmatic rules and exclude test files

    * chore(lint): make all public accessors explicit

    * chore(lint): allow pascal-case variable names

    * chore(lint): align jsdoc comments

    * chore(lint): fix imports and quotes

    * chore(lint): allow parameter properties

commit ba686bf379809b3098b74cdd7bd8ce66b4743873
Merge: 81d222e e4254a7
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sun Jul 29 18:15:25 2018 -0700

    Merge pull request #45 from aurelia/feature/e2e

    feature/e2e

commit e4254a71cd76b4a3da51fb00cdf7dee4bc8c1187
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 10:20:32 2018 +0200

    chore(ci): giving up on firefox for now

commit adf24483a538f73ae24da8671f93475bcad614d1
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 10:00:57 2018 +0200

    chore(ci): fix docker permission issues

commit 2cf949f688145447b73b14986e76c0b1fe50c159
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 09:32:44 2018 +0200

    chore(ci): add very basic protractor setup

commit e6921b2ba81acbbeb774c91339474406d4769904
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 08:36:08 2018 +0200

    chore(ci): fix permissions

commit 6e70ca4efbf218b8269ba2c48ccbba2e797ad7f2
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 08:26:02 2018 +0200

    chore(ci): try to fix firefox

commit 81d222e349e1cdc495c3c034e3e1dfcfe5e2871f
Merge: 10cb989 d4c791b
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 22:53:01 2018 -0700

    Merge pull request #44 from aurelia/feature/ci-build

    feature/ci-build

commit d4c791b517143202b04894635fde6e973008b2b9
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 07:50:29 2018 +0200

    chore(ci): disable firefox for now

commit 7b68243aa7d6902a1c3b8101f0d6484155e91e56
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 07:46:47 2018 +0200

    chore(ci): update firefox #2

commit c61aade91bbb275664df05c91303aa4925b263b5
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 07:34:14 2018 +0200

    chore(ci): update to latest firefox

commit 9bb2fd58ce920e1158eb04ca331e24c6e091f5b9
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 07:28:57 2018 +0200

    chore(ci): add firefox to unit tests

commit 0467be738e5827a25c14772b7ea1a1c1db56bfcc
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 07:02:27 2018 +0200

    chore(ci): fix paths #3

commit 44e00a04ff74811f877ab550b63d718cff18fb67
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 07:00:56 2018 +0200

    chore(ci): fix codecov path

commit dfc2a72a860bcf936851a23ab3c6024bd1d8a776
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 06:58:21 2018 +0200

    chore(ci): fix paths #2

commit 88dd96eff47569c8c3ab2ed426236df9231fb4c8
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 06:55:31 2018 +0200

    chore(ci): fix workspace paths

commit 6ad6b1f8b003c7557f20547ad6a2ec48ed51a84b
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 04:42:23 2018 +0200

    chore(ci): fix artifacts path

commit 5ea53df252e93401175e8ceeb2c0a44f072c0726
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 04:38:25 2018 +0200

    chore(ci): run all tests and store coverage artifact

commit 7ad02c49f22483e608375f6d50c8df8493d06189
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 02:05:49 2018 +0200

    fix(observation): add unit tests for map/set observation & fix some issues
    refactor(observation): simplify map/set/array synchronization from the indexMap by explicitly tracking deleted items

commit 7064c0f9eef9840430fcb953dcff145a093b0aa1
Author: EisenbergEffect <rob@bluespire.com>
Date:   Sat Jul 28 14:45:52 2018 -0700

    fix(DOM): accidental import add

commit e5dc7b6f4645448e83ba224e90fda1aae1c63965
Author: EisenbergEffect <rob@bluespire.com>
Date:   Sat Jul 28 14:43:20 2018 -0700

    doc(runtime): clarify the purpose of several core items

    Also, added some notes on which things are likely to go away with the removal of shadow dom emulation. In the end, I'm hopeful that a good chunk of this will be simplified. However, I think it's likely going to still be very valuable to have core abstractions like ITemplates that create IViews. However, the simplicity can come from the fact that you will no longer need a RenderSlot to render the IView. You can basically just have an INode (or RenderLocation, which will just be an INode) and simply append the IView at the location.

commit 2eeac366ff89727e57d1846344336dea8c54bea7
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 06:49:00 2018 +0200

    chore(ci): configure codecov

commit b8b01d77e0e4c9ba0927ec2126ca0791d8e104f4
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 06:40:11 2018 +0200

    chore(ci): fix workflow deps

commit 10cb98925caba6943202f15d6c05553879dfe073
Merge: 8d29d95 18f3bf8
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 21:20:40 2018 -0700

    Merge pull request #43 from aurelia/feature/ci-tests

    feature/ci-tests

commit 8d29d9504ee87f6b363b5e361e89d66869dc3e5f
Merge: b6cee80 795c1de
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 21:20:06 2018 -0700

    Merge pull request #42 from aurelia/feature/observation

    feature/observation

commit b6cee8079d5b59b6f4f4cdf28805afb1c4461169
Merge: e78d073 c2dd03c
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 21:12:09 2018 -0700

    Merge pull request #41 from aurelia/explain-view-implementations

    doc(runtime): clarify the purpose of several core items

commit 9af1bfe34ac16a015bfcccbf82a418d89800a592
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 05:52:24 2018 +0200

    chore(ci): add build job and switch to test-aot for building

commit 18f3bf8b595505ab1979e1dfd7f806777864fd34
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 04:42:23 2018 +0200

    chore(ci): fix artifacts path

commit 943232621e88d8a7f6252317b51a84aa1ebbdbc0
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 04:38:25 2018 +0200

    chore(ci): run all tests and store coverage artifact

commit 795c1dec0461ef79a65138632e5b3b0f349e920d
Author: fkleuver <fred@avurad.nl>
Date:   Sun Jul 29 02:05:49 2018 +0200

    fix(observation): add unit tests for map/set observation & fix some issues
    refactor(observation): simplify map/set/array synchronization from the indexMap by explicitly tracking deleted items

commit c2dd03cd2efea858adae7bc75c18d6c169083edb
Author: EisenbergEffect <rob@bluespire.com>
Date:   Sat Jul 28 14:45:52 2018 -0700

    fix(DOM): accidental import add

commit 2436a21209adc3c91b1a8c81fbf180d1d4e634df
Author: EisenbergEffect <rob@bluespire.com>
Date:   Sat Jul 28 14:43:20 2018 -0700

    doc(runtime): clarify the purpose of several core items

    Also, added some notes on which things are likely to go away with the removal of shadow dom emulation. In the end, I'm hopeful that a good chunk of this will be simplified. However, I think it's likely going to still be very valuable to have core abstractions like ITemplates that create IViews. However, the simplicity can come from the fact that you will no longer need a RenderSlot to render the IView. You can basically just have an INode (or RenderLocation, which will just be an INode) and simply append the IView at the location.

commit e78d07338dda35c6464e0590c251210a99e79e69
Merge: f15c1bc 3271c4c
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 12:07:00 2018 -0700

    Merge pull request #40 from aurelia/feature/code-coverage

    feature/code-coverage

commit f15c1bce4fd09dd0aa72747d4ea676cf3255e325
Merge: e81c33a dec74e8
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 12:04:57 2018 -0700

    Merge pull request #39 from aurelia/feature/binding-mode

    feature/binding-mode

commit 3271c4c315324bdedce67b86b3350aae48ee64d5
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 20:59:32 2018 +0200

    fix(ci): fix path

commit 271da8cf1eda4b79af94c7fa803e875db9b022d4
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 20:00:21 2018 +0200

    doc(ci): add badges

commit 44681156d3f13f4261ba8c61f934acd871046e0d
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 19:44:04 2018 +0200

    chore(ci): fix junit coverage

commit dec74e876a3d06b28bc802440b23125361f41c62
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 19:03:43 2018 +0200

    test(binding/resources): add basic unit tests as a starting point

    fix(signals): correct argument count

commit 1b7c345e9dda1657761f629d7e18cdaecb3c9e7c
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 17:51:52 2018 +0200

    fix(binding/resources): update bindingBehaviors with flags and new bindingMode

commit 4bb62abf2549257bec08d4a0258b050ac5fe3b7b
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 17:50:04 2018 +0200

    refactor(binding-mode): deprecate oneWay and addturn bindingMode into flags

    refactor(binding): change things in the runtime accordingly, and apply a few optimizations to binding.ts (both related and unrelated to binding.ts)

commit e81c33ad40f6956bc88a3e3fd5923cce485a4e49
Merge: 3ad2a6a 25c18ee
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 01:00:07 2018 -0700

    Merge pull request #38 from aurelia/feature/ast

    refactor(ast): various perf tweaks / remove redundancy / make behavior more similar to normal js

commit 3ad2a6a3c8842d13ab93efc0136a4af3f4170c11
Merge: a83b40b 1893be3
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 00:58:47 2018 -0700

    Merge pull request #37 from aurelia/feature/repeater

    feat(repeater): implement repeater with the new observation logic

commit a83b40b71bbbf6a58b2bbe7213bbdf2d4536e3b9
Merge: 1c4fabd 23463a2
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Sat Jul 28 00:50:46 2018 -0700

    Merge pull request #36 from aurelia/feature/cleanup

    chore(all): remove unused deps / update deps / remove deprecated tests

commit 25c18ee8cb2a5571ea40e9491a48a1a61247ecd2
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 09:02:09 2018 +0200

    refactor(ast): various perf tweaks / remove redundancy / make behavior more similar to normal js

commit 1893be3c74d4bea5401eae656a7a45dbc8d11ce1
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 08:47:09 2018 +0200

    feat(repeater): implement repeater with the new observation logic

commit 242b2bbb75a0e6fa4c0bee7cb6658343a689194c
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 06:30:04 2018 +0200

    chore(ci): fix circle config for coverage

commit a293f64da7abcf615c177b091feed7b63408af8e
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 06:06:22 2018 +0200

    fix(coverage): hacky workaround to fix the dtd url for cobertura

commit b1b81a6f5322fe869af7a8babedb294231cca318
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 05:47:40 2018 +0200

    chore(ci): store coverage results

commit 3de83f24270248c977c61198a4218e05cd85631d
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 05:45:46 2018 +0200

    chore(test): use normal text output and export circleci compatible report

commit 25442dce282a8a14e1f8fc59a34a36c1b6a13d11
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 05:28:16 2018 +0200

    chore(ci): add istanbul to docker image

commit 23463a208754ed54be236ab2549d043c199de3dc
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 04:58:18 2018 +0200

    chore(test): remove deprecated unit tests

commit a35832b4850325d8604f92dc31d9cb79af9e84b1
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 04:57:00 2018 +0200

    chore(all): update deps

commit d506d3f14f6b9a842a776d4b3d123163dc8ec5b2
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 04:29:10 2018 +0200

    chore(all): cleanup deps we don't use

commit 1c4fabd8ca50905dac12c90531abf13309f294f4
Merge: ae7cf21 9e290a9
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 19:15:00 2018 -0700

    Merge pull request #35 from aurelia/feature/ci

    chore(ci): enable npm ci verbose logging

commit ae7cf215aea36a97dd8b3b51314a2cc1712155c8
Merge: c2cd3af 12b73f0
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 19:14:44 2018 -0700

    Merge pull request #34 from aurelia/feature/binding-flags

    refactor(all): add binding-flags and reorder parameters to be more consistent

commit 9e290a953a99cf6e43c999378a427163a2dd05f8
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 04:12:25 2018 +0200

    chore(ci): enable npm ci verbose logging

commit 12b73f0f17f22f62487fbc092778d49e0285664d
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 03:55:49 2018 +0200

    refactor(all): add binding-flags and reorder parameters to be more consistent

commit c2cd3afc2d9c321baddabb6f1a6b0737475f22a4
Merge: 17793ff fd4a56b
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 18:32:00 2018 -0700

    Merge pull request #33 from aurelia/feature/connect-queue

    refactor(binding): remove connect-queue (temporarily)

commit fd4a56bc1906ce6b89dad6d97b47315be7f54fd8
Author: fkleuver <fred@avurad.nl>
Date:   Sat Jul 28 02:52:32 2018 +0200

    refactor(binding): remove connect-queue (temporarily)

commit 17793ffcc4fdcabacce7537c4bab25fdd9e0922a
Merge: 639b606 0b88a15
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 15:41:57 2018 -0700

    Merge pull request #32 from aurelia/feature/tsconfig

    chore(tsconfig): target es2015 and switch to explicit inclusion

commit 0b88a15174bc3c01b34248fd3094b91db216208b
Merge: e6dd9b9 639b606
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 15:41:22 2018 -0700

    Merge branch 'master' into feature/tsconfig

commit 639b60653e4eed16c343ef97cb70656aee055b00
Merge: 7c26800 b7213ad
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 15:39:47 2018 -0700

    Merge pull request #31 from aurelia/feature/ci

    chore(ci): add basic circleci config for running unit tests

commit 7c26800d564b0432b110576c69b94d9fe9db4880
Merge: 3222e4d 0183386
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Fri Jul 27 15:39:08 2018 -0700

    Merge pull request #30 from aurelia/feature/binding

    refactor(binding): merge binding with connectableBinding and connect-queue

commit 3222e4d44a9e95e2367a0d08decba9186fdaea09
Merge: e4403d4 383b052
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Thu Jul 26 23:17:15 2018 -0700

    Merge pull request #29 from aurelia/feature/observation

    feat(observation): add improved collection observers

commit e4403d4d7ab7d1731a1ad8f52edc8fed1bee7a46
Merge: 7d1b2cd 44c9464
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Thu Jul 26 19:46:28 2018 -0700

    Merge pull request #28 from aurelia/feature/task-queue

    refactor(task-queue): change to a moving-cursor mechanism

commit 7d1b2cdfd0bfd7c0e84f1ca4a593b010bbfc3adf
Merge: 4192a3e 7458be7
Author: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Date:   Thu Jul 26 19:42:00 2018 -0700

    Merge pull request #27 from aurelia/feature/dom

    refactor(dom): various perf tweaks

commit e6dd9b9bd5db73b3c151e79990c02b03c65fec80
Author: fkleuver <fred@avurad.nl>
Date:   Thu Jul 26 11:29:07 2018 +0200

    chore(tsconfig): target es2015 and switch to explicit inclusion

commit b7213ad88b9130bcbe0896ce5cc201cef0a0040d
Author: fkleuver <fred@avurad.nl>
Date:   Thu Jul 26 11:07:35 2018 +0200

    chore(ci): add basic circleci config for running unit tests

    Just an initial skeleton setup. Doesn't do builds, code coverage, e2e tests and that sort of thing yet.
    Also included a custom Dockerfile which is published to the docker registry under aureliavnext/circleci.
    This is needed because the default circleci image for node 8 doesn't contain the latest npm version nor the latest chrome version, which causes issues.

commit dfc17615d27db767fee621ed8eade6339f04887d
Author: fkleuver <fred@avurad.nl>
Date:   Thu Jul 26 09:45:58 2018 +0200

    chore(all): switch from yarn.lock to package-lock.json

    The main motivation for this is simplicity o…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants