Commit Graph

492 Commits

Author SHA1 Message Date
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
konsoletyper
9d112817b8 Minor improvements 2015-02-14 23:52:28 +04:00
konsoletyper
f69e3310a3 When finding overriden methods, exclude constructors, final and static
methods
2015-02-14 15:50:22 +04:00
konsoletyper
5221815904 Remove unused field 2015-02-14 01:20:34 +04:00
konsoletyper
4ce1031c0c Trying to fix https://github.com/konsoletyper/teavm/issues/58 2015-02-14 01:18:43 +04:00
konsoletyper
f93b35ce80 Fix monitorenter 2015-02-14 00:24:24 +04:00
konsoletyper
f35f06097c Further minification 2015-02-13 22:58:44 +04:00
konsoletyper
a4d948f26b Fix bugs 2015-02-13 22:30:41 +04:00
Alexey Andreev
54ecf6e00f One step toward further minification 2015-02-12 19:08:44 +04:00
konsoletyper
90f1f19f08 Avoid unnecessary parenthesis 2015-02-11 23:11:58 +04:00
konsoletyper
74a76804fb Merge remote-tracking branch 'origin/shannah_threads' into shannah_threads 2015-02-09 23:14:25 +04:00
konsoletyper
71195c04ce Fix some bugs 2015-02-09 23:04:02 +04:00
Steve Hannah
9465d24723 Partial merge with async. 2015-02-09 09:49:53 -08:00
konsoletyper
82b110ad4c Fix little bug in $rt_rootInvocationAdapter 2015-02-09 00:00:53 +04:00
konsoletyper
62431c493c Don't insert $rt_asyncAdapter for methods that don't override async
methods
2015-02-08 23:12:33 +04:00
konsoletyper
2ae7b587d1 Most of TClass now uses Platform instead of code generation 2015-02-08 22:35:51 +04:00
Steve Hannah
21468ef419 Fixed issue with the instruction copier. Now it builds ok with synchronized instruction. Getting an error at runtime... 2015-02-07 10:00:48 -08:00
konsoletyper
d93fa6cf41 Start eliminating JavaScript generators in classlib in favour of calling
Platform and JSO
2015-02-07 20:58:47 +04:00
Steve Hannah
d37da2b078 Made small change to statement generator for monitor instructions. 2015-02-07 07:34:02 -08:00
Steve Hannah
68aa193728 Made some changes based on Alexey's comments of previous changes. Still getting same error on build. 2015-02-07 07:22:13 -08:00
konsoletyper
3b1d6851a4 Refactoring. Add AsyncCallback support 2015-02-07 18:36:18 +04:00
konsoletyper
942542df6f Produce less code 2015-02-07 16:57:45 +04:00
konsoletyper
268b66e523 Fix async virtual methods 2015-02-07 15:21:46 +04:00
Steve Hannah
2fbc50e76f Most of the elements are in place for monitors to work... something is wrong tough because I get errors when I try to compile files with synchronized sections. 2015-02-06 16:47:59 -08:00
Steve Hannah
cca4336a15 Merged with latest async branch. Also added MonitorExitInstruction and MonitorEnterInstruction classes, and updated all associated visitors. These don't do anything yet though. 2015-02-06 14:11:07 -08:00
Steve Hannah
d84889798c Merge branch 'async' of https://github.com/konsoletyper/teavm into threads 2015-02-06 13:17:43 -08:00
Alexey Andreev
ce2c625f53 Add test to check async virtual call resolution. Fix bug in async unit
tests support
2015-02-06 19:02:14 +04:00
Alexey Andreev
1f8ef1092c Support async code in junit 2015-02-06 18:51:42 +04:00
Alexey Andreev
484bf61a5c Fix wielding of try/catch blocks 2015-02-06 18:01:20 +04:00
konsoletyper
de7dc645bc Add wielding of try/catch statements 2015-02-06 01:56:39 +04:00
konsoletyper
5dfc8a3ed6 Return back AST optimization of async methods. 2015-02-06 00:53:51 +04:00
Alexey Andreev
73721e5b31 Add exception support to async methods 2015-02-05 17:50:25 +04:00
Steve Hannah
e6e52d1be5 Added preliminary support for keeping track of which thread is currently running. This implementation simply overrides setTimeout() to keep track of the thread that is running. It restores it to the main thread after a thread finishes running. May need to override other async methods e.g. XMLHTTPRequest, but not sure yet. This change may be sufficient if all of our async methods meant to emulate threads use the setTimeout construction. 2015-02-04 13:55:02 -08:00
Steve Hannah
8fa50a0504 Merge branch 'async' of https://github.com/konsoletyper/teavm into threads 2015-02-03 07:07:46 -08:00
Alexey Andreev
8a11239436 Temporarily switch off expression wielding optimization in async
methods.
2015-02-03 11:56:17 +04:00
Steve Hannah
7c084effb0 Merge branch 'async' of https://github.com/konsoletyper/teavm into threads 2015-02-02 08:26:12 -08:00
Alexey Andreev
b36c10760c Working on async exception catching 2015-02-02 18:58:44 +04:00
konsoletyper
071f2bb46c First working prototype of CPS 2015-02-01 22:55:33 +04:00
konsoletyper
62d3e9f40e Further work on CPS generator 2015-02-01 22:08:04 +04:00
konsoletyper
cff91e03ff Add resolving of JSR opcode 2015-02-01 20:40:56 +04:00
konsoletyper
3c9acd8fab Further work on CPS generator 2015-02-01 17:43:21 +04:00
konsoletyper
672de2f111 Fix errors. Generalize AST optimizer to handle async methods 2015-02-01 00:02:20 +04:00
konsoletyper
de85560876 Implement CFG splitting 2015-01-31 00:02:41 +04:00
Alexey Andreev
5593aa074e Start implementing async JS generator 2015-01-30 19:15:12 +04:00
Alexey Andreev
c546af553b Fix slowness 2015-01-30 12:46:10 +04:00
Alexey Andreev
6353fad620 Fix error with properties not available in renderer 2015-01-27 14:29:40 +04:00
konsoletyper
871667cacb Minor bugfixes 2015-01-22 21:04:17 +04:00
Alexey Andreev
67677494b3 Fix error in transforming classes if missing items found 2015-01-22 14:25:40 +04:00
Alexey Andreev
8950121d01 Fix bug with source maps generator 2015-01-20 18:45:20 +04:00
Alexey Andreev
525fd89374 Minor improvements and bugfixes 2015-01-20 18:10:13 +04:00
Alexey Andreev
3935d27f5b Fix bugs 2015-01-19 18:19:38 +04:00
alexey-andreev
8188878488 Add support of new diagnostics API in Eclipse 2015-01-18 19:06:21 +04:00
Alexey Andreev
d55bd862d0 Missing native methods are reported through diagnostics. Better
rendering of problem stack trace.
2015-01-16 18:36:11 +04:00
Alexey Andreev
9154f4eff9 Add post-processor that reports references to missing items and replaces
these references with code that throws error.
2015-01-16 17:47:25 +04:00
Alexey Andreev
4299836ef4 First working version with new diagnostics API 2015-01-14 19:12:06 +04:00
Alexey Andreev
bdf4f7dbae Merge branch 'master' into diagnostics 2015-01-14 17:54:08 +04:00
Alexey Andreev
b3a41892a3 Fix Class.getName(). Fix https://github.com/konsoletyper/teavm/issues/43
Fix Eclipse plugin descriptor
2015-01-13 19:17:18 +04:00
Alexey Andreev
eeddfd1298 Fix bugs that were found by FindBugs. Fix
https://github.com/konsoletyper/teavm/issues/46
https://github.com/konsoletyper/teavm/issues/45
https://github.com/konsoletyper/teavm/issues/44
https://github.com/konsoletyper/teavm/issues/42
2015-01-13 18:25:15 +04:00
Alexey Andreev
1fff443c36 Dependency API supports multiple occurence of reaching events for
different location
2014-12-29 19:16:29 +04:00
Alexey Andreev
316850bbb5 Merge branch 'master' into diagnostics 2014-12-11 18:54:25 +04:00
Alexey Andreev
47f5943e8b Refactor TeaVM core for new diagnostics API 2014-12-11 18:54:15 +04:00
Alexey Andreev
0945c27f16 Further work on diagnostics API 2014-12-09 18:43:23 +04:00
Alexey Andreev
844da6760c Clean-up project 2014-12-09 16:21:14 +04:00
Alexey Andreev
30781bb16e Refuse from CallStack for complete CallGraph 2014-11-23 22:34:12 +03:00
konsoletyper
e736cf09d7 Start implementing diagnostics API 2014-11-05 22:14:41 +03:00
konsoletyper
9be6ce9bbf Fix https://github.com/konsoletyper/teavm/issues/32 2014-11-03 20:31:49 +03:00
konsoletyper
9bdd2f6020 Fix https://github.com/konsoletyper/teavm/issues/27 2014-10-25 13:20:41 +04:00
konsoletyper
3de49d6d54 Fix issues in strict mode 2014-10-19 11:02:56 +04:00
konsoletyper
5420ca89f6 Add support of strict mode 2014-10-18 15:32:43 +04:00
konsoletyper
273fc59182 Switch version to 0.3.0-SNAPSHOT 2014-10-13 17:33:25 +04:00
Alexey Andreev
581cae0ef4 Bugfixes: https://github.com/konsoletyper/teavm/issues/23
https://github.com/konsoletyper/teavm/issues/22
https://github.com/konsoletyper/teavm/issues/21
2014-10-12 18:05:31 +04:00
konsoletyper
9e09c247e6 Replace old code samples with new ones 2014-10-05 15:45:44 +04:00
konsoletyper
71343b910e Fix passing of some DukeScript tests 2014-10-04 17:54:56 +04:00
konsoletyper
7b4a7fc471 Add statement boundary mapping to debug information 2014-10-03 21:30:55 +04:00
konsoletyper
f628a996ac Attempt to make more accurate debug information 2014-10-01 12:08:13 +04:00
konsoletyper
b7754ea1a5 Minor improvements & bugfixes 2014-09-30 23:19:10 +04:00
Alexey Andreev
9d12bffc1b Add support of copying source files into Eclipse:
https://github.com/konsoletyper/teavm/issues/13
2014-09-27 19:23:05 +04:00
Alexey Andreev
6c05ec589a Add source copying in maven plugin:
https://github.com/konsoletyper/teavm/issues/13
2014-09-26 18:52:28 +04:00
Alexey Andreev
8696bff1cd Fix minor bugs 2014-09-25 18:22:16 +04:00
konsoletyper
194c7bf806 Configuration 2014-09-22 22:27:19 +04:00
konsoletyper
03daced41b Successfull build from PDE 2014-09-22 08:06:02 +04:00
konsoletyper
82802f723d Configuring shitty tycho 2014-09-21 21:38:28 +04:00
konsoletyper
700d50b110 Allow interruption during dependency and linking phases. Use buffered
writer to render final JavaScript
2014-09-16 21:47:32 +04:00
konsoletyper
b7c07886a6 Refactor dependency checker 2014-09-16 10:44:14 +04:00
konsoletyper
3a4aef6f5c Fix NPE in DependencyChecker 2014-09-16 07:56:16 +04:00
konsoletyper
f204c8cc4a Add markers against lines that contain missing elements 2014-09-15 21:21:25 +04:00
konsoletyper
a26522f959 Refactoring of dependency checker in order to achieve better diagnostics
in Eclipse plugin
2014-09-15 17:52:55 +04:00
konsoletyper
d9ea3764f8 Add a minimal TeaVM builder that simply works 2014-09-15 12:13:27 +04:00
konsoletyper
80899af284 Add progress reporting by TeaVM. Add interrupting of TeaVM. Add skeleton
of TeaVM builder for Eclipse.
2014-09-14 22:27:07 +04:00
konsoletyper
58606d8aa6 Remote System.out.println 2014-09-13 20:51:03 +04:00
konsoletyper
dc3faa1727 Fix invalid call sites in debug information for INVOKEVIRTUAL 2014-09-13 19:38:04 +04:00
konsoletyper
ce78bdb07f Refactor Eclipse plugin 2014-09-13 16:45:04 +04:00
konsoletyper
50a65c27e3 Fix minor issues 2014-09-11 17:12:53 +04:00
konsoletyper
b0b9287659 Fix NPE that is sometimes thrown when generating debug information.
Enable debug information for html4j TCK
2014-09-11 10:49:22 +04:00
konsoletyper
64847c3888 Add debug information and source maps to unit test builder 2014-09-11 07:58:20 +04:00
konsoletyper
5fc3574aad Fixes incremental build when running through CLI 2014-09-10 21:23:22 +04:00
konsoletyper
df49ead369 Adds support of incremental build into tools 2014-09-10 21:12:11 +04:00
konsoletyper
e28771ad48 Fix bugs in ProgramIO and AstIO 2014-09-10 20:02:48 +04:00
konsoletyper
fb424e6741 Complete incremental build 2014-09-10 17:43:07 +04:00
konsoletyper
f1249be6dc Add statement reader 2014-09-10 10:53:21 +04:00
konsoletyper
04d1c28df0 Add test for ProgramIO 2014-09-10 10:14:41 +04:00
konsoletyper
0d1a59c03b Add incomplete implementation of AST disk cache 2014-09-09 17:52:27 +04:00
konsoletyper
a7d3f26447 Add AST writer 2014-09-09 14:41:03 +04:00
konsoletyper
7de36a6d33 Disk cached classes and programs 2014-09-09 13:35:43 +04:00
konsoletyper
13b64fd4c1 Fixes problems with reading and writing a program 2014-09-09 12:18:46 +04:00
konsoletyper
e6ce22b960 Complete disk cached class source 2014-09-08 18:08:23 +04:00
konsoletyper
c79519f72a Add writing class to disk 2014-09-08 17:28:37 +04:00
konsoletyper
31204491fc Complete program IO. Add caching of classes on disk 2014-09-07 19:53:20 +04:00
konsoletyper
aa9a042360 Add read support of several instructions 2014-09-07 14:35:17 +04:00
konsoletyper
054d32c48f Add reader of a program 2014-09-06 22:53:34 +04:00
konsoletyper
7a3aab998b Add method that writes program to file 2014-09-05 21:27:59 +04:00
konsoletyper
13ee74965e Add cache package for input/output of symbol table, SSA and AST 2014-09-05 18:10:16 +04:00
konsoletyper
5276680582 Merge remote-tracking branch 'origin/incremental' into incremental 2014-09-05 11:26:32 +04:00
konsoletyper
b4a172b8f7 Cache optimized programs with allocated registers 2014-09-05 11:26:19 +04:00
konsoletyper
9fe66c4f2e Fixes bug in GVN 2014-09-04 19:58:09 +04:00
konsoletyper
520008913e Adds AST caching 2014-09-04 18:21:09 +04:00
konsoletyper
f740782881 Fixes small bugs. Introduces a new class source that does a slight
optimization before providing classes.
2014-09-04 17:18:22 +04:00
konsoletyper
89d6a453ec Speed-up dependency checker
=
2014-09-04 13:24:39 +04:00
konsoletyper
ec9e927701 Merge remote-tracking branch 'origin/incremental' into incremental
Conflicts:
	teavm-core/src/main/java/org/teavm/dependency/DependencyChecker.java
