decorators の歴史
TC39 decorators propsal の歴史
Legacy decorators / Experimental decorators
最初に Yehuda Katz により提案されたデコレータ。提案当初はクラスの要素の評価順などが定まっていなかったが、後にクラスの要素の評価順が決まるに従って、当初の提案ではカバーできない範囲が露見したためリジェクトされた。
リジェクトされた際に Stage 2 から Stage 1 に落とされた
Previous stage 2 decorators
Legacy decorators で考慮不足とされた点を修正した提案。この改定によって再度 Stage 2 に上がった。
「正しさ」を追求しすぎたために、重厚になりすぎ、1) transpile されたコードが巨大になった 2) JIT パフォーマンスに懸念が生じたなどの理由により却下された。
Static decorators
Previous stage 2 decorators のトランスパイルの問題とパフォーマンスの問題を解決しようとした提案。問題の解決手段としてデコレータ専用の新たな名前空間を導入したが、そのことで新たな実装上・トランスパイル上の問題が生じて却下された。
Simplfieid decorators <- Current proposal
Legacy decorators の方針に立ち返り、Legacy decorators よりも出来る事を更に減らして、パフォーマンス懸念が生じないにするというアイデアのデコレータ。現在検討中。
議事録