Mithril components are diffed wholesale.
m.render(elt, m(Foo))followed by
m.render(elt, m(Bar))| <!DOCTYPE html> | |
| <title>onhashchange iframe</title> | |
| <meta charset="utf-8"> | |
| <iframe src="https://cdn.rawgit.com/pygy/bfe0555ab0ef9a6bfc2a7dc471d0b9d0/raw/e0fad9b45a3a6d5235b8acbc2a7b74137082f1ee/index.html"></iframe> |
| /* | |
| This mixin allows us use CSS grid without having to think about | |
| what -ms-grid-row/-ms-grid-column we have to assign to a grid element | |
| for it to properly work on Internet Explorer and Edge. | |
| It takes three arguments, the last one of which is optional. Specify the | |
| maximum amount of items you want to have in your grid, when they should | |
| break to the next line and, if you like, a grid-gap of some sort. |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"/> | |
| <title>eqeqeq vs regexp</title> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/1.0.0/benchmark.min.js"></script> | |
| <script src="./suite.js"></script> | |
| </head> | |
| <body> | |
| <h1>Open the console to view the results</h1> |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"/> | |
| <title>indexof vs regexp</title> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/1.0.0/benchmark.min.js"></script> | |
| <script src="./suite.js"></script> | |
| </head> | |
| <body> | |
| <h1>Open the console to view the results</h1> |
| <!doctype html> | |
| <title>XRegExp fast-fake-y benchmarks</title> | |
| <table><tr><td> | |
| <div id="log-after">Testing XRegExp 3.1.1-fast-fake-y.<br>Sit back and relax. This might take a while.<br><br>Constructor with short pattern:<br>XRegExp with pattern cache flush x 88,916 ops/sec ±2.24% (82 runs sampled)<br>XRegExp x 834,869 ops/sec ±1.08% (81 runs sampled)<br>XRegExp.cache x 38,821,522 ops/sec ±1.93% (82 runs sampled)<br>RegExp x 5,654,331 ops/sec ±1.68% (81 runs sampled)<br>Fastest is XRegExp.cache<br><br>Constructor with medium pattern:<br>XRegExp with pattern cache flush x 32,278 ops/sec ±1.20% (83 runs sampled)<br>XRegExp x 856,503 ops/sec ±1.48% (79 runs sampled)<br>XRegExp.cache x 38,742,523 ops/sec ±0.66% (82 runs sampled)<br>RegExp x 5,679,163 ops/sec ±2.44% (80 runs sampled)<br>Fastest is XRegExp.cache<br><br>Constructor with long pattern:<br>XRegExp with pattern cache flush x 1,211 ops/sec ±1.01% (80 runs sampled)<br>XRegExp x 484,537 ops/sec ±0.98% (81 runs sampled)<br>XRegExp.cache x 38,776,122 ops/sec ± |
| var c = require("compose-regexp") | |
| function normalize(matcher) { | |
| if (typeof matcher === 'function') return matcher | |
| if (({}).toString.call(matcher) === '[object Object]') return grammar(matchers) | |
| var flags = 'g' | |
| if (matcher instanceof RegExp) flags += matcher.flags.replace('g', '') | |
| matcher = c.flags(flags, | |
| c.either( | |
| matcher, | |
| /()/ |
Mithril components are diffed wholesale.
m.render(elt, m(Foo))followed by
m.render(elt, m(Bar))| atrules: | |
| @keyframes: bare -webkit- | |
| @viewport: -ms- | |
| @document: | |
| functions: | |
| linear-gradient(): bare -ms- -webkit- | |
| calc(): bare -webkit- | |
| element(): | |
| cross-fade(): |
The gist: by having a Promise adopt the state of a forever pending one, you can suspend its then handlers chain.
Promise.pending = Promise.race.bind(Promise, [])
let cancel
new Promise(function(fulfill, reject) {
cancel = function() {fulfill(Promise.pending())}
setTimeout(fulfill, 1000, 5)| // The Mithril router extracted to work standalone. | |
| // as a commonJS module. | |
| // the effector must be a function that accepts a DOM node | |
| // (insertion point) and a component, like Mithril;s `m.mount` | |
| // This was done by modifying the code as little as possible | |
| // but the result will need a bit more polish to become universally | |
| // useful... | |
| // The MIT License (MIT) |