Commit graph

132 commits

Author SHA1 Message Date
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
Isiah Meadows
9d6a5e51eb Merge pull request #1674 from pygy/fix-state-initialization
Fix state initialization
2017-03-02 14:28:16 -05:00
Pierre-Yves Gerardy
3e7649ef06 Fix recycled components initialization
fix #1641
2017-02-24 09:26:26 +01:00
Leo
e019c8131c fix merge conflicts for #1610 2017-02-23 18:41:46 -05:00
Pierre-Yves Gerardy
7668ddd120 fix #1638 2017-02-21 09:17:00 +01:00
Leo Horie
732ddf06be Merge pull request #1595 from tivac/issues-1593
Loose comparison when early-outing from setting attributes
2017-02-18 10:05:42 -05:00
Pierre-Yves Gérardy
3f3af74dde Support classes and factories as components (#1339)
* Support classes and factories as components

* Tests for class and factory component support
2017-02-14 22:48:02 -05:00
Leo
632677e00c fix update lifecycle in children of recycled 2017-02-10 10:09:18 -05:00
Leo
0d9a51fe37 fix lifecycle in unkeyed child of recycled keyed 2017-02-09 09:54:48 -05:00
Leo
dc42b60687 #1609 fix lifecycle hooks in children of recycled keyed vnode 2017-02-09 08:31:08 -05:00
Tetsuro Yoshikawa
fdf2985adf Error in IE11 due to setting of type attribute
If you assign an input type that is not supported by IE11 with an
assignment expression, an error will occur.
2017-02-09 22:27:55 +09:00
Gyandeep Singh
390e1fe343 Update: Add elem to parent before adding its children 2017-02-07 21:55:01 -06:00
Pat Cavit
5ab2cf4172 fix: Use loose comparison for non-string values
fixes #1593
2017-02-06 14:46:31 -08:00