<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.8 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2397 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2397.xml">
<!ENTITY RFC2978 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2978.xml">
<!ENTITY RFC3552 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY RFC3629 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3629.xml">
<!ENTITY RFC4329 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4329.xml">
<!ENTITY RFC6365 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6365.xml">
<!ENTITY RFC6838 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6838.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC3236 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3236.xml">
<!ENTITY RFC3875 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3875.xml">
<!ENTITY RFC3986 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml">
<!ENTITY RFC3987 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3987.xml">
]>

<?rfc toc="yes"?>
<?rfc tocindent="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-dispatch-javascript-mjs-14" category="info" obsoletes="4329">

  <front>
    <title>ECMAScript Media Types Updates</title>

    <author initials="M." surname="Miller" fullname="Matthew A. Miller">
      <organization></organization>
      <address>
        <email>linuxwolf+ietf@outer-planes.net</email>
      </address>
    </author>
    <author initials="M." surname="Borins" fullname="Myles Borins">
      <organization>GitHub</organization>
      <address>
        <email>mylesborins@github.com</email>
      </address>
    </author>
    <author initials="M." surname="Bynens" fullname="Mathias Bynens">
      <organization>Google</organization>
      <address>
        <email>mths@google.com</email>
      </address>
    </author>
    <author initials="B." surname="Farias" fullname="Bradley Farias">
      <organization></organization>
      <address>
        <email>bradley.meck@gmail.com</email>
      </address>
    </author>

    <date year="2022" month="January" day="14"/>

    <area>ART</area>
    <workgroup>DISPATCH</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document describes the registration of media types for the ECMAScript and JavaScript programming languages and conformance requirements for implementations of these types. This document obsoletes RFC4329, "Scripting Media Types", replacing the previous registrations for "text/javascript" and "application/javascript" with information and requirements aligned with implementation experiences.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>This memo describes media types for the JavaScript and ECMAScript programming languages.  Refer to the sections "Introduction" and "Overview" in <xref target="ECMA-262"/> for background information on these languages.  This document updates the descriptions and registrations for these media types to reflect existing usage on the Internet, and provides up-to-date security considerations.</t>

<t>This document replaces the media types registrations in <xref target="RFC4329"/>, and updates the requirements for implementations using those media types defined in <xref target="RFC4329"/> based on current existing practices. As a consequence, this document obsoletes <xref target="RFC4329"/>.</t>

<section anchor="terminology"><name>Terminology</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14  <xref target="RFC2119"/>  <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>

</section>
</section>
<section anchor="compatibility"><name>Compatibility</name>

<t>This document defines equivalent processing requirements for the types text/javascript, text/ecmascript, and application/javascript.  The most widely supported media type in use is text/javascript; all others are considered historical and obsolete aliases of text/javascript.</t>

<t>The types defined in this document are applicable to scripts written in <xref target="ECMA-262"/>.  Later editions of <xref target="ECMA-262"/> are not directly addressed, although it is expected that implementations will behave as if applicability were extended to them.  This document does not address other extensions to <xref target="ECMA-262"/> or scripts written in other languages.</t>

<t>This document may be updated to take other content into account.  Updates of this document may introduce new optional parameters; implementations MUST consider the impact of such an update.</t>

<t>This document does not define how fragment identifiers in resource identifiers (<xref target="RFC3986"/>, <xref target="RFC3987"/>) for documents labeled with one of the media types defined in this document are resolved.  An update of this document may define processing of fragment identifiers.</t>

<t>The definitions in this document reflect the current state of implementation across the JavaScript ecosystem, in web browsers and other environments such as Node.js alike, in order to guarantee backwards compatibility with existing applications as much as possible.</t>

</section>
<section anchor="modules"><name>Modules</name>

<t>In order to formalize support for modular programs, <xref target="ECMA-262"/> (starting with 6th Edition) defines two top-level goal symbols (or roots to the abstract syntax tree) for the ECMAScript grammar: Module and Script.  The Script goal represents the original structure where the code executes in the global scope, while the Module goal represents the module system built into ECMAScript starting with 6th Edition.  See the section "ECMAScript Language: Scripts and Modules" of <xref target="ECMA-262"/> for details.</t>

<t>This separation means that (in the absence of additional information) there are two possible interpretations for any given ECMAScript source text.</t>

