Commit Graph

3181 Commits

Author SHA1 Message Date
Alexey Andreev
4a345610cf wasm gc: reduce number of generated virtual table entries, reduce size of a simple program 2024-08-23 21:10:44 +02:00
Alexey Andreev
3e19ca341e wasm gc: fix support of class initialization, inherit arrays from Object, add support for clone in arrays 2024-08-23 21:10:44 +02:00
Alexey Andreev
335e2da4cf wasm gc: implement System.identityHashCode() and some Integer intrinsics 2024-08-23 10:14:39 +02:00
Alexey Andreev
5d109236d9 wasm gc: fix running tests in JUnit, fix remaining errors so that *few* tests pass 2024-08-21 14:29:56 +02:00
Alexey Andreev
1aebe51256 wasm gc: implement backend-specific virtual table builder 2024-08-20 21:03:51 +02:00
Alexey Andreev
eb0eb1f146 wasm gc: generate field names and write them to name section 2024-08-20 14:16:24 +02:00
Alexey Andreev
29f29cea1d wasm gc: trying to fix virtual calls 2024-08-19 15:02:11 +02:00
Alexey Andreev
59259c314d wasm gc: support running tests 2024-08-18 19:57:25 +02:00
Alexey Andreev
5eb1e7d9bc wasm gc: implement intrinsics for Long and Class classes 2024-08-18 19:55:25 +02:00
Alexey Andreev
a97e6574ac Introduce concept of 'weak' cast.
Use weak casts to maintain proper typing within methods during various operations on IR. At generation level, ignore weak casts, except for Wasm GC BE, which turns weak casts into platform casts.
2024-08-18 18:47:04 +02:00
Alexey Andreev
8b52741e04 wasm: avoid generation of types as defined in GC spec
This fixes passing tests in environments that either don't support or prohibit usage of GC spec
2024-08-18 17:51:29 +02:00
Alexey Andreev
8dd344412e classlib: fix support of null string in System.out/err streams 2024-08-17 20:48:38 +02:00
Alexey Andreev
199032d48a wasm gc: support Array.newInstance 2024-08-17 20:48:03 +02:00
Alexey Andreev
40fbce0ddd wasm gc: fix issues with virtual calls 2024-08-16 20:42:03 +02:00
Ivan Hetman
2805631025
jso: add InputEvent (#902) 2024-08-14 14:48:21 +02:00
Alexey Andreev
8c15885f44 Fix metaprogramming support, fix calculation of virtual tables for final classes 2024-08-14 13:22:27 +02:00
Ivan Hetman
2e59db3ab9
jso: SVG element base interface (#938) 2024-08-14 11:20:21 +02:00
Alexey Andreev
eaf2c8189f wasm gc: implement some basic reflection-specific intrinsics in Object and Class 2024-08-13 20:51:20 +02:00
Alexey Andreev
a84c5fc77f wasm gc: fix issues related to virtual calls 2024-08-13 19:57:48 +02:00
Alexey Andreev
73edc0cf6e wasm gc: support passing arguments to main method 2024-08-12 20:28:11 +02:00
Alexey Andreev
e61301576b wasm gc: support System.arrayCopy for special cases 2024-08-12 17:55:19 +02:00
Alexey Andreev
065aef581d jso: fix incorrect type inference for array element types
Fix #937
2024-08-12 17:32:54 +02:00
Alexey Andreev
6af7250e3b wasm: add support for array.copy instruction 2024-08-03 19:55:16 +02:00
lasse-cs
98cd2efc0f
jso: add Popover API Wrappers (#934) 2024-08-03 19:53:14 +02:00
Alexey Andreev
92666e8cf0 wasm gc: trying to fix issues with array covariance 2024-08-02 19:11:11 +02:00
Alexey Andreev
dd2e4bb001 wasm: fix error in ClassMetadataRequirements causing compiler crash 2024-08-02 15:26:36 +02:00
Alexey Andreev
8d276f2efd wasm gc: avoid generation of unnecessary supertype functions 2024-08-02 15:03:29 +02:00
Alexey Andreev
8e483245f5 wasm: fix generation of constructor invocation 2024-08-02 14:36:33 +02:00
Alexey Andreev
7ba0a7fe7d wasm gc: export exception tag from module 2024-08-02 14:31:00 +02:00
Alexey Andreev
e4fa6bd364 wasm gc: reduce number of generated virtual tables, fix non-matching types in case of null literals 2024-08-02 13:50:49 +02:00
Alexey Andreev
9b5e1e7661 wasm gc: fix remaining issues that prevent running trivial example 2024-08-01 20:25:18 +02:00
Alexey Andreev
54dc7fe5f8 wasm gc: fix generation issues, get first version that produces module that passes validation 2024-08-01 19:57:12 +02:00
Alexey Andreev
a8d97ad387 wasm gc: cast receivers on devirtualized calls to actual argument type, avoid this cast when possible 2024-07-31 20:49:45 +02:00
Alexey Andreev
75bead66b3 wasm: support instructions that were recently implemented in generator 2024-07-31 17:31:39 +02:00
Alexey Andreev
5572d4b5d7 wasm gc: add subtyping information to types, fix generation of expressions 2024-07-30 20:57:36 +02:00
Alexey Andreev
a1a776ea9b wasm gc: trying to fix type validation 2024-07-30 17:33:31 +02:00
Alexey Andreev
87aaa0b452 wasm gc: fix issues in generation of types, globals and some expressions 2024-07-29 20:41:58 +02:00
Alexey Andreev
ea29208b6c wasm gc: trying to generate types according to unclear spec 2024-07-28 21:04:18 +02:00
Alexey Andreev
a281c19363 wasm gc: draft Wasm GC backend 2024-07-28 14:31:34 +02:00
Alexey Andreev
9f12917de9 js: remove long emulation 2024-07-25 19:43:29 +02:00
Alexey Andreev
f48c24283c wasm: implement transformation from TeaVM tree IR to Wasm GC 2024-07-24 20:21:22 +02:00
Alexey Andreev
172de8e737 wasm: move common part of wasm expression generator in order to later reuse it with Wasm GC BE 2024-07-22 20:16:16 +02:00
Alexey Andreev
13a959ce67 classlib: fix String.replace, add optimizations for some corner cases
Fix #932
2024-07-18 18:51:42 +02:00
pizzadox9999
8889b63df7 jso: add TouchEvent bindings 2024-07-18 18:38:15 +02:00
Alexey Andreev
9b3652697d Bump Gradle version to 8.9 2024-07-11 19:29:54 +02:00
Alexey Andreev
e53af544a0 classlib: fix bug with precision in Formatter 2024-07-11 18:26:12 +02:00
Alexey Andreev
025801d385 Limit depth of method analysis in class initializer analysis in order to avoid too deep stack (and therefore SOE) 2024-07-11 18:18:24 +02:00
Alexey Andreev
7efb3c97a0 wasm gc: draft first parts of Wasm GC backend
* class metadata generator
* string pool generator
2024-07-09 19:42:37 +02:00
Alexey Andreev
efcb22b639 wasm: implement global variables
They aren't used by current Wasm BE yet, but will be used by future Wasm GC BE
2024-07-01 19:37:04 +02:00
Alexey Andreev
3ba2282473 wasm: implement several instructions related to reference types
These instructions will be presumably required for implementation of new Wasm GC BE. There's no tests for these changes, since there is no infrastructure to test anything like this. Instead, this code will be covered by tests for corresponding Wasm BE, when it's finally implemented.
2024-06-30 16:19:00 +02:00