Commit Graph

480 Commits

Author SHA1 Message Date
Alexey Andreev
a6fb67817c jso: improve support of instanceof and cast against JS wrapper types
Fix #808
2024-04-04 21:18:54 +02:00
Alexey Andreev
e069bc3a44 classlib: implement WeakHashMap
Fix #799
2024-04-03 19:11:48 +02:00
Alexey Andreev
f668e27daa jso: properly support JSWrapper generation when java.lang.Object method is called with receiver type of JSObject interface; add optimization for JSObject.toString call.
Fix #898
2024-04-01 17:52:28 +02:00
Alexey Andreev
403da28830 classlib: add PrintStream.format 2024-03-21 19:14:45 +01:00
Alexey Andreev
582fcf904c jso: implement vararg support for method calls 2024-03-12 18:56:19 +01:00
Alexey Andreev
e4452152b7 jso: improve JS class import to Java 2024-02-27 20:16:10 +01:00
Alexey Andreev
c1b3deedff Support @Inherited annotation on annotations
Fix #883
2024-02-19 20:14:00 +01:00
Alexey Andreev
8db406c603 jso: implement exporting Java methods to JS
Fix #785
2024-02-15 21:00:10 +01:00
Bernd Busse
83e3306071 classlib: extend BigInteger implementation with xValueExact() and sqrt() 2024-01-24 21:56:12 +03:00
Bernd Busse
6a398c9b8d classlib: properly duplicate inner map when cloning TreeMap 2024-01-24 20:46:26 +03:00
Alexey Andreev
4049bc529e js: introduce setting to choose module type 2023-12-23 16:32:55 +01:00
J. Fronny
953c475b46
classlib: implement float support for String.format (#873) 2023-12-07 19:16:38 +01:00
Alexey Andreev
bb837bd020 classlib: replace usage of Math.log10 with custom implementation of int log10 algorithm
This fixes BigDecimal support on WASI, which does not support log10 at the moment
2023-12-07 19:14:55 +01:00
Alexey Andreev
a9af6e4f33 JSO: fix wrapping undefined value 2023-12-07 10:02:30 +01:00
J. Fronny
9093ad2f8a
classlib: implement String.chars() (#872) 2023-12-05 13:26:39 +01:00
Alexey Andreev
9757213379 JS: fix unwrapping JS objects implemented in Java 2023-11-26 21:57:19 +01:00
Alexey Andreev
a1355bb2f7 classlib: refactor LinkedHashMap
I found regression somewhere in LinkedHashMap, when certain operations cause cycle in entry list. Since updated logic was totally unclear to me, I rewrote it from scratch. Also, reverted mechanism to remove entries NOT by keys and used it where necessary to improve performance.
2023-11-23 21:19:28 +01:00
Alexey Andreev
be53236d23 JS: fix wrapping keys for native indexers 2023-11-20 20:33:47 +01:00
Alexey Andreev
7108dfbac7 classlib: fix Math exact operations in C and WebAssembly backends 2023-11-19 20:12:58 +01:00
Alexey Andreev
318d4bff93 Fix boxing/unboxing arguments and return values in method references 2023-11-19 20:12:58 +01:00
Jonathan Coates
4fc43a5597
classlib: fix toLowerCase/toUpperCase on Locale.ROOT (#862) 2023-11-19 21:45:32 +03:00
Alexey Andreev
fa5fa3df47 Suppress test failing in C 2023-11-19 18:40:48 +01:00
Alexey Andreev
0f84012008 Suppress tests failing in WebAssembly 2023-11-19 18:34:22 +01:00
Alexey Andreev
6e46ae8eec classlib: get rid of Math polyfill in java.time implementation 2023-11-19 18:32:36 +01:00
Ivan Hetman
cd14ece14c
classlib: add Math methods for no-overflow addition/multiplication (#859)
Co-authored-by: Jörg Hohwiller <hohwille@users.sourceforge.net>
2023-11-19 20:14:23 +03:00
kenji yoshida
f5f8135a42
Add GitHub Actions CI (#854) 2023-11-14 22:03:43 +03:00
Ivan Hetman
5336fc9b3c
classlib: implement String.to__Case with locale parameter in JS BE (#766) 2023-11-14 16:57:09 +01:00
Alexey Andreev
f6741b49d6 WASI: update default test runner parameter for newer wasmtime versions 2023-11-09 10:58:34 +01:00
Alexey Andreev
547642503e Suppress few tests for WebAssembly and C 2023-11-09 10:57:57 +01:00
Alexey Andreev
083ecbdad2 wasm/c: add support for class flags 2023-11-08 21:02:31 +01:00
Alexey Andreev
726702dd7f wasm: fix programmatic initialization of a class that is statically initialized by optimizer 2023-11-08 19:59:24 +01:00
Jonathan Coates
9469e4c0b4
Widen byte/short to ints in ObjectMethods (#853) 2023-11-08 10:28:13 +01:00
Alexey Andreev
5b3c462ab8 c: suppress failing test 2023-11-08 10:04:15 +01:00
Alexey Andreev
6baccbf2bd Use Gradle toolchains to run tests 2023-11-08 09:28:07 +01:00
Ivan Hetman
bd80c2dfce
classlib: fix parse and other issues in Long and Integer 2023-11-07 20:02:58 +01:00
Alexey Andreev
23ad999bbd JS: get rid of IOException in SourceWriter and related classes 2023-10-31 20:09:55 +01:00
Ivan Hetman
b006cbb206
classlib: various fixes in Character class (#831)
* fix bug in `codePointBefore`
* validate arguments in some methods
* support negative `codePointOffset` in `offsetByCodePoints`
* add tests
2023-10-27 17:25:32 +02:00
Ivan Hetman
fc49094d96
classlib: fix support of positive/negative zeros in Float/Double.toHexString (#830) 2023-10-27 16:52:33 +02:00
Alexey Andreev
1061ad76b6 classlib: suppress test that fails in WebAssembly 2023-10-27 08:08:53 +02:00
Alexey Andreev
c5768e07bc classlib: fix issue in InputStreamReader 2023-10-26 11:50:27 +02:00
Ivan Hetman
3ac0078e2a
classlib: add cache to Byte and Short valueOf; fix Byte.parseByte (#832) 2023-10-26 09:09:08 +03:00
Ivan Hetman
4b6c4bd3d3
classlib: fix issues in EnumSet and EnumMap (#834) 2023-10-26 09:04:26 +03:00
Alexey Andreev
02b3c92912 JS: use native string to represent internals of java.lang.String 2023-10-21 19:30:16 +02:00
Ivan Hetman
9242aeb750
classlib: Arrays corner cases fixes (#825) 2023-10-16 20:40:50 +03:00
Ivan Hetman
658ef711ab
classlib: additional stream collectors (#822) 2023-10-16 14:09:56 +02:00
Ivan Hetman
1900852cd8
classlib: fix for positioned addAll in sequential lists (#824) 2023-10-16 13:41:15 +02:00
Alexey Andreev
5bc398415d classlib: implement Atomic*FieldUpdater classes
Fix #750
2023-10-15 19:51:44 +02:00
Ivan Hetman
82cd9d9cdf
classlib: fix various issues in TreeMap (#813) 2023-10-13 22:01:40 +03:00
Ivan Hetman
6faecc91d2
classlib: more overrides for TreeMap keySet (#818) 2023-10-13 20:57:32 +03:00
Ludovic Dubost
4a81615749 class: fix LinkedList.offer method adding item incorrectly at the beginning
Fix #772
2023-10-13 19:52:47 +02:00
Alexey Andreev
772dd9eded JS: fix returning JSO objects from Async methods
Fix #805
2023-10-12 21:13:09 +02:00
Ivan Hetman
bcc2c0ff35
classlib: implement last part of JEP-431 (#810)
TreeMap, TreeSet
2023-10-09 22:26:42 +03:00
Alexey Andreev
05454380d9 classlib: fix issue in TreeMap iterator remove method 2023-10-09 20:35:54 +02:00
Alexey Andreev
3971563cd8 Don't keep default test settings in gradle.properties 2023-10-08 20:20:10 +02:00
Alexey Andreev
f6a16c1b94 Suppress failing WASI tests, enable running WASI tests by default 2023-10-08 19:23:34 +02:00
Ivan Hetman
d47fea0b55
classlib: implement third part of JEP-431 (#771)
SequencedSet -> LinkedHashSet, SequencedMap -> LinkedHashMap
2023-10-08 18:05:11 +03:00
Ivan Hetman
2d91f539c7
classlib: fix corner case for Character.forDigit (#769) 2023-10-08 12:48:59 +03:00
Alexey Andreev
3d65d38375 Massive refactoring around Wasm support
1. Get rid of old exception handling IR transformer in favor of generation of EH code inside BE
2. Get rid of no-setjmp/longjmp support in C BE
3. Fix various bugs in WebAssembly BE
4. Suppress remaining failing tests for Wasm
5. Enable running Wasm tests by default
2023-10-08 10:36:03 +02:00
Alexey Andreev
0c0fb1a02b Fix running C tests 2023-10-06 10:55:08 +02:00
Ivan Hetman
fe1a169d9b
classlib: fix delete and replace for AbstractStringBuilder (#783) 2023-10-05 13:27:15 +02:00
Alexey Andreev
7ff56d7a94 wasm: suppress some failing tests 2023-10-02 14:18:25 +02:00
Alexey Andreev
1c56036171 Suppress tests that are failing on C backend 2023-10-02 08:30:52 +02:00
Alexey Andreev
d850780d94 Update test annotations 2023-10-01 21:37:23 +02:00
Alexey Andreev
47973face1 Simplify test runner, remove parallel run, remove HtmlUnit runner, fix Wasm tests 2023-09-29 21:11:23 +02:00
ihromant
56ff3fbdd8 classlib: fix Math min/max functions 2023-09-28 17:02:18 +02:00
Ivan Hetman
5dec78b590
classlib: support SwitchBootstraps (#764)
Java 21 supports switch pattern matching (as well as few earlier Java version as an experimental feature). Javac produces code with INVOKEDYNAMIC that relies on bootstrap methods from `java.lang.runtime.SwitchBootstraps`. This commit is intended to support for new Java language feature
2023-09-28 15:04:07 +02:00
Ivan Hetman
0ef08a01e7
classlib: inheritDeque from SequencedCollection, fix ArrayDeque (#765)
Second part of JEP-431
2023-09-28 14:35:41 +02:00
Alexey Andreev
eed44998f0 jso: trying to improve optimization of JSWrapper 2023-09-27 13:50:30 +02:00
Alexey Andreev
b7cf7b593c wasm: when building tests, resolve absolute paths to source files in DWARF 2023-09-26 23:02:16 +02:00
Alexey Andreev
46790d11db Satisfy checkstyle after recent PR 2023-09-25 20:25:49 +02:00
Ivan Hetman
603d7f1f88
classlib: distinguish between +0 and -0 in double stringifier, improve copySign implementation 2023-09-25 15:56:43 +02:00
Alexey Andreev
e383b94e1b classlib: fix implementations of SequencedCollection methods in ArrayList 2023-09-25 15:23:18 +02:00
Ivan Hetman
55426b25cf
classlib: add SequencedCollection interface, inherited List from it (#759)
(initial part of JEP-431)
2023-09-25 14:50:00 +02:00
Alexey Andreev
57ca715195 Bump test JDK version to 21 2023-09-25 11:38:36 +02:00
Alexey Andreev
fa2e003dd6 classlib: fix crash in WeakReference constructor
It occurred when ReferenceQueue.remove method was never used

Fix #756
2023-09-24 13:47:15 +02:00
Jonathan Coates
e02f91b0fd
classlib: add Java 9's Arrays.equals and Arrays.mismatch (#755) 2023-09-23 13:01:26 +03:00
Ivan Hetman
7589eb23fc
classlib: remove deprecated constructors of primitive wrappers (#754) 2023-09-21 16:05:18 +02:00
Alexey Andreev
94e34188c3 Satisfy checkstyle after last merged PR 2023-09-21 16:04:43 +02:00
Ivan Hetman
887528531f
classlib: fix for hashcode implementation in various classes, add other minor fixes/improvements (#752) 2023-09-21 15:30:41 +02:00
Ivan Hetman
e13746a650
classlib: fix reverse bytes methods in primitive wrappers (#753) 2023-09-21 13:58:03 +02:00
Alexey Andreev
ba7dcd13b5 Update gradle scripts for latest gradle version
1. Use lazy property assignment
2. Remove usages of deprecated buildDir property
2023-09-21 09:52:29 +02:00
Alexey Andreev
010bb721f2 Fix build 2023-09-20 22:58:32 +02:00
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