Fork me on GitHub

2016-12-27のJS: SharedArrayBufferとAtomics API、Node.js Stream、JavaScript obfuscator

Edit on GitHub 編集履歴を見る

JSer.info #311 - Safari Technology Preview Release 20とMSEdgeのJavaScriptエンジンであるChakraCore 1.4.0が公開されています。

どちらもSharedArrayBufferが実装されています。
SharedArrayBufferは、WebWorkerとの間でもデータを共有できるStage 3のProposal仕様です。

データをコピーやTransferではなく、メモリで共有する仕様です。(いわゆる共有メモリ)
複数のスレッドがメモリ内の同じデータを読み書きするため、スレッドセーフなAPIが必要になります。
そのため、tc39/ecmascript_sharedmemの仕様では不可分操作を提供するAtomics APIが合わせて定義されています。

SharedArrayBufferとAtomics APIについて、詳しくは次のURLを見るのが良いと思います。

Stage 3の仕様ですが、既に2つ以上の実装があるため、次のTC39 Meeting(2017年1月)でStage 4となる予定です。
そのため、ES2017として公開される可能性があります。

この仕様に先んじて、ECMAScriptに"Agent"という概念が既に追加されています。

また、2016年11月のTC39 MeetingでStageが変わったProposalは次の記事にまとめてあります。


Stream API入門 - Qiitaでは、Node.jsのStream APIについて解説されています。コールバックやPromise、Generator、async/awaitなどの非同期処理についても触れています。

Node.js Streamの特徴の一つでもあるバッファリングとバックプレッシャーについては合わせて次の記事を見てみるといいかもしれません。

これとは別で、WHATWGが提案しているStreams Standard(Fetch APIなどと連携する)も合わせて見ると面白いかもしれません。

また、データのストリーム処理はJavaScriptという言語にかぎらずあるものなので、次の記事も見てみるとストリーム処理の特徴が分かりやすいかもしれません。


ヘッドライン


Say allo' to yeoman-generator 1.0 | Yeoman

yeoman.io/blog/hello-generator-1.0.html

ジェネレーター Tools

Yeoman-generator 1.0リリース。
composeWithのAPIを簡略化、Yarnサポート、deprecatedなAPIを削除など


Release Notes · Microsoft/ChakraCore Wiki

github.com/Microsoft/ChakraCore/wiki/Release-Notes#v140

MSEdge JavaScript ReleaseNote

ChakraCore 1.4リリース。
JITがLinuxやmacOSでも有効化、async/awaitをデフォルトで有効化、SharedArrayBufferを実験的にサポート、wasmの実験的サポートなど


Release Notes for Safari Technology Preview 20 | WebKit

webkit.org/blog/7120/release-notes-for-safari-technology-preview-20/

safari webkit ReleaseNote

Safari Technology Preview Release 20リリース。
Visual Viewport、SharedArrayBufferを有効化、block-all-mixed-contentの追加、BlinkからportしたCSSパーサを使うようになるなど


Release 3rd Mutation · canjs/canjs

github.com/canjs/canjs/releases/tag/v3.0.0

JavaScript library ReleaseNote

CanJS 3.0リリース
コードはcan-*からなるモジュールに分割され、.attr()の代わりにDefineMapの導入など


アーティクル


ECMAScript proposal updates @ 2016-11 | ECMAScript Daily

ecmascript-daily.github.io/ecmascript/2016/12/22/ecmascript-proposals

ECMAScript proposal

2016年11月のTC39ミーティングでのProposalのStage変動をまとめたもの


Stream API入門 - Qiita

qiita.com/Mizunashi_Mana/items/872354cd7bf25090932f

node.js stream

Node.jsのStream APIについて。
非同期処理のコールバック、Promise、async/await、generatorを踏まえてのStreamについての解説。
Write/Read/Duplex、Stream処理が得意とすること、objectModeについてなど幅広く解説されてる


CSS Writing Modes ◆ 24 ways

24ways.org/2016/css-writing-modes/

CSS

CSSのwriting-modeプロパティについての解説


かずぽんブログ • Vue.js 2016年まとめ & 今後

blog.kazupon.jp/post/154903508388/vuejs-2016-closing-and-future

JavaScript library

2016年のVue.jsの変化について。
Vue.js 2.0、コミュニティ、エコシステム、利用範囲や今後について


Firebug lives on in Firefox DevTools ★ Mozilla Hacks – the Web developer blog

hacks.mozilla.org/2016/12/firebug-lives-on-in-firefox-devtools/

Firebug firefox debug

Firebugは開発終了したが、多くの機能はFirefoxの開発者ツールに引き継がれている/引き継ぐ予定があるという話。

またFirebugはマルチプロセス対応を念頭に開発されたものではなかったため、Firebugを拡張するよりも、Firefoxの開発者ツールを拡張していく方が良いという決定がされた。


Web アクセシビリティ向け Node.js 製の自動チェックツールや DevTools 用の拡張機能など ::ハブろぐ

havelog.ayumusato.com/develop/a11y/e732-a11y_checking_automate.html

accessibility test

Webアクセシビリティの自動チェックツールや補助ツールの紹介。


JavaScriptのUIライブラリはどうあるべきかという話とOnsen UIのアーキテクチャ - id:anatooのブログ

blog.anatoo.jp/entry/2016/12/09/201511

JavaScript UI

特定のUIフレームワークに依存されないUIフレームワークの基盤をどのように作るかという話。
CSS Components層、Web Components層、フレームワークバインディング層のレイヤー分けについて


ServiceWorker内にExpressサーバーを立てる - Qiita

qiita.com/narirou/items/738a0fe6656d0f905e28

ServiceWorker node.js

express-serviceがどのようにして実際のNode.jsで動くExpressのコードをServiceWorkerの中でも擬似的に動かしているのかについての解説


サイト、サービス、ドキュメント


Accessibility - Learn web development | MDN

developer.mozilla.org/en-US/docs/Learn/Accessibility

accessibility web

アクセシビリティについてのガイド


SpeedTracker

speedtracker.org/

webservice performance browser

個人向けに使うCalibreやSpeedCurveのような継続的なパフォーマンス計測サービス。
WebPageTestで取った結果をGitHubリポジトリにJekyllで動くようにデータをpushしてくれる。


ソフトウェア、ツール、ライブラリ関係


Mithril、Vue.jsの仮想DOM用のi18nライブラリ作った - Qiita

qiita.com/shibukawa/items/c2298b21b4629941b230

JavaScript i18n library

Node.jsでもブラウザでも動作するi18nライブラリ。
プレースホルダ、複数形、コンテキスト、data-i18n属性に対する翻訳する機能を持つ


devongovett/regexgen: Generate regular expressions that match a set of strings

github.com/devongovett/regexgen

JavaScript 正規表現

複数の文字列を渡して、それにマッチする正規表現を作るライブラリ


javascript-obfuscator/javascript-obfuscator: JavaScript obfuscator for Node.js

github.com/javascript-obfuscator/javascript-obfuscator

JavaScript library Tools

JavaScriptの難読化ツール/ライブラリ。
ES2015+のコードを扱うことができ、Source Mapにも対応している


amilajack/eslint-plugin-compat: Browser and ES spec compatibility assertion with ESLint

github.com/amilajack/eslint-plugin-compat

JavaScript ESLint

AutoPrefixerのように想定ブラウザを記述し、そのブラウザで動かないAPIを使ってないかをチェックするESLintルール。
caniuseやcompat tableのデータを使う


この記事へ修正リクエストをする
JSer.info Slackに参加する