basis_transcoder.js 83 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232
  1. var BASIS = function() {
  2. var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0;
  3. if (typeof __filename !== "undefined")
  4. _scriptDir = _scriptDir || __filename;
  5. return function(BASIS2) {
  6. BASIS2 = BASIS2 || {};
  7. var Module = typeof BASIS2 !== "undefined" ? BASIS2 : {};
  8. var readyPromiseResolve, readyPromiseReject;
  9. Module["ready"] = new Promise(function(resolve, reject) {
  10. readyPromiseResolve = resolve;
  11. readyPromiseRejectza = reject;
  12. });
  13. var moduleOverrides = {};
  14. var key;
  15. for (key in Module) {
  16. if (Module.hasOwnProperty(key)) {
  17. moduleOverrides[key] = Module[key];
  18. }
  19. }
  20. var arguments_ = [];
  21. var thisProgram = "./this.program";
  22. var quit_ = function(status, toThrow) {
  23. throw toThrow;
  24. };
  25. var ENVIRONMENT_IS_WEB = false;
  26. var ENVIRONMENT_IS_WORKER = false;
  27. var ENVIRONMENT_IS_NODE = false;
  28. var ENVIRONMENT_IS_SHELL = false;
  29. ENVIRONMENT_IS_WEB = typeof window === "object";
  30. ENVIRONMENT_IS_WORKER = typeof importScripts === "function";
  31. ENVIRONMENT_IS_NODE = typeof process === "object" && typeof process.versions === "object" && typeof process.versions.node === "string";
  32. ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
  33. var scriptDirectory = "";
  34. function locateFile(path) {
  35. if (Module["locateFile"]) {
  36. return Module["locateFile"](path, scriptDirectory);
  37. }
  38. return scriptDirectory + path;
  39. }
  40. var read_, readAsync, readBinary, setWindowTitle;
  41. var nodeFS;
  42. var nodePath;
  43. if (ENVIRONMENT_IS_NODE) {
  44. if (ENVIRONMENT_IS_WORKER) {
  45. scriptDirectory = require("path").dirname(scriptDirectory) + "/";
  46. } else {
  47. scriptDirectory = __dirname + "/";
  48. }
  49. read_ = function shell_read(filename, binary) {
  50. if (!nodeFS)
  51. nodeFS = require("fs");
  52. if (!nodePath)
  53. nodePath = require("path");
  54. filename = nodePath["normalize"](filename);
  55. return nodeFS["readFileSync"](filename, binary ? null : "utf8");
  56. };
  57. readBinary = function readBinary2(filename) {
  58. var ret = read_(filename, true);
  59. if (!ret.buffer) {
  60. ret = new Uint8Array(ret);
  61. }
  62. assert(ret.buffer);
  63. return ret;
  64. };
  65. if (process["argv"].length > 1) {
  66. thisProgram = process["argv"][1].replace(/\\/g, "/");
  67. }
  68. arguments_ = process["argv"].slice(2);
  69. process["on"]("uncaughtException", function(ex) {
  70. if (!(ex instanceof ExitStatus)) {
  71. throw ex;
  72. }
  73. });
  74. process["on"]("unhandledRejection", abort);
  75. quit_ = function(status) {
  76. process["exit"](status);
  77. };
  78. Module["inspect"] = function() {
  79. return "[Emscripten Module object]";
  80. };
  81. } else if (ENVIRONMENT_IS_SHELL) {
  82. if (typeof read != "undefined") {
  83. read_ = function shell_read(f) {
  84. return read(f);
  85. };
  86. }
  87. readBinary = function readBinary2(f) {
  88. var data;
  89. if (typeof readbuffer === "function") {
  90. return new Uint8Array(readbuffer(f));
  91. }
  92. data = read(f, "binary");
  93. assert(typeof data === "object");
  94. return data;
  95. };
  96. if (typeof scriptArgs != "undefined") {
  97. arguments_ = scriptArgs;
  98. } else if (typeof arguments != "undefined") {
  99. arguments_ = arguments;
  100. }
  101. if (typeof quit === "function") {
  102. quit_ = function(status) {
  103. quit(status);
  104. };
  105. }
  106. if (typeof print !== "undefined") {
  107. if (typeof console === "undefined")
  108. console = {};
  109. console.log = print;
  110. console.warn = console.error = typeof printErr !== "undefined" ? printErr : print;
  111. }
  112. } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
  113. if (ENVIRONMENT_IS_WORKER) {
  114. scriptDirectory = self.location.href;
  115. } else if (typeof document !== "undefined" && document.currentScript) {
  116. scriptDirectory = document.currentScript.src;
  117. }
  118. if (_scriptDir) {
  119. scriptDirectory = _scriptDir;
  120. }
  121. if (scriptDirectory.indexOf("blob:") !== 0) {
  122. scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf("/") + 1);
  123. } else {
  124. scriptDirectory = "";
  125. }
  126. {
  127. read_ = function(url) {
  128. var xhr = new XMLHttpRequest();
  129. xhr.open("GET", url, false);
  130. xhr.send(null);
  131. return xhr.responseText;
  132. };
  133. if (ENVIRONMENT_IS_WORKER) {
  134. readBinary = function(url) {
  135. var xhr = new XMLHttpRequest();
  136. xhr.open("GET", url, false);
  137. xhr.responseType = "arraybuffer";
  138. xhr.send(null);
  139. return new Uint8Array(xhr.response);
  140. };
  141. }
  142. readAsync = function(url, onload, onerror) {
  143. var xhr = new XMLHttpRequest();
  144. xhr.open("GET", url, true);
  145. xhr.responseType = "arraybuffer";
  146. xhr.onload = function() {
  147. if (xhr.status == 200 || xhr.status == 0 && xhr.response) {
  148. onload(xhr.response);
  149. return;
  150. }
  151. onerror();
  152. };
  153. xhr.onerror = onerror;
  154. xhr.send(null);
  155. };
  156. }
  157. setWindowTitle = function(title) {
  158. document.title = title;
  159. };
  160. } else {
  161. }
  162. var out = Module["print"] || console.log.bind(console);
  163. var err = Module["printErr"] || console.warn.bind(console);
  164. for (key in moduleOverrides) {
  165. if (moduleOverrides.hasOwnProperty(key)) {
  166. Module[key] = moduleOverrides[key];
  167. }
  168. }
  169. moduleOverrides = null;
  170. if (Module["arguments"])
  171. arguments_ = Module["arguments"];
  172. if (Module["thisProgram"])
  173. thisProgram = Module["thisProgram"];
  174. if (Module["quit"])
  175. quit_ = Module["quit"];
  176. var tempRet0 = 0;
  177. var setTempRet0 = function(value) {
  178. tempRet0 = value;
  179. };
  180. var wasmBinary;
  181. if (Module["wasmBinary"])
  182. wasmBinary = Module["wasmBinary"];
  183. var noExitRuntime = Module["noExitRuntime"] || true;
  184. if (typeof WebAssembly !== "object") {
  185. abort("no native wasm support detected");
  186. }
  187. var wasmMemory;
  188. var ABORT = false;
  189. var EXITSTATUS;
  190. function assert(condition, text) {
  191. if (!condition) {
  192. abort("Assertion failed: " + text);
  193. }
  194. }
  195. var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : void 0;
  196. function UTF8ArrayToString(heap, idx, maxBytesToRead) {
  197. var endIdx = idx + maxBytesToRead;
  198. var endPtr = idx;
  199. while (heap[endPtr] && !(endPtr >= endIdx))
  200. ++endPtr;
  201. if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) {
  202. return UTF8Decoder.decode(heap.subarray(idx, endPtr));
  203. } else {
  204. var str = "";
  205. while (idx < endPtr) {
  206. var u0 = heap[idx++];
  207. if (!(u0 & 128)) {
  208. str += String.fromCharCode(u0);
  209. continue;
  210. }
  211. var u1 = heap[idx++] & 63;
  212. if ((u0 & 224) == 192) {
  213. str += String.fromCharCode((u0 & 31) << 6 | u1);
  214. continue;
  215. }
  216. var u2 = heap[idx++] & 63;
  217. if ((u0 & 240) == 224) {
  218. u0 = (u0 & 15) << 12 | u1 << 6 | u2;
  219. } else {
  220. u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heap[idx++] & 63;
  221. }
  222. if (u0 < 65536) {
  223. str += String.fromCharCode(u0);
  224. } else {
  225. var ch = u0 - 65536;
  226. str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
  227. }
  228. }
  229. }
  230. return str;
  231. }
  232. function UTF8ToString(ptr, maxBytesToRead) {
  233. return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
  234. }
  235. function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {
  236. if (!(maxBytesToWrite > 0))
  237. return 0;
  238. var startIdx = outIdx;
  239. var endIdx = outIdx + maxBytesToWrite - 1;
  240. for (var i = 0; i < str.length; ++i) {
  241. var u = str.charCodeAt(i);
  242. if (u >= 55296 && u <= 57343) {
  243. var u1 = str.charCodeAt(++i);
  244. u = 65536 + ((u & 1023) << 10) | u1 & 1023;
  245. }
  246. if (u <= 127) {
  247. if (outIdx >= endIdx)
  248. break;
  249. heap[outIdx++] = u;
  250. } else if (u <= 2047) {
  251. if (outIdx + 1 >= endIdx)
  252. break;
  253. heap[outIdx++] = 192 | u >> 6;
  254. heap[outIdx++] = 128 | u & 63;
  255. } else if (u <= 65535) {
  256. if (outIdx + 2 >= endIdx)
  257. break;
  258. heap[outIdx++] = 224 | u >> 12;
  259. heap[outIdx++] = 128 | u >> 6 & 63;
  260. heap[outIdx++] = 128 | u & 63;
  261. } else {
  262. if (outIdx + 3 >= endIdx)
  263. break;
  264. heap[outIdx++] = 240 | u >> 18;
  265. heap[outIdx++] = 128 | u >> 12 & 63;
  266. heap[outIdx++] = 128 | u >> 6 & 63;
  267. heap[outIdx++] = 128 | u & 63;
  268. }
  269. }
  270. heap[outIdx] = 0;
  271. return outIdx - startIdx;
  272. }
  273. function stringToUTF8(str, outPtr, maxBytesToWrite) {
  274. return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
  275. }
  276. function lengthBytesUTF8(str) {
  277. var len = 0;
  278. for (var i = 0; i < str.length; ++i) {
  279. var u = str.charCodeAt(i);
  280. if (u >= 55296 && u <= 57343)
  281. u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;
  282. if (u <= 127)
  283. ++len;
  284. else if (u <= 2047)
  285. len += 2;
  286. else if (u <= 65535)
  287. len += 3;
  288. else
  289. len += 4;
  290. }
  291. return len;
  292. }
  293. var UTF16Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le") : void 0;
  294. function UTF16ToString(ptr, maxBytesToRead) {
  295. var endPtr = ptr;
  296. var idx = endPtr >> 1;
  297. var maxIdx = idx + maxBytesToRead / 2;
  298. while (!(idx >= maxIdx) && HEAPU16[idx])
  299. ++idx;
  300. endPtr = idx << 1;
  301. if (endPtr - ptr > 32 && UTF16Decoder) {
  302. return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));
  303. } else {
  304. var str = "";
  305. for (var i = 0; !(i >= maxBytesToRead / 2); ++i) {
  306. var codeUnit = HEAP16[ptr + i * 2 >> 1];
  307. if (codeUnit == 0)
  308. break;
  309. str += String.fromCharCode(codeUnit);
  310. }
  311. return str;
  312. }
  313. }
  314. function stringToUTF16(str, outPtr, maxBytesToWrite) {
  315. if (maxBytesToWrite === void 0) {
  316. maxBytesToWrite = 2147483647;
  317. }
  318. if (maxBytesToWrite < 2)
  319. return 0;
  320. maxBytesToWrite -= 2;
  321. var startPtr = outPtr;
  322. var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;
  323. for (var i = 0; i < numCharsToWrite; ++i) {
  324. var codeUnit = str.charCodeAt(i);
  325. HEAP16[outPtr >> 1] = codeUnit;
  326. outPtr += 2;
  327. }
  328. HEAP16[outPtr >> 1] = 0;
  329. return outPtr - startPtr;
  330. }
  331. function lengthBytesUTF16(str) {
  332. return str.length * 2;
  333. }
  334. function UTF32ToString(ptr, maxBytesToRead) {
  335. var i = 0;
  336. var str = "";
  337. while (!(i >= maxBytesToRead / 4)) {
  338. var utf32 = HEAP32[ptr + i * 4 >> 2];
  339. if (utf32 == 0)
  340. break;
  341. ++i;
  342. if (utf32 >= 65536) {
  343. var ch = utf32 - 65536;
  344. str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
  345. } else {
  346. str += String.fromCharCode(utf32);
  347. }
  348. }
  349. return str;
  350. }
  351. function stringToUTF32(str, outPtr, maxBytesToWrite) {
  352. if (maxBytesToWrite === void 0) {
  353. maxBytesToWrite = 2147483647;
  354. }
  355. if (maxBytesToWrite < 4)
  356. return 0;
  357. var startPtr = outPtr;
  358. var endPtr = startPtr + maxBytesToWrite - 4;
  359. for (var i = 0; i < str.length; ++i) {
  360. var codeUnit = str.charCodeAt(i);
  361. if (codeUnit >= 55296 && codeUnit <= 57343) {
  362. var trailSurrogate = str.charCodeAt(++i);
  363. codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;
  364. }
  365. HEAP32[outPtr >> 2] = codeUnit;
  366. outPtr += 4;
  367. if (outPtr + 4 > endPtr)
  368. break;
  369. }
  370. HEAP32[outPtr >> 2] = 0;
  371. return outPtr - startPtr;
  372. }
  373. function lengthBytesUTF32(str) {
  374. var len = 0;
  375. for (var i = 0; i < str.length; ++i) {
  376. var codeUnit = str.charCodeAt(i);
  377. if (codeUnit >= 55296 && codeUnit <= 57343)
  378. ++i;
  379. len += 4;
  380. }
  381. return len;
  382. }
  383. function alignUp(x, multiple) {
  384. if (x % multiple > 0) {
  385. x += multiple - x % multiple;
  386. }
  387. return x;
  388. }
  389. var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
  390. function updateGlobalBufferAndViews(buf) {
  391. buffer = buf;
  392. Module["HEAP8"] = HEAP8 = new Int8Array(buf);
  393. Module["HEAP16"] = HEAP16 = new Int16Array(buf);
  394. Module["HEAP32"] = HEAP32 = new Int32Array(buf);
  395. Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf);
  396. Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf);
  397. Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf);
  398. Module["HEAPF32"] = HEAPF32 = new Float32Array(buf);
  399. Module["HEAPF64"] = HEAPF64 = new Float64Array(buf);
  400. }
  401. var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216;
  402. var wasmTable;
  403. var __ATPRERUN__ = [];
  404. var __ATINIT__ = [];
  405. var __ATMAIN__ = [];
  406. var __ATPOSTRUN__ = [];
  407. var runtimeInitialized = false;
  408. function preRun() {
  409. if (Module["preRun"]) {
  410. if (typeof Module["preRun"] == "function")
  411. Module["preRun"] = [Module["preRun"]];
  412. while (Module["preRun"].length) {
  413. addOnPreRun(Module["preRun"].shift());
  414. }
  415. }
  416. callRuntimeCallbacks(__ATPRERUN__);
  417. }
  418. function initRuntime() {
  419. runtimeInitialized = true;
  420. callRuntimeCallbacks(__ATINIT__);
  421. }
  422. function preMain() {
  423. callRuntimeCallbacks(__ATMAIN__);
  424. }
  425. function postRun() {
  426. if (Module["postRun"]) {
  427. if (typeof Module["postRun"] == "function")
  428. Module["postRun"] = [Module["postRun"]];
  429. while (Module["postRun"].length) {
  430. addOnPostRun(Module["postRun"].shift());
  431. }
  432. }
  433. callRuntimeCallbacks(__ATPOSTRUN__);
  434. }
  435. function addOnPreRun(cb) {
  436. __ATPRERUN__.unshift(cb);
  437. }
  438. function addOnInit(cb) {
  439. __ATINIT__.unshift(cb);
  440. }
  441. function addOnPostRun(cb) {
  442. __ATPOSTRUN__.unshift(cb);
  443. }
  444. var runDependencies = 0;
  445. var runDependencyWatcher = null;
  446. var dependenciesFulfilled = null;
  447. function addRunDependency(id) {
  448. runDependencies++;
  449. if (Module["monitorRunDependencies"]) {
  450. Module["monitorRunDependencies"](runDependencies);
  451. }
  452. }
  453. function removeRunDependency(id) {
  454. runDependencies--;
  455. if (Module["monitorRunDependencies"]) {
  456. Module["monitorRunDependencies"](runDependencies);
  457. }
  458. if (runDependencies == 0) {
  459. if (runDependencyWatcher !== null) {
  460. clearInterval(runDependencyWatcher);
  461. runDependencyWatcher = null;
  462. }
  463. if (dependenciesFulfilled) {
  464. var callback = dependenciesFulfilled;
  465. dependenciesFulfilled = null;
  466. callback();
  467. }
  468. }
  469. }
  470. Module["preloadedImages"] = {};
  471. Module["preloadedAudios"] = {};
  472. function abort(what) {
  473. if (Module["onAbort"]) {
  474. Module["onAbort"](what);
  475. }
  476. what += "";
  477. err(what);
  478. ABORT = true;
  479. EXITSTATUS = 1;
  480. what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info.";
  481. var e = new WebAssembly.RuntimeError(what);
  482. readyPromiseReject(e);
  483. throw e;
  484. }
  485. function hasPrefix(str, prefix) {
  486. return String.prototype.startsWith ? str.startsWith(prefix) : str.indexOf(prefix) === 0;
  487. }
  488. var dataURIPrefix = "data:application/octet-stream;base64,";
  489. function isDataURI(filename) {
  490. return hasPrefix(filename, dataURIPrefix);
  491. }
  492. var fileURIPrefix = "file://";
  493. function isFileURI(filename) {
  494. return hasPrefix(filename, fileURIPrefix);
  495. }
  496. var wasmBinaryFile = "basis_transcoder.wasm";
  497. if (!isDataURI(wasmBinaryFile)) {
  498. wasmBinaryFile = locateFile(wasmBinaryFile);
  499. }
  500. function getBinary(file) {
  501. try {
  502. if (file == wasmBinaryFile && wasmBinary) {
  503. return new Uint8Array(wasmBinary);
  504. }
  505. if (readBinary) {
  506. return readBinary(file);
  507. } else {
  508. throw "both async and sync fetching of the wasm failed";
  509. }
  510. } catch (err2) {
  511. abort(err2);
  512. }
  513. }
  514. function getBinaryPromise() {
  515. if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {
  516. if (typeof fetch === "function" && !isFileURI(wasmBinaryFile)) {
  517. return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) {
  518. if (!response["ok"]) {
  519. throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
  520. }
  521. return response["arrayBuffer"]();
  522. }).catch(function() {
  523. return getBinary(wasmBinaryFile);
  524. });
  525. } else {
  526. if (readAsync) {
  527. return new Promise(function(resolve, reject) {
  528. readAsync(wasmBinaryFile, function(response) {
  529. resolve(new Uint8Array(response));
  530. }, reject);
  531. });
  532. }
  533. }
  534. }
  535. return Promise.resolve().then(function() {
  536. return getBinary(wasmBinaryFile);
  537. });
  538. }
  539. function createWasm() {
  540. var info = { "a": asmLibraryArg };
  541. function receiveInstance(instance, module2) {
  542. var exports3 = instance.exports;
  543. Module["asm"] = exports3;
  544. wasmMemory = Module["asm"]["K"];
  545. updateGlobalBufferAndViews(wasmMemory.buffer);
  546. wasmTable = Module["asm"]["O"];
  547. addOnInit(Module["asm"]["L"]);
  548. removeRunDependency("wasm-instantiate");
  549. }
  550. addRunDependency("wasm-instantiate");
  551. function receiveInstantiatedSource(output) {
  552. receiveInstance(output["instance"]);
  553. }
  554. function instantiateArrayBuffer(receiver) {
  555. return getBinaryPromise().then(function(binary) {
  556. var result = WebAssembly.instantiate(binary, info);
  557. return result;
  558. }).then(receiver, function(reason) {
  559. err("failed to asynchronously prepare wasm: " + reason);
  560. abort(reason);
  561. });
  562. }
  563. function instantiateAsync() {
  564. if (!wasmBinary && typeof WebAssembly.instantiateStreaming === "function" && !isDataURI(wasmBinaryFile) && !isFileURI(wasmBinaryFile) && typeof fetch === "function") {
  565. return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) {
  566. var result = WebAssembly.instantiateStreaming(response, info);
  567. return result.then(receiveInstantiatedSource, function(reason) {
  568. err("wasm streaming compile failed: " + reason);
  569. err("falling back to ArrayBuffer instantiation");
  570. return instantiateArrayBuffer(receiveInstantiatedSource);
  571. });
  572. });
  573. } else {
  574. return instantiateArrayBuffer(receiveInstantiatedSource);
  575. }
  576. }
  577. if (Module["instantiateWasm"]) {
  578. try {
  579. var exports2 = Module["instantiateWasm"](info, receiveInstance);
  580. return exports2;
  581. } catch (e) {
  582. err("Module.instantiateWasm callback failed with error: " + e);
  583. return false;
  584. }
  585. }
  586. instantiateAsync().catch(readyPromiseReject);
  587. return {};
  588. }
  589. function callRuntimeCallbacks(callbacks) {
  590. while (callbacks.length > 0) {
  591. var callback = callbacks.shift();
  592. if (typeof callback == "function") {
  593. callback(Module);
  594. continue;
  595. }
  596. var func = callback.func;
  597. if (typeof func === "number") {
  598. if (callback.arg === void 0) {
  599. wasmTable.get(func)();
  600. } else {
  601. wasmTable.get(func)(callback.arg);
  602. }
  603. } else {
  604. func(callback.arg === void 0 ? null : callback.arg);
  605. }
  606. }
  607. }
  608. var structRegistrations = {};
  609. function runDestructors(destructors) {
  610. while (destructors.length) {
  611. var ptr = destructors.pop();
  612. var del = destructors.pop();
  613. del(ptr);
  614. }
  615. }
  616. function simpleReadValueFromPointer(pointer) {
  617. return this["fromWireType"](HEAPU32[pointer >> 2]);
  618. }
  619. var awaitingDependencies = {};
  620. var registeredTypes = {};
  621. var typeDependencies = {};
  622. var char_0 = 48;
  623. var char_9 = 57;
  624. function makeLegalFunctionName(name) {
  625. if (void 0 === name) {
  626. return "_unknown";
  627. }
  628. name = name.replace(/[^a-zA-Z0-9_]/g, "$");
  629. var f = name.charCodeAt(0);
  630. if (f >= char_0 && f <= char_9) {
  631. return "_" + name;
  632. } else {
  633. return name;
  634. }
  635. }
  636. function createNamedFunction(name, body) {
  637. name = makeLegalFunctionName(name);
  638. return new Function("body", "return function " + name + '() {\n "use strict"; return body.apply(this, arguments);\n};\n')(body);
  639. }
  640. function extendError(baseErrorType, errorName) {
  641. var errorClass = createNamedFunction(errorName, function(message) {
  642. this.name = errorName;
  643. this.message = message;
  644. var stack = new Error(message).stack;
  645. if (stack !== void 0) {
  646. this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, "");
  647. }
  648. });
  649. errorClass.prototype = Object.create(baseErrorType.prototype);
  650. errorClass.prototype.constructor = errorClass;
  651. errorClass.prototype.toString = function() {
  652. if (this.message === void 0) {
  653. return this.name;
  654. } else {
  655. return this.name + ": " + this.message;
  656. }
  657. };
  658. return errorClass;
  659. }
  660. var InternalError = void 0;
  661. function throwInternalError(message) {
  662. throw new InternalError(message);
  663. }
  664. function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {
  665. myTypes.forEach(function(type) {
  666. typeDependencies[type] = dependentTypes;
  667. });
  668. function onComplete(typeConverters2) {
  669. var myTypeConverters = getTypeConverters(typeConverters2);
  670. if (myTypeConverters.length !== myTypes.length) {
  671. throwInternalError("Mismatched type converter count");
  672. }
  673. for (var i = 0; i < myTypes.length; ++i) {
  674. registerType(myTypes[i], myTypeConverters[i]);
  675. }
  676. }
  677. var typeConverters = new Array(dependentTypes.length);
  678. var unregisteredTypes = [];
  679. var registered = 0;
  680. dependentTypes.forEach(function(dt, i) {
  681. if (registeredTypes.hasOwnProperty(dt)) {
  682. typeConverters[i] = registeredTypes[dt];
  683. } else {
  684. unregisteredTypes.push(dt);
  685. if (!awaitingDependencies.hasOwnProperty(dt)) {
  686. awaitingDependencies[dt] = [];
  687. }
  688. awaitingDependencies[dt].push(function() {
  689. typeConverters[i] = registeredTypes[dt];
  690. ++registered;
  691. if (registered === unregisteredTypes.length) {
  692. onComplete(typeConverters);
  693. }
  694. });
  695. }
  696. });
  697. if (0 === unregisteredTypes.length) {
  698. onComplete(typeConverters);
  699. }
  700. }
  701. function __embind_finalize_value_object(structType) {
  702. var reg = structRegistrations[structType];
  703. delete structRegistrations[structType];
  704. var rawConstructor = reg.rawConstructor;
  705. var rawDestructor = reg.rawDestructor;
  706. var fieldRecords = reg.fields;
  707. var fieldTypes = fieldRecords.map(function(field) {
  708. return field.getterReturnType;
  709. }).concat(fieldRecords.map(function(field) {
  710. return field.setterArgumentType;
  711. }));
  712. whenDependentTypesAreResolved([structType], fieldTypes, function(fieldTypes2) {
  713. var fields = {};
  714. fieldRecords.forEach(function(field, i) {
  715. var fieldName = field.fieldName;
  716. var getterReturnType = fieldTypes2[i];
  717. var getter = field.getter;
  718. var getterContext = field.getterContext;
  719. var setterArgumentType = fieldTypes2[i + fieldRecords.length];
  720. var setter = field.setter;
  721. var setterContext = field.setterContext;
  722. fields[fieldName] = { read: function(ptr) {
  723. return getterReturnType["fromWireType"](getter(getterContext, ptr));
  724. }, write: function(ptr, o) {
  725. var destructors = [];
  726. setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o));
  727. runDestructors(destructors);
  728. } };
  729. });
  730. return [{ name: reg.name, "fromWireType": function(ptr) {
  731. var rv = {};
  732. for (var i in fields) {
  733. rv[i] = fields[i].read(ptr);
  734. }
  735. rawDestructor(ptr);
  736. return rv;
  737. }, "toWireType": function(destructors, o) {
  738. for (var fieldName in fields) {
  739. if (!(fieldName in o)) {
  740. throw new TypeError('Missing field: "' + fieldName + '"');
  741. }
  742. }
  743. var ptr = rawConstructor();
  744. for (fieldName in fields) {
  745. fields[fieldName].write(ptr, o[fieldName]);
  746. }
  747. if (destructors !== null) {
  748. destructors.push(rawDestructor, ptr);
  749. }
  750. return ptr;
  751. }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }];
  752. });
  753. }
  754. function getShiftFromSize(size) {
  755. switch (size) {
  756. case 1:
  757. return 0;
  758. case 2:
  759. return 1;
  760. case 4:
  761. return 2;
  762. case 8:
  763. return 3;
  764. default:
  765. throw new TypeError("Unknown type size: " + size);
  766. }
  767. }
  768. function embind_init_charCodes() {
  769. var codes = new Array(256);
  770. for (var i = 0; i < 256; ++i) {
  771. codes[i] = String.fromCharCode(i);
  772. }
  773. embind_charCodes = codes;
  774. }
  775. var embind_charCodes = void 0;
  776. function readLatin1String(ptr) {
  777. var ret = "";
  778. var c = ptr;
  779. while (HEAPU8[c]) {
  780. ret += embind_charCodes[HEAPU8[c++]];
  781. }
  782. return ret;
  783. }
  784. var BindingError = void 0;
  785. function throwBindingError(message) {
  786. throw new BindingError(message);
  787. }
  788. function registerType(rawType, registeredInstance, options) {
  789. options = options || {};
  790. if (!("argPackAdvance" in registeredInstance)) {
  791. throw new TypeError("registerType registeredInstance requires argPackAdvance");
  792. }
  793. var name = registeredInstance.name;
  794. if (!rawType) {
  795. throwBindingError('type "' + name + '" must have a positive integer typeid pointer');
  796. }
  797. if (registeredTypes.hasOwnProperty(rawType)) {
  798. if (options.ignoreDuplicateRegistrations) {
  799. return;
  800. } else {
  801. throwBindingError("Cannot register type '" + name + "' twice");
  802. }
  803. }
  804. registeredTypes[rawType] = registeredInstance;
  805. delete typeDependencies[rawType];
  806. if (awaitingDependencies.hasOwnProperty(rawType)) {
  807. var callbacks = awaitingDependencies[rawType];
  808. delete awaitingDependencies[rawType];
  809. callbacks.forEach(function(cb) {
  810. cb();
  811. });
  812. }
  813. }
  814. function __embind_register_bool(rawType, name, size, trueValue, falseValue) {
  815. var shift = getShiftFromSize(size);
  816. name = readLatin1String(name);
  817. registerType(rawType, { name, "fromWireType": function(wt) {
  818. return !!wt;
  819. }, "toWireType": function(destructors, o) {
  820. return o ? trueValue : falseValue;
  821. }, "argPackAdvance": 8, "readValueFromPointer": function(pointer) {
  822. var heap;
  823. if (size === 1) {
  824. heap = HEAP8;
  825. } else if (size === 2) {
  826. heap = HEAP16;
  827. } else if (size === 4) {
  828. heap = HEAP32;
  829. } else {
  830. throw new TypeError("Unknown boolean type size: " + name);
  831. }
  832. return this["fromWireType"](heap[pointer >> shift]);
  833. }, destructorFunction: null });
  834. }
  835. function ClassHandle_isAliasOf(other) {
  836. if (!(this instanceof ClassHandle)) {
  837. return false;
  838. }
  839. if (!(other instanceof ClassHandle)) {
  840. return false;
  841. }
  842. var leftClass = this.$$.ptrType.registeredClass;
  843. var left = this.$$.ptr;
  844. var rightClass = other.$$.ptrType.registeredClass;
  845. var right = other.$$.ptr;
  846. while (leftClass.baseClass) {
  847. left = leftClass.upcast(left);
  848. leftClass = leftClass.baseClass;
  849. }
  850. while (rightClass.baseClass) {
  851. right = rightClass.upcast(right);
  852. rightClass = rightClass.baseClass;
  853. }
  854. return leftClass === rightClass && left === right;
  855. }
  856. function shallowCopyInternalPointer(o) {
  857. return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType };
  858. }
  859. function throwInstanceAlreadyDeleted(obj) {
  860. function getInstanceTypeName(handle) {
  861. return handle.$$.ptrType.registeredClass.name;
  862. }
  863. throwBindingError(getInstanceTypeName(obj) + " instance already deleted");
  864. }
  865. var finalizationGroup = false;
  866. function detachFinalizer(handle) {
  867. }
  868. function runDestructor($$) {
  869. if ($$.smartPtr) {
  870. $$.smartPtrType.rawDestructor($$.smartPtr);
  871. } else {
  872. $$.ptrType.registeredClass.rawDestructor($$.ptr);
  873. }
  874. }
  875. function releaseClassHandle($$) {
  876. $$.count.value -= 1;
  877. var toDelete = 0 === $$.count.value;
  878. if (toDelete) {
  879. runDestructor($$);
  880. }
  881. }
  882. function attachFinalizer(handle) {
  883. if ("undefined" === typeof FinalizationGroup) {
  884. attachFinalizer = function(handle2) {
  885. return handle2;
  886. };
  887. return handle;
  888. }
  889. finalizationGroup = new FinalizationGroup(function(iter) {
  890. for (var result = iter.next(); !result.done; result = iter.next()) {
  891. var $$ = result.value;
  892. if (!$$.ptr) {
  893. console.warn("object already deleted: " + $$.ptr);
  894. } else {
  895. releaseClassHandle($$);
  896. }
  897. }
  898. });
  899. attachFinalizer = function(handle2) {
  900. finalizationGroup.register(handle2, handle2.$$, handle2.$$);
  901. return handle2;
  902. };
  903. detachFinalizer = function(handle2) {
  904. finalizationGroup.unregister(handle2.$$);
  905. };
  906. return attachFinalizer(handle);
  907. }
  908. function ClassHandle_clone() {
  909. if (!this.$$.ptr) {
  910. throwInstanceAlreadyDeleted(this);
  911. }
  912. if (this.$$.preservePointerOnDelete) {
  913. this.$$.count.value += 1;
  914. return this;
  915. } else {
  916. var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } }));
  917. clone.$$.count.value += 1;
  918. clone.$$.deleteScheduled = false;
  919. return clone;
  920. }
  921. }
  922. function ClassHandle_delete() {
  923. if (!this.$$.ptr) {
  924. throwInstanceAlreadyDeleted(this);
  925. }
  926. if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
  927. throwBindingError("Object already scheduled for deletion");
  928. }
  929. detachFinalizer(this);
  930. releaseClassHandle(this.$$);
  931. if (!this.$$.preservePointerOnDelete) {
  932. this.$$.smartPtr = void 0;
  933. this.$$.ptr = void 0;
  934. }
  935. }
  936. function ClassHandle_isDeleted() {
  937. return !this.$$.ptr;
  938. }
  939. var delayFunction = void 0;
  940. var deletionQueue = [];
  941. function flushPendingDeletes() {
  942. while (deletionQueue.length) {
  943. var obj = deletionQueue.pop();
  944. obj.$$.deleteScheduled = false;
  945. obj["delete"]();
  946. }
  947. }
  948. function ClassHandle_deleteLater() {
  949. if (!this.$$.ptr) {
  950. throwInstanceAlreadyDeleted(this);
  951. }
  952. if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
  953. throwBindingError("Object already scheduled for deletion");
  954. }
  955. deletionQueue.push(this);
  956. if (deletionQueue.length === 1 && delayFunction) {
  957. delayFunction(flushPendingDeletes);
  958. }
  959. this.$$.deleteScheduled = true;
  960. return this;
  961. }
  962. function init_ClassHandle() {
  963. ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf;
  964. ClassHandle.prototype["clone"] = ClassHandle_clone;
  965. ClassHandle.prototype["delete"] = ClassHandle_delete;
  966. ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted;
  967. ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater;
  968. }
  969. function ClassHandle() {
  970. }
  971. var registeredPointers = {};
  972. function ensureOverloadTable(proto, methodName, humanName) {
  973. if (void 0 === proto[methodName].overloadTable) {
  974. var prevFunc = proto[methodName];
  975. proto[methodName] = function() {
  976. if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) {
  977. throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!");
  978. }
  979. return proto[methodName].overloadTable[arguments.length].apply(this, arguments);
  980. };
  981. proto[methodName].overloadTable = [];
  982. proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;
  983. }
  984. }
  985. function exposePublicSymbol(name, value, numArguments) {
  986. if (Module.hasOwnProperty(name)) {
  987. if (void 0 === numArguments || void 0 !== Module[name].overloadTable && void 0 !== Module[name].overloadTable[numArguments]) {
  988. throwBindingError("Cannot register public name '" + name + "' twice");
  989. }
  990. ensureOverloadTable(Module, name, name);
  991. if (Module.hasOwnProperty(numArguments)) {
  992. throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!");
  993. }
  994. Module[name].overloadTable[numArguments] = value;
  995. } else {
  996. Module[name] = value;
  997. if (void 0 !== numArguments) {
  998. Module[name].numArguments = numArguments;
  999. }
  1000. }
  1001. }
  1002. function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) {
  1003. this.name = name;
  1004. this.constructor = constructor;
  1005. this.instancePrototype = instancePrototype;
  1006. this.rawDestructor = rawDestructor;
  1007. this.baseClass = baseClass;
  1008. this.getActualType = getActualType;
  1009. this.upcast = upcast;
  1010. this.downcast = downcast;
  1011. this.pureVirtualFunctions = [];
  1012. }
  1013. function upcastPointer(ptr, ptrClass, desiredClass) {
  1014. while (ptrClass !== desiredClass) {
  1015. if (!ptrClass.upcast) {
  1016. throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name);
  1017. }
  1018. ptr = ptrClass.upcast(ptr);
  1019. ptrClass = ptrClass.baseClass;
  1020. }
  1021. return ptr;
  1022. }
  1023. function constNoSmartPtrRawPointerToWireType(destructors, handle) {
  1024. if (handle === null) {
  1025. if (this.isReference) {
  1026. throwBindingError("null is not a valid " + this.name);
  1027. }
  1028. return 0;
  1029. }
  1030. if (!handle.$$) {
  1031. throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name);
  1032. }
  1033. if (!handle.$$.ptr) {
  1034. throwBindingError("Cannot pass deleted object as a pointer of type " + this.name);
  1035. }
  1036. var handleClass = handle.$$.ptrType.registeredClass;
  1037. var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
  1038. return ptr;
  1039. }
  1040. function genericPointerToWireType(destructors, handle) {
  1041. var ptr;
  1042. if (handle === null) {
  1043. if (this.isReference) {
  1044. throwBindingError("null is not a valid " + this.name);
  1045. }
  1046. if (this.isSmartPointer) {
  1047. ptr = this.rawConstructor();
  1048. if (destructors !== null) {
  1049. destructors.push(this.rawDestructor, ptr);
  1050. }
  1051. return ptr;
  1052. } else {
  1053. return 0;
  1054. }
  1055. }
  1056. if (!handle.$$) {
  1057. throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name);
  1058. }
  1059. if (!handle.$$.ptr) {
  1060. throwBindingError("Cannot pass deleted object as a pointer of type " + this.name);
  1061. }
  1062. if (!this.isConst && handle.$$.ptrType.isConst) {
  1063. throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name);
  1064. }
  1065. var handleClass = handle.$$.ptrType.registeredClass;
  1066. ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
  1067. if (this.isSmartPointer) {
  1068. if (void 0 === handle.$$.smartPtr) {
  1069. throwBindingError("Passing raw pointer to smart pointer is illegal");
  1070. }
  1071. switch (this.sharingPolicy) {
  1072. case 0:
  1073. if (handle.$$.smartPtrType === this) {
  1074. ptr = handle.$$.smartPtr;
  1075. } else {
  1076. throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name);
  1077. }
  1078. break;
  1079. case 1:
  1080. ptr = handle.$$.smartPtr;
  1081. break;
  1082. case 2:
  1083. if (handle.$$.smartPtrType === this) {
  1084. ptr = handle.$$.smartPtr;
  1085. } else {
  1086. var clonedHandle = handle["clone"]();
  1087. ptr = this.rawShare(ptr, __emval_register(function() {
  1088. clonedHandle["delete"]();
  1089. }));
  1090. if (destructors !== null) {
  1091. destructors.push(this.rawDestructor, ptr);
  1092. }
  1093. }
  1094. break;
  1095. default:
  1096. throwBindingError("Unsupporting sharing policy");
  1097. }
  1098. }
  1099. return ptr;
  1100. }
  1101. function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) {
  1102. if (handle === null) {
  1103. if (this.isReference) {
  1104. throwBindingError("null is not a valid " + this.name);
  1105. }
  1106. return 0;
  1107. }
  1108. if (!handle.$$) {
  1109. throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name);
  1110. }
  1111. if (!handle.$$.ptr) {
  1112. throwBindingError("Cannot pass deleted object as a pointer of type " + this.name);
  1113. }
  1114. if (handle.$$.ptrType.isConst) {
  1115. throwBindingError("Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name);
  1116. }
  1117. var handleClass = handle.$$.ptrType.registeredClass;
  1118. var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
  1119. return ptr;
  1120. }
  1121. function RegisteredPointer_getPointee(ptr) {
  1122. if (this.rawGetPointee) {
  1123. ptr = this.rawGetPointee(ptr);
  1124. }
  1125. return ptr;
  1126. }
  1127. function RegisteredPointer_destructor(ptr) {
  1128. if (this.rawDestructor) {
  1129. this.rawDestructor(ptr);
  1130. }
  1131. }
  1132. function RegisteredPointer_deleteObject(handle) {
  1133. if (handle !== null) {
  1134. handle["delete"]();
  1135. }
  1136. }
  1137. function downcastPointer(ptr, ptrClass, desiredClass) {
  1138. if (ptrClass === desiredClass) {
  1139. return ptr;
  1140. }
  1141. if (void 0 === desiredClass.baseClass) {
  1142. return null;
  1143. }
  1144. var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);
  1145. if (rv === null) {
  1146. return null;
  1147. }
  1148. return desiredClass.downcast(rv);
  1149. }
  1150. function getInheritedInstanceCount() {
  1151. return Object.keys(registeredInstances).length;
  1152. }
  1153. function getLiveInheritedInstances() {
  1154. var rv = [];
  1155. for (var k in registeredInstances) {
  1156. if (registeredInstances.hasOwnProperty(k)) {
  1157. rv.push(registeredInstances[k]);
  1158. }
  1159. }
  1160. return rv;
  1161. }
  1162. function setDelayFunction(fn) {
  1163. delayFunction = fn;
  1164. if (deletionQueue.length && delayFunction) {
  1165. delayFunction(flushPendingDeletes);
  1166. }
  1167. }
  1168. function init_embind() {
  1169. Module["getInheritedInstanceCount"] = getInheritedInstanceCount;
  1170. Module["getLiveInheritedInstances"] = getLiveInheritedInstances;
  1171. Module["flushPendingDeletes"] = flushPendingDeletes;
  1172. Module["setDelayFunction"] = setDelayFunction;
  1173. }
  1174. var registeredInstances = {};
  1175. function getBasestPointer(class_, ptr) {
  1176. if (ptr === void 0) {
  1177. throwBindingError("ptr should not be undefined");
  1178. }
  1179. while (class_.baseClass) {
  1180. ptr = class_.upcast(ptr);
  1181. class_ = class_.baseClass;
  1182. }
  1183. return ptr;
  1184. }
  1185. function getInheritedInstance(class_, ptr) {
  1186. ptr = getBasestPointer(class_, ptr);
  1187. return registeredInstances[ptr];
  1188. }
  1189. function makeClassHandle(prototype, record) {
  1190. if (!record.ptrType || !record.ptr) {
  1191. throwInternalError("makeClassHandle requires ptr and ptrType");
  1192. }
  1193. var hasSmartPtrType = !!record.smartPtrType;
  1194. var hasSmartPtr = !!record.smartPtr;
  1195. if (hasSmartPtrType !== hasSmartPtr) {
  1196. throwInternalError("Both smartPtrType and smartPtr must be specified");
  1197. }
  1198. record.count = { value: 1 };
  1199. return attachFinalizer(Object.create(prototype, { $$: { value: record } }));
  1200. }
  1201. function RegisteredPointer_fromWireType(ptr) {
  1202. var rawPointer = this.getPointee(ptr);
  1203. if (!rawPointer) {
  1204. this.destructor(ptr);
  1205. return null;
  1206. }
  1207. var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);
  1208. if (void 0 !== registeredInstance) {
  1209. if (0 === registeredInstance.$$.count.value) {
  1210. registeredInstance.$$.ptr = rawPointer;
  1211. registeredInstance.$$.smartPtr = ptr;
  1212. return registeredInstance["clone"]();
  1213. } else {
  1214. var rv = registeredInstance["clone"]();
  1215. this.destructor(ptr);
  1216. return rv;
  1217. }
  1218. }
  1219. function makeDefaultHandle() {
  1220. if (this.isSmartPointer) {
  1221. return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr });
  1222. } else {
  1223. return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr });
  1224. }
  1225. }
  1226. var actualType = this.registeredClass.getActualType(rawPointer);
  1227. var registeredPointerRecord = registeredPointers[actualType];
  1228. if (!registeredPointerRecord) {
  1229. return makeDefaultHandle.call(this);
  1230. }
  1231. var toType;
  1232. if (this.isConst) {
  1233. toType = registeredPointerRecord.constPointerType;
  1234. } else {
  1235. toType = registeredPointerRecord.pointerType;
  1236. }
  1237. var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);
  1238. if (dp === null) {
  1239. return makeDefaultHandle.call(this);
  1240. }
  1241. if (this.isSmartPointer) {
  1242. return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr });
  1243. } else {
  1244. return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp });
  1245. }
  1246. }
  1247. function init_RegisteredPointer() {
  1248. RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee;
  1249. RegisteredPointer.prototype.destructor = RegisteredPointer_destructor;
  1250. RegisteredPointer.prototype["argPackAdvance"] = 8;
  1251. RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer;
  1252. RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject;
  1253. RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType;
  1254. }
  1255. function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) {
  1256. this.name = name;
  1257. this.registeredClass = registeredClass;
  1258. this.isReference = isReference;
  1259. this.isConst = isConst;
  1260. this.isSmartPointer = isSmartPointer;
  1261. this.pointeeType = pointeeType;
  1262. this.sharingPolicy = sharingPolicy;
  1263. this.rawGetPointee = rawGetPointee;
  1264. this.rawConstructor = rawConstructor;
  1265. this.rawShare = rawShare;
  1266. this.rawDestructor = rawDestructor;
  1267. if (!isSmartPointer && registeredClass.baseClass === void 0) {
  1268. if (isConst) {
  1269. this["toWireType"] = constNoSmartPtrRawPointerToWireType;
  1270. this.destructorFunction = null;
  1271. } else {
  1272. this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType;
  1273. this.destructorFunction = null;
  1274. }
  1275. } else {
  1276. this["toWireType"] = genericPointerToWireType;
  1277. }
  1278. }
  1279. function replacePublicSymbol(name, value, numArguments) {
  1280. if (!Module.hasOwnProperty(name)) {
  1281. throwInternalError("Replacing nonexistant public symbol");
  1282. }
  1283. if (void 0 !== Module[name].overloadTable && void 0 !== numArguments) {
  1284. Module[name].overloadTable[numArguments] = value;
  1285. } else {
  1286. Module[name] = value;
  1287. Module[name].argCount = numArguments;
  1288. }
  1289. }
  1290. function dynCallLegacy(sig, ptr, args) {
  1291. var f = Module["dynCall_" + sig];
  1292. return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr);
  1293. }
  1294. function dynCall(sig, ptr, args) {
  1295. if (sig.indexOf("j") != -1) {
  1296. return dynCallLegacy(sig, ptr, args);
  1297. }
  1298. return wasmTable.get(ptr).apply(null, args);
  1299. }
  1300. function getDynCaller(sig, ptr) {
  1301. var argCache = [];
  1302. return function() {
  1303. argCache.length = arguments.length;
  1304. for (var i = 0; i < arguments.length; i++) {
  1305. argCache[i] = arguments[i];
  1306. }
  1307. return dynCall(sig, ptr, argCache);
  1308. };
  1309. }
  1310. function embind__requireFunction(signature, rawFunction) {
  1311. signature = readLatin1String(signature);
  1312. function makeDynCaller() {
  1313. if (signature.indexOf("j") != -1) {
  1314. return getDynCaller(signature, rawFunction);
  1315. }
  1316. return wasmTable.get(rawFunction);
  1317. }
  1318. var fp = makeDynCaller();
  1319. if (typeof fp !== "function") {
  1320. throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction);
  1321. }
  1322. return fp;
  1323. }
  1324. var UnboundTypeError = void 0;
  1325. function getTypeName(type) {
  1326. var ptr = ___getTypeName(type);
  1327. var rv = readLatin1String(ptr);
  1328. _free(ptr);
  1329. return rv;
  1330. }
  1331. function throwUnboundTypeError(message, types) {
  1332. var unboundTypes = [];
  1333. var seen = {};
  1334. function visit(type) {
  1335. if (seen[type]) {
  1336. return;
  1337. }
  1338. if (registeredTypes[type]) {
  1339. return;
  1340. }
  1341. if (typeDependencies[type]) {
  1342. typeDependencies[type].forEach(visit);
  1343. return;
  1344. }
  1345. unboundTypes.push(type);
  1346. seen[type] = true;
  1347. }
  1348. types.forEach(visit);
  1349. throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([", "]));
  1350. }
  1351. function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) {
  1352. name = readLatin1String(name);
  1353. getActualType = embind__requireFunction(getActualTypeSignature, getActualType);
  1354. if (upcast) {
  1355. upcast = embind__requireFunction(upcastSignature, upcast);
  1356. }
  1357. if (downcast) {
  1358. downcast = embind__requireFunction(downcastSignature, downcast);
  1359. }
  1360. rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);
  1361. var legalFunctionName = makeLegalFunctionName(name);
  1362. exposePublicSymbol(legalFunctionName, function() {
  1363. throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [baseClassRawType]);
  1364. });
  1365. whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) {
  1366. base = base[0];
  1367. var baseClass;
  1368. var basePrototype;
  1369. if (baseClassRawType) {
  1370. baseClass = base.registeredClass;
  1371. basePrototype = baseClass.instancePrototype;
  1372. } else {
  1373. basePrototype = ClassHandle.prototype;
  1374. }
  1375. var constructor = createNamedFunction(legalFunctionName, function() {
  1376. if (Object.getPrototypeOf(this) !== instancePrototype) {
  1377. throw new BindingError("Use 'new' to construct " + name);
  1378. }
  1379. if (void 0 === registeredClass.constructor_body) {
  1380. throw new BindingError(name + " has no accessible constructor");
  1381. }
  1382. var body = registeredClass.constructor_body[arguments.length];
  1383. if (void 0 === body) {
  1384. throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!");
  1385. }
  1386. return body.apply(this, arguments);
  1387. });
  1388. var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } });
  1389. constructor.prototype = instancePrototype;
  1390. var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);
  1391. var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);
  1392. var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false);
  1393. var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false);
  1394. registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter };
  1395. replacePublicSymbol(legalFunctionName, constructor);
  1396. return [referenceConverter, pointerConverter, constPointerConverter];
  1397. });
  1398. }
  1399. function heap32VectorToArray(count, firstElement) {
  1400. var array = [];
  1401. for (var i = 0; i < count; i++) {
  1402. array.push(HEAP32[(firstElement >> 2) + i]);
  1403. }
  1404. return array;
  1405. }
  1406. function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) {
  1407. assert(argCount > 0);
  1408. var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
  1409. invoker = embind__requireFunction(invokerSignature, invoker);
  1410. var args = [rawConstructor];
  1411. var destructors = [];
  1412. whenDependentTypesAreResolved([], [rawClassType], function(classType) {
  1413. classType = classType[0];
  1414. var humanName = "constructor " + classType.name;
  1415. if (void 0 === classType.registeredClass.constructor_body) {
  1416. classType.registeredClass.constructor_body = [];
  1417. }
  1418. if (void 0 !== classType.registeredClass.constructor_body[argCount - 1]) {
  1419. throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!");
  1420. }
  1421. classType.registeredClass.constructor_body[argCount - 1] = function unboundTypeHandler() {
  1422. throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes);
  1423. };
  1424. whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {
  1425. classType.registeredClass.constructor_body[argCount - 1] = function constructor_body() {
  1426. if (arguments.length !== argCount - 1) {
  1427. throwBindingError(humanName + " called with " + arguments.length + " arguments, expected " + (argCount - 1));
  1428. }
  1429. destructors.length = 0;
  1430. args.length = argCount;
  1431. for (var i = 1; i < argCount; ++i) {
  1432. args[i] = argTypes[i]["toWireType"](destructors, arguments[i - 1]);
  1433. }
  1434. var ptr = invoker.apply(null, args);
  1435. runDestructors(destructors);
  1436. return argTypes[0]["fromWireType"](ptr);
  1437. };
  1438. return [];
  1439. });
  1440. return [];
  1441. });
  1442. }
  1443. function new_(constructor, argumentList) {
  1444. if (!(constructor instanceof Function)) {
  1445. throw new TypeError("new_ called with constructor type " + typeof constructor + " which is not a function");
  1446. }
  1447. var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() {
  1448. });
  1449. dummy.prototype = constructor.prototype;
  1450. var obj = new dummy();
  1451. var r = constructor.apply(obj, argumentList);
  1452. return r instanceof Object ? r : obj;
  1453. }
  1454. function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) {
  1455. var argCount = argTypes.length;
  1456. if (argCount < 2) {
  1457. throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");
  1458. }
  1459. var isClassMethodFunc = argTypes[1] !== null && classType !== null;
  1460. var needsDestructorStack = false;
  1461. for (var i = 1; i < argTypes.length; ++i) {
  1462. if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) {
  1463. needsDestructorStack = true;
  1464. break;
  1465. }
  1466. }
  1467. var returns = argTypes[0].name !== "void";
  1468. var argsList = "";
  1469. var argsListWired = "";
  1470. for (var i = 0; i < argCount - 2; ++i) {
  1471. argsList += (i !== 0 ? ", " : "") + "arg" + i;
  1472. argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired";
  1473. }
  1474. var invokerFnBody = "return function " + makeLegalFunctionName(humanName) + "(" + argsList + ") {\nif (arguments.length !== " + (argCount - 2) + ") {\nthrowBindingError('function " + humanName + " called with ' + arguments.length + ' arguments, expected " + (argCount - 2) + " args!');\n}\n";
  1475. if (needsDestructorStack) {
  1476. invokerFnBody += "var destructors = [];\n";
  1477. }
  1478. var dtorStack = needsDestructorStack ? "destructors" : "null";
  1479. var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"];
  1480. var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]];
  1481. if (isClassMethodFunc) {
  1482. invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n";
  1483. }
  1484. for (var i = 0; i < argCount - 2; ++i) {
  1485. invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n";
  1486. args1.push("argType" + i);
  1487. args2.push(argTypes[i + 2]);
  1488. }
  1489. if (isClassMethodFunc) {
  1490. argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired;
  1491. }
  1492. invokerFnBody += (returns ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n";
  1493. if (needsDestructorStack) {
  1494. invokerFnBody += "runDestructors(destructors);\n";
  1495. } else {
  1496. for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) {
  1497. var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired";
  1498. if (argTypes[i].destructorFunction !== null) {
  1499. invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n";
  1500. args1.push(paramName + "_dtor");
  1501. args2.push(argTypes[i].destructorFunction);
  1502. }
  1503. }
  1504. }
  1505. if (returns) {
  1506. invokerFnBody += "var ret = retType.fromWireType(rv);\nreturn ret;\n";
  1507. } else {
  1508. }
  1509. invokerFnBody += "}\n";
  1510. args1.push(invokerFnBody);
  1511. var invokerFunction = new_(Function, args1).apply(null, args2);
  1512. return invokerFunction;
  1513. }
  1514. function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) {
  1515. var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
  1516. methodName = readLatin1String(methodName);
  1517. rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
  1518. whenDependentTypesAreResolved([], [rawClassType], function(classType) {
  1519. classType = classType[0];
  1520. var humanName = classType.name + "." + methodName;
  1521. if (isPureVirtual) {
  1522. classType.registeredClass.pureVirtualFunctions.push(methodName);
  1523. }
  1524. function unboundTypesHandler() {
  1525. throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes);
  1526. }
  1527. var proto = classType.registeredClass.instancePrototype;
  1528. var method = proto[methodName];
  1529. if (void 0 === method || void 0 === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2) {
  1530. unboundTypesHandler.argCount = argCount - 2;
  1531. unboundTypesHandler.className = classType.name;
  1532. proto[methodName] = unboundTypesHandler;
  1533. } else {
  1534. ensureOverloadTable(proto, methodName, humanName);
  1535. proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;
  1536. }
  1537. whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {
  1538. var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context);
  1539. if (void 0 === proto[methodName].overloadTable) {
  1540. memberFunction.argCount = argCount - 2;
  1541. proto[methodName] = memberFunction;
  1542. } else {
  1543. proto[methodName].overloadTable[argCount - 2] = memberFunction;
  1544. }
  1545. return [];
  1546. });
  1547. return [];
  1548. });
  1549. }
  1550. function __embind_register_constant(name, type, value) {
  1551. name = readLatin1String(name);
  1552. whenDependentTypesAreResolved([], [type], function(type2) {
  1553. type2 = type2[0];
  1554. Module[name] = type2["fromWireType"](value);
  1555. return [];
  1556. });
  1557. }
  1558. var emval_free_list = [];
  1559. var emval_handle_array = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }];
  1560. function __emval_decref(handle) {
  1561. if (handle > 4 && 0 === --emval_handle_array[handle].refcount) {
  1562. emval_handle_array[handle] = void 0;
  1563. emval_free_list.push(handle);
  1564. }
  1565. }
  1566. function count_emval_handles() {
  1567. var count = 0;
  1568. for (var i = 5; i < emval_handle_array.length; ++i) {
  1569. if (emval_handle_array[i] !== void 0) {
  1570. ++count;
  1571. }
  1572. }
  1573. return count;
  1574. }
  1575. function get_first_emval() {
  1576. for (var i = 5; i < emval_handle_array.length; ++i) {
  1577. if (emval_handle_array[i] !== void 0) {
  1578. return emval_handle_array[i];
  1579. }
  1580. }
  1581. return null;
  1582. }
  1583. function init_emval() {
  1584. Module["count_emval_handles"] = count_emval_handles;
  1585. Module["get_first_emval"] = get_first_emval;
  1586. }
  1587. function __emval_register(value) {
  1588. switch (value) {
  1589. case void 0: {
  1590. return 1;
  1591. }
  1592. case null: {
  1593. return 2;
  1594. }
  1595. case true: {
  1596. return 3;
  1597. }
  1598. case false: {
  1599. return 4;
  1600. }
  1601. default: {
  1602. var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length;
  1603. emval_handle_array[handle] = { refcount: 1, value };
  1604. return handle;
  1605. }
  1606. }
  1607. }
  1608. function __embind_register_emval(rawType, name) {
  1609. name = readLatin1String(name);
  1610. registerType(rawType, { name, "fromWireType": function(handle) {
  1611. var rv = emval_handle_array[handle].value;
  1612. __emval_decref(handle);
  1613. return rv;
  1614. }, "toWireType": function(destructors, value) {
  1615. return __emval_register(value);
  1616. }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: null });
  1617. }
  1618. function enumReadValueFromPointer(name, shift, signed) {
  1619. switch (shift) {
  1620. case 0:
  1621. return function(pointer) {
  1622. var heap = signed ? HEAP8 : HEAPU8;
  1623. return this["fromWireType"](heap[pointer]);
  1624. };
  1625. case 1:
  1626. return function(pointer) {
  1627. var heap = signed ? HEAP16 : HEAPU16;
  1628. return this["fromWireType"](heap[pointer >> 1]);
  1629. };
  1630. case 2:
  1631. return function(pointer) {
  1632. var heap = signed ? HEAP32 : HEAPU32;
  1633. return this["fromWireType"](heap[pointer >> 2]);
  1634. };
  1635. default:
  1636. throw new TypeError("Unknown integer type: " + name);
  1637. }
  1638. }
  1639. function __embind_register_enum(rawType, name, size, isSigned) {
  1640. var shift = getShiftFromSize(size);
  1641. name = readLatin1String(name);
  1642. function ctor() {
  1643. }
  1644. ctor.values = {};
  1645. registerType(rawType, { name, constructor: ctor, "fromWireType": function(c) {
  1646. return this.constructor.values[c];
  1647. }, "toWireType": function(destructors, c) {
  1648. return c.value;
  1649. }, "argPackAdvance": 8, "readValueFromPointer": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null });
  1650. exposePublicSymbol(name, ctor);
  1651. }
  1652. function requireRegisteredType(rawType, humanName) {
  1653. var impl = registeredTypes[rawType];
  1654. if (void 0 === impl) {
  1655. throwBindingError(humanName + " has unknown type " + getTypeName(rawType));
  1656. }
  1657. return impl;
  1658. }
  1659. function __embind_register_enum_value(rawEnumType, name, enumValue) {
  1660. var enumType = requireRegisteredType(rawEnumType, "enum");
  1661. name = readLatin1String(name);
  1662. var Enum = enumType.constructor;
  1663. var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + "_" + name, function() {
  1664. }) } });
  1665. Enum.values[enumValue] = Value;
  1666. Enum[name] = Value;
  1667. }
  1668. function _embind_repr(v) {
  1669. if (v === null) {
  1670. return "null";
  1671. }
  1672. var t = typeof v;
  1673. if (t === "object" || t === "array" || t === "function") {
  1674. return v.toString();
  1675. } else {
  1676. return "" + v;
  1677. }
  1678. }
  1679. function floatReadValueFromPointer(name, shift) {
  1680. switch (shift) {
  1681. case 2:
  1682. return function(pointer) {
  1683. return this["fromWireType"](HEAPF32[pointer >> 2]);
  1684. };
  1685. case 3:
  1686. return function(pointer) {
  1687. return this["fromWireType"](HEAPF64[pointer >> 3]);
  1688. };
  1689. default:
  1690. throw new TypeError("Unknown float type: " + name);
  1691. }
  1692. }
  1693. function __embind_register_float(rawType, name, size) {
  1694. var shift = getShiftFromSize(size);
  1695. name = readLatin1String(name);
  1696. registerType(rawType, { name, "fromWireType": function(value) {
  1697. return value;
  1698. }, "toWireType": function(destructors, value) {
  1699. if (typeof value !== "number" && typeof value !== "boolean") {
  1700. throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name);
  1701. }
  1702. return value;
  1703. }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null });
  1704. }
  1705. function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) {
  1706. var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
  1707. name = readLatin1String(name);
  1708. rawInvoker = embind__requireFunction(signature, rawInvoker);
  1709. exposePublicSymbol(name, function() {
  1710. throwUnboundTypeError("Cannot call " + name + " due to unbound types", argTypes);
  1711. }, argCount - 1);
  1712. whenDependentTypesAreResolved([], argTypes, function(argTypes2) {
  1713. var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1));
  1714. replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1);
  1715. return [];
  1716. });
  1717. }
  1718. function integerReadValueFromPointer(name, shift, signed) {
  1719. switch (shift) {
  1720. case 0:
  1721. return signed ? function readS8FromPointer(pointer) {
  1722. return HEAP8[pointer];
  1723. } : function readU8FromPointer(pointer) {
  1724. return HEAPU8[pointer];
  1725. };
  1726. case 1:
  1727. return signed ? function readS16FromPointer(pointer) {
  1728. return HEAP16[pointer >> 1];
  1729. } : function readU16FromPointer(pointer) {
  1730. return HEAPU16[pointer >> 1];
  1731. };
  1732. case 2:
  1733. return signed ? function readS32FromPointer(pointer) {
  1734. return HEAP32[pointer >> 2];
  1735. } : function readU32FromPointer(pointer) {
  1736. return HEAPU32[pointer >> 2];
  1737. };
  1738. default:
  1739. throw new TypeError("Unknown integer type: " + name);
  1740. }
  1741. }
  1742. function __embind_register_integer(primitiveType, name, size, minRange, maxRange) {
  1743. name = readLatin1String(name);
  1744. if (maxRange === -1) {
  1745. maxRange = 4294967295;
  1746. }
  1747. var shift = getShiftFromSize(size);
  1748. var fromWireType = function(value) {
  1749. return value;
  1750. };
  1751. if (minRange === 0) {
  1752. var bitshift = 32 - 8 * size;
  1753. fromWireType = function(value) {
  1754. return value << bitshift >>> bitshift;
  1755. };
  1756. }
  1757. var isUnsignedType = name.indexOf("unsigned") != -1;
  1758. registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": function(destructors, value) {
  1759. if (typeof value !== "number" && typeof value !== "boolean") {
  1760. throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name);
  1761. }
  1762. if (value < minRange || value > maxRange) {
  1763. throw new TypeError('Passing a number "' + _embind_repr(value) + '" from JS side to C/C++ side to an argument of type "' + name + '", which is outside the valid range [' + minRange + ", " + maxRange + "]!");
  1764. }
  1765. return isUnsignedType ? value >>> 0 : value | 0;
  1766. }, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null });
  1767. }
  1768. function __embind_register_memory_view(rawType, dataTypeIndex, name) {
  1769. var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];
  1770. var TA = typeMapping[dataTypeIndex];
  1771. function decodeMemoryView(handle) {
  1772. handle = handle >> 2;
  1773. var heap = HEAPU32;
  1774. var size = heap[handle];
  1775. var data = heap[handle + 1];
  1776. return new TA(buffer, data, size);
  1777. }
  1778. name = readLatin1String(name);
  1779. registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true });
  1780. }
  1781. function __embind_register_std_string(rawType, name) {
  1782. name = readLatin1String(name);
  1783. var stdStringIsUTF8 = name === "std::string";
  1784. registerType(rawType, { name, "fromWireType": function(value) {
  1785. var length = HEAPU32[value >> 2];
  1786. var str;
  1787. if (stdStringIsUTF8) {
  1788. var decodeStartPtr = value + 4;
  1789. for (var i = 0; i <= length; ++i) {
  1790. var currentBytePtr = value + 4 + i;
  1791. if (i == length || HEAPU8[currentBytePtr] == 0) {
  1792. var maxRead = currentBytePtr - decodeStartPtr;
  1793. var stringSegment = UTF8ToString(decodeStartPtr, maxRead);
  1794. if (str === void 0) {
  1795. str = stringSegment;
  1796. } else {
  1797. str += String.fromCharCode(0);
  1798. str += stringSegment;
  1799. }
  1800. decodeStartPtr = currentBytePtr + 1;
  1801. }
  1802. }
  1803. } else {
  1804. var a = new Array(length);
  1805. for (var i = 0; i < length; ++i) {
  1806. a[i] = String.fromCharCode(HEAPU8[value + 4 + i]);
  1807. }
  1808. str = a.join("");
  1809. }
  1810. _free(value);
  1811. return str;
  1812. }, "toWireType": function(destructors, value) {
  1813. if (value instanceof ArrayBuffer) {
  1814. value = new Uint8Array(value);
  1815. }
  1816. var getLength;
  1817. var valueIsOfTypeString = typeof value === "string";
  1818. if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) {
  1819. throwBindingError("Cannot pass non-string to std::string");
  1820. }
  1821. if (stdStringIsUTF8 && valueIsOfTypeString) {
  1822. getLength = function() {
  1823. return lengthBytesUTF8(value);
  1824. };
  1825. } else {
  1826. getLength = function() {
  1827. return value.length;
  1828. };
  1829. }
  1830. var length = getLength();
  1831. var ptr = _malloc(4 + length + 1);
  1832. HEAPU32[ptr >> 2] = length;
  1833. if (stdStringIsUTF8 && valueIsOfTypeString) {
  1834. stringToUTF8(value, ptr + 4, length + 1);
  1835. } else {
  1836. if (valueIsOfTypeString) {
  1837. for (var i = 0; i < length; ++i) {
  1838. var charCode = value.charCodeAt(i);
  1839. if (charCode > 255) {
  1840. _free(ptr);
  1841. throwBindingError("String has UTF-16 code units that do not fit in 8 bits");
  1842. }
  1843. HEAPU8[ptr + 4 + i] = charCode;
  1844. }
  1845. } else {
  1846. for (var i = 0; i < length; ++i) {
  1847. HEAPU8[ptr + 4 + i] = value[i];
  1848. }
  1849. }
  1850. }
  1851. if (destructors !== null) {
  1852. destructors.push(_free, ptr);
  1853. }
  1854. return ptr;
  1855. }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) {
  1856. _free(ptr);
  1857. } });
  1858. }
  1859. function __embind_register_std_wstring(rawType, charSize, name) {
  1860. name = readLatin1String(name);
  1861. var decodeString, encodeString, getHeap, lengthBytesUTF, shift;
  1862. if (charSize === 2) {
  1863. decodeString = UTF16ToString;
  1864. encodeString = stringToUTF16;
  1865. lengthBytesUTF = lengthBytesUTF16;
  1866. getHeap = function() {
  1867. return HEAPU16;
  1868. };
  1869. shift = 1;
  1870. } else if (charSize === 4) {
  1871. decodeString = UTF32ToString;
  1872. encodeString = stringToUTF32;
  1873. lengthBytesUTF = lengthBytesUTF32;
  1874. getHeap = function() {
  1875. return HEAPU32;
  1876. };
  1877. shift = 2;
  1878. }
  1879. registerType(rawType, { name, "fromWireType": function(value) {
  1880. var length = HEAPU32[value >> 2];
  1881. var HEAP = getHeap();
  1882. var str;
  1883. var decodeStartPtr = value + 4;
  1884. for (var i = 0; i <= length; ++i) {
  1885. var currentBytePtr = value + 4 + i * charSize;
  1886. if (i == length || HEAP[currentBytePtr >> shift] == 0) {
  1887. var maxReadBytes = currentBytePtr - decodeStartPtr;
  1888. var stringSegment = decodeString(decodeStartPtr, maxReadBytes);
  1889. if (str === void 0) {
  1890. str = stringSegment;
  1891. } else {
  1892. str += String.fromCharCode(0);
  1893. str += stringSegment;
  1894. }
  1895. decodeStartPtr = currentBytePtr + charSize;
  1896. }
  1897. }
  1898. _free(value);
  1899. return str;
  1900. }, "toWireType": function(destructors, value) {
  1901. if (!(typeof value === "string")) {
  1902. throwBindingError("Cannot pass non-string to C++ string type " + name);
  1903. }
  1904. var length = lengthBytesUTF(value);
  1905. var ptr = _malloc(4 + length + charSize);
  1906. HEAPU32[ptr >> 2] = length >> shift;
  1907. encodeString(value, ptr + 4, length + charSize);
  1908. if (destructors !== null) {
  1909. destructors.push(_free, ptr);
  1910. }
  1911. return ptr;
  1912. }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) {
  1913. _free(ptr);
  1914. } });
  1915. }
  1916. function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {
  1917. structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] };
  1918. }
  1919. function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {
  1920. structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });
  1921. }
  1922. function __embind_register_void(rawType, name) {
  1923. name = readLatin1String(name);
  1924. registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() {
  1925. return void 0;
  1926. }, "toWireType": function(destructors, o) {
  1927. return void 0;
  1928. } });
  1929. }
  1930. function requireHandle(handle) {
  1931. if (!handle) {
  1932. throwBindingError("Cannot use deleted val. handle = " + handle);
  1933. }
  1934. return emval_handle_array[handle].value;
  1935. }
  1936. function __emval_as(handle, returnType, destructorsRef) {
  1937. handle = requireHandle(handle);
  1938. returnType = requireRegisteredType(returnType, "emval::as");
  1939. var destructors = [];
  1940. var rd = __emval_register(destructors);
  1941. HEAP32[destructorsRef >> 2] = rd;
  1942. return returnType["toWireType"](destructors, handle);
  1943. }
  1944. var emval_symbols = {};
  1945. function getStringOrSymbol(address) {
  1946. var symbol = emval_symbols[address];
  1947. if (symbol === void 0) {
  1948. return readLatin1String(address);
  1949. } else {
  1950. return symbol;
  1951. }
  1952. }
  1953. var emval_methodCallers = [];
  1954. function __emval_call_void_method(caller, handle, methodName, args) {
  1955. caller = emval_methodCallers[caller];
  1956. handle = requireHandle(handle);
  1957. methodName = getStringOrSymbol(methodName);
  1958. caller(handle, methodName, null, args);
  1959. }
  1960. function emval_get_global() {
  1961. if (typeof globalThis === "object") {
  1962. return globalThis;
  1963. }
  1964. return function() {
  1965. return Function;
  1966. }()("return this")();
  1967. }
  1968. function __emval_get_global(name) {
  1969. if (name === 0) {
  1970. return __emval_register(emval_get_global());
  1971. } else {
  1972. name = getStringOrSymbol(name);
  1973. return __emval_register(emval_get_global()[name]);
  1974. }
  1975. }
  1976. function __emval_addMethodCaller(caller) {
  1977. var id = emval_methodCallers.length;
  1978. emval_methodCallers.push(caller);
  1979. return id;
  1980. }
  1981. function __emval_lookupTypes(argCount, argTypes) {
  1982. var a = new Array(argCount);
  1983. for (var i = 0; i < argCount; ++i) {
  1984. a[i] = requireRegisteredType(HEAP32[(argTypes >> 2) + i], "parameter " + i);
  1985. }
  1986. return a;
  1987. }
  1988. function __emval_get_method_caller(argCount, argTypes) {
  1989. var types = __emval_lookupTypes(argCount, argTypes);
  1990. var retType = types[0];
  1991. var signatureName = retType.name + "_$" + types.slice(1).map(function(t) {
  1992. return t.name;
  1993. }).join("_") + "$";
  1994. var params = ["retType"];
  1995. var args = [retType];
  1996. var argsList = "";
  1997. for (var i = 0; i < argCount - 1; ++i) {
  1998. argsList += (i !== 0 ? ", " : "") + "arg" + i;
  1999. params.push("argType" + i);
  2000. args.push(types[1 + i]);
  2001. }
  2002. var functionName = makeLegalFunctionName("methodCaller_" + signatureName);
  2003. var functionBody = "return function " + functionName + "(handle, name, destructors, args) {\n";
  2004. var offset = 0;
  2005. for (var i = 0; i < argCount - 1; ++i) {
  2006. functionBody += " var arg" + i + " = argType" + i + ".readValueFromPointer(args" + (offset ? "+" + offset : "") + ");\n";
  2007. offset += types[i + 1]["argPackAdvance"];
  2008. }
  2009. functionBody += " var rv = handle[name](" + argsList + ");\n";
  2010. for (var i = 0; i < argCount - 1; ++i) {
  2011. if (types[i + 1]["deleteObject"]) {
  2012. functionBody += " argType" + i + ".deleteObject(arg" + i + ");\n";
  2013. }
  2014. }
  2015. if (!retType.isVoid) {
  2016. functionBody += " return retType.toWireType(destructors, rv);\n";
  2017. }
  2018. functionBody += "};\n";
  2019. params.push(functionBody);
  2020. var invokerFunction = new_(Function, params).apply(null, args);
  2021. return __emval_addMethodCaller(invokerFunction);
  2022. }
  2023. function __emval_get_module_property(name) {
  2024. name = getStringOrSymbol(name);
  2025. return __emval_register(Module[name]);
  2026. }
  2027. function __emval_get_property(handle, key2) {
  2028. handle = requireHandle(handle);
  2029. key2 = requireHandle(key2);
  2030. return __emval_register(handle[key2]);
  2031. }
  2032. function __emval_incref(handle) {
  2033. if (handle > 4) {
  2034. emval_handle_array[handle].refcount += 1;
  2035. }
  2036. }
  2037. function craftEmvalAllocator(argCount) {
  2038. var argsList = "";
  2039. for (var i = 0; i < argCount; ++i) {
  2040. argsList += (i !== 0 ? ", " : "") + "arg" + i;
  2041. }
  2042. var functionBody = "return function emval_allocator_" + argCount + "(constructor, argTypes, args) {\n";
  2043. for (var i = 0; i < argCount; ++i) {
  2044. functionBody += "var argType" + i + " = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + " + i + '], "parameter ' + i + '");\nvar arg' + i + " = argType" + i + ".readValueFromPointer(args);\nargs += argType" + i + "['argPackAdvance'];\n";
  2045. }
  2046. functionBody += "var obj = new constructor(" + argsList + ");\nreturn __emval_register(obj);\n}\n";
  2047. return new Function("requireRegisteredType", "Module", "__emval_register", functionBody)(requireRegisteredType, Module, __emval_register);
  2048. }
  2049. var emval_newers = {};
  2050. function __emval_new(handle, argCount, argTypes, args) {
  2051. handle = requireHandle(handle);
  2052. var newer = emval_newers[argCount];
  2053. if (!newer) {
  2054. newer = craftEmvalAllocator(argCount);
  2055. emval_newers[argCount] = newer;
  2056. }
  2057. return newer(handle, argTypes, args);
  2058. }
  2059. function __emval_new_cstring(v) {
  2060. return __emval_register(getStringOrSymbol(v));
  2061. }
  2062. function __emval_run_destructors(handle) {
  2063. var destructors = emval_handle_array[handle].value;
  2064. runDestructors(destructors);
  2065. __emval_decref(handle);
  2066. }
  2067. function _abort() {
  2068. abort();
  2069. }
  2070. function _emscripten_memcpy_big(dest, src, num) {
  2071. HEAPU8.copyWithin(dest, src, src + num);
  2072. }
  2073. function emscripten_realloc_buffer(size) {
  2074. try {
  2075. wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);
  2076. updateGlobalBufferAndViews(wasmMemory.buffer);
  2077. return 1;
  2078. } catch (e) {
  2079. }
  2080. }
  2081. function _emscripten_resize_heap(requestedSize) {
  2082. var oldSize = HEAPU8.length;
  2083. requestedSize = requestedSize >>> 0;
  2084. var maxHeapSize = 2147483648;
  2085. if (requestedSize > maxHeapSize) {
  2086. return false;
  2087. }
  2088. for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
  2089. var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);
  2090. overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
  2091. var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));
  2092. var replacement = emscripten_realloc_buffer(newSize);
  2093. if (replacement) {
  2094. return true;
  2095. }
  2096. }
  2097. return false;
  2098. }
  2099. var SYSCALLS = { mappings: {}, buffers: [null, [], []], printChar: function(stream, curr) {
  2100. var buffer2 = SYSCALLS.buffers[stream];
  2101. if (curr === 0 || curr === 10) {
  2102. (stream === 1 ? out : err)(UTF8ArrayToString(buffer2, 0));
  2103. buffer2.length = 0;
  2104. } else {
  2105. buffer2.push(curr);
  2106. }
  2107. }, varargs: void 0, get: function() {
  2108. SYSCALLS.varargs += 4;
  2109. var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];
  2110. return ret;
  2111. }, getStr: function(ptr) {
  2112. var ret = UTF8ToString(ptr);
  2113. return ret;
  2114. }, get64: function(low, high) {
  2115. return low;
  2116. } };
  2117. function _fd_close(fd) {
  2118. return 0;
  2119. }
  2120. function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
  2121. }
  2122. function _fd_write(fd, iov, iovcnt, pnum) {
  2123. var num = 0;
  2124. for (var i = 0; i < iovcnt; i++) {
  2125. var ptr = HEAP32[iov + i * 8 >> 2];
  2126. var len = HEAP32[iov + (i * 8 + 4) >> 2];
  2127. for (var j = 0; j < len; j++) {
  2128. SYSCALLS.printChar(fd, HEAPU8[ptr + j]);
  2129. }
  2130. num += len;
  2131. }
  2132. HEAP32[pnum >> 2] = num;
  2133. return 0;
  2134. }
  2135. function _setTempRet0($i) {
  2136. setTempRet0($i | 0);
  2137. }
  2138. InternalError = Module["InternalError"] = extendError(Error, "InternalError");
  2139. embind_init_charCodes();
  2140. BindingError = Module["BindingError"] = extendError(Error, "BindingError");
  2141. init_ClassHandle();
  2142. init_RegisteredPointer();
  2143. init_embind();
  2144. UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError");
  2145. init_emval();
  2146. var asmLibraryArg = { "t": __embind_finalize_value_object, "I": __embind_register_bool, "x": __embind_register_class, "w": __embind_register_class_constructor, "d": __embind_register_class_function, "k": __embind_register_constant, "H": __embind_register_emval, "n": __embind_register_enum, "a": __embind_register_enum_value, "A": __embind_register_float, "i": __embind_register_function, "j": __embind_register_integer, "h": __embind_register_memory_view, "B": __embind_register_std_string, "v": __embind_register_std_wstring, "u": __embind_register_value_object, "c": __embind_register_value_object_field, "J": __embind_register_void, "m": __emval_as, "s": __emval_call_void_method, "b": __emval_decref, "y": __emval_get_global, "p": __emval_get_method_caller, "r": __emval_get_module_property, "e": __emval_get_property, "g": __emval_incref, "q": __emval_new, "f": __emval_new_cstring, "l": __emval_run_destructors, "o": _abort, "E": _emscripten_memcpy_big, "F": _emscripten_resize_heap, "G": _fd_close, "C": _fd_seek, "z": _fd_write, "D": _setTempRet0 };
  2147. var asm = createWasm();
  2148. var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function() {
  2149. return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["L"]).apply(null, arguments);
  2150. };
  2151. var _malloc = Module["_malloc"] = function() {
  2152. return (_malloc = Module["_malloc"] = Module["asm"]["M"]).apply(null, arguments);
  2153. };
  2154. var _free = Module["_free"] = function() {
  2155. return (_free = Module["_free"] = Module["asm"]["N"]).apply(null, arguments);
  2156. };
  2157. var ___getTypeName = Module["___getTypeName"] = function() {
  2158. return (___getTypeName = Module["___getTypeName"] = Module["asm"]["P"]).apply(null, arguments);
  2159. };
  2160. var ___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = function() {
  2161. return (___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = Module["asm"]["Q"]).apply(null, arguments);
  2162. };
  2163. var dynCall_jiji = Module["dynCall_jiji"] = function() {
  2164. return (dynCall_jiji = Module["dynCall_jiji"] = Module["asm"]["R"]).apply(null, arguments);
  2165. };
  2166. var calledRun;
  2167. function ExitStatus(status) {
  2168. this.name = "ExitStatus";
  2169. this.message = "Program terminated with exit(" + status + ")";
  2170. this.status = status;
  2171. }
  2172. dependenciesFulfilled = function runCaller() {
  2173. if (!calledRun)
  2174. run();
  2175. if (!calledRun)
  2176. dependenciesFulfilled = runCaller;
  2177. };
  2178. function run(args) {
  2179. args = args || arguments_;
  2180. if (runDependencies > 0) {
  2181. return;
  2182. }
  2183. preRun();
  2184. if (runDependencies > 0) {
  2185. return;
  2186. }
  2187. function doRun() {
  2188. if (calledRun)
  2189. return;
  2190. calledRun = true;
  2191. Module["calledRun"] = true;
  2192. if (ABORT)
  2193. return;
  2194. initRuntime();
  2195. preMain();
  2196. readyPromiseResolve(Module);
  2197. if (Module["onRuntimeInitialized"])
  2198. Module["onRuntimeInitialized"]();
  2199. postRun();
  2200. }
  2201. if (Module["setStatus"]) {
  2202. Module["setStatus"]("Running...");
  2203. setTimeout(function() {
  2204. setTimeout(function() {
  2205. Module["setStatus"]("");
  2206. }, 1);
  2207. doRun();
  2208. }, 1);
  2209. } else {
  2210. doRun();
  2211. }
  2212. }
  2213. Module["run"] = run;
  2214. if (Module["preInit"]) {
  2215. if (typeof Module["preInit"] == "function")
  2216. Module["preInit"] = [Module["preInit"]];
  2217. while (Module["preInit"].length > 0) {
  2218. Module["preInit"].pop()();
  2219. }
  2220. }
  2221. run();
  2222. return BASIS2.ready;
  2223. };
  2224. }();
  2225. if (typeof exports === "object" && typeof module === "object")
  2226. module.exports = BASIS;
  2227. else if (typeof define === "function" && define["amd"])
  2228. define([], function() {
  2229. return BASIS;
  2230. });
  2231. else if (typeof exports === "object")
  2232. exports["BASIS"] = BASIS;