Zalim Bashorov
4c4bcb1e3e
[Gradle, JS] Turn on by default sourcemap generation for JS IR
...
#KT-46551 Fixed
2021-07-05 21:01:45 +03:00
Zalim Bashorov
8da62b56fb
[IR] Put correct line numbers on return while inlining
...
#KT-46551 In Progress
2021-07-05 21:01:44 +03:00
Zalim Bashorov
d1f5ab4b09
[JS IR] Generate correct source locations in sourcemap for inline declarations
...
* Keep returnable blocks.
* Add a new lowering which simplifies returnable blocks by introducing
temporary variable for result and changing returnable block's type to Unit.
* Use information from returnable blocks in codegen to generate
the right source locations in sourcemap.
* Support in namer (LocalNameGenerator).
* Fix some lowerings to work correctly with returnable blocks.
#KT-46551 In Progress
2021-07-05 21:01:43 +03:00
Zalim Bashorov
2460f5f9ae
[JS CLI] Support sourcemap generation for IR BE in CLI
...
#KT-46551 In Progress
2021-07-05 21:01:41 +03:00
Zalim Bashorov
5a3efc1a98
[JS IR] Fill source info in codegen
...
#KT-46551 In Progress
2021-07-05 21:01:40 +03:00
Zalim Bashorov
64c6d852de
[JS IR] Preparing for introducing sourcemap as another compilation output
...
* Rename `JsCode` to `CompilationOutputs`.
* Rename members of CompilerResult.
#KT-46551 In Progress
2021-07-05 21:01:38 +03:00
Zalim Bashorov
d9b7230144
[JS IR] add dependency to sourcmap module
...
#KT-46551 In Progress
2021-07-05 21:01:37 +03:00
Zalim Bashorov
aae1057f35
[IR] Support IrReturnableBlock inside IR renderer
2021-07-05 21:01:35 +03:00
Zalim Bashorov
a908e5576d
[JS] Extract sourcemap generating related files to a separate module
...
It's required to reuse the same infrastructure in the new backend.
2021-06-28 16:04:09 +03:00
Zalim Bashorov
e947556aaa
[IR] Use separate directories for each module for IR dumps
...
It allows avoiding overwriting content generated for other modules.
Also, added using additional ".kt" prefix to file extension for dumps generated with Kotlin like syntax.
2021-06-26 01:38:04 +03:00
Zalim Bashorov
3f10914f05
[JS] Replace usages of FileUtil.loadTextAndClose with functions from stdlib to avoid crashes on files larger than 10MiB
2021-02-02 18:47:44 +03:00
Zalim Bashorov
47c4197098
[JS old] Revert fix made for KT-44221 in ab753625
...
And mute the test for old BE.
#KT-44221 Open
2021-01-13 01:22:17 +03:00
Zalim Bashorov
531ba4bb48
[IR] Narrow usage scope of ObsoleteDescriptorBasedAPI in CheckIrElementVisitor
2020-12-28 18:53:55 +03:00
Zalim Bashorov
02849edc22
[IR] Make descriptor parameter optional for IrFileSymbolImpl and IrExternalPackageFragmentSymbolImpl
...
Remove DescriptorlessIrFileSymbol and use IrFileSymbolImpl instead.
2020-12-28 18:53:54 +03:00
Zalim Bashorov
14254ceb0b
[IR] Remove no longer needed usages of ObsoleteDescriptorBasedAPI
2020-12-28 18:53:54 +03:00
Zalim Bashorov
0372dae3ce
[JS scripting] Remove usages of descriptor based APIs and proper support for callable references
2020-12-28 18:53:53 +03:00
Zalim Bashorov
9ac7c3d8bc
[Wasm] Remove usage of descriptor based API usage from WasmSharedVariablesManager
2020-12-28 18:53:53 +03:00
Zalim Bashorov
c569ec1bad
[IR] Add dumpKotlinLike for IrType and IrTypeArgument
2020-12-28 18:53:52 +03:00
Zalim Bashorov
03594baa07
[IR] Improve dumpKotlinLike
...
* Generate a comment for modules.
* Fix printing supertypes for classes.
* Don't fail while printing constructor call if data's parent isn't IrClass
2020-12-24 20:03:24 +03:00
Zalim Bashorov
f7b0f55532
[JS IR test] Add an ability to setup phases to dump after and phases to validate after in box tests using system properties
2020-12-24 20:03:24 +03:00
Zalim Bashorov
ee60a1a431
[IR] Add an ability to change dump strategy using a system property
2020-12-24 20:03:23 +03:00
Zalim Bashorov
274b09cf36
[JS IR] Support generating JS expression from IrComposite
...
Except the case when it's empty.
2020-12-24 20:03:23 +03:00
Zalim Bashorov
72593e3d30
[JS IR] Revert jsClass_js-ir.kt to not break compatibility with older compiler versions
2020-12-24 20:03:23 +03:00
Zalim Bashorov
d7e3f826bb
[JS IR] Generate jsClass function inside the compiler instead of relying on declaration inside stdlib
...
We want to make its type parameter reified to do it we have to make it inline and non-external.
But we don't want to inline it in call sites and want prevent using it anywhere except places generated by the compiler.
In user code, including stdlib, we should use `K::class.js` instead.
Separately we have to intrinsify `K::class.js` to reduce overhead.
2020-12-24 20:03:23 +03:00
Zalim Bashorov
df6635085b
[JS IR] Replace calls with invalid type arguments for type parameters with call to errorCode function from runtime.
2020-12-24 20:03:22 +03:00
Zalim Bashorov
ff77155b5a
[JS IR] A type argument of the jsClass intrinsic must be a class (IrClass)
2020-12-24 20:03:22 +03:00
Zalim Bashorov
c1f6a72ae1
[JS IR] Remove inline properties with reified parameters
...
RemoveInlineFunctionsWithReifiedTypeParametersLowering -> RemoveInlineDeclarationsWithReifiedTypeParametersLowering
2020-12-24 20:03:22 +03:00
Zalim Bashorov
da8dacb495
[JS IR] run RemoveInlineFunctionsWithReifiedTypeParametersLowering earlier
...
It's required to avoid extracting local classes declarations and leaking some references to inline function internals.
2020-12-24 20:03:21 +03:00
Zalim Bashorov
bc9828f3f3
[JS IR] Generate a key using hashedMangle for all IR declarations in mapToKey
...
It is required to avoid "key" clashes and failing with ISE.
2020-12-24 20:03:21 +03:00
Zalim Bashorov
7c5ea414b7
[JS IR] Use mappedNames in NameTable only for REPL
...
And throw exception for unsupported types in mapToKey
2020-12-24 20:03:21 +03:00
Zalim Bashorov
e5c62c3838
[JS] Disable special checks in labeled-block-to-do-while
2020-12-07 17:27:24 +03:00
Zalim Bashorov
7ca54ec405
[JS IR] unmute test arraySort.kt
2020-12-07 17:27:23 +03:00
Zalim Bashorov
4c69f78de8
[JS] Replace J2V8 based ScriptEngine with a process-based version
...
The main advantage of this is that we can use a newer and official build of V8.
Also, with new infra, we can use other JS engines.
Other changes:
* ScriptEngine API is simplified and documented.
* Introduce ScriptEngineWithTypedResult with typed `eval`, mostly for JsReplEvaluator and JsScriptEvaluator.
* J2V8 version is completely removed.
* Use new ScriptEngineV8 everywhere by default.
* System property `kotlin.js.useNashorn` switches to Nashorn in all tests.
2020-12-07 17:27:23 +03:00
Zalim Bashorov
39cc149da0
[JS] Revert disabling running ES6 tests on all platforms except linux
...
Revert "[JS TESTS] Emulate failing of non-run tests"
This reverts commit 2fd69218
Revert "[JS TESTS] Don't run ES6 test on win & mac till j2v8 issue is fixed."
This reverts commit 08624165
Revert "[JS TESTS] Add EP to disable run test on specific platform"
This reverts commit 50162265
2020-12-07 17:27:23 +03:00
Zalim Bashorov
2cb4a4906f
[JS] Remove j2v8 from dependencies
2020-12-07 17:27:22 +03:00
Zalim Bashorov
f4431a21fc
[JS] Make all JS test tasks depending on setupV8
2020-12-07 17:27:22 +03:00
Zalim Bashorov
9cc3725db1
[JS] Move JS engines download and setup code higher to use it from other tasks
2020-12-07 17:27:21 +03:00
Zalim Bashorov
bc4c2349c0
[JS] Extract engine setup related code from wasmTest
2020-12-07 17:27:21 +03:00
Zalim Bashorov
70eb3d2486
[JS] BasicBoxTest.kt: cleanup
2020-12-07 17:27:20 +03:00
Zalim Bashorov
f573b81456
[JS] Minor: fix typo in AntTaskJsTest
2020-12-07 17:27:20 +03:00
Zalim Bashorov
6abd656116
[IR] dumpKotlinLike: update testdata after rebase
2020-11-26 00:15:26 +03:00
Zalim Bashorov
0d5a0b207e
[IR] KotlinLikeDumper: add a note about some conventions used for TODO comments
2020-11-26 00:15:25 +03:00
Zalim Bashorov
c004269547
[IR] KotlinLikeDumper: unify and add more comments for the cases when used a syntax which is invalid in Kotlin
2020-11-26 00:15:24 +03:00
Zalim Bashorov
5a755054f8
[IR] dumpKotlinLike: add a comment about some conventions which could be unclear
2020-11-26 00:15:22 +03:00
Zalim Bashorov
69f0f4ef19
[IR] update testdata: unify printing custom/non-standard modifiers
2020-11-26 00:15:21 +03:00
Zalim Bashorov
90fdfbde68
[IR] KotlinLikeDumper: unify printing custom/non-standard modifiers
2020-11-26 00:15:19 +03:00
Zalim Bashorov
57cb8f97e9
[IR] update testdata: don't use "D" suffix on double constants
2020-11-26 00:15:18 +03:00
Zalim Bashorov
73771a3513
[IR] KotlinLikeDumper: don't use "D" suffix on double constants
2020-11-26 00:15:17 +03:00
Zalim Bashorov
7df6575a18
[IR] update testdata: unify representation for error nodes
2020-11-26 00:15:16 +03:00
Zalim Bashorov
ef9a901635
[IR] KotlinLikeDumper: unify representation for error nodes
2020-11-26 00:15:15 +03:00
Zalim Bashorov
f8690d0395
[IR] KotlinLikeDumper: minor, collapse an if to helper function and add few more todos
2020-11-26 00:15:14 +03:00
Zalim Bashorov
c68040753d
[IR] dumpKotlinLike: add testdata for FIR tests
2020-11-26 00:15:13 +03:00
Zalim Bashorov
d7bd4240e1
[IR] dumpKotlinLike: don't crash when type argument is null
2020-11-26 00:15:12 +03:00
Zalim Bashorov
dec067af8c
[IR] stop overwriting testdata for dumpKotlinLike and use assertEqualsToFile
2020-11-26 00:15:11 +03:00
Zalim Bashorov
43ee50b91d
[IR] update testdata after rebase
2020-11-26 00:15:10 +03:00
Zalim Bashorov
2773e4baca
[IR] KotlinLikeDumper.kt -> dumpKotlinLike.kt
2020-11-26 00:15:09 +03:00
Zalim Bashorov
36591ba5f7
[IR] KotlinLikeDumper: replace all usages of commentBlockH with commentBlock
2020-11-26 00:15:07 +03:00
Zalim Bashorov
ad0f154ed1
[IR] add new testdata after rebase
2020-11-26 00:15:07 +03:00
Zalim Bashorov
f9fe82e735
[IR] KotlinLikeDumper: process specially when IrElseBranch's condition is not true constant
2020-11-26 00:15:05 +03:00
Zalim Bashorov
503370c9c2
[IR] update testdata: escape special symbols in Char and String constant values
2020-11-26 00:15:04 +03:00
Zalim Bashorov
0f10b5eb9e
[IR] KotlinLikeDumper: escape special symbols in Char and String constant values
2020-11-26 00:15:03 +03:00
Zalim Bashorov
92dda5cd92
[IR] KotlinLikeDumper.kt: cleanup
2020-11-26 00:15:02 +03:00
Zalim Bashorov
5b0efe2b64
[IR] KotlinLikeDumper: rearrange methods
2020-11-26 00:15:01 +03:00
Zalim Bashorov
d9dbc01c3e
[IR] KotlinLikeDumper: p.print("") -> p.printIndent()
2020-11-26 00:15:00 +03:00
Zalim Bashorov
c7d9b7adbe
[IR] KotlinLikeDumper: rearrange methods
2020-11-26 00:14:59 +03:00
Zalim Bashorov
76e959ef8c
[IR] KotlinLikeDumper: minor, update some comments
2020-11-26 00:14:58 +03:00
Zalim Bashorov
e94528fe0d
[IR] update testdata: print class name for callable references without receivers
2020-11-26 00:14:57 +03:00
Zalim Bashorov
b6e37c1f89
[IR] KotlinLikeDumper: print class name for callable references without receivers
2020-11-26 00:14:56 +03:00
Zalim Bashorov
2dbd784a6a
[IR] update testdata: print else -> ...
2020-11-26 00:14:55 +03:00
Zalim Bashorov
14dabed85a
[IR] KotlinLikeDumper.kt: move branch support to corresponding visit* methods
2020-11-26 00:14:54 +03:00
Zalim Bashorov
8f155c23a0
[IR] update testdata: better support for callable references
2020-11-26 00:14:53 +03:00
Zalim Bashorov
0d3d61862b
[IR] KotlinLikeDumper: better support for callable references
2020-11-26 00:14:52 +03:00
Zalim Bashorov
87eb06a21f
[IR] update testdata: improve annotations rendering in case when argument was not provided and there is default value
2020-11-26 00:14:51 +03:00
Zalim Bashorov
a34a311e86
[IR] update testdata: support annotations on parameters
2020-11-26 00:14:50 +03:00
Zalim Bashorov
182cb52bdb
[IR] KotlinLikeDumper: various changes for value and type params
...
* support annotations on value parameters
* support new value parameter flags -- hidden, assignable
* extract and reuse logic for value and type parameters
2020-11-26 00:14:49 +03:00
Zalim Bashorov
5cb2572c60
[IR] update testdata: better support for enum and object accesses
2020-11-26 00:14:48 +03:00
Zalim Bashorov
1fd12b7b8a
[IR] KotlinLikeDumper: better support for enum and object accesses
2020-11-26 00:14:47 +03:00
Zalim Bashorov
635cb44bf3
[IR] update testdata: support IrDynamic* nodes
2020-11-26 00:14:46 +03:00
Zalim Bashorov
82839e6a67
[IR] KotlinLikeDumper: support IrDynamic* nodes
2020-11-26 00:14:45 +03:00
Zalim Bashorov
cdc74304c7
[IR] add testdata for irJsText
2020-11-26 00:14:44 +03:00
Zalim Bashorov
68b17fe55b
[IR] KotlinLikeDumper: add more visit* to implement
2020-11-26 00:14:43 +03:00
Zalim Bashorov
4fb762e019
[IR] update testdata: minor updates for error nodes
2020-11-26 00:14:41 +03:00
Zalim Bashorov
b129788823
[IR] KotlinLikeDumper: minor updates for error nodes
2020-11-26 00:14:40 +03:00
Zalim Bashorov
a128cdc99c
[IR] KotlinLikeDumper: add more TODOs and remove some obsolete ones
2020-11-26 00:14:39 +03:00
Zalim Bashorov
bf20720590
[IR] KotlinLikeDumper: reformat
2020-11-26 00:14:38 +03:00
Zalim Bashorov
ad5df79e39
[IR] KotlinLikeDumper: merge Break & Continue
2020-11-26 00:14:36 +03:00
Zalim Bashorov
64b42401a1
[IR] update testdata: print a parameter in catch
2020-11-26 00:14:34 +03:00
Zalim Bashorov
2775c89ebb
[IR] KotlinLikeDumper: print a parameter in catch
2020-11-26 00:14:33 +03:00
Zalim Bashorov
5c8a93c7ff
[IR] update testdata: support labels on loops, break & continue
2020-11-26 00:14:32 +03:00
Zalim Bashorov
9daa86c1a2
[IR] KotlinLikeDumper: support labels on loops, break & continue
2020-11-26 00:14:31 +03:00
Zalim Bashorov
21da2b0350
[IR] update testdata: print whole string concatenation at one line
2020-11-26 00:14:30 +03:00
Zalim Bashorov
91c9d9d25c
[IR] KotlinLikeDumper: print whole string concatenation at one line
2020-11-26 00:14:29 +03:00
Zalim Bashorov
a6b408978f
[IR] update testdata: super and receiver for field accesses
2020-11-26 00:14:28 +03:00
Zalim Bashorov
029ee6f2e7
[IR] KotlinLikeDumper: super and receiver on field accesses
2020-11-26 00:14:27 +03:00
Zalim Bashorov
0bf587ad4b
[IR] KotlinLikeDumper: deduplicate code between IrDelegatingConstructorCall and IrEnumConstructorCall
2020-11-26 00:14:26 +03:00
Zalim Bashorov
e56787c0b0
[IR] update testdata: IrInstanceInitializerCall
2020-11-26 00:14:25 +03:00
Zalim Bashorov
26dd009713
[IR] KotlinLikeDumper: change rendering for IrInstanceInitializerCall
2020-11-26 00:14:24 +03:00
Zalim Bashorov
ab8188b032
[IR] update testdata: removed extra indentation for function expressions
2020-11-26 00:14:23 +03:00
Zalim Bashorov
cf5ba82453
[IR] KotlinLikeDumper: don't indent function expressions
2020-11-26 00:14:22 +03:00
Zalim Bashorov
5500b014f5
[IR] update testdata: better support for IrEnumConstructorCall and IrEnumEntry
2020-11-26 00:14:21 +03:00