JSer.info #228 - Firefox 38.0がリリースされました。
タブやウィンドウ間でデータのやり取りができるBroadcastChannel APIやHTML5 ruby tags、<picture>
や<img srcset>
のサポートなどが追加されています。
また、performance.measureやFirefoxの開発者ツールでcopy()
メソッドのサポート、JavaScriptエンジンの最適化により削除されている変数を表示する機能など開発者ツールにも色々機能が増えています。
詳細は以下から確認できます。
- Trainspotting: Firefox 38 ✩ Mozilla Hacks – the Web developer blog
- Firefox 38 for developers - Mozilla | MDN
- Firefox 38 サイト互換性情報 - Mozilla | MDN
Backbone.js 1.2.0がリリースされました。
1年ぶりのアップデートになりますが、コミット数が多いので内部コードレベルでは結構変化しています。
Viewの作成などをhookする機能の追加、モデルの"update"イベントの追加、ユニークidとなるmodeldの追加、Strict Modeだと動かない問題の修正などがされています。
一部互換性のない変更も含まれているようです。
V8について色々な記事を書いてる@mralephさんによるDo not Measure the Weatherというスライドでは、JavaScriptエンジンの最適化によってマイクロベンチマークが意図したものを計測できていない事がある点について実例と共に解説しています。
よくあるのがループの中で計測した処理を書いていてその結果を使っていないため、ループの中身が最適化によって空になってしまう問題などが起きています。(dead code elimination)
以下のような原則で最適化によって無意味なベンチマークにならないような方法について書かれています。
- verify results
- no constants
- no loop invariants
- no dead code
- http://mrale.ph/talks/goto2015/#/74
しかし、最近のJavaScriptエンジンはホントに賢いので、それでも最適化により意図とは異なるものを計測してる場合があり、
実際にどういう事が起きているのかをIRHydra2を使って見ていく方法についても書かれています。
IRHydra2については以前V8の最適化とIRHydraでの可視化とベンチマークについてのメモ | Web Scratchという記事を書いたのでこちらも見てみるといいかもしれません。
algorithms first, µbenchmarks last
とも書かれています。
ヘッドライン
Node v0.12.3 (Stable)
blog.nodejs.org/2015/05/13/node-v0-12-3-0.12.3/
Node v0.12.3リリース
0.9 released!
blog.polymer-project.org/announcements/2015/05/14/0.9-release/
Polymer 0.9リリース。
0.8でexperimentalだった機能がデフォルトサポートされている。
:root
セレクタ、Gesture、CSPのサポートやUtilの追加など。Breaking Changeもあり、Migration guideが用意されている
Ember.js - Ember.js 1.12 and 1.13 Beta (Glimmer!) Released
emberjs.com/blog/2015/05/13/ember-1-12-released.html
Ember.js 1.12と1.13 Betaリリース。
computeにgetter/setterを使った方法を追加、併せてDecoratorsを使った方法をサポートする予定
Backbone.js
Backbone.js 1.2.0リリース
Viewの作成などをhookする機能の追加、モデルの"update"イベントの追加、ユニークidとなる
modeld
の追加、ES6 modulesとして読み込んでも使えるように修正
- Use Function("return this") to get global? · Issue #2152 · jashkenas/underscore
- ES6 moduleのtop levelにある`this`の値は何になるのか? | Web Scratch
Firefox — Notes (38.0) — Mozilla
www.mozilla.org/en-US/firefox/38.0/releasenotes/
Firefox 38.0リリース。
Ruby要素のサポート、WebSocketがWeb Workerで動作するように、BroadcastChannel API、
srcset
属性とpicture要素のサポート、開発者ツールでcopy
関数のサポートなど
- Ruby support in Firefox Developer Edition 38 ✩ Mozilla Hacks – the Web developer blog
- Trainspotting: Firefox 38 ✩ Mozilla Hacks – the Web developer blog
- Firefox 38の性能を検証 ゲーム・プラットフォームとしての優秀さを示す - Mozilla Flux
- Firefox 38 for developers - Mozilla | MDN
- Firefox 38 サイト互換性情報 - Mozilla | MDN
- HTML5 Web Messaging is a W3C Recommendation | W3C News
babel/CHANGELOG.md at v5.3.0 · babel/babel
github.com/babel/babel/blob/v5.3.0/CHANGELOG.md#530
Babel 5.3.0リリース。
5.2.0からの主な変更点としては
es7.trailingCommas
transformerの仕様追従、retainLines
のオプション追加など
アーティクル
Why Babel Matters
codemix.com/blog/why-babel-matters
Babelの基本的な機能の紹介、ES.nextと言われるようなまだ標準化されてない仕様の対応、Babel pluginでのコードの最適化や型チェック、マクロなどASTを扱うプラットフォームとして見るBabelについて
Function Bind Syntax · Babel
babeljs.io/blog/2015/05/14/function-bind
Babel 5.4でES.nextで提案されているStage 0の
::
によるBind構文の変換をサポート。Function Bind Syntaxの挙動についての解説
We Tested How Googlebot Crawls Javascript And Here's What We Learned
searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157
Google検索botがどこまでJavaScript等を解釈してクロールしているかの調査
ES6 In Depth: Template strings ✩ Mozilla Hacks – the Web developer blog
hacks.mozilla.org/2015/05/es6-in-depth-template-strings-2/
Template stringsについて。
Backtickから始まるtemplate literalやtagged templateについて
Dev.Opera — The State of Web Type
dev.opera.com/articles/state-of-web-type/
OpenTypeフォントに関する機能のブラウザサポートの状況についてのまとめ。
JustificationとHyphenation、Font Loadingについてなど
ブラウザでビジュアルテストをするreftest-runnerを作った | Web Scratch
efcl.info/2015/05/14/reftest-runner/
ブラウザの描画結果を比較する自動テストライブラリとコマンドラインツール。
2つのHTMLを用意して表示結果が一致するかどうかテストをするので、Canvasのテストなどに利用できる
A Complete Guide to SVG Fallbacks | CSS-Tricks
css-tricks.com/a-complete-guide-to-svg-fallbacks/
SVG Fallbackのまとめ
Bringing Node.js to Windows 10 IoT Core
blogs.windows.com/buildingapps/2015/05/12/bringing-node-js-to-windows-10-iot-core/
Chakra JavaScriptエンジンを使ったNode.jsのforkが公開された。
BroadcastChannel API in Firefox 38 ✩ Mozilla Hacks – the Web developer blog
hacks.mozilla.org/2015/02/broadcastchannel-api-in-firefox-38/
Firefox 38.0でBroadcastChannel APIが実装された。
同じchannelを指定すれば、異なるタブやウィンドウ間でもメッセージのやり取りができるようになるAPI。
Blobデータのやりとりも可能
スライド、動画関係
Do not Measure the Weather
計測と最適化の問題についてのスライド。
JSエンジンはJITコンパイルするため計測結果は未最適化+最適化になる。
場合によっては計測対象がdead codeとなり最適化によって消えているかもしれないので、計測できていないケースも存在する。
そのことを実際にIRHydra2を使って検証する話
Making a Silky Smooth Web // Speaker Deck
speakerdeck.com/paullewis/making-a-silky-smooth-web
JavaScript->Style->Layout->Paint->Compositeという表示までの流れをきれいに行う方法や開発者ツールの使い方について。
requestAnimationFrameの活用
サイト、サービス、ドキュメント
State of Web Type
ウェブフォントとtypographic機能別のブラウザサポート状況をまとめているサイト
ソフトウェア、ツール、ライブラリ関係
codemix/babel-plugin-typecheck · GitHub
github.com/codemix/babel-plugin-typecheck
flowtypeアノテーションからランタイム型チェックのコードへ変換するBabel plugin
hit9/ntt
小さなテストモジュール。
テストコードそのもので実行できるので、Mochaなどのようにrunnerにあたる部分は不要となってる
watermark.js - watermarks in the browser
brianium.github.io/watermarkjs/
画像のwatermarkを付けるライブラリ
Quench: The Gulp file generator.
CSS、JavaScript、Imageについての項目を入力してgulpfileを生成してくれるツール。
leebyron/testcheck-js
github.com/leebyron/testcheck-js
QuickCheckライブラリ。
JasmineとMochaの拡張が用意されてる