Fork me on GitHub

2020-08-04のJS: Firefox 79、Babel 7.11.0、Speculation in JavaScriptCore

Edit on GitHub 編集履歴を見る

JSer.info #499 - Firefox 79がリリースされました。

非同期処理のスタックトレースのサポート、デバッガの改善が行われています。
target=_blankのリンクに対して暗黙的にrel=noopenerと同じ扱いをするようになりました。
また、crossOriginIsolatedが有効の場合にSharedArrayBufferが利用可能になっています。

詳しくは次の記事で解説されています。

JavaScriptではStage 4のPromise.any、Logical assignment、WeakRefのサポートしています。
WebAssemblyのBulk memory operations、Reference types、Threads のサポートなども含まれています。


Babel 7.11.0がリリースされました。

@babel/preset-envにStage 4となったProposalのLogical Assignment、Numeric Separatorのサポートが追加されています。
TypeScript 4.0で追加される構文のサポートが追加されています。
また、Stage 1のDecimal Literalの構文パースをサポート、BABEL_SHOW_CONFIG_FORでの設定出力をサポートしています。

またbabel-eslintがmonorepo内の@babel/eslint-parserに移動しています。


Speculation in JavaScriptCore | WebKitという記事ではWebKitのJavaScriptCoreの投機的コンパイラでのJavaScriptの最適化について解説されています。

投機処理、JITコンパイラなどについてかなり詳しく解説されているので興味がある人は読んでみると良さそうです。
とても長い記事/スライドなので、一番下のRelated WorkとConclusionから読んでみるとどういう話をしているかがつかみやすいかもしれません。


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

JSer.info Sponsors

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


ヘッドライン


Firefox 79: The safe return of shared memory, new tooling, and platform updates - Mozilla Hacks - the Web developer blog

hacks.mozilla.org/2020/07/firefox-79/

Firefox relre

Firefox 79リリース。
非同期処理のスタックトレースのサポート、デバッガの改善。
target=_blankのリンクに対して暗黙的にrel=noopenerを同じ処理をするように、crossOriginIsolatedが有効の場合にSharedArrayBufferが利用可能に。
Stage 4のPromise.any、Logical assignment、WeakRefのサポート。
WebAssemblyのBulk memory operations、Reference types、Threads のサポートなど


Safely reviving shared memory - Mozilla Hacks - the Web developer blog

hacks.mozilla.org/2020/07/safely-reviving-shared-memory/

Firefox security JavaScript

FirefoxでSpectreへの対応として無効になっていたSharedArrayBufferが再度利用できるようになる話。
プロセス分離、Cross-Origin-Opener-PolicyCross-Origin-Embedder-PolicyでCross-origin isolationについて。


7.11.0 Released: ECMAScript 2021 support in preset-env, TypeScript 4.0 support, printing config and the future of `babel-eslint` · Babel

babeljs.io/blog/2020/07/30/7.11.0

babel ReleaseNote

Babel 7.11.0リリース。
@babel/preset-envがStage 4となったProposalのLogical Assignment、Numeric Separatorのサポート、TypeScript 4.0で追加される構文のサポート。
Stage 1のDecimal Literalをサポート、BABEL_SHOW_CONFIG_FORでの設定出力をサポート、babel-eslint@babel/eslint-parserに移動など


Snowpack 2.7

www.snowpack.dev/posts/2020-07-30-snowpack-2-7-release/

JavaScript bundler ReleaseNote

フロントエンドビルドツールのSnowpack 2.7リリース。
Plugin APIの変更、snowpack.config.jsonの書式の変更など。
どちらもv2の間は後方互換性があるが、新しい形式に移行を推奨している。


Release v3.0.0 · ykzts/node-xmlhttprequest

github.com/ykzts/node-xmlhttprequest/releases/tag/v3.0.0

node.js XHR library ReleaseNote

