Alexey Andreev
40c4f03e3b
Coroutine transformation: minor improvements
2023-08-28 14:10:34 +02:00
Alexey Andreev
bd2d2cb49b
wasm: fix exceptions in DWARF generator
2023-08-28 13:18:26 +02:00
Alexey Andreev
36060b37e3
wasm: another attempt to make class reference visible in chrome dev tools
2023-08-27 00:26:03 +02:00
Alexey Andreev
cacf09dca8
wasm: generate field description in DWARF
2023-08-26 20:48:29 +02:00
Alexey Andreev
fed6a2d0ef
wasm: change language in DWARF from Java to C++
...
This is due to weird issue in lldb (from which Chrome dev tools
are derived), which does not parse DWARF functions if there's
no support for language "type system"
2023-08-25 20:43:34 +02:00
Alexey Andreev
e576a985dd
wasm: don't generate separate declarations for methods in DWARF
2023-08-24 06:45:41 +02:00
Alexey Andreev
49485efdff
wasm: fix line section in DWARF
2023-08-23 21:10:42 +02:00
Alexey Andreev
e3bbf12f49
wasm: use bulk memory operations when necessary
2023-08-22 17:13:06 +02:00
Alexey Andreev
e291128948
wasm: support Long.compareUnsigned
2023-08-22 17:11:26 +02:00
Alexey Andreev
f6131a8248
wasm: fix Array.get with enabled inlining
2023-08-22 17:11:04 +02:00
Alexey Andreev
9ecb3ad817
classlib: support ReferenceQueue.remove
2023-08-21 20:13:06 +02:00
Alexey Andreev
e9d206eed0
wasm: fix NPE
2023-08-19 17:10:53 +02:00
Alexey Andreev
0e7d6b65b4
wasm: add stats generator
2023-08-19 16:59:49 +02:00
Alexey Andreev
a7f115a541
classlib: implement Integer.compareUnsigned in Wasm and C
2023-08-18 17:55:01 +02:00
Alexey Andreev
22864c88f2
js: support WeakReference
2023-08-10 20:47:01 +02:00
Alexey Andreev
b9f5e9be1c
JS: optimize case when JS method returns java.lang.Object and then treated as JS object
2023-08-04 20:40:57 +02:00
Alexey Andreev
334e2829b3
JS: supports module imports in JSBody
2023-08-03 15:42:15 +02:00
Alexey Andreev
a97e0ef45c
JS: generate code in UMD wrapper (to be compatible with node.js, webpack, etc).
2023-08-01 20:11:32 +02:00
Alexey Andreev
059281a25c
Fix issue in optimization
2023-07-31 19:29:41 +02:00
Alexey Andreev
ef2e887d06
Avoid duplicate application of class transformations
2023-07-31 13:21:33 +02:00
Alexey Andreev
948244cbf4
JS: marshall JS object to Java in a wrapper
2023-07-29 18:54:23 +02:00
Alexey Andreev
61eb666503
classlib: faster implementation of System.arraycopy
2023-07-19 21:11:27 +02:00
Alexey Andreev
b1ddf163d7
Don't crash when reporting some cases of missing standard APIs
2023-07-17 18:41:28 +02:00
Alexey Andreev
c39efdc6d7
classlib: fix issue with integer unsigned right shift
2023-05-16 09:56:24 +02:00
Alexey Andreev
b927b28e7d
js: fix extracting exception message from Java
2023-04-11 13:42:28 +02:00
Alexey Andreev
79df39fca0
minor: remove unused fields
2023-04-03 17:19:13 +02:00
Alexey Andreev
a70251fe83
classlib: add Integer/Long.compareUnsigned
2023-03-25 09:37:44 +01:00
Alexey Andreev
ca76ea45cf
Get rid of Gson library
2023-03-10 21:19:30 +01:00
Alexey Andreev
0f8d36a080
JS: display Java exception message in uncaught exceptions in console
2023-03-02 20:22:33 +01:00
Alexey Andreev
971fa9a1f3
Bump versions of dependencies
2023-02-24 19:55:35 +01:00
Alexey Andreev
4fdb05905d
js: increase default top level name limit, since browsers now fixed issues in their dev tools
2023-02-18 08:14:28 +01:00
Alexey Andreev
f2ae748705
wasm: display inherited fields in debugger
2023-02-17 21:04:51 +01:00
Alexey Andreev
df7b3957e9
Fix issue in graph splitter
...
Fix #657
2023-02-17 20:42:27 +01:00
Alexey Andreev
900f95c1ed
js: make names of variables in minified mode never interfering with JS keywords
2023-02-17 19:36:33 +01:00
Ivan Hetman
fdfd923ac6
Add info about Java 14 record to IR. Add support to Metaprogramming API
2023-02-11 23:05:07 +03:00
Alexey Andreev
8014c038c0
Migrate to gradle
2023-01-23 17:16:07 +01:00
Alexey Andreev
2a0f6f206e
New IDEA module kind based on Gradle
2022-12-20 20:48:16 +01:00
Alexey Andreev
013ba237b0
Wasm: fix issues when building with debugging information and optimizations enabled
2022-12-20 18:01:38 +01:00
Alexey Andreev
9a9e7561b7
Wasm: support displaying objects in debugger
2022-12-20 10:01:47 +01:00
Alexey Andreev
7b3905246b
Wasm: support class layout in debug information
2022-12-18 17:45:35 +01:00
Alexey Andreev
506a9bd8c5
Wasm: fix bugs in debugger
2022-12-15 17:27:14 +01:00
Alexey Andreev
6c91192794
Wasm: fix issues in debugger
2022-12-14 16:50:18 +01:00
Alexey Andreev
6808d9e517
Wasm: support local variables in debugger
2022-12-13 21:18:41 +01:00
Alexey Andreev
313e4ed87f
Wasm: fix issues with debugger
2022-12-13 18:51:19 +01:00
Alexey Andreev
a6add26aaa
Wasm: working on step-in and step-over in debugger
2022-12-09 19:13:20 +01:00
Alexey Andreev
87d63168d2
Wasm: working on control flow analyzer for debugger
2022-12-05 20:03:57 +01:00
Alexey Andreev
44204b952d
Wasm: working on binary parser
2022-12-04 20:43:32 +01:00
Alexey Andreev
53dbb72c53
Wasm: working on binary parser
2022-12-02 21:35:07 +01:00
Alexey Andreev
aaed8e312a
Wasm: working on parser
2022-12-02 18:07:56 +01:00
Alexey Andreev
b58dd1a37b
Wasm: refactor debug info parser and fix debugger errors
2022-12-02 17:15:38 +01:00
Alexey Andreev
548ded7c75
Wasm: fix debug info generation
2022-12-02 07:49:07 +01:00
Alexey Andreev
57e0227a02
Wasm: trying to improve debug information emitter
2022-12-01 17:33:35 +01:00
Alexey Andreev
930a57fdd6
Wasm: fix compiler crash when compiling without debug info
2022-11-30 14:01:46 +01:00
Alexey Andreev
4453bba33b
Wasm: fix issues in debugger
2022-11-30 13:38:34 +01:00
Alexey Andreev
a2715f2c79
Wasm: working on Chrome RDP debugger
2022-11-29 21:30:41 +01:00
Alexey Andreev
9d3927e196
Wasm: working on Chrome RDP debugger
2022-11-29 18:14:13 +01:00
Alexey Andreev
d1feec7ae6
Wasm: add parser for own debug information
2022-11-28 17:30:34 +01:00
Alexey Andreev
56929b2085
Wasm: generate debugging information for own debugger
2022-11-25 17:50:39 +01:00
Alexey Andreev
7e95e935d1
Wasm: write more info about classes in DWARF
2022-11-23 22:04:26 +01:00
Alexey Andreev
646c8ec488
Wasm: fix issue with forward references in DWARF, generate class references as pointer types
2022-11-23 11:20:07 +01:00
Alexey Andreev
f938db798b
Wasm: add information about parameters and local variables to DWARF
2022-11-22 17:53:12 +01:00
Alexey Andreev
13cc56feb5
Wasm: split declarations and specifications of methods in DWARF
2022-11-21 16:00:27 +01:00
Alexey Andreev
8fac3237ba
Wasm: generate nested DIEs for namespaces/classes/methods
2022-11-20 16:12:00 +01:00
Alexey Andreev
6222241651
Wasm: update loader to use instantiateStreaming method
2022-11-20 14:05:35 +01:00
Alexey Andreev
1399045ff6
Wasm: fix issues in DWARF generator
2022-11-20 08:42:32 +01:00
Alexey Andreev
7f38697d50
Wasm: don't emit DW_LNE_end_sequence when there were no previous command emitted
2022-11-19 20:15:54 +01:00
Alexey Andreev
f7768efd51
Wasm: fix bugs in DWARF generator, emit DW_LNE_end_sequence after each function
2022-11-19 15:14:21 +01:00
Alexey Andreev
06bcaec1e5
Wasm: emit simple DW_TAG_subprogram DIEs (however, no success with debuggers).
2022-11-19 13:00:52 +01:00
Alexey Andreev
f06ba832d7
Wasm: generate DWARF line numbers
...
Despite generated DWARF sections pass different verifications, they don't work in chrome or wasmtime.
2022-11-19 11:52:43 +01:00
Alexey Andreev
c5011ebf69
Wasm: initial skeleton implementation of DWARF generator
2022-11-18 22:07:23 +01:00
Alexey Andreev
a543b91b84
Wasm: fix error when parsing command line args
2022-11-17 16:35:28 +01:00
Alexey Andreev
238873cbe7
Apply Java 11 syntax
2022-11-17 14:36:55 +01:00
Alexey Andreev
06748fa12b
Fix class initializer optimization.
...
Assume that class initializer is dynamic if it initializes another class with dynamic initializer
2022-11-17 14:35:37 +01:00
Alexey Andreev
df98b411d0
Wasm: fix issue with attempt to shrink heap after GC
2022-11-17 12:02:46 +01:00
Alexey Andreev
64ae44ee01
JS: store global object in a variable to avoid name clashes between generated declarations (in minified mode) and global declarations
2022-11-17 12:02:46 +01:00
Alexey Andreev
70e37dfed9
Wasi: fix bugs in IO implementation
2022-11-12 21:52:29 +01:00
Alexey Andreev
d9fb2bc159
Fix bugs in Wasi support. Fix GC issue in Wasm
2022-11-11 21:01:22 +01:00
Alexey Andreev
1b6acc9eb1
Update Java version to 11
2022-11-11 14:37:12 +01:00
Alexey Andreev
4a025f2605
Wasm: trying to revive GC debugger in wasm2c generator and implement emulation for WASI
2022-11-11 14:04:56 +01:00
Alexey Andreev
1fb70b0903
Fix private method call resolution in Java 11
2022-11-11 10:56:20 +01:00
Alexey Andreev
5fb83ca2ac
Remove unnecessary Wasm runtime imports, implement isFinite method
2022-11-11 09:38:21 +01:00
Alexey Andreev
485f8ac902
Wasi: fix file system issues, add support for Math.pow
2022-11-10 17:08:58 +01:00
Alexey Andreev
224810d0ab
Wasm: support file IO and random generator in WASI
2022-11-08 19:44:56 +01:00
Alexey Andreev
e428e2ac7a
Wasm: implement file IO in WASI
2022-11-08 17:24:58 +01:00
Alexey Andreev
3eb4b742ea
Move FS support to teavm-core module
2022-11-07 09:53:46 +01:00
Alexey Andreev
8f4e4e811f
Wasm: don't emit wasm-runtime.js file in WASI mode
2022-11-06 21:41:09 +01:00
Alexey Andreev
34eb06f5f0
Wasm: support command line args in WASI
2022-11-06 21:21:49 +01:00
Alexey Andreev
1ca2c75e1c
Wasm: initial WASI support
2022-11-06 11:53:52 +01:00
Alexey Andreev
d5cdd740f5
Fix incorrect behaviour of Class.getInterfaces
...
fix #635
2022-11-04 16:15:30 +01:00
Alexey Andreev
752ec040b0
Wasm: fix resource files getting into garbage collection metadata
2022-11-04 14:48:53 +01:00
Alexey Andreev
6c6d440ebb
С/wasm: don't include references metadata resource into GC stack roots and into class layout for GC.
2022-11-01 09:38:10 +01:00
Alexey Andreev
d097350787
Bump ASM version, use common ASM API version everywhere, bump ASM API version to 9
2022-10-05 11:09:53 +02:00
Alexey Andreev
2b671b8088
Fix issue with precedence of % operator
2022-08-25 12:48:59 +02:00
Alexey Andreev
ddddfcf217
Add option to disable assertions
2022-07-15 19:51:47 +03:00
Alexey Andreev
f0d805fda8
Support Java 17 records
2022-07-10 20:40:24 +03:00
Alexey Andreev
29fd95be95
Fix bugs related to MULTINEWARRAY in various backends
2022-07-10 18:16:16 +03:00
Alexey Andreev
b03518c493
Remove unnecessary hppc artifact versions from pom.xml
2022-06-01 17:25:33 +03:00
Alexey Andreev
98490e92f6
JS: fix strict mode null pointer check with inlining
2022-05-19 12:24:02 +03:00
Alexey Andreev
be259f1667
Fix false negatives when checking missing methods
2022-05-19 10:25:40 +03:00
Alexey Andreev
31f91bc63c
C: fix overlapping file names
2022-05-16 11:59:25 +03:00
Alexey Andreev
5e37e2a45b
Fix reporting missing static field if containing class is never referenced directly
2022-03-25 10:27:15 +03:00
Alexey Andreev
ce5e3bfeb7
C/Wasm: fix issue in GC
2021-12-16 18:39:26 +03:00
Alexey Andreev
15466bad93
C: fix heap dump generator
2021-12-16 14:54:23 +03:00
Alexey Andreev
1fa48560c6
C: add option to generate shorter output file names to workaround msvc bug
2021-12-10 18:51:12 +03:00
Alexey Andreev
08aa642fe5
C: prevent from casting to native function type
2021-08-31 15:11:17 +03:00
Alexey Andreev
c2f90d3cfc
fix ClassInference for arrays
2021-08-30 17:53:14 +03:00
Alexey Andreev
c65a9e1c97
Fix bug in irreducible graph splitting algorithm
2021-07-15 19:17:11 +03:00
Alexey Andreev
220537d984
C: fix behaviour of nested try/catch statements
2021-04-15 20:55:52 +03:00
Alexey Andreev
73bd139b7e
C: implement ServiceLoader
2021-04-14 23:02:09 +03:00
Alexey Andreev
4a62b58f82
Bug fixes in optimizer
2021-04-02 19:54:38 +03:00
Alexey Andreev
7058a195b7
JS: fix class of object created by multianewarray instruction
2021-04-01 12:05:18 +03:00
Alexey Andreev
c89bc11d02
Fix dominator tree builder, make it possible to choose starting node
2021-04-01 09:29:18 +03:00
Alexey Andreev
d710870c65
Fix possible NPE
2021-03-31 12:53:12 +03:00
Alexey Andreev
9972fe0c29
Rewrite node splitting algorithm
2021-03-30 12:07:14 +03:00
Alexey Andreev
b34e25414e
C: fix support for resources
2021-03-24 18:52:54 +03:00
Alexey Andreev
00fba54d7b
C: fix exception handling semantics with longjmp
2021-03-24 17:30:49 +03:00
Alexey Andreev
bb4315e486
C: fix missing files when casting to arrays
2021-03-24 16:09:01 +03:00
Alexey Andreev
6de830d5bd
wasm: fix initialization order of system classes
2021-03-22 23:22:34 +03:00
Alexey Andreev
f2bac088f1
Fix more complex cases of irreducible CFGs during coroutine transformation
2021-03-22 22:09:41 +03:00
Alexey Andreev
9df897d298
Fix coroutine transformation. Make emulated threads work in Wasm
2021-03-22 21:28:50 +03:00
Alexey Andreev
eb495182d2
JS: fix runtime for Safari
2021-03-22 15:13:40 +03:00
Alexey Andreev
38cbd7e80b
JS: fix async methods
2021-03-22 14:17:50 +03:00
Alexey Andreev
d6780ea637
Fix bug in global value numbering optimization
2021-03-22 14:17:50 +03:00
Alexey Andreev
bd53c1a5a2
wasm: trying to implement coroutines
2021-03-21 22:13:09 +03:00
Alexey Andreev
c4c1408160
wasm: fix running tests, add in-browser test runners
2021-03-20 19:52:45 +03:00
Alexey Andreev
b2b7a603b4
JS: fix array optimization
2021-03-19 14:16:29 +03:00
Alexey Andreev
75d06bebbf
JS: fix bug in compilation of monitorenter instruction
2021-03-18 14:20:29 +03:00
JohannesS
f97484365c
JS: fix overrides with default methods
2021-03-18 12:26:33 +03:00
Alexey Andreev
81bfe3f6e2
Improve pom.xml configuration
2021-03-18 11:16:41 +03:00
Alexey Andreev
2c7b5be62e
JS: fix long emulation in JS engines that don't support BigInt
2021-03-18 10:14:18 +03:00
Alexey Andreev
3779520389
C: fix after introducing CCE support
2021-03-18 01:03:01 +03:00
Alexey Andreev
67c639b875
JS: fix stack trace decoder with new CCE support
2021-03-17 21:49:06 +03:00
Alexey Andreev
4c0c7872a1
JS: add support for CCE in strict mode
2021-03-17 21:11:18 +03:00
Alexey Andreev
02e8955abc
JS: fix overflow behaviour of unary minus
2021-03-17 10:16:07 +03:00
Alexey Andreev
71f87d79a5
JUnit: add support for TestNG annotations
2021-03-16 21:47:05 +03:00
Alexey Andreev
40ecb0938d
Fix issue with BigInt64Array in Safari
2021-03-12 19:13:29 +03:00
Alexey Andreev
35f025d7da
JS: fix bug in fallback long implementation
2021-03-10 16:22:19 +03:00
Alexey Andreev
ca23da939a
JS: represent long as BigInt if available
2021-03-08 22:59:45 +03:00
Alexey Andreev
e4c808c324
Add switch to log devirtualization process
2021-02-26 12:26:13 +03:00
Alexey Andreev
0eca9d95e1
Fix missing virtual call detector
2021-02-26 11:52:10 +03:00
Alexey Andreev
d1fa57210e
Copy parameter annotations when renaming a class
2021-02-01 14:41:18 +03:00
Alexey Andreev
969ad17b6a
C: workaround for regression in MSVC compiler
2020-11-27 18:54:24 +03:00
Octavia Togami
a8641de39b
Correct problem severity for warning
2020-11-26 14:59:13 +03:00
Alexey Andreev
306c78459c
JS: use symbol instead of string property to represent Java exception wrapper
2020-09-09 19:28:32 +03:00
Alexey Andreev
17098495f2
JS: fix compilation of class files that contain methods and field names containing non-identifier characters
2020-07-06 12:11:17 +03:00
Alexey Andreev
9cf21825fc
Fix wrong evaluation when optimizer sees array initialization that looks like array initializer expression, but has access to array variable on its elements, i.e. on a case like this:
...
Object[] array = new Object[1];
array[0] = array;
That can't be optimized to
Object[] array = new Object[] { array };
2020-06-16 19:24:45 +03:00
Alexey Andreev
5ee332c771
Fix crash when lambda is not used. Fix #500
2020-06-01 12:19:37 +03:00
Alexey Andreev
6f7c2dff2b
Fix copying source files in simple optimization mode. Fix #501
2020-06-01 12:07:42 +03:00
Alexey Andreev
ecc4be2d25
Fix class initialization optimization
2020-05-19 13:27:26 +03:00
Alexey Andreev
eebe16157b
C: further workaround for msvc bug
2020-05-19 09:56:47 +03:00