<t>Ecma International's Technical Committee 39 (TC39), the standards body in charge of ECMAScript, has determined that media types are outside of their scope of work <xref target="TC39-MIME-ISSUE"/>.</t>

<t>It is not possible to fully determine if a source text of ECMAScript is meant to be parsed using the Module or Script grammar goals based upon content or media type alone. Therefore, as permitted by the media types in this document, scripting environments use out-of-band information in order to determine what goal should be used. Some scripting environments have chosen to adopt the file extension of .mjs for this purpose.</t>

</section>
<section anchor="encoding"><name>Encoding</name>

<t>Refer to <xref target="RFC6365"/> for a discussion of terminology used in this section.  Source text (as defined in <xref target="ECMA-262"/>, section "Source Text") can be binary source text.  Binary source text is a textual data object that represents source text encoded using a character encoding scheme.  A textual data object is a whole text protocol message or a whole text document, or a part of it, that is treated separately for purposes of external storage and retrieval.  An implementation's internal representation of source text is not considered binary source text.</t>

<t>Implementations need to determine a character encoding scheme in order to decode binary source text to source text.  The media types defined in this document allow an optional charset parameter to explicitly specify the character encoding scheme used to encode the source text.</t>

<t>How implementations determine the character encoding scheme can be subject to processing rules that are out of the scope of this document.  For example, transport protocols can require that a specific character encoding scheme is to be assumed if the optional charset parameter is not specified, or they can require that the charset parameter is used in certain cases.  Such requirements are not defined by this document.</t>

<t>Implementations that support binary source text MUST support binary source text encoded using the UTF-8 <xref target="RFC3629"/> character encoding scheme.  Module goal sources MUST be encoded as UTF-8, all other encodings will fail.  Source goal sources SHOULD be encoded as UTF-8; other character encoding schemes MAY be supported, but are discouraged.  Whether U+FEFF is processed as a Byte Order Mark (BOM) signature or not depends on the host environment, and is not defined by this document.</t>

<section anchor="charset-parameter"><name>Charset Parameter</name>

<t>The charset parameter provides a means to specify the character encoding scheme of binary source text.  Its value SHOULD be a registered charset <xref target="CHARSETS"/>, and is considered valid if it matches the mime-charset production defined in <xref target="RFC2978"/>, section 2.3.</t>

<t>The charset parameter is only used when processing a Script goal source; Module goal sources MUST always be processed as UTF-8.</t>

</section>
<section anchor="character-encoding-scheme-detection"><name>Character Encoding Scheme Detection</name>

<t>It is possible that implementations cannot interoperably determine a single character encoding scheme simply by complying with all requirements of the applicable specifications.  To foster interoperability in such cases, the following algorithm is defined.  Implementations apply this algorithm until a single character encoding scheme is determined.</t>

<t><list style="numbers">
  <t>If the binary source text is not already determined to be using a Module goal and starts with a Unicode encoding form signature, the signature determines the encoding.  The following octet sequences, at the very beginning of the binary source text, are considered with their corresponding character encoding schemes:  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
 +------------------+----------+
 | Leading sequence | Encoding |
 |------------------+----------|
 | EF BB BF         | UTF-8    |
 | FF FE            | UTF-16LE |
 | FE FF            | UTF-16BE |
 +------------------+----------+
]]></artwork></figure>
  <vspace blankLines='1'/>
Implementations of this step MUST use these octet sequences to determine the character encoding scheme, even if the determined scheme is not supported.  If this step determines the character encoding scheme, the octet sequence representing the Unicode encoding form signature MUST be ignored when decoding the binary source text.</t>
  <t>Else, if a charset parameter is specified and its value is valid and supported by the implementation, the value determines the character encoding scheme.</t>
  <t>Else, the character encoding scheme is assumed to be UTF-8.</t>
</list></t>

<t>If the character encoding scheme is determined to be UTF-8 through any means other than step 1 as defined above and the binary source text starts with the octet sequence EF BB BF, the octet sequence is ignored when decoding the binary source text.</t>

</section>
<section anchor="character-encoding-scheme-error-handling"><name>Character Encoding Scheme Error Handling</name>

<t>Binary source text that is not properly encoded for the determined character encoding can pose a security risk, as discussed in section 5.  That said, because of the varied and complex environments scripts are executed in, most of the error handling specifics are left to the processors.  The following are broad guidelines that processors follow.</t>

