Commit Graph

448 Commits

Author SHA1 Message Date
Ivan Hetman
8277671376
classlib: make difference between raw and normal floating points to int conversion 2023-09-20 23:51:55 +03:00
Alexey Andreev
3b6b31ff8f Implement more precise comparison logic 2023-09-20 21:30:56 +02:00
Alexey Andreev
866fdb8af8 Update tests after testing with Java 21 2023-09-20 20:26:34 +02:00
Ivan Hetman
154bf7abd9
classlib: more fixes to Math.nextUp/nextDown (#746) 2023-09-19 13:21:32 +02:00
Alexey Andreev
617ce67871 classlib: follow-up for math fixes 2023-09-19 11:34:51 +02:00
Alexey Andreev
409292159e C: fix running tests 2023-09-19 11:34:50 +02:00
Ivan Hetman
93d1a5e492
classlib: float/double equals fixes (#741) 2023-09-19 11:34:29 +02:00
Ivan Hetman
0997a65596
classlib: math fixes (#742) 2023-09-19 09:52:10 +02:00
Ivan Hetman
4a081db1c3
classlib: update RandomGenerator implementation (#743) 2023-09-19 09:39:57 +02:00
Alexey Andreev
e2ee9f1dbb classlib: improve precision of float/double parsing and formatting 2023-09-13 19:40:00 +02:00
Alexey Andreev
83ace9bf3e classlib: fix ByteBuffer.putLong implementation
Fix #737
2023-09-05 09:26:22 +02:00
Alexey Andreev
d655f01d14 Fix issue in build script for tests module 2023-08-28 14:11:01 +02:00
Alexey Andreev
f64a715418 Ignore failing test 2023-08-22 20:00:13 +02:00
Alexey Andreev
dec1bf02e2 Ignore failing test 2023-08-22 19:16:41 +02:00
Alexey Andreev
d7cae4af55 Fix running tests in wasm 2023-08-22 17:02:33 +02:00
Alexey Andreev
9ecb3ad817 classlib: support ReferenceQueue.remove 2023-08-21 20:13:06 +02:00
Alexey Andreev
a3f0ec52d4 classlib: support putFloat/getFloat/putDouble/getDouble in ByteBuffer 2023-08-17 11:59:48 +02:00
Alexey Andreev
22864c88f2 js: support WeakReference 2023-08-10 20:47:01 +02:00
Alexey Andreev
cd38447057 classlib: make Reader class implement Readable interface 2023-08-10 19:24:49 +02:00
Alexey Andreev
b9f5e9be1c JS: optimize case when JS method returns java.lang.Object and then treated as JS object 2023-08-04 20:40:57 +02:00
Alexey Andreev
334e2829b3 JS: supports module imports in JSBody 2023-08-03 15:42:15 +02:00
Alexey Andreev
a1ed797d73 JS: allow passing Object to JS methods 2023-07-31 20:42:09 +02:00
Alexey Andreev
03cd5907eb Fix minor typo in test 2023-07-31 10:10:21 +02:00
Alexey Andreev
c4c6b029e3 JS: add support for exporting Java methods as JS properties 2023-07-30 20:48:43 +02:00
Alexey Andreev
948244cbf4 JS: marshall JS object to Java in a wrapper 2023-07-29 18:54:23 +02:00
Alexey Andreev
b11ad994fd classlib: support more methods in InputStream 2023-07-19 19:22:17 +02:00
Ivan Hetman
61ef007672
classlib: add Stream dropWhile and takeWhile 2023-07-05 19:44:10 +02:00
Ivan Hetman
ac2e5d6fa0
classlib: added Stream iterate method (#721) 2023-07-05 19:40:08 +02:00
Alexey Andreev
eed42e33b0 classlib: implement ConcurrentHashMap 2023-07-05 19:38:37 +02:00
Ivan Hetman
8e676ff16c
classlib: add mapMulti to Stream (#720) 2023-07-03 20:35:36 +03:00
Ivan Hetman
23a6393267
classlib: collectors partitioning by (#716) 2023-06-21 15:35:37 +02:00
Kirill Prazdnikov
81124a084b
classlib: fix ByteBuffer,CharBuffer,*Buffer IOOB exception throw with zero length arrays in arguments
fix #713
2023-06-21 15:30:30 +02:00
Jasper Siepkes
efe15e323b
classlib: add not method to Predicate interface (#709)
With this addition the Predicate interface is 100% complete for Java 17.
2023-06-07 12:57:22 +02:00
Alexey Andreev
cb67595f5b Fix checkstyle errors 2023-06-07 10:51:47 +02:00
Ivan Hetman
8b9d39dbb8
classlib: additional collectors for streams 2023-06-07 10:18:37 +02:00
Jasper Siepkes
a409763f76
classlib: add the copyOf method to List, Set and Map interfaces (#708)
The copyOf static method was added in Java 10 to the List, Set and Map interfaces. Since no additions were made since Java 10 this commit brings the List, Set and Map interfaces to 100% completion for the latest LTS (Java 17) at the time of writing.
2023-06-07 10:13:20 +02:00
Ivan Hetman
d209a5f02e
classlib: add Collectors.reducing (#704) 2023-06-06 11:08:15 +02:00
Jasper Siepkes
7104edb592
classlib: add stripLeading and stripTrailing methods to String class (#707)
The stripLeading and stripTrailing methods were added in Java 11 to the String class.

Based on the implementation of the existing strip method in TeaVM this commit adds the stripLeading() and stripTrailing() methods (and tests) to the String class in the class library.
2023-06-06 10:09:25 +02:00
Ivan Hetman
ac8cb377c3
classlib: improve and fix Integer/Long long bit operations 2023-05-16 11:08:05 +02:00
Alexey Andreev
73d2379185 classlib: add Integer/Long parse subsequence 2023-05-16 10:37:38 +02:00
Alexey Andreev
81f78fab01 classlib: add String.strip 2023-05-16 10:12:36 +02:00
Ivan Hetman
697ad73762
classlib: add Collectors grouping by 2023-05-16 09:57:13 +02:00
Alexey Andreev
c39efdc6d7 classlib: fix issue with integer unsigned right shift 2023-05-16 09:56:24 +02:00
Alexey Andreev
9f349385ec classlib: fix issue in BitSet.set 2023-04-26 16:25:25 +02:00
Ivan Hetman
25890adcf8
Add record class name to toString implementation (#691) 2023-04-21 12:57:51 +02:00
Ivan Hetman
fcb750675c
Fix NPE in record.equals(null) (#688) 2023-04-11 09:30:21 +02:00
Alexey Andreev
246498763d classlib: fix more bugs in int-to-string conversion 2023-04-03 17:18:59 +02:00
Ivan Hetman
a1074918cf
classlib: fix issues related to ArrayList, Arrays and Comparator 2023-04-03 10:07:28 +02:00
Alexey Andreev
c5572bc573 classlib: fix stringifying min integer and min long. Refactor tests 2023-04-03 09:39:31 +02:00
Ivan Hetman
ffe3f34731
classlib: add BitSet stream API (#674) 2023-03-15 11:09:49 +01:00
Christoph Aschwanden
4fa35e8688
classlib: fix issue with Date.UTC year
Co-authored-by: noblemaster <contact@noblemaster.com>
2023-02-12 10:52:36 +03:00
Alexey Andreev
8800e7153b Don't use Gradle toolchains to specify Java version 2023-02-01 18:41:17 +01:00
Alexey Andreev
5c146c6de0 Fix issues in recently merged PR 2023-01-26 09:17:08 +01:00
Ivan Hetman
ada086a864
Base64 implementation (#650)
classlib: add Base64 support
2023-01-26 08:40:03 +01:00
Alexey Andreev
8014c038c0 Migrate to gradle 2023-01-23 17:16:07 +01:00
Alexey Andreev
64ae44ee01 JS: store global object in a variable to avoid name clashes between generated declarations (in minified mode) and global declarations 2022-11-17 12:02:46 +01:00
Alexey Andreev
70e37dfed9 Wasi: fix bugs in IO implementation 2022-11-12 21:52:29 +01:00
Alexey Andreev
8285799b2b Fix checkstyle warning 2022-11-11 11:09:19 +01:00
Alexey Andreev
1fb70b0903 Fix private method call resolution in Java 11 2022-11-11 10:56:20 +01:00
Alexey Andreev
485f8ac902 Wasi: fix file system issues, add support for Math.pow 2022-11-10 17:08:58 +01:00
Alexey Andreev
292aa21aef classlib: use built-in unicode table to implement tolower/toupper methods.
This makes it possible to use TeaVM in environments where these functions aren't natively available.
For example, WASI
2022-11-09 12:08:17 +01:00
Alexey Andreev
d5cdd740f5 Fix incorrect behaviour of Class.getInterfaces
fix #635
2022-11-04 16:15:30 +01:00
Alexey Andreev
a40c955d39 classlib: fix StringBuilder.indexOf
Fix #615
2022-10-05 10:16:54 +02:00
Alexey Andreev
2b671b8088 Fix issue with precedence of % operator 2022-08-25 12:48:59 +02:00
Alexey Andreev
bab6c8bddf Fix checkstyle error 2022-08-16 10:15:48 +02:00
Alexey Andreev
38d3bf1c63 classlib: fix ByteBuffer.slice
Probably fixes #607
2022-08-16 10:06:08 +02:00
Alexey Andreev
10415b356e classlib: fix AbstractSet.hashCode 2022-08-12 16:47:59 +02:00
Alexey Andreev
3571917a2f Fix issue in record toString method generator 2022-08-06 14:07:53 +03:00
Alexey Andreev
7fe79a1768 Fix abstract classes are considered by dependency analysis when constructed by reflection
Also fix #592
2022-07-13 12:48:34 +03:00
Alexey Andreev
f0d805fda8 Support Java 17 records 2022-07-10 20:40:24 +03:00
Alexey Andreev
29fd95be95 Fix bugs related to MULTINEWARRAY in various backends 2022-07-10 18:16:16 +03:00
Alexey Andreev
87324a3569 Add Stream.toList 2022-06-23 10:42:43 +03:00
Ulugbek Abdullaev
eba1d1e574
stdlib: implement Stream.takeWhile (#588)
Co-authored-by: Ulugbek <ulugbek.abdullaev@jetbrains.com>
2022-06-10 13:41:16 +03:00
Alexey Andreev
e625409562 classlib: add ResourceBundle.getBaseBundleName 2022-05-08 18:07:40 +03:00
Alexey Andreev
b52729a7c2 Fix checkstyle error 2022-04-04 15:23:04 +03:00
Alexey Andreev
4b5b09164f Remove outdated test 2022-03-25 15:52:39 +03:00
Alexey Andreev
0bcd3101ad Remove unused threeten code 2022-03-25 13:21:21 +03:00
Alexey Andreev
393ab3b09e Classlib: fix bug in regexp implementation 2022-02-25 20:34:44 +03:00
Alexey Andreev
e4a408d26e classlib: throw exception from URL constructor when invalid ':' provided 2022-01-12 16:02:46 +03:00
Alexey Andreev
6d11abf4b6 Implement missing methods in Boolean, Byte and Short classes 2021-10-14 15:25:00 +03:00
Alexey Andreev
5dad6d7654 Update surefire configuration for parallel execution 2021-10-14 11:32:00 +03:00
Alexey Andreev
7058a195b7 JS: fix class of object created by multianewarray instruction 2021-04-01 12:05:18 +03:00
Alexey Andreev
aa8a91d030 classlib: implement missing charsets 2021-03-30 20:03:25 +03:00
Alexey Andreev
75d06bebbf JS: fix bug in compilation of monitorenter instruction 2021-03-18 14:20:29 +03:00
JohannesS
f97484365c JS: fix overrides with default methods 2021-03-18 12:26:33 +03:00
Alexey Andreev
0cff9e104c Fix checkstyle warnings after migration to the new version 2021-03-18 11:51:20 +03:00
Alexey Andreev
81bfe3f6e2 Improve pom.xml configuration 2021-03-18 11:16:41 +03:00
Alexey Andreev
e5249ecb6a java.time: ignore or remove tests that don't pass due to weird or unclear reasons 2021-03-18 00:13:52 +03:00
Alexey Andreev
44bacd0b02 java.time: update threeten code and tests WRT JDK semantics 2021-03-18 00:13:52 +03:00
Alexey Andreev
e9d0ed5c67 java.time: reduce generated code size 2021-03-18 00:13:52 +03:00
Alexey Andreev
1b31d6da9a java.time: format code according to checkstyle rules 2021-03-18 00:13:52 +03:00
Alexey Andreev
2924af963d java.time: add support for time zones 2021-03-18 00:13:52 +03:00
Alexey Andreev
81878548b4 java.time: running threeten tests 2021-03-18 00:13:51 +03:00
Alexey Andreev
91c00da57b java.time: add tests from threeten 2021-03-18 00:13:51 +03:00
Alexey Andreev
67045b068e Fix infinite loop in Deflater 2021-03-09 16:09:09 +03:00
Alexey Andreev
707d11d9d8 JS: remove old node-based test runner, use new JUnit browser runner in travis 2021-03-09 11:04:21 +03:00
Alexey Andreev
bc9ad315ff Fix time-based test for worse timer resolution 2021-03-09 11:00:24 +03:00
Alexey Andreev
1eab7e41b1 Fix tests. Add headless firefox test runner 2021-03-08 12:00:13 +03:00
Alexey Andreev
61db54e848 Add JS test runner that runs tests right in the browser 2021-03-07 15:56:48 +03:00
Alexey Andreev
8b4f401bcb Fix TreeMap iterator
Fix #519
2021-03-06 21:08:51 +03:00
Alexey Andreev
ddf194af31 JS: reset file size to 0 when creating FileOutputStream
Fix #558
2021-03-06 19:38:49 +03:00
Alexey Andreev
0ade0313ce Fix issue in DecimalFormat rounding.
When value near 1 (0.999...) is rounded to 1, exponent should be increased.
This fixes #557. Also reuse exponent/mantissa/sign analyzer
written for StringBuilder.append(double)
2021-02-27 22:07:00 +03:00
Ivan Hetman
8122095193
Fix circular reference support in toString of collection classes (#552) 2021-01-11 21:32:44 +03:00
Alexey Andreev
55ba9be16a Proper implementation for List.of, Set.of, Map.of/ofEntries 2020-10-07 16:32:34 +03:00
Alexey Andreev
74cc1d8d7d Fix Float.parse and Double.parse for some values 2020-10-07 16:32:34 +03:00
Ivan Hetman
1785d6ad9e
Collectors.toMap (#515)
Implement Collectors.toMap
2020-10-07 12:21:55 +03:00
Alexey Andreev
306c78459c JS: use symbol instead of string property to represent Java exception wrapper 2020-09-09 19:28:32 +03:00
Ivan Hetman
fcc1fb7690
Fix Stream.min and Stream.max (#520) 2020-09-08 19:02:45 +03:00
Alexey Andreev
d97dce4650 Fix concatenation with byte and short in JVM 9+
Fix #522
2020-09-08 15:03:19 +03:00
Alexey Andreev
5ee332c771 Fix crash when lambda is not used. Fix #500 2020-06-01 12:19:37 +03:00
Alexey Andreev
ecc4be2d25 Fix class initialization optimization 2020-05-19 13:27:26 +03:00
Alexey Andreev
c7c47f63ee Implement Math.nextDown, reimplement ulp and nextUp using bit operations 2020-04-30 14:19:50 +03:00
Adam J Ryan
e0fc5d834b Add ability to fine tune transpiler class substitutions. 2020-04-01 19:32:34 +03:00
Jörg Hohwiller
c2d27fdb1a
Add support for String.isBlank() (#482) 2020-03-10 11:28:54 +03:00
Alexey Andreev
b71a2b6c65 Compile tests with Java version 11 2020-03-02 17:19:15 +03:00
Alexey Andreev
ea1134d66b Trying to reduce number of classes for which name is provided in their metadata 2020-03-02 16:36:09 +03:00
Alexey Andreev
7f02ccdd87 Mark some tests with @WholeClassCompilation 2020-02-27 18:43:27 +03:00
Alexey Andreev
95426e2159 Add per-class compilation when running tests (requires @WholeClassCompilation annotation) 2020-02-27 18:43:08 +03:00
Colorize
a97bda3c1a
Support Collection.removeIf (#474) 2020-02-17 11:23:24 +03:00
Alexey Andreev
884fcfe538 Return accidentally removed annotation 2020-02-04 18:02:48 +03:00
Alexey Andreev
fa198244dd Fix bug in ArrayDeque implementation 2020-02-04 17:36:46 +03:00
Alexey Andreev
afa4e15846 Trying to fix #460
Actually, could not reproduce this, added some tests (they passed on initial version).
2020-01-27 16:03:51 +03:00
Alexey Andreev
2d2ef642a3 Fix virtual method resolution in code server mode 2020-01-23 19:03:47 +03:00
Alexey Andreev
72275a0877 Fix passing reflection tests with fast global analysis enabled 2020-01-23 18:58:18 +03:00
adamjryan
34aed76714 Add write replace method to lambdas that implement java.io.Serializable (#453)
Add write replace method to lambdas that implement java.io.Serializable

* Peripheral java library classes added as part of the toString method
of SerializedLambda to align functionality with the standard library.
* Test added that checks the SerializedLambda can be returned and that
it is populated with the correct values including it's toString method.
2020-01-15 11:11:48 +03:00
Adam J Ryan
42cd4c7cb4 Missing (un)boxing for long values in reflection method value marshalling. 2020-01-12 11:01:22 +03:00
Alexey Andreev
e064457fe7 Fix issues in Spliterators code 2019-12-09 11:53:40 +03:00
Alexey Andreev
477d8b2d69 Fix Stream.collect. Add some of the missing functional interfaces 2019-12-04 15:50:10 +03:00
Alexey Andreev
780a3a8cca Fix parsing dates without delimiters using SimpleDateFormat 2019-11-18 13:58:32 +03:00
Alexey Andreev
575ec4a415 Merge lambda tests 2019-11-18 12:37:22 +03:00
Alexey Andreev
d71aec7c40 Fix bug when boxing primitive value inside lambda to supertype (e.g. java.lang.Object) of corresponding wrapper type 2019-11-18 12:34:55 +03:00
Alexey Andreev
b090c2f47d Refactor stream implementation and tests, fix some bugs 2019-11-08 19:30:21 +03:00
Alexander Gusakov
74ee848e0c fix String#join, rm producing extra zero characters 2019-11-08 12:36:08 +03:00
Alexey Andreev
fb78377db8 Fix various issues reported by PVS Studio and LGTM 2019-10-31 14:36:37 +03:00
Alexey Andreev
8a91605c56 Add support for Class.getCanonicalName/getEnclosingClass 2019-10-18 15:10:16 +03:00
Artem Godin
e46f204b4e #431: Add support for char annotation methods
Fixes #431
2019-10-14 14:06:21 +03:00
Alexey Andreev
bffb50f0cd Implement array bounds checking in JavaScript 2019-10-07 16:55:30 +03:00
Alexey Andreev
a2a9dbcbe3 Improve performance of inliner in FULL optimization level
The former implementation suffered from class inference.
The reason was in many nodes having too many possible classes in them.
The new implementation does not handle full set of classes in each node.
Instead, it introduces concept of 'overflow', i.e. node having
more types than the given upper limit.
These nodes behave as if there were all possible classes in them,
which allows to apply certain optimization for these nodes and
omit heavy computations of large type sets.
2019-09-27 16:36:55 +03:00
Alexey Andreev
f0b6cc2f30 Update version to 0.7.0 2019-09-24 16:26:14 +03:00
Alexey Andreev
0a5ed2b4a5 Travis: add scripts to test if headless Chrome runs properly 2019-08-21 12:48:10 +03:00
Alexey Andreev
1d19562c49 Fix Double.parseDouble and Float.parseFloat for some cases of illegal input 2019-08-12 16:38:52 +03:00
Alexey Andreev
ec9fe5471d Fix Long.bitCount. Fix #413 2019-08-07 18:48:06 +03:00
Alexey Andreev
e16ba8a6ca C: don't treat primitives as subtypes of Object. Fix #411 2019-08-07 13:45:40 +03:00
Alexey Andreev
a5ba6f247e Fix register allocator 2019-07-30 11:23:52 +03:00
Alexey Andreev
2d3d92f9a8 Update versions of Unicode data, CLDR, tzdata, asm and Rhino 2019-07-27 22:10:56 +03:00
Alexey Andreev
90e00f7eb4 C: add option to support exceptions via setjmp/longjmp 2019-07-22 16:53:47 +03:00
Alexey Andreev
6e71fa7e87 C: implement file IO in Windows 2019-06-14 15:32:20 +03:00
Alexey Andreev
91de1f6ca7 C: implement native file system 2019-05-31 15:05:23 +03:00
Alexey Andreev
2ba4ce0977 Fix inability to synchronize using array object
See #393
2019-05-29 22:49:13 +03:00
Alexey Andreev
80a12a164d Remove tests that don't pass in OpenJDK 12 2019-05-29 21:38:11 +03:00