Alexander Udalov
4df937ff7f
JVM IR: keep property for $receiver field of optimized delegated properties
...
For properties which delegate to other property via the getValue
operator from stdlib (see KT-39054), we generate `$receiver` field which
stores the receiver of the property reference used in the delegate. The
problem was that this backing field was missing `correspondingProperty`.
It's needed because it is used as a map key to store static fields in
`JvmCachedDeclarations.getStaticBackingField`. If it's null, accesses to
the static $receiver fields are not remapped correctly in
`RemapObjectFieldAccesses` and
`MoveOrCopyCompanionObjectFieldsLowering`, which led to ICCE or NSFE.
#KT-49793 Fixed
2021-11-26 19:21:16 +01:00
Ilya Goncharov
cac286c915
[JS IR] Access with exported properties by its name, not accessor
...
[JS IR] Export properties to ts as getter/setter, not fields
[JS IR] Fix typescript tests
Merge-request: KT-MR-5074
2021-11-26 09:18:12 +00:00
Artem Kobzar
08b0e17d47
feat(polyfills): use stdlib for js polyfills.
2021-11-26 08:14:34 +00:00
Mikhail Glukhikh
4a8f00bc7c
FIR2IR: support reading of isNewPlaceForBodyGeneration in lazy class
2021-11-26 09:18:11 +03:00
Ilya Goncharov
98bedf7eed
[IR] More user-friendly compilation exceptions from lowerings and JS codegen
...
Merge-request: KT-MR-5004
2021-11-25 13:21:34 +00:00
Roman Artemev
a01d9b77c3
[JS IR] Delegate invalidated files processing to the caller
...
This change is needed to test invalidation somehow
2021-11-25 11:22:45 +03:00
Ilya Goncharov
1481ad21f5
Enum implementing exported interface
...
[JS IR] Not export get instance enum function
[JS IR] Enum corresponding class is not considered in export
[JS IR] All enums are abstract and with private constructor
[JS IR] Any methods is left in d.ts
[JS IR] Make enum with declarations inside corresponding class
[JS IR] Export of interface through fake override
[JS IR] Include enum entry corresponding class members into export model
Merge-request: KT-MR-5031
^KT-49779 fixed
^KT-49773 fixed
2021-11-24 12:25:50 +00:00
Pavel Kunyavskiy
98fa69c3d5
[K/N] Remove hack from suspend function inheritance to allow export
...
Before that commit, function in coroutine implementation class was
override for both SuspendFunctionN's and FunctionN+1's invoke,
which somehow works, but breaks exporting classes with such functions.
Now it's two separate functions, as it should be normally.
^KT-49395
2021-11-24 07:54:51 +00:00
Dmitry Petrov
55d1fdfbc2
JVM_IR prevent clash of unsubstituted special bridges
2021-11-23 12:05:13 +00:00
Dmitry Petrov
2a263eca65
FIR2IR strip annotations from IrConst type
2021-11-23 06:34:03 +00:00
Ilya Goncharov
f48436b35e
rra/ilgonmic/eager-like-native
...
[JS IR] Leave JsEagerInitialization until bootstrap update
[JS IR] Fix js stdlib api
[JS IR] Change annotation on eager initialization in sources
[JS IR] Make eager initialization consistent with native
Merge-request: KT-MR-5030
2021-11-22 12:45:37 +00:00
Sergej Jaskiewicz
756b58d5ce
[JS IR] Don't assume a single constructor in the Char class
2021-11-22 11:22:45 +00:00
Kristoffer Andersen
be1c0bb9c1
[EE-IR] Support mutations by evaluator fragments
...
- box captured variables using `Ref`s, the same mechanism that's used
for shared variables in closures.
2021-11-21 01:34:42 +01:00
Kristoffer Andersen
7e633cf217
[IR] Refactor JvmSymbols to allow on-demand loading of (subsets of) symbols
2021-11-20 12:40:46 +01:00
Dmitry Petrov
aa0c2ddea5
JVM_IR fix nullability of special bridge return type
2021-11-20 07:27:22 +00:00
Sergej Jaskiewicz
060074a9d6
[JS IR] Don't concatenate string template segments with '' when possible
...
If concatenating with an empty string is a sure no-op, just don't do it.
2021-11-19 11:16:33 +00:00
Roman Artemev
a0d67cb2e3
[JS IR] Support throwing linkage error in JS IR BE
...
- lower it into runtime API call
2021-11-19 01:16:37 +03:00
Roman Artemev
53a65f818f
[KLIB] Support partially linked klibs in Ir linker
...
Now it's possible to compile against klib even if in there are
references to declarations from other klibs which are no longer existed
- add switch flag to turn on/off that mode
- pass switch flag from JS CLI to JS Linker
2021-11-19 01:16:35 +03:00
Roman Artemev
650b04b4dd
[JS IR] Make assert checks no unbound symbols left conditional
2021-11-19 01:16:34 +03:00
Roman Artemev
e4585730d6
[IR] Add platform-agnostic builtin to throw linkage error
2021-11-19 01:16:33 +03:00
Roman Artemev
8381badcc4
[KLIB] Make IrModuleDeserializer constructor nullable
2021-11-19 01:16:30 +03:00
Roman Artemev
918ed1f077
[KLIB] Refactored IrSymbolDeserializer.kt
...
- extract function which creates a new symbols in linker
2021-11-19 01:16:29 +03:00
Roman Artemev
df9d039c03
[KLIB] Don't use module descriptor to compute library in error reporter
2021-11-19 01:16:28 +03:00
Anton Bannykh
75368a2c06
[JS IR] tie together IC code in tests and K2JsIrCompiler
2021-11-19 00:39:37 +03:00
Anton Bannykh
ff02ea5840
[JS IR] advance stage in regular mode when needed
2021-11-19 00:39:32 +03:00
Anton Bannykh
7d7dd3fe97
[JS IR] better tags + bare parameter names
2021-11-19 00:39:29 +03:00
Anton Bannykh
f9e62f8ffa
[JS IR] expose currentStage via the stageController
...
Otherwise the signatures for the declarations, created in lowerings,
will be miscalculated.
2021-11-19 00:39:24 +03:00
Anton Bannykh
f413d7fd75
[JS IR] make using the original parameter names possible
2021-11-19 00:39:18 +03:00
Anton Bannykh
e342ade00a
[JS IR] fix inline graph tracker for file-local signatures
2021-11-19 00:39:15 +03:00
Anton Bannykh
56e1c4e38f
[JS IR] IrFactory which saves signatures for declarations created in BE
2021-11-19 00:39:12 +03:00
Anton Bannykh
e972ad9855
[JS IR] improved missing body reporting for inliner
2021-11-19 00:39:03 +03:00
Anton Bannykh
953089a4b9
[JS IR] suport SuspendN.invoke functions
2021-11-19 00:38:51 +03:00
Anton Bannykh
1ae042edc3
[JS IR] make old Ir2Js pass all tests
2021-11-19 00:38:46 +03:00
Anton Bannykh
3c859138d1
[JS IR] support source maps in new Ir2Js
2021-11-19 00:38:33 +03:00
Anton Bannykh
a7d8c34927
[JS IR] support generateScriptModule
2021-11-19 00:38:30 +03:00
Anton Bannykh
0506d422a3
[JS IR] support per-module in the new Ir2JS
2021-11-19 00:38:27 +03:00
Anton Bannykh
1f55dc73d2
[JS IR] don't inline property accessors across files
2021-11-19 00:38:24 +03:00
Anton Bannykh
03b9caa439
[JS IR] export external declarations
2021-11-19 00:38:15 +03:00
Anton Bannykh
ee8351b9c9
[JS IR] remove unused property
2021-11-19 00:38:11 +03:00
Anton Bannykh
0b0ed5241c
[JS IR] remove unused method
2021-11-19 00:38:09 +03:00
Anton Bannykh
3617c1388c
[JS IR] improve the hacky fix
2021-11-19 00:38:06 +03:00
Anton Bannykh
46a23c70df
[JS IR] hacky fix for local variables name binding
2021-11-19 00:38:03 +03:00
Anton Bannykh
e4c668462c
[JS IR] fix field namer
2021-11-19 00:38:00 +03:00
Anton Bannykh
5100cb058f
[JS IR] local var clashes
2021-11-19 00:37:55 +03:00
Anton Bannykh
05e8bfcd2a
[JS IR] split fqn-ish JsNames before resolving temporary names
2021-11-19 00:37:45 +03:00
Anton Bannykh
a5d9cb0cc6
[JS IR] copy class models
2021-11-19 00:37:40 +03:00
Dmitriy Novozhilov
93378b1a04
[FE 1.0] Resolve private constructors of sealed classes same as for regular classes
...
^KT-44866
^KT-49729
2021-11-18 13:54:05 +03:00
Artem Kobzar
d5dd35cb20
feat(@JsExport for interfaces): add ability to export interfaces in TypeScript.
2021-11-18 10:07:38 +00:00
Svyatoslav Kuzmich
f833fc4bcb
[Wasm] Default parameter values for external functions
...
+ import top-level external functions wrapped in lambdas
2021-11-17 19:28:14 +00:00
Dmitry Petrov
30ceb49442
JVM_IR KT-48945 generate special bridge with unsubstituted signature
2021-11-17 17:44:01 +03:00