Commit Graph

5244 Commits

Author SHA1 Message Date
Mads Ager 09da67767e [JVM_IR] Fix mangling of inline class inherited interface methods.
^KT-49864 Fixed
2021-11-30 03:33:56 +03:00
Anton Bannykh 5b66c4cdc3 [JS IR] speed up temporary name resolving 2021-11-29 21:09:35 +03:00
Anton Bannykh 2259c6f75d [JS IR IC] assert cross-file tag are not null and fix tests 2021-11-29 21:09:35 +03:00
Anton Bannykh 33cd7e982c [IR] support storing signatures for non-public symbols 2021-11-29 21:09:34 +03:00
Anton Bannykh 3be44a3540 [JS IR] fix missing signature 2021-11-29 21:09:33 +03:00
Anton Bannykh ef4ef8c930 [JS IR] switch to the IC Ir2Js and fix tests 2021-11-29 21:09:31 +03:00
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