spine.wasm-8cb4e624.js 89 KB

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