Alexey Andreev
3ba2282473
wasm: implement several instructions related to reference types
...
These instructions will be presumably required for implementation of new Wasm GC BE. There's no tests for these changes, since there is no infrastructure to test anything like this. Instead, this code will be covered by tests for corresponding Wasm BE, when it's finally implemented.
2024-06-30 16:19:00 +02:00
Alexey Andreev
d6474c3aeb
wasm: add model definitions for GC spec
...
- refactor Wasm type representation to include reference types
- refactor function representation for consistency with new type system
First step toward Wasm GC support
2024-06-26 20:41:01 +02:00
Alexey Andreev
5d237a98ae
wasm: fix writing debug info when some class was not found
2024-05-15 19:24:33 +02:00
Alexey Andreev
1b412073b9
wasm: support exception handling via native exception handling spec
2024-05-09 20:38:17 +02:00
Alexey Andreev
e48dfb27b0
Improve inlining performance by caching method complexity
2024-04-29 16:32:24 +02:00
Alexey Andreev
188d189407
js: improve performance of instanceof
against interfaces
2024-04-26 10:37:12 +02:00
Alexey Andreev
a1d711d069
jso: when casting to JS objects, don't fail cast when cast object is null
2024-04-16 20:03:19 +02:00
Alexey Andreev
931f0f1f4a
jso: support varargs in exported classes and modules
2024-04-15 20:53:24 +02:00
Alexey Andreev
6a09f181c7
js: add JSTopLevel annotation that allows to import top-level declarations
2024-04-11 20:29:57 +02:00
Alexey Andreev
a6fb67817c
jso: improve support of instanceof and cast against JS wrapper types
...
Fix #808
2024-04-04 21:18:54 +02:00
Alexey Andreev
e069bc3a44
classlib: implement WeakHashMap
...
Fix #799
2024-04-03 19:11:48 +02:00
Alexey Andreev
bbd02b0067
gradle: implement dev server task
2024-03-20 20:41:10 +01:00
Alexey Andreev
7341fb38a6
Reduce memory consumption
2024-03-18 18:05:06 +01:00
Alexey Andreev
622006de0e
Reduce memory consumption
2024-03-18 17:02:42 +01:00
Alexey Andreev
6e416c11d7
Reduce memory consumption in dependency analyzer
2024-03-18 16:21:12 +01:00
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