idnits 2.17.1 draft-ietf-dispatch-javascript-mjs-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year (Using the creation date from RFC4329, updated by this document, for RFC5378 checks: 2001-09-24) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (October 31, 2019) is 1631 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 4329 (Obsoleted by RFC 9239) Summary: 1 error (**), 0 flaws (~~), 1 warning (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 DISPATCH M. Borins 3 Internet-Draft M. Bynens 4 Updates: 4329 (if approved) Google 5 Intended status: Informational M. Miller 6 Expires: May 3, 2020 Mozilla 7 B. Farias 8 October 31, 2019 10 ECMAScript Media Types Updates 11 draft-ietf-dispatch-javascript-mjs-05 13 Abstract 15 This document proposes updates to the ECMAScript media types, 16 superseding the existing registrations for "application/javascript" 17 and "text/javascript" by adding an additional extension and removing 18 usage warnings. This document updates RFC4329, "Scripting Media 19 Types". 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at https://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on May 3, 2020. 38 Copyright Notice 40 Copyright (c) 2019 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (https://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . 2 57 3. Security Considerations . . . . . . . . . . . . . . . . . . . 3 58 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3 59 4.1. Common Javascript Media Types . . . . . . . . . . . . . . 4 60 4.1.1. text/javascript . . . . . . . . . . . . . . . . . . . 4 61 4.2. Historic Javascript Media Types . . . . . . . . . . . . . 5 62 4.2.1. application/ecmascript . . . . . . . . . . . . . . . 5 63 4.2.2. application/javascript . . . . . . . . . . . . . . . 6 64 4.2.3. application/x-ecmascript . . . . . . . . . . . . . . 7 65 4.2.4. application/x-javascript . . . . . . . . . . . . . . 8 66 4.2.5. text/ecmascript . . . . . . . . . . . . . . . . . . . 9 67 4.2.6. text/javascript1.0 . . . . . . . . . . . . . . . . . 10 68 4.2.7. text/javascript1.1 . . . . . . . . . . . . . . . . . 11 69 4.2.8. text/javascript1.2 . . . . . . . . . . . . . . . . . 12 70 4.2.9. text/javascript1.3 . . . . . . . . . . . . . . . . . 13 71 4.2.10. text/javascript1.4 . . . . . . . . . . . . . . . . . 14 72 4.2.11. text/javascript1.5 . . . . . . . . . . . . . . . . . 15 73 4.2.12. text/jscript . . . . . . . . . . . . . . . . . . . . 16 74 4.2.13. text/livescript . . . . . . . . . . . . . . . . . . . 17 75 4.2.14. text/x-ecmascript . . . . . . . . . . . . . . . . . . 18 76 4.2.15. text/x-javascript . . . . . . . . . . . . . . . . . . 19 77 5. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 78 5.1. Normative References . . . . . . . . . . . . . . . . . . 20 79 5.2. Informative References . . . . . . . . . . . . . . . . . 20 80 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 20 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 83 1. Introduction 85 This document updates the existing media types for the ECMAScript 86 programming language. It supersedes the media types registrations in 87 [RFC4329] for "application/javascript" and "text/javascript". 89 2. Background 91 In order to formalize support for modular programs, [ECMA-262] 92 (starting with 6th Edition) defines two top-level goal symbols (or 93 roots to the abstract syntax tree) for the ECMAScript grammar: Module 94 and Script. The Script goal represents the more stand-alone 95 structure where the code executes in the global scope, while the 96 Module goal represents the module system built into ECMAScript 97 starting with 6th Edition. 99 This separation means that (in the absence of additional information) 100 there are two possible interpretations for any given ECMAScript 101 Source Text. The TC39 standards body for ECMAScript has determined 102 that media types are outside of their scope of work 103 [TC39-MIME-ISSUE]. 105 It is not possible to fully determine if a Source Text of ECMAScript 106 is meant to be parsed in the Module or Script grammar goals based 107 upon content alone. Therefore, scripting environments must use out 108 of band information in order to determine what goal a Source Text 109 should be treated as. To this end some scripting environments have 110 chosen to adopt a new file extension of .mjs for determining the goal 111 of a given Source Text. 113 3. Security Considerations 115 Module scripts in ECMAScript can request the fetching and processing 116 of additional scripts, called importing. Implementations that 117 support modules need to ensure these scripts are processed the same 118 as scripts processed directly. Further, there may be additional 119 privacy and security concerns depending on the location(s) the 120 original script and its imported modules are obtained from. For 121 instance, a scripted obtained from "host-a.example" could request to 122 import a script from "host-b.example", which could expose information 123 about the executing environment (e.g., IP address) to "host- 124 b.example". 126 With the addition of SharedArrayBuffer objects in ECMAScript version 127 8, it may be possible to implement a high-resolution timer which 128 could lead to certain types of timing and side-channel attacks (e.g., 129 [SPECTRE]). Implementations may wish to take steps to mitigate this 130 concern, such as disabling or removing support for SharedArrayBuffer 131 objects, or take additional steps to ensure access to this shared 132 memory is only accessible between execution contexts that have some 133 form of mutual trust. 135 All other security considerations from [RFC4329] still apply. 137 4. IANA Considerations 139 The media type registrations herein are divided into two major 140 categories: the sole media type "text/javascript" which is now in 141 common usage, and all of the media types that are obsolete. 143 For both categories, The ECMAScript media types are to be updated to 144 point to a non-vendor specific standard undated specification of 145 ECMAScript. In addition, a new file extension of .mjs is to be added 146 to the list of file extensions with the restriction that it must 147 correspond to the Module grammar of [ECMA-262]. Finally, the [HTML] 148 specification uses "text/javascript" as the default media type of 149 ECMAScript when preparing script tags; therefore, "text/javascript" 150 intended usage is to be moved from OBSOLETE to COMMON. 152 4.1. Common Javascript Media Types 154 4.1.1. text/javascript 156 Type name: text 158 Subtype name: javascript 160 Required parameters: none 162 Optional parameters: charset, see section 4.1 of [RFC4329]. 164 Encoding considerations: Encoding is host dependent with differences 165 in byte order marks, the charset parameter, and text 166 preprocessing. 168 Security considerations: See section 5 of [RFC4329]. 170 Interoperability considerations: See notes in various sections of 171 [RFC4329]. 173 Published specification: [[RFCXXXX]] 175 Applications which use this media type: Script interpreters as 176 discussed in [RFC4329]. 178 Additional information: 180 Magic number(s): n/a 182 File extension(s): .js, .mjs 184 Macintosh File Type Code(s): TEXT 186 Person & email address to contact for further information: See 187 Author's Address section. 189 Intended usage: COMMON 190 Restrictions on usage: The .mjs file extension signals that the file 191 represents a JavaScript module. Execution environments that rely 192 on file extensions to determine how to process inputs parse .mjs 193 files using the Module grammar of [ECMA-262]. 195 Author: See Author's Address section. 197 Change controller: IESG 199 4.2. Historic Javascript Media Types 201 The following media types are added or updated for historical 202 purposes. All herein have an intended usage of OBSOLETE, and are not 203 expected to be in use with modern implementations. 205 4.2.1. application/ecmascript 207 Type name: application 209 Subtype name: ecmascript 211 Required parameters: none 213 Optional parameters: charset, see section 4.1 of [RFC4329]. 215 Encoding considerations: Encoding is host dependent with differences 216 in byte order marks, the charset parameter, and text 217 preprocessing. 219 Security considerations: See section 5 of [RFC4329]. 221 Interoperability considerations: See notes in various sections of 222 [RFC4329]. 224 Published specification: [[RFCXXXX]] 226 Applications which use this media type: Script interpreters as 227 discussed in [RFC4329]. 229 Additional information: 231 Magic number(s): n/a 233 File extension(s): .es, .mjs 235 Macintosh File Type Code(s): TEXT 237 Person & email address to contact for further information: See 238 Author's Address section. 240 Intended usage: OBSOLETE 242 Restrictions on usage: This media type is obsolete; current 243 implementations should use text/javascript as the only JavaScript/ 244 ECMAScript media type. The .mjs file extension signals that the 245 file represents a JavaScript module. Execution environments that 246 rely on file extensions to determine how to process inputs parse 247 .mjs files using the Module grammar of [ECMA-262]. 249 Author: See Author's Address section. 251 Change controller: IESG 253 4.2.2. application/javascript 255 Type name: application 257 Subtype name: javascript 259 Required parameters: none 261 Optional parameters: charset, see section 4.1 of [RFC4329]. 263 Encoding considerations: Encoding is host dependent with differences 264 in byte order marks, the charset parameter, and text 265 preprocessing. 267 Security considerations: See section 5 of [RFC4329]. 269 Interoperability considerations: See notes in various sections of 270 [RFC4329]. 272 Published specification: [[RFCXXXX]] 274 Applications which use this media type: Script interpreters as 275 discussed in [RFC4329]. 277 Additional information: 279 Magic number(s): n/a 281 File extension(s): .js, .mjs 283 Macintosh File Type Code(s): TEXT 285 Person & email address to contact for further information: See 286 Author's Address section. 288 Intended usage: OBSOLETE 290 Restrictions on usage: This media type is obsolete; current 291 implementations should use text/javascript as the only JavaScript/ 292 ECMAScript media type. The .mjs file extension signals that the 293 file represents a JavaScript module. Execution environments that 294 rely on file extensions to determine how to process inputs parse 295 .mjs files using the Module grammar of [ECMA-262]. 297 Author: See Author's Address section. 299 Change controller: IESG . 301 4.2.3. application/x-ecmascript 303 Type name: application 305 Subtype name: x-ecmascript 307 Required parameters: none 309 Optional parameters: charset, see section 4.1 of [RFC4329]. 311 Encoding considerations: Encoding is host dependent with differences 312 in byte order marks, the charset parameter, and text 313 preprocessing. 315 Security considerations: See section 5 of [RFC4329]. 317 Interoperability considerations: See notes in various sections of 318 [RFC4329]. 320 Published specification: [[RFCXXXX]] 322 Applications which use this media type: Script interpreters as 323 discussed in [RFC4329]. 325 Additional information: 327 Magic number(s): n/a 329 File extension(s): .es, .mjs 331 Macintosh File Type Code(s): TEXT 333 Person & email address to contact for further information: See 334 Author's Address section. 336 Intended usage: OBSOLETE 338 Restrictions on usage: This media type is obsolete; current 339 implementations should use text/javascript as the only JavaScript/ 340 ECMAScript media type. The .mjs file extension signals that the 341 file represents a JavaScript module. Execution environments that 342 rely on file extensions to determine how to process inputs parse 343 .mjs files using the Module grammar of [ECMA-262]. 345 Author: See Author's Address section. 347 Change controller: IESG 349 4.2.4. application/x-javascript 351 Type name: application 353 Subtype name: x-javascript 355 Required parameters: none 357 Optional parameters: charset, see section 4.1 of [RFC4329]. 359 Encoding considerations: Encoding is host dependent with differences 360 in byte order marks, the charset parameter, and text 361 preprocessing. 363 Security considerations: See section 5 of [RFC4329]. 365 Interoperability considerations: See notes in various sections of 366 [RFC4329]. 368 Published specification: [[RFCXXXX]] 370 Applications which use this media type: Script interpreters as 371 discussed in [RFC4329]. 373 Additional information: 375 Magic number(s): n/a 377 File extension(s): .js, .mjs 379 Macintosh File Type Code(s): TEXT 381 Person & email address to contact for further information: See 382 Author's Address section. 384 Intended usage: OBSOLETE 386 Restrictions on usage: This media type is obsolete; current 387 implementations should use text/javascript as the only JavaScript/ 388 ECMAScript media type. The .mjs file extension signals that the 389 file represents a JavaScript module. Execution environments that 390 rely on file extensions to determine how to process inputs parse 391 .mjs files using the Module grammar of [ECMA-262]. 393 Author: See Author's Address section. 395 Change controller: IESG 397 4.2.5. text/ecmascript 399 Type name: text 401 Subtype name: ecmascript 403 Required parameters: none 405 Optional parameters: charset, see section 4.1 of [RFC4329]. 407 Encoding considerations: Encoding is host dependent with differences 408 in byte order marks, the charset parameter, and text 409 preprocessing. 411 Security considerations: See section 5 of [RFC4329]. 413 Interoperability considerations: See notes in various sections of 414 [RFC4329]. 416 Published specification: [[RFCXXXX]] 418 Applications which use this media type: Script interpreters as 419 discussed in [RFC4329]. 421 Additional information: 423 Magic number(s): n/a 425 File extension(s): .es, .mjs 427 Macintosh File Type Code(s): TEXT 429 Person & email address to contact for further information: See 430 Author's Address section. 432 Intended usage: OBSOLETE 434 Restrictions on usage: This media type is obsolete; current 435 implementations should use text/javascript as the only JavaScript/ 436 ECMAScript media type. The .mjs file extension signals that the 437 file represents a JavaScript module. Execution environments that 438 rely on file extensions to determine how to process inputs parse 439 .mjs files using the Module grammar of [ECMA-262]. 441 Author: See Author's Address section. 443 Change controller: IESG 445 4.2.6. text/javascript1.0 447 Type name: text 449 Subtype name: javascript1.0 451 Required parameters: none 453 Optional parameters: charset, see section 4.1 of [RFC4329]. 455 Encoding considerations: Encoding is host dependent with differences 456 in byte order marks, the charset parameter, and text 457 preprocessing. 459 Security considerations: See section 5 of [RFC4329]. 461 Interoperability considerations: See notes in various sections of 462 [RFC4329]. 464 Published specification: [[RFCXXXX]] 466 Applications which use this media type: Script interpreters as 467 discussed in [RFC4329]. 469 Additional information: 471 Magic number(s): n/a 473 File extension(s): .js, .mjs 475 Macintosh File Type Code(s): TEXT 477 Person & email address to contact for further information: See 478 Author's Address section. 480 Intended usage: OBSOLETE 482 Restrictions on usage: This media type is obsolete; current 483 implementations should use text/javascript as the only JavaScript/ 484 ECMAScript media type. The .mjs file extension signals that the 485 file represents a JavaScript module. Execution environments that 486 rely on file extensions to determine how to process inputs parse 487 .mjs files using the Module grammar of [ECMA-262]. 489 Author: See Author's Address section. 491 Change controller: IESG 493 4.2.7. text/javascript1.1 495 Type name: text 497 Subtype name: javascript1.1 499 Required parameters: none 501 Optional parameters: charset, see section 4.1 of [RFC4329]. 503 Encoding considerations: Encoding is host dependent with differences 504 in byte order marks, the charset parameter, and text 505 preprocessing. 507 Security considerations: See section 5 of [RFC4329]. 509 Interoperability considerations: See notes in various sections of 510 [RFC4329]. 512 Published specification: [[RFCXXXX]] 514 Applications which use this media type: Script interpreters as 515 discussed in [RFC4329]. 517 Additional information: 519 Magic number(s): n/a 521 File extension(s): .js, .mjs 523 Macintosh File Type Code(s): TEXT 525 Person & email address to contact for further information: See 526 Author's Address section. 528 Intended usage: OBSOLETE 530 Restrictions on usage: This media type is obsolete; current 531 implementations should use text/javascript as the only JavaScript/ 532 ECMAScript media type. The .mjs file extension signals that the 533 file represents a JavaScript module. Execution environments that 534 rely on file extensions to determine how to process inputs parse 535 .mjs files using the Module grammar of [ECMA-262]. 537 Author: See Author's Address section. 539 Change controller: IESG 541 4.2.8. text/javascript1.2 543 Type name: text 545 Subtype name: javascript1.2 547 Required parameters: none 549 Optional parameters: charset, see section 4.1 of [RFC4329]. 551 Encoding considerations: Encoding is host dependent with differences 552 in byte order marks, the charset parameter, and text 553 preprocessing. 555 Security considerations: See section 5 of [RFC4329]. 557 Interoperability considerations: See notes in various sections of 558 [RFC4329]. 560 Published specification: [[RFCXXXX]] 562 Applications which use this media type: Script interpreters as 563 discussed in [RFC4329]. 565 Additional information: 567 Magic number(s): n/a 569 File extension(s): .js, .mjs 571 Macintosh File Type Code(s): TEXT 573 Person & email address to contact for further information: See 574 Author's Address section. 576 Intended usage: OBSOLETE 578 Restrictions on usage: This media type is obsolete; current 579 implementations should use text/javascript as the only JavaScript/ 580 ECMAScript media type. The .mjs file extension signals that the 581 file represents a JavaScript module. Execution environments that 582 rely on file extensions to determine how to process inputs parse 583 .mjs files using the Module grammar of [ECMA-262]. 585 Author: See Author's Address section. 587 Change controller: IESG 589 4.2.9. text/javascript1.3 591 Type name: text 593 Subtype name: javascript1.3 595 Required parameters: none 597 Optional parameters: charset, see section 4.1 of [RFC4329]. 599 Encoding considerations: Encoding is host dependent with differences 600 in byte order marks, the charset parameter, and text 601 preprocessing. 603 Security considerations: See section 5 of [RFC4329]. 605 Interoperability considerations: See notes in various sections of 606 [RFC4329]. 608 Published specification: [[RFCXXXX]] 610 Applications which use this media type: Script interpreters as 611 discussed in [RFC4329]. 613 Additional information: 615 Magic number(s): n/a 617 File extension(s): .js, .mjs 619 Macintosh File Type Code(s): TEXT 621 Person & email address to contact for further information: See 622 Author's Address section. 624 Intended usage: OBSOLETE 626 Restrictions on usage: This media type is obsolete; current 627 implementations should use text/javascript as the only JavaScript/ 628 ECMAScript media type. The .mjs file extension signals that the 629 file represents a JavaScript module. Execution environments that 630 rely on file extensions to determine how to process inputs parse 631 .mjs files using the Module grammar of [ECMA-262]. 633 Author: See Author's Address section. 635 Change controller: IESG 637 4.2.10. text/javascript1.4 639 Type name: text 641 Subtype name: javascript1.4 643 Required parameters: none 645 Optional parameters: charset, see section 4.1 of [RFC4329]. 647 Encoding considerations: Encoding is host dependent with differences 648 in byte order marks, the charset parameter, and text 649 preprocessing. 651 Security considerations: See section 5 of [RFC4329]. 653 Interoperability considerations: See notes in various sections of 654 [RFC4329]. 656 Published specification: [[RFCXXXX]] 658 Applications which use this media type: Script interpreters as 659 discussed in [RFC4329]. 661 Additional information: 663 Magic number(s): n/a 665 File extension(s): .js, .mjs 667 Macintosh File Type Code(s): TEXT 669 Person & email address to contact for further information: See 670 Author's Address section. 672 Intended usage: OBSOLETE 674 Restrictions on usage: This media type is obsolete; current 675 implementations should use text/javascript as the only JavaScript/ 676 ECMAScript media type. The .mjs file extension signals that the 677 file represents a JavaScript module. Execution environments that 678 rely on file extensions to determine how to process inputs parse 679 .mjs files using the Module grammar of [ECMA-262]. 681 Author: See Author's Address section. 683 Change controller: IESG 685 4.2.11. text/javascript1.5 687 Type name: text 689 Subtype name: javascript1.5 691 Required parameters: none 693 Optional parameters: charset, see section 4.1 of [RFC4329]. 695 Encoding considerations: Encoding is host dependent with differences 696 in byte order marks, the charset parameter, and text 697 preprocessing. 699 Security considerations: See section 5 of [RFC4329]. 701 Interoperability considerations: See notes in various sections of 702 [RFC4329]. 704 Published specification: [[RFCXXXX]] 706 Applications which use this media type: Script interpreters as 707 discussed in [RFC4329]. 709 Additional information: 711 Magic number(s): n/a 713 File extension(s): .js, .mjs 715 Macintosh File Type Code(s): TEXT 717 Person & email address to contact for further information: See 718 Author's Address section. 720 Intended usage: OBSOLETE 722 Restrictions on usage: This media type is obsolete; current 723 implementations should use text/javascript as the only JavaScript/ 724 ECMAScript media type. The .mjs file extension signals that the 725 file represents a JavaScript module. Execution environments that 726 rely on file extensions to determine how to process inputs parse 727 .mjs files using the Module grammar of [ECMA-262]. 729 Author: See Author's Address section. 731 Change controller: IESG 733 4.2.12. text/jscript 735 Type name: text 737 Subtype name: jscript 739 Required parameters: none 741 Optional parameters: charset, see section 4.1 of [RFC4329]. 743 Encoding considerations: Encoding is host dependent with differences 744 in byte order marks, the charset parameter, and text 745 preprocessing. 747 Security considerations: See section 5 of [RFC4329]. 749 Interoperability considerations: See notes in various sections of 750 [RFC4329]. 752 Published specification: [[RFCXXXX]] 754 Applications which use this media type: Script interpreters as 755 discussed in [RFC4329]. 757 Additional information: 759 Magic number(s): n/a 761 File extension(s): .js, .mjs 763 Macintosh File Type Code(s): TEXT 765 Person & email address to contact for further information: See 766 Author's Address section. 768 Intended usage: OBSOLETE 770 Restrictions on usage: The .mjs file extension signals that the file 771 represents a JavaScript module. Execution environments that rely 772 on file extensions to determine how to process inputs parse .mjs 773 files using the Module grammar of [ECMA-262]. 775 Author: See Author's Address section. 777 Change controller: IESG 779 4.2.13. text/livescript 781 Type name: text 783 Subtype name: livescript 785 Required parameters: none 787 Optional parameters: charset, see section 4.1 of [RFC4329]. 789 Encoding considerations: Encoding is host dependent with differences 790 in byte order marks, the charset parameter, and text 791 preprocessing. 793 Security considerations: See section 5 of [RFC4329]. 795 Interoperability considerations: See notes in various sections of 796 [RFC4329]. 798 Published specification: [[RFCXXXX]] 800 Applications which use this media type: Script interpreters as 801 discussed in [RFC4329]. 803 Additional information: 805 Magic number(s): n/a 807 File extension(s): .js, .mjs 809 Macintosh File Type Code(s): TEXT 811 Person & email address to contact for further information: See 812 Author's Address section. 814 Intended usage: OBSOLETE 816 Restrictions on usage: The .mjs file extension signals that the file 817 represents a JavaScript module. Execution environments that rely 818 on file extensions to determine how to process inputs parse .mjs 819 files using the Module grammar of [ECMA-262]. 821 Author: See Author's Address section. 823 Change controller: IESG 825 4.2.14. text/x-ecmascript 827 Type name: text 829 Subtype name: x-ecmascript 831 Required parameters: none 833 Optional parameters: charset, see section 4.1 of [RFC4329]. 835 Encoding considerations: Encoding is host dependent with differences 836 in byte order marks, the charset parameter, and text 837 preprocessing. 839 Security considerations: See section 5 of [RFC4329]. 841 Interoperability considerations: See notes in various sections of 842 [RFC4329]. 844 Published specification: [[RFCXXXX]] 846 Applications which use this media type: Script interpreters as 847 discussed in [RFC4329]. 849 Additional information: 851 Magic number(s): n/a 853 File extension(s): .es, .mjs 855 Macintosh File Type Code(s): TEXT 857 Person & email address to contact for further information: See 858 Author's Address section. 860 Intended usage: OBSOLETE 861 Restrictions on usage: The .mjs file extension signals that the file 862 represents a JavaScript module. Execution environments that rely 863 on file extensions to determine how to process inputs parse .mjs 864 files using the Module grammar of [ECMA-262]. 866 Author: See Author's Address section. 868 Change controller: IESG 870 4.2.15. text/x-javascript 872 Type name: text 874 Subtype name: x-javascript 876 Required parameters: none 878 Optional parameters: charset, see section 4.1 of [RFC4329]. 880 Encoding considerations: Encoding is host dependent with differences 881 in byte order marks, the charset parameter, and text 882 preprocessing. 884 Security considerations: See section 5 of [RFC4329]. 886 Interoperability considerations: See notes in various sections of 887 [RFC4329]. 889 Published specification: [[RFCXXXX]] 891 Applications which use this media type: Script interpreters as 892 discussed in [RFC4329]. 894 Additional information: 896 Magic number(s): n/a 898 File extension(s): .js, .mjs 900 Macintosh File Type Code(s): TEXT 902 Person & email address to contact for further information: See 903 Author's Address section. 905 Intended usage: OBSOLETE 907 Restrictions on usage: The .mjs file extension signals that the file 908 represents a JavaScript module. Execution environments that rely 909 on file extensions to determine how to process inputs parse .mjs 910 files using the Module grammar of [ECMA-262]. 912 Author: See Author's Address section. 914 Change controller: IESG 916 5. References 918 5.1. Normative References 920 [ECMA-262] 921 Ecma International, "Standard ECMA-262: ECMAScript 922 Language Specification", August 2017, . 925 [RFC4329] Hoehrmann, B., "Scripting Media Types", RFC 4329, 926 DOI 10.17487/RFC4329, April 2006, 927 . 929 5.2. Informative References 931 [HTML] WHATWG, "HTML Living Standard", August 2017, 932 . 935 [SPECTRE] Kocher, P., Fogh, A., Gerkin, D., Gruss, D., Haas, W., 936 Hamburg, M., Lipp, M., Mangard, S., Prescher, T., Schwarz, 937 M., and Y. Yarom, "Spectre Attacks: Exploiting Speculative 938 Execution", January 2018, 939 . 941 [TC39-MIME-ISSUE] 942 TC39, "Add `application/javascript+module` mime to remove 943 ambiguity", August 2017, . 946 Appendix A. Acknowledgements 948 The authors would like to thank Suresh Krishnan, Alexey Melnikov, 949 Mark Nottingham, James Snell, Adam Roach, and Allen Wirfs-Brock for 950 their guidance throughout this process. 952 Authors' Addresses 953 Myles Borins 954 Google 956 Email: mylesborins@google.com 958 Mathias Bynens 959 Google 961 Email: mths@google.com 963 Matthew A. Miller 964 Mozilla 966 Email: linuxwolf+ietf@outer-planes.net 968 Bradley Farias 970 Email: bradley.meck@gmail.com