Fork me on GitHub

2019-07-16のJS: Firefox 68.0、Hermes(JS Engine for React Native)、PageSpeed Insights 5

Edit on GitHub 編集履歴を見る

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

Firefox 68で企業向けのFirefox Extended Support Release(ESR)も合わせて更新されています。

Firefox 68では開発者ツールでAccessibility Checksの追加やECMAScript 2020で入る予定のBigIntsのサポートなどが追加されています。
ウェブ互換性のためにIEのCSS#addRule()CSS#removeRule()の実装、Safariの-webkit-line-clamp CSSプロパティが実装されています。
また、CSS Scroll Snappingの仕様に追従した変更も含まれています。


React Navtive on Android向けのJavaScriptエンジンであるHermesが公開されました。

React Nativeでの利用に最適化されたJavaScriptエンジンで、React Native 0.60.2からオプトインで利用できます。

Hermesは、TTI(Time To Interact)、APKのファイルサイズ、メモリ消費の改善を目的に作成されています。
JavaScriptのコードを、AOT(ahead-of-time)でバイトコードにコンパイルし、実行時はバイトコードを元に実行することでTTI(アプリケーションが利用できるようになるまでの時間)などを改善しています。

また、一方で現時点ではHermesはJIT(just-in-time)は意図的に持っていないため、処理速度は既存のものとは傾向が異なります。
V8もJIT-lessモードを持っていますが少しコンテキストは異なり、HermesではTTIとメモリ消費を抑えるために導入していないようです。

Hermesはデバッグビルド時はAOTコンパイルをしないため、パフォーマンスの比較を行う際には注意が必要そうです。


How Google Pagespeed works: Improve Your Score and Search Engine Rankingという記事では、5月にアップデートされたPageSpeed Insightsについて書かれています。

PageSpeed InsightsのスコアはLighthouseの"Performance"のスコアになっていることや、そのスコアがどのように計算されているかを紹介しています。


ヘッドライン


Firefox 68.0, See All New Features, Updates and Fixes

www.mozilla.org/en-US/firefox/68.0/releasenotes/

Firefox ReleaseNote

Firefox 68.0リリース。
Firefox ESRとなるバージョン。
開発者ツールのネットワークパネルで特定のURLをブロックできるように、Android版でVisual Viewport APIの有効化、CSS Scroll Snapの仕様追従など


Release Notes for Safari Technology Preview 87 | WebKit

webkit.org/blog/9414/release-notes-for-safari-technology-preview-87/

safari ReleaseNote

Safari Technology Preview 87リリース。
console.countResetconsole.timeLogの実装など


Release v1.0.0 · quasarframework/quasar

github.com/quasarframework/quasar/releases/tag/v1.0.0

Vue UI library

Vueを使ったUIフレームワークのQuasar 1.0.0リリース。


アーティクル


WebDriver is Coming to Safari in iOS 13 | WebKit

webkit.org/blog/9395/webdriver-is-coming-to-safari-in-ios-13/

safari webdriver article

iOS 13でSafariにWebDriverサポートが追加されたことについて。
iOS SafariでのWebDriver対応について


Snyk research team discovers severe prototype pollution security vulnerabilities affecting all versions of lodash | Snyk

snyk.io/blog/snyk-research-team-discovers-severe-prototype-pollution-security-vulnerabilities-affecting-all-versions-of-lodash/

JavaScript library security article

lodash 4.17.12で修正されたPrototype Pollutionの脆弱性についての解説。


Web Components update: more time to upgrade to v1 APIs | Web | Google Developers

developers.google.com/web/updates/2019/07/web-components-time-to-upgrade

WebComponents article

ChromeのWeb Components v0 APIの廃止のスケジュールについて。
Chrome 80で削除予定、コマンドラインフラグでのテスト方法、Polyfillについてなど


Yomguithereal's Shenanigans - Implementing an efficient LRU cache in JavaScript

yomguithereal.github.io/posts/lru-cache

JavaScript article algorithm

JavaScriptでのLRUの実装について。
Double Linked Listの仕組み、Mapを使った実装。
LRUの更新コストの大部分は削除にあることなどについて


Normalize CSS or CSS Reset?! - Elad Shechter - Medium

medium.com/@elad/normalize-css-or-css-reset-9d75175c5d1e

CSS article

CSSのアーキテクチャに関する連載記事。
CSS ResetとNormalizeのアプローチの比較、ファイル構成、複数サイト向けのレイヤー構成についてなど


lesnitsky/webgl-month: 🎓 Daily WebGL tutorials

github.com/lesnitsky/webgl-month

WebGL tutorial article

WebGLチュートリアル


How Google Pagespeed works: Improve Your Score and Search Engine Ranking

calibreapp.com/blog/how-pagespeed-works/

google performance browser article

GoogleのPageSpeed Insights(PSI) 5.0について。
PSI 5.0のスコアはLighthouseと同じになったことやLighthouseのスコア計算の仕組み、TTIの影響についてなど


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


EasyGraphQL

easygraphql.com/

GraphQL library

GraphQLツールキット。
GraphQLのパーサ、モック、テストツール、トレーシングライブラリなど。
またFirebaseやnowでGraphQLサーバを動かすツールなどを公開している。


QuickJS Javascript Engine

bellard.org/quickjs/

JavaScript software C言語

ES2019の仕様を実装したJavaScriptエンジン。
Cで実装されていて、外部依存を持たない。


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


paulrosen/abcjs: javascript for rendering abc music notation

github.com/paulrosen/abcjs

JavaScript library

ブラウザで楽譜をレンダリングするライブラリ


facebook/hermes: Hermes is a small and lightweight JavaScript engine optimized for running React Native on Android.

github.com/facebook/hermes

JavaScript Android React

React NativeのAndroid向けのJavaScriptエンジン。
JavaScriptをレジスターベースのバイトコードにコンパイルし、モバイルでも高速に起動することが目的。


この記事へ修正リクエストをする
記事を紹介する