#tc39_study - connpassのアウトラインメモ。

littedan “how tc39 works ?”

  • TC39のミーティング

  • Q. QuickJSが中に入ってたけど、Implementationsとして認識される基準って何? A. 基準と特に決まってない。あえてぼかしてる。 Stage five by littledan · Pull Request #16 · tc39/process-document

  • Q: microsoft がchakra coreをやめることで2つ以上のブラウザの実装に関してどう変わっていくの?

    A. あんまりChakraCoreが新しいもの実装してなかったのであんまり変わらない

  • Q. Feedbackって実際どうやってどういうふうに送るのがいいの?

    A. オープンなので色んな面のフィードバックあるといいと思うよ。

Leko Hashbang Grammar

  • スライド: https://gist.github.com/Leko/ea379ba259e90ea9d2b33ac0e8bf19ff
  • #! について
  • #!/usr/bin/env node みたいなのが行頭に書くとコマンドとして実行できる
  • Node.jsはコードとして評価する前にshbangを取り除いている
  • そのままコードを評価できるようにECMAScriptの仕様にいれようとう話
  • V8には既に入ってていてNode.jsは使ってる

hiroppy top level await

  • Top-Levelでawaitを書ける
  • cosnt dynamic = await import("./file.js")みたいにいきなり書ける
  • Variantsでどう処理をしていくかを決めていく
    • A: 順番に評価する
    • B: Promise.all的に実行される
    • C: x
  • Top-level await · V8を見る
  • Top-Level awaitによって循環参照のデットロックが発生するようになった
  • webpack@next

otolab WeakRefs

  • GCを妨げないRef
  • new WeakRef
  • ref.deref() 同じスレッドならなんど読んでも同じものが変える
  • Finalization
    • 参照が開放されたときに呼ばれるかもしれない処理

Leko Nullish coalescing Operator

  • ?? null undefinedだけ弾いてくれる

brn0227 throw expressions

likr New Set methods

  • Setに色々メソッドが増える

antidotech iterator helpers

  • コレクションのlazyなメソッドを追加するInterface
  • Asyncなmapとか
  • よく見る非同期コレクション(色んな言語とかパッケージを参照にしてる)

haormauyraa String.prototype.replaceAll

sasurau4 Temporal

  • Dateの代わり
  • Moment
  • Documentがout of dateになってる

natural_clar BigInt

  • Danさんが話してた
  • 使いましょう

kt3k decorators

  • @hoge
  • デコレータ
  • 長い歴史があった
  • BabelとかTypeScriptとかに入ったのは素朴なデコレータ
    • クラスの中の評価で詰まって止まっった
  • Descriptor-based デコレータ
    • Babel 7.1で入ったやつ
    • 複雑化した
    • Transpilerしたら巨大なコードができた

teatwo realms

sottar Array.isTemplateObject

  • Stage 2
  • タグ付きテンプレートリテラルの引数をTrustedかを判定する関数
  • Trusted Types起因で提案された

Leko Explicit Resource Management

  • try...resource構文
  • disposeというsymbolで開放処理する
  • asyncdisposeというのもあるけど、non-blockingじゃなくなってしまう

simochee collection normalization

  • MapとSetのkeyの正規化する仕様
  • coerceKey でkeyを正規化するhookを書ける
  • coercevalue で値のvalidateとかできる

brn0227 Richer Keys

  • compositekeyとcompositeValue
  • toKeyだけStage 2になっている

likr Math Extensions

  • Math.clamp
    • minmaxする
  • Math.scale
  • Math.radian
  • Math degress

technohippy Extensible numeric literals

  • デコレータで数字の単位を独自実装できる

antidotech export default from

  • export A from "./file.js"の追加
  • default exportをそのままできる

brn0227 class Access Expressions

  • class.f() でプロパティにアクセスできる
  • this.constructorの代わり
  • Klass.f() でもいいんじゃないか?というが代案

sakito partial application

  • ?でplaceholder的にできる

chikoski Emitter

  • Reactive Programmingをstdだけでできるよ
  • Stream API的なもの(DOM依存)
  • ECMAScriptレイヤーなのでDOM依存してない

kazuyoshi_kawakami cancellation

  • Cancel

likr Math.seededRandoms()

  • seed付きなrandom
  • Math.seededRandoms()

okunokentato Pipeline Operator

sakito slice notation

saneyuki JavaScript Standard Library

  • JavaScriptに標準ライブラリがない
  • import {} from "js:xxx"
    • prefixとかはまだ決まってない
  • importしたものはfreezeされる
    • Monkey patchは困る

sasurau4 Binary AST

sottar Asset References

  • assert Logo from "./logo.gif"
  • アセットのロードタイミング
  • 構文的な定義

technohippy Dynamic Code Brand Checks

  • evalをもう少し安全にしたい
  • IsCodeLike というinternal function

tsuyoshiwada Block Params

  • Kotlin, Swiftみたいな 関数の引数を最後にかけるやつ
  • fn { }
    • 構文的なやつ
  • 他の言語の書き方が色々できるよ
  • testに理想が書かれてる

chikoski first class protocols

  • Traitみたいなもの

antidotech pattern matching

  • パターンマッチ
  • case…whenを追加する
  • 最初はmatchだったけどcaseに変わった

technohippy new.initialize

  • new.initialize
  • Private Fieldも継承できるようにしたい

likr do expressions

haormauyraa Const Value Types: Record & Tuple

  • 言語レベルでImmutableなデータ型が欲しい
  • 別の提案があったけど、複雑すぎて廃棄
  • #{}#[]
  • RecordとTuple

kt3k standard library UUID

  • UUIDが使える
  • グローバル UUID
  • Stdimport uid from "std:uuid"
  • UUID v4を実装しようとしてる

ShoOishi shorthand improvements

  • プロパティ割当の省略記法
  • const a = { o.x }
  • ({ a.x } = o)

sakito Nested import declarations

tsuyoshiwada Infix Bang

  • Promise pileline
  • ~. wave
  • 使う場所によって内部処理が切り替わる

jxck Object.map

  • Mapはシリアライズできない
  • Objectで欲しい

Float16

  • 小さくて便利 float 16

Cancellable Promise

furukawa - function (const a ){}

  • 僕が欲しい
  • functionのargumentsをconstにしたい
  • function (const a) {}

jxck - Defensible class

  • harmony時代からある
  • const class{} のProposal
  • prototypeとかもfrozonになる

mizchi - Optional Types

Bind Operator ::

  • Stage 0
  • Infix Operator とかにProposalを分割するらしい