Blog
-
In September, machine learning engineers at Mozilla filed a bug report indicating that Firefox was consuming excessive memory and CPU resources while running Microsoft’s ONNX Runtime (a machine learning library) compiled to WebAssembly.
-
Hello everyone!
-
Hello Everyone,
-
Hello and welcome to our newest newsletter. As the northern hemisphere warms and the southern hemisphere cools, we write to talk about what’s happened in the world of SpiderMonkey in the Firefox 126-127 timeline.
-
Hello and Welcome to the SpiderMonkey Newsletter for Firefox 124-125. It’s Matthew Gaudet back again. This newsletter is a way in which we can share what we have been working on as a team, and highlight some interesting changes when they happen.
-
Hello everyone!
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 118 to 121 Nightly release cycles.
-
I recently presented on SpiderMonkey and Byte-Sized Architectures at a JSConf.jp/TC39 collaborative meeting the evening before the TC39 plenary in Tokyo. The first part of the presentation is a high-level view of the overall architecture of SpiderMonkey, and gives an idea of how a modern JavaScript engine is put together. In the second part, I talk about bytesize architectures a way for teams to build a shared understanding of complicated systems.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 116 and 117 Nightly release cycles.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 114 and 115 Nightly release cycles.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 112 and 113 Nightly release cycles.
-
We recently shipped import maps in Firefox 108. you might be wondering what this new feature is and what problems it solves. In the previous post we introduced what import maps are and how they work, in this article we are going to explore the feature in depth.
-
We recently shipped import maps in Firefox 108 and this article is the first in a series that describes what they are and the problems they can solve. In this first article, we will go through the background and basics of import maps and follow up with a second article explaining more details of import maps.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 110 and 111 Nightly release cycles.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 108 and 109 Nightly release cycles.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 106 and 107 Nightly release cycles.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 104 and 105 Nightly release cycles.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 102 and 103 Nightly release cycles.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 100 and 101 Nightly release cycles.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 98 and 99 Nightly release cycles.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 96 and 97 Nightly release cycles.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 94 and 95 Nightly release cycles.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 92 and 93 Nightly release cycles.
-
In this meeting, the Realms proposal finally moved forward to stage 3. The form it will take is as what is now called “isolated realms”. This form does not allow direct object access across the realm boundary (which you can do with iframes). To address this, a new proposal is being put forward titled
getOriginals
. -
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 90 and 91 Nightly release cycles.
-
Due to the recent changes on freenode, TC39 has moved to Matrix as its communication platform of choice. Read more here.
-
When programming with Private Fields and methods, it can sometimes be desirable to check if an object has a given private field. While the semantics of private fields allow doing that check by using
try...catch
, the Ergonomic Brand checks proposal provides a simpler syntax, allowing one to simply write#field in o
. -
In this TC39 meeting, the updates to JavaScript Classes around private state have moved to stage 4. Other proposals of note this meeting were proposals related to ArrayBuffers, notably resizable ArrayBuffers and a new proposal, introducing read-only ArrayBuffers and fixed views into ArrayBuffers. Read-only ArrayBuffers are not a new ArrayBuffer, but rather a way to freeze existing ArrayBuffers so that they are not modified accidentally. Fixed views into ArrayBuffers would have the goal of not exposing more than the intended view of an ArrayBuffer to a third party.
-
This post is cross-posted from Matthew Gaudet’s blog
-
Firefox will ship Private Fields and Methods in Firefox 90. This new language syntax allows programmers to have strict access control over their class internals. A private field can only be accessed by code inside the class declaration.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 88 and 89 Nightly release cycles.
-
Firefox will ship Top Level Await by default starting in Firefox 89. This new feature introduces a capability to modules allowing programmers to do asynchronous work, such as fetching data, directly at the top level of any module.
-
This meeting marks the first of a series of shorter meetings, which will hopefully help us stay focused and more productive. TC39 has updated its process to have 8 meetings a year, instead of the usual 6, with 4 regular length meetings and 4 short two-day meetings. This being the first of that cycle. You may notice that these updates are a little shorter than usual.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 86 and 87 Nightly release cycles.
-
This meeting, the focus was in brand checking. We had a few proposals looking at the question of “how do we know what this really is”. In JavaScript, instanceof is spoofable. A non spoofable check is refered to as a brand. A common example is
Array.isArray
. We discussed brand checks in a few forms, including class brand checks, using private fields as a way of determining a brand, Type.isType as a generic brand check, and brand checks on template strings. -
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 84 and 85 Nightly release cycles.
-
A few weeks ago in November, we had our last TC39 meeting for the year. At this meeting, Shu-yu Guo preesented a vision for concurrent JavaScript – a goal that Google is working towards in a number of proposals. One of the presentations supported this goal, namely JS Module blocks. This would allow you to create a module block in the following way:
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 82 and 83 Nightly release cycles.
-
In the September 2020 TC39 meeting, a few smaller proposals moved into the mature stages. Display names (implemented in 78 by André Bargul) moved to stage 4 in this meeting. Import Assertions moved to stage 3, as did
.item
. -
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 80 and 81 Nightly release cycles. If you like these newsletters, you may also enjoy Yulia’s Compiler Compiler live stream.
-
At this meeting a number of proposals moved from stage 3 (candidate proposal) to stage 4 (finished). WeakRefs was among the proposals to move to stage 4, introducing a capability to the web that was not present before. From an ergonomics point of view, logical assignment and Promise.any both advanced to stage 4. Two internationalization apis also advanced, DateTimeFormat and ListFormat. The only stage 2 proposal to move forward to stage 3 was an internationalization proposal, Intl.Segmenter. Adam Vandolder presented on the
IteratorHelpers
proposal, with the aim of moving it to stage 3 in September’s meeting. -
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 78 and 79 Nightly release cycles.
-
At this meeting we covered a lot of ground. It was the first four day meeting, with each meeting at 5 hours. This meeting did not see any stage 2 proposals advance to stage 3, so in terms of implementation work, we do not have new tasks. However, we do have significant review work. One large proposal, Temporal, will be seeking stage 3 at an upcoming meeting. Decorators also needs to be discussed again.
-
SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 76 and 77 Nightly cycles.
-
At this meeting, the draft for 2020 was approved. We are now starting work on the 2021 draft. There were a number of upates to proposals at this meeting, and a few proposals were revived – including decorators and pattern matching.
-
JavaScript
-
This was an unusual meeting. There were far more stage 1 seeking proposals, and a number of process proposals. As a result, there is not much work for us to do coming out of this meeting, beyond a few reviews.
-
Happy new year from the SpiderMonkey team!
-
Need Review:
-
The SpiderMonkey team is experimenting with a newsletter at the end of each release cycle for status updates on ongoing projects, new features and contributor work. The format may change over time as we figure out what works best. This is our first newsletter and we’d love to hear your feedback!
-
First blog post.
-
Not much significant change that we need to be worried about but lot of new proposals moved to stage 1. We have some reviewing work to do, as there is so much new stuff.
-
Stage 4, ready to ship: Promise.allSettled bug Two syntax changes have moved to stage 3, nullish coalescence and optional chaining A lot of discussion around built in modules. No forward movement. Issues with Weakref – it cannot be tested in the current test262 setup. Discussion around how to address this.
-
- Quite a bit of work on string methods and promise methods.
- temporal is now blocked on standard modules, adding pressure to do that
- dynamic import will move to stage 4 if all goes well with realms?
- Decorators minimal proposal with built in decorators was presented
- Decorators were also presented as a solution for numeric separators / literals