2014-09-04 11:34:20 +04:00
konsoletyper
7a36799b99 Removes threading 2014-09-04 11:25:39 +04:00
konsoletyper
4f941e0a0a Refactor dependency checker 2014-09-03 21:08:19 +04:00
konsoletyper
e60be5d518 Start refactoring dependency checker to make it partially incremental 2014-09-03 18:20:31 +04:00
konsoletyper
0ff2b2a1dc Fixes small bugs that were found by html4j TCK 2014-09-02 18:25:43 +04:00
konsoletyper
491f7ab962 When exloring JS stack frame from Java thread, Eclipse opens JS source 2014-09-01 17:53:59 +04:00
konsoletyper
351d14e275 Minor improvements of Eclipse debugger UI 2014-08-31 00:14:51 +04:00
konsoletyper
45181bece7 Refactoring 2014-08-30 23:37:48 +04:00
konsoletyper
b51d8fe452 Refactoring and bugfixes 2014-08-30 23:29:24 +04:00
konsoletyper
1aca1d5a1e Get "step in" back to work 2014-08-30 21:28:10 +04:00
konsoletyper
31b5895640 Refactoring of debug information reader/writer 2014-08-30 19:13:14 +04:00
konsoletyper
deea4e995a Further refactoring of debugger 2014-08-29 18:01:52 +04:00
konsoletyper
45c336ebb8 Refactoring of debug information 2014-08-28 17:54:02 +04:00
konsoletyper
88c47095a6 Start refactoring of debug information 2014-08-27 22:49:28 +04:00
konsoletyper
7e1ff76c5d Introduces another approach for setting temporary breakpoints at
methods' start lines when stepping in, due to bug in google chrome:
http://code.google.com/p/chromium/issues/detail?id=407105
2014-08-27 18:05:38 +04:00
konsoletyper
7cb3ce70c3 Adds source maps generation 2014-08-26 17:48:32 +04:00
Alexey Andreev
5b0506d158 Makes more accurate callsite generation 2014-08-24 22:40:53 +04:00
Alexey Andreev
86003b45ca Fixes generation of CFG debug information 2014-08-24 17:37:57 +04:00
Alexey Andreev
97e107635b Fixes bugs related to stepping 2014-08-24 16:02:21 +04:00
Alexey Andreev
6272c3a79a Fixes bug with stepping 2014-08-24 13:52:57 +04:00
Alexey Andreev
3bc8887e4f Adds reordering of call sites to achieve natural stepping in call
hierarchy.
2014-08-22 23:01:19 +04:00
konsoletyper
0f81841cf5 Adds RecordArray that generalizes several tasks performed by debugger. 2014-08-22 17:38:41 +04:00
konsoletyper
fed5637d4d Fixes bugs in stepping 2014-08-20 12:51:28 +04:00
konsoletyper
0c708868a5 Implements step into and fixes bugs 2014-08-19 17:53:28 +04:00