latest log

酩酊状態で書いたエンジニアポエムです。酩酊状態で読んでください。

I am expecting to iOS 9.0 Mobile Safari features.

iOS 9.0 に入るかもしれない機能をまとめてみました。公式なものではないため参考程度にお願いします。

WebKit 公式の Feature Status もご覧ください。

(ε・ ワ ・)з 40〜50時間ぐらいドブに捨てて書いている気がしますが、2分で読めます

via https://github.com/uupaa/WebKitChangeLog/wiki/iOS9.x.x.changesets

WebKit 600.1.4 以降の変化をまとめました。
WebKit の Changeset から読み取れる情報を元に構成されており、検証中のものが多く含まれています。あくまで予想です。

  • HTML/DOM
    • node.style.webkitFontFeatureSettings が実装されました
    • DocumentFragmentgetElementById が実装されました
    • Document.scrollingElement が実装されました
    • <img srcset sizes> の一部機能が実装されました
    • ForceMouseEvent が実装されました
    • <attachment> の一部機能が実装されました
  • CSS
    • CSS 4 の実装が始まりました
    • calc() の不具合が多数修正されました
    • CSS calc で grad や ms などの単位系が利用可能になりました
    • CSS -webkit-animation-* のプレフィックスが取れました
    • CSS -webkit-transform-* のプレフィックスが取れました
    • CSS mix-blend-mode:plus-lighter"mix-blend-mode:plus-darker が実装されました
    • CSS font-synthesis が実装されました
    • CSS Animations Level 2 のサポートに向けた作業が開始されました。CSS_ANIMATIONS_LEVEL_2
      • -webkit-animation-trigger
    • word-break:keep-all が実装されました
    • [CSS] -webkit-appearance: -apple-airplay が実装されました
  • JavaScript
    • ES7 の一部機能が実装されています
      • Array#includes
    • ES6 の大部分の機能が実装されています
      • 以下は実装中のため iOS 9.0 では利用できません
        • ES6 Modules, ES6 Reflect, ES6 Tail Call Elimination
      • 以下の機能が利用できます
        • class A extends B { super }
        • Object.is, Object.assign, Object.getOwnPropertySymbols
        • Object.setPrototypeOf, Object Literal Property Value Shorthand
        • String Iterator, String.fromCodePoint, String.codePointAt
        • String#repeat, String#startWith, String#endWith, String#includes
        • String.raw
        • Unicode code point escape
        • template literals
        • Tagged templates
        • Array.from, Array.of, Array#values, Array#copyWithin
        • TypedArray#forEach, map, some, every, reduce...
        • Number.isNaN, Number.isSafeInteger
        • Number.EPSILON, Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER
        • Number.isFinite, Number.isInteger, Number.parseFloat, Number.parseInt
        • Math.clz32
        • RegExp#flags,
        • WeakSet
        • Symbol
        • console.table
        • Octet literal と Binary literal の実装が入りました
      • Promise.cast() が削除されました
    • performance.now() が iOS 9.0 βで復活しています(パフォーマンス上の理由から iOS 8.1 で OFF になっていました)
    • ES6 のテンプレート文字列を node.cloneNode(true)できない不具合が修正されました
    • 非アクティブなページではバッテリーの消費を抑えるためGPSがOFFになります
    • [INTL] [i18n] API が実装されました
    • [iOS] Update presentation mode JS API to using 'picture-in-picture'
    • JSON.stringify( "..." ) が12%速くなりました。クォート処理に対する最適化が行われました
    • JSON.stringify( Int32 ) が2倍速になりました。Int32 に対する最適化が行われました
  • Canvas
    • drawImage() の security hole が修正されました
    • 多数のCanvasを持つページにおけるCanvasのキャッシュヒット率が改善されました
    • ctx.ellipse() が実装されました
    • iOS Mobile Safari における Canvas の最大サイズが 2048 x 2048 から 16384 x 16384 に変更されました
  • Stream
    • Stream の実装が始まりました
  • SVG
    • -webkit-mask-image が実装されました
  • WebGL
    • WebGL2 の実装が始まりました
    • 幾つかの WebGL1 extension がサポートされました
  • Web Notifications
    • Web Notifications の実装が始まりました
  • WebRTC
    • 実装が進んでいます
  • WebSQL
    • WebWorkers で WebSQL が利用不能になりました
  • WebWorkers
    • SharedWorkers が再び利用不能になりました
  • WebAudio
    • WebAudio 再生中に電話がかかってくると WebAudio をリスタートできない不具合が修正されました
  • MediaSession
    • 実装が始まりました
  • WebAssembly
    • WebAssembly の実装が始まりました
  • WebComponents, Shadow DOM, Custom Elements, HTML imports
    • しばらくは実装する予定がないそうです
  • その他
    • viewport の外にあるサブフレーム(描画する必要がないフレーム)で発生する requestAnimationFrame と DOMTimer はスロットリング(間引き)が行われます

(ε・◇・)з o O ( 最近は ES6 Modules や Reflect などの機能を、@Constellation さんが実装なさっております
(ε・◇・)з o O ( みなさんも @Constellation さんを応援しましょう!