公開日: 2015-07-26 変更日: 2015-12-06 Download PDF

Visualize TC39 Process

TC39によるECMAScript策定プロセス


詳しくはTC39 Process - Google ドキュメントを参照


TC39 Process :train:

Stageは5段階

  • 0 Stawman
  • 1 Proposal
  • 2 Draft
  • 3 Candidate
  • 4 Finished

毎年 3月と9月にstage4なったものを取り入れたものを新しいECMAScriptとする


#DEMO

fit img

azu.github.io/tc39-svg/


Stage 0: Stawman

  • アイデア

Stage 1: Proposal

  • プロポーサルの目的や解決方法を示す
  • Polyfillやデモ等を用いて解説する

Stage 2: Draft

  • いわゆるドラフト
  • ECMAScript標準と同じルールでAPIや構文、セマンティックについて説明していなければならない
    • 仕様書と同じ記法でプロポーサルを書き直す

Stage 3: Candidate

  • 設計は完了した状態
  • 実装者からフィードバックを求めて改善をする状態
  • レビューアはその仕様策定者以外ならだれでもなれるが専門的な知識を持っている必要がある

Stage 4: Finished

  • ECMAScriptへ取り込まれる準備が完了したことを示す状態
  • 2つの実装がテスト(tc39/test262)をパスしてる状態

Stage up

  • Stage++するかは、2ヶ月ごとのTC39のミーティングで決まる
    • tc39-notes
  • 逆算すれば、Stage 0のものがStage4になるまで8ヶ月かかる
    • Stage 1から始めるものもある

ES2016(想像上の話)

  • おそらくES2016までにStage 4となるものはない
    • tc39/ecma262
  • ES2015 == ES2016
  • ES2016 == ISO/IEC 16262:2016
  • 多分、perhaps

azu.github.io/tc39-svg/の中身


SVG + React

inline


SVG on React

  • SVGの要素をReact Componentに書ける
  • 縮尺の問題はd3-scaleをコンポーネントに渡す

inline d3-scale


React + d3-scale

  • コンポーネントがステートレスになる
  • 幅、高さ その領域の相対座標計算機(range)を渡して描画
var ECMAXRange = linear().domain(TenPercent).range([500, 800]);
var ECMAYRange = linear().domain(TenPercent).range([0, 500]);
<ECMAScript versionName={`ECMAScript ${this.state.beginYear}`}
    completeSpecList={completeSpecList}
    width={300} height={500}
    xRange={ECMAXRange} yRange={ECMAYRange}/>

#A Proposal

  • ES nextの策定プロセスを分かりやすくまとめた記事 · Issue #57 · azu/azu