Pavel Kirpichenkov
07ca355af8
[NI] Fix smartcasts for conventional contains in when
...
Call argument for conventional `contains` after expanding `in` may come from a `when` subject during its branch analysis.
In this case data flow info from a previous when branch was not considered,
because data flow info for subject had been used instead of data flow before argument.
Use of the latter one for the conventional `contains` solves the issue.
The old FE uses `isExternal` property of value arguments to skip smartcast reporting on `when` subject,
if they come from branches. To prevent undesired smartcasts on `when` subject after branch analysis in the new FE,
`isExternal` arguments are skipped in diagnostic reporter and during recorded type update.
Also, the new FE interprets `isExternal` completely differently from the old FE.
In the old FE this property is used exclusively by `when` with subject.
In the new FE it is also used for parially resolved calls, lambda return arguments and receivers.
This may be preventing the use of data flow info before argument in the first place, but this assumption requires additional investigation.
^KT-36818 Fixed
2020-02-20 19:07:54 +03:00
Anton Bannykh
5605eb5a31
Review fix: add TODO comments
2020-02-06 21:03:41 +03:00
Anton Bannykh
1e96c3d21e
DCE-driven mode
...
:js:js.tests:jsIrTest works same as before
:js:js.tests:jsPirTest runs tests in DCE-driven mode
2020-02-06 21:03:41 +03:00
Victor Petukhov
4490efab3e
[NI] Use original descriptor for functions imported from object during JS mangling
...
^KT-35904 Fixed
2020-01-30 19:55:41 +03:00
Abduqodiri Qurbonzoda
b06645d1c0
Update number of reachable nodes because of MutableList.removeFirst/Last
2020-01-29 17:53:08 +03:00
Zalim Bashorov
e6074e8759
[JS BE] Unmute test
2020-01-22 15:20:41 +03:00
Dmitriy Novozhilov
76b3964e96
Update testdata according to change compiler version to 1.4
2020-01-17 10:33:50 +03:00
Zalim Bashorov
ee06678484
[JS BE] Fix is check with Function
...
#KT-33149 fixed
2019-12-26 22:49:53 +03:00
Roman Artemev
cad3cb1bbe
[KLIB] Fix references to type made from TypeParameter in KotlinMangler
...
- promote ABI version
2019-12-17 17:56:07 +03:00
Anton Bannykh
9a971172c9
JS: fix object expression constructor delegation to secondary constructors with default arguments (KT-30517 fixed)
2019-12-15 15:21:23 +03:00
Abduqodiri Qurbonzoda
dabf6376db
Update js reachable nodes count after expanding StringBuilder api
2019-12-06 05:37:09 +03:00
Roman Artemev
4759c16428
[JS IR] Fix IrGetClass for Throwable successors
...
- add test
2019-11-28 14:45:34 +03:00
Roman Artemev
97c8b2074e
[JS] Set correct EXPECTED_REACHABLE_NODES
2019-11-27 00:06:42 +03:00
Anton Bannykh
81699299f5
JS_IR: DCE
...
Could be enabled by toggling `-Xir-dce`
Box test output in js/js.translator/testData/out-min
2019-11-26 12:20:39 +03:00
Roman Artemev
c5e25a0382
[JS IR] Make PrivateMembersLowering global to handle inlined private references correctly
...
- Fixes [KT-33334]
2019-11-25 20:22:03 +03:00
Roman Artemev
9946feb66c
[JS IR] Fix name clash between class members defined on prototype
...
- Fixes [KT-33327]
2019-11-25 20:22:03 +03:00
Roman Artemev
987c6ab3ee
[JS IR] Roll making Char inline class back
...
- un/mute falling tests
2019-11-25 20:22:03 +03:00
Pavel Kirpichenkov
8c52bb4212
Add frontend checks for missing dependency supertypes
...
Call checker and declaration checker are used in order to preserve backward compatibility.
Attempt to use classifier usage checker was not good enouth,
since not all errors found with it would actually be reported before.
For example types and constructor calls don't cause supertypes to resolve,
so missing supertypes would not lead to errors in case they are the only use of class name.
Updated tests failing due to missing Java dependencies in superclasses.
2019-11-18 12:06:41 +03:00
Dmitry Petrov
2ff36c808e
Minor: mute testEa35963 in WASM
2019-10-31 11:13:45 +03:00
Vladimir Dolzhenko
46d843643d
Fixed BoxJsTestGenerated.Main due to nullable arguments in main method
2019-10-28 16:42:14 +01:00
Mark Punzalan
78465e280f
Exclude additional generated testData/out-min dir in js/js.translator.
...
This was causing re-indexing in IntelliJ after every time the JS tests
are run.
2019-10-14 14:51:27 +03:00
Anton Bannykh
aad9cbbf01
[JS IR BE] Fix tests failing due to reduced runtime
2019-10-04 17:30:45 +03:00
Svyatoslav Kuzmich
5d7f18b1b9
[JS] Support wrapped and dynamic types in typeOf
2019-10-03 13:12:46 +03:00
Anton Bannykh
ead8379c50
JS: add -Xmetadata-only flag for JS common code modules (KT-33142 fixed)
2019-09-27 19:12:03 +03:00
Anton Bannykh
b4917ec816
JS: remove unconditional as SimpleType cast
...
This is a workround for a bug introduced in the typeOf
support
2019-09-27 16:55:10 +03:00
Svyatoslav Kuzmich
7592048437
[JS] Support typeOf
2019-09-25 18:12:55 +03:00
Roman Artemev
0040298eac
Fix master
...
- improve assertion message
- compare correct file paths
- fix C JS BE testData
2019-09-04 14:37:14 +03:00
Roman Artemev
90504c797a
[IR SERIALIZATION] Add tests about klib linkage
2019-09-03 14:21:31 +03:00
Svyatoslav Kuzmich
9594e9b3b1
[JS IR BE] Initial export generation
2019-08-30 13:15:37 +03:00
Svyatoslav Kuzmich
6e6ffa12a6
[WASM] Initial infrastructure
...
- New module ":compiler:backend.wasm"
- Initial compiler infra (driver, phaser, context)
- Subset of Wasm AST
- Skeleton of IR -> Wasm AST
- Wasm AST -> WAT transformer
- Testing infra
- SpiderMonkey jsshell tool
2019-08-22 15:59:54 +03:00
Roman Artemev
46b98a1e98
[JS BE] Make sourceMap generation more precise
...
- Don't produce mapping for closing bracket in case of expressionBody
- Map Kt*Function declaration into corresponding js fun declaration
- Update test data & add new test
2019-07-24 18:56:40 +03:00
Roman Artemev
af45e1c5dc
[JS BE] Do not produce source mapping for fake KtElement
...
Fix [KT-26701], [KT-12935]
2019-07-17 10:21:34 +03:00
Roman Artemev
efafb6585e
[JS IR BE] Refactored js("...") function
...
- support object expression
- do not wrap in function in statement-level position
- support implicit return
- code clean up
2019-07-11 18:00:28 +03:00
Roman Artemev
d4fb76c1da
[JS IR BE] Fix overriding property of Throwable
2019-07-09 10:40:01 +03:00
Roman Artemev
d9c6d38715
[JS IR BE] Fix private members lowering
...
- visit over file instead of class
2019-07-09 10:40:01 +03:00
Roman Artemev
8a569cc698
[JS IR BE] Do not create $default stub for external function and any its fake override
2019-07-04 22:59:12 +03:00
Svyatoslav Kuzmich
a2625c7bc8
[JS IR BE] Don't render null messages in Throwable
...
Set message property to 'undefined' to make Error.prototype.toString
skip it
2019-07-04 18:33:23 +03:00
Svyatoslav Kuzmich
871180cdc0
[JS IR BE] Fix setting names of Throwable subclasses without primary constructor
2019-07-03 20:37:49 +03:00
Anton Bannykh
208c8f9339
JS: fix bootstrap
2019-07-01 20:22:05 +03:00
Svyatoslav Kuzmich
69962cbf8c
[JS IR BE] Add JsExport annotations
2019-07-01 18:55:41 +03:00
Anton Bannykh
fadeac083f
JS: fix reified T::class for primitive T (e.g. Int) (KT-32215 fixed)
2019-06-28 13:49:22 +03:00
Svyatoslav Kuzmich
0b19a4a32b
[JS IR BE] Initial version of member namer
2019-06-21 17:02:01 +03:00
Ilya Gorbunov
aa69933ee0
Update EXPECTED_REACHABLE_NODES
...
DCE doesn't remove DurationUnit and some other kotlin.time stuff in these cases
2019-06-18 04:02:36 +03:00
Roman Artemev
5686de7e09
[JS IR BE] Make kotlinx.io compile
...
- Fix expect/actual default arguments
- Fix dynamic type in inliner
- Fix external varargs
2019-05-31 13:14:43 +03:00
Anton Bannykh
c3170d1908
JS: cache metadata, grouped by package FQN
2019-05-28 23:33:17 +03:00
Anton Bannykh
c1f69ca8d6
JS: prepare to cache package metadata
2019-05-28 23:33:17 +03:00
Anton Bannykh
052ddd60ce
JS: support callable references on suspend functions (KT-30987 fixed)
2019-05-28 19:13:08 +03:00
Dmitry Savvinov
9d0f518d62
Rename PlatformDependentCompilerServices -> PlatformDependentAnalyzerServices
2019-05-28 13:08:09 +03:00
Dmitry Savvinov
f2a0a809f1
[Platform API] Split TargetPlatform into lightweight TargetPlatform and CompilerServices
...
This decouples simple data (TargetPlatform) from other subsystem-specific
logic (like default imports, built-ins, etc.).
Aside from purely aesthetic improvements, it also makes it easier
to move 'TargetPlatform' into core (see next commits)
2019-05-28 13:08:06 +03:00
Svyatoslav Kuzmich
30ada0ccbb
[JS] Fix type in vararg test
2019-05-24 11:50:46 +03:00