Commit Graph

533 Commits

Author SHA1 Message Date
Alexey Andreev
b7c7c2da73 Fix bug with exception catch variable 2015-04-18 08:37:22 +03:00
Alexey Andreev
eb48c349d0 Fix issues in break elimination 2015-04-17 22:52:02 +03:00
Alexey Andreev
b3f662327c Fix bug in try/catch generator 2015-04-16 23:09:32 +03:00
Alexey Andreev
45b3805a2d Fix more bugs in try/catch generator 2015-04-16 22:15:39 +03:00
Alexey Andreev
9fac86da7c Fix bugs in try/catch generator 2015-04-15 22:34:08 +03:00
Alexey Andreev
4b4af6dd4e Fix bugs in optimized try/catch decompiler 2015-04-15 20:18:05 +03:00
Alexey Andreev
1f5c5ce85e Optimizing try/catch generator 2015-04-11 23:18:38 +03:00
Alexey Andreev
aef09cd7d2 Merge branch 'synchronized-methods' into indexeddb 2015-04-04 18:44:14 +03:00
Alexey Andreev
30d601e807 Fix IndexedDB wrappers 2015-04-04 18:29:18 +03:00
Alexey Andreev
6bf9a728a9 Break eliminator now takes in account try/catch statement. See
https://github.com/konsoletyper/teavm/issues/93
2015-04-03 15:11:07 +04:00
Alexey Andreev
5faaa1d061 Merge branch 'master' into synchronized-methods 2015-04-01 19:23:03 +03:00
Alexey Andreev
4adf789142 Fixing bugs in JSBody 2015-04-01 00:10:51 +03:00
Alexey Andreev
df8a3b8206 Fix bug in liveness analyzer 2015-03-30 18:14:48 +04:00
Alexey Andreev
98247b9927 Partial support of synchronized methods 2015-03-29 19:17:55 +03:00
Alexey Andreev
a4cb94df2f Fix https://github.com/konsoletyper/teavm/issues/89 2015-03-29 17:50:57 +03:00
Alexey Andreev
79d76f9a4d Fix https://github.com/konsoletyper/teavm/issues/87 2015-03-27 17:46:26 +04:00
Alexey Andreev
0e3fb1f3d2 Modify LivenessAnaylizer to not rely on dominator tree. Fix possible
name clash between virtual methods and fields. Remove tests incompatible
between JDK7 and JDK8
2015-03-27 15:42:47 +04:00
konsoletyper
6964c7190d Fix non-async application detection. Fix javadoc comments. 2015-03-15 19:03:57 +03:00
konsoletyper
17ccec57e9 Add missing javadoc tags 2015-03-15 18:22:39 +03:00
konsoletyper
9ce9f970d7 Fix AST caching to support async methods 2015-03-15 17:46:01 +03:00
konsoletyper
6c57fb866f Attempting to increase performance of AST processing 2015-03-15 15:02:34 +03:00
konsoletyper
b6cf7c4cba Optimize some breaks (including breaks from switch clauses) in a
separate pass
2015-03-15 14:43:38 +03:00
konsoletyper
8be9e6c4ba First attempt to make AST optimizer faster 2015-03-14 23:45:01 +03:00
konsoletyper
f17433aeab Attempt to increase performance of JS by separating variables of
different types
2015-03-14 21:18:16 +03:00
konsoletyper
004cb79b17 Remove unnecessary debugging code 2015-03-14 15:34:13 +03:00
konsoletyper
3449257db7 Fix bugs in faster dependency algorithm 2015-03-13 22:48:24 +03:00
konsoletyper
2745f1c7f5 Initial optimization of dependency checker 2015-03-13 22:09:28 +03:00
Alexey Andreev
1380e7dbf4 Generate readable names for method parameters 2015-03-13 19:01:13 +04:00
Alexey Andreev
77863ad6fd Perform better preordering before decompilation 2015-03-13 15:55:02 +04:00
Alexey Andreev
793d1e19d2 Fix another bug in DFG simplifier 2015-03-13 14:57:59 +04:00
Alexey Andreev
31f6439652 Fix another bug in DFG simplifier. Fix long subtraction bug 2015-03-13 14:26:36 +04:00
Alexey Andreev
0572123c0e Faster long for small values 2015-03-13 12:52:57 +04:00
Alexey Andreev
cc009ff9bd Fix bug in DFG simplifier 2015-03-13 12:11:53 +04:00
konsoletyper
2971efb62b Adapt minificator for new async approach 2015-03-12 21:49:59 +03:00
konsoletyper
79b805ba6c Better fix for https://github.com/konsoletyper/teavm/issues/85 2015-03-12 21:20:36 +03:00
konsoletyper
14dd352cb6 Fix exception thrown with incomplete classpath 2015-03-12 20:24:33 +03:00
Alexey Andreev
3a29e869ef Aviod creation of closures in async methods 2015-03-12 18:11:04 +04:00
Alexey Andreev
4ab4035522 Merge branch 'master' into better-async
Conflicts:
	teavm-core/src/main/java/org/teavm/javascript/Decompiler.java
	teavm-core/src/main/java/org/teavm/javascript/Optimizer.java
