Commit Graph

144 Commits

Author SHA1 Message Date
Alexey Andreev
14a4a99fa5 wasm gc: fix exporting classes to JS 2024-10-10 19:12:40 +02:00
Alexey Andreev
f61d893b6d wasm gc: fully support exporting classes to JS 2024-10-09 19:28:45 +02:00
Alexey Andreev
0dcc25d66b wasm gc: support exporting declarations as JS entities from module 2024-10-08 20:09:43 +02:00
Alexey Andreev
7aec0763fa wasm gc: fix issue with JS exceptions, trying to propagate Java exception message to JS error message 2024-10-04 16:56:47 +02:00
Alexey Andreev
753a028fc9 wasm gc: improve performance of JS interop 2024-10-04 15:38:14 +02:00
Alexey Andreev
3218a00eb9 wasm gc: support JS exceptions 2024-10-04 11:49:17 +02:00
Alexey Andreev
1d47146f43 wasm gc: support JS functions with varargs 2024-10-04 10:02:06 +02:00
Alexey Andreev
0057bbd00d wasm gc: fix issue with extracting elements from arrays of JS objects 2024-10-04 09:00:51 +02:00
Alexey Andreev
eba0e2b2e8 wasm gc: fix issues with arrays of JS objects, unignore passing test 2024-10-03 22:23:56 +02:00
Alexey Andreev
2aabddc32d wasm gc: fix conversion of multidimensional arrays from JS 2024-10-02 20:02:58 +02:00
Alexey Andreev
0bd7bc6ca9 wasm gc: fix support of legacy Object.cast method 2024-10-02 19:27:43 +02:00
Alexey Andreev
551f0505c7 wasm gc: fix support of cast/instanceof for JS types; fix accessing top-level declarations 2024-10-02 14:54:40 +02:00
Alexey Andreev
a291eb3026 wasm gc: support wrapping JS values in Java 2024-10-02 14:31:33 +02:00
Alexey Andreev
4b76396332 wasm gc: basic support for functors in JSO 2024-10-01 14:43:53 +02:00
Alexey Andreev
383fee67c5 wasm gc: support exporting Java classes to JavaScript 2024-10-01 13:57:20 +02:00
Alexey Andreev
0897a1bbd5 wasm gc: fix failing tests 2024-09-29 10:53:55 +02:00
Alexey Andreev
e966690284 Fix failing tests 2024-09-28 19:58:55 +02:00
Alexey Andreev
5ad4496c34 wasm gc: support primitive array conversion to JavaScript in JSO 2024-09-28 19:52:14 +02:00
Alexey Andreev
bbf45760b8 wasm gc: implement simple features from JSO 2024-09-28 19:20:48 +02:00
Alexey Andreev
d0707e5355 js: emit non-breaking whitespace before function arrow in remaining places 2024-09-03 20:54:34 +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
065aef581d jso: fix incorrect type inference for array element types
Fix #937
2024-08-12 17:32:54 +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
19518eb191 jso: don't insert casts to JS classes in non-strict mode 2024-04-22 19:16:33 +02:00
Alexey Andreev
a1d711d069 jso: when casting to JS objects, don't fail cast when cast object is null 2024-04-16 20:03:19 +02:00
Alexey Andreev
931f0f1f4a jso: support varargs in exported classes and modules 2024-04-15 20:53:24 +02:00
Alexey Andreev
6a09f181c7 js: add JSTopLevel annotation that allows to import top-level declarations 2024-04-11 20:29:57 +02:00
Alexey Andreev
72b021fc0b jso: support exporting class constructors 2024-04-08 21:32:10 +02:00
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
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
32ae1ab8f0 js: fix deobfuscator, use new ES2015 module builder 2024-03-13 15:44:18 +01:00
Alexey Andreev
582fcf904c jso: implement vararg support for method calls 2024-03-12 18:56:19 +01:00
Alexey Andreev
ccfe19994b js: refactor and simplify AstWriter, properly fix case with variable in catch block 2024-03-06 20:24:35 +01:00
Alexey Andreev
e4452152b7 jso: improve JS class import to Java 2024-02-27 20:16:10 +01:00
Alexey Andreev
8db406c603 jso: implement exporting Java methods to JS
Fix #785
2024-02-15 21:00:10 +01: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
Alexey Andreev
a9af6e4f33 JSO: fix wrapping undefined value 2023-12-07 10:02:30 +01:00
Alexey Andreev
067f7453fe JS: a better fix for wrapping/unwrapping JS objects implemented in Java 2023-11-27 13:05:51 +01:00
Alexey Andreev
9757213379 JS: fix unwrapping JS objects implemented in Java 2023-11-26 21:57:19 +01:00
Alexey Andreev
be53236d23 JS: fix wrapping keys for native indexers 2023-11-20 20:33:47 +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
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
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
772dd9eded JS: fix returning JSO objects from Async methods
Fix #805
2023-10-12 21:13:09 +02:00
Alexey Andreev
eed44998f0 jso: trying to improve optimization of JSWrapper 2023-09-27 13:50:30 +02:00
Alexey Andreev
b9f5e9be1c JS: optimize case when JS method returns java.lang.Object and then treated as JS object 2023-08-04 20:40:57 +02:00
Alexey Andreev
35f1284ac5 js: fix issue in obfuscated mode 2023-08-04 10:27:44 +02:00