Fork me on GitHub

2018-01-09のJS: Spectre/Meltdownのブラウザへの影響、FuseBox 3.0、Nuxt.js 1.0

Edit on GitHub 編集履歴を見る

JSer.info #365 - GoogleのProject Zeroチームより、投機的実行を利用したサイドチャネル攻撃に関する脆弱性としてMeltdown and Spectreが公開されました。

ブラウザは任意のJavaScriptを実行でき、かつSharedArrayBufferperformance.now()など精度の高いタイマーをもつためこのサイドチャネル攻撃の影響受けます。本来は、ブラウザは一種Sandbox内で任意のJavaScriptを独立して実行する仕組みを持ちSandbox外の状態は観測できません。しかし、SpectreによってSandbox外の状態を観測できる可能性がでてきたためです。

そのためChrome、Firefox、MSEdge、Safariではそれぞれ一時的にSharedArrayBufferの無効化、performance.now()の精度を下げる軽減策が導入されています。
(fantastictimers.pdfではSharedArrayBufferを高精度のタイマーとして使えることについて書かれています)

どのブラウザも今回の変更は一時的な対策であるとして、SharedArrayBufferについては再度有効化する目標について書かれています。

関連: 高精度のタイマーを使ってのサイドチャネル攻撃について。


BundlerかつTask RunnerであるFuseBox 3.0がリリースされました。

Code Splittingをデフォルトでサポート、TypeScriptをソースにTree Shakingをサポートするためにts:mainのサポート。
パフォーマンスの改善、ウェブサイトのデザイン更新などが行われています。


Vue版Next.jsであるNuxt.js 1.0がリリースされました。

Node.js 8.0.0未満のサポートを終了。
今後はドキュメンテーション、パフォーマンス、TypeScriptサポートの改善などを行っていくロードマップについて書かれています。


JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。


ヘッドライン


Node v8.9.4 (LTS) | Node.js

nodejs.org/en/blog/release/v8.9.4/

node.js ReleaseNote

Node.js 8.9.4リリース。
npm 5.6.0の同梱など


Actions Required to Mitigate Speculative Side-Channel Attack Techniques - The Chromium Projects

sites.google.com/a/chromium.org/dev/Home/chromium-security/ssca

JavaScript security news browser

Chrome、Firefox、MSEdge、SafariなどのブラウザはMeltdown/Spectre(CPUプロセッサに関する脆弱性)を受ける。
そのためSharedArrayBufferの無効化や軽減策としてperformance.now()などの挙動を変更する


browserify/changelog.markdown at v15.0.0 · browserify/browserify

github.com/browserify/browserify/blob/v15.0.0/changelog.markdown

browserify ReleaseNote

Browserify 15.0.0リリース。
Node.js 4未満のサポート終了、module-depsの依存を更新、browserify organizationに移動など


Dev.Opera — What’s new in Chromium 63 and Opera 50

dev.opera.com/blog/opera-50/

Chrome Opera ReleaseNote

Opera 50 (based on Chromium 63)リリース。
Dynamic import、Async Iterator/Generator、Promise#finallyIntl.PluralRulesのサポートなど


ESLint v4.15.0 released - ESLint - Pluggable JavaScript linter

eslint.org/blog/2018/01/eslint-v4.15.0-released

ESLint ReleaseNote

ESLint 4.15.0リリース。
CLIEngine#getRules()で設定されたルールの取得、messageIdの追加など開発者向けの機能追加など


アーティクル


ECMAScript 2015以降のJavaScriptの`this`を理解する | Web Scratch

efcl.info/2018/01/04/what-is-this/

JavaScript ECMAScript article

JavaScriptのthisについての解説記事。
状況によって異なる値を参照するthisは、どのような仕組みでその値を決まっているかについて。
関数やArrow Functionでの仕組みの違いなどについて


FuseBox 3.0 — faster than ever – fusebox – Medium

medium.com/fusebox/fusebox-3-0-faster-than-ever-5fae4254556c

