tc39 / proposal-import-attributes

Proposal for syntax to import ES modules with assertions
https://tc39.es/proposal-import-attributes/
Apache License 2.0
599 stars 26 forks source link

Normative optional, legacy -> Deprecated #133

Closed nicolo-ribaudo closed 1 year ago

nicolo-ribaudo commented 1 year ago

PR preview: https://nicolo-ribaudo.github.io/proposal-import-assertions

As per the March 2023 TC39 meeting, this pull request changes the assert compatibility fallback from "Normative optional, legacy" to "Deprecated", with this description:

A conforming implementation of ECMAScript should not implement Deprecated subclauses, unless necessary for compatibility with existing applications that already run in such implementation before the deprecation of the given language feature. All of the language features and behaviours specified within Deprecated subclauses have one or more undesirable characteristics. However, their usage in existing applications currently prevents their removal from this specification. These features are not considered part of the core ECMAScript language. Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code.

(old description I first used) > A conforming implementation of ECMAScript should not implement Deprecated subclauses. All of the language features and behaviours specified within Deprecated subclauses have one or more undesirable characteristics. However, their usage in existing applications currently prevents their removal from this specification. These features are not considered part of the core ECMAScript language. Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code.

For comparison, the "Legacy" description is

A conforming implementation of ECMAScript must implement Legacy subclauses, unless they are also marked as Normative Optional. All of the language features and behaviours specified within Legacy subclauses have one or more undesirable characteristics. However, their continued usage in existing applications prevents their removal from this specification. These features are not considered part of the core ECMAScript language. Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code.

Additionally, I added two notes mentioning that removal of assert is being investigated.

cc @ljharb @msaboff

ljharb commented 1 year ago

cc @tc39/ecma262-editors and @syg in particular

ljharb commented 1 year ago

It'd be great to land this so i can review a spec that includes it :-)

michaelficarra commented 1 year ago

@ljharb We're gonna talk about it in editor call tomorrow.

nicolo-ribaudo commented 1 year ago

@tc39/ecma262-editors I pushed e1a16a2 based on yesterday's discussion.

Preview of this PR: https://nicolo-ribaudo.github.io/proposal-import-assertions

bakkot commented 1 year ago

Just published ecmarkup 16.2.0, which supports 1. [normative-optional, deprecated] Stuff step labels.

nicolo-ribaudo commented 1 year ago

Thanks, updated!

nicolo-ribaudo commented 1 year ago

@tc39/ecma262-editors I plan to merge this PR during the weekend, if there aren't other problems with the changes it introduces. I'd like to get the published spec text (https://tc39.es/proposal-import-attributes/) to its final form to facilitate reviews (https://github.com/tc39/proposal-import-attributes/issues/137).