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
Alexey Andreev
f30a050bfd
JS: relax several JSO declarations to accept Object instead of JSObject
2023-08-03 20:50:22 +02:00
Alexey Andreev
334e2829b3
JS: supports module imports in JSBody
2023-08-03 15:42:15 +02:00
Alexey Andreev
a1ed797d73
JS: allow passing Object to JS methods
2023-07-31 20:42:09 +02:00
Alexey Andreev
4cfbca96b8
JS: fix visibility modifier for consistency
2023-07-31 13:13:35 +02:00
Alexey Andreev
c4c6b029e3
JS: add support for exporting Java methods as JS properties
2023-07-30 20:48:43 +02:00
Alexey Andreev
948244cbf4
JS: marshall JS object to Java in a wrapper
2023-07-29 18:54:23 +02:00
Alexey Andreev
8014c038c0
Migrate to gradle
2023-01-23 17:16:07 +01:00
Alexey Andreev
64ae44ee01
JS: store global object in a variable to avoid name clashes between generated declarations (in minified mode) and global declarations
2022-11-17 12:02:46 +01:00
Alexey Andreev
81bfe3f6e2
Improve pom.xml configuration
2021-03-18 11:16:41 +03:00