Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mohamedkhallouq
GitHub Repository: mohamedkhallouq/content
Path: blob/main/files/en-us/mozilla/firefox/releases/39/index.md
6568 views
---
title: Firefox 39 for developers slug: Mozilla/Firefox/Releases/39
---

{{FirefoxSidebar}}

Firefox 39 was released on July 2, 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 38 and Firefox 39.

CSS

  • Support of the {{cssxref("<string>")}} type on {{cssxref("list-style-type")}}, as well as its shorthand property {{cssxref("list-style")}} has been implemented (Firefox bug 1144607).

  • CSS Scroll Snapping has been implemented (Firefox bug 945584 and Firefox bug 1138658).

  • Cascading of CSS Animations and CSS Transitions has been rewritten to match the latest specification (Firefox bug 1125455).

  • Support for vertical scripts, with the {{cssxref("writing-mode")}} is now turned on by default on Nightly and Developer Edition, but not on Firefox Beta and Firefox Release (Firefox bug 1099032). Note that implementation is not yet complete and some widgets, like tables, will not obey to all values.

  • CSS {{cssxref("filter")}} acts like position: relative + overflow: hidden (Firefox bug 1125767).

HTML

  • A new {{glossary("ARIA")}} role, switch, is now supported (Firefox bug 1136563).

  • Support for <link rel="preconnect"> allowing to anticipate a future connection without revealing any information has been implemented (Firefox bug 1135160).

JavaScript

  • The RegExp constructor no longer throws when the first argument is a RegExp and the second flags argument is present (Firefox bug 1108949).

  • The Object.prototype.__noSuchMethod__ property is now deprecated and throws a console warning (see Firefox bug 1140428 and this platform announcement).

  • The implementation of the {{jsxref("Proxy")}} object has been updated to comply more with the ES2015 specification:

    • The {{jsxref("Global_Objects/Proxy/Proxy/defineProperty", "defineProperty")}} and {{jsxref("Global_Objects/Proxy/Proxy/set", "set")}} handlers now need to explicitly return true to be successful, otherwise a {{jsxref("TypeError")}} exception will be thrown in strict mode (Firefox bug 1132522).

    • If the {{domxref("window")}} object is set as the target, those handlers will now throw a TypeError (Firefox bug 828137).

  • When using arrow functions (=>), a line terminator (\n) is no longer allowed after arrow function arguments (() \n => {}) (Firefox bug 1141392).

  • {{jsxref("RegExp.prototype.toString")}} is now a generic function (Firefox bug 1079919).

  • The non-standard flags argument of {{jsxref("String.prototype.match()")}}, {{jsxref("String.prototype.search()")}}, and {{jsxref("String.prototype.replace()")}} is now deprecated and throws a console warning (Firefox bug 1142351).

  • The try/catch behavior of {{jsxref("Object.assign()")}} has been removed to conform with the latest ES2015 draft (Firefox bug 1103344).

Interfaces/APIs/DOM

  • The experimental CanvasRenderingContext2D.addHitRegion() method now accepts a path option, which allows you to add hit regions to {{domxref("Path2D")}} objects (Firefox bug 1129147).

  • New methods have been added to manipulate {{domxref("FormData")}} objects (Firefox bug 1085283) and FormData is now supported in Web workers (Firefox bug 739173).

  • The non-standard {{domxref("XMLHttpRequest.sendAsBinary()")}} method has been removed (Firefox bug 853162).

  • Progress in our experimental implementation of Web Animations: {{domxref("Animation/startTime", "AnimationPlayer.startTime")}} is now writeable (Firefox bug 1073379).

  • Progress in our experimental implementation of Service Workers: {{domxref("Cache")}} and {{domxref("CacheStorage")}} interfaces are now implemented (Firefox bug 940273).

  • The experimental Fetch API has been activated by default (Firefox bug 1133861).

  • Progress in our experimental implementation of WebGL2: {{domxref("WebGLSync")}} is now implemented (Firefox bug 1048721).

  • Support for {{domxref("MouseEvent.offsetX")}} and {{domxref("MouseEvent.offsetY")}} have been added on desktop (Firefox bug 69787, but not on Firefox for Android or Firefox OS (they will be added in Firefox 43).

MathML

No change.

SVG

No change.

Audio/Video

No change.

Miscellaneous

Networking

Security

No change.

Changes for add-on and Mozilla developers

No change.

Older versions

{{Firefox_for_developers('38')}}