Commit graph

35 commits

Author SHA1 Message Date
Isiah Meadows
90bcff0fa7
Deduplicate m.route and m.redraw logic (#2453)
- Remove appropriate route change subcriptions when a root is removed
  via `m.mount(root, null)`.
- Don't pollute `onpopstate` and friends - use standard event listeners
  instead.
- Simplify and streamline subscriptions, in preparation of adding a
  `remove` parameter to `m.mount`.
- Change the redraw internals to redraw immediately, with ability to
  cancel via returning a sentinel.
- Change `"bleeding-edge"` for `m.version` in `next` to instead just be
  the latest `m.version`. (If you're using `next`, you should know what
  you're in for.)
- Update tests to be aware of these changes. (Some were failing for
  subtle reasons.)
- Drive-by: remove some uses of `string.charAt(n)` and use `string[n]`
  instead.
2019-07-05 18:52:06 -04:00
Isiah Meadows
4a641092dc
Officially drop IE9-10 support, pull out our hacks (#2296)
- I also fixed a bunch of related comments
- I had to polyfill `requestAnimationFrame` for Node
- Drive-by: run `eslint . --fix`
- Drive-by: update transpiling info in CONTRIBUTING.md
- Drive-by: we aren't the only ones going semicolon-free
2018-11-27 18:04:15 -05:00
Rasmus Porsager
7c299ab48c Allow css vars with uppercase characters (#2311)
* Allow css vars with uppercase characters

* Remove charAt

* Extract dash lowercase lambda

* Extract match uppercase regex

* Set key and value correctly in updateStyle

* Fix domMock style to work like the browser
2018-11-26 09:40:08 -05:00
Barney Carroll
4c5968a526 Fix #2192 (#2308)
* Fix #2192

* Fix mock style property definitions

* Re-instate camelCased style property key declaration support

* Fix removeProperty, eslint fix

* Stringify style keys: fix perf tests

* Fix weird uncaught mixed whitespace

* Fix weird uncaught mixed whitespace
2018-11-26 05:49:16 -05:00
Isiah Meadows
4d579c50b6
Revert "Fix #1771 and probably others (#2286)" (#2299)
4f68984f2f
2018-11-14 19:26:23 -05:00
Isiah Meadows
4f68984f2f
Fix #1771 and probably others (#2286)
This is *super* subtle, and IMHO Chrome did exactly the wrong thing
here.
2018-11-14 15:35:00 -05:00
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
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
b39f4f683d [domMock] Better accuracy for namespaced elements 2018-06-01 21:27:02 +02:00
Pierre-Yves Gérardy
e3b240032a [domMock] don't call public methods from DOM API methods (it messes up spying) 2018-05-29 23:50:29 +02:00
Pierre-Yves Gérardy
9136585fe4 [DOM Mock] Fix insertBefore when the reference node follows the moving child in a nodeList 2018-04-23 13:52:03 +02:00
Pierre-Yves Gérardy
fdd34f9726 [mocks] Add some support for parsing SVG using the DOMParser API and innerHTML 2018-03-06 01:12:32 +01:00
Pierre-Yves Gérardy
12d3540d47 domMock: implement event propagation 2017-12-03 01:16:22 +01: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
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
Pierre-Yves Gérardy
894152440b Add tests for #1870 2017-06-12 18:26:45 +02:00
Pierre-Yves Gerardy
195263d226 [test-utils/domMock] restore Attr.nodeValue for backwards compatibility 2017-05-29 13:59:31 +02:00
Pierre-Yves Gerardy
58bc414635 tests for validating #1595 and #1804 2017-05-28 21:03:27 +02:00
Pierre-Yves Gerardy
e031fe49a1 [test-utils/domMock] improve attributes handling 2017-05-28 18:26:09 +02:00
Isiah Meadows
1cc5fa5ba7 "use strict" and other linty fixes 2017-03-03 18:24:38 -05:00
Leo Horie
ff7ce37476 allow dom level 1 events to be removed #1385 2016-11-04 12:33:36 -04:00
Leo Horie
40251c6c16 #1342 update m.route.link target if href changes 2016-10-04 12:19:55 -04:00
Leo Horie
d0a4993681 clean up 2016-10-03 10:56:44 -04:00
Leo Horie
b8ef290acd improved bundler, handle width/height atts 2016-09-23 10:31:33 -04:00
Pierre-Yves Gerardy
55a5d0a69f Remove an unused variable 2016-08-11 21:21:17 +02:00
Pierre-Yves Gerardy
bffe87e053 Fix the domMock cssText implementation 2016-08-11 17:53:01 +02:00
Pierre-Yves Gerardy
5fd2e99831 Fix the domMock and domMock tests for cssText support 2016-08-05 12:43:31 +02:00
impinball
b4fb21475c Add editorconfig, resolve differences
This includes newlines, tabs, among other things.
2016-06-18 03:22:12 -04:00
Leo Horie
693c87f5f1 fix svg class updates 2016-06-07 20:20:30 -04:00
Leo Horie
e7420e72e1 more tests 2016-05-24 23:16:43 -04:00
Pat Cavit
41b24b998a m.route tests should run against all prefixes
Also tests `router.link` now. Had to add a `preventDefault` function to
domMock events that doesn't do anything, that may need a more-complete
implementation someday?
2016-05-19 10:59:41 -07:00
Pat Cavit
960812308c Move public APIs into their own folder
And start writing actual tests for them
2016-05-19 10:59:41 -07:00
Leo Horie
d5371533a7 fix attribute syncing for input, select, textarea
optimize events
2016-05-10 01:55:48 -04:00
Leo Horie
b17bd250b7 support all events 2016-05-06 10:11:31 -04:00
Leo Horie
559369016d initial commit (work in progress) 2016-04-20 20:02:37 -04:00