Each component called its hooks properly individually, however the issue
was that it was done component by component. However, in practice, we
want the willPatch hooks to be done before ANY patch is actually
performed, and the patched should be called AFTER every patch is
applied.
The trick is to propagate a list of patched components across various
function calls.
closes#64
This is a pretty big breaking change: the html output by qweb is now
different.
The main goal is to optimize the compiled templates:
- condense all consecutive whitespaces into a single spaces
- if possible, drop completely some text nodes, based on the following
heuristic: if a text node is only composed of whitespaces, and
contains at least one linebreak, then it can be dropped.
This leads in my benchmark test to an improvement of about 10%, in
rendering speed and in memory consuption.
Note: whitespace here means anything that matches the \s regexp: newlines,
tabs, ...
close#8