corpus.blog
Most cited
Talked about
Blogs
56,966 blogs · [ { "id": "01a07df3-f7a4-701e-8f1f-a54b2daea979", "title": "A horrifying `globalThis` polyfill in universal JavaScript", "url": "https://mathiasbynens.be/notes/globalthis", "published_at": "2019-04-15T14:40:02+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b2de1b45f", "title": "JavaScript engine fundamentals: optimizing prototypes", "url": "https://mathiasbynens.be/notes/prototypes", "published_at": "2018-08-16T10:35:56+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b2e236acc", "title": "JavaScript engine fundamentals: Shapes and Inline Caches", "url": "https://mathiasbynens.be/notes/shapes-ics", "published_at": "2018-06-06T12:57:44+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b2e23bf77", "title": "Asynchronous stack traces: why `await` beats `Promise#then()`", "url": "https://mathiasbynens.be/notes/async-stack-traces", "published_at": "2017-09-12T15:29:55+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b2ea125a6", "title": "ECMAScript regular expressions are getting better!", "url": "https://mathiasbynens.be/notes/es-regexp-proposals", "published_at": "2017-01-25T11:01:45+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b2f8cd953", "title": "Unicode property escapes in JavaScript regular expressions", "url": "https://mathiasbynens.be/notes/es-unicode-property-escapes", "published_at": "2016-06-12T11:53:47+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b2ffc3f09", "title": "ES2015 `const` is not about immutability", "url": "https://mathiasbynens.be/notes/es6-const", "published_at": "2016-02-04T13:41:38+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b30d48cee", "title": "Valid JavaScript variable names in ES2015", "url": "https://mathiasbynens.be/notes/javascript-identifiers-es6", "published_at": "2015-03-03T19:07:48+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b316384a2", "title": "Unicode-aware regular expressions in ES2015", "url": "https://mathiasbynens.be/notes/es6-unicode-regex", "published_at": "2014-08-26T16:51:35+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b321a145a", "title": "Dear Google, please fix plain text emails in Gmail", "url": "https://mathiasbynens.be/notes/gmail-plain-text", "published_at": "2014-07-04T08:58:33+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b32754e14", "title": "PBKDF2+HMAC hash collisions explained", "url": "https://mathiasbynens.be/notes/pbkdf2-hmac", "published_at": "2014-03-21T08:47:42+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b333e02dc", "title": "JavaScript has a Unicode problem", "url": "https://mathiasbynens.be/notes/javascript-unicode", "published_at": "2013-10-18T00:39:57+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3416c0be", "title": "Processing Content Security Policy violation reports", "url": "https://mathiasbynens.be/notes/csp-reports", "published_at": "2013-09-19T13:18:34+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b345765b6", "title": "Hiding JSON-formatted data in the DOM with CSP enabled", "url": "https://mathiasbynens.be/notes/json-dom-csp", "published_at": "2013-08-26T16:32:01+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b353bd303", "title": "Loading JSON-formatted data with Ajax and `xhr.responseType='json'`", "url": "https://mathiasbynens.be/notes/xhr-responsetype-json", "published_at": "2013-07-23T23:14:15+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b357305dc", "title": "Reserved keywords in JavaScript", "url": "https://mathiasbynens.be/notes/reserved-keywords", "published_at": "2013-06-12T19:46:35+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b362abfb8", "title": "How to support full Unicode in MySQL databases", "url": "https://mathiasbynens.be/notes/mysql-utf8mb4", "published_at": "2012-07-28T15:16:16+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3638185f", "title": "How to speedrun Dropbox’s Dropquest 2012", "url": "https://mathiasbynens.be/notes/dropquest-2012", "published_at": "2012-05-14T16:21:29+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3705ea63", "title": "Unquoted font family names in CSS", "url": "https://mathiasbynens.be/notes/unquoted-font-family", "published_at": "2012-03-27T17:38:34+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b379cfd69", "title": "Unquoted property names / object keys in JavaScript", "url": "https://mathiasbynens.be/notes/javascript-properties", "published_at": "2012-02-29T21:17:54+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b38517023", "title": "Valid JavaScript variable names in ES5", "url": "https://mathiasbynens.be/notes/javascript-identifiers", "published_at": "2012-02-17T15:19:15+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b4202ef6f", "title": "CSS character escape sequences", "url": "https://mathiasbynens.be/notes/css-escapes", "published_at": "2012-01-24T11:57:08+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b389963b1", "title": "JavaScript’s internal character encoding: UCS-2 or UTF-16?", "url": "https://mathiasbynens.be/notes/javascript-encoding", "published_at": "2012-01-17T22:18:54+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b39de1b7a", "title": "The smallest possible valid (X)HTML documents", "url": "https://mathiasbynens.be/notes/minimal-html", "published_at": "2011-12-15T13:35:06+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b396fab52", "title": "JavaScript character escape sequences", "url": "https://mathiasbynens.be/notes/javascript-escapes", "published_at": "2011-11-29T15:24:30+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3b61120f", "title": "JavaScript `foo.prototype.bar` notation", "url": "https://mathiasbynens.be/notes/javascript-prototype-notation", "published_at": "2011-08-12T10:56:54+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3a7f1176", "title": "Ambiguous ampersands", "url": "https://mathiasbynens.be/notes/ambiguous-ampersands", "published_at": "2011-08-07T12:22:30+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3bb517ba", "title": "HTML element + attribute notation", "url": "https://mathiasbynens.be/notes/element-attribute-notation", "published_at": "2011-08-04T15:09:09+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3c71ad6f", "title": "How I detect and use `localStorage`: a simple JavaScript pattern", "url": "https://mathiasbynens.be/notes/localstorage-pattern", "published_at": "2011-07-29T15:09:40+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3d5cb9bb", "title": "Unquoted attribute values in HTML and CSS/JS selectors", "url": "https://mathiasbynens.be/notes/unquoted-attribute-values", "published_at": "2011-06-13T10:22:53+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3d158764", "title": "The end-tag open (ETAGO) delimiter", "url": "https://mathiasbynens.be/notes/etago", "published_at": "2011-06-10T10:45:14+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3e5c191d", "title": "Using the `oninput` event handler with `onkeyup`/`onkeydown` as its fallback", "url": "https://mathiasbynens.be/notes/oninput", "published_at": "2011-05-11T09:31:52+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3ee88455", "title": "Everything you always wanted to know about touch icons", "url": "https://mathiasbynens.be/notes/touch-icons", "published_at": "2011-03-02T08:09:06+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3dbc8e4e", "title": "In defense of CSS hacks — introducing “safe CSS hacks”", "url": "https://mathiasbynens.be/notes/safe-css-hacks", "published_at": "2011-02-21T13:54:00+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3f6b9459", "title": "AirPlay video support in iOS Safari — a bookmarklet", "url": "https://mathiasbynens.be/notes/ios-airplay-bookmarklet", "published_at": "2011-02-03T11:23:40+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3fdb54df", "title": "Completing Dropbox’s Dropquest 2011 in 60 seconds", "url": "https://mathiasbynens.be/notes/dropquest-2011", "published_at": "2011-01-16T17:13:31+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b40694e30", "title": "Using CSS without HTML", "url": "https://mathiasbynens.be/notes/css-without-html", "published_at": "2010-12-14T15:13:38+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b408a10e4", "title": "How to create simple Mac apps from shell scripts", "url": "https://mathiasbynens.be/notes/shell-script-mac-apps", "published_at": "2010-11-12T12:51:46+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b41428f01", "title": "Using `setTimeout` to speed up `window.onload`", "url": "https://mathiasbynens.be/notes/settimeout-onload", "published_at": "2010-09-08T12:08:56+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b404f9a20", "title": "Bulletproof JavaScript benchmarks", "url": "https://mathiasbynens.be/notes/javascript-benchmarking", "published_at": "2010-08-02T11:15:24+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b4303831a", "title": "Thoughts on Safari Reader’s generated HTML", "url": "https://mathiasbynens.be/notes/safari-reader-html", "published_at": "2010-06-13T17:30:50+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b43d612c8", "title": "How to enable Safari Reader on your site?", "url": "https://mathiasbynens.be/notes/safari-reader", "published_at": "2010-06-10T10:03:25+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b42713427", "title": "The XML serialization of HTML5, aka ‘XHTML5’", "url": "https://mathiasbynens.be/notes/xhtml5", "published_at": "2010-06-07T10:24:25+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b426d4f22", "title": "The `id` attribute got more `class`y in HTML5", "url": "https://mathiasbynens.be/notes/html5-id-class", "published_at": "2010-06-06T17:38:38+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b44359a25", "title": "The three levels of HTML5 usage", "url": "https://mathiasbynens.be/notes/html5-levels", "published_at": "2010-05-28T11:45:27+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b453248fa", "title": "The HTML5 `document.head` DOM tree accessor", "url": "https://mathiasbynens.be/notes/document-head", "published_at": "2010-05-04T21:02:07+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b45c23ca5", "title": "Bulletproof HTML5 `` fallback using jQuery", "url": "https://mathiasbynens.be/notes/html5-details-jquery", "published_at": "2010-04-18T15:39:49+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b45eb0f5f", "title": "Displaying hidden elements like `` using CSS", "url": "https://mathiasbynens.be/notes/css-hidden-elements", "published_at": "2010-04-17T22:14:33+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b46894e0f", "title": "Inline `` and `` vs. external `.js` and `.css` — what’s the size threshold?", "url": "https://mathiasbynens.be/notes/inline-vs-separate-file", "published_at": "2010-04-10T20:44:59+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b4589e456", "title": "Using Showdown/PageDown with and without jQuery", "url": "https://mathiasbynens.be/notes/showdown-javascript-jquery", "published_at": "2010-03-31T23:03:31+00:00" } ] posts
Claim your blog
Back to Mathias Bynens
Blog · corpus.blog/blogs/mathiasbynens.be/posts
Mathias Bynens
mathiasbynens.be
2019
A horrifying `globalThis` polyfill in universal JavaScript
original ↗
15 Apr 2019
2018
JavaScript engine fundamentals: optimizing prototypes
original ↗
16 Aug 2018
JavaScript engine fundamentals: Shapes and Inline Caches
original ↗
6 Jun 2018
2017
Asynchronous stack traces: why `await` beats `Promise#then()`
original ↗
12 Sept 2017
ECMAScript regular expressions are getting better!
original ↗
25 Jan 2017
2016
Unicode property escapes in JavaScript regular expressions
original ↗
12 Jun 2016
ES2015 `const` is not about immutability
original ↗
4 Feb 2016
2015
Valid JavaScript variable names in ES2015
original ↗
3 Mar 2015
2014
Unicode-aware regular expressions in ES2015
original ↗
26 Aug 2014
Dear Google, please fix plain text emails in Gmail
original ↗
4 Jul 2014
PBKDF2+HMAC hash collisions explained
original ↗
21 Mar 2014
2013
JavaScript has a Unicode problem
original ↗
18 Oct 2013
Processing Content Security Policy violation reports
original ↗
19 Sept 2013
Hiding JSON-formatted data in the DOM with CSP enabled
original ↗
26 Aug 2013
Loading JSON-formatted data with Ajax and `xhr.responseType='json'`
original ↗
23 Jul 2013
Reserved keywords in JavaScript
original ↗
12 Jun 2013
2012
How to support full Unicode in MySQL databases
original ↗
28 Jul 2012
How to speedrun Dropbox’s Dropquest 2012
original ↗
14 May 2012
Unquoted font family names in CSS
original ↗
27 Mar 2012
Unquoted property names / object keys in JavaScript
original ↗
29 Feb 2012
Valid JavaScript variable names in ES5
original ↗
17 Feb 2012
CSS character escape sequences
original ↗
24 Jan 2012
JavaScript’s internal character encoding: UCS-2 or UTF-16?
original ↗
17 Jan 2012
2011
The smallest possible valid (X)HTML documents
original ↗
15 Dec 2011
JavaScript character escape sequences
original ↗
29 Nov 2011
JavaScript `foo.prototype.bar` notation
original ↗
12 Aug 2011
Ambiguous ampersands
original ↗
7 Aug 2011
HTML element + attribute notation
original ↗
4 Aug 2011
How I detect and use `localStorage`: a simple JavaScript pattern
original ↗
29 Jul 2011
Unquoted attribute values in HTML and CSS/JS selectors
original ↗
13 Jun 2011
The end-tag open (ETAGO) delimiter
original ↗
10 Jun 2011
Using the `oninput` event handler with `onkeyup`/`onkeydown` as its fallback
original ↗
11 May 2011
Everything you always wanted to know about touch icons
original ↗
2 Mar 2011
In defense of CSS hacks — introducing “safe CSS hacks”
original ↗
21 Feb 2011
AirPlay video support in iOS Safari — a bookmarklet
original ↗
3 Feb 2011
Completing Dropbox’s Dropquest 2011 in 60 seconds
original ↗
16 Jan 2011
2010
Using CSS without HTML
original ↗
14 Dec 2010
How to create simple Mac apps from shell scripts
original ↗
12 Nov 2010
Using `setTimeout` to speed up `window.onload`
original ↗
8 Sept 2010
Bulletproof JavaScript benchmarks
original ↗
2 Aug 2010
Thoughts on Safari Reader’s generated HTML
original ↗
13 Jun 2010
How to enable Safari Reader on your site?
original ↗
10 Jun 2010
The XML serialization of HTML5, aka ‘XHTML5’
original ↗
7 Jun 2010
The `id` attribute got more `class`y in HTML5
original ↗
6 Jun 2010
The three levels of HTML5 usage
original ↗
28 May 2010
The HTML5 `document.head` DOM tree accessor
original ↗
4 May 2010
Bulletproof HTML5 `` fallback using jQuery
original ↗
18 Apr 2010
Displaying hidden elements like `` using CSS
original ↗
17 Apr 2010
Inline `` and `` vs. external `.js` and `.css` — what’s the size threshold?
original ↗
10 Apr 2010
Using Showdown/PageDown with and without jQuery
original ↗
31 Mar 2010