<t>If binary source text is determined to have been encoded using a certain character encoding scheme that the implementation is unable to process, implementations can consider the resource unsupported (i.e., do not decode the binary source text using a different character encoding scheme).</t>

<t>Binary source text can be determined to have been encoded using a certain character encoding scheme but contain octet sequences that are not valid according to that scheme.  Implementations can substitute those invalid sequences with the replacement character U+FFFD (properly encoded for the scheme), or stop processing altogether.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>Refer to <xref target="RFC3552"/> for a discussion of terminology used in this section.  Examples in this section and discussions of interactions of host environments with scripts, modules, and extensions to <xref target="ECMA-262"/> are to be understood as non-exhaustive and of a purely illustrative nature.</t>

<t>The programming language defined in <xref target="ECMA-262"/> is not intended to be computationally self-sufficient, rather, it is expected that the computational environment provides facilities to programs to enable specific functionality.  Such facilities constitute unknown factors and are thus not defined by this document.</t>

<t>Derived programming languages are permitted to include additional functionality that is not described in <xref target="ECMA-262"/>; such functionality constitutes an unknown factor and is thus not defined by this document.  In particular, extensions to <xref target="ECMA-262"/> defined for the JavaScript programming language are not discussed in this document.</t>

<t>Uncontrolled execution of scripts can be exceedingly dangerous. Implementations that execute scripts MUST give consideration to their application's threat models and those of the individual features they implement; in particular, they MUST ensure that untrusted content is not executed in an unprotected environment.</t>

<t>Module scripts in ECMAScript can request the fetching and processing of additional scripts, called importing. Implementations that support modules need to process imported sources in the same way as scripts. See the section "ECMAScript Language: Scripts and Modules" in <xref target="ECMA-262"/> for details. Further, there may be additional privacy and security concerns depending on the location(s) the original script and its imported modules are obtained from. For instance, a script obtained from "host-a.example" could request to import a script from "host-b.example", which could expose information about the executing environment (e.g., IP address) to "host-b.example".</t>

<t>Specifications for host environment facilities and for derived programming languages should include security considerations.  If an implementation supports such facilities, the respective security considerations apply.  In particular, if scripts can be referenced from or included in specific document formats, the considerations for the embedding or referencing document format apply.</t>

<t>For example, scripts embedded in application/xhtml+xml <xref target="RFC3236"/> documents could be enabled through the host environment to manipulate the document instance, which could cause the retrieval of remote resources; security considerations regarding retrieval of remote resources of the embedding document would apply in this case.</t>

<t>This circumstance can further be used to make information, that is normally only available to the script, available to a web server by encoding the information in the resource identifier of the resource, which can further enable eavesdropping attacks.  Implementation of such facilities is subject to the security considerations of the host environment, as discussed above.</t>

<t>The programming language defined in <xref target="ECMA-262"/> does include facilities to loop, cause computationally complex operations, or consume large amounts of memory; this includes, but is not limited to, facilities that allow dynamically generated source text to be executed (e.g., the eval() function); uncontrolled execution of such features can cause denial of service, which implementations MUST protect against.</t>

<t>With the addition of SharedArrayBuffer objects in ECMAScript version 8, it could be possible to implement a high-resolution timer which could lead to certain types of timing and side-channel attacks (e.g., <xref target="SPECTRE"/>).  Implementations can take steps to mitigate this concern, such as disabling or removing support for SharedArrayBuffer objects, or take additional steps to ensure access to this shared memory is only accessible between execution contexts that have some form of mutual trust.</t>

<t>A host environment can provide facilities to access external input. Scripts that pass such input to the eval() function or similar language features can be vulnerable to code injection attacks. Scripts are expected to protect against such attacks.</t>

<t>A host environment can provide facilities to output computed results in a user-visible manner.  For example, host environments supporting a graphical user interface can provide facilities that enable scripts to present certain messages to the user.  Implementations MUST take steps to avoid confusion of the origin of such messages.  In general, the security considerations for the host environment apply in such a case as discussed above.</t>

<t>Implementations are required to support the UTF-8 character encoding scheme; the security considerations of <xref target="RFC3629"/> apply.  Additional character encoding schemes may be supported; support for such schemes is subject to the security considerations of those schemes.</t>

