@onda-lang/wasm-compiler 0.5.0-rc.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,18 @@
1
+ // Generated by scripts/build-math-kernel.mjs; do not edit.
2
+ // libm 0.2.16, SHA-256 b6b40b3520b4f2a103b03f9e0d5a2af876825a6da6f440f8918c9d7fa52974c4
3
+ const BASE64 = "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QgAgBCAFIARUG31CAYYhBSANQXxqIg0NAAsgDkUNAQtBACAOayENA0AgBUIAIAQgBSAEVBt9QgGGIQUgDUEBaiINDQALCyAFQgAgBCAFIARUG30hBAwECyANQcAATw0CIAJBgAFqIAVCACANEKaAgIAAIAQgAikDiAEiA1gNAiACIAIpA4ABIAMgBEIAEKeAgIAAIAIpAwAhBAwDCyAAIAGiIgAgAKMhAAwECxCXgICAAAALAkACQAJAAkACQAJAIARCgICAgICAgIDAAFoNACAFIApaDQECQCAEIARCf3wiA4NQDQAgBCAEeadBfmoiC60iCoYiB0KAgICAgICAgCBYDQMgB0KAgICAgICAgMAAWg0EIAUgB0IBhiIIWg0FIAJB8ABqQgBCgICAgICAgICAfyAIfSIEIAhCABClgICAACACQeAAaiACKQNwIgMgAikDeCIGIAhCABCjgICAACACQdAAaiADIAZCAXwgBUIBhkIAEKOAgIAAIAQgAikDaH0gAikDYCIEQgBSrX0hA0IAIAR9IQYgAikDWCEEIAIpA1AhBQJAIAsgDWoiDUE/SQ0AA0AgAkHAAGogBEIAIAYgAxCjgICAACAFQgGIIAIpA0h8IQQgAikDQCEFIA1BQWoiDUE+Sw0ACwsgAkEwaiAFIAQgDRCmgICAACACQSBqIAYgAyAEIA1BP3OtiEIAEKOAgIAAIAJBEGogAikDKCACKQM4Qv///////////wCDfCACKQMgIgQgAikDMHwgBFStfEICfEIAIAhCABCjgICAACACKQMYIgRCACAHIAcgBFYbfSAKiCEEDAcLIA1BwABJDQUMBwtBIhCYgICAAAALQR4QmICAgAAAC0ErEJiAgIAAAAtBKxCYgICAAAALQRcQmICAgAAACyAFIA2thiADgyEECyAEUA0AIARBNCAEeadBP3NrIg0gDCANIAxJGyINrYYgCXwgDCANa61CNIZ8vyEADAELIAm/IQALIAJBkAFqJICAgIAAIAAL5AoGAX8BfAJ/AXwBfwF8I4CAgIAAQRBrIgEkgICAgAAgALshAgJAAkAgALwiA0H/////B3EiBEHbn6T6A0kNAAJAIARB0qftgwRJDQACQCAEQdbjiIcESQ0AAkACQAJAAkACQCAEQf////sHSw0AIAFCADcDCAJAAkAgBEHan6TuBEsNACAC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BwAAZQcAAAJjCgEEmQkAAO4JAAACFwoBBFYKAACrCgAAAjwKAQAAAAL3AQAAAu0AAAACDwQAAAMoAQAAbAEAAAMxAQMbBQAAXwUAAAXkAQX/////iQIAAAftAwAAAACfywQAAA8FAAABFAbTAAAA/////wUAAAABpR8HNQAAAP////8BAAAAA0AcAgc1AAAA/////wMAAAADQDICAAhhAAAA/////w8AAAABqycJ3wAAAP////8XAAAAAQAIQQAAAP////8HAAAABeUcCE4AAAD/////EAAAAAXmIAAK3wAAAGgAAAABbjIIQQAAAP////8DAAAABeUcCE4AAAD/////CgAAAAXmIAAK3wAAAIAAAAABcTIIQQAAAP////8FAAAABeUcCE4AAAD/////CAAAAAXmIAAIYQAAAP////8PAAAAAYsrCt8AAACYAAAAAZMvCEEAAAD/////BQAAAAXlHAhOAAAA/////wgAAAAF5iAABtMAAAD/////CAAAAAE4Kgg1AAAA/////wMAAAADQDIINQAAAP////8FAAAAA0AcAAhhAAAA/////w8AAAABUisK3wAAALAAAAABWi8IQQAAAP////8FAAAABeUcCE4AAAD/////CAAAAAXmIAAK3wAAAMgAAAABKh8IQQAAAP////8FAAAABeUcCE4AAAD/////CAAAAAXmIAAK3wAAAOAAAAABYyMIQQAAAP////8FAAAABeUcCE4AAAD/////CAAAAAXmIAAAA3QEAAC4BAAABX8BAmcEAAADQgYAAJYGAAAGGQEDxwgAABsJAAAGHQEABWZjAAA6BAAABO0ABZ8jBAAAZwQAAAYSCI4AAACFYwAAIQAAAAYwHgiOAAAApmMAABMAAAAGMSILpwAAAAVmAAARAAAABmYBIQu0AAAAFmYAABMAAAAGZgEzDNkCAAC1ZQAABQAAAAZZASQIbgAAALVlAAAFAAAABYAcAA2aAAAA+AAAAAZTASEM2QIAAEVmAAAJAAAABkwBJAhuAAAARWYAAAkAAAAFgBwADY4AAAAQAQAABm0BHgzZAgAA/mYAAA8AAAAGfAEfCG4AAAD+ZgAABwAAAAWAHAh7AAAABWcAAAgAAAAFgSAABtkCAADaZAAABQAAAAbUGwhuAAAA2mQAAAUAAAAFgBwACuoCAAAoAQAABtonDpoAAAAo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Y2lhbGl6ZWRfZGl2X3JlbTIzdTMyX25vcm1hbGl6YXRpb25fc2hpZnQAaW50X3RyYWl0cwBvcHMAX1JOdk1zOF9OdENzZGtkdDFhYUFnMVRfNGNvcmUzbnVtbzEzbGVhZGluZ196ZXJvcwBfUk52TXM2X050Q3Nka2R0MWFhQWcxVF80Y29yZTNudW1tMTNsZWFkaW5nX3plcm9zAGNvbXBpbGVyX2J1aWx0aW5zAF9STnZYczFrX050TnRDc2RrZHQxYWFBZzFUXzRjb3JlM29wczNiaXR5TnRCNl81Qml0T3I1Yml0b3IAX1JOdlhzMXJfTnROdENzZGtkdDFhYUFnMVRfNGNvcmUzb3BzM2JpdG5OdEI2XzVCaXRPcjViaXRvcgBfUk52WHNnX050TnROdE50Q3M2UmlpRDV0c1NmNl8xN2NvbXBpbGVyX2J1aWx0aW5zNG1hdGg5bGlibV9tYXRoN3N1cHBvcnQxMGludF90cmFpdHN5TnRCNV8zSW50MTFsb2dpY2FsX3NocgBfUk52TXM3X050Q3Nka2R0MWFhQWcxVF80Y29yZTNudW15MTJ3cmFwcGluZ19zaHIAX1JOdk1zN19OdENzZGtkdDFhYUFnMVRfNGNvcmUzbnVteTEzdW5jaGVja2VkX3NocgBMc2hyAF9STnZOdE50Q3Nka2R0MWFhQWcxVF80Y29yZTlwYW5pY2tpbmcxMXBhbmljX2NvbnN0MjNwYW5pY19jb25zdF9yZW1fYnlfemVybwBfUk52WHNCX050TnROdE50Q3M2UmlpRDV0c1NmNl8xN2NvbXBpbGVyX2J1aWx0aW5zNG1hdGg5bGlibV9tYXRoN3N1cHBvcnQxMGludF90cmFpdHNsTnRCNV80SEludDEwemVyb193aWRlbgBudW0Ac3BlY2lhbGl6ZWRfZGl2X3JlbQBfUk52TnROdENzNlJpaUQ1dHNTZjZfMTdjb21waWxlcl9idWlsdGluczNpbnQxOXNwZWNpYWxpemVkX2Rpdl9yZW0xMnUxMjhfZGl2X3JlbQBfUk52TnROdENzNlJpaUQ1dHNTZjZfMTdjb21waWxlcl9idWlsdGluczNpbnQxOXNwZWNpYWxpemVkX2Rpdl9yZW0xOHU2NF9ieV91NjRfZGl2X3JlbQBfUk52TnROdENzNlJpaUQ1dHNTZjZfMTdjb21waWxlcl9idWlsdGluczNpbnQxOXNwZWNpYWxpemVkX2Rpdl9yZW0xMXU2NF9kaXZfcmVtAF9STnZOdE50Q3M2UmlpRDV0c1NmNl8xN2NvbXBpbGVyX2J1aWx0aW5zM2ludDE5c3BlY2lhbGl6ZWRfZGl2X3JlbTE4dTMyX2J5X3UzMl9kaXZfcmVtAF9STnZNczdfTnRDc2RrZHQxYWFBZzFUXzRjb3JlM251bXkxMWNoZWNrZWRfcmVtAF9STnZNczZfTnRDc2RrZHQxYWFBZzFUXzRjb3JlM251bW0xMWNoZWNrZWRfcmVtAF9STnZYc0JfTnROdE50TnRDczZSaWlENXRzU2Y2XzE3Y29tcGlsZXJfYnVpbHRpbnM0bWF0aDlsaWJtX21hdGg3c3VwcG9ydDEwaW50X3RyYWl0c2xOdEI1XzRISW50MTR6ZXJvX3dpZGVuX211bABfUk52TnZOdE50Q3M2UmlpRDV0c1NmNl8xN2NvbXBpbGVyX2J1aWx0aW5zM2ludDE5c3BlY2lhbGl6ZWRfZGl2X3JlbTEydTEyOF9kaXZfcmVtMTJjYXJyeWluZ19tdWwAX1JOdk1zMV9OdENzZGtkdDFhYUFnMVRfNGNvcmUzbnVteDEyd3JhcHBpbmdfbXVsAF9STnZYc2lfTnROdE50TnRDczZSaWlENXRzU2Y2XzE3Y29tcGlsZXJfYnVpbHRpbnM0bWF0aDlsaWJtX21hdGg3c3VwcG9ydDEwaW50X3RyYWl0c3hOdEI1XzNJbnQxMndyYXBwaW5nX211bABfUk52TXM4X050Q3Nka2R0MWFhQWcxVF80Y29yZTNudW1vMTJ3cmFwcGluZ19tdWwATXVsAF9STnZNczdfTnRDc2RrZHQxYWFBZzFUXzRjb3JlM251bXkxMndyYXBwaW5nX3NobABfUk52WHNnX050TnROdE50Q3M2UmlpRDV0c1NmNl8xN2NvbXBpbGVyX2J1aWx0aW5zNG1hdGg5bGlibV9tYXRoN3N1cHBvcnQxMGludF90cmFpdHN5TnRCNV8zSW50MTJ3cmFwcGluZ19zaGwAX1JOdk1zN19OdENzZGtkdDFhYUFnMVRfNGNvcmUzbnVteTEzdW5jaGVja2VkX3NobABBc2hsAF9STnZYc3RfTnROdE50TnRDczZSaWlENXRzU2Y2XzE3Y29tcGlsZXJfYnVpbHRpbnM0bWF0aDlsaWJtX21hdGg3c3VwcG9ydDEwaW50X3RyYWl0c3hOdEI1XzRESW50MmhpAGxpYm1fbWF0aABwYW5pY2tpbmcAY29yZQBfUk52TnZOdE50Q3M2UmlpRDV0c1NmNl8xN2NvbXBpbGVyX2J1aWx0aW5zM2ludDE5c3BlY2lhbGl6ZWRfZGl2X3JlbTEydTEyOF9kaXZfcmVtMTZjYXJyeWluZ19tdWxfYWRkAF9STnZYc21fTnROdE50TnRDczZSaWlENXRzU2Y2XzE3Y29tcGlsZXJfYnVpbHRpbnM0bWF0aDlsaWJtX21hdGg3c3VwcG9ydDEwaW50X3RyYWl0c25OdEI1XzNJbnQxMndyYXBwaW5nX2FkZABfUk52TXM4X050Q3Nka2R0MWFhQWcxVF80Y29yZTNudW1vMTJ3cmFwcGluZ19hZGQAX1JOdk1zMl9OdENzZGtkdDFhYUFnMVRfNGNvcmUzbnVtbjEyd3JhcHBpbmdfYWRkAF9STnZOdENzZGtkdDFhYUFnMVRfNGNvcmU5cGFuaWNraW5nNXBhbmljAF9STnZNczdfTnRDc2RrZHQxYWFBZzFUXzRjb3JlM251bXkxMndyYXBwaW5nX3N1YgBfUk52TXM4X050Q3Nka2R0MWFhQWcxVF80Y29yZTNudW1vMTJ3cmFwcGluZ19zdWIAX1JOdk1zNl9OdENzZGtkdDFhYUFnMVRfNGNvcmUzbnVtbTEyd3JhcHBpbmdfc3ViAF9STnZZbk50TnROdE50TnRDczZSaWlENXRzU2Y2XzE3Y29tcGlsZXJfYnVpbHRpbnM0bWF0aDlsaWJtX21hdGg3c3VwcG9ydDEwaW50X3RyYWl0czRESW50MTBmcm9tX2xvX2hpQmRfAF9STnZZb050TnROdENzNlJpaUQ1dHNTZjZfMTdjb21waWxlcl9idWlsdGluczNpbnQ1c2hpZnQ0THNocjRsc2hyQjlfAF9STnZZbk50TnROdENzNlJpaUQ1dHNTZjZfMTdjb21waWxlcl9idWlsdGluczNpbnQzbXVsM011bDNtdWxCOV8AX1JOdllvTnROdE50Q3M2UmlpRDV0c1NmNl8xN2NvbXBpbGVyX2J1aWx0aW5zM2ludDVzaGlmdDRBc2hsNGFzaGxCOV8AbHNocjx1MTI4PgBhc2hsPHUxMjg+AG11bDxpMTI4PgBmcm9tX2xvX2hpPGkxMjg+AC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvY29tcGlsZXItYnVpbHRpbnMvY29tcGlsZXItYnVpbHRpbnMvc3JjL2xpYi5ycy9AL2NvbXBpbGVyX2J1aWx0aW5zLjRmZTVlMzM0ODNiNzhmOTItY2d1LjAxOQAvcnVzdGMvOGJhYjI2ZjRmNjhlMGUyNmYwYmI3OTYwYmUzMzRkNWI1MjBlYTQ1Mi9saWJyYXJ5L2NvbXBpbGVyLWJ1aWx0aW5zL2NvbXBpbGVyLWJ1aWx0aW5zL3NyYy9saWIucnMvQC9jb21waWxlcl9idWlsdGlucy40ZmU1ZTMzNDgzYjc4ZjkyLWNndS4wMjYAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9jb21waWxlci1idWlsdGlucy9jb21waWxlci1idWlsdGlucy9zcmMvbGliLnJzL0AvY29tcGlsZXJfYnVpbHRpbnMuNGZlNWUzMzQ4M2I3OGY5Mi1jZ3UuMzQ1AC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvY29tcGlsZXItYnVpbHRpbnMvY29tcGlsZXItYnVpbHRpbnMvc3JjL2xpYi5ycy9AL2NvbXBpbGVyX2J1aWx0aW5zLjRmZTVlMzM0ODNiNzhmOTItY2d1LjAyNABfUk52TnROdENzNlJpaUQ1dHNTZjZfMTdjb21waWxlcl9idWlsdGluczNpbnQ0dWRpdjlfX191ZGl2dGkzAF9STnZOdE50Q3M2UmlpRDV0c1NmNl8xN2NvbXBpbGVyX2J1aWx0aW5zM2ludDVzaGlmdDlfX19sc2hydGkzAF9STnZOdE50Q3M2UmlpRDV0c1NmNl8xN2NvbXBpbGVyX2J1aWx0aW5zM2ludDNtdWw4X19fbXVsdGkzAF9STnZOdE50Q3M2UmlpRDV0c1NmNl8xN2NvbXBpbGVyX2J1aWx0aW5zM2ludDVzaGlmdDlfX19hc2hsdGkzAF9STnZOdE50Q3M2UmlpRDV0c1NmNl8xN2NvbXBpbGVyX2J1aWx0aW5zM2ludDR1ZGl2OV9fX3Vtb2R0aTMAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9jb21waWxlci1idWlsdGlucy9jb21waWxlci1idWlsdGlucy9zcmMvbGliLnJzL0AvY29tcGlsZXJfYnVpbHRpbnMuNGZlNWUzMzQ4M2I3OGY5Mi1jZ3UuMTkzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvY29tcGlsZXItYnVpbHRpbnMvY29tcGlsZXItYnVpbHRpbnMvc3JjL2xpYi5ycy9AL2NvbXBpbGVyX2J1aWx0aW5zLjRmZTVlMzM0ODNiNzhmOTItY2d1LjM0MwAvcnVzdGMvOGJhYjI2ZjRmNjhlMGUyNmYwYmI3OTYwYmUzMzRkNWI1MjBlYTQ1Mi9saWJyYXJ5L2NvbXBpbGVyLWJ1aWx0aW5zL2NvbXBpbGVyLWJ1aWx0aW5zL3NyYy9saWIucnMvQC9jb21waWxlcl9idWlsdGlucy40ZmU1ZTMzNDgzYjc4ZjkyLWNndS4zNjIAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9jb21waWxlci1idWlsdGlucy9jb21waWxlci1idWlsdGlucy9zcmMvbGliLnJzL0AvY29tcGlsZXJfYnVpbHRpbnMuNGZlNWUzMzQ4M2I3OGY5Mi1jZ3UuMDUyAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvY29tcGlsZXItYnVpbHRpbnMvY29tcGlsZXItYnVpbHRpbnMvc3JjL2xpYi5ycy9AL2NvbXBpbGVyX2J1aWx0aW5zLjRmZTVlMzM0ODNiNzhmOTItY2d1LjI1MAAvcnVzdGMvOGJhYjI2ZjRmNjhlMGUyNmYwYmI3OTYwYmUzMzRkNWI1MjBlYTQ1Mi9saWJyYXJ5L2NvbXBpbGVyLWJ1aWx0aW5zL2NvbXBpbGVyLWJ1aWx0aW5zL3NyYy9saWIucnMvQC9jb21waWxlcl9idWlsdGlucy40ZmU1ZTMzNDgzYjc4ZjkyLWNndS4wMjAAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9jb3JlL3NyYy9saWIucnMvQC9jb3JlLjliMzc5NmUzMGQ5OWRkYjctY2d1LjAAY2xhbmcgTExWTSAocnVzdGMgdmVyc2lvbiAxLjk3LjEgKDhiYWIyNmY0ZiAyMDI2LTA3LTE0KSkAALkkCy5kZWJ1Z19saW5ldAAAAAQANQAAAAEBAfsODQABAQEBAAAAAQAAAWxpYnJhcnkvY29yZS9zcmMAAHBhbmlja2luZy5ycwABAAAABQ4KAAUC82IAAAPPAAECAgABAQUFCgAFAuNFAAADlQEBAggAAQEFEQoABQLZRQAAA64BAQIIAAEBvgEAAAQAOQEAAAEBAfsODQABAQEBAAAAAQAAAWxpYnJhcnkvY29tcGlsZXItYnVpbHRpbnMvY29tcGlsZXItYnVpbHRpbnMvc3JjAGxpYnJhcnkvY29tcGlsZXItYnVpbHRpbnMvY29tcGlsZXItYnVpbHRpbnMvc3JjL21hdGgvLi4vLi4vLi4vbGlibS9zcmMvbWF0aC9zdXBwb3J0AGxpYnJhcnkvY29yZS9zcmMvbnVtAGxpYnJhcnkvY29yZS9zcmMvb3BzAGxpYnJhcnkvY29tcGlsZXItYnVpbHRpbnMvY29tcGlsZXItYnVpbHRpbnMvc3JjL2ludAAAbWFjcm9zLnJzAAEAAGludF90cmFpdHMucnMAAgAAaW50X21hY3Jvcy5ycwADAABiaXQucnMABAAAbXVsLnJzAAUAAAAABQL2YgAAA90DAQQCBRUKA51/yAasBAMFDQYDww4gBAIFFQOscZAEAwUNA9QOIAQCBRUDrHHIBAMFDQPUDiADuH88BAQFLQOkcWYEAwUNA9wOIAPIAFgDuH90BAQFLQOkceQEAwUNA6QPggZYBgO4f1gEAQUOA+tyWAIBAAEBIAEAAAQAGgEAAAEBAfsODQABAQEBAAAAAQAAAWxpYnJhcnkvY29tcGlsZXItYnVpbHRpbnMvY29tcGlsZXItYnVpbHRpbnMvc3JjL21hdGgvLi4vLi4vLi4vbGlibS9zcmMvbWF0aC9zdXBwb3J0AGxpYnJhcnkvY29tcGlsZXItYnVpbHRpbnMvY29tcGlsZXItYnVpbHRpbnMvc3JjL2ludABsaWJyYXJ5L2NvbXBpbGVyLWJ1aWx0aW5zL2NvbXBpbGVyLWJ1aWx0aW5zL3NyYwBsaWJyYXJ5L2NvcmUvc3JjL251bQAAaW50X3RyYWl0cy5ycwABAABtdWwucnMAAgAAbWFjcm9zLnJzAAMAAGludF9tYWNyb3MucnMABAAAAJ4AAAAEAJgAAAABAQH7Dg0AAQEBAQAAAAEAAAFsaWJyYXJ5L2NvcmUvc3JjL29wcwBsaWJyYXJ5L2NvbXBpbGVyLWJ1aWx0aW5zL2NvbXBpbGVyLWJ1aWx0aW5zL3NyYy9tYXRoLy4uLy4uLy4uL2xpYm0vc3JjL21hdGgvc3VwcG9ydAAAYml0LnJzAAEAAGludF90cmFpdHMucnMAAgAAACkGAAAEAPYAAAABAQH7Dg0AAQEBAQAAAAEAAAFsaWJyYXJ5L2NvbXBpbGVyLWJ1aWx0aW5zL2NvbXBpbGVyLWJ1aWx0aW5zL3NyYy9pbnQvc3BlY2lhbGl6ZWRfZGl2X3JlbQBsaWJyYXJ5L2NvcmUvc3JjL251bQBsaWJyYXJ5L2NvbXBpbGVyLWJ1aWx0aW5zL2NvbXBpbGVyLWJ1aWx0aW5zL3NyYwAAZGVsZWdhdGUucnMAAQAAdWludF9tYWNyb3MucnMAAgAAbm9ybV9zaGlmdC5ycwABAABsaWIucnMAAwAAbW9kLnJzAAEAAHRyaWZlY3RhLnJzAAEAAAAABQL/////AxMBBRoKAwzIcmcFDZMGA16eBS4DIlgFDVgDXjwDIkoDXi4DIiADXpADIkoDXi4EAgUUBgOaAWYGIAQDBRcGA6Z/PAQBBSsD6AAgBShXBAIFDQOWE7oEAQUcA+9s5AUdPgUgdQYD0X50BRkGA7QBkHMFFQN3PAUgMwUpLwYD0H50BS4GAyJmBQ0GkAUYBgMMLgUfAzOQBAIDhgp0A8cBdAQBBRwDunTyBgOYfzwFKwYD7QBKBAIFHwP6CZAEAQUzA412PAUVA6d/WAVOA9kAIAVNBlgFISAEAgUfBgO6CyAEAQUVA+1zngUqA9UAdAQCBR8D9wku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YnJhcnkvY29tcGlsZXItYnVpbHRpbnMvY29tcGlsZXItYnVpbHRpbnMvc3JjL2ludABsaWJyYXJ5L2NvbXBpbGVyLWJ1aWx0aW5zL2NvbXBpbGVyLWJ1aWx0aW5zL3NyYwBsaWJyYXJ5L2NvcmUvc3JjL251bQBsaWJyYXJ5L2NvbXBpbGVyLWJ1aWx0aW5zL2NvbXBpbGVyLWJ1aWx0aW5zL3NyYy9tYXRoLy4uLy4uLy4uL2xpYm0vc3JjL21hdGgvc3VwcG9ydABsaWJyYXJ5L2NvcmUvc3JjL29wcwAAc2hpZnQucnMAAQAAbWFjcm9zLnJzAAIAAHVpbnRfbWFjcm9zLnJzAAMAAGludF90cmFpdHMucnMABAAAYml0LnJzAAUAAAC6AAAABACQAAAAAQEB+w4NAAEBAQEAAAABAAABbGlicmFyeS9jb21waWxlci1idWlsdGlucy9jb21waWxlci1idWlsdGlucy9zcmMAbGlicmFyeS9jb21waWxlci1idWlsdGlucy9jb21waWxlci1idWlsdGlucy9zcmMvaW50AABtYWNyb3MucnMAAQAAdWRpdi5ycwACAAAAAAUCOWgAAAPdAwEEAgUNCgPOfQg8BAEFDgO1AgIoAQIMAAEBVwAAAAQAUQAAAAEBAfsODQABAQEBAAAAAQAAAWxpYnJhcnkvY29tcGlsZXItYnVpbHRpbnMvY29tcGlsZXItYnVpbHRpbnMvc3JjAABtYWNyb3MucnMAAQAAAJ0BAAAEADwBAAABAQH7Dg0AAQEBAQAAAAEAAAFsaWJyYXJ5L2NvbXBpbGVyLWJ1aWx0aW5zL2NvbXBpbGVyLWJ1aWx0aW5zL3NyYwBsaWJyYXJ5L2NvbXBpbGVyLWJ1aWx0aW5zL2NvbXBpbGVyLWJ1aWx0aW5zL3NyYy9pbnQAbGlicmFyeS9jb3JlL3NyYy9udW0AbGlicmFyeS9jb3JlL3NyYy9vcHMAbGlicmFyeS9jb21waWxlci1idWlsdGlucy9jb21waWxlci1idWlsdGlucy9zcmMvbWF0aC8uLi8uLi8uLi9saWJtL3NyYy9tYXRoL3N1cHBvcnQAAG1hY3Jvcy5ycwABAABzaGlmdC5ycwACAAB1aW50X21hY3Jvcy5ycwADAABiaXQucnMABAAAaW50X3RyYWl0cy5ycwAFAAAAAAUCgmgAAAPdAwEEAgUMCgPYfLoFEz4GA0hYBAMFDQYDvRRKBREDvns8A7kBLgQEBS0D5nCCBAMFEQOaDzwGA8xukAYDtBEgBgPMbroEAQUOBgPhA+QCAQABAUIBAAAEADwBAAABAQH7Dg0AAQEBAQAAAAEAAAFsaWJyYXJ5L2NvbXBpbGVyLWJ1aWx0aW5zL2NvbXBpbGVyLWJ1aWx0aW5zL3NyYy9pbnQAbGlicmFyeS9jb21waWxlci1idWlsdGlucy9jb21waWxlci1idWlsdGlucy9zcmMAbGlicmFyeS9jb3JlL3NyYy9udW0AbGlicmFyeS9jb21waWxlci1idWlsdGlucy9jb21waWxlci1idWlsdGlucy9zcmMvbWF0aC8uLi8uLi8uLi9saWJtL3NyYy9tYXRoL3N1cHBvcnQAbGlicmFyeS9jb3JlL3NyYy9vcHMAAHNoaWZ0LnJzAAEAAG1hY3Jvcy5ycwACAAB1aW50X21hY3Jvcy5ycwADAABpbnRfdHJhaXRzLnJzAAQAAGJpdC5ycwAFAAAAAJMKBG5hbWUAGxpvbmRhX3dhc21fbWF0aF9rZXJuZWwud2FzbQHOCSkAE29uZGFfbWF0aF9hdGFuMl9mMzIBLF9STnZOdE50Q3Nob2dyY2cxTGdMOF80bGlibTRtYXRoNWF0YW5mNWF0YW5mAhNvbmRhX21hdGhfYXRhbjJfZjY0AypfUk52TnROdENzaG9ncmNnMUxnTDhfNGxpYm00bWF0aDRhdGFuNGF0YW4EEm9uZGFfbWF0aF9hdGFuX2YzMgUSb25kYV9tYXRoX2F0YW5fZjY0BhFvbmRhX21hdGhfY29zX2YzMgdAX1JOdk50TnRDc2hvZ3JjZzFMZ0w4XzRsaWJtNG1hdGgxNHJlbV9waW8yX2xhcmdlMTRyZW1fcGlvMl9sYXJnZQgRb25kYV9tYXRoX2Nvc19mNjQJMl9STnZOdE50Q3Nob2dyY2cxTGdMOF80bGlibTRtYXRoOHJlbV9waW8yOHJlbV9waW8yChFvbmRhX21hdGhfZXhwX2YzMgsRb25kYV9tYXRoX2V4cF9mNjQMEW9uZGFfbWF0aF9mbWFfZjMyDRFvbmRhX21hdGhfZm1hX2Y2NA4Rb25kYV9tYXRoX2xvZ19mMzIPEW9uZGFfbWF0aF9sb2dfZjY0EBFvbmRhX21hdGhfcG93X2YzMhErX1JOdk50TnRDc2hvZ3JjZzFMZ0w4XzRsaWJtNG1hdGg0c3FydDVzcXJ0ZhIvX1JOdk50TnRDc2hvZ3JjZzFMZ0w4XzRsaWJtNG1hdGg2c2NhbGJuN3NjYWxibmYTEW9uZGFfbWF0aF9wb3dfZjY0FCpfUk52TnROdENzaG9ncmNnMUxnTDhfNGxpYm00bWF0aDRzcXJ0NHNxcnQVLl9STnZOdE50Q3Nob2dyY2cxTGdMOF80bGlibTRtYXRoNnNjYWxibjZzY2FsYm4WF29uZGFfbWF0aF9yZW1haW5kZXJfZjMyF0tfUk52TnROdENzZGtkdDFhYUFnMVRfNGNvcmU5cGFuaWNraW5nMTFwYW5pY19jb25zdDIzcGFuaWNfY29uc3RfcmVtX2J5X3plcm8YKV9STnZOdENzZGtkdDFhYUFnMVRfNGNvcmU5cGFuaWNraW5nNXBhbmljGRdvbmRhX21hdGhfcmVtYWluZGVyX2Y2NBoRb25kYV9tYXRoX3Npbl9mMzIbEW9uZGFfbWF0aF9zaW5fZjY0HBFvbmRhX21hdGhfdGFuX2YzMh0Rb25kYV9tYXRoX3Rhbl9mNjQeEm9uZGFfbWF0aF90YW5oX2YzMh8uX1JOdk50TnRDc2hvZ3JjZzFMZ0w4XzRsaWJtNG1hdGg2ZXhwbTFmNmV4cG0xZiASb25kYV9tYXRoX3RhbmhfZjY0ISxfUk52TnROdENzaG9ncmNnMUxnTDhfNGxpYm00bWF0aDVleHBtMTVleHBtMSItX1JOdk50Q3Nka2R0MWFhQWcxVF80Y29yZTlwYW5pY2tpbmc5cGFuaWNfZm10IwhfX211bHRpMyRQX1JOdk50TnRDczZSaWlENXRzU2Y2XzE3Y29tcGlsZXJfYnVpbHRpbnMzaW50MTlzcGVjaWFsaXplZF9kaXZfcmVtMTJ1MTI4X2Rpdl9yZW0lCV9fdWRpdnRpMyYJX19hc2hsdGkzJwlfX3Vtb2R0aTMoCV9fbHNocnRpMwcSAQAPX19zdGFja19wb2ludGVyCQoBAAcucm9kYXRhAE0JcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2VkLWJ5AQVydXN0Yx0xLjk3LjEgKDhiYWIyNmY0ZiAyMDI2LTA3LTE0KQCUAQ90YXJnZXRfZmVhdHVyZXMIKwtidWxrLW1lbW9yeSsPYnVsay1tZW1vcnktb3B0KxZjYWxsLWluZGlyZWN0LW92ZXJsb25nKwptdWx0aXZhbHVlKw9tdXRhYmxlLWdsb2JhbHMrE25vbnRyYXBwaW5nLWZwdG9pbnQrD3JlZmVyZW5jZS10eXBlcysIc2lnbi1leHQ=";
4
+
5
+ function decodeBase64(value) {
6
+ if (typeof Buffer !== "undefined") {
7
+ return Uint8Array.from(Buffer.from(value, "base64"));
8
+ }
9
+ const binary = atob(value);
10
+ const bytes = new Uint8Array(binary.length);
11
+ for (let index = 0; index < binary.length; index += 1) {
12
+ bytes[index] = binary.charCodeAt(index);
13
+ }
14
+ return bytes;
15
+ }
16
+
17
+ export const ONDA_MATH_KERNEL_WASM = decodeBase64(BASE64);
18
+ export const ONDA_MATH_KERNEL_SHA256 = "b6b40b3520b4f2a103b03f9e0d5a2af876825a6da6f440f8918c9d7fa52974c4";
@@ -0,0 +1,124 @@
1
+ const utf8 = new TextDecoder("utf-8", { fatal: true });
2
+ const MAX_NESTING_DEPTH = 512;
3
+
4
+ export function decodeMirMessagePack(input) {
5
+ const bytes = asBytes(input);
6
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
7
+ let offset = 0;
8
+
9
+ const requireBytes = (count) => {
10
+ if (offset + count > bytes.byteLength) {
11
+ throw new Error("truncated MessagePack MIR payload");
12
+ }
13
+ };
14
+ const take = (count) => {
15
+ requireBytes(count);
16
+ const start = offset;
17
+ offset += count;
18
+ return start;
19
+ };
20
+ const uint8 = () => view.getUint8(take(1));
21
+ const uint16 = () => view.getUint16(take(2), false);
22
+ const uint32 = () => view.getUint32(take(4), false);
23
+ const length32 = () => {
24
+ const value = uint32();
25
+ if (value > 0x7fff_ffff) throw new Error("MessagePack collection is too large");
26
+ return value;
27
+ };
28
+ const integer64 = (signed) => {
29
+ const start = take(8);
30
+ const value = signed
31
+ ? view.getBigInt64(start, false)
32
+ : view.getBigUint64(start, false);
33
+ const number = Number(value);
34
+ if (!Number.isSafeInteger(number)) {
35
+ throw new Error("MessagePack integer exceeds JavaScript's exact integer range");
36
+ }
37
+ return number;
38
+ };
39
+ const string = (length) => {
40
+ const start = take(length);
41
+ return utf8.decode(bytes.subarray(start, start + length));
42
+ };
43
+ const array = (length, depth) => {
44
+ if (length > bytes.byteLength - offset) {
45
+ throw new Error("truncated MessagePack MIR array");
46
+ }
47
+ const result = new Array(length);
48
+ for (let index = 0; index < length; index += 1) {
49
+ result[index] = read(depth + 1);
50
+ }
51
+ return result;
52
+ };
53
+ const map = (length, depth) => {
54
+ if (length > Math.floor((bytes.byteLength - offset) / 2)) {
55
+ throw new Error("truncated MessagePack MIR map");
56
+ }
57
+ const result = Object.create(null);
58
+ for (let index = 0; index < length; index += 1) {
59
+ const key = read(depth + 1);
60
+ if (typeof key !== "string") throw new Error("MessagePack MIR map key is not a string");
61
+ result[key] = read(depth + 1);
62
+ }
63
+ return result;
64
+ };
65
+ const binary = (length) => {
66
+ const start = take(length);
67
+ return bytes.slice(start, start + length);
68
+ };
69
+
70
+ function read(depth) {
71
+ if (depth > MAX_NESTING_DEPTH) {
72
+ throw new Error("MessagePack MIR nesting is too deep");
73
+ }
74
+ const marker = uint8();
75
+ if (marker <= 0x7f) return marker;
76
+ if (marker >= 0xe0) return marker - 0x100;
77
+ if ((marker & 0xf0) === 0x80) return map(marker & 0x0f, depth);
78
+ if ((marker & 0xf0) === 0x90) return array(marker & 0x0f, depth);
79
+ if ((marker & 0xe0) === 0xa0) return string(marker & 0x1f);
80
+
81
+ switch (marker) {
82
+ case 0xc0: return null;
83
+ case 0xc2: return false;
84
+ case 0xc3: return true;
85
+ case 0xc4: return binary(uint8());
86
+ case 0xc5: return binary(uint16());
87
+ case 0xc6: return binary(length32());
88
+ case 0xca: return view.getFloat32(take(4), false);
89
+ case 0xcb: return view.getFloat64(take(8), false);
90
+ case 0xcc: return uint8();
91
+ case 0xcd: return uint16();
92
+ case 0xce: return uint32();
93
+ case 0xcf: return integer64(false);
94
+ case 0xd0: return view.getInt8(take(1));
95
+ case 0xd1: return view.getInt16(take(2), false);
96
+ case 0xd2: return view.getInt32(take(4), false);
97
+ case 0xd3: return integer64(true);
98
+ case 0xd9: return string(uint8());
99
+ case 0xda: return string(uint16());
100
+ case 0xdb: return string(length32());
101
+ case 0xdc: return array(uint16(), depth);
102
+ case 0xdd: return array(length32(), depth);
103
+ case 0xde: return map(uint16(), depth);
104
+ case 0xdf: return map(length32(), depth);
105
+ default:
106
+ throw new Error(`unsupported MessagePack marker 0x${marker.toString(16)}`);
107
+ }
108
+ }
109
+
110
+ const result = read(0);
111
+ if (offset !== bytes.byteLength) {
112
+ throw new Error("trailing bytes after MessagePack MIR payload");
113
+ }
114
+ return result;
115
+ }
116
+
117
+ function asBytes(input) {
118
+ if (input instanceof Uint8Array) return input;
119
+ if (input instanceof ArrayBuffer) return new Uint8Array(input);
120
+ if (ArrayBuffer.isView(input)) {
121
+ return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);
122
+ }
123
+ throw new TypeError("MessagePack MIR must be an ArrayBuffer or typed array");
124
+ }
@@ -0,0 +1,38 @@
1
+ const NUMERIC = Object.freeze(["f32", "f64", "i32", "i64"]);
2
+ const INTEGER = Object.freeze(["i32", "i64"]);
3
+
4
+ // Binaryen backend capability table for the complete scalar MIR operation
5
+ // surface. Lowering consults this table before dispatch, and tests assert its
6
+ // exact operation set so a MIR schema addition cannot silently become an
7
+ // undocumented backend gap.
8
+ export const MIR_OPERATION_CAPABILITIES = Object.freeze({
9
+ unary: Object.freeze({
10
+ negate: NUMERIC,
11
+ logical_not: Object.freeze(["bool"]),
12
+ bit_not: INTEGER,
13
+ }),
14
+ binary: Object.freeze({
15
+ add: NUMERIC,
16
+ subtract: NUMERIC,
17
+ multiply: NUMERIC,
18
+ divide: NUMERIC,
19
+ remainder: NUMERIC,
20
+ bit_and: INTEGER,
21
+ bit_or: INTEGER,
22
+ bit_xor: INTEGER,
23
+ shift_left: INTEGER,
24
+ shift_right: INTEGER,
25
+ }),
26
+ compare: Object.freeze({
27
+ equal: Object.freeze([...NUMERIC, "bool"]),
28
+ not_equal: Object.freeze([...NUMERIC, "bool"]),
29
+ less: NUMERIC,
30
+ less_equal: NUMERIC,
31
+ greater: NUMERIC,
32
+ greater_equal: NUMERIC,
33
+ }),
34
+ });
35
+
36
+ export function supportsMirOperation(kind, operation, scalar) {
37
+ return MIR_OPERATION_CAPABILITIES[kind]?.[operation]?.includes(scalar) === true;
38
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "ondaVersion": "0.5.0",
3
+ "binaryenVersion": "130.0.0",
4
+ "frontendPackage": "onda_compiler_web",
5
+ "frontendOptimization": {
6
+ "tool": "wasm-opt",
7
+ "binaryenVersion": "130.0.0",
8
+ "optimizeLevel": 4,
9
+ "inputBytes": 6451302,
10
+ "outputBytes": 4889523
11
+ }
12
+ }
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Francesco Cameli
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,55 @@
1
+ # Onda browser compiler
2
+
3
+ `onda_compiler_web` is the browser-safe `source -> semantic analysis -> optimized validated MIR`
4
+ front half of Onda. The standard library is embedded in the Rust frontend, so compiling an
5
+ in-memory program and its `std/...` imports does not require filesystem access.
6
+
7
+ Build the production JavaScript glue and compiler Wasm from the repository root with:
8
+
9
+ ```sh
10
+ npm run build --workspace @onda-lang/wasm-compiler
11
+ ```
12
+
13
+ The package build runs `wasm-pack --release` and then the workspace-pinned Binaryen
14
+ `wasm-opt -O4`. Its internal `--no-opt` argument only disables wasm-pack's separately bundled
15
+ optimizer so every local, CI, website, and npm build uses the same Binaryen release.
16
+
17
+ The production exports `compile_to_mir_messagepack(source, sampleRate, blockSize)` and
18
+ `compile_project_to_mir_messagepack(entryPath, sourcesJson, sampleRate, blockSize)` return compact
19
+ schema-versioned bytes. JSON variants with the same names ending in `_json` remain available for
20
+ inspection and tooling. Project compilation accepts a JSON object of project-relative paths to
21
+ source strings, resolving imports and includes entirely in memory. Paths cannot escape the virtual
22
+ project root. `mir_schema_version()` exposes the producer version for integration checks.
23
+ Compilation failures reject with a JSON-encoded array of structured diagnostics.
24
+
25
+ The current producer and `packages/onda_binaryen_web` both use the current MIR schema. The browser playground
26
+ under `examples/web/onda_wasm_playground` passes the generated MessagePack directly to the explicitly
27
+ trusted Onda-producer entry point in the Binaryen.js backend and runs the resulting DSP Wasm in an
28
+ AudioWorklet.
29
+
30
+ Native MessagePack and JSON APIs exist for tests and non-JavaScript embedders. They use the identical
31
+ in-memory lowering and optimization path as the Wasm exports.
32
+
33
+ Run native tests with:
34
+
35
+ ```sh
36
+ cargo test -p onda_compiler_web
37
+ ```
38
+
39
+ Build and serve the complete browser path from the repository root with:
40
+
41
+ ```sh
42
+ bash ./examples/web/onda_wasm_playground/build-demo.sh --serve
43
+ ```
44
+
45
+ That demo build requires Node/npm and `wasm-pack`; it does not require LLVM or the native Onda CLI.
46
+ This crate deliberately stops at optimized validated MIR transport. DSP Wasm emission, internal
47
+ Wasm math legalization, runtime layout metadata, and AudioWorklet hosting live in the Binaryen
48
+ package and browser example. Backend
49
+ compile/render measurements are documented in
50
+ [`docs/backend-benchmarks.md`](../../docs/backend-benchmarks.md).
51
+
52
+ Application consumers should normally install
53
+ [`@onda-lang/wasm-compiler`](../../packages/onda_wasm_compiler/README.md), which packages this
54
+ frontend Wasm with the compatible Binaryen backend, verifies their MIR schema handshake, and
55
+ provides typed source/project APIs plus the `onda-wasm` CLI.
@@ -0,0 +1,70 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+
4
+ /**
5
+ * Stateful `onda lsp` server for browser Worker transports.
6
+ */
7
+ export class OndaLsp {
8
+ free(): void;
9
+ [Symbol.dispose](): void;
10
+ /**
11
+ * Accepts one JSON-RPC LSP message and returns a JSON array containing
12
+ * all responses and notifications emitted synchronously for it.
13
+ */
14
+ handle_message(message_json: string): string;
15
+ constructor();
16
+ set_analysis_options(sample_rate: number, block_size: number): void;
17
+ }
18
+
19
+ export function compile_project_to_mir_json(entry_path: string, sources_json: string, sample_rate: number, block_size: number): string;
20
+
21
+ export function compile_project_to_mir_messagepack(entry_path: string, sources_json: string, sample_rate: number, block_size: number): Uint8Array;
22
+
23
+ export function compile_to_mir_json(source: string, sample_rate: number, block_size: number): string;
24
+
25
+ export function compile_to_mir_messagepack(source: string, sample_rate: number, block_size: number): Uint8Array;
26
+
27
+ export function mir_schema_version(): number;
28
+
29
+ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
30
+
31
+ export interface InitOutput {
32
+ readonly memory: WebAssembly.Memory;
33
+ readonly __wbg_ondalsp_free: (a: number, b: number) => void;
34
+ readonly compile_project_to_mir_json: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
35
+ readonly compile_project_to_mir_messagepack: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
36
+ readonly compile_to_mir_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
37
+ readonly compile_to_mir_messagepack: (a: number, b: number, c: number, d: number) => [number, number, number, number];
38
+ readonly mir_schema_version: () => number;
39
+ readonly ondalsp_handle_message: (a: number, b: number, c: number) => [number, number, number, number];
40
+ readonly ondalsp_new: () => number;
41
+ readonly ondalsp_set_analysis_options: (a: number, b: number, c: number) => [number, number];
42
+ readonly __wbindgen_externrefs: WebAssembly.Table;
43
+ readonly __wbindgen_malloc: (a: number, b: number) => number;
44
+ readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
45
+ readonly __externref_table_dealloc: (a: number) => void;
46
+ readonly __wbindgen_free: (a: number, b: number, c: number) => void;
47
+ readonly __wbindgen_start: () => void;
48
+ }
49
+
50
+ export type SyncInitInput = BufferSource | WebAssembly.Module;
51
+
52
+ /**
53
+ * Instantiates the given `module`, which can either be bytes or
54
+ * a precompiled `WebAssembly.Module`.
55
+ *
56
+ * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
57
+ *
58
+ * @returns {InitOutput}
59
+ */
60
+ export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
61
+
62
+ /**
63
+ * If `module_or_path` is {RequestInfo} or {URL}, makes a request and
64
+ * for everything else, calls `WebAssembly.instantiate` directly.
65
+ *
66
+ * @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
67
+ *
68
+ * @returns {Promise<InitOutput>}
69
+ */
70
+ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;