Commit Graph

131 Commits

Author SHA1 Message Date
Alexey Andreev
d982f89ab6 Add missing folder to CLDR archive. Fix tests WRT changes in CLDR. 2017-06-25 13:36:35 +03:00
Alexey Andreev
40b29cdfa1 Add support for altMetafactory 2017-06-18 21:22:44 +03:00
Alexey Andreev
2992c6e406 Wrap function by an object if returning value of native method is
a JSFunctor interface.

See #280
2017-06-11 00:15:41 +03:00
Alexey Andreev
45ba247265 When Java class gets exported to JS, generate bridges for its
methods so that these bridges perform type conversion
between Java and JS
2017-06-09 00:02:28 +03:00
Alexey Andreev
d324847fe6 Fix flaky test (hopefully) 2017-06-07 14:36:44 +03:00
Alexey Andreev
ba7f07de4b Copy default methods from interfaces to implementing classes 2017-06-06 22:42:21 +03:00
Alexey Andreev
ad14176277 Fix JSO tests from previous commits 2017-05-31 22:52:34 +03:00
Alexey Andreev
933a5c3efc Code style fixes 2017-05-30 22:49:40 +03:00
marciodel
5ecfb3620c Support for default and static methods in Functors 2017-05-30 22:45:14 +03:00
Alexey Andreev
3791b806b9 Weaken rules for names of JSProperty methods
First, accept first character if it's a non-letter character.
Second, don't validate name of method when JSProperty specifies
name of the JS property explicitly.

See #277
2017-05-29 23:54:43 +03:00
Alexey Andreev
c0ed3d54d7 Fix base64 support
(cherry picked from commit 5da32e3a6583493a36c87bc02c8177a7740faaf7)

# Conflicts:
#	tests/src/test/java/org/teavm/classlib/java/lang/TestResourcesSupplier.java
2017-05-29 23:26:34 +03:00
Alexey Andreev
b1b98097ee Improve ResourceSupplier API
(cherry picked from commit 539a12227f79abdb4ce22aac2dbc647f1c09f083)

# Conflicts:
#	classlib/src/main/java/org/teavm/classlib/java/lang/ClassLoaderNativeGenerator.java
#	tests/src/test/java/org/teavm/classlib/java/lang/TestResourcesSupplier.java
2017-05-29 23:22:59 +03:00
Alexey Andreev
25b298b1d0 JS: fix ClassLoader.getResourceBundle for non-existent resources 2017-05-29 23:19:07 +03:00
Alexey Andreev
2d5f6a81c2 Improve peformance of Long.hashCode 2017-05-07 22:18:10 +03:00
Alexey Andreev
48d14570b2 Make Long/Float/Double/Integer compare/hashCode methods cross-platform 2017-05-07 22:06:44 +03:00
Alexey Andreev
e884bb35c9 Fix System.setErr/setOut methods 2017-05-07 21:32:35 +03:00
Alexey Andreev
293e82a3c0 In class inference add rules for known types of method parameters
and method return value
2017-04-27 00:14:14 +03:00
Alexey Andreev
3c4ec550c4 Fix test runner 2017-04-23 23:51:16 +03:00
Alexey Andreev
6ecfefe9c8 Testing travis setup 2017-04-22 20:08:30 +03:00
Alexey Andreev
6298e2c498 Testing travis setup 2017-04-22 18:57:06 +03:00
Alexey Andreev
60bcf97933 Use websocket client to run tests 2017-04-22 18:14:55 +03:00
Alexey Andreev
519cd71636 Change presentation of test suites in headless chrome runner 2017-04-22 11:32:19 +03:00
Alexey Andreev
80194f054e Fix flaky test 2017-04-22 00:47:47 +03:00
Alexey Andreev
8e67fe0168 Escape undefined unicode characters in string literal 2017-04-22 00:38:04 +03:00
Alexey Andreev
d5db7270be Move expected exception handling off test runner.
Implement it in launcher genertor instead
2017-04-22 00:26:43 +03:00
Alexey Andreev
e6606302cc Add test runner on headless chrome 2017-04-21 23:51:35 +03:00
Alexey Andreev
4847731328 Fix SOE when calling Throwable.getCause()
Fix https://github.com/konsoletyper/teavm/issues/249
2017-03-27 22:27:59 +03:00
Davin McCall
95f07d80a7 Add a test for an issue which I believe is caused by failure to identify
an asynchronous method.

