Commit graph

243 commits

Author SHA1 Message Date
Isiah Meadows
c703b03253
Unbreak accidental back-compat break with event optimization (#2222)
This was supposed to be purely additive. See here for more details:

https://github.com/MithrilJS/mithril.js/pull/1949#issuecomment-417824513
2018-09-18 10:14:21 -04:00
Sebastian Sandqvist
571b60830b [render/render] Prevent activeElement.focus on SVGs, fix #1983 2018-06-11 22:04:34 +02:00
Pierre-Yves Gérardy
32b319d140 [render/hyperscript] Normalize to class attrs to className, ignore only nullish values 2018-06-07 18:09:38 +02:00
Pierre-Yves Gérardy
8daa386e5e [render/test] add a render/hyperscript integration suite for classes 2018-06-07 18:09:38 +02:00
Pierre-Yves Gérardy
92b22fe8e6 [render/hyperscript] have the attrs take precedence over the selector, improve class normalization
fix #1773
fix #2172
2018-06-07 18:09:38 +02:00
Pierre-Yves Gérardy
3f5cabc5c5 Chore: Normalize the way we use eslint-disable 2018-06-01 21:27:02 +02:00
Pierre-Yves Gérardy
6283aa4a7d [render/render] Test for removing styles and assorted domMock changes 2018-06-01 21:27:02 +02:00
Pierre-Yves Gérardy
cfa128a5cd [render/render] make updateAttrs smarter about null values 2018-06-01 21:27:02 +02:00
Pierre-Yves Gérardy
4921083898 [render/render] Fix xlink:href handling 2018-06-01 21:27:02 +02:00
Pierre-Yves Gérardy
2469505b1b Move xlink:href test to the proper file 2018-06-01 21:27:02 +02:00
Pierre-Yves Gerardy
5b51b682ee Improve attrs removal, fix #1804 2018-06-01 21:27:02 +02:00
Pierre-Yves Gerardy
dc15acd791 Improve attrs setting performance
before:

> mutate styles/properties x 7,999 ops/sec ±10.87% (46 runs sampled)

after:

> mutate styles/properties x 16,104 ops/sec ±4.36% (66 runs sampled)
2018-06-01 21:27:02 +02:00
Pierre-Yves Gerardy
4197cf0ae1 Enable the tests for #1804 2018-06-01 21:27:02 +02:00
Pierre-Yves Gérardy
285cb5382f [render] cleanup and comments 2018-05-29 23:50:29 +02:00
Pierre-Yves Gérardy
144ce68192 [render/render] get rid of vnode.skip 2018-05-29 23:50:29 +02:00
Pierre-Yves Gérardy
2cfc68359d [render/render] Introduce longest increasing subsequence-based node moves in keyed diff, fix #1791, fix #2026 2018-05-29 23:50:29 +02:00
Pierre-Yves Gérardy
95ec3d28aa test for the LIS-based diff 2018-05-29 23:50:29 +02:00
Barney Carroll
1579fe8430
Do not normalise component children on ingestion (#2155)
* Do not normalise component children on ingestion

* Don't normalise vnode children

* Component hyperscript tests: children aren't normalised

* test, not text

* Update change log: #2155 & #2064
2018-05-29 10:53:16 +01:00
magikstm
6097cfb2e9 Small optimization in render hyperscript.js (#2064)
* Small optimization in render hyperscript.js

* Remove temporary variable

* Small optimization in render hyperscript.js

Squashed commits:

[5b103291] Small optimization in render hyperscript.js

* Remove sloppy mode comment
2018-05-18 20:48:56 +02:00
Pierre-Yves Gérardy
44e165a357 [render/render] Misc comment fixes 2018-04-23 13:52:03 +02:00
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
878e4958dc tests for #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
dd6ceca31d tests for #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
fc0240da0f Tests for #1990, #1991 and #2003 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