emscripten_sleep() の以下のソース、理解が出来ない。JSに不慣れだから余計。
誰か助けて欲しい。emscripten は、少なくとも asm.js 形式だと、JS から、
JS の emscripten_sleep() 関数を単純に呼び出している。
以下の、{{{・・・}}} の三重括弧や、callback の部分の意味が理解できない。

[x:\yyyy\emsdk\emscripten\1.38.21\src\library_async.js]
mergeInto(LibraryManager.library, {
#if ASYNCIFY
 ・・・
 emscripten_async_resume: function() {
  var callback = 0;
  ___async = 0;
  ___async_unwind = 1;
  while (1) {
   if (!___async_cur_frame) return;
   callback = {{{ makeGetValueAsm('___async_cur_frame', 8, 'i32') }}};
   // the signature of callback is always vi
   // the only argument is ctx
   {{{ makeDynCall('vi') }}}(callback | 0, (___async_cur_frame + 8)|0);
   if (___async) return; // that was an async call
   if (!___async_unwind) {
    // keep the async stack
    ___async_unwind = 1;
    continue;
   }
   // unwind normal stack frame
   stackRestore({{{ makeGetValueAsm('___async_cur_frame', 4, 'i32') }}});
   // pop the last async stack frame
   ___async_cur_frame = {{{ makeGetValueAsm('___async_cur_frame', 0, 'i32') }}};
  }
 },