abcdefGets

ゲッツ!

Ecmascript

ES6のComputedPropertyNameとトランスパイラ

ES6のComputed Property Nameは非常に便利だが、トランスパイラを併用すると問題が起きがちである。 それを確認していく。 Base const SYMBOL = Symbol('foo-bar-baz'); const obj = { [SYMBOL]: 1, name: 'brn', job: 'engineer' } typescript var SYMBOL =…

Ecmascript decorator を使ってキャッシュする

表題の通り ES proposal のdecoratorをつかってメモ化のようなことをするライブラリを前に書いたので、 キレイにして、GitHubに公開した。 GitHub - brn/cache-decorator: javascript method/function cache decorator. インストール npm install cache-deco…

V8 の For In の話

V8 blogに話が出ていたが、V8のfor in構文が高速化したらしいので、 コードと共におっていこうと思う。 For In とは for (const key in object) { } このような構文でObjectのキーをイテレーションする機能。 この構文を何故高速化したかというと、Facebook…

Typescript 2.2 変更点

Typescript 2.2がでた。 変更点が少々あるので確認しておきたい。 Mixinのサポート 遂にMixinがサポートされた。やり方が少々直感的ではないけども。 公式のサンプルコードで確認する。 class Point { constructor(public x: number, public y: number) {} }…

WebWorker & SharedArrayBuffer & Atomics (2)

二回目です。 前回の記事はWebWorkerとSharedArrayBufferとAtomics(1)です。 Memory Model ES2017のドラフトからMemoryModelという項目が追加された。 これはSharedArrayBufferのDataBlockに適用されるモデルで、プログラムがとりうるメモリの順序を示したも…

WebWorker & SharedArrayBuffer & Atomics (1)

遂にShared Memory and AtomicsがES2017のstage4に JSの世界にマルチスレッド・共有メモリ・排他制御の仕組みが備わることになった。 Javascript/Browserにおけるマルチスレッド・並列実行 Javascriptの世界では長らく協調的スレッドと呼ばれるような仕組み…