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
Alexey Andreev
1b78ef99a6
Fix bugs in node splitting or irreducible graphs
2018-10-24 18:16:59 +03:00
Alexey Andreev
ef011d429d
Ignore flaky test
2018-10-19 17:20:07 +03:00
Alexey Andreev
8a55510d4f
Fix bug in dependency analyzer
2018-10-19 14:47:34 +03:00
Alexey Andreev
f206cbe2d1
Reorder modifiers to get less metadata size
2018-10-04 19:07:23 +03:00
Alexey Andreev
4c4c589172
Various code size optimizations
...
1. Generate 'a' for 'this' instead of '$t'
2. Fix frequency-based identifier optimization
3. Generate less code in <clinit> callers
4. Generate one-letter identifier in most of constructors
(instead of $r)
5. Use $ and _ chars in identifiers
2018-10-04 16:29:05 +03:00
Alexey Andreev
b66053f5ce
Don't generate virtual wrappers for methods that aren't ever called virtually
2018-10-04 11:55:34 +03:00
Alexey Andreev
681e21ecca
Store class names in metadata as a pair of package and simple name
2018-10-03 16:01:37 +03:00
Alexey Andreev
0a94c91ff2
Don't generate unused class names in metadata section
2018-10-03 14:46:52 +03:00
Alexey Andreev
be21e474c5
Generate shorter <clinit> caller names in minified mode
2018-10-03 12:48:14 +03:00
Alexey Andreev
6b063bc567
Some code size optimizations
...
1. Eliminate empty switch statements
2. Eliminate unnecessary == 0 and != 0 conditions in 'if'
2018-10-03 11:57:51 +03:00
Alexey Andreev
168bf1fa9c
Add option to print size statistics of generated JS code
2018-10-03 11:08:15 +03:00
Alexey Andreev
0473020bc8
Prevent from generating functions with NaN identifier
2018-09-04 17:28:10 +03:00
Alexey Andreev
50573f4f06
Prevent minifier from generating NaN function
2018-08-30 11:10:23 +03:00
Alexey Andreev
f5c6ac9c5d
Improve performance of dependency analyzer, decrease memory consumption
2018-08-29 13:20:16 +03:00
Alexey Andreev
365e47882a
Avoid generation of too deeply nested expressions to fit into v8 parser stack
2018-08-27 22:08:03 +03:00
Alexey Andreev
d6363c5fbf
Fix NPE in dependency analyzer. Fix excessive types propagating in dependency analyzer
2018-08-27 16:17:23 +03:00
Alexey Andreev
558c3f2f1e
Fix bugs in dependency analyzer, introduced by previous optimizations
2018-08-23 13:26:26 +03:00
Alexey Andreev
0ebf8c2f6e
Reduce memory consumption
2018-08-20 18:56:16 +03:00
Alexey Andreev
2dd145a731
Improve performance of dependency analysis
2018-08-20 18:41:08 +03:00
Alexey Andreev
7f46c301bd
IDEA: allow to configure build daemon heap size
2018-07-31 16:31:09 +03:00
Alexey Andreev
67afe6173e
Improve performance of compilation of large code bases
2018-07-31 12:14:53 +03:00
Alexey Andreev
5b5417d46b
Improve performance of dependency analysis
2018-07-04 11:53:53 +03:00
Alexey Andreev
4e20a1de18
Properly handle checkcast to array type in dependency analyzer
2018-07-03 19:11:51 +03:00
Alexey Andreev
3653e39bec
Add system property that triggers printing of dependency analyzer summary report
2018-06-29 17:32:26 +03:00
Alexey Andreev
f160ce2f2f
Use class/method names to generate lambda class names. Reduce number of types propagated by dependency analyzer
2018-06-29 16:46:36 +03:00
Alexey Andreev
097820cc2b
Wasm backend: implement remaining types of resources
2018-05-20 23:54:23 +03:00
Alexey Andreev
5ce48ce866
Wasm backend: fix issues related to instanceof expression
2018-05-19 22:56:16 +03:00
Alexey Andreev
27a4848947
Make more precise type inference. The old algorithm sometimes reported wrong results on multidimensional primitive arrays
2018-05-19 20:40:47 +03:00
Alexey Andreev
15b77ee752
Wasm backend: fix Array.get
2018-05-17 23:58:14 +03:00
Alexey Andreev
9b2e00cb9f
Wasm backend: support reinterpret conversion in C wasm emulator
2018-05-17 23:58:01 +03:00
Alexey Andreev
dbe31c43bf
Wasm backend: write function index in AST representation to make easier navigation and debugging
2018-05-17 19:39:22 +03:00
Alexey Andreev
bb3a2a22fe
C backend: add GTK version of jbox2d benchmark.
2018-05-17 01:14:37 +03:00
Alexey Andreev
c7b6544537
C backend: allow to pass Java string to C code
2018-05-16 23:20:20 +03:00
Alexey Andreev
f0d97a72ab
Wasm backend: add intrinsics for some Float and Double methods
2018-05-16 20:15:13 +03:00
Alexey Andreev
d7b57ae938
Update asm version to 6.1.1 and versions of Maven plugins that use old asm in order to support Java 10 bytecode version.
2018-05-15 16:20:20 +03:00
Alexey Andreev
d3a9f57c1c
C backend: avoid generation of deeply nested blocks and long lines (such code is rejected by MSVC).
2018-05-14 22:34:37 +03:00
Alexey Andreev konsoletyper@gmail.com
4d8f33d994
C backend: few fixes for MVSC
2018-05-14 01:15:29 +03:00
Alexey Andreev
76ca3f06cf
C backend: make compiled binary independent of load location
2018-05-13 23:27:27 +03:00
Alexey Andreev
8cf69db8bb
Wasm backend: copy wasm-runtime.js to the output directory. Fix wasm benchmark according latest changes
2018-05-13 19:45:25 +03:00
Alexey Andreev
c9ebe2e2e9
Wasm backend: fix more tests. Implement Array.get. Implement x instanceof C for all cases.
2018-05-13 19:17:45 +03:00
Alexey Andreev
f23128bb13
Wasm backend: fix many tests
2018-05-12 23:43:53 +03:00
Alexey Andreev
5e3514e5dd
Wasm backend: fix low-level memory copying function
2018-05-11 20:02:52 +03:00
Alexey Andreev
a81eeeee03
Wasm backend: fix hanging tests, make more tests pass, change name generation scheme
2018-05-10 17:41:28 +03:00