Commit Graph

295 Commits

Author SHA1 Message Date
konsoletyper
92d4078228 Fixes classpath bugs. Fixes internal analysis bug. Adds some JCL 2014-03-04 00:06:03 +04:00
konsoletyper
9c4f00c18a Adds most of java.lang.Character implementation. Adds integer stack to
avoid stack overflow when using fixed-sized array-based stack
2014-03-03 16:29:46 +04:00
konsoletyper
a2d9663901 Minimizes amount of generated code to represent virtual methods 2014-03-02 11:02:09 +04:00
konsoletyper
04de57627f Fixes dependency propagation of exceptions 2014-03-02 10:05:56 +04:00
konsoletyper
8541e40f36 Adds exception type propagation 2014-03-01 22:19:24 +04:00
konsoletyper
d68f78f77d Adds NullCheckInstruction 2014-03-01 19:01:27 +04:00
konsoletyper
4c36ab9db1 Reduces amount of generated code 2014-03-01 18:05:04 +04:00
konsoletyper
f4fd2d884f Fixes devirtualization optimization 2014-03-01 16:58:38 +04:00
konsoletyper
cc8d2b8903 TCK passes some more tests 2014-02-28 14:16:23 +04:00
konsoletyper
ce4f6dc5d5 Adds some JCL dependencies required by html4j 2014-02-28 13:40:55 +04:00
konsoletyper
5c613d2f7f Implements Double.parseDouble. Fixes bugs. Disabled devirtualization
optimization due to bugs
2014-02-27 16:06:22 +04:00
konsoletyper
b4347b4eb8 Adds optional support of throwing NPE when calling method on null
instance
2014-02-27 10:04:51 +04:00
konsoletyper
43acca8706 Fixes incorrect optimization of try/catch statements 2014-02-26 22:02:09 +04:00
konsoletyper
1f18148144 Removes exception handlers in a special case when exception handler is
exactly at the start of a protected block
2014-02-26 21:45:58 +04:00
konsoletyper
a4f477329d Fixes bugs in try/catch 2014-02-26 17:54:25 +04:00
konsoletyper
ea3e6adb64 Adds VM test that verifies that exceptions are caught 2014-02-26 17:14:08 +04:00
konsoletyper
62686878c6 Adds try/catch support in simple cases 2014-02-26 16:42:31 +04:00
konsoletyper
de245613c4 Parser supports try/catch blocks 2014-02-26 13:26:33 +04:00
konsoletyper
d5fac392d3 Adds try/catch block to model 2014-02-25 21:36:45 +04:00
konsoletyper
03bc2e2e07 Adds support of java.io.BufferedReader and java.io.StringReader 2014-02-25 12:41:00 +04:00
konsoletyper
8cbb6477cb Adds test coverage of InputStreamReader 2014-02-24 19:43:11 +04:00
konsoletyper
7782f1edb7 Small improvements 2014-02-24 15:00:30 +04:00
konsoletyper
0004babe65 Bugfixes and improvements, trying to launch Knockout4Java 2014-02-24 13:07:06 +04:00
konsoletyper
d34e26e970 Adds java.util.ServiceLoader support 2014-02-24 00:50:06 +04:00
konsoletyper
3195879467 Adds support of Class.getDeclaringClass method 2014-02-23 23:17:30 +04:00
konsoletyper
9cdc099b1a Adds simple support of Class.forName and class.newInstance 2014-02-23 21:14:10 +04:00
konsoletyper
5c03e7547f Avoids swap problem when eliminating phi functions and therefore gets
back global value numbering optimization
2014-02-22 23:20:30 +04:00
konsoletyper
7831ade3a6 Fixes infinite loop in dependency checker in some cases 2014-02-21 19:47:51 +04:00
konsoletyper
a353a05e23 Fixes dependency checker bug 2014-02-21 19:29:45 +04:00
konsoletyper
e2d872fa20 Fixes dependency checking when casting arrays 2014-02-21 17:34:49 +04:00
konsoletyper
90a077fc34 Fixes dependency checker bug 2014-02-21 17:10:28 +04:00
konsoletyper
31b9525309 Fixes bugs. Adds JCL implementation 2014-02-21 15:07:37 +04:00
konsoletyper
59e6095fef Adds linking phase that for each method invocation places a proper
reference, possibly inherited from superclass. Adds tests on ArrayList
2014-02-21 10:36:44 +04:00
konsoletyper
f63d0cd8d0 Adds complete enum support 2014-02-20 11:58:44 +04:00
konsoletyper
f3ae632786 Adds implementations of some JCL classes 2014-02-20 00:53:44 +04:00
konsoletyper
281d4b8e05 Adds ability to build JavaScript tests against custom adapters. Adds
optional dependency scanning for tests. Adds test inclusion by
wildcards. Adds TCK test generator.
2014-02-19 20:46:17 +04:00
konsoletyper
b48cbc98a4 Introduces TestAdapter to make maven plugin be aware of different test
frameworks
2014-02-19 17:52:07 +04:00
konsoletyper
301d14e1ab Most of JavaScriptBody TCK tests pass 2014-02-19 13:44:27 +04:00
konsoletyper
8988d4fc64 Removes unecessary dependency error when building JavaScriptBody support 2014-02-19 11:40:02 +04:00
konsoletyper
2c08f75b0a Alters JUnit plugin. Now it doesn't stop when dependency problems found,
but puts warning into log and into execution report of test
2014-02-19 11:15:22 +04:00
konsoletyper
be89d16e88 Further refactoring of dependency checker 2014-02-19 10:43:13 +04:00
konsoletyper
da35fbc2a9 Dependency checker refactoring 2014-02-18 23:50:54 +04:00
konsoletyper
5b76001a34 Adds json-tck tests 2014-02-18 17:53:55 +04:00
konsoletyper
ee28309008 Adds displaying of full dependency stack for each missing item 2014-02-18 14:20:48 +04:00
konsoletyper
6c903a916c Fixes illegal processing of DUP2, DUP_X1, DUP_X2m, DUP2_X2 instructions.
Makes more fancy list of missing items
2014-02-18 12:52:29 +04:00
konsoletyper
53e1ea3627 When missing some classes/methods/fields dependency checker throws
exception after checking, providing the full list of missing items.
2014-02-17 21:02:47 +04:00
konsoletyper
169ecb18c8 Adds integer conversion 2014-02-17 17:05:17 +04:00
konsoletyper
ae2ca37ee0 Adds type conversion from Java array and integer to JS array and number 2014-02-17 08:15:06 +04:00
konsoletyper
d310409db3 Fixes dependency checking of arrays 2014-02-14 16:19:51 +04:00
konsoletyper
cc3a89ebf7 Makes `started' dependency event to be emitted before any dependency
checking. Suppresses repeated ClassHolder transformation
2014-02-14 00:37:14 +04:00
konsoletyper
4dd9eaa1fd Adds a new dependency event that is emitted when dependency checker is
about to start. Adds ability to examine classes from generators.
2014-02-13 22:59:30 +04:00
konsoletyper
e5ea6b51a7 Moves JSObject and others into a separate project 2014-02-13 17:52:56 +04:00
konsoletyper
e13accc7e4 Adds pluggable system to extend TeaVM compiler 2014-02-13 17:22:25 +04:00
konsoletyper
8c4514a200 Refactoring. Adds devirtualization optimization 2014-02-12 23:41:17 +04:00
konsoletyper
99333f2370 Speed-up MULTIANEWARRAY. Temporarily disable typed arrays as they make
benchmark to pass slower
2014-02-11 12:28:37 +04:00
konsoletyper
e094fe4192 Adds emulation of Integer.parseInt 2014-02-10 16:34:40 +04:00
konsoletyper
8055edd547 Fixes issue with JSFunctor-annotated classes 2014-02-10 12:43:23 +04:00
konsoletyper
67bc76f89a Adds java.lang.Boolean emulation. Adds emulation of some of
java.lang.String methods. Fixes bug in register allocator.
2014-02-10 12:25:17 +04:00
Alexey Andreev
8a423c0d4f Adds support of *functors*. Adds benchmark from bck2brwsr 2014-02-09 14:27:32 +04:00
Alexey Andreev
48265c446f Adds possibility to implement JSObject ant pass it as a callback to a
method of another JSObject
2014-02-07 23:30:31 +04:00
konsoletyper
c9f78c5cdf Introduces concept of an *injector*. Uses injectors to make generated
JavaScript code neat.
2014-02-07 00:44:06 +04:00
konsoletyper
ae2e669ec3 Adds support of native JavaScript interaction 2014-02-06 17:51:51 +04:00
konsoletyper
b621b0524b Adds a skeleton of a new native interface to JavaScript 2014-02-06 13:00:46 +04:00
konsoletyper
6a626ec493 Renamings 2014-02-02 20:35:12 +04:00
konsoletyper
4c03e7d3cb Returns back old variable substitution 2014-01-31 22:25:24 +04:00
konsoletyper
ce0859beac AST optimizations and output code minification 2014-01-31 14:03:29 +04:00
konsoletyper
bc68602dae Remove .$class property and use built-in .constructor instead 2014-01-31 10:49:01 +04:00
konsoletyper
4c70cf6828 Fixes error generating minfied JS 2014-01-30 17:44:47 +04:00
konsoletyper
3496907f0e While eliminator 2014-01-30 17:36:56 +04:00
konsoletyper
692bfdd731 Fixes issues in if statement AST optimizer 2014-01-30 17:13:24 +04:00
konsoletyper
16d11909ea New AST optimization algorithm 2014-01-29 17:35:27 +04:00
konsoletyper
d93883296e Slightly improves AST optimizer 2014-01-28 17:29:36 +04:00
konsoletyper
24921c6e80 Support of multithreaded execution. Performance optimizations. 2014-01-28 16:46:40 +04:00
konsoletyper
0c240f5636 Refactoring of model to allow multithreaded optimization 2014-01-28 14:13:12 +04:00
konsoletyper
619c50729b Further optimization for multiple threads 2014-01-27 17:35:42 +04:00
konsoletyper
915add4d97 Multithreading support refactoring 2014-01-27 17:15:28 +04:00
konsoletyper
c9a891d9cd All tests pass with register allocation 2014-01-27 16:02:23 +04:00
konsoletyper
94fe8a0acf Fixes minor decompilation issues 2014-01-27 12:36:35 +04:00
konsoletyper
0eb4e54e51 Fixes register allocation bugs 2014-01-27 11:34:55 +04:00
konsoletyper
b7917f2511 Register allocator almost complete 2014-01-24 17:26:03 +04:00
konsoletyper
73884794a4 Bugfixes. Start to implement phi eliminator through interting copies for
all phi arguments and then coalescing.
2014-01-23 17:19:36 +04:00
konsoletyper
e5a083b4c7 Trying to implement register allocator with phi function elimination 2014-01-23 16:10:42 +04:00
konsoletyper
24d40c3c41 Fixes register allocator 2014-01-23 13:16:20 +04:00
konsoletyper
ba67c34b20 Adds interference graph builder 2014-01-22 16:43:36 +04:00
konsoletyper
161eb2b9c0 Removes "representative" property of variables in SSA form 2014-01-22 13:02:27 +04:00
konsoletyper
d704e503ee Adds representative attribute to variables in SSA form. Adds program
bytecode logging
2014-01-20 18:17:58 +04:00
konsoletyper
c704956ca1 Complete liveness analyzer (not tested) 2014-01-15 17:38:14 +04:00
konsoletyper
c8ac2a8b98 Adds liveness analyzer (incomplete) 2014-01-10 17:10:58 +04:00
konsoletyper
ca29e10aeb Fixes threading issue in DependencyChecker 2014-01-10 15:30:41 +04:00
konsoletyper
2214433d6c Adds variable usage extractor and phi eliminator (incomplete) 2014-01-09 17:30:39 +04:00
konsoletyper
559cf989ba Adds method to copy program 2014-01-09 15:26:31 +04:00
konsoletyper
a5ff1cf5a8 Merge remote-tracking branch 'origin/master' 2014-01-08 18:48:20 +04:00
konsoletyper
93e2f5d284 Fixes issues with dependency checking 2014-01-08 17:48:54 +04:00
konsoletyper
111b3d9076 Applies apache license 2013-12-20 12:45:28 +04:00
konsoletyper
56991af700 Adds fixes to make `samples' project to work properly 2013-12-19 12:13:31 +04:00
konsoletyper
eb6627c532 Adds a minimal code to support HelloWorld application 2013-12-18 15:04:11 +04:00
konsoletyper
6eb145e1d0 Adds maven plugin. Switches class library test generation from main
class to maven goal
2013-12-17 12:03:27 +04:00
konsoletyper
e5cb7a20d3 Adds JavascriptBuilder - a facade for building whole JavaScript files 2013-12-16 17:48:38 +04:00
konsoletyper
a736359a07 Code size optimization 2013-12-16 16:33:28 +04:00
Alexey Andreev
808b0d9468 Fixes bugs 2013-12-13 17:28:30 +04:00
konsoletyper
5ab0036564 Common subexpression elimination now works 2013-12-12 20:59:05 +04:00
Alexey Andreev
9faf252a8d Adds common subexpression elimination prototype 2013-12-12 17:37:18 +04:00
Alexey Andreev
d9b7a87784 Fixes dependency checker bugs 2013-12-12 16:35:12 +04:00
konsoletyper
d100654b93 JUnit tests now compiled each in a separate file 2013-12-11 22:16:27 +04:00
konsoletyper
18fd80be56 Fixes bugs in minifier 2013-12-10 21:28:11 +04:00
Alexey Andreev
62df1018cc Improves minification 2013-12-10 17:24:19 +04:00
Alexey Andreev
029f655b55 Merge remote-tracking branch 'origin/master'
Conflicts:
	teavm-core/src/main/java/org/teavm/javascript/Renderer.java
