Alexey Andreev
dc227e1e42
C backend: add support for Array.get
2018-03-21 22:44:22 +03:00
Alexey Andreev
05d0220dcd
C backend: initial commit
2018-03-20 23:18:52 +03:00
Alexey Andreev
540ad7f694
Uprage HPPC to 0.7.3
2018-03-20 19:10:36 +03:00
Alexey Andreev
de88541b64
Another fix for evaluation order in AST optimizer
...
See #330
2018-02-17 10:29:33 +03:00
Alexey Andreev
788e506175
Fix evaluation order when eliminating redundant variables from AST
...
See #330
2018-02-17 01:29:26 +03:00
Alexey Andreev
4f9110f7b1
Make graph.toString return dot representation of graph
2018-02-04 22:51:25 +03:00
Alexey Andreev
6d68010416
Improve speed of class inference during inlining
2018-02-04 22:29:51 +03:00
Alexander Gundermann
f548fc964c
WASM: fix opcodes
2018-01-28 19:21:45 +03:00
Alexey Andreev
ff7232ac3e
Improvements in reflection:
...
1. During dependency analysis, propagate class literals from
Class.forName return node
2. Use original class source to generate reflection metadata
3. Link classes when they appear in signature of reflectable methods
4. Turn Class.forName(string_literal) into class literal.
2018-01-27 00:21:50 +03:00
Alexey Andreev
f49ec16021
Replace non-strict equality comparisons with strict in runtime.js
2018-01-25 22:08:19 +03:00
Alexey Andreev
caaf2114bf
Fix error when superclass has final String fields
2018-01-25 21:53:28 +03:00
Alexey Andreev
85c686c72a
Remove outdated methodAliases build parameter
...
Replace classAliases with classesToPreserve
2018-01-09 23:38:30 +03:00
Alexey Andreev
10c706077a
When a value in debugger represents plain JavaScript object, show its native fields in watch window
2018-01-08 14:45:46 +03:00
Alexey Andreev
0c8013dfcf
When splitting async program, don't process same blocks twice
...
The old assumption was: if a block has instructions, it was already processed. However, that might be not true in some cases. This led to duplication of exception handlers in some blocks which in turn broken decompiler. From now on processed blocks are stored in a set.
2018-01-07 16:04:11 +03:00
Alexey Andreev
c15709994f
Fix bug in decompiling nested catch blocks with complex control flow
2017-12-03 18:39:57 +03:00
Alexey Andreev
a20d0b0855
Fix compile-time error when callable reference requires boxing
2017-11-26 13:14:02 +03:00
Alexey Andreev
a7ac256c47
Fix bug in AST optimization
2017-11-26 13:14:02 +03:00
Alexey Andreev
1200354a7b
Emit boolean constants as numbers
2017-11-26 13:14:02 +03:00
Alexey Andreev
ff19dc15c9
Further bootstrapping
2017-11-26 13:14:02 +03:00
Alexey Andreev
5fb1623c4e
Add utility method to automatically register extensions in bootstrap mode
2017-11-26 13:14:02 +03:00
Alexey Andreev
256814a60a
Support plugin loading from bootstrap environment
2017-11-26 13:14:02 +03:00
Alexey Andreev
fc4425d7f4
Add missing method to Properties
2017-11-26 13:05:34 +03:00
Alexey Andreev
62f639f92b
Properly report missing virtual methods
2017-11-19 14:36:04 +03:00
Alexey Andreev
3f487f8a7d
Add some useful implementations of ClassHolderSource and ResourceReader
2017-11-16 18:30:25 +03:00
Alexey Andreev
44e6feef0c
Add support for functions that return true or false depending on whether they run from TeaVM
2017-11-16 18:30:04 +03:00
Alexey Andreev
105c188953
Fix nested exception handlers
2017-11-16 00:19:00 +03:00
Alexey Andreev
945a0fee9d
Fix bug in dependency analyzer
2017-11-13 00:15:15 +03:00
Alexey Andreev
2bbdf6caba
Rename DependencyChecker to DependencyAnalyzer
2017-11-12 23:21:16 +03:00
Alexey Andreev
0f39dbbdd4
Minor code style improvements
2017-11-12 23:07:12 +03:00
Alexey Andreev
1b0bacd90c
Remove unused parts of call graph API
2017-11-12 23:06:58 +03:00
Alexey Andreev
edfbe01a7f
Improve performance of dependency analysis by filtering out propagated types that don't match types of method parameters and return values
2017-11-12 23:06:15 +03:00
Alexey Andreev
d811e7edbb
Improve performance of dependency analyzer
2017-11-11 00:48:39 +03:00
Alexey Andreev
f4c5b5073a
Minor performance improvement
2017-11-05 16:12:31 +03:00
Alexey Andreev
a9d47b5ce7
Improve performance of register allocator
2017-11-05 14:55:04 +03:00
Alexey Andreev
90e9792892
Improve DependencyChecker performance
2017-11-05 14:54:37 +03:00
Alexey Andreev
bc51940ce1
Another fix for array.clone() in Rhino and old browsers
2017-11-05 14:53:38 +03:00
Alexey Andreev
6817618b4e
Make primivive[].clone() work in older browsers and in Rhino
2017-11-05 12:29:02 +03:00
Alexey Andreev
344cb4e42d
Fix T[].clone()
2017-11-03 21:58:48 +03:00
Alexey Andreev
25011ee7a6
Remove outdated hack when Class.parent could be non-null for root classes
2017-10-29 21:41:49 +03:00
Alexey Andreev
c54b2b9e9e
Fix bug in escape analysis
2017-10-29 19:08:25 +03:00
Alexey Andreev
c224c57f98
Fix compiler crash when there's no method found during DCE
2017-10-26 15:50:46 +03:00
Alexey Andreev
775b5324b3
Fix WebAssembly codegen
2017-10-24 00:04:57 +03:00
Alexey Andreev
c82ed6746a
Fix compilation of WebAssembly samples
2017-10-22 20:22:24 +03:00
Alexey Andreev
de14a57fe1
Change how method resolution work in DCE and devirtualization.
...
Since in Java 8 there are default methods in interface, method
resolution algorithm becomes more complicated. This alseocauses
several related changes.
1. Resolve methods as late as possible; do not resolve
virtual call sites during DCE.
2. Due to several reasons we have to improve linking phase
to preserve super methods that aren't actually ever called,
but present in virtual call sites.
Related issue: #311
2017-10-22 17:56:31 +03:00
Alexey Andreev
880529dbe2
Fix compiler crash when can't find referring declarations
2017-10-05 14:59:09 +03:00
Alexey Andreev
12dded73f6
JS: add support for Class.getModifiers
2017-07-17 22:21:17 +03:00
Alexey Andreev
1581345e17
Properly report breakpoint hit event
2017-07-04 06:37:17 +03:00
Alexey Andreev
db97b7f732
Fix various issues in debugger
2017-07-02 16:25:11 +03:00
Alexey Andreev
434a3dd207
Fix IDEA debugger issues
2017-07-01 23:41:21 +03:00
Alexey Andreev
d4903d460b
Reformat test code to conform checkstyle settings
2017-07-01 15:47:46 +03:00