Svyatoslav Kuzmich
75d3ae4466
[Wasm] Don't try to lazy-initialize properties with 'definedExternally'
...
NFC for K/JS since externals live in a separate place
2023-01-13 21:58:33 +00:00
Artem Kobzar
6a6308bef2
[K/JS] add miss StartProjection for the substitution inside lowerings ^KT-55852 Fixed
2023-01-13 13:28:42 +00:00
Artem Kobzar
7156200953
[K/JS] serialize enum entries as a byte instead of int
2023-01-12 21:15:01 +00:00
Anton Bannykh
3f57c9b107
JS IR: use ByteBuffer for faster js ast deserialization
2023-01-11 15:56:58 +00:00
Anton Bannykh
698be0fddd
JS IR: custom JS AST serialization
2023-01-11 15:56:57 +00:00
Alexander Korepanov
5f10e605a9
[JS IR] Don't check an interface method default impl during JS translation
...
We do not need to check a default implementation of the interface during
the translation to JS because it must be checked before.
Moreover, this check breaks the produced JS code
if IR is partial loaded, e.g. during the incremental rebuild.
^KT-55716 Fixed
2023-01-09 09:46:17 +00:00
Alexander Korepanov
155777e3fa
[JS IR] Detect broken cross-module references
...
The patch adds an error if the module can not find the cross-module reference.
The patch removes the DCE optimization which eliminates implement() intrinsic,
because it leads to a broken cross-module reference and
broken JS code with implement() call, albeit in an unreachable block.
2023-01-09 09:23:26 +00:00
Igor Yakovlev
f7940a2d46
[Wasm] Fix invalid cast generation for inline classes
2023-01-04 17:16:04 +00:00
Artem Kobzar
97be632c9a
[K/JS] Add @ts-ignore for the case when there is a class with a private primary constructor (or excluded from export) which has an exported subclass ^Fixed KT-52563
2023-01-04 15:21:40 +00:00
Igor Yakovlev
3be3ae4895
[Wasm] Fix invalid boxing for non-primitive typed vararg
2022-12-29 11:57:46 +00:00
Artem Kobzar
cd0ae20c38
[K/JS] Capture stackTrace before the init function call ^Fixed KT-55315
2022-12-20 18:15:02 +00:00
Alexander Korepanov
48daf0befe
[JS IR] Take into account file annotations for calculating symbol hashes
...
^KT-55367 Fixed
2022-12-20 16:04:14 +00:00
Alexander Korepanov
4136189114
[JS IR] Check all signatures of dependent file in IC graph
...
It is important to check all signatures, because signatures
can be simultaneously moved between files and modified.
2022-12-20 16:04:14 +00:00
Alexander Korepanov
9edaebf235
[JS IR] Enable DTS generation in IC
...
^KT-54398 Fixed
2022-12-07 18:05:53 +00:00
Alexander Korepanov
d21cbfe02e
[JS IR] Take into account the declaration annotations in IC hash
...
So the annotation modifications invalidate the caller.
2022-12-07 18:05:53 +00:00
Alexander Korepanov
0a35d84193
[JS IR] DTS generation refactoring
...
Keep a DTS fragment in JsIrProgramFragment
for each file and build the module DTS from them.
2022-12-07 18:05:52 +00:00
Zalim Bashorov
fb4dcc6a6a
[Sourcemap] Introduce getCurrentColumn and stop using TextOutput directly
...
The general goal is remove dependency on TextOutput and
make it simpler to use for wasm backend.
2022-12-07 12:03:54 +00:00
Alexander Udalov
60d96b7d15
Remove some leftover imports of unsafe cast functions
2022-12-06 19:44:56 +00:00
Alexander Korepanov
d8ab9498ab
[JS IR] Fix inline functions call graph in IC
...
Add a dependency for inline function references,
because in some cases the references may be inlined.
^KT-55144 Fixed
2022-12-02 13:50:37 +00:00
Alexander Korepanov
c31705240a
[JS IR] Support a module friendship in IC infrastructure
...
^KT-55097 Fixed
2022-12-02 13:50:36 +00:00
Sergej Jaskiewicz
1539d7ef1a
[klib] Bring package names in sync with the directory layout
...
Basically, some package names were Native-specific, whilst the packages
themselves were not Native-specific at all. This was already reflected
in the directory layout, but not in the package names.
This is fixed here.
NFC, just an automatic rename of packages with fixes of imports.
2022-12-01 21:46:43 +00:00
Artem Kobzar
3f4a937ad6
[K/JS] Don't generate TypeScript definitions from ExportModel if the -Xgenerate-dts flag was not provided ^Fixed KT-53940
2022-12-01 15:47:08 +00:00
Artem Kobzar
0f0421ea3d
[K/JS] Generating TypeScript definitions for exceptions and rest of the types ^Fixed KT-53940
2022-12-01 15:01:24 +00:00
Evgeniy.Zhelenskiy
9f01ccc304
[IR] Support user-defined equals for MFVC
...
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com >
#KT-1179
2022-11-30 18:55:36 +00:00
Artem Kobzar
67048151fb
[K/JS] Change js-call inlining strategy and + ability to referencethis safely from the js call ^Fixed KT-54134
2022-11-30 11:43:22 +00:00
Alexander Korepanov
693258ae91
[JS IR] Invalidate all klib dependencies after removing it
...
Without the invalidation, broken JS code
(with broken cross-module references) may appear.
^KT-54911 Fixed
2022-11-28 20:46:40 +00:00
Alexander Korepanov
ca19d71a00
[JS IR] Commit cache header after lowering
...
Commiting cache header before lowering may
break caches in case of lowering errors.
^KT-54912 Fixed
2022-11-28 20:46:40 +00:00
Alexander Korepanov
8cde0a81bc
[JS IR] Use topological order for loading klibs in JS IR IC
...
Generally, the library order doesn't matter.
However, after lowering we need to post process
lowered klibs in topological order:
- commit incremental cache artifacts,
- produce JS AST.
The patch uses an ability of the Kotlin library resolver to load klibs
in topological order and drops its reimplementation from IC infrastructure.
There is one side effect:
klibs which are not reachable from the main module, will produce their JS.
This should be more correct than just ignoring them.
2022-11-28 20:46:39 +00:00
Alexander Korepanov
ec6a7094e6
[JS IR] Manage cache root dir from IC cache updater
...
- pass cache root directory instead of dir list
- manage klib cache dirs from cache updater
2022-11-28 20:46:39 +00:00
Alexander Korepanov
c7589245c4
[JS IR] Minor IC refactoring
...
Move metadata classes from cache updater to separate file.
2022-11-28 20:46:38 +00:00
Ilya Chernikov
4af32b8d36
K2 Scripting, IR: non-class based scripts support in IR
2022-11-26 18:01:49 +00:00
Artem Kobzar
ad78f27cce
[K/JS] Fix problem with dynamic return type inside coroutine
2022-11-23 21:33:56 +00:00
Artem Kobzar
725a224f74
[K/JS] Make available transitive reexport for ES modules
2022-11-18 16:54:10 +00:00
Alexander Korepanov
f4b5f5ff5d
[JS IR] Take default params into account for calculating an IC hash
...
^KT-54895 Fixed
2022-11-16 12:25:11 +00:00
Sergej Jaskiewicz
7b7c517dbb
[JS IR] Emit original names for local vars to sourcemaps
...
#KT-35655 Fixed
2022-11-09 12:35:44 +00:00
Alexander Korepanov
d5a73a5df1
[JS IR] Return JsIrProgramFragment generators instead of ready objects
...
It allows to free IrFile objects on flight
right after the JsIrProgramFragment producing.
2022-11-08 15:18:45 +00:00
Alexander Korepanov
4aaae5347a
[JS IR] Allow IC metadata to be freed before the lowering
2022-11-08 15:18:45 +00:00
Alexander Korepanov
5b70d39bd0
[JS IR] Move id signature functions into a separate file
2022-11-08 15:18:44 +00:00
Alexander Korepanov
c0a1fa6f98
[JS IR] Move the JS AST serialization right before the IC data committing
...
It allows not to keep the binary representation in memory
2022-11-08 15:18:44 +00:00
Alexander Korepanov
eb781168b8
[JS IR] Move an IC IR loading process into a separate function
2022-11-08 15:18:44 +00:00
Alexander Korepanov
95e305be3a
[JS IR] Simple memory optimizations
...
- Use hash maps and hash sets instead of linked implementations
- Use weak hash maps for caches with IR elements as keys
- Intern JS function signatures
2022-11-08 15:18:43 +00:00
Alexander Korepanov
731dd9c3e8
[JS IR] More detailed time measurement for the IC infrastructure
2022-11-08 15:18:43 +00:00
Alexander Korepanov
cb7df4d428
[JS IR] IrModuleToJsTransformerTmp.kt -> IrModuleToJsTransformer.kt
2022-11-07 17:57:41 +00:00
Alexander Korepanov
041e755c70
[JS IR] Cleanup BackendContext flags
2022-11-07 17:57:41 +00:00
Alexander Korepanov
4d37c1d49c
[JS IR] Drop generateScriptModule flag from Merger class
2022-11-07 17:57:41 +00:00
Alexander Korepanov
f1bce9fad4
[JS IR] Drop StableNamesCollector.kt
2022-11-07 17:57:40 +00:00
Alexander Korepanov
99e93258cd
[JS IR] Drop NameTables class
2022-11-07 17:57:40 +00:00
Alexander Korepanov
43fbb0ba3e
[JS IR] Drop IrNamerImpl.kt
2022-11-07 17:57:39 +00:00
Alexander Korepanov
7b8bd47b1a
[JS IR] Drop MultiModuleSupport.kt
2022-11-07 17:57:39 +00:00
Alexander Korepanov
05395f716c
[JS IR] Drop old IrModuleToJsTransformer
2022-11-07 17:57:39 +00:00