draft-ietf-dispatch-javascript-mjs-04.txt | draft-ietf-dispatch-javascript-mjs-05.txt | |||
---|---|---|---|---|
DISPATCH M. Borins | DISPATCH M. Borins | |||
Internet-Draft M. Bynens | Internet-Draft M. Bynens | |||
Updates: 4329 (if approved) Google | Updates: 4329 (if approved) Google | |||
Intended status: Informational M. Miller | Intended status: Informational M. Miller | |||
Expires: December 21, 2019 Mozilla | Expires: May 3, 2020 Mozilla | |||
B. Farias | B. Farias | |||
June 19, 2019 | October 31, 2019 | |||
ECMAScript Media Types Updates | ECMAScript Media Types Updates | |||
draft-ietf-dispatch-javascript-mjs-04 | draft-ietf-dispatch-javascript-mjs-05 | |||
Abstract | Abstract | |||
This document proposes updates to the ECMAScript media types, | This document proposes updates to the ECMAScript media types, | |||
superseding the existing registrations for "application/javascript" | superseding the existing registrations for "application/javascript" | |||
and "text/javascript" by adding an additional extension and removing | and "text/javascript" by adding an additional extension and removing | |||
usage warnings. This document updates RFC4329, "Scripting Media | usage warnings. This document updates RFC4329, "Scripting Media | |||
Types". | Types". | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 37 ¶ | skipping to change at page 1, line 37 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on December 21, 2019. | This Internet-Draft will expire on May 3, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Background . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3 | 3. Security Considerations . . . . . . . . . . . . . . . . . . . 3 | |||
3.1. Common Javascript Media Types . . . . . . . . . . . . . . 3 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3 | |||
3.1.1. text/javascript . . . . . . . . . . . . . . . . . . . 3 | 4.1. Common Javascript Media Types . . . . . . . . . . . . . . 4 | |||
3.2. Historic Javascript Media Types . . . . . . . . . . . . . 4 | 4.1.1. text/javascript . . . . . . . . . . . . . . . . . . . 4 | |||
3.2.1. application/ecmascript . . . . . . . . . . . . . . . 4 | 4.2. Historic Javascript Media Types . . . . . . . . . . . . . 5 | |||
3.2.2. application/javascript . . . . . . . . . . . . . . . 5 | 4.2.1. application/ecmascript . . . . . . . . . . . . . . . 5 | |||
3.2.3. application/x-ecmascript . . . . . . . . . . . . . . 6 | 4.2.2. application/javascript . . . . . . . . . . . . . . . 6 | |||
3.2.4. application/x-javascript . . . . . . . . . . . . . . 7 | 4.2.3. application/x-ecmascript . . . . . . . . . . . . . . 7 | |||
3.2.5. text/ecmascript . . . . . . . . . . . . . . . . . . . 8 | 4.2.4. application/x-javascript . . . . . . . . . . . . . . 8 | |||
3.2.6. text/javascript1.0 . . . . . . . . . . . . . . . . . 9 | 4.2.5. text/ecmascript . . . . . . . . . . . . . . . . . . . 9 | |||
3.2.7. text/javascript1.1 . . . . . . . . . . . . . . . . . 10 | 4.2.6. text/javascript1.0 . . . . . . . . . . . . . . . . . 10 | |||
3.2.8. text/javascript1.2 . . . . . . . . . . . . . . . . . 11 | 4.2.7. text/javascript1.1 . . . . . . . . . . . . . . . . . 11 | |||
3.2.9. text/javascript1.3 . . . . . . . . . . . . . . . . . 12 | 4.2.8. text/javascript1.2 . . . . . . . . . . . . . . . . . 12 | |||
3.2.10. text/javascript1.4 . . . . . . . . . . . . . . . . . 13 | 4.2.9. text/javascript1.3 . . . . . . . . . . . . . . . . . 13 | |||
3.2.11. text/javascript1.5 . . . . . . . . . . . . . . . . . 14 | 4.2.10. text/javascript1.4 . . . . . . . . . . . . . . . . . 14 | |||
3.2.12. text/jscript . . . . . . . . . . . . . . . . . . . . 15 | 4.2.11. text/javascript1.5 . . . . . . . . . . . . . . . . . 15 | |||
3.2.13. text/livescript . . . . . . . . . . . . . . . . . . . 16 | 4.2.12. text/jscript . . . . . . . . . . . . . . . . . . . . 16 | |||
3.2.14. text/x-ecmascript . . . . . . . . . . . . . . . . . . 17 | 4.2.13. text/livescript . . . . . . . . . . . . . . . . . . . 17 | |||
3.2.15. text/x-javascript . . . . . . . . . . . . . . . . . . 18 | 4.2.14. text/x-ecmascript . . . . . . . . . . . . . . . . . . 18 | |||
4. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 4.2.15. text/x-javascript . . . . . . . . . . . . . . . . . . 19 | |||
4.1. Normative References . . . . . . . . . . . . . . . . . . 19 | 5. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
4.2. Informative References . . . . . . . . . . . . . . . . . 19 | 5.1. Normative References . . . . . . . . . . . . . . . . . . 20 | |||
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 19 | 5.2. Informative References . . . . . . . . . . . . . . . . . 20 | |||
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 20 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
1. Introduction | 1. Introduction | |||
This document updates the existing media types for the ECMAScript | This document updates the existing media types for the ECMAScript | |||
programming language. It supersedes the media types registrations in | programming language. It supersedes the media types registrations in | |||
[RFC4329] for "application/javascript" and "text/javascript". | [RFC4329] for "application/javascript" and "text/javascript". | |||
2. Background | 2. Background | |||
In order to formalize support for modular programs [ECMA-262] now | In order to formalize support for modular programs, [ECMA-262] | |||
defines two top-level goal symbols for the ECMAScript grammar. This | (starting with 6th Edition) defines two top-level goal symbols (or | |||
means that (in the absence of additional information) there are two | roots to the abstract syntax tree) for the ECMAScript grammar: Module | |||
possible interpretations for any given ECMAScript Source Text. The | and Script. The Script goal represents the more stand-alone | |||
TC39 standards body for ECMAScript has determined that media types | structure where the code executes in the global scope, while the | |||
are outside of their scope of work [TC39-MIME-ISSUE]. | Module goal represents the module system built into ECMAScript | |||
starting with 6th Edition. | ||||
This separation means that (in the absence of additional information) | ||||
there are two possible interpretations for any given ECMAScript | ||||
Source Text. The TC39 standards body for ECMAScript has determined | ||||
that media types are outside of their scope of work | ||||
[TC39-MIME-ISSUE]. | ||||
It is not possible to fully determine if a Source Text of ECMAScript | It is not possible to fully determine if a Source Text of ECMAScript | |||
is meant to be parsed in the Module or Script grammar goals based | is meant to be parsed in the Module or Script grammar goals based | |||
upon content alone. Therefore, scripting environments must use out | upon content alone. Therefore, scripting environments must use out | |||
of band information in order to determine what goal a Source Text | of band information in order to determine what goal a Source Text | |||
should be treated as. To this end some scripting environments have | should be treated as. To this end some scripting environments have | |||
chosen to adopt a new file extension of .mjs for determining the goal | chosen to adopt a new file extension of .mjs for determining the goal | |||
of a given Source Text. | of a given Source Text. | |||
3. IANA Considerations | 3. Security Considerations | |||
Module scripts in ECMAScript can request the fetching and processing | ||||
of additional scripts, called importing. Implementations that | ||||
support modules need to ensure these scripts are processed the same | ||||
as scripts processed directly. 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 scripted 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". | ||||
With the addition of SharedArrayBuffer objects in ECMAScript version | ||||
8, it may be possible to implement a high-resolution timer which | ||||
could lead to certain types of timing and side-channel attacks (e.g., | ||||
[SPECTRE]). Implementations may wish to 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. | ||||
All other security considerations from [RFC4329] still apply. | ||||
4. IANA Considerations | ||||
The media type registrations herein are divided into two major | The media type registrations herein are divided into two major | |||
categories: the sole media type "text/javascript" which is now in | categories: the sole media type "text/javascript" which is now in | |||
common usage, and all of the media types that are obsolete. | common usage, and all of the media types that are obsolete. | |||
For both categories, The ECMAScript media types are to be updated to | For both categories, The ECMAScript media types are to be updated to | |||
point to a non-vendor specific standard undated specification of | point to a non-vendor specific standard undated specification of | |||
ECMAScript. In addition, a new file extension of .mjs is to be added | ECMAScript. In addition, a new file extension of .mjs is to be added | |||
to the list of file extensions with the restriction that it must | to the list of file extensions with the restriction that it must | |||
correspond to the Module grammar of [ECMA-262]. Finally, the [HTML] | correspond to the Module grammar of [ECMA-262]. Finally, the [HTML] | |||
specification is using "text/javascript" as the default media type of | specification uses "text/javascript" as the default media type of | |||
ECMAScript when preparing script tags; therefore, "text/javascript" | ECMAScript when preparing script tags; therefore, "text/javascript" | |||
has been moved intended usage from OBSOLETE to COMMON. | intended usage is to be moved from OBSOLETE to COMMON. | |||
3.1. Common Javascript Media Types | 4.1. Common Javascript Media Types | |||
3.1.1. text/javascript | 4.1.1. text/javascript | |||
Type name: text | Type name: text | |||
Subtype name: javascript | Subtype name: javascript | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 4, line 17 ¶ | skipping to change at page 5, line 4 ¶ | |||
Magic number(s): n/a | Magic number(s): n/a | |||
File extension(s): .js, .mjs | File extension(s): .js, .mjs | |||
Macintosh File Type Code(s): TEXT | Macintosh File Type Code(s): TEXT | |||
Person & email address to contact for further information: See | Person & email address to contact for further information: See | |||
Author's Address section. | Author's Address section. | |||
Intended usage: COMMON | Intended usage: COMMON | |||
Restrictions on usage: The .mjs file extension signals that the file | Restrictions on usage: The .mjs file extension signals that the file | |||
represents a JavaScript module. Execution environments that rely | represents a JavaScript module. Execution environments that rely | |||
on file extensions to determine how to process inputs parse .mjs | on file extensions to determine how to process inputs parse .mjs | |||
files using the Module grammar of [ECMA-262]. | files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2. Historic Javascript Media Types | 4.2. Historic Javascript Media Types | |||
The following media types are added or updated for historical | The following media types are added or updated for historical | |||
purposes. All herein have an intended usage of OBSOLETE, and are not | purposes. All herein have an intended usage of OBSOLETE, and are not | |||
expected to be in use with modern implementations. | expected to be in use with modern implementations. | |||
3.2.1. application/ecmascript | 4.2.1. application/ecmascript | |||
Type name: application | Type name: application | |||
Subtype name: ecmascript | Subtype name: ecmascript | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 5, line 31 ¶ | skipping to change at page 6, line 21 ¶ | |||
implementations should use text/javascript as the only JavaScript/ | implementations should use text/javascript as the only JavaScript/ | |||
ECMAScript media type. The .mjs file extension signals that the | ECMAScript media type. The .mjs file extension signals that the | |||
file represents a JavaScript module. Execution environments that | file represents a JavaScript module. Execution environments that | |||
rely on file extensions to determine how to process inputs parse | rely on file extensions to determine how to process inputs parse | |||
.mjs files using the Module grammar of [ECMA-262]. | .mjs files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.2. application/javascript | 4.2.2. application/javascript | |||
Type name: application | Type name: application | |||
Subtype name: javascript | Subtype name: javascript | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 6, line 31 ¶ | skipping to change at page 7, line 21 ¶ | |||
implementations should use text/javascript as the only JavaScript/ | implementations should use text/javascript as the only JavaScript/ | |||
ECMAScript media type. The .mjs file extension signals that the | ECMAScript media type. The .mjs file extension signals that the | |||
file represents a JavaScript module. Execution environments that | file represents a JavaScript module. Execution environments that | |||
rely on file extensions to determine how to process inputs parse | rely on file extensions to determine how to process inputs parse | |||
.mjs files using the Module grammar of [ECMA-262]. | .mjs files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org>. | Change controller: IESG <iesg@ietf.org>. | |||
3.2.3. application/x-ecmascript | 4.2.3. application/x-ecmascript | |||
Type name: application | Type name: application | |||
Subtype name: x-ecmascript | Subtype name: x-ecmascript | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 7, line 31 ¶ | skipping to change at page 8, line 21 ¶ | |||
implementations should use text/javascript as the only JavaScript/ | implementations should use text/javascript as the only JavaScript/ | |||
ECMAScript media type. The .mjs file extension signals that the | ECMAScript media type. The .mjs file extension signals that the | |||
file represents a JavaScript module. Execution environments that | file represents a JavaScript module. Execution environments that | |||
rely on file extensions to determine how to process inputs parse | rely on file extensions to determine how to process inputs parse | |||
.mjs files using the Module grammar of [ECMA-262]. | .mjs files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.4. application/x-javascript | 4.2.4. application/x-javascript | |||
Type name: application | Type name: application | |||
Subtype name: x-javascript | Subtype name: x-javascript | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 8, line 31 ¶ | skipping to change at page 9, line 21 ¶ | |||
implementations should use text/javascript as the only JavaScript/ | implementations should use text/javascript as the only JavaScript/ | |||
ECMAScript media type. The .mjs file extension signals that the | ECMAScript media type. The .mjs file extension signals that the | |||
file represents a JavaScript module. Execution environments that | file represents a JavaScript module. Execution environments that | |||
rely on file extensions to determine how to process inputs parse | rely on file extensions to determine how to process inputs parse | |||
.mjs files using the Module grammar of [ECMA-262]. | .mjs files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.5. text/ecmascript | 4.2.5. text/ecmascript | |||
Type name: text | Type name: text | |||
Subtype name: ecmascript | Subtype name: ecmascript | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 9, line 31 ¶ | skipping to change at page 10, line 21 ¶ | |||
implementations should use text/javascript as the only JavaScript/ | implementations should use text/javascript as the only JavaScript/ | |||
ECMAScript media type. The .mjs file extension signals that the | ECMAScript media type. The .mjs file extension signals that the | |||
file represents a JavaScript module. Execution environments that | file represents a JavaScript module. Execution environments that | |||
rely on file extensions to determine how to process inputs parse | rely on file extensions to determine how to process inputs parse | |||
.mjs files using the Module grammar of [ECMA-262]. | .mjs files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.6. text/javascript1.0 | 4.2.6. text/javascript1.0 | |||
Type name: text | Type name: text | |||
Subtype name: javascript1.0 | Subtype name: javascript1.0 | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 10, line 31 ¶ | skipping to change at page 11, line 21 ¶ | |||
implementations should use text/javascript as the only JavaScript/ | implementations should use text/javascript as the only JavaScript/ | |||
ECMAScript media type. The .mjs file extension signals that the | ECMAScript media type. The .mjs file extension signals that the | |||
file represents a JavaScript module. Execution environments that | file represents a JavaScript module. Execution environments that | |||
rely on file extensions to determine how to process inputs parse | rely on file extensions to determine how to process inputs parse | |||
.mjs files using the Module grammar of [ECMA-262]. | .mjs files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.7. text/javascript1.1 | 4.2.7. text/javascript1.1 | |||
Type name: text | Type name: text | |||
Subtype name: javascript1.1 | Subtype name: javascript1.1 | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 11, line 31 ¶ | skipping to change at page 12, line 21 ¶ | |||
implementations should use text/javascript as the only JavaScript/ | implementations should use text/javascript as the only JavaScript/ | |||
ECMAScript media type. The .mjs file extension signals that the | ECMAScript media type. The .mjs file extension signals that the | |||
file represents a JavaScript module. Execution environments that | file represents a JavaScript module. Execution environments that | |||
rely on file extensions to determine how to process inputs parse | rely on file extensions to determine how to process inputs parse | |||
.mjs files using the Module grammar of [ECMA-262]. | .mjs files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.8. text/javascript1.2 | 4.2.8. text/javascript1.2 | |||
Type name: text | Type name: text | |||
Subtype name: javascript1.2 | Subtype name: javascript1.2 | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 12, line 31 ¶ | skipping to change at page 13, line 21 ¶ | |||
implementations should use text/javascript as the only JavaScript/ | implementations should use text/javascript as the only JavaScript/ | |||
ECMAScript media type. The .mjs file extension signals that the | ECMAScript media type. The .mjs file extension signals that the | |||
file represents a JavaScript module. Execution environments that | file represents a JavaScript module. Execution environments that | |||
rely on file extensions to determine how to process inputs parse | rely on file extensions to determine how to process inputs parse | |||
.mjs files using the Module grammar of [ECMA-262]. | .mjs files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.9. text/javascript1.3 | 4.2.9. text/javascript1.3 | |||
Type name: text | Type name: text | |||
Subtype name: javascript1.3 | Subtype name: javascript1.3 | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 13, line 31 ¶ | skipping to change at page 14, line 21 ¶ | |||
implementations should use text/javascript as the only JavaScript/ | implementations should use text/javascript as the only JavaScript/ | |||
ECMAScript media type. The .mjs file extension signals that the | ECMAScript media type. The .mjs file extension signals that the | |||
file represents a JavaScript module. Execution environments that | file represents a JavaScript module. Execution environments that | |||
rely on file extensions to determine how to process inputs parse | rely on file extensions to determine how to process inputs parse | |||
.mjs files using the Module grammar of [ECMA-262]. | .mjs files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.10. text/javascript1.4 | 4.2.10. text/javascript1.4 | |||
Type name: text | Type name: text | |||
Subtype name: javascript1.4 | Subtype name: javascript1.4 | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 14, line 31 ¶ | skipping to change at page 15, line 21 ¶ | |||
implementations should use text/javascript as the only JavaScript/ | implementations should use text/javascript as the only JavaScript/ | |||
ECMAScript media type. The .mjs file extension signals that the | ECMAScript media type. The .mjs file extension signals that the | |||
file represents a JavaScript module. Execution environments that | file represents a JavaScript module. Execution environments that | |||
rely on file extensions to determine how to process inputs parse | rely on file extensions to determine how to process inputs parse | |||
.mjs files using the Module grammar of [ECMA-262]. | .mjs files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.11. text/javascript1.5 | 4.2.11. text/javascript1.5 | |||
Type name: text | Type name: text | |||
Subtype name: javascript1.5 | Subtype name: javascript1.5 | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 15, line 31 ¶ | skipping to change at page 16, line 21 ¶ | |||
implementations should use text/javascript as the only JavaScript/ | implementations should use text/javascript as the only JavaScript/ | |||
ECMAScript media type. The .mjs file extension signals that the | ECMAScript media type. The .mjs file extension signals that the | |||
file represents a JavaScript module. Execution environments that | file represents a JavaScript module. Execution environments that | |||
rely on file extensions to determine how to process inputs parse | rely on file extensions to determine how to process inputs parse | |||
.mjs files using the Module grammar of [ECMA-262]. | .mjs files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.12. text/jscript | 4.2.12. text/jscript | |||
Type name: text | Type name: text | |||
Subtype name: jscript | Subtype name: jscript | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 16, line 29 ¶ | skipping to change at page 17, line 19 ¶ | |||
Restrictions on usage: The .mjs file extension signals that the file | Restrictions on usage: The .mjs file extension signals that the file | |||
represents a JavaScript module. Execution environments that rely | represents a JavaScript module. Execution environments that rely | |||
on file extensions to determine how to process inputs parse .mjs | on file extensions to determine how to process inputs parse .mjs | |||
files using the Module grammar of [ECMA-262]. | files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.13. text/livescript | 4.2.13. text/livescript | |||
Type name: text | Type name: text | |||
Subtype name: livescript | Subtype name: livescript | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 17, line 27 ¶ | skipping to change at page 18, line 16 ¶ | |||
Restrictions on usage: The .mjs file extension signals that the file | Restrictions on usage: The .mjs file extension signals that the file | |||
represents a JavaScript module. Execution environments that rely | represents a JavaScript module. Execution environments that rely | |||
on file extensions to determine how to process inputs parse .mjs | on file extensions to determine how to process inputs parse .mjs | |||
files using the Module grammar of [ECMA-262]. | files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.14. text/x-ecmascript | 4.2.14. text/x-ecmascript | |||
Type name: text | Type name: text | |||
Subtype name: x-ecmascript | Subtype name: x-ecmascript | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 18, line 15 ¶ | skipping to change at page 19, line 4 ¶ | |||
Magic number(s): n/a | Magic number(s): n/a | |||
File extension(s): .es, .mjs | File extension(s): .es, .mjs | |||
Macintosh File Type Code(s): TEXT | Macintosh File Type Code(s): TEXT | |||
Person & email address to contact for further information: See | Person & email address to contact for further information: See | |||
Author's Address section. | Author's Address section. | |||
Intended usage: OBSOLETE | Intended usage: OBSOLETE | |||
Restrictions on usage: The .mjs file extension signals that the file | Restrictions on usage: The .mjs file extension signals that the file | |||
represents a JavaScript module. Execution environments that rely | represents a JavaScript module. Execution environments that rely | |||
on file extensions to determine how to process inputs parse .mjs | on file extensions to determine how to process inputs parse .mjs | |||
files using the Module grammar of [ECMA-262]. | files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
3.2.15. text/x-javascript | 4.2.15. text/x-javascript | |||
Type name: text | Type name: text | |||
Subtype name: x-javascript | Subtype name: x-javascript | |||
Required parameters: none | Required parameters: none | |||
Optional parameters: charset, see section 4.1 of [RFC4329]. | Optional parameters: charset, see section 4.1 of [RFC4329]. | |||
Encoding considerations: Encoding is host dependent with differences | Encoding considerations: Encoding is host dependent with differences | |||
skipping to change at page 19, line 22 ¶ | skipping to change at page 20, line 11 ¶ | |||
Restrictions on usage: The .mjs file extension signals that the file | Restrictions on usage: The .mjs file extension signals that the file | |||
represents a JavaScript module. Execution environments that rely | represents a JavaScript module. Execution environments that rely | |||
on file extensions to determine how to process inputs parse .mjs | on file extensions to determine how to process inputs parse .mjs | |||
files using the Module grammar of [ECMA-262]. | files using the Module grammar of [ECMA-262]. | |||
Author: See Author's Address section. | Author: See Author's Address section. | |||
Change controller: IESG <iesg@ietf.org> | Change controller: IESG <iesg@ietf.org> | |||
4. References | 5. References | |||
4.1. Normative References | 5.1. Normative References | |||
[ECMA-262] | [ECMA-262] | |||
Ecma International, "Standard ECMA-262: ECMAScript | Ecma International, "Standard ECMA-262: ECMAScript | |||
Language Specification", August 2017, <https://ecma- | Language Specification", August 2017, <https://ecma- | |||
international.org/publications/standards/Ecma-262.htm>. | international.org/publications/standards/Ecma-262.htm>. | |||
[RFC4329] Hoehrmann, B., "Scripting Media Types", RFC 4329, | [RFC4329] Hoehrmann, B., "Scripting Media Types", RFC 4329, | |||
DOI 10.17487/RFC4329, April 2006, | DOI 10.17487/RFC4329, April 2006, | |||
<https://www.rfc-editor.org/info/rfc4329>. | <https://www.rfc-editor.org/info/rfc4329>. | |||
4.2. Informative References | 5.2. Informative References | |||
[HTML] WHATWG, "HTML Living Standard", August 2017, | [HTML] WHATWG, "HTML Living Standard", August 2017, | |||
<https://html.spec.whatwg.org/multipage/ | <https://html.spec.whatwg.org/multipage/ | |||
scripting.html#prepare-a-script>. | scripting.html#prepare-a-script>. | |||
[SPECTRE] Kocher, P., Fogh, A., Gerkin, D., Gruss, D., Haas, W., | ||||
Hamburg, M., Lipp, M., Mangard, S., Prescher, T., Schwarz, | ||||
M., and Y. Yarom, "Spectre Attacks: Exploiting Speculative | ||||
Execution", January 2018, | ||||
<https://arxiv.org/abs/1801.01203>. | ||||
[TC39-MIME-ISSUE] | [TC39-MIME-ISSUE] | |||
TC39, "Add `application/javascript+module` mime to remove | TC39, "Add `application/javascript+module` mime to remove | |||
ambiguity", August 2017, <https://web.archive.org/web/2017 | ambiguity", August 2017, <https://web.archive.org/web/2017 | |||
0814193912/https://github.com/tc39/ecma262/issues/322>. | 0814193912/https://github.com/tc39/ecma262/issues/322>. | |||
Appendix A. Acknowledgements | Appendix A. Acknowledgements | |||
The authors would like to thank Suresh Krishnan, Alexey Melnikov, | The authors would like to thank Suresh Krishnan, Alexey Melnikov, | |||
Mark Nottingham, James Snell, Adam Roach, and Allen Wirfs-Brock for | Mark Nottingham, James Snell, Adam Roach, and Allen Wirfs-Brock for | |||
their guidance throughout this process. | their guidance throughout this process. | |||
End of changes. 33 change blocks. | ||||
59 lines changed or deleted | 95 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |