技術探し

JavaScriptを中心に記事を書いていきます :;(∩´﹏`∩);:

Node8の注目的変更まとめ

そろそろNodeのv8.0.0が出ます。😆

github.com

注目するべき変更

Node8のリリースが4月から今回に変わった影響として、V8のバージョンをv5.8へ上げるためというのがあります。
何故かと言うと、TurboFanとIgnitionがv5.8で試験的に入り、v5.9でデフォルトになるのでLTS(v8.0.0はLTS)へのバックポートを楽にするためです。
TF-Iの詳しい資料

V8 javascript engine for フロントエンドデベロッパー

5月以降に入った注目的な変更はasync_hooksとpromisifyとnpm5.0.0が大きいです。

N-API(Node-API)

ネイティブモジュールのAPI安定抽象化レイヤー
異なるVM間、Nodeのバージョン間でABI(Application Binary Interface)互換性を保証します。

async_hooks

async_hooks initial implementation by trevnorris · Pull Request #11883 · nodejs/node · GitHub

新しいasync_hooksモジュールはNode内で作られた非同期なリソースの生存期間に対して追跡するコールバックを登録します。
非同期操作の全体の監視、追跡を行います。

以下が対象です。

FSEVENTWRAP, FSREQWRAP, GETADDRINFOREQWRAP, GETNAMEINFOREQWRAP, HTTPPARSER,
JSSTREAM, PIPECONNECTWRAP, PIPEWRAP, PROCESSWRAP, QUERYWRAP, SHUTDOWNWRAP,
SIGNALWRAP, STATWATCHER, TCPCONNECTWRAP, TCPWRAP, TIMERWRAP, TTYWRAP,
UDPSENDWRAP, UDPWRAP, WRITEWRAP, ZLIB, SSLCONNECTION, PBKDF2REQUEST,
RANDOMBYTESREQUEST, TLSWRAP

別記事で詳しく書きます

promisify

setTimeoutとかをcallbackではなくpromiseと同じ書き方ができるようになります。

Nodeへutil.promisify()の追加 - 技術探し

zero-filling Buffers

buffer: zero fill Buffer(num) by default by jasnell · Pull Request #12141 · nodejs/node · GitHub

デフォルトでBufferコンストラクタが0をセットすることにより、セキュリティ問題になるのを防ぎNodeを安全化させます。

inspector

node/inspector.md at master · nodejs/node · GitHub

新しいinspectorモジュールはv8のインスペクタで使用されるデバッグプロトコルを使うために作られました。

WHATWG URL

doc: graduate WHATWG URL from Experimental by jasnell · Pull Request #12710 · nodejs/node · GitHub

ステータスが実験から安定へ

–debugがなくなった

--inspect を今後使ってください。

streamにdestroyが追加された

stream: add destroy and _destroy methods. by mcollina · Pull Request #12925 · nodejs/node · GitHub

npmが5.0.0へ

The npm Blog — v5.0.0

他ので詳しく知りたい方はこちらもどうぞ

abouthiroppy.github.io

入りそうで入らなさそうなもの

すでにsemver-majorは凍結済みなのでおそらく入らないと思えます。 github.com

whatwg-consoleに準拠した実装の導入 github.com

さいごに

ざっとでしたが、今現在リリースノートの草稿段階なので公式で出たらもう一度まとめたいなと思います。