v8.dev
WebKit

v8.dev | WebKit | |
---|---|---|
77 | 167 | |
965 | 8,310 | |
0.5% | 1.5% | |
6.7 | 10.0 | |
7 days ago | 7 days ago | |
JavaScript | JavaScript | |
Apache License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
v8.dev
-
🚀⚙️ JavaScript Visualized: the JavaScript Engine
V8 Docs || V8 Github || Chrome University 2018: Life Of A Script If you like the post then follow me for more and subscribe on youtube Dev Studio
-
TrailBase: Fast & Open FireBase alternative
The benchmark sets up a custom HTTP endpoint /fibonacci?n= using the same slow recursive Fibonacci implementation for both, PocketBase and TrailBase. This is meant as a proxy for a computationally heavy workload to primarily benchmark the performance of the underlying JavaScript engines: goja for PocketBase and V8 for TrailBase. In other words, the impact of any overhead within PocketBase or TrailBase is diminished by the time it takes to compute fibonacci(N) for sufficiently large N.
-
My Contribution to Deno 2.0
Deno (/ˈdiːnoʊ/, pronounced dee-no) is a JavaScript, TypeScript, and WebAssembly runtime with secure defaults and a great developer experience. It's built on V8 Rust, and Tokio.
-
"Node.js: Understanding the Difference Between Current and LTS Versions"
Reference from Wikipedia (https://en.wikipedia.org/wiki/Node.js#:~:text=since%20February%202024-,Node.,and%20later%20sponsored%20by%20Joyent.), Node documentation (https://nodejs.org/en/download/package-manager), V8 Dev(https://v8.dev/) and lastly my favourite AI(ChatGPT(https://chatgpt.com/))
-
When to Use Bun Instead of Node.js
In most cases, Bun is faster than Node.js. Zig offers great control over code execution, which allows maintainers to optimize for performance at a low level. Bun is also based on the fast and efficient JavaScriptCore engine. In contrast, Node.js is written in less efficient JavaScript and relies on the slower V8 JavaScript engine.
-
Show HN: Invertornot.com – API to enhance your images in dark-mode
Semi-related - I saw this trick on https://v8.dev a while back, but `filter: hue-rotate(180deg) invert();` can be a neat CSS trick to 'dark mode' some kinds of graphics. The `hue-rotate` help a bit to keep 'blues blue' etc.
It's far from perfect, but it's a neat trick to be aware of.
-
Top 8 Recent V8 Updates
V8 is a high-performance JavaScript engine developed by Google. Its purpose is to convert JavaScript code into machine code for execution by the underlying hardware. Primarily developed by the V8 team at Google, the engine focuses on speed and efficiency. In particular, it relies on just-in-time compilation and uses inline caching for high performance.
-
A list of JavaScript engines, runtimes, interpreters
V8
-
C++ Specification vs Implementation
Exactly the same as JavaScript engines. Be it Mozilla's SpiderMoneky, Google's V8, Apple's Webkit, or Microsoft's Chakra. No matter how specific we draft a specification there is always room for interpretation. Every team has a different take on what part of a spec is describing. Oftentimes it's just a matter of varying pros and cons of different approaches on the road to matching spec; various teams just kind of have to pick a direction and run with it. Other times a spec is not only too vague, but clearly short-sighted to boot.
-
Abstract Syntax Trees and Practical Applications in JavaScript
Remember that we earlier established that every source gets parsed into an AST at some point before it gets compiled or interpreted. For example, platforms like Nodejs and chromium-based browsers use Gooogle's V8 engine behind the scenes to run JavaScript and of course, some AST parsing is always involved before the interpreter kicks in. I looked V8's source and I discovered it uses its own internal parser to achieve this.
WebKit
- WebKit Quirks
-
I Switched to Firefox and Never Looked Back
Webkit does this.
Examples:
- https://github.com/WebKit/WebKit/blob/main/Source/WebCore/pa...
- https://github.com/WebKit/WebKit/blob/main/Source/WebCore/pl...
-
TCC and the macOS Platform Sandbox Policy
The code snippets are purely declarative because they are reconstructed from the simple bytecode that the macOS sandbox library generates after evaluating the Scheme code. At that point any abstractions present in the source code are long gone and only predicates and actions remain.
If you look at typical SBPL source code you'll see it tends to contain a mix of straightforward, declarative `(allow …)` policies and custom functions/macros used to simplify repeated patterns. See https://github.com/WebKit/WebKit/blob/11b5279aec6113c661dac3..., for example.
- The Unraveling of Space-Time
- No same site = None cookies for iOS18
- Fixing a Bug in Google Chrome as a First-Time Contributor
- WebKit Enables WasmGC by Default
-
How far should a programming language aware diff go?
Even though it makes no sense for (2, 3) to be a result in those cases, that was just how I ended up reading it, and I was exceptionally confused about how the printed output could possibly happen.
A super nice example of how subtle differences can really change things though.
As a side note, ASI for JS is actually super easy to implement and the rules are actually really simple (leaving aside whether the feature itself is good :D ) as it's just "these specific statements can have a new line instead of a semicolon" - so in the parser instead of consume(semicolon) you can just do "semicolon or newline" (You can check the logic in JSC in https://github.com/WebKit/WebKit/blob/main/Source/JavaScript... - just look for autoSemicolon() or autoSemi() I can't recall off the top of my head)
-
The Programmer's Brain
It's not just a problem when you are an amateur. This is sth that every project should provide.
But there are also many projects which do. Sometimes you need to search a bit for it. Actually I would expect that most big projects have such documentation somewhere in some form.
- https://github.com/WebKit/WebKit/blob/main/Introduction.md
- https://www.chromium.org/developers/how-tos/getting-around-t...
- https://github.com/pytorch/pytorch/blob/main/CONTRIBUTING.md...
- https://returnn.readthedocs.io/en/latest/getting_started/tec...
And then for some popular projects you will also find some independent overviews:
- https://fabiensanglard.net/quake3/ (and many more on https://fabiensanglard.net/)
- https://tldp.org/LDP/khg/HyperNews/get/tour/tour.html
- https://realpython.com/cpython-source-code-guide/
One problem is of course that those documents can be outdated and don't go into much details. But they still will give you important insights and should be a good starting point.
What are some alternatives?
babel-sublime - Syntax definitions for ES6 JavaScript with React JSX extensions.
chromium - The official GitHub mirror of the Chromium source
hermes - A JavaScript engine optimized for running React Native.
gecko-dev - Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
bun - Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
WHATWG HTML Standard - HTML Standard
ChakraCore - ChakraCore is an open source Javascript engine with a C API.
firefox-ios - Firefox for iOS
libuv - Cross-platform asynchronous I/O
otter-browser - Otter Browser aims to recreate the best aspects of the classic Opera (12.x) UI using Qt5
0.30000000000000004 - Floating Point Math Examples
xdg-desktop-portal - Desktop integration portal
