NWSTK
ブラウザ上のWebAssembly版においてキーイベントハンドラやメニューハンドラの中で独自のメッセージループを書いた場合、内部的には単純な無限ループではなく、プラットフォームの(見えない)イベントキューに自動的に一旦戻り、生のイベントが発生すると、関数が巻き戻されて、条件をチェックする、ということが条件が満たされるまで繰り返される。このときに用いられている技術は、大域ジャンプを強化したようなものである。大域ジャンプでは、一方向にしかジャンプできないが、SuperCでは、スタックの情報を上手く記録することにより、双方向にジャンプできるようになっている。なお、通常のプラットフォームでは、関数の戻り値を記録するスタックとローカルオート変数を記録するスタックが共通であるため、その共通スタックだけを記録すれば比較的簡単にこの機能が実現できる。しかし、LLVMでは、関数の戻りアドレスを記録するスタックとローカルオート変数を記録するスタックが別であるし、スタックの内容を単純なバイト列としてコピーしたり、スタックポインタをLLVMアセンブラレベルで独自に再設定するのも禁止に近いため、単純には行かない。SuperCでは、生のイベントキューに戻る際には、LLVMのret文を複数回連続して使い、逆に関数の場所に戻る時には、LLVMのcall文を関数の呼び出し階層数と同じ回数だけ使っている。その際、関数の仮引数も必要あらば設定し直している。