Alexey Andreev
93f8542fc4
JS: serialize location of JsCase/JsDefault
...
See KT-21699
2017-12-11 17:20:15 +03:00
Alexey Andreev
25e56874c1
JS: readable error when source maps change in IC tests
2017-12-11 17:20:15 +03:00
Alexey Andreev
45e5cc190f
Update DCE limits in JS tests
2017-12-04 11:25:39 +03:00
Alexey Andreev
9c0e049bbe
JS: fix boxed char with latest changes in compiler
2017-12-01 15:20:34 +03:00
Alexey Andreev
af6adc61ae
Update bootstrap to 1.2.20-dev-524
2017-11-30 15:27:41 +03:00
Alexey Andreev
acb058f328
JS: fix bootstrap build error related to updates in source maps
2017-11-30 14:26:05 +03:00
Alexey Andreev
063b4b6c18
Remove unused 'json-org' dependency (fix build)
2017-11-30 11:43:44 +03:00
Alexey Andreev
1d48442a5d
Change default output dir in JS DCE Gradle plugin
...
See KT-21328
Compiler removes all files from its output directory.
Due to this reason (and some other reasons) it't not a good idea
to put DCE output to `classes` dir.
Therefore we changed output dir to `$buildDir/kotlin-js-min`.
Additionally, we now allow to customize output dir.
In particular, this fixes issues with webpack in multi-project build +
continuous Gradle build.
2017-11-29 20:08:30 +03:00
Alexey Andreev
5672e1f56e
JS: add DCE devmode. Fix mapping paths in source maps
...
See KT-20210, KT-21307
2017-11-29 20:08:30 +03:00
Alexey Andreev
ffdebfab45
JS: change the way how DCE resolves input paths
2017-11-29 20:08:29 +03:00
Alexey Andreev
8514a7706f
Remove json.org library, use own JSON parser to parse source maps
2017-11-29 20:08:29 +03:00
Alexey Andreev
729715ec62
Add simple JSON parser
2017-11-29 19:43:28 +03:00
Alexey Andreev
19438a3a07
JS: fix losing lambda in inline function after incremental compilation
...
See KT-21493
It's hard to maintain staticRef in cached AST. In fact, we don't need
it in this optimization. We'll get excessive names in used set,
which is ok: non-function names don't matter, they'll be simply ignored.
One possible concern: there's more chance to get name same to
some function's name and it won't be removed. First, it's not fatal,
it won't break the code (but put some excessive code that will likely
be removed by DCE). Second, there's same chance of two functions
having same names, and we manage to avoid this (otherwise we'll get
many problems).
2017-11-29 11:53:35 +03:00
Alexey Andreev
29b494cdac
JS: don't optimize when over external enum
...
See KT-21468
2017-11-29 11:52:36 +03:00
Alexey Andreev
7bee2ceac7
JS: add boxing/unboxing to default accessors of non-simple properties
...
See KT-21421
2017-11-27 17:01:19 +03:00
Alexey Andreev
be4e2f96c2
JS: throw error from coroutine marker functions
2017-11-27 17:01:18 +03:00
Alexey Andreev
71b1591044
JS: replace suspend inline metadata after inlining
...
This fixes some issues on coroutine inlining, see tests
2017-11-27 17:01:18 +03:00
Alexey Andreev
f8e7861ce6
JS: add partial tail-call optimization for suspend functions
2017-11-27 17:01:17 +03:00
Alexey Andreev
7c621488ad
Remove unnecessary CONTAINS_NON_TAIL_SUSPEND_CALLS slice
2017-11-27 17:01:17 +03:00
Alexey Andreev
26843509c7
JS: disable suspend function tail-call optimization based on FE data
...
Partially fixes KT-21026
2017-11-27 17:01:16 +03:00
Alexey Andreev
6ab87ad66a
Fix failing JS tests
2017-11-27 17:01:15 +03:00
Alexey Andreev
ec8adfe7c4
JS: fix referencing outer class from secondary constructor
...
See KT-21041
2017-11-21 12:22:10 +03:00
Alexey Andreev
88441da131
JS: cache PropertyMetadata objects in property delegates
...
Also, remove unused PropertyMetadata instances
See KT-20737, KT-20738
2017-11-21 12:21:22 +03:00
Alexey Andreev
7ebfba3722
JS: apply boxing when initializing val parameter of type Char
...
See KT-20854
2017-11-21 12:20:01 +03:00
Alexey Andreev
32a0221474
JS: refactor code that copies default methods in interfaces to classes
...
Als fixes KT-21245
2017-11-21 12:18:16 +03:00
Alexey Andreev
38e50e964a
JS: fix generation of source map for inline lambda with ignored result
...
See KT-21309
2017-11-21 12:15:25 +03:00
Alexey Andreev
a9548b1224
JS: fix translation of safe calls to suspend unit functions
...
See KT-21317
2017-11-20 19:19:24 +03:00
Alexey Andreev
89db4dfe79
JS: translate when against enum to JsSwitch when possible
2017-11-17 11:07:41 +03:00
Alexey Andreev
c54c4a6ce8
JS: fix support of JsSwitch in coroutines
2017-11-17 11:07:39 +03:00
Alexey Andreev
678b4c67c1
JS: translate when to JsSwitch when possible
...
See KT-21160
2017-11-17 11:07:38 +03:00
Alexey Andreev
7b403211dd
JS: kotlinize WhenTranslator
2017-11-17 11:07:37 +03:00
Alexey Andreev
b93acb07d2
JS: don't remove debugger statement from coroutine
...
See KT-19826
2017-11-17 11:07:36 +03:00
Alexey Andreev
21de76f88d
JS: fix identifier generation in delegate constructor calls
...
See KT-21093
2017-11-17 11:07:34 +03:00
Alexey Andreev
f51709e61c
Clean-up application from EncodeSignatureTest
...
Hopefully, this fixes random failing tests
2017-11-08 16:13:07 +03:00
Alexey Andreev
779af375a7
JS: fix inlining of array constructor expressed via typealias
...
See KT-20978
2017-11-08 16:12:16 +03:00
Alexey Andreev
ec53f9b254
JS: don't emit short circuit operators for boolean and/or
...
See KT-21004
2017-11-08 16:10:57 +03:00
Alexey Andreev
132285ea03
JS: optimize loop over array.withIndex()
...
See KT-20932
2017-11-03 17:36:05 +03:00
Alexey Andreev
1be86e05ae
JS: optimize range check for int and long
...
See KT-2218
Additionally, fix temporary variable elimination for && and ||
2017-11-03 17:35:17 +03:00
Alexey Andreev
43302ce00c
JS: add missing members to kotlin.js.Date
...
See KT-20694
2017-11-03 17:31:25 +03:00
Alexey Andreev
0a31b4ccc1
JS: improve declarations for JSON object
...
See KT-20580
2017-11-03 17:31:22 +03:00
Alexey Andreev
bd7129d0d6
JS: fix non-abstract extension properties in interfaces
...
KT-20994
2017-11-03 17:29:44 +03:00
Alexey Andreev
1f643ddce8
JS: add test to prove that KT-11910 is not reproducible anymore
2017-10-30 13:12:12 +03:00
Alexey Andreev
6b43465ed8
JS: add tests to check if super.equals/hashCode works properly
...
See KT-8226
2017-10-30 13:12:10 +03:00
Alexey Andreev
e9e01b70a8
JS: fix super access to simple non-overridable properties
...
See KT-7653
2017-10-30 13:12:09 +03:00
Alexey Andreev
e488cf13ad
JS: fix FE crashing when type argument count less than parameter count
...
See KT-20908
2017-10-30 13:10:35 +03:00
Alexey Andreev
a6e98c30d7
JS: fix crash when js function contains assignment with bad LHS
...
Fix KT-20905
2017-10-30 13:08:35 +03:00
Alexey Andreev
bbcf4f7caf
JS: raise metadata version due to incompatible changes in 1.2 runtime
2017-10-25 20:18:04 +03:00
Alexey Andreev
85945e0a6d
JS: add getFunctionById intrinsic
2017-10-25 20:18:04 +03:00
Alexey Andreev
aae67e154a
JS: add intrinsic for !!. Use it instead of ternary conditionals
...
See KT-2976
2017-10-25 20:18:03 +03:00
Alexey Andreev
6adb62f3a2
JS: prohibit declaration names that clash with JS builtin functions
...
See KT-18095, KT-17475, KT-18105, KT-5259
2017-10-23 17:19:52 +03:00
Alexey Andreev
e0eea15a4c
Fix JS tests failing on Windows
2017-10-23 17:19:51 +03:00
Alexey Andreev
e1f8bac4d5
JS: several bugfixes in incremental compilation
...
1. Fix exported packages sometimes being mixed up
2. Fix metadata losing package fragments sometimes
3. Don't serialize empty packages to .meta.js
4. Preserve order of package fragments in .meta.js
5. In IC tests, compare textual representation of metadata rather
than binary representation
2017-10-23 17:19:51 +03:00
Alexey Andreev
1079d74422
Support generation of relative path in JS source maps in JPS builder
...
See KT-20820
Original commit: 2fbecfdd9c
2017-10-23 17:19:50 +03:00
Alexey Andreev
2fbecfdd9c
Support generation of relative path in JS source maps in JPS builder
...
See KT-20820
2017-10-23 17:19:50 +03:00
Alexey Andreev
cb0482f53e
JS: fix crash when js function contains for statement w/o initializer
...
Fix KT-20898
2017-10-23 17:19:49 +03:00
Alexey Andreev
d9d565d8b0
JS: use 'external' word instead of 'native' in diagnostic messages
...
See KT-20639
2017-10-23 17:19:48 +03:00
Alexey Andreev
b781661279
JS: fix copying functions with default arguments across interfaces
...
Copy function to super interface first, then copy from interface
to class. Add interface set to JsClassModel for this purpose.
See KT-20625
2017-10-19 13:10:47 +03:00
Alexey Andreev
d4ea4983d8
JS: support integer overflow semantics for unary minus operator
...
See KT-19290
2017-10-19 12:59:09 +03:00
Alexey Andreev
46526db8f0
JS: fix behaviour of char-returning functions with multiple inheritance
...
See KT-19772
2017-10-16 18:56:33 +03:00
Alexey Andreev
8a8891d7c9
Fix Kotlin/JS compiler under JRE9
...
See KT-20653, KT-20650
2017-10-12 14:39:47 +03:00
Alexey Andreev
fd1aa97d0c
Enable test that now passes in JS
2017-10-11 17:35:32 +03:00
Alexey Andreev
cddc8df134
Fix Scala code style options
2017-10-11 17:35:32 +03:00
Alexey Andreev
06b1ba7c47
JS: use prototype when checking is against interface
...
See KT-20527
2017-10-11 17:35:31 +03:00
Alexey Andreev
8cdef4139e
Fix JS DCE removing reachable functions
2017-10-10 18:59:18 +03:00
Alexey Andreev
8f9fc100a3
Fix compilation of JS stdlib
...
1. Don't import intrinsics when compiling stdlib, use declarations
from current module instead
2. Add constructor with one argument to SourceFilePathResolver,
to fix bootstrapping issues.
3. Pass correct source roots to compiler when building
stdlib, since now we pass module root by default,
while stdlib source roots are outside of module root.
2017-10-10 14:11:15 +03:00
Alexey Andreev
eaa8729259
Fix embedding sources to source maps when compiling JS stdlib
2017-10-06 18:26:15 +03:00
Alexey Andreev
3b3fd0fa0d
JS: fix DCE limits in test data to fit new kotlin.js size
...
The size has increased due to new implementation of KClass
2017-10-06 18:16:51 +03:00
Alexey Andreev
2cf01f60b3
JS: generate paths in source maps relative to .map file location
...
See KT-19818
Original commit: 9008791a54
2017-10-06 15:24:25 +03:00
Alexey Andreev
9008791a54
JS: generate paths in source maps relative to .map file location
...
See KT-19818
2017-10-06 15:24:25 +03:00
Alexey Andreev
93a3026c6d
JS: improve representation of KClass for primitive types
...
See KT-17933, KT-17629, KT-17760
2017-10-06 15:21:38 +03:00
Alexey Andreev
27e319a279
JS: fix parsing of object literals in js() function.
...
Also, fix generation of source maps of content of js() function.
See KT-19794
2017-10-04 12:01:51 +03:00
Alexey Andreev
c15847a957
JS: support non-local return from secondary constructor
...
See KT-14549
2017-10-04 12:00:53 +03:00
Alexey Andreev
e323da3c5e
Fix compilation of Maven JS plugin
2017-10-03 17:23:02 +03:00
Alexey Andreev
10f7f61991
Fix compilation of Gradle JS task
2017-10-03 14:50:24 +03:00
Alexey Andreev
d42ddff160
JS: rename -source-map-source-roots to -source-map-base-dirs
...
See KT-19906
Original commit: 21e91c4052
2017-10-03 14:26:37 +03:00
Alexey Andreev
21e91c4052
JS: rename -source-map-source-roots to -source-map-base-dirs
...
See KT-19906
2017-10-03 14:26:37 +03:00
Alexey Andreev
0269c3309a
JS: fix parsing of wrong delete operation in js function.
...
See KT-15294
2017-09-29 14:32:49 +03:00
Alexey Andreev
bad50c03a7
JS: support cross-module inlining of suspend functions
...
See KT-18063
2017-09-29 14:32:49 +03:00
Alexey Andreev
992cc61abc
JS: prove that KT-15292 is no more reproducible
2017-09-29 14:32:48 +03:00
Alexey Andreev
bf87826dd1
JS: add test to prove that KT-15622 is no more reproducible
2017-09-29 14:32:47 +03:00
Alexey Andreev
43c6f8b9b1
JS: fix copying fun with default args from interface to abstract class
...
See KT-20451
2017-09-29 14:32:47 +03:00
Alexey Andreev
3b5c2bbcaa
Add Gradle task to run JS tests without DCE
...
This should be helpful when frequently testing changes in JS BE.
2017-09-27 14:22:15 +03:00
Alexey Andreev
3b2d634cea
JS: optimize variable representation in coroutines
...
Don't convert local variables to fields of coroutine object
when variable is both used and defined in a single block.
2017-09-26 13:56:20 +03:00
Alexey Andreev
b852f73dd2
JS: make string template optimization more conservative
...
See KT-18548
2017-09-26 13:56:20 +03:00
Alexey Andreev
ca014468ee
JS: improve name clash checker to handle complicated cases
...
See KT-18010
2017-09-26 13:56:19 +03:00
Alexey Andreev
95566b1374
JS: fix serialization of fileId in case of incremental compilation
2017-09-26 13:56:19 +03:00
Alexey Andreev
ee4d790f43
JS: optimize default arguments in cross-module inliner
...
This reduces size of circlet UI (of approx 2.5 mb) by about 90 kb
2017-09-25 11:29:05 +03:00
Alexey Andreev
e6ab3dc936
JS: generate aliases for intrinsics.
...
This makes generated code more friendly to UglifyJS.
For example, uglified circlet loses 15 kb.
2017-09-25 11:29:04 +03:00
Alexey Andreev
c5e5a43f68
JS: fix unit materialization in case of null check and elvis operator
...
See KT-20287
2017-09-19 15:30:55 +03:00
Alexey Andreev
b4c622d433
JS: optimize destructuring declaration when possible
...
See KT-8285
2017-09-19 15:30:26 +03:00
Alexey Andreev
a2bfaf4fc8
Fix multiplatform test (use expect/actual instead of header/impl)
2017-09-19 15:21:30 +03:00
Alexey Andreev
d312996f3a
JS: generate import statement for COROUTINE_SUSPENDED property
...
This makes code with lots of corutines more feasible for uglification
2017-09-18 13:13:40 +03:00
Alexey Andreev
9771a3c66e
JS: prove that KT-8282 is no more reproducible
2017-09-18 13:13:00 +03:00
Alexey Andreev
aa35d4ed36
JS: prove that KT-8315 is no more reproducible
2017-09-18 13:13:00 +03:00
Alexey Andreev
6ba0ac1238
JS: prove that KT-7011 is no more reproducible
2017-09-18 13:12:59 +03:00
Alexey Andreev
a66cd8b309
Fix name clash in JS implementation of multiplatform extension property
...
See KT-18756
2017-09-18 13:10:51 +03:00
Alexey Andreev
c90c3e4bf5
Add hack to make JS coercion compatible with older versions of stdlib
2017-09-11 14:34:35 +03:00
Alexey Andreev
0acc96c4f3
Translate reference to kotlin.Unit to a shorter JS code
2017-09-11 14:34:35 +03:00
Alexey Andreev
2656a6a513
Eliminate redundant RHS of JS comma expression
2017-09-11 14:34:34 +03:00
Alexey Andreev
37fa45dc34
Add mechanism for type coercion in JS
...
Use it for char boxing/unboxing and unit materialization.
Possible to use for other purposes, for example, to add type checks
to dynamics.
See KT-18793, KT-17915, KT-19081, KT-18216, KT-12970, KT-17014,
KT-13932, KT-13930
2017-09-11 14:34:34 +03:00