3406 Commits

Author SHA1 Message Date
Alexey Andreev
4dc6ca913b Fix incorrect compilation of try/catch block inside catch block
Fix #1012
2025-04-10 19:39:21 +02:00
Alexey Andreev
baf61b1f4e classlib: improve performance of time zone compilation 2025-04-10 19:21:42 +02:00
Alexey Andreev
ab8fb13415 Refactor JUnit test runner and improve performance of running in browser 2025-04-10 18:57:43 +02:00
Alexey Andreev
cffe28cd0b wasm gc: use JS string builtins proposal to convert strings between Java and JS 2025-04-09 19:03:30 +02:00
Alexey Andreev
66fbac12ef Fix errors in reflection support introduced by recent changes 2025-04-09 18:20:03 +02:00
Alexey Andreev
53dca8fdd1 wasm gc: support Class.getMethods and Class.getConstructors 2025-04-08 20:15:36 +02:00
Alexey Andreev
4b1f11fa52 jso: static methods of exported class initialize module class to trigger static classinits 2025-04-08 14:44:52 +02:00
Alexey Andreev
40353d9606 classlib: don't acquire/release monitor if current thread is null
This is possible when calling code with monitorenter/monitorexit from JS event listener
2025-04-08 13:59:29 +02:00
Alexey Andreev
fb64481ced js: remove code, that checks for presence of BigInt64Array, as now we rely on its existence, from runtime 2025-04-08 11:49:55 +02:00
Alexey Andreev
04123c4562 wasm gc: support Class.getFields 2025-04-06 19:41:30 +02:00
Ivan Hetman
7be6af5819
classlib: fix bugs in System.identityHashCode and Arrays.deepToString 2025-04-06 19:10:39 +02:00
Alexey Andreev
203b34939a wasm gc: support Class.getInterfaces 2025-04-02 20:15:46 +02:00
Alexey Andreev
30ab6bfe7d wasm gc: support Class.getAnnotations 2025-04-02 19:28:24 +02:00
Alexey Andreev
b609828bbe wasm gc: support undefined case when converting string from JS to Java 2025-03-21 15:47:24 +01:00
Alexey Andreev
206ec13d53 wasm gc: fix bugs in virtual table generator 2025-03-21 15:31:18 +01:00
Alexey Andreev
e14993f509 Improve performance of test running by running all tests from single class in same iframe without recompilation 2025-03-21 12:20:54 +01:00
Alexey Andreev
15469b94f5 wasm gc: fix function for accessing resources when there are no resources 2025-03-20 15:30:55 +01:00
Alexey Andreev
206a16ceac wasm gc: create array classes lazily at runtime instead of creating them at compile time 2025-03-20 15:20:06 +01:00
Alexey Andreev
a960a9a284 wasm gc: add option to generate compact module
This includes following:

* Generate all instance methods receivers as anyref in order
  to avoid generation of virtual table callers
* Generate virtual table initializers directly in globals section

