Commit Graph

525 Commits

Author SHA1 Message Date
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
9dd9fc3a8a classlib: improve performance of several String methods 2023-06-07 11:22:01 +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
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
Ivan Hetman
5dee60eec6
classlib: add CharSequence.isEmpty support (#683) 2023-04-04 13:03:38 +02:00
Alexey Andreev
246498763d classlib: fix more bugs in int-to-string conversion 2023-04-03 17:18:59 +02:00
Alexey Andreev
7442898898 classlib: fix checkstyle error 2023-04-03 10:14:45 +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
9201d16853
classlib: add missing constructor to PriorityQueue (#680) 2023-04-02 19:23:18 +02:00
Alexey Andreev
a70251fe83 classlib: add Integer/Long.compareUnsigned 2023-03-25 09:37:44 +01:00
Ivan Hetman
ffe3f34731
classlib: add BitSet stream API (#674) 2023-03-15 11:09:49 +01:00
Alexey Andreev
ca76ea45cf Get rid of Gson library 2023-03-10 21:19:30 +01:00
Ivan Hetman
07d56f1b0b
classlib: fix NPE when passing null to Arrays.toString (#667) 2023-02-28 11:46:59 +03:00
Alexey Andreev
672f7e32cd classlib: update tzdata, unicodedata and cldr 2023-02-24 19:44:38 +01:00
Alexey Andreev
7bde7d9642 classlib: fix invalid superclass of IllegalStateException 2023-02-17 20:49:57 +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
f09a427827 classlib: fix strange character in method names 2023-02-02 10:15:23 +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
Ivan Hetman
e12f99ab49
Crypto/UUID (#639)
JS: if possible, use crypto API to generate UUID
2022-12-07 14:33:27 +03:00
Alexey Andreev
68efdddddf JS: fix writing from JS to stdout 2022-11-16 16:41:29 +01:00
Alexey Andreev
70e37dfed9 Wasi: fix bugs in IO implementation 2022-11-12 21:52:29 +01:00
Alexey Andreev
c52b71292d Fix Math.pow implementation in JS 2022-11-11 09:15:52 +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
224810d0ab Wasm: support file IO and random generator in WASI 2022-11-08 19:44:56 +01:00
Alexey Andreev
3eb4b742ea Move FS support to teavm-core module 2022-11-07 09:53:46 +01:00
Alexey Andreev
1ca2c75e1c Wasm: initial WASI support 2022-11-06 11:53:52 +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
fcb13b24ad classlib: force class initialization in EnumSet implementation in order to get enum constants array filled 2022-09-13 16:03:37 +02:00
Alexey Andreev
38d3bf1c63 classlib: fix ByteBuffer.slice
Probably fixes #607
2022-08-16 10:06:08 +02:00
iamdudeman
2d73403b9a Moved next origin/bound implementations from TThreadLocalRandom to TRandom. 2022-08-16 10:34:47 +03:00
Alexey Andreev
10415b356e classlib: fix AbstractSet.hashCode 2022-08-12 16:47:59 +02:00
Timothy Solum
f7f99b3c9f
Add Random next origin, bound methods for float, double, int and long (#609) 2022-08-06 14:39:09 +03:00
Timothy Solum
89f41b9a35
Add setName method to Thread. (#608) 2022-08-06 14:37:21 +03:00
Alexey Andreev
3571917a2f Fix issue in record toString method generator 2022-08-06 14:07:53 +03:00
Ulugbek
b6837340e5 classlib: add TCollectors#collectingAndThen and TCollectors#toUnmodifiableList 2022-07-25 09:27:18 +03:00
Ulugbek
81ed5ef829 classlib: add an empty implementation of TAccessControlContext 2022-07-25 09:27:18 +03:00
Ulugbek
8a70c5ded0 classlib: add TAccessController(TPrivilegedExceptionAction<T>) T 2022-07-25 09:27:18 +03:00
Ulugbek
584adb457f classlib: add TSystem#getSecurityManager()TSecurityManager and an empty implementation of TSecurityManager 2022-07-25 09:27:18 +03:00
Ulugbek
c8eb5ec3be classlib: add TPrivilegedActionException 2022-07-25 09:27:18 +03:00
Ulugbek
8776504e18 classlib: add PrivilegedExceptionAction 2022-07-25 09:27:18 +03:00
Alexey Andreev
c42b9fac28 Prevent usage of javax.xml package of running JVM 2022-07-13 13:13:22 +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
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
eab7ef0a2e Bump Scala version in Scala example. Add hack for Scala runtime. 2022-05-08 18:43:49 +03:00
Alexey Andreev
e625409562 classlib: add ResourceBundle.getBaseBundleName 2022-05-08 18:07:40 +03:00
Alexey Andreev
500d72d596 classlib: add methods to java.util.Objects 2022-05-08 17:42:26 +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
1c04cd2ba6 Fix typo 2022-02-01 08:47:27 +03:00
Alexey Andreev
3728645665 Add Kotlin hack to avoid using regexp in
String.toFloatOrNull and String.toDoubleOrNull
2022-02-01 08:46:35 +03:00
Alexey Andreev
e4a408d26e classlib: throw exception from URL constructor when invalid ':' provided 2022-01-12 16:02:46 +03:00
Alexey Andreev
bdd865d07f Update CLDR and tzdata 2021-10-14 16:17:52 +03:00
Alexey Andreev
6d11abf4b6 Implement missing methods in Boolean, Byte and Short classes 2021-10-14 15:25:00 +03:00
Alexey Andreev
73bd139b7e C: implement ServiceLoader 2021-04-14 23:02:09 +03:00
Alexey Andreev
aa8a91d030 classlib: implement missing charsets 2021-03-30 20:03:25 +03:00
Alexey Andreev
c4c1408160 wasm: fix running tests, add in-browser test runners 2021-03-20 19:52:45 +03:00
Alexey Andreev
5d9d64303e Fix tzdata parser 2021-03-18 13:03:55 +03:00
Alexey Andreev
4fe012740d Update tzdata 2021-03-18 12:00:27 +03:00
Alexey Andreev
0cff9e104c Fix checkstyle warnings after migration to the new version 2021-03-18 11:51:20 +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
8fea07b772 java.time: remove deviation config reader for HijrahDate 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
5d630ae551 java.time: get rid of serialization code 2021-03-18 00:13:49 +03:00
Alexey Andreev
051c3bb227 java.time: remove jdk7 hacks 2021-03-18 00:13:09 +03:00
Alexey Andreev
3513bacc2e java.time: remove usages of concurrent classes 2021-03-18 00:12:42 +03:00
Alexey Andreev
f12d33a032 java.time: add files from threeten 2021-03-18 00:12:42 +03:00
Alexey Andreev
0064d399be Fix bug in Arrays.binarySearch 2021-03-17 10:15:25 +03:00
Alexey Andreev
a3eaa1fc18 Add EnumSet.range 2021-03-17 10:14:32 +03:00
Alexey Andreev
26db1acc96 Fix how weeks are represented in DateFormatSymbols
Add missing methods to DateFormatSymbols
2021-03-17 10:13:38 +03:00
Alexey Andreev
3cfe4644cd Stdlib: save tzdb as set of rules instead of set of transitions
Generate transitions at run time
2021-03-16 21:47:05 +03:00
Alexey Andreev
9a83bfe4e9 Fix new Kotlin hacks 2021-03-12 19:51:58 +03:00
Alexey Andreev
4f9346e4e3 Update Kotlin hacks 2021-03-12 18:39:23 +03:00
Alexey Andreev
67045b068e Fix infinite loop in Deflater 2021-03-09 16:09:09 +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
Ivan Hetman
6ef841a560
Fix generic collection toString (#559) 2021-03-06 19:28:06 +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
Alexey Andreev
0eca9d95e1 Fix missing virtual call detector 2021-02-26 11:52:10 +03:00
Ivan Hetman
8122095193
Fix circular reference support in toString of collection classes (#552) 2021-01-11 21:32:44 +03:00
Ivan Hetman
98f5c5da73
Add Math.floorMod and Math.floorDiv (#544) 2020-11-23 11:49:33 +03:00
Ivan Hetman
b718e7852f
Fix behaviour of collections created with Set.of and Map.of (#534) 2020-10-26 13:22:08 +03:00
Ivan Hetman
605628d6df
Fix issues in Random and ThreadLocalRandom (#536) 2020-10-26 13:09:50 +03:00
Ivan Hetman
baeb2a28a7
Add missing Optional methods and fix bug in equals (#533) 2020-10-26 13:04:26 +03:00
Ivan Hetman
71140135fa
Add missing toArray method from JDK 11 (#531) 2020-10-26 13:02:13 +03:00
Ivan Hetman
e95092fd43
Add static Map.Entry methods (#530) 2020-10-12 09:39:16 +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
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
Ivan Hetman
3aaefdf23a
Hashmaps foreach (#513) 2020-07-06 11:29:56 +03:00
Ihromant
cf658cf57d Simplification 2020-06-13 13:56:14 +03:00
Ihromant
0c15600700 Added missing methods to Optional and ArrayList 2020-06-13 13:56:14 +03:00
hsestupin
0639acca21 add static hashCode(i) method like in java.lang.Integer 2020-06-02 18:53:14 +03:00
Jörg Hohwiller
e610c13e69 add int constructor for Java9+ compatibility 2020-06-01 11:51:58 +03:00
Vladislav Gordievskiy
6892c4f0ca
Fix of exporting a wasm function for scala objects (#498). Fix #497
Co-authored-by: VGORDIEVSKII <vgordievskii@luxoft.com>
2020-05-18 10:08:28 +03:00
Alexey Andreev
862e9b846f Exclude all classes from underlying JDK 2020-05-14 16:59:21 +03:00
Alexey Andreev
9f823ee450 Minor improvements to time zone support 2020-04-30 15:49:37 +03:00
Alexey Andreev
c7c47f63ee Implement Math.nextDown, reimplement ulp and nextUp using bit operations 2020-04-30 14:19:50 +03:00
Alexey Andreev
d50e048ea4 Add Character.toTitleCase. More efficient implementation for Character.digit 2020-04-14 18:31:19 +03:00
Alexey Andreev
0c8d93acbc Add DecimalFormat.setDecimalFormatSymbols 2020-04-14 16:40:45 +03:00
Alexey Andreev
1681aa5834 Implement some of the missing Timer methods 2020-04-14 16:10:17 +03:00
Alexey Andreev
ddf64870da Implement some of the missing methods related to streams 2020-04-14 15:06:58 +03:00
Alexey Andreev
2bc9329cf8 Implement some of the missing methods in ThreadLocalRandom 2020-04-14 14:03:15 +03:00
Alexey Andreev
061bb859d5 Implement ThreadLocalRandom, implement some of missing Random methods 2020-04-14 12:07:56 +03:00
Alexey Andreev
a074906ea7 Implement AtomicReference 2020-04-14 09:25:20 +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
b5237fb20e
Add Flow API for reactive programming (#486) 2020-03-13 11:28:36 +03:00
Jörg Hohwiller
c2d27fdb1a
Add support for String.isBlank() (#482) 2020-03-10 11:28:54 +03:00
Jörg Hohwiller
a45d1e0d07
Support for Thread.UncaughtExceptionHandler (#483) 2020-03-10 11:28:02 +03:00
Alexey Andreev
c1891a1908 Further work on decreasing generated code size 2020-03-03 12:17:39 +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
a30702aa70 Add missing import 2020-03-02 11:22:21 +03:00
Kris Scheibe
160fa2b1fa
Java 9 collection factories (#478)
Adds the collection factories List.of(...), Set.of(...), Map.of(...) and Map.ofEntries(...) which were introduced to the JDK in Java 9
2020-03-02 11:20:43 +03:00
Jörg Hohwiller
60d0ad902c added support for java.lang.reflect.Type 2020-03-02 11:15:24 +03:00
Dennis Bijlsma
cbbf7b5298 Add support for URL encode/decode methods added in Java 10. 2020-02-25 11:41:34 +03:00
Colorize
a97bda3c1a
Support Collection.removeIf (#474) 2020-02-17 11:23:24 +03:00
Alexey Andreev
fecdd6613a Use tab character to indent stack traces 2020-02-14 10:39:50 +03:00
Alexey Andreev
f1d83ad9d3 Optimize empty collections 2020-02-10 17:11:50 +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
Colorize
c30e2d3c24 Collection spliterator that does not depend on how the list implementation implements spliterator() 2020-01-27 15:35: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
Colorize
dd255f9da0 Extend the class library with the part of Spliterators that is used by Google Guava (#443)
Add class library support for the part of Spliterators that is used by Google Guava.
2019-12-09 11:29:16 +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
4b3a8e757b Reduce size of a Kotlin program that uses lightweight reflection 2019-12-03 20:57:31 +03:00
Alexey Andreev
fed75ef0cf Reduce size of minimal application 2019-12-03 20:56:53 +03:00