12 Commits

Author SHA1 Message Date
dcodeIO
c6ec5e2832 Utilize Binaryen's -O4
When specifying -O3 or -Oz, asc now automatically increases the optimize level to 4, then including costly non-LLVM optimizations for blocky code, in turn achieving similar results as an LLVM-based generator.
2018-06-09 14:05:33 +02:00
dcodeIO
73417a9a06 Move 'abort' out of builtins and make it overridable
Now defaults to 'env.abort' as imported in lib/env.ts, but can be overridden through '--use abort=someThingElseOrNothingAtAll'
2018-05-21 18:48:29 +02:00
dcodeIO
6c0a5c47d9 Update Binaryen and take care of WebAssembly/binaryen#1547 2018-05-14 16:55:55 +02:00
dcodeIO
4026c087fd Export the trampoline and provide a helper for functions that take optional arguments 2018-04-17 16:04:29 +02:00
dcodeIO
19a616dd96 Support indirect calls with omitted arguments 2018-03-24 09:46:22 +01:00
dcodeIO
ec5bb7ad51 Export function table by default and add an option to import it 2018-03-23 15:12:03 +01:00
dcodeIO
2738eee9cd Call trampolines with the actual number of provided operands
When calling indirectly, the number of required operands might not be known at compile time and providing the actual number of operands instead solves this.
2018-03-23 15:00:09 +01:00
dcodeIO
d4c46b036e Fix trampolines not inheriting contextual type arguments 2018-03-21 17:47:08 +01:00
dcodeIO
4687dc2572 Fix contextual type argument propagation when calling function expressions; Implement indirect calls to concrete functions 2018-03-21 17:17:31 +01:00
dcodeIO
7ee6e1cf7b Fix compilation of immediate called function expressions 2018-03-12 22:34:40 +01:00
dcodeIO
c93f0bb1fe Fixed a function expression parsing issue
Also uncovered a yet-to-be-fixed issue when immediately calling a returned function
2018-03-12 19:39:05 +01:00
dcodeIO
7870e3ac18 Generic function type aliases 2018-03-12 17:44:09 +01:00