JavaScript Tools ReleaseNote

FuseBox 3.0リリース。
Code Splittingをデフォルトでサポート、TypeScriptをソースにTree Shakingをサポートするためにts:mainのサポート。
パフォーマンスの改善、ウェブサイトのデザイン更新など


New flexbox guides on MDN – Mozilla Hacks – the Web developer blog

hacks.mozilla.org/2018/01/new-flexbox-guides-on-mdn/

CSS article document

FlexboxのガイドがMDNに追加された


🐛🔨 The Contributors Guide to webpack — Part 1 🎨 🖼

medium.com/webpack/the-contributors-guide-to-webpack-part-1-a0410cc82ca4

webpack article JavaScript

webpackのアーキテクチャの解説をする連載。
webpack関係のツール、プラグインのエコシステムや動作の仕組み、モジュール依存関係グラフの構築などについて


Using React Fragments for the first time

javascriptplayground.com/react-fragments/

JavaScript React article

React 16で導入されたFragmentについての記事。
どのような問題を解決するのかや気をつけるべき点、ユースケースについて


What’s New in HTML 5.2?

bitsofco.de/whats-new-in-html-5-2/

W3C HTML spec article

W3C HTML 5.2の変更点まとめ。
<dialog>要素、iframeにallowpaymentrequest属性の追加、<main>要素の複数配置の許容。
またkeygenmenumenuitemの削除、HTML4 XHTML1 strict doctypeの削除など


JavaScript Start-up Optimization  |  Web Fundamentals  |  Google Developers

developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/javascript-startup-optimization/

Chrome performance article

ウェブサイトの起動速度周りの改善ポイントについてまとめた記事。
ネットワーク、ファイルサイズ、パース、コンパイル、実行コストについてを簡単にまとめたもの


Nuxt.js 1.0 is out 🎉 – Nuxt.js – Medium

medium.com/@nuxt_js/nuxt-js-1-0-is-out-bab1af459972

JavaScript Vue server ReleaseNote

Vue版Next.jsであるNuxt.js 1.0リリース。
Node.js 8.0.0未満のサポートを終了。
今後はドキュメンテーション、パフォーマンス、TypeScriptサポートの改善などを行っていく


Sapper: Towards the ideal web app framework

svelte.technology/blog/sapper-towards-the-ideal-web-app-framework

JavaScript server library article

SvelteベースのNext.js的なフレームワークであるSapperについて。
それぞれのページがSvelteのコンポーネントとなる。
元々フレームワークからではなくコンパイラとして始まったSvelteと他のフレームワークとの違いについて


The State of JavaScript Frameworks, 2017 | Part 1: Front-End Frameworks

www.npmjs.com/npm/state-of-javascript-frameworks-2017-part-1

npm JavaScript article

npmのダウンロード数から見るJavaScriptのエコシステムについての連載記事。
フロントエンドとバックエンドのフレームワーク、Reactに関するエコシステムについて


スライド、動画関係


Chrome DevTools 101: Debugging JavaScript - YouTube

www.youtube.com/watch?v=H0XScE08hy8

Chrome debug video

Chrome開発者ツールでのデバッガーの使い方についての動画。
ブレークポイントの種類や貼り方、ステップ実行などについて


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


Roadmap of Web Applications on Mobile

www.w3.org/2018/01/web-roadmaps/mobile/

W3C spec document

W3Cのモバイルのウェブアプリに関する仕様のロードマップ。
それぞれの仕様のジャンルごとのまとめ、ステータス、実装状況について


Lighthouse 2.7 Updates  |  Web  |  Google Developers

developers.google.com/web/updates/2018/01/lighthouse

Chrome performance Tools

Lighthouse 2.7リリース。
SEO auditの追加、手動のアクセシビリティチェックリストの追加、WebP auditの更新など


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


mweststrate/immer: Create the next immutable state by mutating the current one

github.com/mweststrate/immer

JavaScript library

MutableなAPIでImmutableにオブジェクトや配列を変更できるライブラリ。


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