What is the correct media type for JavaScript source code?

[2011-08-15] dev, javascript, clientjs
(Ad, please don’t block)
Question: What media type should you use for JavaScript source code? Answer [via Brendan Eich] and explanations after the break.

The correct JavaScript media type

There are many JavaScript media types in use. Examples:
    application/ecmascript
    application/javascript
    application/x-ecmascript
    application/x-javascript
    text/ecmascript
    text/javascript
    text/javascript1.0
    text/javascript1.1
    text/javascript1.2
    text/javascript1.3
    text/javascript1.4
    text/javascript1.5
    text/jscript
    text/livescript
    text/x-ecmascript
    text/x-javascript
Which one of those is correct? RFC 4329 has the answer:
Use of the “text” top-level type for this kind of content is known to be problematic. This document thus defines text/javascript and text/ecmascript but marks them as “obsolete”. Use of experimental and unregistered media types, as listed in part above, is discouraged. The media types,
  • application/javascript
  • application/ecmascript
which are also defined in this document, are intended for common use and should be used instead.
However: While text/javascript is considered obsolete, it might still be necessary to use it if you want your code to run on Internet Explorer 8. Quoting machineghost on Stack Overflow [via Gezim Hoxha]:
Moral of the story: if you want IE8 to work DO NOT use "application/javascript" for your JS files' MIME type [a.k.a. media type].

Uses of the media type

The (internet) media type of JavaScript source code is mainly needed in two cases:
  • When serving code via a web server.
  • As the value of an optional attribute of the script tag:
        <script type="application/javascript">
            ...
        </script>