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
Alexey Andreev
099b9c5827
C: add stack trace deobfuscation tool
2019-11-06 14:02:56 +03:00
Alexey Andreev
e164015bfa
C: another fix for GC when passing strings from native to Java
2019-11-06 11:19:02 +03:00
Alexey Andreev
3335b86619
C: fix exception when marshalling string from native code to Java and GC is triggered
2019-11-05 18:14:09 +03:00
Alexey Andreev
c05f40cc6a
C: improve performance of heap dump to hprof converter
2019-11-05 14:01:56 +03:00
Alexey Andreev
9bdec1fdb2
C: fix the way how UWP env is detected in preprocessor
2019-10-31 14:37:49 +03:00
Alexey Andreev
fb78377db8
Fix various issues reported by PVS Studio and LGTM
2019-10-31 14:36:37 +03:00
Alexey Andreev
beef9e09ca
C: fix bug in exception handling
2019-10-31 14:18:29 +03:00
Alexey Andreev
81cc3c156e
Add optimization that eliminates repeated access to fields
2019-10-30 16:09:17 +03:00
Alexey Andreev
511160935f
C: add missing include
2019-10-30 16:08:11 +03:00
Alexey Andreev
2bfc5b5305
JS: fix error in strict mode when NPE is never instantiated directly
2019-10-30 15:40:28 +03:00
Alexey Andreev
6bfbd38e22
Fix bug in decompiler that causes expression statement containing || or && with side effects to be removed
2019-10-30 13:38:47 +03:00
Alexey Andreev
15be89a758
JS: fix source map generation in some cases
2019-10-28 14:33:53 +03:00
Alexey Andreev
6ed00f1af2
C/Wasm: fix heap corruption when GC hits on initializing stack trace of exception
2019-10-28 13:59:03 +03:00
Alexey Andreev
4f9567561c
Fix WASM backend
2019-10-23 18:30:16 +03:00
Alexey Andreev
3b4cc43e79
C: add option to strip off information about call site locations.
...
This decreases executable size significantly. However, this produces
obfuscated stack traces which can be deobfuscated using JSON symbol table.
2019-10-23 17:34:23 +03:00
Alexey Andreev
c78874f426
C/Wasm: don't generate names for classes when possible
2019-10-23 14:11:24 +03:00
Alexey Andreev
f7620704fc
C/Wasm: fix bugs in GC
2019-10-22 19:05:37 +03:00
Alexey Andreev
70cb67c8f0
Fix bug in WASM backend
2019-10-18 17:09:57 +03:00
Alexey Andreev
8a91605c56
Add support for Class.getCanonicalName/getEnclosingClass
2019-10-18 15:10:16 +03:00
Alexey Andreev
8038f90fd8
Support new format of debug information in C and WASM
...
This allows to keep proper stack traces in FULL optimization mode,
when aggressive inlining is applied
2019-10-15 11:47:40 +03:00
Artem Godin
e46f204b4e
#431 : Add support for char annotation methods
...
Fixes #431
2019-10-14 14:06:21 +03:00
Alexey Andreev
4ef231c7fa
JS: preserve stack trace items when agressive inlining enabled
2019-10-14 14:05:06 +03:00
Alexey Andreev
e762f26a40
Keep location stack in IR when inlining methods
2019-10-08 16:09:07 +03:00
Alexey Andreev
378111d767
C: fix generation of heap dump
2019-10-07 17:43:18 +03:00
Alexey Andreev
94a96f571b
C: support array bound checking
2019-10-07 16:55:31 +03:00
Alexey Andreev
6f50eefaf9
JS: add null check in strict mode
2019-10-07 16:55:30 +03:00
Alexey Andreev
bffb50f0cd
Implement array bounds checking in JavaScript
2019-10-07 16:55:30 +03:00
Alexey Andreev
a1d7153cab
Add instruction to perform array bound check
2019-10-07 16:55:30 +03:00
Matt McHenry
ec21f2d8e1
mark threading primitives unsupported on wasm
...
this gives much clearer feedback, at build time rather than runtime,
when attempting to use TeaVM with code that uses these operations.
2019-10-06 21:10:40 +03:00
Alexey Andreev
89ea97d00f
JS: revert $rt_compare implementation since new one does not work properly
2019-10-04 16:40:41 +03:00
Alexey Andreev
3194a403b8
C/Wasm: reduce memory consumption in GC
2019-10-02 13:55:23 +03:00
Alexey Andreev
ae896f3d90
WASM: bugfixes
2019-10-01 14:52:28 +03:00
Max Graey
e23293a8af
Minor improvements for javascript runtime ( #425 )
2019-10-01 11:29:30 +03:00
Alexey Andreev
810ee0f49e
JS: fix crash on some JavaScript constructs in hand-written runtime code
2019-09-30 18:36:05 +03:00
Alexey Andreev
3b170df2ca
Fix nullness information builder
2019-09-30 18:23:38 +03:00
Alexey Andreev
a2a9dbcbe3
Improve performance of inliner in FULL optimization level
...
The former implementation suffered from class inference.
The reason was in many nodes having too many possible classes in them.
The new implementation does not handle full set of classes in each node.
Instead, it introduces concept of 'overflow', i.e. node having
more types than the given upper limit.
These nodes behave as if there were all possible classes in them,
which allows to apply certain optimization for these nodes and
omit heavy computations of large type sets.
2019-09-27 16:36:55 +03:00