- Recent
- Popular
- Tags (0)
- Subscribers (4)
- a quick note on JavaScript engine componentsMarch 8
-
There have been a bunch of posts about the JägerMonkey (JM) post that we made the other day, some of which get things subtly wrong about the pieces of technology that are being used as part of Mozilla’s JM work. So here’s the super-quick overview of what we’re using, what the various parts do and where they came from:
1. SpiderMonkey.This is Mozilla’s core JavaScript Interpreter. This engine takes raw JavaScript and turns it into an intermediate bytecode. That bytecode is then interpreted. SpiderMonkey was responsible for all JavaScript handling in Firefox 3 and earlier. We continue to make improvements to this engine, as it’s still the basis for a lot of work that we did in Firefox 3.5, 3.6 and later releases as well.
2. Tracing. Tracing was added before Firefox 3.5 and was responsible for much of the big jump that we made in performance. (Although some of that was because we also improved the underlying SpiderMonkey engine as well.)
This is what we do to trace:
- Monitor interpreted JavaScript code during execution looking for code paths that are used more than once.
- When we find a piece of code that’s used more than once, optimize that code.
- Take that optimized representation and assemble it to machine code and execute it.
What we’ve found since Firefox 3.5 is that when we’re in full tracin
- Mozilla developer preview (Gecko 1.9.3a2) now availableMarch 5
-
We’ve posted a new release of our Mozilla developer preview series as a way to test new features that we’re putting into the Mozilla platform. These features may or may not make it into a future Firefox release, either for desktops or for mobile phones. But that’s why we do these releases – to get testing and feedback early so we know how to treat them.
Note that this release does not contain two things that have gotten press recently: D2D or the new JavaScript VM work we’ve been doing.
Since this is a weblog focused on web developers, I think that it’s important to talk about what’s new for all of you. So we’ll jump right into that:
Out of Process Plugins
We did an a1 release about three weeks ago in order to get testing on some of the new web developer features (which we’ll list here again.) The biggest change between that release and this one is the inclusion of out of process plugins for Windows and Linux. (Mac is a little bit more work and we’re working on it as fast as our little fingers will type.)
There are a lot of plugins out there on the web, and they exist to varying degrees of quality. So we’r
- improving JavaScript performance with JägerMonkeyMarch 1
-
In August 2008, Mozilla introduced TraceMonkey. The new engine, which we shipped in Firefox 3.5, heralded a new era of performance to build the next generation of web browsers and web applications. Just after the introduction of our new engine Google introduced V8 with Chrome. Apple also introduced their own engine to use in Safari, and even Opera has a new engine that they’ve introduced with their latest browser beta.
As a direct result of these new engines we’ve started to see new types of applications start to emerge. People experimenting with bringing Processing to the web, people experimenting with real-time audio manipulation, games and many other things. (For some good examples have a look at our list of Canvas demos.)
We’ve learned two things at Mozilla about how our JavaScript engine interacts with these new applications:
- That the approach that we’ve taken with tracing tends to interact poorly with certain styles of code. (That NES game example above, for example, tends to perform very badly in our engine – it’s essentially a giant switch statement.)
- That when we’re able to “stay on trace” (more on this later) Tr
- Firefox: 46 features you might not know aboutFebruary 24
-
Ever since the release of Firefox 3 we’ve been doing a lot of work to add new capabilities for web developers. We thought it would be worth it to make a post that actually listed all of the features that we knew about and people might not know about. This contains everything that we’ve done over the last three releases or so, but calls out stuff that’s new in 3.6.
Enjoy!
CSS
@font-face
Display online fonts (supports WOFF and TTF fonts) pointer-events Click through elements :-moz-locale-dir(ltr/rtl)
Know if you are in a ltr or rtl context :indeterminate pseudo-class
For “indeterminate” radio and checkboxes Media Queries
Select CSS depending on the media (size, aspect-ratio, colors, orientation, resolution). has new classes to detect if you’re on a touch device. Structural pseudo-classes
:nth-child, :nth-last-child, :nth-of-type, :nth-last-of-type, … -m - Mozilla developer preview (Gecko 1.9.3a1) available for downloadFebruary 10
-
Editor’s note: Today, Mozilla released a preview of the Gecko 1.9.3 platform for developers and testers. Check out the Mozilla Developer News announcement reposted below.
A Mozilla Developer Preview of improvements in the Gecko layout engine is now available for download. This is a pre-release version of the Gecko 1.9.3 platform, which forms the core of rich Internet applications such as Firefox. Please note that this release is intended for developers and testers only. As always, we appreciate any feedback you may have and encourage users to help us by filing bugs.
This developer preview introduces several new features, including:
- Support for CSS Transitions. This support is not quite complete: support for animation of transforms and gradients has not yet been implemented.
- Support for SMIL Animation in SVG. Support for animating some SVG attributes is still under development and the animateMotion element isn’t supported yet.
- Support for WebGL, which is disabled by default but can be enabled by changing a preference. See this blog post and