This helps to avoid generation of too much and/or too large functions
for large codebases in fast pointer-to analysis mode
2025-03-19 15:10:44 +01:00
Alexey Andreev
1c6988bd3b wasm gc: reduce size of virtual table initialization code 2025-03-08 16:51:01 +01:00
Alexey Andreev
cb3bbf56dc wasm gc: use function to fill common virtual table methods 2025-03-07 09:48:22 +01:00
Alexey Andreev
5ee26e5281 wasm gc: improve VT fill size by choosing VT structures closer to root 2025-03-06 19:20:35 +01:00
Alexey Andreev
6bb53fb3a5 wasm gc: merge marker interfaces into corresponding classes to reduce number of merged interfaces in VT 2025-03-06 18:56:07 +01:00
Alexey Andreev
42dcddceb5 wasm gc: (minor) remove unused parameter from function type mapper 2025-03-06 18:21:34 +01:00
Alexey Andreev
e2a55a3438 Improve devirtualization speed in fast dependency analysis mode 2025-03-06 18:07:31 +01:00
Alexey Andreev
df4f11b0f0 wasm gc: further optimizations of virtual tables 2025-03-06 07:43:04 +01:00
Alexey Andreev
3a5ffc98a6 wasm gc: fix usage of type indexes 2025-02-27 19:47:27 +01:00
Alexey Andreev
1424bf8649 wasm gc: split representations of classes and virtual tables 2025-02-27 19:10:01 +01:00
Alexey Andreev
f2eb9d7dbc maven: fix copying modular Wasm GC runtime
Fix #1006
2025-02-24 20:08:50 +01:00
Alexey Andreev
77d95a8881 wasm gc: fix issue in virtual table builder 2025-02-24 20:05:20 +01:00
Alexey Andreev
8cbbb35d9b wasm gc: compiler performance optimization 2025-02-23 20:31:34 +01:00
Alexey Andreev
78282158a9 wasm gc: fix bug with dependency analysis in fast mode 2025-02-23 19:46:07 +01:00
Alexey Andreev
7a21e5547a wasm gc: fix bug in virtual table optimizer 2025-02-23 10:21:00 +01:00
Alexey Andreev
ccfb0b9bc5 wasm gc: optimize virtual table generation
In certain cases assume that interface VT behaves as a class VT, thus don't move it to common superclass
2025-02-22 17:59:52 +01:00
Alexey Andreev
64c3ee81c2 js: more informative exception message when trying to suspend from non-thread context 2025-02-13 19:57:31 +01:00
Alexey Andreev
c083a62740 Fix Object.monitorEnter/monitorExit methods not being transformed into async state machine in some cases
Fix #969
2025-02-13 18:59:36 +01:00
Alexey Andreev
177f67b5af samples: remove unnecessary broken dependencies 2025-02-13 18:55:56 +01:00
Alexey Andreev
ef52e48187 wasm gc: fix bug in WeakReference implementation 2025-02-12 18:24:33 +01:00
Alexey Andreev
5cd382da6d wasm gc: fix argument conversion when calling static Java methods in JS classes 2025-02-11 19:14:56 +01:00
Alexey Andreev
2958e63657 wasm gc: prevent null constant instructions that are used more that once
Rationale: since Wasm GC is statically typed IR, with even nulls having some type, sharing null constants between expressions can cause unsolvable contradictions in types
2025-02-10 20:10:34 +01:00
Alexey Andreev
54d65374bb jso: fix accidental change 2025-02-09 19:27:55 +01:00
Alexey Andreev
bdc9fe757a wasm gc: support JSExceptions.getJSException 2025-02-08 16:03:09 +01:00
Alexey Andreev
da848c523b wasm gc: fix issues with type inference 2025-02-08 16:02:48 +01:00
Alexey Andreev
6a2bd3e6bf wasm gc: add classes that are not directly reachable, but are mentioned in method signatures
Rationale: it can be that some function `foo` declares that it takes class C, but class C is never reachable from code (e.g. never get instantiated, and `foo` only takes nulls). In this case it can be that class C has no representation in Wasm module, which can lead to type validation errors.
2025-02-08 09:11:21 +01:00
Alexey Andreev
7fdaf3c0d1 jso: pass primitive arrays to JS as TypedArrays 2025-02-07 18:54:55 +01:00
Alexey Andreev
e28b27c7d8 jso: fix support of optional JSByRef parameter 2025-02-07 13:36:33 +01:00
Alexey Andreev
0b1559cf8d wasm gc: provide import function that returns JS exports container 2025-02-07 13:22:30 +01:00
Alexey Andreev
040b6f7ff6 wasm gc: use async method to instantiate module in order to support large wasm files 2025-02-07 13:05:12 +01:00
Alexey Andreev
196ac85da1 wasm gc: fix support of clone method of non-cloneable classes 2025-02-07 11:56:06 +01:00
Alexey Andreev
f893cfab28 jso: fix support of optional JSByRef return value 2025-02-07 11:33:45 +01:00