<t>Source text is expected to be in Unicode Normalization Form C. Scripts and implementations MUST consider security implications of unnormalized source text and data.  For a detailed discussion of such implications refer to the security considerations in <xref target="RFC3629"/>.</t>

<t>Scripts can be executed in an environment that is vulnerable to code injection attacks.  For example, a CGI script <xref target="RFC3875"/> echoing user input could allow the inclusion of untrusted scripts that could be executed in an otherwise trusted environment.  This threat scenario is subject to security considerations that are out of the scope of this document.</t>

<t>The "data" resource identifier scheme <xref target="RFC2397"/>, in combination with the types defined in this document, could be used to cause execution of untrusted scripts through the inclusion of untrusted resource identifiers in otherwise trusted content.  Security considerations of <xref target="RFC2397"/> apply.</t>

<t>Implementations can fail to implement a specific security model or other means to prevent possibly dangerous operations.  Such failure could possibly be exploited to gain unauthorized access to a system or sensitive information; such failure constitutes an unknown factor and is thus not defined by this document.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>The media type registrations herein are divided into two major categories: the sole media type "text/javascript" which is now in common usage, and all of the media types that are obsolete.</t>

<t>For both categories, the media types are updated to reference <xref target="ECMA-262"/>. In addition, a new file extension of .mjs is added to the list of file extensions with the restriction that contents should be parsed using the Module goal. Finally, the <xref target="HTML"/> specification uses "text/javascript" as the default media type of ECMAScript when preparing script tags; therefore, "text/javascript" intended usage is to be moved from OBSOLETE to COMMON.</t>

<t>These changes are to be reflected in the IANA Media Types registry in accordance with <xref target="RFC6838"/>. All registrations will point to this document as reference. The outdated note stating that the "text/javascript" media type has been "OBSOLETED in favor of application/javascript" is to be removed. The outdated note stating that the "text/ecmascript" media type has been "OBSOLETED in favor of application/ecmascript" is to be removed. IANA is requested to add the note "OBSOLETED in favor of text/javascript" to all registrations except "text/javascript".</t>

<t>Four of the legacy media types in this document have a subtype starting with the "x-" prefix:</t>

<t><list style="symbols">
  <t>application/x-ecmascript</t>
  <t>application/x-javascript</t>
  <t>text/x-ecmascript</t>
  <t>text/x-javascript</t>
</list></t>

<t>Note that these are grandfathered media types registered as per Appendix A of <xref target="RFC6838"/>.</t>

<section anchor="common-javascript-media-types"><name>Common JavaScript Media Types</name>

<section anchor="textjavascript"><name>text/javascript</name>

<dl>
  <dt>
Type name:  </dt>
  <dd>
    <t>text</t>
  </dd>
  <dt>
Subtype name:  </dt>
  <dd>
    <t>javascript</t>
  </dd>
  <dt>
Required parameters:  </dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>
Optional parameters:  </dt>
  <dd>
    <t>charset, see section 4.1 of [this document].</t>
  </dd>
  <dt>
Encoding considerations:  </dt>
  <dd>
    <t>Binary</t>
  </dd>
  <dt>
Security considerations:  </dt>
  <dd>
    <t>See section 5 of [this document].</t>
  </dd>
  <dt>
Interoperability considerations:  </dt>
  <dd>
    <t>It is expected that implementations will behave as if this registration applies to later editions of <xref target="ECMA-262"/>, and its published specification references may be updated accordingly from time to time. See also various sections of [this document].</t>
  </dd>
  <dt>
Published specification:  </dt>
  <dd>
    <t><xref target="ECMA-262"/></t>
  </dd>
  <dt>
Applications which use this media type:  </dt>
  <dd>
    <t>Script interpreters as discussed in [this document].</t>
  </dd>
</dl>

<t>Additional information:</t>

<dl>
  <dt>
Deprecated alias names for this type:  </dt>
  <dd>
    <t>application/javascript, application/x-javascript, text/javascript1.0, text/javascript1.1, text/javascript1.2, text/javascript1.3, text/javascript1.4, text/javascript1.5, text/jscript, text/livescript</t>
  </dd>
  <dt/>
  <dd>
    <dl>
      <dt>
Magic number(s):      </dt>
      <dd>
        <t>n/a</t>
      </dd>
      <dt>