Unfortunately I am unable to actually produce a failing test; instead an
exception message is generated during test execution. This seems to be an
issue with the test runner mechanism.
2017-02-25 19:06:56 +03:00
Davin McCall
651532c203 Add test for asynchronous class initialisation from asynchronous constructor.
(cherry picked from commit 34961e4)
2017-02-22 23:10:07 +03:00
Alexey Andreev
1ea69b7d17 Trying to fix flaky test 2017-02-16 22:33:18 +03:00
Alexey Andreev
edb3d2ff48 Fix generation of meta method when its discriminator class denotes array type 2017-02-12 00:23:53 +03:00
Alexey Andreev
19e8e06446 Fix creation of multi-dimensional arrays with zero dimensions. See https://github.com/konsoletyper/teavm/issues/239 2017-02-11 23:23:50 +03:00
Alexey Andreev
816a17dfc0 When Value.get() called in metaprogramming lambda and not assigned anywhere, capture instance anyway so that if it's a lazy value, it will be computed 2017-02-10 23:49:03 +03:00
davmac314
7fc035fd8a Fix asynchronous instantiation via reflection. (#238)
Fix asynchronous instantiation via reflection. The generated code resumes
from a thread suspension event, but won't appropriately re-suspend if the
constructor suspends.
2017-02-09 16:29:50 +03:00
Alexey Andreev
f6103ec00b Copy exception variables when splitting async programs. Fix https://github.com/konsoletyper/teavm/issues/230 2017-01-28 22:39:44 +03:00
Alexey Andreev
02d8439920 When copying basic blocks in async splitter, copy exception variable as well. Fix https://github.com/konsoletyper/teavm/issues/230 2017-01-24 23:59:54 +03:00
Alexey Andreev
c7829a77cf Fix diagnostics tests 2017-01-24 23:42:41 +03:00
Alexey Andreev
5c936878a7 Update JSO apis 2017-01-23 23:27:57 +03:00
Alexey Andreev
c1cddc5a71 Add JSByRef annotation to specify which parameters to pass to JS by reference 2017-01-23 23:10:35 +03:00
Alexey Andreev
645b2b7cd5 Add local type inference to use in optimizations 2017-01-09 19:16:51 +03:00
Alexey Andreev
ad39024795 Prevent PhiUpdater from placing e-phis with source variable equal to receiver 2016-12-03 13:46:02 +03:00
Alexey Andreev
10bb4ef3da Fix range checking in AbstractList.subList. Add RandomAccess to object returned by Arrays.asList 2016-12-03 11:05:33 +03:00
Alexey Andreev
24efd1f49c Fix support of async <clinit> when called by getstatic/putstatic 2016-11-20 17:50:47 +03:00
Alexey Andreev
764c9bbb1e Working on support of async <clinit> methods 2016-11-17 23:24:16 +03:00
Alexey Andreev
f61cfb23b5 After inlining remove unreachable basic blocks and unused variables. When removing unreachable basic blocks, remove corresponding phi inputs as well. 2016-11-06 21:12:59 +03:00
Alexey Andreev
daf5ada5c6 Fix converting JS floating-point numbers to long (fix #228). 2016-11-04 14:12:51 +03:00
Alexey Andreev
6f5c6cd66e Move VM tests off classlib package 2016-11-04 13:34:25 +03:00
Alexey Andreev
8c3f071f88 Fix updating size in LinkedList.remove (fix #226). 2016-11-04 13:28:34 +03:00
Alexey Andreev
9143714168 Refactor target API. Add ability to generate wast and C from wasm target 2016-09-17 09:19:32 +03:00
Alexey Andreev
9fb97fd53f Refactoring 2016-09-17 09:00:40 +03:00
Alexey Andreev
47997cde87 Rename target package to backend to avoid gitignore 2016-09-17 08:59:00 +03:00
Alexey Andreev
52ace0c252 Refactor TeaVM to support pluggable targets like JavaScript, WebAssembly, LLVM, etc (with only JavaScript target for now) 2016-09-17 08:55:44 +03:00
Alexey Andreev
1f30e5fd88 Add test to prove that all modification to a local variable are visible in a corresponding catch block 2016-09-17 08:55:19 +03:00
Alexey Andreev
6196dc80ed Fix bug in phi updater. Fix tests 2016-09-17 08:43:56 +03:00
Alexey Andreev
d912ba4af3 Invert loops only when it's profitable (causes invariants to dominate exits). Improve LICM to move invariants with side effects 2016-09-17 08:42:54 +03:00
Sergey Kapralov
d1ade89ed4 TMap new methods are covered with tests 2016-08-25 17:12:03 +03:00
Sergey Kapralov
ec2a52900e TMap.compute fixed and tested 2016-08-25 11:13:08 +03:00
Alexey Andreev
559f7f7e42 Fix ByteArrayInputStream.read. Fix https://github.com/konsoletyper/teavm/issues/213 2016-08-18 21:34:18 +03:00
Alexey Andreev
a3f60996e2 Fix https://github.com/konsoletyper/teavm/issues/196 2016-07-28 22:23:39 +03:00
Alexey Andreev
3c93b78902 Implementing loop inversion 2016-05-09 18:13:00 +03:00
Alexey Andreev
f63ec25ed3 Move metaprogramming API implementation into separate module 2016-04-12 22:54:32 +03:00
Alexey Andreev
84d9899b3e Implement metaprogramming proxies 2016-04-06 23:02:15 +03:00
Alexey Andreev
b0e9f6f7a5 Add test case for lazy-based conditional that ignores its result 2016-03-02 23:28:13 +03:00
Alexey Andreev
5564b47b9f Add tests for lazy evaluation 2016-03-01 23:00:21 +03:00
Alexey Andreev
518e13cf07 Add several tests for metaprogramming 2016-02-29 23:07:20 +03:00
Alexey Andreev
3e562aa08a Simple metaprogramming test passes 2016-02-27 18:46:27 +03:00
Alexey Andreev
4819eee3ef Add support of TeaVMProperties annotation 2016-02-27 16:16:37 +03:00
Alexey Andreev
5576275998 Improving JUnit test runner 2016-02-26 23:48:04 +03:00
Alexey Andreev
d103306c3e Improving JUnit test runner 2016-02-23 21:40:51 +03:00
Alexey Andreev
2b3cba69bc Run JUnit tests via JUnit runner instead of Maven plugin 2016-02-23 18:46:32 +03:00
Alexey Andreev
1826e04951 Add class handling in dependency checker 2016-02-22 19:29:51 +03:00
Alexey Andreev
5dad013cc7 Migration to IDEA 2016-02-07 14:28:51 +03:00
Alexey Andreev
d718177fe0 Improve resource loading contributed by Jaroslav:
* Implement base64 decoder instead of atob, which is not supported 
  by IE9
* Avoid direct usage of window identifier to prevent global namespace
  from spoiling
* Make customizable approach to supply list of resources to write
  into JavaScript
2015-12-26 13:26:34 +03:00
Alexey Andreev
03538071c4 Prevent JSBody from inlining if its argumet get used more than once 2015-12-25 21:48:32 +03:00
Alexey Andreev
0369d100c6 Make JSBody report about wrong parameter/returning type/instance type to
avoid confusion like this:
https://github.com/konsoletyper/teavm/issues/164
2015-12-25 19:04:54 +03:00
Alexey Andreev
b61849ce80 Fix metaprogramming bugs 2015-12-10 23:05:17 +03:00
Alexey Andreev
7c4b4ebe77 Fix bug. Integrate precedence API into JSO 2015-10-11 18:03:46 +03:00
Alexey Andreev
6d23626867 Refactor precedence support 2015-10-11 17:30:28 +03:00
Alexey Andreev
0aa8f8bda7 Fix date format tests to not depend from time zone 2015-10-11 11:54:37 +03:00
Alexey Andreev
4082c6389a Fix LinkedList.push and .element methods 2015-10-08 19:59:38 +03:00
Alexey Andreev
3341df3668 Change directory structure 2015-10-04 11:49:20 +03:00