Node.jsでのXMLHttpRequestの実装ライブラリであるnode-xmlhttprequest 3.0.0リリース


Speculation in JavaScriptCore | WebKit

webkit.org/blog/10308/speculation-in-javascriptcore/

JavaScript JIT webkit

Filip PizloによるJavaScriptCoreの投機的コンパイル、JITについて詳しい解説。
JavaScriptCoreにおける4層のコンパイル処理の解説、投機的コンパイル、再コンパイル、プロファイリング、インラインキャッシュなど。
投機的コンパイルは動的に型付けの言語においてどんな型を持っているかを推測して最適化する手法。その推測には、複数の実行層を使ったプロファイリングなどを基にして最適化を行う話


Blog - Next.js 9.5 | Next.js

nextjs.org/blog/next-9-5

JavaScript React ReleaseNote library

Next.js 9.5リリース。
revalidatebasePathtrailingSlashのオプションの追加、rewritesredirectsの設定が可能になった。
Page Bundleのビルドキャッシュの有効化、ProductionでReactのプロファイルができるようになるなど


Ink 3 - Vadim's Blog

vadimdemedes.com/posts/ink-3

React console ReleaseNote library

Reactを使ったコンソールUIライブラリであるInk 3リリース。
パフォーマンスの改善、<Color><Text>コンポーネントにマージ、useInputuseFocusなどのHookの提供など


アーティクル


Performance monitoring with Lighthouse CI

web.dev/lighthouse-ci/

Chrome performance Tools article

Lighthouse CIについての記事。
設定方法、CIでテストとして使う方法、GitHub Actionの連携について


A new default Referrer-Policy for Chrome: strict-origin-when-cross-origin

developers.google.com/web/updates/2020/07/referrer-policy-new-chrome-default

Chrome security article

ChromeのReferrer-Policyのデフォルト値がstrict-origin-when-cross-originに変更されることによる影響について。
OriginSec-Fetch-Siteでの代替えなどについて


【翻訳】Date and Times in JavaScript - from scratch

yosuke-furukawa.hatenablog.com/entry/2020/07/28/102821

JavaScript ECMAScript proposal translate

Dateを置き換えるProposalであるTemporalについての翻訳


Different versions of your site can be running at the same time - JakeArchibald.com

jakearchibald.com/2020/multiple-versions-same-time/

JavaScript article

デプロイ中に複数のバージョンが同じサイトで動く問題についてどのように対処するかという話。
再ビルドによるchunkファイルの404、Storageスキーマの変更、APIレスポンスの変更に対してどのような対策を取るかについて書かれている


Webブラウザ上で純粋なHTTPだけで単方向リアルタイム通信を可能にするHTTPのストリーミングアップロードが遂にやってくる - nwtgck / Ryo Ota

scrapbox.io/nwtgck/Web%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E4%B8%8A%E3%81%A7%E7%B4%94%E7%B2%8B%E3%81%AAHTTP%E3%81%A0%E3%81%91%E3%81%A7%E5%8D%98%E6%96%B9%E5%90%91%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%BF%E3%82%A4%E3%83%A0%E9%80%9A%E4%BF%A1%E3%82%92%E5%8F%AF%E8%83%BD%E3%81%AB%E3%81%99%E3%82%8BHTTP%E3%81%AE%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%8C%E9%81%82%E3%81%AB%E3%82%84%E3%81%A3%E3%81%A6%E3%81%8F%E3%82%8B

Fetch article

Chrome 85βで実装されているFetch upload streamingについての記事


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


lamplightdev/aeon: A lightweight date picker built with web components that can be used anywhere

github.com/lamplightdev/aeon

JavaScript UI library

Date PickerのWeb Componentsライブラリ


apoorv-mishra/moment-guess: A utility package for guessing date's format

github.com/apoorv-mishra/moment-guess

JavaScript library Tools

多種多様な日付文字列をパースして、その日付にマッチするフォーマットを返すツール


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