File extension(s):      </dt>
      <dd>
        <t>.js, .mjs</t>
      </dd>
      <dt>
Macintosh File Type Code(s):      </dt>
      <dd>
        <t>TEXT</t>
      </dd>
    </dl>
  </dd>
  <dt>
Person &amp; email address to contact for further information:  </dt>
  <dd>
    <t>See Author's Address section of [this document] and <xref target="RFC4329"/>.</t>
  </dd>
  <dt>
Intended usage:  </dt>
  <dd>
    <t>COMMON</t>
  </dd>
  <dt>
Restrictions on usage:  </dt>
  <dd>
    <t>The .mjs file extension signals that the file represents a JavaScript module. Execution environments that rely on file extensions to determine how to process inputs parse .mjs files using the Module grammar of <xref target="ECMA-262"/>.</t>
  </dd>
  <dt>
Author:  </dt>
  <dd>
    <t>See Author's Address section of [this document] and <xref target="RFC4329"/>.</t>
  </dd>
  <dt>
Change controller:  </dt>
  <dd>
    <t>IESG &lt;iesg@ietf.org&gt;</t>
  </dd>
</dl>

</section>
</section>
<section anchor="historic-javascript-media-types"><name>Historic JavaScript Media Types</name>

<t>The following media types and legacy aliases are added or updated for historical purposes. All herein have an intended usage of OBSOLETE, and are not expected to be in use with modern implementations.</t>

<section anchor="textecmascript"><name>text/ecmascript</name>

<dl>
  <dt>
Type name:  </dt>
  <dd>
    <t>application</t>
  </dd>
  <dt>
Subtype name:  </dt>
  <dd>
    <t>ecmascript</t>
  </dd>
  <dt>
Required parameters:  </dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>
Optional parameters:  </dt>
  <dd>
    <t>charset, see section 4.1 of [this document].</t>
  </dd>
  <dt>
Encoding considerations:  </dt>
  <dd>
    <t>Binary</t>
  </dd>
  <dt>
Security considerations:  </dt>
  <dd>
    <t>See section 5 of [this document].</t>
  </dd>
  <dt>
Interoperability considerations:  </dt>
  <dd>
    <t>It is expected that implementations will behave as if this registration applies to later editions of <xref target="ECMA-262"/>, and its published specification references may be updated accordingly from time to time. See also various sections of [this document].</t>
  </dd>
  <dt>
Published specification:  </dt>
  <dd>
    <t><xref target="ECMA-262"/></t>
  </dd>
  <dt>
Applications which use this media type:  </dt>
  <dd>
    <t>Script interpreters as discussed in [this document].</t>
  </dd>
</dl>

<t>Additional information:</t>

<dl>
  <dt>
Deprecated alias names for this type:  </dt>
  <dd>
    <t>application/ecmascript, application/x-ecmascript, text/x-ecmascript</t>
  </dd>
  <dt>
Magic number(s):  </dt>
  <dd>
    <t>n/a</t>
  </dd>
  <dt>
File extension(s):  </dt>
  <dd>
    <t>.es, .mjs</t>
  </dd>
  <dt>
Macintosh File Type Code(s):  </dt>
  <dd>
    <t>TEXT</t>
  </dd>
  <dt>
Person &amp; email address to contact for further information:  </dt>
  <dd>
    <t>See Author's Address section of [this document] and <xref target="RFC4329"/>.</t>
  </dd>
  <dt>
Intended usage:  </dt>
  <dd>
    <t>OBSOLETE</t>
  </dd>
  <dt>
Restrictions on usage:  </dt>
  <dd>
    <t>This media type is obsolete; current implementations should use text/javascript as the only JavaScript/ECMAScript media type. The .mjs file extension signals that the file represents a JavaScript module. Execution environments that rely on file extensions to determine how to process inputs parse .mjs files using the Module grammar of <xref target="ECMA-262"/>.</t>
  </dd>
  <dt>
Author:  </dt>
  <dd>
    <t>See Author's Address section of [this document] and <xref target="RFC4329"/>.</t>
  </dd>
  <dt>
Change controller:  </dt>
  <dd>
    <t>IESG &lt;iesg@ietf.org&gt;</t>
  </dd>
</dl>

