タグ

Javascriptとv8に関するhigedのブックマーク (1)

  • 明示的な末尾呼び出し最適化構文が実装された - JS.next

    概要 ES2015で特定の形で関数呼び出しがされている場合に末尾呼び出し最適化が行われるよう定められたが、 パフォーマンスや、デバッグなどの実装上の問題が浮上したため、それを解決するための新たな構文がV8で実装されたが、その後廃止された 説明 具体的には、strictモードの是非を問わず、「 return continue fn() 」という形での呼び出しについて最適化が有効になる。 (詳細は明示的でない末尾呼び出し最適化の記事をご覧ください) 最適化が効く例: function fn( n ) { 'use strict' if ( n <= 0 ) { return 'done!' } return continue fn( n - 1 ) } fn( 1e6 ) // "done!" 最適化が効かない例: function fn( n ) { 'use strict' if ( n

    明示的な末尾呼び出し最適化構文が実装された - JS.next
    higed
    higed 2016/06/20
    V8で末尾最適化を命令する構文がES8で実装される予定。"return continue func()"で、明示する。構文エラーとして最適化できない場合を検出できるため、コンパイルエラーとして検出できる機構になっている。
  • 1