Fork me on GitHub

2020-01-13のJS: Firefox 72、Node.js 13.6.0、TypeScript 3.8 Beta(Private Fields)

Edit on GitHub 編集履歴を見る

JSer.info #470 - Firefox 72がリリースされました

Firefox 72では開発者ツールの改善が行われ、デバッガーでプロパティにset/getに対するBreak Pointを設定できるようになっています。
また、コンソールでの非同期処理に対するスタックトレースがDeveloper Editionで有効化されています。

その他には、ES2020に入る予定のNullish coalescing operatorのサポート、CSSのShadow Parts(::part())、CSS Motion Pathの対応なども含まれています。

またFirefox 72からは通知許可の求めるにはユーザーインタラクションのイベント内で行う必要があるように変更されています。
詳細は次の記事で紹介されています。

少しアプローチは異なりますが、Chrome 80からopt-inでQuiet UIという新しい通知許可のUIが実装されています。

こちらはまだデフォルトでは入っていませんが、通知許可をより静かにする実験的なUIとなっています。
今後、Chrome User Experience Reportに基づいて許可率の低いサイトではデフォルトをQuiet UIにするといった変更を予定しているようです。

どちらも過剰な通知許可を求めることで体験を悪くするサイトを抑制することが目的とされています。


Node.jsの開発版であるv13.6.0がリリースされました。

正規表現にマッチするかをテストできるassert.match()assert.doesNotMatch()assertモジュールに追加されています。
また、EventEmitter.onのAsync Iterator対応、Streamに対するfsの実装を指定できるオプションの追加、errorイベントを副作用なしに監視できるEventEmitter.errorMonitor Symbolを追加なども行われています。

ブラウザのUser Timing APIPerformanceObserverに相当するAPIを提供するperf_hooksモジュールがStable APIになるといった変更も含まれています。


TypeScript 3.8 Betaがリリースされました

Flowにもあったimport type/export typeで型定義だけをimport/exportできるようになっています。

新しい構文のサポートとしてES Proposal Stage 3のECMAScript Private Fieldsに対応、同じくStage 3のTop-Level awaitに対応しています。
TypeScriptには元々soft privateとしてのprivate修飾子がありましたが、今回実装されたhard privateであるPrivate Fieldsの違いについても解説されています。

その他としてtargetmodulees2020のサポートが追加され、tsconfig.jsonwatchOptionsオプションが追加されています。


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

JSer.info Sponsors

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


ヘッドライン


Release throw new Preact('10.2.0') · preactjs/preact

github.com/preactjs/preact/releases/tag/10.2.0

JavaScript React library ReleaseNote

Preact 10.2.0リリース。
useErrorBoundary hookのサポート、lazy()がnamed exportsに対応など


Firefox 72 — our first song of 2020 - Mozilla Hacks - the Web developer blog

hacks.mozilla.org/2020/01/firefox-72-our-first-song-of-2020/

Firefox ReleaseNote

Firefox 72リリース。
フラグ付きでコンソールのAsync Stack Traceの対応、CSSのShadow Parts(::part())、CSS Motion Pathの対応。
通知許可の求めるにはユーザーインタラクションのイベント内で行う必要があるように変更、Nullish coalescing operator、formdataイベントの対応など


Node v12.14.1 (LTS) | Node.js

nodejs.org/en/blog/release/v12.14.1/

node ReleaseNote

Node.js 12.14.1リリース。
v8.serializev8.deserializeがStable APIとなるなど


Node v13.6.0 (Current) | Node.js

nodejs.org/en/blog/release/v13.6.0/

node ReleaseNote

Node.js 13.6.0リリース。
正規表現にマッチするかをテストできるassert.match()assert.doesNotMatch()の実装、
EventEmitter.onのAsync Iterator対応。
Streamに対するfsの実装を指定できるオプションの追加、errorイベントを副作用なしに監視できるEventEmitter.errorMonitor Symbolを追加。
perf_hooksモジュールがStable APIになるなど


Release Notes for Safari Technology Preview 98 | WebKit

webkit.org/blog/9689/release-notes-for-safari-technology-preview-98/

safari ReleaseNote

