Articles tagged “JavaScript”
-
The Baseline Interpreter: a faster JS interpreter in Firefox 70
Modern web applications load and execute a lot more JavaScript code than they did just a few years ago. While JIT (just-in-time) compilers have been very successful in making JavaScript performant, we needed a better solution. We’ve added a new, generated JavaScript bytecode interpreter to the JavaScript engine in Firefox 70. Instead of writing a new interpreter from scratch, we found a way to do this by sharing most code with our existing Baseline JIT. Meet the new Baseline Interpreter.
-
A Homepage for the JavaScript Specification
Ecma TC39 has shipped a website for following updates to the JavaScript specification. It's the first part of a two-part project to help people find the information they need in order to understand the specification and our process. The current website is a simple MVP that provides links to our most significant documents, as well as a list of proposals that are near completion. We will experiment with other features as the need arises.
-
Refactoring MDN macros with async, await, and Object.freeze()
In January, the MDN engineering team landed a major refactoring of the KumaScript codebase, the underlying Node server that runs macros in Kuma, which is the wiki that powers MDN. This work included some modern techniques of interest to JavaScript programmers.
-
JavaScript to Rust and Back Again: A wasm-bindgen Tale
Recently we’ve seen how WebAssembly is incredibly fast to compile, speeding up JS libraries, and generating even smaller binaries. We’ve even got a high-level plan for better interoperability between the Rust and JavaScript communities, as well as other web programming languages. The goal of wasm-bindgen is to provide a bridge between the types of JavaScript and Rust. It allows JS to call a Rust API with a string, or a Rust function to catch a JS exception. wasm-bindgen erases the impedance mismatch between WebAssembly and JavaScript, ensuring that JavaScript can invoke WebAssembly functions efficiently and without boilerplate, and that WebAssembly can do the same with JavaScript functions.
-
Introducing sphinx-js, a better way to document large JavaScript projects
Go beyond the flat, alphabetical lists of JSDoc, and document your JavaScript libraries in a way that’s easier to learn. As a bonus, keep your old JSDoc syntax.
-
Fathom: a framework for understanding web pages
Meet Fathom, a mini-language for writing semantic extractors, that you can use client- or server-side to extract meaning from the content of a web page. Scoop up all those ideas you threw away because they required too much understanding by the browser. We can do that now.
-
Internationalize your keyboard controls
Recently I came across two lovely new graphical demos, and in both cases, the controls would not work on my French AZERTY keyboard. There was the wonderful WebGL 2 technological demo After The Flood, and the very cute Alpaca Peck. Shaw was nice enough to fix the latter when I told him about the issue. […]
-
A cartoon intro to WebAssembly
WebAssembly is a way of taking code written in programming languages other than JavaScript and running that code in the browser. So when people say that WebAssembly is fast, what they are comparing it to is JavaScript. In this series, I want to explain to you why WebAssembly is fast.
-
Using Neutrino to jump-start modern JavaScript development
Neutrino is a tool which brings together the best parts of the modern JavaScript toolchain with the ease of zero upfront configuration. Built to let you hit the ground running, Neutrino combines the power of Webpack with the simplicity of presets to build web and Node.js projects.
-
Animating like you just don’t care with Element.animate
In Firefox 48 we’re shipping the <a href="https://developer.mozilla.org/docs/Web/API/Element/animate" target="_blank"><b>Element.animate()</b></a> API — a new way to programmatically animate DOM elements using JavaScript. Let’s pause for a second — “big deal”, you might say, or “what’s all the fuss about?” After all, there are already plenty of animation libraries to choose from. In this post I want […]