2013-12-10 16:52:43 +04:00
Alexey Andreev
10c1e2f528 Adds minification 2013-12-10 16:47:41 +04:00
konsoletyper
82ef14fc07 Adds support of JVM class initialization 2013-12-09 22:04:04 +04:00
konsoletyper
d948d8d8b0 Adds long division emulation 2013-12-09 21:45:47 +04:00
Alexey Andreev
bb7053cfa4 Improvements 2013-12-06 17:16:56 +04:00
Alexey Andreev
3f1a44eccb Fixes casting between integer values. Fixes naming generation of
methods. Adds more informative exception trace when no method was found
during rendering
2013-12-04 11:46:17 +04:00
konsoletyper
d3063e7811 Fixes class methods errors. Adds string tests 2013-12-03 22:29:50 +04:00
Alexey Andreev
620d2cef62 Adds some more support of reflection 2013-12-03 19:30:53 +04:00
Alexey Andreev
b3fe2f6a29 Fixes a bug with Object.getClass() behaviour. Improves JUnit emulation 2013-12-03 19:07:53 +04:00
Alexey Andreev
167e1a52c8 Merge remote-tracking branch 'origin/master' 2013-12-03 10:06:30 +04:00
konsoletyper
06e466b01b Fixes a little optimization bug 2013-12-02 20:54:06 +04:00
konsoletyper
601fcf0824 Adds unused variable elimination 2013-12-02 20:51:04 +04:00
Alexey Andreev
c8528ef91a More tests added 2013-12-02 17:28:48 +04:00
konsoletyper
ac0df0ca6b Refactoring of array generation 2013-12-01 21:57:41 +04:00
Alexey Andreev
ce56214ed5 Adds some JVM class library implementation 2013-11-29 19:07:39 +04:00
Alexey Andreev
f6927a72af Fixes some bugs 2013-11-28 17:42:06 +04:00
Alexey Andreev
e32da9316f Improves dependency checking. Adds some core runtime functions 2013-11-27 17:30:16 +04:00
Alexey Andreev
c244c596c9 Implements some of JVM class library 2013-11-27 10:11:21 +04:00
Alexey Andreev
1355e211e3 Implementing class library emulation 2013-11-25 17:41:18 +04:00
Alexey Andreev
18e35b80e6 Adds some JVM classes. 2013-11-22 17:19:51 +04:00
Alexey Andreev
04e12562a0 Adds class preordering. Fixes concurrency issues 2013-11-20 18:16:48 +04:00
Alexey Andreev
f88b868c39 Dependency checker now cuts off unused methods 2013-11-18 17:28:02 +04:00
Alexey Andreev
6efbb75783 Instructions, that have separate class name and field/method name now
use FieldReference and MethodReference instead
2013-11-17 16:45:35 +04:00
Alexey Andreev
91a50605bc Dependency plugin support added 2013-11-17 16:20:23 +04:00
Alexey Andreev
59358dcd8d Dependency checker complete 2013-11-17 15:43:03 +04:00
Alexey Andreev
7e7cdc5b78 Working on dependency checker 2013-11-15 17:31:11 +04:00
Alexey Andreev
93798a335c Merge remote-tracking branch 'origin/master' 2013-11-11 19:08:47 +04:00
Alexey Andreev
3e7dc295a1 Type analyzer complete 2013-11-11 19:06:01 +04:00
Alexey Andreev
958592a4b0 Adds generator of HTML page, running junit test cases 2013-11-10 22:49:56 +04:00
Alexey Andreev
50a8c85cd1 java.lang.Object constructor generated properly 2013-11-10 19:56:17 +04:00
konsoletyper
ee10986d05 Class renaming now works 2013-11-06 19:46:54 +04:00
Alexey Andreev
9c83d63c86 Class components renamer 2013-11-06 17:31:08 +04:00
konsoletyper
5641a09a0a Fixes native method decompilation. Refactoring 2013-11-04 19:29:07 +04:00
konsoletyper
d63171e935 Adds annotation parsing. Adds native method generation 2013-10-28 22:59:56 +04:00
konsoletyper
df05104e3c Doing a lot of things 2013-10-27 12:16:07 +04:00
konsoletyper
3d12aed446 Adds phi instruction eliminator 2013-10-01 22:10:25 +04:00
konsoletyper
4e4d0cfe9e Adds JavaScript AST optimizer. 2013-10-01 21:45:19 +04:00
konsoletyper
3445910866 Ignores eclipse files 2013-09-24 00:11:28 +04:00
konsoletyper
69dd04668e Adds initial files 2013-09-24 00:09:15 +04:00