Commit Graph

939 Commits

Author SHA1 Message Date
Alexey Andreev
055d5df367 js: fix emitting line number to debug info 2024-03-13 12:36:33 +01:00
Alexey Andreev
582fcf904c jso: implement vararg support for method calls 2024-03-12 18:56:19 +01:00
Alexey Andreev
ccfe19994b js: refactor and simplify AstWriter, properly fix case with variable in catch block 2024-03-06 20:24:35 +01:00
Alexey Andreev
393cd7f807 c: don't generate while(condition) loops due to UB in C spec
See https://www.iso-9899.info/n1570.html#6.8.5p6

Fix #885
2024-02-19 20:35:21 +01:00
Alexey Andreev
c1b3deedff Support @Inherited annotation on annotations
Fix #883
2024-02-19 20:14:00 +01:00
Bernd Busse
d067b986df JS: fix catch variable not getting minified 2024-02-17 21:05:06 +03:00
Alexey Andreev
ab253fd34a Fix class initializer compilation for WASI target 2024-02-17 19:04:37 +01:00
Alexey Andreev
8db406c603 jso: implement exporting Java methods to JS
Fix #785
2024-02-15 21:00:10 +01:00
Alexey Andreev
6ac598b927 js: add limit for top-level declarations
Rationale: turns out that V8 utilizes stack even to represent module-level functions.
This can cause SOE when there's too many classes and methods in source JVM
2024-02-01 09:41:50 +01:00
Alexey Andreev
ca273390ef Remove outdated file 2024-01-30 15:46:20 +01:00
Alexey Andreev
4049bc529e js: introduce setting to choose module type 2023-12-23 16:32:55 +01:00
Alexey Andreev
1c292f3fbe Fix calculating comparison in constant propagation 2023-11-25 17:23:50 +01:00
Alexey Andreev
6695103f49 Increase upper complexity threshold for inlining 2023-11-25 15:58:00 +01:00
Alexey Andreev
ac2c084290 js: add ability so refer to local files in source maps. Add copying of source files to Gradle plugin. 2023-11-24 21:28:37 +01:00
Alexey Andreev
6543e68f8a JS: fix naming of variables in no-obfuscation mode 2023-11-24 17:38:50 +01:00
Alexey Andreev
86efdb0809 JS: remove legacy way to generate names, fix issue with duplication of some top-level names in no-optimization mode
Fix #860
2023-11-23 17:22:03 +01:00
Alexey Andreev
57c22ab2c8 JS: fix some runtime function names not being mangled 2023-11-22 18:49:37 +01:00
Alexey Andreev
3282ae3b59 Refactor mechanism that resolves methods and fields parsed from bytecode and reports errors about missing items 2023-11-20 19:50:20 +01:00
Alexey Andreev
89661e52fb JS: fix output to console in obfuscated mode 2023-11-20 18:57:51 +01:00
Alexey Andreev
e877cc86e4 JS: remove unused runtime function 2023-11-13 10:46:06 +01:00
Alexey Andreev
1955973c3b JS: fix removal of unused functions in handwritten JS 2023-11-13 10:37:30 +01:00
Alexey Andreev
083ecbdad2 wasm/c: add support for class flags 2023-11-08 21:02:31 +01:00
Alexey Andreev
726702dd7f wasm: fix programmatic initialization of a class that is statically initialized by optimizer 2023-11-08 19:59:24 +01:00
Alexey Andreev
f6e38e94f7 c: fix typo in macro name 2023-11-08 09:52:27 +01:00
Alexey Andreev
8f8b33c0b1 js: split runtime into smaller parts 2023-11-07 20:26:10 +01:00
Alexey Andreev
9c6f23d280 classlib: optimize console output in JS backend 2023-11-07 20:00:33 +01:00
Alexey Andreev
0ee994e913 Improve class initializer elimination 2023-11-07 18:46:01 +01:00
Alexey Andreev
eca3dc61f5 junit: fix exception reporting 2023-11-07 18:01:33 +01:00
Alexey Andreev
21137c57a3 JS: merge let statements to get better minification; rewrite some Array methods to generate less dependencies on runtime 2023-11-06 19:18:18 +01:00
Alexey Andreev
717bbf4a57 JS: strip unused functions from hand-written runtime 2023-11-05 22:41:57 +01:00
Alexey Andreev
485d23d675 JS: fix native toString in Java String class
Fix #847
2023-11-05 10:20:49 +01:00
Alexey Andreev
8b6c6a5ca9 Fix checkstyle error 2023-11-05 10:05:45 +01:00
Alexey Andreev
5ec4450bf8 JS: render all declarations into one remembered fragment, then output this fragment to real output 2023-11-05 08:55:24 +01:00
Alexey Andreev
ceffde38f3 JS: use ES6 arrow functions and let where possible 2023-11-02 21:10:35 +01:00
Alexey Andreev
6738d6f1f8 JS: add remembering source writer, refactor PreparedMethod and Renderer to use it, get rid of $rt_globals 2023-11-02 19:03:10 +01:00
Alexey Andreev
8024d84ed5 JS: split SourceWriter into interface and implementation part 2023-10-31 20:58:56 +01:00
Alexey Andreev
23ad999bbd JS: get rid of IOException in SourceWriter and related classes 2023-10-31 20:09:55 +01:00
Alexey Andreev
32ee8943c1 JS: rewrite more natives with templates, get rid of runtime aliases in minification mode 2023-10-31 19:29:32 +01:00
Alexey Andreev
a1cc817504 JS: rewrite more native generators with templates, fix issues in template engine 2023-10-29 20:17:18 +01:00
Alexey Andreev
eb0f4fb090 Improve JS templating so that it could be used in native generators 2023-10-29 17:16:55 +01:00
Alexey Andreev
5d5fb47ca8 JS: add conditional intrinsic to JS template engine, use it to get rid of remaining generated methods in runtime 2023-10-26 21:17:24 +02:00
Alexey Andreev
16cd0aaab2 JS: introduce JS template engine to write runtime, rewrite several functions using this engine 2023-10-24 21:20:27 +02:00
Alexey Andreev
7acc81ce4d JS: remove lazy creation of primitive classes 2023-10-21 20:07:49 +02:00
Alexey Andreev
60d0b07f83 JS: refactor array implementation in native JS 2023-10-21 19:42:55 +02:00
Alexey Andreev
bb0d4a4fc6 JS: remove old polyfill 2023-10-21 19:30:16 +02:00
Alexey Andreev
02b3c92912 JS: use native string to represent internals of java.lang.String 2023-10-21 19:30:16 +02:00
Alexey Andreev
0e2052d91c C: fix compiler warning 2023-10-21 19:28:42 +02:00
Alexey Andreev
8b1732d442 JS: fix issue in minified mode 2023-10-17 19:13:14 +02:00
Alexey Andreev
a78eec93d6 metaprogramming: use unprocessed class source to get program templates
This should prevent class transformations from applying twice, which can cause some errors.
2023-10-17 07:55:01 +02:00
Alexey Andreev
cd9db17d73 JS: improve performance float<->int reinterpretation conversion, improve performance of Double.equals. 2023-10-16 17:27:12 +02:00