Tenkoは、ソフトウェア技術者Peter van der Zee氏がJavaScriptで著した、100パーセント仕様準拠のJavaScriptパーザだ。ES6からES2020までの構文解析と言語機能をフルサポートする。
Tenkoには多くの機能がある。言語仕様だけでなく、Estree、Acron、Babel、オプショナルチェイニングAST用の抽象構文木(AST)もオプションでサポートする。
Tenkoには33,000以上の入力構文テストがあり、現行のES test262スイートをパスする。WebベースのREPLも用意されているので、さまざまなオプションでパーザを試すことができる。REPLはES Modulesを使用しているため、実行にはESモジュールローディングをネイティブサポートするブラウザが必要だ。
専用のES5モジュールは備えていないが、include functrion文や重複するオブジェクトキーを使用しないことなど、ES5とES6の間にある仔細な非互換性をコードベースで使用していないことから、一般的なES5コードであれば問題なく動作する。
Tenkoを開発した理由について、van der Zee氏は次のように述べている。
TenkoはWeb互換モードを明示的に切り替えたり、特定のEcmaScriptバージョン(6以降)を対象に解析することが可能です。新しい機能を持たない特定環境を動作保証対象にする必要のある開発者にとっては、これが関心事となる可能性があります。現存するパーザはすべてデフォルトでWeb互換モードを持っていて、これを無効にする手段はないようです。ラフな構文と厳格な構文を切り替えられるものはいくつかありますが、大部分は全部を混ぜ合わせたひとつのモードしか持っていません。
Tenkoは他のいくつかのJavaScriptパーザと同じように、ごく初期の開発段階にある。コードベースはオープンソースソフトウェアで、Tenko GitHubプロジェクト経由でコントリビューションを受け付けている。注意すべきなのは、このプロジェクトはまだオープンソースライセンスの選択中であることだ。Tenkoが実験レベルを越えて活用されるには、これが定義される必要がある。