2015-03-12 13:54:19 +04:00
Alexey Andreev
aad95014fe Fix error in Object.wait. Make junit working with new async approach 2015-03-12 11:44:17 +04:00
konsoletyper
ab52f220c2 Prevent async assigment from optimization 2015-03-11 20:33:13 +03:00
Alexey Andreev
b19c545318 Fix issue 2015-03-11 19:49:31 +04:00
Alexey Andreev
7e23498c5b Fix bugs 2015-03-11 19:02:32 +04:00
Alexey Andreev
7a109a6f48 See https://github.com/konsoletyper/teavm/issues/85 2015-03-11 11:32:49 +04:00
Alexey Andreev
04342d15e7 Fix minor issue 2015-03-11 11:09:57 +04:00
konsoletyper
8fe3876641 First working prototype of new async 2015-03-10 22:09:43 +03:00
Alexey Andreev
56c5fefae4 Further development 2015-03-10 19:33:34 +04:00
Alexey Andreev
32deaf2716 Further work on a new thread emulator 2015-03-10 15:19:54 +04:00
Alexey Andreev
93e43456d1 Outline of upcoming improvements of continuations 2015-03-10 12:49:00 +04:00
konsoletyper
7f33f64d25 Store postponed actions in a queue 2015-03-09 22:20:59 +03:00
konsoletyper
80814ef167 Bugfixes 2015-03-09 22:10:26 +03:00
konsoletyper
824cc79901 Speed up TeaVM compiler 2015-03-09 18:37:04 +03:00
konsoletyper
fe2adc4675 Speed-up TeaVM compiler on large applications 2015-03-09 16:22:19 +03:00
konsoletyper
93c7fb52b4 Fix error. Apply frequency-based alias generation for some $rt functions 2015-03-09 15:14:28 +03:00
konsoletyper
62118e2cfe Add frequency-based naming in minified mode 2015-03-09 13:28:37 +03:00
konsoletyper
97889bc217 Improve minification of async code 2015-03-09 11:29:49 +03:00
konsoletyper
3a78db74c1 Fix bugs 2015-03-08 13:09:17 +03:00
konsoletyper
7869173ac2 Remove build errors on JDK8 2015-03-08 12:18:57 +03:00
konsoletyper
e951b681ca Fix ordering of basic blocks before decompilation 2015-03-08 11:57:03 +03:00
konsoletyper
77738b001f Speed-up context switching 2015-03-06 23:11:55 +03:00
konsoletyper
84aeb20321 Handle irreducible loops after async program splitting 2015-03-06 22:56:01 +03:00
konsoletyper
bc43923695 Merge branch 'master' into async-irreducible 2015-03-06 19:18:07 +03:00
Alexey Andreev
d2e20d7c9f Add OutOfMemoryError. When catching exceptions that are not defined,
report errors at compile time.
2015-03-06 14:01:02 +04:00
Alexey Andreev
8d2e012f79 Speed-up generation of debug information 2015-03-06 13:07:37 +04:00
konsoletyper
0fe826ade8 Add more complicated irreducible graph test 2015-03-05 23:35:12 +03:00
konsoletyper
33b319ce16 Add some tests for SCC 2015-03-05 20:55:21 +03:00
Alexey Andreev
e2aababde8 Add unit tests for irreducible graph splitter 2015-03-05 18:32:36 +04:00
Alexey Andreev
04677d0103 Minor fix 2015-03-04 22:57:26 +03:00
Alexey Andreev
d4824ff9d2 Improve node splitting 2015-03-04 18:28:26 +04:00
Alexey Andreev
5ea55675f1 Fix node splitting algorithm 2015-03-04 16:43:06 +04:00
Alexey Andreev
043d6f587f Further attempts to get node splitting work 2015-03-03 12:55:54 +04:00
Alexey Andreev
b6df37115f Fix bugs in irreducible flowgraph node splitting 2015-03-02 19:10:26 +04:00
Alexey Andreev
f106afb034 Complete node splitting algorithm. Add test case for SCC finder. 2015-03-01 23:19:46 +03:00
Alexey Andreev
77b42e677a Complete algorithm that creates subgraph to apply node splitting
recursively
2015-03-01 22:25:07 +03:00
Alexey Andreev
7388a9af39 Merge branch 'master' into async-irreducible 2015-03-01 21:33:49 +03:00
Alexey Andreev
852589a4dd Fix https://github.com/konsoletyper/teavm/issues/74 2015-03-01 12:55:28 +03:00
Alexey Andreev
18ac2b2b25 Fix some tests of html4j TCK 2015-03-01 11:10:59 +03:00
Alexey Andreev
140c5298db Fix https://github.com/konsoletyper/teavm/issues/80 2015-03-01 10:17:10 +03:00
Alexey Andreev
8ad58ce2d2 Further implementation of node splitting 2015-02-27 23:26:28 +03:00
Alexey Andreev
9adbb1ae93 Revert some code 2015-02-27 21:33:57 +03:00
Alexey Andreev
59408e40e5 Merge branch 'master' into async-irreducible 2015-02-27 21:29:22 +03:00
konsoletyper
302c1c2237 Minor fixes 2015-02-26 23:47:57 +03:00
konsoletyper
a9ff14b599 Repair Class.getEnumConstants() 2015-02-26 23:28:01 +03:00
konsoletyper
eba560d373 Don't generate monitorenter/monitorexit where unnecessary 2015-02-26 21:30:04 +03:00
Alexey Andreev
a47cf14352 Replace OutputStreamWriter and DataOutputStream 2015-02-26 19:12:53 +04:00
Alexey Andreev
0b7db410d3 Fix error in converting doubles to floats 2015-02-26 12:16:31 +04:00
konsoletyper
bab69bac3d Fix multiple bugs 2015-02-24 23:07:59 +03:00
konsoletyper
7d62c16c8d Bugfixes in sync primitives 2015-02-24 21:08:56 +03:00
Alexey Andreev
4908293e50 Fix NPE in Renderer: https://github.com/konsoletyper/teavm/issues/76
Add async support in Class.newInstance()
2015-02-24 15:51:27 +04:00
konsoletyper
5d1fb3f67f Developing algorithm for node splitting that would maintain DJ-graph
incrementally
2015-02-23 22:39:13 +03:00
konsoletyper
7a573efde1 Fix little bug 2015-02-22 22:39:07 +03:00
konsoletyper
14ce9e23a4 Improve DJ-graph implementation. Add Tarjan's SCC finding algorithm. Add
HPCC dependency.
2015-02-22 22:19:35 +04:00
konsoletyper
11437af5ae Fix https://github.com/konsoletyper/teavm/issues/73 2015-02-21 23:01:12 +04:00
konsoletyper
a882a4c956 Begin implementing irreducible cfg node splitting. Implement DJ graph. 2015-02-21 21:51:04 +04:00
konsoletyper
34aeb6e3c9 Fix https://github.com/konsoletyper/teavm/issues/70 2015-02-21 13:04:09 +04:00
Alexey Andreev
cd2602a5c2 Add better exception handling in async methods:
https://github.com/konsoletyper/teavm/issues/67
2015-02-20 17:51:32 +04:00
Steve Hannah
8779c49c3e Fixed issue with null strings in (). 2015-02-19 08:45:56 -08:00
Alexey Andreev
9300c07daf Fix dependency bug with monitorenter/monitorexit 2015-02-16 17:54:47 +04:00
konsoletyper
b4c3bc47f0 Fix tests 2015-02-15 19:40:49 +04:00
konsoletyper
bc0fc8e406 Remove diagnostic messages 2015-02-15 18:29:39 +04:00
konsoletyper
b6cb9bfd4a Fix monitor methods. Improve JSO to handle abstract classes 2015-02-15 18:11:23 +04:00