Ember.jsチームはバージョン1.5をリリースした。チームの中核メンバであるRobert Jackson氏によれば、新しいテスト機能や“より優れたUXを提供する”URLアップデートが提供される。
Jackson氏はEmber.jsのブログに今回の新しいバージョンは、新しい機能追加と“多くのバグ修正、小さな改善”を行ったものだと説明している。
バージョン1.5にはプリミティブな値をロギングするHandlebarが含まれている。氏が言うには、この機能を使うことで”テンプレートに含まれているプリミティブな値(文字列、数値など)をログ出力できます"。前のバージョンのEmber.jsでは、{{log}}ヘルパはバインドされたプロパティの中身を見ることしかできなかった。
今回のリリースの新しいテストヘルパにはcurrentRouteName、currentPath、currentURLが含まれており、“アプリケーションのルーティングの状態をアサーションするのが簡単になる"という。
Handlebarのロギングやテストヘルパとともに、ember.js 1.5ではEmber.computed.oneWayが変わった。また、Ember.isBlankショートカットが導入された。ある特定のオブジェクトが空か空文字列かを判定するためだ。
以前のバージョンでは、データがバックアップを増やしてしまうのを防ぐため、ユーザは“Ember.computed.oneWay('foo').readOnly()”を実行する必要があった。新しいリリースでは“Ember.computed.readOnly('foo')” を使っても同じ結果が得られる。
その他の新しい機能としてURLのアップデートがある。“以前のバージョンでは、アドレスバーのURLはトランジッションの最後でだけ更新されました。今回の変更によって、同じ実行ループの中でトランジッションが中断/リダイレクトされない限り、URLのアップデートを即時で行うようになります。これによって、99%の時間でUXが改善します。”とJackson氏は言う。
注目すべきバグ修正は、_superを規則外で使った場合の問題の修正だ。以前のバージョンでは、ある関数名で複数回_superが呼ばれると無限ループになってしまい、止められないという問題があった。Jackson氏はこのバグ修正の影響を受ける人に#4632へコメントするよう呼びかけた。
また、その他のバグ修正は以下の通り。
- run.bindがコールバックからの引数を保持するようにした。
- Ember.copyがDateをサポート。
- 親クラスで定義されたlayoutName付きのコンポーネントがtemplateNameを定義できるようにした。
- PromiseProxyMixinがisFulfilledとisRejectedをリセットするようにした。
今回のバージョンアップに対するコミュニティの大半の反応は好意的だ。Adrian Meredith氏はブログで、“クエリパラメータが処理されるのはいつなのか...なぜこの問題の優先度がこんなに低いのか。だれも自分たちのアプリの中を検索していないのではないかと思います。"と書いている。
Ilya Radchenko氏はresponded “優先度が低いわけではありません。チームは正しくやろうとしています。とても重要な機能であり、難しい問題だからです。"と書いている。チームの中核メンバであるAlex Matchneer氏もこの考えに同意し、“優先度はとても高いです...私たちはこのやり方を推奨しているのではないのですが、多くのユーザがプロダクション環境で問題なくquery-params-newを使っています。”と付け加えている。
Ember.jsのディスカッションフォーラムではあるユーザが“バージョンが1.4.0から1.5.0になって性能が大幅に悪化している”と指摘し、“私のアプリは5秒かかっていたホームページのロードが30秒になってしまった。"と書いている。
性能の劣化はこの記事の執筆時点では確認されていないが、チームの中核メンバであるStefan Penner氏は、“そうでないことを祈りますが、私の性能改善に関係しているのかもしれません。いくつかの大規模アプリでテストをしていますが、性能は改善したというテスト結果しか得られていません。"と書いている。
1.5のリリース発表と同時にバージョン1.6のベータも発表された。新しい機能、キャッシュのルックアップの性能改善が行われている。