Alexey Andreev
deece78dec
C: workaround msvc C1054 error while compiling virtual table initializers of classes with deep inheritance hierarchy
2020-05-15 17:55:26 +03:00
Alexey Andreev
862e9b846f
Exclude all classes from underlying JDK
2020-05-14 16:59:21 +03:00
Alexey Andreev
6a4da94f2e
Get rid of irreducible CFGs in input bytecode
2020-05-14 16:18:33 +03:00
Alexey Andreev
4284bb2a6c
C: fix naming when bytecode contains method names with special characters
2020-05-14 14:31:48 +03:00
Alexey Andreev
7313b2bb62
Don't fail on environments that miss console object in global scope
2020-04-30 16:06:54 +03:00
Alexey Andreev
1232f20ae4
Add protection against exception fall though one Java machine running another Java machine.
...
When one TeaVM program calls `eval` and code passed to eval is itself generated
with TeaVM, the inner code can throw uncaught Java exception. The outer code could
try to catch this exception as a native JavaScript exception, but this is not possible,
since the exception is marked as Java exception, and inner scripts's Java class
does not inherit java.lang.Throwable of outer script. The solution for each script
to generate own tag (Symbol) and only treat JS exception as Java exception when
this exception has this tag.
2020-04-30 16:05:24 +03:00
Alexey Andreev
a9e7e51c51
Properly support non-ASCII characters in System.out and System.err
2020-04-30 14:49:33 +03:00
Adam J Ryan
e0fc5d834b
Add ability to fine tune transpiler class substitutions.
2020-04-01 19:32:34 +03:00
Alexey Andreev
a152a28a2d
C: fix bug in array initializers
2020-03-04 11:37:04 +03:00
Alexey Andreev
37f07b80c3
JS: generate shorter names for Long operations and array creation in minified mode
2020-03-04 13:23:19 +03:00
Alexey Andreev
3ff05d1c5d
Eliminate redundant try/catches in generated bytecode for enums
2020-03-04 12:14:25 +03:00
Alexey Andreev
37e6ca3e17
Recognize array initialization pattern in bytecode and translate it to array initializer in target platform
2020-03-03 18:34:48 +03:00
Alexey Andreev
2ad5baaccc
JS: don't write single return statement
2020-03-03 15:01:33 +03:00
Alexey Andreev
eb3490dba0
Improve inlining
2020-03-03 14:34:27 +03:00
Alexey Andreev
146776ff55
JS: reduce size of declaration of classes without fields
2020-03-03 12:47:06 +03:00
Alexey Andreev
c1891a1908
Further work on decreasing generated code size
2020-03-03 12:17:39 +03:00
Alexey Andreev
ea1134d66b
Trying to reduce number of classes for which name is provided in their metadata
2020-03-02 16:36:09 +03:00
Alexey Andreev
81235ac714
JS: reduce size of wrapped virtual methods
2020-03-02 11:50:45 +03:00
Alexey Andreev
8d1eb3fcc6
Better optimization of <clinit> when reading other's class static final fields
2020-03-02 11:23:58 +03:00
Alexey Andreev
2f95045345
Improve optimization of unused methods that were inlined on every usage
2020-02-28 14:42:51 +03:00
Alexey Andreev
150a613709
C/Wasm: trying to fix GC (again)
2020-02-26 14:51:40 +03:00
Alexey Andreev
84aa50e7eb
C/Wasm: trying to fix GC
2020-02-26 14:38:01 +03:00
Alexey Andreev
0e7c1e5ef9
Wasm: don't generate class metadata if it's not used. Don't generate names and call site metadata in minified mode
2020-02-21 17:29:31 +03:00
Alexey Andreev
3f2c52000f
Wasm: support null checks and array bound checks
2020-02-21 16:32:45 +03:00
Alexey Andreev
c35861610f
Wasm: support null checks and array bound checks
2020-02-21 16:32:00 +03:00
Alexey Andreev
7d95c0fb04
Wasm: fix GC
2020-02-21 16:22:25 +03:00
Alexey Andreev
d76eeb9be3
Improve <clinit> elimination. Improve inlining in ADVANCED optimization mode
2020-02-14 12:46:57 +03:00
Alexey Andreev
fecdd6613a
Use tab character to indent stack traces
2020-02-14 10:39:50 +03:00
Alexey Andreev
289bfc9488
C: fix Function.get when getting function from different class
2020-02-10 19:52:17 +03:00
Alexey Andreev
a414a7979c
Fix NPE
2020-02-10 17:08:25 +03:00
Alexey Andreev
3b1dae4412
Fix <clinit> elimination in case of native methods
2020-02-10 16:37:32 +03:00
Alexey Andreev
8cba925a89
C: fix bug in deobfuscator
2020-02-04 17:37:00 +03:00
Alexey Andreev
f4ec4872c5
C: fix crash when creating stack trace triggers GC
2020-02-04 14:25:22 +03:00
Alexey Andreev
45d36eac83
C: fix crash on GC when there are queued WeakReference instances in the heap
...
When performing young GC, we can encounter some WeakReferences which get into
corresponding ReferenceQueue. In this case queue internal state will be updated.
After it defragmentation phase runs which updates references to relocated objects.
For performance reason, defragmentation phase scans only regions either
marked with write barriers or regions that contain surviving objects in
young generation. However, sometimes a queue can be in neither of these sets,
so we additionally mark regions containing all affected queues.
2020-01-31 18:23:50 +03:00
Alexey Andreev
374f7c6634
C: allow to define custom logging functions. Use unified logging function within VM
2020-01-30 18:18:16 +03:00
Alexey Andreev
f13a7e6375
C: fix Strings.fromC/fromC16 methods
2020-01-30 15:41:37 +03:00
Alexey Andreev
7a2cd6ae4f
Fix more bugs in devirtualization
2020-01-24 16:23:28 +03:00
Alexey Andreev
2d2ef642a3
Fix virtual method resolution in code server mode
2020-01-23 19:03:47 +03:00
Alexey Andreev
c53a563e96
Fix bug in devirtualization while inlining
2020-01-23 15:53:11 +03:00
Alexey Andreev
4776bebe8e
C/Wasm: fix incorrect removal of GC root in optimizer
2020-01-22 17:16:44 +03:00
Alexey Andreev
a35a10bbc6
Reduce GC region size
2020-01-22 13:15:57 +03:00
Alexey Andreev
1ac0f7156c
C/Wasm: fix OOME from compiled application
2020-01-22 13:15:57 +03:00
adamjryan
34aed76714
Add write replace method to lambdas that implement java.io.Serializable ( #453 )
...
Add write replace method to lambdas that implement java.io.Serializable
* Peripheral java library classes added as part of the toString method
of SerializedLambda to align functionality with the standard library.
* Test added that checks the SerializedLambda can be returned and that
it is populated with the correct values including it's toString method.
2020-01-15 11:11:48 +03:00
Alexey Andreev
9d0a53175a
Do not insert GC write barriers when value assigned to field is known to be null or constant literal
2019-12-05 15:36:32 +03:00
Alexey Andreev
72fc62f082
Fix bug that causes heap to grow without need
2019-12-05 15:07:18 +03:00
Alexey Andreev
a7df41d41d
Fix debugging when script is included with additional query string
2019-12-04 15:28:40 +03:00
Alexey Andreev
e147a998e5
Remove performance optimization that causes bug when modifying class hierarchy within class transformers
2019-12-04 12:41:41 +03:00
Alexey Andreev
16f4d2571b
Support generations in GC
2019-12-03 12:10:55 +03:00
Alexey Andreev
d71aec7c40
Fix bug when boxing primitive value inside lambda to supertype (e.g. java.lang.Object) of corresponding wrapper type
2019-11-18 12:34:55 +03:00
Alexey Andreev
631111bdb3
Fix potential NPEs in compiler and native runtime
2019-11-18 11:24:47 +03:00