Firefox 35 for developers

Firefox 35 was released on January 13th, 2015. This article lists key changes that are useful not only for web developers, but also Firefox and Gecko developers as well as add-on developers.
 

Changes for Web developers

Developer Tools

Highlights:

All devtools bugs fixed between Firefox 34 and Firefox 35.

CSS

HTML

  • The obsolete and non-conforming bottommargin, leftmargin, rightmargin and topmargin attributes of the <body> element have been activated in non-quirks mode (bug 95530).

JavaScript

  • The "temporal dead zone" for let declarations has been implemented. In conformance with ES2015 let semantics, the following situations
    now throw errors. See also this newsgroup announcement and bug 1001090.
    • Redeclaring existing variables or arguments using let within the same scope in function bodies is now a syntax error.
    • Using a variable declared using let in function bodies before the declaration is reached and evaluated is now a runtime error.
  • ES2015 Symbols (only available in the Nightly channel) have been updated to conform with recent specification changes:
    • String(Symbol("1")) now no longer throws a TypeError; instead a string ("Symbol(1)") gets returned (bug 1058396).
  • The various TypedArray constructors now have as their [[Prototype]] a single function, denoted %TypedArray%  in ES2015 (but otherwise not directly exposed).  Each typed array prototype now inherits from %TypedArray%.prototype.  (%TypedArray% and %TypedArray%.prototype inherit from Function.prototype and Object.prototype, respectively, so that typed array constructors and instances still have the properties found on those objects.)  Typed array function properties now reside on %TypedArray%.prototype and work on any typed array.  See TypedArray and bug 896116 for more information.
  • ES2015 semantics for prototype mutations using object literals have been implemented (bug 1061853).
    • Now only a single member notated as __proto__:value will mutate the [[Prototype]] in the object literal syntax.
    • Method members like __proto__() {} will not overwrite the [[Prototype]] anymore.

Interfaces/APIs/DOM

MathML

  • The dtls OpenType feature (via the CSS font-feature-settings on the default stylesheet) is now applied automatically to MathML elements when positioning scripts over it (e.g. dotless i with mathematical hat).

SVG

No change.

Audio/Video

No change.

Network & Security

Changes for add-on and Mozilla developers

XUL & Add-ons

  • The private _getTabForBrowser() method on the tabbrowser element has been deprecated. In its place, we've added a new, public, method called getTabForBrowser. This returns, predictably, the tab element that contains the specified browser.
  • Components.utils.now(), matching Performance.now() has been implemented for non-window chrome code (bug 969490).

Add-on SDK

Highlights

Details

GitHub commits made between Firefox 34 and Firefox 35. This will not include any uplifts made after this release entered Aurora.

Bugs fixed between Firefox 34 and Firefox 35. This will not include any uplifts made after this release entered Aurora.

See also

Older versions

Document Tags and Contributors

Tags: 
 Last updated by: Sebastianz,