Jenia "JeB" Barabanov
@jebbacca
Followers
333
Following
481
Media
77
Statuses
650
Performance Tech Lead @Wix | @[email protected] | Author of @angular-builders and jest-marbles | drummer | https://t.co/p4NPNGnnKh | https://t.co/LxMZh5gq6T
Joined February 2018
If you're attending @WebdevconNL, be sure not to miss @jebbacca's great talks on Mar 15: 1. "Unleashing Web #Performance: Mastering JavaScript Optimization and Real-World Responsiveness". 2. "Browser Fundamentals: From Macro To Micro". πͺ Good luck @jebbacca!
2
2
9
Interestingly, as per spec, `prompt` and `confirm` demand the user agent to pause the execution, while for `alert` it is optional. I assume it's mostly historical, but does anyone have a good explanation for this? https://t.co/RNCCBGqg2L
2
0
0
Never, you hear me, never use `window.prompt` if you want to have good INP (or good UX for that matter). It blocks the main thread. Same goes for `alert` and `confirm`. I wonder what the valid use cases are for using these, does anyone have an idea? #webperf
3
1
2
Landed some big improvements for INP last month, sites built on @Wix are now in much better shape for the upcoming replacement of FID. Starting to get the hang of this new metric, more to come.. π 71.8% (β 13.7%) had good INP globally πΊπΈ 90.8% (β 6.3%) had good INP in the US
6
6
41
Hi #Angular folks! Happy to share that we, at @angular-builders, have just released a new ESBuild builder that allows extending ESBuild config with plugins. Credit goes to @overthesanity, who did most of the work, and to everyone who contributed to the effort. Link π.
2
6
33
Session announcement: Jeb Barabanov (@jebbacca) will give a lightning talk titled "Unleashing Web Performance: Mastering JavaScript Optimization and Real-World Responsiveness". Don't miss this insightful session at Webdevcon! More details on https://t.co/EVKxfT6EP5.
0
1
2
Session announcement: Jeb Barabanov (@jebbacca) will present a session titled "Browser Fundamentals: From Macro to Micro" at Webdevcon. Don't miss this insightful deep dive into browser internals. Get tickets and view the full schedule on our site at https://t.co/EVKxfT6EP5.
0
1
0
Main functional differences (Object): β Only strings and symbols as key. β No order guarantee. β Has to use 'Object.keys' to determine size. β Non-iterable. β Inherits Object.prototype (junk properties). β Exposed to object injection attacks. β
Serializable to JSON.
1
0
0
Main functional differences (Map): β
Any data type as key. β
Maintains insertion order. β
Dedicated 'size' property. β
Iterable. β
No prototype chain (clean). β
Safer to use with user-provided keys. β No built-in serialization.
1
0
0
Whenever you create a new Object dictionary in your JS codebase, think twice; maybe Map is a better choice π.
1
0
2
3. Execution: Running the bytecode. The important thing here is that all 3 phases happen on-demand, meaning only when a piece of JS is "invoked", does it go through these phases. (7/7)
0
0
0
This optimized code can then be executed directly on the processor without the need for any abstraction layer. (6/7)
1
0
0
2. Compilation: Using an interpreter to turn the AST into bytecode, and further optimizing parts of this bytecode, such as frequently used functions or variables, into machine code with the help of a JIT compiler. (5/7)
1
0
0
These are the phases that JavaScript goes through in the Chrome's V8 engine: 1. Parsing: Breaking the code into smaller pieces and converting it into an Abstract Syntax Tree (AST). (4/7)
1
0
0
Therefore, if you arrange your code properly, you can have a large bundle without blocking the main thread at all. (3/7)
1
0
0
On the contrary to popular belief, JavaScript is not instantly loaded by a browser as soon as the bundle is downloaded. Instead, it goes through several phases every time it needs to be evaluated, i.e., when requested. (2/7)
1
0
0
Here's a sneak peek into a talk I'm going to deliver at @liberty_js on October 12th in Philadelphia. I am gonna talk about web app optimizations, with a particular focus on JavaScript optimizations. Hope to see you there! And now about what happens here π (1/7) #webperf
2
6
10
Half the feed is Typescript drama. Whatβs going on? Who can catch me up on this π
?
4
0
2