Sign in with Twitter

Username:

Mathias Bynens @mathias Munich, Germany

I work on @ChromeDevTools & @v8js at Google and on ECMAScript through TC39. ♥ JavaScript, HTML, CSS, HTTP, performance, security, Bash, Unicode, i18n, macOS.

819 Following   63,292 Followers   20,731 Tweets

Joined Twitter 1/4/07


@annevk FacePalmTime @ryzokuken Congratulations!
10/19
2019
@_shu @justinfagnani cc @Rich_HarrisThere are folks who want you to believe it isn't a problem that "modern" frontend starts with 35KiB of JS and scale… https://t.co/nChxzFZN8h
Retweeted by Mathias Bynens @alligatorio @PaulRyan7 @v8js Thank you! @s10wen @paul_irish I haven’t @wongmjane 🔥🔥🔥 You deserve at least 555K more. @alligatorio @PaulRyan7 @v8js And re: optimize-js, the difference between the numbers you list (0.6 ms) seems insig… https://t.co/mDhpaWSxDf @alligatorio @PaulRyan7 There seem to be some inaccuracies here. The "lazy parsing over and over" problem has been… https://t.co/Ajf3NZpxqC
10/18
2019
Tip: DevTools Performance monitor can show if your site has a memory leak in real-time 🚰 Three dot menu > More too… https://t.co/pWmVTnKDdi
Retweeted by Mathias Bynens @twopSK @v8js No, these are two separate optimizations. Code caching can only happen for warm loads. Lazy parsing s… https://t.co/ER5PqkoW3k
10/17
2019
@_mttyng @v8js https://t.co/Xz04BAouUS
10/15
2019
@awbjs @DmitrySoshnikov @BrendanEich Ack @awbjs @DmitrySoshnikov @BrendanEich Recent counterexample: https://t.co/d4lRqx9yyP @DmitrySoshnikov @awbjs I meant it’s a spec bug in the sense that it doesn’t match implementation reality. @forabi @addyosmani You mean like this? Available in Canary 🔥 https://t.co/orwJUIAf1j @DmitrySoshnikov Since all non-Hermes engines implement it the same way, this is arguably a spec bug. Please file i… https://t.co/7F3S0YQgBd
10/14
2019
Well, it's up in case you want to hear me talk: ➡️ Web Components ➡️ React ➡️ The Hero's Journey ➡️ Philosophy ➡️… https://t.co/s2XEPTmBaE
Retweeted by Mathias Bynens
10/13
2019
@jakevdp @ade_oshineye Putting the “plas” into VanderPlas amirite
10/12
2019
@allanwhite Sure! It might appear in URL-encoded form but it’d work. @kuvos Have you tried running a trace in the DevTools Performance panel, and then viewing the script in the Sources… https://t.co/sm9LgECYcT @zcorpan @ericlaw @DotProto Good question. https://t.co/PHcuiNWeBY @ericlaw @DotProto That patch changes :~:targetText=foo to :~:text=foo, but Eric is right: it used to be just #targetText=foo.
10/11
2019
@wa7son {foo:42} is either an object literal or a block containing a label foo and a numeric literal @DasSurma @aerotwist Is that his review of Malbolge? @__DavidFlanagan @slightlylate Definitely a @v8js bug indeed. I’ve filed https://t.co/O81F96kv5D to track this.… https://t.co/xTBK44Ozl0 @wa7son statement vs. expression @NikkitaFTW @AlxSavage Congratulations you two! ❤️👍 @bradleymeck Yeah, that’s true. Fine-grained IDs are always better, if the page provides them… @allanwhite No, THIS is bananas: 🍌🍌🍌 (In all seriousness, I agree it looks a little weird, but… it’s hard to find… https://t.co/LVRaycchQl @Callionica In Chrome’s implementation, it’s the same kind of highlight you’d get when Ctrl+F’ing a page and searching for something. @armand1m @ChromiumDev “It is reserved for UA instructions, such as `text=`, and is stripped from the URL during lo… https://t.co/vlUxlmwseP @My1xT Not in the current proposal, but the idea is indeed that over time we can add new features by using the same… https://t.co/yhEGEjVT8tURL syntax & terminology: ➡️ Within a URL, # starts a URL fragment (or “hash”). ➡️ Within a URL fragment, :~: star… https://t.co/NslqdzslUr
Retweeted by Mathias Bynens @deuxgrandesorei This is useful when a fine-grained anchor is not available. @derSchepp @argyleink Lovely shade of blue: https://t.co/hwd02mnbof
10/10
2019
URL syntax & terminology: ➡️ Within a URL, # starts a URL fragment (or “hash”). ➡️ Within a URL fragment, :~: star… https://t.co/NslqdzslUr @RReverser @rauschma Which shortens to: const func = class { static '!@#?*'() {} }['!@#?*']; @RReverser @rauschma This was my first thought too! Alternate approach: class X { static '!@#?*'() {} } const func = X['!@#?*'];
10/9
2019
@MylesBorins @joshmallox @v8js It’s still behind a flag in V8.🚀 Top-level await makes it possible to use the `await` keyword outside of async functions in JavaScript modules!… https://t.co/eDGpLeLVwS
Retweeted by Mathias Bynens @rem sort -u? @jaffathecake @heydonworks A brother broths
10/8
2019
@chicoxyzzy @v8js @tomayac Great catch! Would you mind filing this as a https://t.co/cLBueSQBHa bug? @jennschiffer case kMonth: return month() + 1; https://t.co/15f0am6tubLet's [not] keep you in the dark anymore... Introducing dark mode for https://t.co/zhCSLTxecl! By default we're go… https://t.co/tiLB3vIZtH
Retweeted by Mathias Bynens
10/7
2019
@tomayac @RReverser @v8js So glad you two are my colleagues ❤️ I learn so much from y’all 🤯 @kuvos @v8js No, that’s still an open issue: https://t.co/8Um0KBOSkN🔥 Regular expressions just got faster *and* more memory-efficient in V8: https://t.co/C1xpyVlcsQ https://t.co/tWNK7YQr3t
Retweeted by Mathias Bynens @RReverser Yikes. Good find + fix!
10/4
2019
@bradleymeck @MehtaWrldPeace @addyosmani Btw, had you seen https://t.co/9sNKojmAUy? @LamdaCalrissian #SmooshGate continues to be a good example, IMHO: https://t.co/D9hPjLyAzr @bradleymeck @MehtaWrldPeace @addyosmani Neat! Is there any way to make this transform only apply above a certain s… https://t.co/HRkmh6sTdR
10/2
2019
@bradleymeck sort -u @tomayac Congrats! @bhathos cc @littledan
10/1
2019
@kosamari @slightlylate Happeli'hap, Alex!
9/30
2019
@cramforce Glad you’re all ok 😧
9/29
2019
🔥 What’s new in V8 v7.8? Streaming compilation on preload, WebAssembly C API, faster object destructuring and RegEx… https://t.co/2gHcuK2ybr
Retweeted by Mathias Bynens
9/27
2019
@jasnell @billticehurst Glad to hear! Mine were recovered the next morning already, with better than 20/20 vision.… https://t.co/os3TW3zvNb
9/24
2019
@slightlylate @ThomasTheDane @reillyeon @eleven_ty Ultimately, you can produce good HTML/CSS/JS with any SSG if you… https://t.co/Js8ArWlxjF @bhathos @ChromeDevTools Thanks! @nimODota is already on the case :) +@hashseed
9/23
2019
@bhathos @ChromeDevTools Yikes! Would you mind filing a bug at https://t.co/mbjdPRgxl9? I’ll take a look after the weekend. @bhathos @ChromeDevTools Woah, that sounds bad. Let us know if it happens again! @bhathos If you ever come across any weirdness in the @ChromeDevTools console, let me know 👍 @rodneyrehm Oooh happy birthday @ryzokuken! @kosamari @aerotwist @TimvdLippe @hashseed @kaycebasques @ChromeDevTools @howdy39 omg that looks amazing 😍 thank you Mariko!
9/22
2019
@tomayac @cjamcl Orthogonal to any settings/checkboxes, we need to figure what happens when you enter 'use strict'… https://t.co/YIhBrsqpbF
9/21
2019
@paperscssrsglue Are you hitting any particular problem? startsWith works with Unicode. Just don’t do anything weir… https://t.co/9Ylrt8ok7U @marksammiller I would love to go even further and go module goal by default. Unfortunately, I’m afraid strict/modu… https://t.co/VKkGTT804J @sephr Rationale? @smooshMap @hooraybuffer Do you think it would be useful to have "sensitive" and "hide implementation" do anything… https://t.co/LO0dpyVuBOYou see a DevTools console (or any JS REPL, really). You enter: 'use strict'; Would you prefer subsequent inputs… https://t.co/39tOEMrYozAccidentally invented a new feature. Should the JS console/REPL in DevTools stay in strict mode (for later evaluati… https://t.co/dJXK7vuIZP
Retweeted by Mathias Bynens @DotProto *catches up on thread* seems like my job here is done! Thanks everyone :)
9/20
2019
@shwetank @DotProto @brucel @DotProto y’all should chat! ❤️ @DotProto @brucel Oooh @shwetank will you be there too? @jvhellemond 😂 @billticehurst @jasnell Hope y’all are doing okay 👍 @seldo @H4N4W4LT Congratulations!!! @kuvos @bmeurer cc @tverwaes
9/19
2019
@kuvos @hashseed @RReverser Does '0///x\\\0' count? (valid string literal) @jasnell Seriously? Me too, tomorrow. LASIK buddies!Perl did it first! https://t.co/AfzSzFUuAX
9/18
2019
@mikeal @BrendanEich FWIW, that list is currently incomplete, but your tweet still stands. https://t.co/8BRInk63u9 @mrgnrdrck @v8js That's what I'm saying. We can change behavior of existing code that currently throws and make it… https://t.co/OOuW0f8U3z @mrgnrdrck @v8js What is breaking backwards compatibility here? `??` previously threw a SyntaxError exception.🔥 Nullish coalescing syntax is coming to JavaScript! This feature enables safer default expressions.… https://t.co/BeJTl1zw3T
Retweeted by Mathias Bynens @newswim @austincburns `finally` runs after a single promise has settled. `allSettled` gives you a signal once all… https://t.co/PAMpbvFvCA
9/17
2019
@rauschma What makes you use this and not, say, named capture groups?
9/16
2019
@mikesherov 404
9/13
2019
@aerotwist @hashseed Probably meant 0x10. @benschwarz Is the Lighthouse score even a positive number? @RReverser Pretty decent non-ASCII to ASCII ratio too 🔥Same great V8 t̵a̵s̵t̵e performance 🔥, now with 20% less s̵u̵g̵a̵r memory overhead ♻️. https://t.co/nDm26f8Nie https://t.co/8bngBnhL0x
Retweeted by Mathias Bynens
9/12
2019
@tomayac It’s another example of an optimization I wouldn’t expect anyone to apply by hand. It’s one of those rare… https://t.co/dWIVJXDAGtWebAssembly runtimes (e.g. browsers) are slightly diverging in which features they support. So here’s 🎉wasm-featur… https://t.co/UUyfWUCDLK
Retweeted by Mathias BynensListen to Axel, y’all. Don’t focus on manual micro-optimizations, instead write readable code and let JS engines do… https://t.co/8ZClUMlbn9
9/11
2019
New blog post about building a (good) metronome and keeping time in JavaScript!! ✨ It comes with a demo comparing… https://t.co/g9EniJ68VH
Retweeted by Mathias Bynens @left_pad glad that’s settled
9/10
2019

0