Safari Technology Preview 98 リリース。
OffscreenCanvas.convertToBlobのサポート、CSSのclamp()のサポート。
beforeunloadunload時の同期XHRが禁止される変更など


Announcing TypeScript 3.8 Beta | TypeScript

devblogs.microsoft.com/typescript/announcing-typescript-3-8-beta/

TypeScript ReleaseNote

TypeScript 3.8 Betaリリース。
import type/export typeで型定義だけをimport/exportできるように、Stage 3のECMAScript Private Fieldsに対応。
Top-Level awaitに対応、targetmodulees2020をサポート、watchOptionsの追加など


Release v2.9.0 · date-fns/date-fns

github.com/date-fns/date-fns/releases/tag/v2.9.0

JavaScript library ReleaseNote

date-fns 2.9.0リリース。
eachYearIntervaleachMonthIntervalisExistsの追加。
オブジェクトでまとめてDateを操作するaddsubの追加など


7.8.0 Released: ECMAScript 2020, .mjs configuration files and @babel/cli improvements · Babel

babeljs.io/blog/2020/01/11/7.8.0

babel ReleaseNote

Babel 7.8.0リリース。
ES2020のサポートをデフォルト化、babel.config.mjsなど設定ファイルの対応を整理、--copy-ignored--out-file-extensionのサポートなど。
また 8.0.0に向けた準備などについて書かれている


Release Version 16.0.0 · jsdom/jsdom

github.com/jsdom/jsdom/releases/tag/16.0.0

JavaScript DOM ReleaseNote library

jsdom 16.0.0リリース。
Node.js 10未満のサポート終了、dom.runVMScript()の廃止、prototype使ったWindow間のプロパティ共有の廃止など。window.getSelection()のサポート、Timerのメモリリークを修正など


Release V1 RELEASE! @pika/web is now Snowpack · pikapkg/snowpack

github.com/pikapkg/snowpack/releases/tag/v1.0.1

JavaScript bundler Tools

Snowpack 1.0.0リリース。
インストール時にES Modulesとして読み込めるモジュールを配置することで、変更ごとにビルドしないでアプリケーション開発できることを目的にしている。
@pika/webからSnowpackにリネーム、--optimizeでのtree-shakingサポート等。


アーティクル


Guide to Web Authentication

webauthn.guide/

WebAuthentication article

Web Authenticationの基本的な目的や使い方について書かれた記事


Chromium Blog: Introducing quieter permission UI for notifications

blog.chromium.org/2020/01/introducing-quieter-permission-ui-for.html

Chrome article

Chrome 80で入る通知などのパーミッションデザインの変更について。
Quiet UIと呼ばれる新しい許可UIの追加と設定方法について。
またChrome UX Reportのデータをもとに、通知の受け入れ率が低いサイトは自動的にquieter promptsにする変更などが追加される予定。


Advancing the web framework ecosystem

web.dev/advancing-framework-ecosystem-cds-2019/

Chrome google JavaScript library article

Chromeチームが最近取り組んでいるいウェブフレームワークの最適化ついて。
Angular、Next.js、Nuxt.js、Babelについてのパフォーマンス最適化などの取り組みを紹介している


Raw WebGPU

alain.xyz/blog/raw-webgpu

article Chrome safari WebGL WebPlatformAPI

WebKitやChromiumに試験的に実装されているWebGPUについてのチュートリアル。Vulkan、DirectX 12、Metalを扱うことを目的としたWeb API、基本的な使い方について解説している


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


qawolf/qawolf: 🐺Create browser tests 10x faster

github.com/qawolf/qawolf

Chrome testing library TypeScript

PupeteerとJestを使ったテストフレームワーク。
操作を記憶してテストケースとSelectorを作成でき、CIに実行結果の動画をアップロードのサポートなどをしている。
Automatic waiting、Keyboard eventsなどをサポートしている


babel/preset-modules: A Babel preset that targets modern browsers by fixing engine bugs (will be merged into preset-env eventually)

github.com/babel/preset-modules

babel library JavaScript

@babel/preset-envにマージされる予定の、Modern Browser向けの最適化を目的にしたBabel Preset。
MSEdgeなどのES Modulesをサポートしているが一部構文にバグがあるケースなどにも対応している。


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