Alexey Andreev
8cd96d2da2
C backend: fix passing NULL arrays to native methods
2019-04-26 12:40:51 +03:00
Alexey Andreev
f828d049c4
C backend: bugfixes
2019-04-23 19:56:16 +03:00
Alexey Andreev
cbc8d3f638
C backend: bugfixes
2019-04-22 19:03:37 +03:00
Alexey Andreev
2a6ca2d0d8
C backend: bug fixes and interop improvements
2019-04-19 18:41:02 +03:00
Alexey Andreev
cfd6b64899
Remove debugging code
2019-04-15 16:47:46 +03:00
Alexey Andreev
83d041d55b
Improve compilation performance of low-level backends
2019-04-05 14:37:02 +03:00
Alexey Andreev
7551cd1ec6
C: fix bugs in GC
2019-04-05 13:08:16 +03:00
Alexey Andreev
ec8bae1d40
C: fix bugs in RTTI. Support args parameter of main method
2019-04-04 18:34:30 +03:00
Alexey Andreev
91cf9917c7
JS: fix deobfuscated parameter names. Generate less local variables
2019-04-02 19:15:48 +03:00
Alexey Andreev
e6bb91bfb0
JS: fix coroutines
2019-04-02 17:12:53 +03:00
Alexey Andreev
fe68bf700b
Improve performance of array creation
2019-04-02 17:04:51 +03:00
Alexey Andreev
a9c4ab6aa4
Support generic type signatures in IR
2019-03-31 21:32:41 +03:00
Alexey Andreev
45d31da85c
Make clinit optimization weaker in order to properly handle case
...
when clinit method reads state that was set somewhere in main method
2019-03-27 19:34:30 +03:00
Alexey Andreev
d2a7e31eca
Proper fix for recent bug in C backend. Fix Thread.daemon flag
2019-03-27 18:29:02 +03:00
Alexey Andreev
0dc170dad2
Fix bugs in C backend
2019-03-26 19:09:25 +03:00
Alexey Andreev
46d76f7acf
Fix <clinit> optimization issues
2019-03-25 15:09:23 +03:00
Alexey Andreev
103affa392
Partially revert previous <clinit> commit.
...
Generate calls to <clinit> methods, since corresponding analyzer
guarantees proper initialization order.
2019-03-24 22:51:17 +03:00
Alexey Andreev
f33c90f778
Improve <clinit> elimination:
...
* Generate clinit instruction instead of calling <clinit>
directly
* Rename annotation that indicates absence of side effects
* Don't apply this annotation automatically to all JSBody methods
2019-03-24 12:54:06 +03:00
Alexey Andreev
de84105241
Call <clinit> methods before main method when possible, eliminate
...
lazy class initialization for these <clinit> methods.
2019-03-22 19:40:56 +03:00
Alexey Andreev
955ac92035
Get rid of reflection code
2019-03-22 11:32:48 +03:00
Alexey Andreev
f664d94d74
Allow to exclude certain classes, fields and methods from compilation
2019-03-21 17:00:22 +03:00
Alexey Andreev
36041b4107
Fix issues with call graph serialization
2019-03-13 19:19:05 +03:00
Alexey Andreev
731beb5cd5
Fix bugs in threading in C backend
2019-03-13 18:47:30 +03:00
Alexey Andreev
eeaa71072a
Fix IR serialization issue
2019-03-11 18:36:10 +03:00
Alexey Andreev
a8226ef6a3
Decrease memory consumption
2019-03-11 17:27:51 +03:00
Alexey Andreev
94322e5f6e
Get rid of Mapper interface in favour of Function
2019-03-11 13:27:34 +03:00
Alexey Andreev
3acf1f9538
Fix issues with new IR serialization format
2019-03-11 12:14:10 +03:00
Alexey Andreev
abdd9b3270
C backend: support coroutines
2019-03-10 14:04:04 +03:00
Alexey Andreev
578912056b
Reduce memory used by initial class reader
2019-03-07 19:27:07 +03:00
Alexey Andreev
fcfa998e1c
Reduce memory used by call graph in dev server mode
2019-03-07 16:51:00 +03:00
Alexey Andreev
88dca1bd02
Decrease memory consumption during compilation
2019-03-06 16:51:01 +03:00
Alexey Andreev
2a1aca98da
Use shared ReferenceCache between different stages of compilation
2019-03-05 19:32:50 +03:00
Alexey Andreev
3c9a3bb359
Store AST cash in binary format. Introduce more compact
...
AST serialization format.
Reduce memory consumption of incremental compilation on dev server
2019-03-05 19:06:21 +03:00
Alexey Andreev
573c5f6064
Reduce memory consumption of incremental compilation on dev server
2019-03-05 16:50:16 +03:00
Alexey Andreev
35730d665f
Decrease memory consumption
2019-02-27 13:24:50 +03:00
Alexey Andreev
ade00cc984
C backend: fix bugs
2019-02-26 00:10:22 +03:00
Alexey Andreev
2c40c7d56e
Trying to decrease compiler memory consumption
2019-02-25 18:31:34 +03:00
Alexey Andreev
95092c4d82
Refactor things around decompiler, JS backend and control flow debug info
2019-02-25 16:10:35 +03:00
Alexey Andreev
3be32a5851
JS: don't generate square brackets in 'if' bodies, when possible.
...
Generate mangled name for $rt_wrapException
2019-02-25 11:30:30 +03:00
Alexey Andreev
a8f1940df3
Fix bugs in debugger
2019-02-22 17:19:19 +03:00
Alexey Andreev
4a325a192e
Update inlining thresholds due to changes in scoring algorithm
2019-02-13 19:31:57 +03:00
Alexey Andreev
ce13c05342
JS: add ability to set limit for top-level names.
...
The purpose of this option is JS engines are too sensible for number
of methods in closure, while they don't care about methods
in an object.
2019-02-13 17:03:13 +03:00
Alexey Andreev
6790d724c7
Further improvements to inliner
2019-02-13 13:42:44 +03:00
Alexey Andreev
4de1c51e1a
Improve inliner: use simlified heuristics in advanced optimization mode, remove methods that were fully inlined
2019-02-12 19:30:57 +03:00
Alexey Andreev
89189c7454
Fix bugs in debugger
2019-02-12 12:10:33 +03:00
Alexey Andreev
bc41b12f0e
JS: fix bug in generating async functions in minified mode
2019-02-07 17:15:32 +03:00
Alexey Andreev
1b2c47407f
Place classes to a single object in development server to improve debugger performance
2019-02-07 16:29:55 +03:00
Alexey Andreev
95a3a30a6e
Fix html4j tests
2019-01-31 19:20:14 +03:00
Alexey Andreev
7d2c76f711
Fix compiler crash when using incremental pipeline
2019-01-30 19:36:00 +03:00
Alexey Andreev
35ca7fd152
Add lazy compilation pipeline that can work a little bit faster in incremental compiler
2019-01-30 19:00:07 +03:00
Alexey Andreev
5be34dcf44
Proper fix for virtual table issue.
...
C: prevent from generating identifiers that clash with keywords
2019-01-30 15:00:49 +03:00
Alexey Andreev
daeaa502d6
JS: deobfuscate stack traces for wrapped native exceptions
2019-01-30 14:32:43 +03:00
Alexey Andreev
42aedf770b
Fix bugs in C backend
2019-01-28 14:57:34 +03:00
Alexey Andreev
f734603255
JS: prevent TeaVM from generating URL function
2019-01-27 23:42:05 +03:00
Alexey Andreev
78c55437e3
Add stack deobfuscation to dev server
2019-01-24 16:28:30 +03:00
Alexey Andreev
1dd379551c
Produce less names in top level scope in dev server mode in order to improve debugging performance in Chrome
2019-01-23 13:28:39 +03:00
Alexey Andreev
48227b24a0
Fix bootstrap mode
2019-01-20 17:50:46 +03:00
Alexey Andreev
74997d277b
Fix bugs in try/catch decompilation
2019-01-15 21:49:33 +03:00
Alexey Andreev
3c8184c3b7
Fix bug in nullness analysis when variable graph has irreducible loops
2019-01-14 14:08:12 +03:00
Alexey Andreev
1fabe4c5b9
Fix passing checkstyle
2019-01-09 12:54:38 +03:00
Alexey Andreev
9305a532bb
Replace ArrayList with array to store arguments of InvokeInstruction
2019-01-09 12:51:52 +03:00
Alexey Andreev
f589b0035a
Decrease memory consumption
2018-12-29 19:02:03 +03:00
Alexey Andreev
58c19e3abc
Minor fixes in development toolchain
2018-12-25 18:45:26 +03:00
Alexey Andreev
4ffe74296d
Limit max line size of generated JS code
2018-12-21 14:28:30 +03:00
Alexey Andreev
96f77b2f08
Fix stack overflow when decoding large Java strings
2018-12-20 17:25:02 +03:00
Alexey Andreev
43cda1223c
Fix class initialization when writing to its static field
2018-12-20 16:59:15 +03:00
Alexey Andreev
a4b61bac19
Fix bugs in debugger
2018-12-19 19:28:35 +03:00
Alexey Andreev
75295f50e5
Make debugging API asynchronous
2018-12-19 18:13:15 +03:00
Alexey Andreev
d7d4dc1571
Add IDEA run configuration that runs dev server
2018-12-16 20:42:21 +03:00
Alexey Andreev
bab0cd59a6
Improve performance and stability of development server and incremental compilation
2018-12-13 18:45:44 +03:00
Alexey Andreev
c9c9c15dfe
Fix Class.initialize. Fix html4j tests
2018-12-11 23:47:47 +03:00
Alexey Andreev
d968b20e4c
Fix generation of integer multiplication in minified mode. Fix String.intern() (see #370 )
2018-12-11 17:42:14 +03:00
Alexey Andreev
eec458089f
Implement development server
2018-12-10 19:03:18 +03:00
Alexey Andreev
952ed3f193
Fix diagnostics no printed from teavm-cli. Fix diagnostics of unavailable classes and methods
2018-12-09 19:54:04 +03:00
Alexey Andreev
d74bcbe2b9
Fast dependency analyzer, fix bugs in incremental compiler
2018-12-07 17:41:21 +03:00
Alexey Andreev
eaf0f5a24e
Fix bootstrap compiler
2018-12-07 17:41:20 +03:00
Alexey Andreev
3209909c8b
Fix build
2018-12-07 01:30:13 +03:00
Alexey Andreev
1b83519280
Reduce minumus JS runtime a little
2018-12-07 00:52:05 +03:00
Alexey Andreev
2bb146af47
Improve float to string conversion
2018-12-07 00:21:18 +03:00
Alexey Andreev
f23c71cd97
Improve double to string conversion
2018-12-02 16:12:59 +03:00
Alexey Andreev
1cf3cce076
Reduce minimum runtime size
2018-12-01 23:07:03 +03:00
Alexey Andreev
45d0a13c9b
In HtmlUnit, decode stack traces for all constructed exceptions
2018-11-26 15:58:51 +03:00
Alexey Andreev
0c03379206
Fix inability to catch exception when calling just created lambda
2018-11-26 14:49:03 +03:00
Alexey Andreev
85f901362f
Wrap native JS exceptions as java.lang.RuntimeException
2018-11-26 14:01:50 +03:00
Alexey Andreev
b018e61615
Fix converting method to state machine in some cases. Fix #366
2018-11-25 18:46:45 +03:00
Alexey Andreev
a3dfc0c486
Add API to catch native JS exceptions
2018-11-23 19:54:37 +03:00
Alexey Andreev
cf9090e0fa
Use JS typed arrays to reinterpret floats and ints.
...
Also, drop IE9 support
2018-11-23 17:14:06 +03:00
Alexey Andreev
0376a46c06
Fix extra space added after new expression
2018-11-23 12:13:13 +03:00
Alexey Andreev
d50189ea3a
Add decoding of stack trace in JUnit adapter
2018-11-23 12:09:26 +03:00
Alexey Andreev
6d2815bc5c
Support running JUnit3 tests and improve support of JUnit4
2018-11-22 19:51:33 +03:00
Alexey Andreev
cd7a702c31
Trying to fix Travis build
2018-11-22 15:40:32 +03:00
Alexey Andreev
753755918d
Update build config to avoid jar hell
2018-11-22 14:49:30 +03:00
Alexey Andreev
0f951f8c86
Fix calculating class name in debugger
2018-11-19 15:29:02 +03:00
Alexey Andreev
f2dd398719
Fix bug in source map generation
...
This bug caused metadata lines that follow after the code
generated from Java bytecode, to be mapped to the line in
Java bytecode of the method that appears last in the generated
JavaScript
2018-11-18 02:11:28 +03:00
Alexey Andreev
148c07336c
Generate entire code inside wrapper IIF
2018-11-15 12:47:25 +03:00
Alexey Andreev
fe151d525a
Prevent generation of function names that clash with standard objects
2018-11-14 13:55:36 +03:00
Alexey Andreev
064888c9a1
Support Java 11
2018-11-12 18:59:28 +03:00
Alexey Andreev
4a7b70e1e8
Wasm: fix the way '!' expression translated. Also fix #365
2018-11-06 14:34:18 +03:00
Alexey Andreev
4d2c075c07
Always embed runtime into generated file. Remove 'runtime' build property
2018-10-28 00:15:36 +03:00
Alexey Andreev
63b2440e48
Remove $rt_global and indirect references to runtime function
2018-10-27 22:42:25 +03:00