Commit Graph

582 Commits

Author SHA1 Message Date
Alexey Andreev
c1b3deedff Support @Inherited annotation on annotations
Fix #883
2024-02-19 20:14:00 +01:00
Bernd Busse
be09e698ea classlib: remove hardcoded dependecy to TRoundingMode in NumberFormat 2024-02-17 21:05:55 +03:00
Bernd Busse
cf850157f0 classlib: fix javadoc warnings 2024-02-15 11:59:43 +03:00
Alexey Andreev
6ac598b927 js: add limit for top-level declarations
Rationale: turns out that V8 utilizes stack even to represent module-level functions.
This can cause SOE when there's too many classes and methods in source JVM
2024-02-01 09:41:50 +01:00
Bernd Busse
83e3306071 classlib: extend BigInteger implementation with xValueExact() and sqrt() 2024-01-24 21:56:12 +03:00
Bernd Busse
4e076a65ee classlib: add BigInteger constant TWO added in Java 9 2024-01-24 21:56:12 +03:00
Bernd Busse
9280992661 classlib: add minimal SecureRandom implementation
- Utilizes JavaScript's window.crypto.getRandomValues() when available,
  otherwise uses the general Math.random() as fallback.
- No support for providers
- No support for proper randomness sources on non-JS backends
2024-01-24 20:48:28 +03:00
Bernd Busse
1964235fef classlib: directly use Math.random() in Random
Math.random() already handles the implementation for the backends,
delegating to JavaScript's Math.random() or the C runtime
implementation.

Fixes duplicate symbols when using the WASM backend.
2024-01-24 20:48:28 +03:00
Bernd Busse
6de4560282 classlib: implement Cloneable for TreeSet 2024-01-24 20:46:26 +03:00
Bernd Busse
6a398c9b8d classlib: properly duplicate inner map when cloning TreeMap 2024-01-24 20:46:26 +03:00
Bernd Busse
2318caad7b
classlib: add static nullOutputStream() to OutputStream (#878) 2024-01-24 20:44:59 +03:00
Alexey Andreev
facf3c496f classlib: get rid of call to Math.log 2023-12-07 19:55:47 +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
J. Fronny
9093ad2f8a
classlib: implement String.chars() (#872) 2023-12-05 13:26:39 +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
3282ae3b59 Refactor mechanism that resolves methods and fields parsed from bytecode and reports errors about missing items 2023-11-20 19:50:20 +01:00
Alexey Andreev
810012872c Add couple native declarations to JSO APIs. Update sample 2023-11-19 20:25:29 +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
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
Jonathan Coates
8fa1a86728
classlib: add further nio stubs (#863)
- Add {FileAlreadyExists,NoSuchFile,NotADirectory}Exception.
 - Add OpenOption interface and StandardOpenOption enum.
2023-11-19 20:11:20 +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
Jonathan Coates
9469e4c0b4
Widen byte/short to ints in ObjectMethods (#853) 2023-11-08 10:28:13 +01:00
Jonathan Coates
2256b293ab
classlib: fix missing .shift() in ReferenceQueue.poll (#852) 2023-11-08 09:07:31 +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
9c6f23d280 classlib: optimize console output in JS backend 2023-11-07 20:00:33 +01:00
Alexey Andreev
21137c57a3 JS: merge let statements to get better minification; rewrite some Array methods to generate less dependencies on runtime 2023-11-06 19:18:18 +01:00
Alexey Andreev
6738d6f1f8 JS: add remembering source writer, refactor PreparedMethod and Renderer to use it, get rid of $rt_globals 2023-11-02 19:03:10 +01:00
Alexey Andreev
23ad999bbd JS: get rid of IOException in SourceWriter and related classes 2023-10-31 20:09:55 +01:00
Alexey Andreev
32ee8943c1 JS: rewrite more natives with templates, get rid of runtime aliases in minification mode 2023-10-31 19:29:32 +01:00
Ivan Hetman
2756fe4384
classlib: more argument validation in Collections methods (#839) 2023-10-31 09:46:43 +01:00
Ivan Hetman
5b5c26cf99
classlib: minor improvements (#843)
* String.substring performance
* More argument validation in String methods
* Object.checkFromIndexSize corner case for large indexes
* ByteBuffer.wrap argument validation
2023-10-31 09:45:23 +01:00
Alexey Andreev
a1cc817504 JS: rewrite more native generators with templates, fix issues in template engine 2023-10-29 20:17:18 +01:00
Alexey Andreev
7c4aa522d3 Add missing file 2023-10-29 17:17:38 +01:00
Alexey Andreev
eb0f4fb090 Improve JS templating so that it could be used in native generators 2023-10-29 17:16: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
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
7acc81ce4d JS: remove lazy creation of primitive classes 2023-10-21 20:07:49 +02:00
Alexey Andreev
02b3c92912 JS: use native string to represent internals of java.lang.String 2023-10-21 19:30:16 +02:00
Alexey Andreev
a59236cc7a Update unicode data 2023-10-17 19:32:28 +02:00
Alexey Andreev
368f8a5c23 Update tzdata 2023-10-17 19:32:21 +02:00
Alexey Andreev
fe0ced064b Update CLDR 2023-10-17 19:27:34 +02:00
Ivan Hetman
9242aeb750
classlib: Arrays corner cases fixes (#825) 2023-10-16 20:40:50 +03:00
Alexey Andreev
cd9db17d73 JS: improve performance float<->int reinterpretation conversion, improve performance of Double.equals. 2023-10-16 17:27:12 +02:00