Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ECMAScript 2022の対応 #1337

Closed
14 of 17 tasks
azu opened this issue Jun 28, 2021 · 11 comments · Fixed by #1432
Closed
14 of 17 tasks

ECMAScript 2022の対応 #1337

azu opened this issue Jun 28, 2021 · 11 comments · Fixed by #1432
Labels
Lang: ES2022 ECMAScript 2022

Comments

@azu
Copy link
Collaborator

azu commented Jun 28, 2021

ECMAScript 2022対応のmeta issueです。

proposals/finished-proposals.md at master · tc39/proposals

やりかた

  • 検討リストから対応するべきかを決める
  • 対応するものは別途Issue化する
  • 対応する
  • すべて対応したら book.js を更新

スケジュール

  • 1月: 検討する
  • 2月 ~ 5月: 実装
  • 6月: ES2022の正式リリースと合わせて公開

検討リスト

チェックが入ってるものは対応が必要。
入ってないものは、強いユースケースがあったら追加で対応するけど、基本はしない。

対応リスト

実際に対応するリスト

過去

@azu azu added the Lang: ES2022 ECMAScript 2022 label Jun 28, 2021
@azu azu changed the title ECMAScript 2021対応 ECMAScript 2022対応 Jun 28, 2021
@azu
Copy link
Collaborator Author

azu commented Dec 24, 2021

Class Fields

これは対応する必要がある

  • Class Fields
  • Private Fields
    • Ergonomic brand checks for Private Fields
    • privateはないって書いてた気がするので、これを書き換える
  • Static Fields
  • Static Blocks(これは微妙?)

関連

  • Todoのユースケースなどで _ prefixを使ってた部分はPrivate Fieldsに変更する

やる順番

  • TodoのユースケースをES2022に対応する
  • ユースケースでの使い方を見ながら、クラスの章を対応する

@azu
Copy link
Collaborator Author

azu commented Dec 24, 2021

RegExp Match Indices

  • dフラグと言う概念が増えてる
  • indexとlastIindexはほぼこれでカバーできる
const [start, end] = [
    match.index+1,
    match.index+match[0].length-1,
]; 

みたいなイディオムはもういらなくなってる。
ちょっとどうするかは迷いどころ。
パフォーマンスのためopt-inになってるので、なんかaddtionalな立ち位置とした方が良いのかも

@azu
Copy link
Collaborator Author

azu commented Dec 24, 2021

Top-level await proposal

対応がいる。

あんまりユースケースでは使ってないので、詳しくは触れないかも。
CDNとかDynamic Importと合わせた場合 と コンソールが一番のユースケースな気はする。

@azu
Copy link
Collaborator Author

azu commented Dec 24, 2021

Error Cause

https://jsprimer.net/basic/error-try-catch/ にはエラーの継承的な話はない。
try-catchで引き継ぐようなケースも書かれてない。

https://jsprimer.net/basic/error-try-catch/#console.error でスタックトレース的には若干関係がある。
https://jsprimer.net/use-case/ajaxapp/promise/ でエラーの意味づけをするのには使える。

今のところ説明するべきかと言うとちょっと微妙。
もう少し複雑なエラーのケースがないとなんか実感しにくい感じがする

@azu
Copy link
Collaborator Author

azu commented Dec 24, 2021

Object.hasOwn

これは Object#hasOwnProperty を完全に置き換えるものなので、説明する。

Refs: isNaN https://jsprimer.net/basic/implicit-coercion/#nan-is-number-type

@azu
Copy link
Collaborator Author

azu commented Dec 24, 2021

.at()

追加する。

基本的に length - 1.at() に置き換える。

DOM APIについては、標準化失敗した気がするし、触れなくて良い気がする。

https://github.com/tc39/proposal-relative-indexing-method#dom-justifications
https://developer.mozilla.org/ja/docs/Web/API/NodeList/item

@azu

This comment was marked as outdated.

@azu
Copy link
Collaborator Author

azu commented Jan 2, 2022

進め方

それぞれのIssueごとに、

  • 書籍で関連する箇所を一覧する(Proposalの表現置き換えできそう、ここで言及した方が良さそう = 既存の変更箇所)
  • そのProposalの主なユースケースを調べる(ユースケースを調べて、これは紹介した方がいいとする箇所 = 新規の追加箇所)
  • 関連する箇所をどう置き換えるかを検討する(既存の変更と新規の追加を総合的に見る)
  • 書き換える、追加する
  • レビューする、マージする

という流れです。
おそらく対応するProposalはIssueを作ってあるので、興味ある人いたらコメントしてください。

これも対応した方が良さそうとかあったら同じくコメントください。
レビューしたい!という人がいたら、このコメントに絵文字リアクションしてください。
(PR作るときにmentionします)

過去の事例も参考になります。

@azu
Copy link
Collaborator Author

azu commented Jan 6, 2022

@azu azu pinned this issue Feb 5, 2022
@azu
Copy link
Collaborator Author

azu commented Mar 28, 2022

@azu
Copy link
Collaborator Author

azu commented May 31, 2022

#1418 で対応は一応完了。
あとは、 Node ESMのをどうするかぐらいか

@azu azu closed this as completed in #1432 Jun 22, 2022
@azu azu unpinned this issue Jul 14, 2022
@azu azu mentioned this issue Apr 29, 2023
9 tasks
@azu azu changed the title ECMAScript 2022対応 ECMAScript 2022の対応 Apr 29, 2023
@azu azu mentioned this issue Dec 10, 2023
14 tasks
@azu azu mentioned this issue Feb 10, 2024
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Lang: ES2022 ECMAScript 2022
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant