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
Alexander Korepanov
d17794481d
[JS IR] Replace IrModuleToJsTransformer with IrModuleToJsTransformerTmp
2022-11-07 17:57:38 +00:00
Sergej Jaskiewicz
ba7f5afebe
[JS IR] Generate debug info for catch parameters
...
We will need it to generate original names for catch parameters in
sourcemaps.
Also, don't generate redundant debug info for compiler-generated
exception handling control flow operators.
See the doc comment to the MultipleCatchesLowering class
#KT-46276
2022-11-02 13:14:01 +00:00
Sergej Jaskiewicz
871d445b4e
[JS IR] Generate debug info for global property initializers
2022-11-02 13:14:01 +00:00
Sergej Jaskiewicz
4ae03ea74a
[JS IR] Improve debug info for if and when statements
...
#KT-46276
2022-11-02 13:14:01 +00:00
Sergej Jaskiewicz
ccbb2a08a0
[JS IR] Improve debug info for functions with default parameters
...
Don't generate unnecessary mappings so that the user doesn't need to
step in many times to get where they want
#KT-46276
2022-11-02 13:14:00 +00:00
Sergej Jaskiewicz
43c5c8b44f
[JS IR] Fix debug info for Char, Long, and unsigned integer literals
...
Map class constructor calls to the literals they were generated
from.
#KT-46276
2022-11-02 13:13:59 +00:00
Sergej Jaskiewicz
512a2bfd7a
[JS IR] Improve debug info for callable references and lambdas
...
#KT-46276
2022-11-02 13:13:59 +00:00
Sergej Jaskiewicz
fe0e9db3aa
[JS IR] Generate debug info for JS switch statements
...
#KT-46276
2022-11-02 13:13:59 +00:00
Sergej Jaskiewicz
b2b7958b62
[JS IR] Generate debug info for secondary constructors
...
#KT-46276
2022-11-02 13:13:58 +00:00
Sergej Jaskiewicz
ec18dce7cb
[JS IR] Improve debug info for suspend functions
...
- Map generated explicit Unit returns to the closing brace of
the original body
- Name the continuation parameter as `$completion` to match the JVM BE,
and generate debug info for it (so that it appears in the 'names'
array in sourcemaps)
- Don't generate debug info for coroutine instantiation ceremony
(so that the user doesn't need to step in many times to get where they
want)
#KT-46276
2022-11-02 13:13:58 +00:00
Igor Yakovlev
97123e9959
[WASM] Emit when expression in more canonical way (subject first for equals expression)
2022-11-01 13:15:12 +00:00
Igor Yakovlev
346b2f162c
[WASM] Optimize varargs without spreads
2022-11-01 13:15:11 +00:00
Igor Yakovlev
8d8430cde7
[WASM] Remove unnecessary boxing/unboxing
2022-11-01 13:15:10 +00:00
Ilya Goncharov
36935702b9
[JS IR] Make cast in bridge nullable in case of default parameter method
2022-10-31 16:08:25 +00:00
Sergej Jaskiewicz
6a40a7e471
[JS IR] Don't forget to enable lazy property initialization
2022-10-27 11:27:59 +00:00
Ilya Goncharov
fd5fba6f09
[JS IR] Fix case with bridge with nested classes
...
^KT-54686 fixed
2022-10-26 12:56:03 +00:00
Alexander Korepanov
2e48557a0d
[JS IR] Update hashing in IC infrastructure
...
The patch should reduce possible collisions
2022-10-26 10:54:37 +00:00
Artem Kobzar
ea6b784e41
[K/JS] Exclude Enum.entries property from export to JS
2022-10-21 10:31:06 +00:00
Dmitriy Dolovov
460e21c7bc
[IR][JS] Partial linkage: Enable PL for IR IC compiler
2022-10-19 13:46:22 +00:00
Dmitriy Dolovov
15635482aa
[IR] Partial linkage: Enable it by just passing a boolean flag to IR linker constructor
2022-10-19 13:46:22 +00:00
Artem Kobzar
7b9aed25da
[K/JS] Add the ability to turn off polyfills generating
2022-10-19 12:52:23 +00:00
Alexander Korepanov
621e361366
[JS IR] Pass a js generation granularity param to IC infrastructure
2022-10-19 10:21:44 +00:00
Sergej Jaskiewicz
a939f9ccd0
[JS IR] Improve debug info precision for blocks
...
Namely:
- Generate debug info for closing braces, which allows the breakpoints
set on closing braces to be hit
- Generate debug info for 'if' and 'try/catch' statements.
KT-46276
2022-10-18 14:31:14 +00:00
Sergej Jaskiewicz
d9681caf0c
[JS IR] Generate 'names' entries for functions in sourcemaps
2022-10-14 10:09:40 +00:00
Sergej Jaskiewicz
1d0025c3cf
[JS] Support the 'names' field in sourcemaps
2022-10-14 10:09:39 +00:00
Sergej Jaskiewicz
227864c6ec
[JS IR] Add a compiler option for generating name entries in sourcemaps
2022-10-14 10:09:39 +00:00
Sergey Bogolepov
6a4722188f
Extract SameTypeNamedCompilerPhase from NamedCompilerPhase
...
Currently, compiler pipelines are heavily couples with
NamedCompilerPhase. Unfortunately, NamedCompilerPhase uses the same
type for Input and Output, thus it is not applicable to phases that
try to transform some data purely.
Thus, we separate this class into two, allowing to have a new
inheritor of NamedCompilerPhase with different Input and Output types.
2022-10-13 08:25:26 +00:00
Sergey Bogolepov
e1f2b89875
Untie Symbols class from CommonBackendContext
...
`Symbols.context` property is actually unused. Let's drop
it as it makes harder to create an instance of this class.
2022-10-13 08:24:11 +00:00
Artem Kobzar
de880ce9aa
[K/JS] Move ES modules logic to a new transformer with IC
2022-10-13 07:32:44 +00:00
Sergey Bogolepov
54deba63a1
Use PhaseConfigurationService in CompilerPhase instead of PhaseConfig
2022-10-13 06:39:39 +00:00
Alexander Korepanov
7b2c125754
[JS IR] Update IC depends graph after intrinsics loading
...
- Remove unused params from compilerWithIC wrapper.
- Move JsIrBackendContext creation logic into separate function
- Introduce and use compiler interface for IC infrastructure
On dirty rebuild we may reload IR from stdlib,
such reloading may affect files with intrinsics and builtins.
As soon as we load only exported symbols, we must track dependencies
for files with intrinsics or builtins as for others.
This patch implements the logic which updates dependencies for
the stdlib files after loading of intrinsics and builtins.
^KT-54323 Fixed
2022-10-12 22:14:15 +00:00
Anton Bannykh
9342356c38
JS IR: fix type checks for suspend function descendants (^KT-54382 fixed)
...
Consider `class A : suspend () -> Unit {}`. Type checks such as `is A`
are now performed via a regular `instanceof` check instead of the special
checks for suspend lambdas.
2022-10-12 17:38:23 +00:00
Alexander Korepanov
89d3060e00
[JS IR] Drop unused JsRecordExtractedLocalClasses logic
2022-10-06 11:56:06 +00:00
Alexander Korepanov
86c72a5b9e
[JS IR] Drop unused all export collecting logic
2022-10-06 11:56:06 +00:00
Artem Kobzar
574d774277
[K/JS] Remove illegal chars from the new js-minimal-stdlib path
2022-10-03 15:59:07 +00:00
Leonid Startsev
ccdb6fc599
Fix .equals for instantiated annotations with unsigned array types.
...
#KT-53876 Fixed
2022-10-03 13:54:06 +00:00
Artem Kobzar
eb2326eabb
[K/JS] Add ability to exclude declarations from export by a new annotation @JsExport.Ignore.
2022-10-03 11:07:25 +00:00
Pavel Kunyavskiy
8886e1b8b4
Move Js suspend functions lowerings to common code
2022-09-30 08:48:57 +00:00