</section>
</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&RFC2397;
&RFC2978;
&RFC3552;
&RFC3629;
&RFC4329;
&RFC6365;
&RFC6838;
&RFC8174;
<reference anchor="CHARSETS" target="https://www.iana.org/assignments/character-sets">
  <front>
    <title>Assigned character sets</title>
    <author >
      <organization>IANA</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="ECMA-262" target="https://262.ecma-international.org/12.0/">
  <front>
    <title>ECMAScript 2021 language specification, ECMA-262 12th Edition, June 2021</title>
    <author >
      <organization>Ecma International</organization>
    </author>
    <date year="2021" month="June"/>
  </front>
</reference>


    </references>

    <references title='Informative References'>

&RFC3236;
&RFC3875;
&RFC3986;
&RFC3987;
<reference anchor="HTML" target="https://html.spec.whatwg.org/multipage/scripting.html#prepare-a-script">
  <front>
    <title>HTML Living Standard</title>
    <author >
      <organization>WHATWG</organization>
    </author>
    <date year="2017" month="August"/>
  </front>
</reference>
<reference anchor="SPECTRE" target="https://arxiv.org/abs/1801.01203">
  <front>
    <title>Spectre Attacks: Exploiting Speculative Execution</title>
    <author initials="P." surname="Kocher" fullname="Paul Kocher">
      <organization></organization>
    </author>
    <author initials="A." surname="Fogh" fullname="Anders Fogh">
      <organization></organization>
    </author>
    <author initials="D." surname="Gerkin" fullname="Daniel Gerkin">
      <organization></organization>
    </author>
    <author initials="D." surname="Gruss" fullname="Daniel Gruss">
      <organization></organization>
    </author>
    <author initials="W." surname="Haas" fullname="Werner Haas">
      <organization></organization>
    </author>
    <author initials="M." surname="Hamburg" fullname="Mike Hamburg">
      <organization></organization>
    </author>
    <author initials="M." surname="Lipp" fullname="Moritz Lipp">
      <organization></organization>
    </author>
    <author initials="S." surname="Mangard" fullname="Stefan Mangard">
      <organization></organization>
    </author>
    <author initials="T." surname="Prescher" fullname="Thomas Prescher">
      <organization></organization>
    </author>
    <author initials="M." surname="Schwarz" fullname="Michael Schwarz">
      <organization></organization>
    </author>
    <author initials="Y." surname="Yarom" fullname="Yuval Yarom">
      <organization></organization>
    </author>
    <date year="2018" month="January"/>
  </front>
</reference>
<reference anchor="TC39-MIME-ISSUE" target="https://web.archive.org/web/20170814193912/https://github.com/tc39/ecma262/issues/322">
  <front>
    <title>Add `application/javascript+module` mime to remove ambiguity</title>
    <author >
      <organization>TC39</organization>
    </author>
    <date year="2017" month="August"/>
  </front>
</reference>


    </references>


<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>This work builds upon its antecedent document, authored by Bjoern Hoehrmann.  The authors would like to thank
Adam Roach,
Alexey Melnikov,
Allen Wirfs-Brock,
Anne van Kesteren,
Ben Campbell,
Benjamin Kaduk,
Éric Vyncke,
Francesca Palombini,
James Snell,
Kirsty Paine,
Mark Nottingham,
Murray Kucherawy,
Ned Freed,
Robert Sparks, and
Suresh Krishnan
for their guidance and feedback throughout this process.</t>

</section>
<section anchor="changes-from-rfc-4329"><name>Changes from RFC 4329</name>

<t><list style="symbols">
  <t>Added a section discussing ECMAScript modules and the impact on processing.</t>
  <t>Updated the Security Considerations to discuss concerns associated with ECMAScript modules and SharedArrayBuffers.</t>
  <t>Updated the character encoding scheme detection to remove normative guidance on its use, to better reflect operational reality.</t>
  <t>Changed the intended usage of the media type text/javascript from obsolete to common.</t>
  <t>Changed the intended usage for all other script media types to obsolete.</t>
  <t>Updated various references where the original has been obsoleted.</t>
  <t>Updated references to ECMA-262 to match the version at time of publication.</t>
</list></t>

</section>


  </back>

<!-- ##markdown-source:
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
ar7yS6iGXe148D9Gb2AHpFsAAA==

-->

</rfc>

