astexplorer
ChakraCore
Our great sponsors
astexplorer | ChakraCore | |
---|---|---|
43 | 15 | |
5,942 | 9,031 | |
- | 0.2% | |
6.0 | 5.3 | |
3 days ago | 5 days ago | |
JavaScript | JavaScript | |
MIT License | MIT License |
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.
astexplorer
-
Understanding Code Structure: A Beginner's Guide to Tree-sitter
You can play with your code here, and visualise ASTs for the same.
-
What is an Abstract Syntax Tree in Programming?
Website
-
How to create your own Eslint rule with tests, boosting the DX, and code-review
To understand this syntax, I recommend exploring AST Explorer. You will have a better view of how the AST of JavaScript works and how to correlate it with the Eslint syntaxy:
-
Programming from Top to Bottom - Parsing
You can never mistake type_declaration with an identifier, otherwise the program will not work. Aside from that constraint, you are free to name them whatever you like, there is no one standard, and each parser has it own naming conventions, unless you are planning to use something like LLVM. If you are interested, you can see examples of naming in different language parsers in the AST Explorer.
-
ESLint: under the hood
The rule that I want to write will be called not-allows-underscore: the idea is to abolish the use of underscores when declaring variables or functions. It's a real dummy rule, but it should be enough to see in action the concepts that we have discussed earlier. The first thing that I would do is to go to AST Explorer, write down a code that declares variables and functions (both standard and arrows one) and take a look at what type of node is the one that encodes the identifier. Doing that, I found out that the node type of my interest is Identifier, what a surprise! 🤣. In particular, the structure of the node holds the string used as identifier in the name property.
-
😱 ESlint over Conventions - You have Not unlocked the power of ESlint 😱
All the information about the API, AST node names, AST Explorer, etc. you can read in the official documentation. I’m just going to show examples of how to automate the check-up of our created conventions.
- AST Exploret
-
200 Web-Based, Must-Try Web Design and Development Tools
AST Viewer
-
Building a JSON Parser from scratch with JS 🤯
If you want to see how the AST of popular languages looks, I recommend the AST Explorer. It supports various languages, and you can view the complete AST and navigate through the nodes. If you want to go further, you can try to copy some logic from an existing parser and implement it in your own, such as calculating an expression according to precedence order, for example: 1 + 2 * 3 (which is 7, not 9).
-
Creating my own typescript compiler
https://astexplorer.net/ is a good resource/playground for understanding ASTs and transpilers.
ChakraCore
-
This year in Servo: over 1000 pull requests and beyond
I thought it would be a fun weird project to make Servo work with MS' abandoned JavaScript engine:
https://github.com/chakra-core/ChakraCore
Of course it is written in C++ and you'd probably want a pure Rust browser. But it is sad seeing that fairly complete open source JIT JavaScript engine sit and rot.
-
Microsoft defends Edge's predatory practices with cringe reply on X
The JS engine is open source: https://github.com/chakra-core/ChakraCore
-
A list of JavaScript engines, runtimes, interpreters
ChakraCore
-
Roll your own JavaScript runtime, pt. 3
Not to forget the engine Charka: https://github.com/chakra-core/ChakraCore
The only bit of the old Edge that had its source emancipated. It was/is? quite performant.
-
Have you deployed Microsoft Todo to end users? How did you deploy it?
As a Linux user, I very much think Microsoft should have continued Trident and Chakra. Apple also should have continued releasing Safari for Windows. Our web QA setup was entirely built around Macs back then, but it was great to be able to test sites with Safari on Windows, and to have another responsive browser on Win32.
-
The Javascript Engine
Edge was initially using Chakra but has been rebuilt using Chromium and the V8 engine.
-
Crystal's Interpreter (2021)
https://github.com/chakra-core/ChakraCore/wiki/Architecture-...
I've found the source code to be quite readable too - albeit from a bug-finding perspective, not a strictly pedagogical one.
-
Exploring React Native’s new architecture
Furthermore, the new architecture decouples the JavaScript interface from the engine, enabling the use of other JavaScript engines such as Hermes, V8, or Chakra.
-
How web browsers work - executing the Javascript (part 5, with illustrations)💻ðŸŒ
ChakraCore
-
Enumerating and analyzing 40 non-V8 JavaScript implementations
I am astonished at the omission of ChakraCore, open sourced by Microsoft but sadly abandoned by them after they switched Edge to Chromium: https://github.com/chakra-core/ChakraCore. But it looks like it’s still chugging along as a community effort rather than being completely abandoned.
What are some alternatives?
deno_swc - The SWC compiler for Deno.
Jint - Javascript Interpreter for .NET
gogocode - GoGoCode is a transformer for JavaScript/Typescript/HTML based on AST but providing a more intuitive API.
hermes - A JavaScript engine optimized for running React Native.
vscode-language-tree - VSCode tree format support
V8 - The official mirror of the V8 Git repository
Acorn - A small, fast, JavaScript-based JavaScript parser
v8.dev - The source code of v8.dev, the official website of the V8 project.
proposal-type-annotations - ECMAScript proposal for type syntax that is erased - Stage 1
AutoHotkey-jk - AutoHotkey, running JavaScript.
tree.d - Tree - simple fast compact user-readable binary-safe extensible structural format
ssgl-doom-launcher - Super Shotgun Launcher - Modern Doom Frontend/Mod Launcher for every Desktop Operating System