Pierre-Yves Gérardy
f7a95d8c12
Cleanup, comments, and optimize getKeyMap
2018-04-23 13:52:03 +02:00
Pierre-Yves Gérardy
801bde219e
[render/render] move keyed cached nodes when needed, fix diff semantics for cached nodes, fix #2132
2018-04-23 13:52:03 +02:00
Pierre-Yves Gérardy
9490950c30
[render/render] Simplify updateNodes, fix #2128
2018-04-23 13:52:03 +02:00
Pierre-Yves Gérardy
c6693aa361
Disentangle keyed and unkeyed diff
2018-04-23 13:52:03 +02:00
Pierre-Yves Gérardy
203df39c30
Remove the DOM nodes recycling pool ( fix #1653 , fix #2023 )
2018-04-16 09:45:45 +02:00
Pierre-Yves Gérardy
d21ba5ee6a
Document the reason for the possibleParents map
2018-03-06 02:13:15 +01:00
Pierre-Yves Gérardy
ad46a21a7d
[render] add support for SVG in m.trust() strings
2018-03-06 01:12:32 +01:00
Fabiano Taioli
83884bdc90
element value is not cleared when value valor change to undefined
2018-02-09 00:47:59 +01:00
Pierre-Yves Gérardy
1782fa8b63
render: fix perf regression introduced by #1918
2017-12-08 21:37:08 +01:00
Pierre-Yves Gérardy
9f09ac069c
Address #2021 review comments
2017-12-04 14:38:39 +01:00
Pierre-Yves Gérardy
3f37d3d7c0
#2021 change log and docs
2017-12-04 14:38:39 +01:00
Pierre-Yves Gérardy
02aab654f0
render: remove check that may hide bugs
2017-12-04 14:38:39 +01:00
Pierre-Yves Gérardy
9c835f4eac
render/updateNodes: call toFragment on the new vnodes, solves issues with actual fragments ( fix #1991 partim 2)
2017-12-04 14:38:39 +01:00
Pierre-Yves Gérardy
39ff8d7217
render: make removeNode aware that it is removing children from an object that's brought back from the pool
2017-12-04 14:38:39 +01:00
Pierre-Yves Gérardy
98c053e12b
render/updateNodes: revamp unkeyed list detection, don't skip null nodes in unkeyed lists when old and vnodes don't have the same length
...
Fix #2003 partim 2
2017-12-04 14:38:39 +01:00
Pierre-Yves Gérardy
e839c9e80a
render/updateNodes: Don't fetch the next sibling from the pool
2017-12-04 14:38:39 +01:00
Pierre-Yves Gérardy
eaa9f589af
render/updateNodes: recycling, clarify terminology, fix logic
...
fix #2003 partim 1
fix #1991 partim 1
2017-12-04 14:38:39 +01:00
Pierre-Yves Gérardy
8950760e85
render: extract pool addtition logic, don't run onremove on nodes that move from pool to pool ( fix #1990 )
2017-12-04 14:38:39 +01:00
robinchew
db2a12dec9
Trying to fix #1916 ( #1918 )
...
* Trying to fix #1916
* Remove test for rendering select options. Add back after resolving issue #1978 .
* Add #1916 fix to change log.
* Revert "Remove test for rendering select options. Add back after resolving issue #1978."
This reverts commit d4c1be7c2319adf744f78ca787485f52be869208.
* Comment on why failing test for #1916 is commented out.
2017-10-31 20:37:51 +01:00
valtron
622e009811
recycling => shouldRecycle, Fix #1992 ( #1993 )
...
* Fix #1992
* doc in changelog
* add test for #1992
2017-10-16 08:38:44 +02:00
Mateusz Jaworski
8b56c70911
fix: Allow for changing focus in lifecycle hooks ( #1988 )
2017-10-13 22:31:03 -07:00
Isiah Meadows
ae27c0ff18
Merge pull request #1977 from isiahmeadows/remove-legacy-state
...
Remove support for `vnode.state = ...`
2017-10-04 18:00:16 -04:00
Isiah Meadows
19d2ba316c
Remove support for vnode.state = ...
...
- Remove docs for it
- Remove tests for it
- Add runtime check for unexpected reassignment, since we can't freeze
the property (we internally have to be able to modify it)
2017-10-02 19:57:48 -04:00
Isiah Meadows
348bed0a7e
Allow xlink:href to get removed, fix option.value in mock
2017-10-01 19:34:12 -04:00
Isiah Meadows
a1a7038e55
Rework event diffing for better optimizability
...
Re-ordered the type checks so that I can avoid polymorphic property
lookups in event updates. (It improved the common case of no change by
a little over ~40%.)
2017-09-01 17:06:19 -04:00
Isiah Meadows
5209071011
Merge next into optimize-events
2017-08-31 05:43:39 -04:00
Jackson Nowotny
5303e70fde
fixing merge conflicts
2017-08-29 10:30:45 -05:00
Jackson Nowotny
aaa448ac4e
adding comment specifying bug
2017-08-29 10:28:00 -05:00
Jackson Nowotny
849e862413
Fixing IE bug causing active element to be null causing render function to throw error
2017-08-29 10:27:58 -05:00
Isiah Meadows
2c92d84058
Add support for object event handlers (using handleEvent)
...
- `handleEvent` is checked on dispatch, like in the DOM.
- Had to reorder attribute key checking so `undefined` events still got
removed.
- Drive-by: Optimize the initial attribute key checking a little.
- Drive-by: Fix changelog v2.0.0 link in TOC.
2017-08-25 06:06:46 -04:00
Isiah Meadows
dbbdb0664a
Reduce memory allocation/usage across multiple event handlers
...
- `handleEvent` is a very useful tool.
- Always use `addEventListener`/`removeEventListener`, since it's
required for this optimization.
- Change log updated.
- Drive-by: make DOM mock work with both event listener types.
- Drive-by: eliminate possibility of `Object.prototype` interference.
2017-08-25 05:19:30 -04:00
spacejack
ae0b791530
Eleminate now-redundant if block. Add change-log notes.
2017-08-15 15:53:23 -04:00
spacejack
1e56f7763e
More accurate style object diffs
2017-08-13 18:32:32 -04:00
Pierre-Yves Gérardy
c96e085799
core: don't call onremove on the children passed to components that return from their view, fix #1921
2017-07-31 11:48:15 +02:00
Pierre-Yves Gérardy
1fb64c91e3
Take the namespace of the root node into account, fix other ns oversight #1872
2017-06-14 01:59:45 +02:00
Pierre-Yves Gérardy
60e999fa89
[render/render] Add a special case for ; fix #1870
2017-06-12 18:42:46 +02:00
Isiah Meadows
712be2bcc3
Merge pull request #1862 from pygy/fix-1595-redux
...
Re-fix #1595
2017-05-31 02:56:29 -04:00
Isiah Meadows
66aa377548
Simplify ESLint guard
2017-05-31 02:44:15 -04:00
Pierre-Yves Gerardy
40429c8377
Pass namespace when creating new elements while updating a keyed list, fix #1820
2017-05-30 14:17:46 +02:00
Pierre-Yves Gerardy
4616160a52
redo #1595
2017-05-29 17:19:55 +02:00
Samuel Tilly
de4433cd31
Override namespace with xmlns attribute ( #1825 )
...
Fixes issue #1819 foreignObject inside SVG
2017-05-03 14:55:56 -04:00
spacejack
0f9d5f1631
Fix select option to use empty string value, add tests.
2017-04-30 15:04:37 -04:00
Isiah Meadows
b24c37c42d
Revert "Pass vnode as second argument"
2017-04-28 16:40:13 -04:00
Isiah Meadows
e78d1b692c
Support vnode event callbacks
2017-04-11 13:05:12 -04:00
Pierre-Yves Gerardy
e20fd3f876
Only call onremove and onbeforeremove when they are functions. Fix #1706
2017-03-27 16:47:45 +02:00
Pierre-Yves Gerardy
32ada55e00
Make the state undefined, not null during class and closure component initialization
2017-03-27 10:42:12 +02:00
Pierre-Yves Gerardy
d69f6e37aa
Add a shadow vnode._state field for view and hook lookups
2017-03-26 22:24:17 +02:00
Pierre-Yves Gerardy
7be2ff5feb
Strengthen the self-return prevention logic (for recycled nodes and updates)
2017-03-26 22:19:05 +02:00
Pierre-Yves Gerardy
aeb1c41bde
treat functions with a view() method as POJO, not closure component
2017-03-26 21:33:30 +02:00
Pierre-Yves Gerardy
74cbd4c17b
Let render() create the state rather than vnode()
2017-03-08 22:19:27 +01:00