From 615a6aa208c6af0e40123fa0138273b18c25d8fa Mon Sep 17 00:00:00 2001 From: underscorediscovery Date: Sat, 3 Apr 2021 22:09:19 -0700 Subject: [PATCH] try; fix random and meta properly --- doc/site/static/wren_try.js | 117 ++++++++++++------------------ doc/site/static/wren_try.wasm | Bin 189037 -> 185821 bytes test/test.c | 8 +- try/make.emscripten/wren.make | 2 +- try/make.emscripten/wren_try.make | 2 +- 5 files changed, 53 insertions(+), 76 deletions(-) diff --git a/doc/site/static/wren_try.js b/doc/site/static/wren_try.js index dddff40c..19d00c12 100644 --- a/doc/site/static/wren_try.js +++ b/doc/site/static/wren_try.js @@ -607,8 +607,8 @@ var wasmMemory; // In the wasm backend, we polyfill the WebAssembly object, // so this creates a (non-native-wasm) table for us. var wasmTable = new WebAssembly.Table({ - 'initial': 205, - 'maximum': 205 + 0, + 'initial': 203, + 'maximum': 203 + 0, 'element': 'anyfunc' }); @@ -1229,11 +1229,11 @@ function updateGlobalBufferAndViews(buf) { } var STATIC_BASE = 1024, - STACK_BASE = 5271616, + STACK_BASE = 5271552, STACKTOP = STACK_BASE, - STACK_MAX = 28736, - DYNAMIC_BASE = 5271616, - DYNAMICTOP_PTR = 28576; + STACK_MAX = 28672, + DYNAMIC_BASE = 5271552, + DYNAMICTOP_PTR = 28512; assert(STACK_BASE % 16 === 0, 'stack must start aligned'); assert(DYNAMIC_BASE % 16 === 0, 'heap must start aligned'); @@ -1817,7 +1817,7 @@ var ASM_CONSTS = { -// STATICTOP = STATIC_BASE + 27712; +// STATICTOP = STATIC_BASE + 27648; /* global initializers */ __ATINIT__.push({ func: function() { ___wasm_call_ctors() } }); @@ -1869,12 +1869,36 @@ var ASM_CONSTS = { abort('stack overflow') } - - function ___setErrNo(value) { - if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; - else err('failed to set errno from JS'); - return value; + function _clock() { + if (_clock.start === undefined) _clock.start = Date.now(); + return ((Date.now() - _clock.start) * (1000000 / 1000))|0; } + + function _emscripten_get_sbrk_ptr() { + return 28512; + } + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + + + function _emscripten_get_heap_size() { + return HEAPU8.length; + } + + function abortOnCannotGrowMemory(requestedSize) { + abort('Cannot enlarge memory arrays to size ' + requestedSize + ' bytes (OOM). Either (1) compile with -s INITIAL_MEMORY=X with X higher than the current value ' + HEAP8.length + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); + }function _emscripten_resize_heap(requestedSize) { + abortOnCannotGrowMemory(requestedSize); + } + + function _exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + exit(status); + } + var PATH={splitPath:function(filename) { @@ -1963,62 +1987,11 @@ var ASM_CONSTS = { if (low >= 0) assert(high === 0); else assert(high === -1); return low; - }};function ___sys_fcntl64(fd, cmd, varargs) {SYSCALLS.varargs = varargs; - - return 0; - } - - function ___sys_ioctl(fd, op, varargs) {SYSCALLS.varargs = varargs; - - return 0; - } - - function ___sys_open(path, flags, varargs) {SYSCALLS.varargs = varargs; - - abort('it should not be possible to operate on streams when !SYSCALLS_REQUIRE_FILESYSTEM')} - - function _clock() { - if (_clock.start === undefined) _clock.start = Date.now(); - return ((Date.now() - _clock.start) * (1000000 / 1000))|0; - } - - function _emscripten_get_sbrk_ptr() { - return 28576; - } - - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.copyWithin(dest, src, src + num); - } - - - function _emscripten_get_heap_size() { - return HEAPU8.length; - } - - function abortOnCannotGrowMemory(requestedSize) { - abort('Cannot enlarge memory arrays to size ' + requestedSize + ' bytes (OOM). Either (1) compile with -s INITIAL_MEMORY=X with X higher than the current value ' + HEAP8.length + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); - }function _emscripten_resize_heap(requestedSize) { - abortOnCannotGrowMemory(requestedSize); - } - - function _exit(status) { - // void _exit(int status); - // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html - exit(status); - } - - function _fd_close(fd) { + }};function _fd_close(fd) { abort('it should not be possible to operate on streams when !SYSCALLS_REQUIRE_FILESYSTEM'); return 0; } - function _fd_read(fd, iov, iovcnt, pnum) { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = SYSCALLS.doReadv(stream, iov, iovcnt); - HEAP32[((pnum)>>2)]=num - return 0; - } - function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { abort('it should not be possible to operate on streams when !SYSCALLS_REQUIRE_FILESYSTEM')} @@ -2097,7 +2070,7 @@ function intArrayToString(array) { // ASM_LIBRARY EXTERN PRIMITIVES: Math_floor,Math_ceil var asmGlobalArg = {}; -var asmLibraryArg = { "__handle_stack_overflow": ___handle_stack_overflow, "__sys_fcntl64": ___sys_fcntl64, "__sys_ioctl": ___sys_ioctl, "__sys_open": ___sys_open, "clock": _clock, "emscripten_get_sbrk_ptr": _emscripten_get_sbrk_ptr, "emscripten_memcpy_big": _emscripten_memcpy_big, "emscripten_resize_heap": _emscripten_resize_heap, "exit": _exit, "fd_close": _fd_close, "fd_read": _fd_read, "fd_seek": _fd_seek, "fd_write": _fd_write, "memory": wasmMemory, "round": _round, "setTempRet0": _setTempRet0, "table": wasmTable, "time": _time }; +var asmLibraryArg = { "__handle_stack_overflow": ___handle_stack_overflow, "clock": _clock, "emscripten_get_sbrk_ptr": _emscripten_get_sbrk_ptr, "emscripten_memcpy_big": _emscripten_memcpy_big, "emscripten_resize_heap": _emscripten_resize_heap, "exit": _exit, "fd_close": _fd_close, "fd_seek": _fd_seek, "fd_write": _fd_write, "memory": wasmMemory, "round": _round, "setTempRet0": _setTempRet0, "table": wasmTable, "time": _time }; var asm = createWasm(); Module["asm"] = asm; /** @type {function(...*):?} */ @@ -2212,13 +2185,6 @@ var dynCall_vi = Module["dynCall_vi"] = function() { return Module["asm"]["dynCall_vi"].apply(null, arguments) }; -/** @type {function(...*):?} */ -var dynCall_jiji = Module["dynCall_jiji"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return Module["asm"]["dynCall_jiji"].apply(null, arguments) -}; - /** @type {function(...*):?} */ var dynCall_ii = Module["dynCall_ii"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); @@ -2226,6 +2192,13 @@ var dynCall_ii = Module["dynCall_ii"] = function() { return Module["asm"]["dynCall_ii"].apply(null, arguments) }; +/** @type {function(...*):?} */ +var dynCall_jiji = Module["dynCall_jiji"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["dynCall_jiji"].apply(null, arguments) +}; + /** @type {function(...*):?} */ var dynCall_iidiiii = Module["dynCall_iidiiii"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); diff --git a/doc/site/static/wren_try.wasm b/doc/site/static/wren_try.wasm index a73925c662442d050f7737f5ea64fd337f4142a2..777c338c377195335844843ab738768a303d57c2 100644 GIT binary patch delta 36508 zcmchA31Ae(^7nMlZg!K+F(LOoySX7ig35gj67E~P03V>D5~AIk}@=(DuN&L#VpZ0 zss^i*SU}~f7j3HyrBwPC_#o;W0{TpxEp2M`yOoO>o7ddej*FBx3ZODHSaO8Br-}H8b|_ z+rk6Yim`j2`I{%VBsTWiE5=*omOIvPSh>a>clD z%38C#H(0$zjlS}#u@_A^YwR`Sl$X>PnJ{F*m(^IA8aD3At0rGDPI*PuMvuPqipkfW z3$YnEZqno{{;j;K#$WvJ%g;p1qpulH|CHC%K!Y4*s~X!NIbPWoPE+x5%Io3sRDHV| z6E3gp2&VvhBV4y?eARg6Ej7U@JAVAd)SR+Yjs6j|F<4+bYnGUleBSvZMvl5*WA~^S zR$aqy=C|@c*>rvz|Aqa^Zs&inJNTXacXk&)$?oPe`7A!0&*5|VJbr@B=Yp@|kMhU) zdcJ`_!8h_J`P2LZ{vLmqf6Vvt@A(h>CmvJxTJ&pblmZ^G09OK6Gfy?|p060?6GAMc z=JURu?wUWKs|AWTpfl|$bFZ&?ek~7iqsFf*+7=#Ebgn(ad3T)|jX>stxSnjS`Egt*d95ljnq9-H zLIDS-#Q0$K&kr%<4nKzSAFM8GQf+%X6Fx1(4k~>PYL$~RUQ9?9K19?C|XDDmnKk((vX6-W!G-YKH#BZoqpX(-e?c?Isjm-pV38&8K&(!h0(uCDD- zWBr>py`4(^E5;XoV3f5oX83Wj6b4W&V*G)W#R?#kt zgU)~qGfdJFu9fgIVjKt`un@Ni&VwF%Aa%r?2Q%ITO{ZiM^Y6;sj^DGhDq3w;Gj%mE zoiSc*7uK{*ml$XEgF;R#(>5{3(lOb1*v@ziqP#<8j${ClG!%21Yi@ zp3J_0y=Y#L(*iO9OeC)KlTI?>v1DR-&LCE|u|DTa#_rsBdR{gz=1~1K)VocejCOy~ z3qh`|U>@!}1&4tu_XLacnv*E<5*}Ns`h#AYB@t6|<9oq#IT|V}_!$*~g#%G}a^cOa zxp}y-d)_9VsWTmOM8gHVOAmnhUQBln=91Rj98%Of4e}PCiRK7+x-H<37nKrYii%nD zxy6;hvR82-8lPB9U2HC81FcQ`*wJzIhSumN%cq z2Ag^dB3Snple9r0uTk9#Q>w zSJq8}%FVKt#OBM(%FVl4#%n+O+sT5uEcl1tT-CB9{sd{qJsh1#oc6UGiW=puhNFwy zS{3;RK#*)?yGMcCgut(@E72nwsZH*izS6eZ|P-As&aWObu5 zHqcyNJ`N50D)xf8UsP12gH4j2-oV)rl-k&`&3Cb^|HjO2x2foBS&zbE;<_b*7Av8P zvBn_>Bo9H9JE8!Iqmd4x(u8BAU^J^FP{LHqq{+#!OqoLlWQZvXn8)06=FJ$@sGgVM z_tl+~_-?cEE+&+OBUb=Wwf&-onuNF9`Ke%LP| zYI-zU%`yiK(vcb0KNr7c{o6z>YM6an|6nw@=EW>97Mbh%pO*Z1bP%+I%|OG)dexwf zv;oVbUWqm`v9wQYlQtuB8qVTbS zghA?{Hc|T;Vla77KC;b0=O!MBCY7!j;bwjx)LZ6i$PG95`=AVS;^3a~Cr}=*9R~vKh14#;5YNlA?Zm-lLPc=qVRjvwTJ$POnYBJ)tpcW~vIbmHjZHCF==-8DGrZ>dVL7H4n$Ro* z1ytkN7{hCWq9o{j7qle|@)0O&S2U`?96>X?qN_BkfvvKXSwA#CYg-t;&4s@iWB9ec zW~*WO=DoubVy#La#26lAPDJLL!xHi-Q!zf4!*dp8td`F3K9147rZF_BMdS!+jlf?C z*J&NaSPsZmqS0Bqv+~V_XF21x(2`~2P&UW>;4BA^`oF@X-p0dc z<6(w|7dErHzBxdB1hJ+Y@#gu%3(GJh%;yy;FoH>uUQ+fnhEP7*RIM63y$+(ap2ZcIdh!Ac@`j>>_i4oB2q< z@L~K@kolpT`M5;b+G_jpK;*_14azSHTm3p zbJw{J1?mGv0GVr%8GoLW`A5Lekohe#2b||1F)P+ZB3I&fmkTmuT?*$((6;l!yjT<~ z*%;fH7rJ@;Jclex!fgl54(FGhO0AGtF(N1HxX&Heai248i*V-D^YgRn!|-|+{!pxx z=XK}jo7xCxh-+izxW7l{AUAVUtPzKCw-}Lc&K%*4duyzbV2e*NAz^NJK_A8%i8iQ2 zg8U<$T3^Q+Nj9idf_k~2KVyv)8`NBm>X|Us&$w8daYh<&89OpRYke5L-i1FF2gTjj zTsks;?kHzauf`c!$ophuzS(t@gUNw7BggKpmBi#m7j!bt$g@GMC1|q?S{iQzZBV%c z9d|)n;*ES8R3SlaFL3%g7;hBXpf&^w9>-R|7S!WW4#OJE<w z@`DMa0wk!N1nqP|k0ltY4Qekz38S4_>kAiTH9Ln=>(}&CX6o1 zS|1+ndY33KNIc9nfUgR}SGn-5333Veesr4IeQa#jvT&JYZkac%GOfm7?HJ?G=WQ!< zA~JW5aq#~@X3A05nPV@`HRHxQppV0#EfO@q1?>-mUXq}@UC_Yw_(sL z5)^%*)7Rl}gRe?Z9~X2q40=t1Zg)Yyhe2B<=rtEqqq%5olOXR!4jpDlka^(3f~-22 z>W=#KI#M}PBW|1eMFm;UgyGM)@Y$MVz-YkNhvDm8_8X zZaG+4Yqtdba*0EnPb`kSeF->5#*4k+VZ&f8cn2)Fb}2X(hCk!N4_b5_4EXvme7y_* z#;Si0;H$#$RWAGotNxpp7MSIiIY|8^DQd=ER$xxP%o+MGVOoAF2l2QI`aMjr{Sx%O z3%VtdRDvA(0SPJ_?=*N`%tj{HAwF_F5=yKo-3HsUvtw@vx7uli* zC8(sz>1$o0J7>O>pi5oQQ;8(=62q?~=n)sxK#3ocpo3Koi8f0N%`H{n8#$|NzNrr1 zEE{_61h6d(e#Qk`cC^`TLP7KOVfcC*P7A}!iE?2mk-B|*qBK^fO-M5fCu&)%!c|te zO@5pxSNk_66q{#EbkMZ5W&Ff+bIj$jSqsAz7rGU{N|Z`r$i#xI*7yhlJxOp$& zcZA`0xbUMEd?(;FVR(%TzquJ17iQd~0&~hF2eCQLB(?*Pxz5d8VrAZq%pWE>tb4SX z%kW>!Ig@hDmX|xACz~0uHtUW`&_oxsC0y&61U=@0-jMi6h98%pZ(PvcW<+NR`c;BT zCp&$8-^^WJf0LlgTu=is`CWomP7bfpzc-V7#C8y7dQB3ITDJd(nK3139-r(GWM&dc zsQLEfVzc9vgd}VBTda}gPbg;Ml{x0WUD(_tcV?ZmV9!i(kX@AIPOTdA?JIK4V=icU z7=@c9sO?mz*4l83w@A>{QyuJ{valOEwIHh=E*M+f>)|rA5Pep*YR(4yP#Av5gfI!1^v*=)k8Y+VF6Itowz|?8 z*(b83q~l$3WRtE8bLgui$)RM)A&U*NQx}bE73*K*oNlQJM zENNFDX}399S`Ts8q?!74aptsZ;%zd$m`s+WIpUfE^SNsr{9a0SEzgDKm}_#)-(1jZ zVbFaN)c#th*7js~1}!2`UV9g>_RgRhjQoBolTq%LDR;`)0(bAV1!n!VaW2Xb**ete=Y|uxv_)J{1{!ZBbD9Du-;Sv8-$ehK;*c0*z6+xrx7ry|Iu6Vdnp zNiW<^vu-%6>)w5eHU#c)v`NP;!086>Lq1>QAd0qZ0zK-6YdITpZ{#f3{8Z6? zW`+_-C&vbw!H+@zNr2h)rkNPQj+;u7ZrcxcB00wveoEBEu~n8CHLaB<^QpUUC?AyZeCflED!!VI${D9x9)x9bB)sDW;BFf6VX@g?foLsWABJe2kwka zKh-Eb`mRWL^xcu^jg8V5%#4KlX65+i@0YS_wwM+2Ewb;2&(bqp`UdH+RtmY_AQGN! z-ZQH>X(zWF;2yZbApo&e+H`ZlllJoQ_Igi>or@`@W;D{wmc}X!kMzgRY)co3$R&hGU52g_?0 zkt%#^QTLobfZlNXPz|jyI*X#t5IUi?HOuZV_09N9F^VwYQTMlE=a_fjA7pLJwfCo^ z{%iLKy=y;1ee=8f2iSLA7I$WY%W{4; z0v+3kWj$EFxo6qA_-(VCPIgBvKhrCTXg<8Ww@a)e%PZ2)36oW!C=Rd$L)7xkP7hv> zicddSU|0O~!7eP-%y}rUSt_PI%0bpa5n3!$%s~(J&XGiJI36@bOTLC76_`&vG|C-& zzS;KS{xUV(obhny%u{MQlqfd$KAgu2%|9N_WyNOJid@`xTv3|4Uy=@otkwar)kz6Y zHVzTMym`f0ti*hOMIk%O{C!0hD>c&|X@&cnA4y>?%u$aNSog^-oOuiT#2SrOX0CpO zs_lBD2-S`~(k1yUchXD#<78fIY4%w;-Wtuur&n@j52gIkWb^G+slIx!Aq8w0`)HEM z9&PSIn>T=rVo#VaJetEcntLA=vcypHy4Aa??J47uH>9>uHSM%e)JiLo12W%2O-F`L zW~eO{9aEL`h3=!U5yXJVi*eWIiZSbR6wi`T9L5aXW3mO|zH}lvbc6|@Fz=4~dR0iy zI|`ICcRW^z(2T>6k%2dOP4gJCilQv5=+-s)zKx$+%4O}ET;DsmPs3Q>S<~7_Mp6`v zB>&o-sQBSpI;K3jwtyWK7i6$>T&AV5)b<`Dd7?4%6;=gu;v7oVjxwo>=@7bv_aSJF z1r4cEsy{r8>7gAnZ+X11z^}(B9F|t(mK-b(dMOG5EzfpZ zCZeba&hf7+WXH``>$21PS}KoPqUIKtW5DqA_Yh-;Fr8J3^=GkcbLqMw=H?t8!jiqD z?RuDOk6vCW2{{`FnNDbob#fYbFM~xlh(~jv8;7hfr@AF4_3V6XU(U z4}PKnFE&%3`I;@6yD5!5V5V;h=6!b@9x&x}qar!+0*oMr1v!vVM(czk%Q(zDxUvS3%0Sc9ff= zUP#AD{L~jS%wx}YExz>|R00D}sZ@uJT$8o#d7*vGLfI}z@R7Oeg{;_BG6~E-;+f{J z&zG9|izS-uyQwCc1K-6j>TJ`-=U?2*gR?K8FfwK+CCbc8+R9t6q?u&D2O$%iU;3t+ zgi}ga2+FPxsRG!|m|74>NFHQ`^2?FUq$naINYP7Ds3n|4y1i6W#>-zeu4l9-!;eZ6 z#TD&0hBH{S;Z`q3s*k~}`Wqtp1*F_y(s0y{n*ClOBjA!(%40tI5)+-+dCXk)N>BEx zdGM9Il$l>yUCSU2W4)C!GhQwAz55mEg=1#lS4U!@S@CLV%BX;(p9dubl=OArOON*R*yNdDakriT?j&_%7}K#@N4qEdyisZEYT@Y0RbD zW6V$9NNe>c4anga1(R7i$L%5#KXc2Dq?j;6%x-U{BZ-}ytY`kXH6`nv2u5IgS8k}p z2()YFZOdXu%}(1g&I*eTO4y>a`s;=wKsBvumMr}(+`5NxYa}dxEh`d5DJz8HZ`&wf zFZ1;r{I-9+rG;(-Nk@=mljtI!(Dk^Ij`$Wz*fZoWC7tS7l1`=nLei6(z}`&Uo|Hy4 zAYi1+SXEmdORfSMMW^k-WXTt`I}lKf&cp$9V9xmwYmGVdy(Dw-_JZn2=KtSe?5F|{ zR2!t+h_So0xCcW@X3GFZi!!>Bf^rR}@V+l3|7l=J7#JF)ndU~ zUrifQ3>druo6sVR$C*V|zD*Y-44W=ac@h|iD-3A}jLmSHS};^1W03v@@{LV?cX$< z));eGGed8@9feS8wEfjLigpX40i{SNh(_iV_GEmA%H(BVzcZCdO9IBm*hJRONtni4 z>A2r=09J^3!&_O|4q3THR*;uu-x`Cd?anoKz2z(ZYpd#iP6<7N62w_&3`Z~q3TIir zGg*brMD`Gn-LR`ilY^++lM5*}zM^?r{!#kn5h_Hr7P}Ltl2qzgS{noKLlVENVE1~8 zRJW<>LDZuTZK2hvTEC#fOmN;Y=n{dPq@*ysaBK~D2lgCgWL7$Sam&Iskj9QHmF| z^l4az8;UTw5M2>ASH4@;IYNS|>M0Uz*}I8Ml0XTOD#il}WPzIr@0DaaqSOFW20
Ray-gMWCh_;g48I_ix5ouT!8KPz%_ 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 Ci6gWC diff --git a/test/test.c b/test/test.c index ae3799eb..1d314c9a 100644 --- a/test/test.c +++ b/test/test.c @@ -374,6 +374,12 @@ WrenLoadModuleResult readModule(WrenVM* vm, const char* module) { + //source may or may not be null + WrenLoadModuleResult result = {0}; + + #ifdef WREN_TRY + return result; + #endif Path* filePath = pathNew(module); @@ -383,8 +389,6 @@ char* source = readFile(filePath->chars); pathFree(filePath); - //source may or may not be null - WrenLoadModuleResult result; result.source = source; result.onComplete = readModuleComplete; return result; diff --git a/try/make.emscripten/wren.make b/try/make.emscripten/wren.make index 66bc3075..3eed301f 100644 --- a/try/make.emscripten/wren.make +++ b/try/make.emscripten/wren.make @@ -1,6 +1,6 @@ # Copied from projects/make and modified for emscripten -DEFINES += -D WREN_OPT_RANDOM -D WREN_OPT_META +DEFINES += -DWREN_OPT_RANDOM -DWREN_OPT_META LDFLAGS += " -s WASM=1 -s FILESYSTEM=0" ifndef config diff --git a/try/make.emscripten/wren_try.make b/try/make.emscripten/wren_try.make index 35e05990..3bc3c5e0 100644 --- a/try/make.emscripten/wren_try.make +++ b/try/make.emscripten/wren_try.make @@ -1,6 +1,6 @@ # Copied from projects/make and modified for emscripten -DEFINES += -D WREN_OPT_RANDOM -D WREN_OPT_META +DEFINES += -DWREN_OPT_RANDOM -DWREN_OPT_META -DWREN_TRY LDFLAGS += -s WASM=1 -s FILESYSTEM=0 -s EXIT_RUNTIME=0 -s ENVIRONMENT='web' LDFLAGS += -s EXPORTED_FUNCTIONS='["_main", "_wren_compile"]' LDFLAGS += -s EXTRA_EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]'