Zalim Bashorov
4d7cf81ed0
[Wasm] Stop supporting "_export.js" in test infra, use import/export capability in relevant tests
...
* It works slightly differently in SpiderMonkey.
* It was a hack.
2023-03-06 23:19:02 +01:00
Zalim Bashorov
bec827b654
[Wasm] Update SpiderMonkey to 112.0a1 (2023-03-04-09-52-24)
2023-03-06 23:19:02 +01:00
Zalim Bashorov
f3e022e4ca
[Wasm] Print an instruction if CompileError was thrown while instantiating a module
...
#KT-56160 Fixed
2023-02-03 14:06:32 +01:00
Zalim Bashorov
95a1218996
[CODEOWNERS] Change owner of wasm intrinsics to "Kotlin Wasm"
...
And make "Kotlin Wasm" co-owner of /js/js.translator/testData/
2023-02-01 00:36:11 +01:00
Zalim Bashorov
58e523b890
[Wasm] Change target directory for wasm intrinsics for finer tuning code owners
...
Also, minor cleanup in the generator.
2023-02-01 00:35:49 +01:00
Zalim Bashorov
6a73650b35
[Wasm] SpiderMonkey.kt -> WasmVM.kt
2023-01-27 17:57:50 +01:00
Zalim Bashorov
b02279de14
[Wasm] Run wasm test using all available VMs: V8 & SpiderMonkey for now
...
Also, add a new directive, `WASM_FAILS_IN`, to specify VMs where a test is expected to fail for now.
#KT-56166 Fixed
2023-01-27 17:57:50 +01:00
Zalim Bashorov
885381dd63
[Wasm] Change externRefToAny to make it compatible with SpiderMonkey and V8
...
It's hard to achieve that without implementing part of `externRefToAny` using an intrinsic. It should be rewritten when all VMs and tools update to the latest spec.
Also, stop using (deprecated) instructions unsupported by SpiderMonkey.
#KT-56166 In-Progress
2023-01-27 17:57:50 +01:00
Zalim Bashorov
d1855371a0
[Wasm] Don't wrap single null expression into composite in WasmNullCoercingLowering
...
Otherwise, it breaks check/assert inside DeclarationGenerator::visitField (DeclarationGenerator.kt:458)
#KT-56166 In-Progress
2023-01-27 17:57:50 +01:00
Zalim Bashorov
ca79711610
[Wasm] Generate .mjs compatible with other standalone js & wasm VMs: SpiderMonkey and JavaScriptCore in addition to V8
...
#KT-56166 In-Progress
2023-01-27 17:57:50 +01:00
Zalim Bashorov
802a8ec326
[Wasm] Update SpiderMonkey version
...
#KT-56166 In-Progress
2023-01-27 17:57:50 +01:00
Zalim Bashorov
1d793f7bec
[Wasm] Revert a7ed496a and few fixes to make Kotlin/Wasm compatible with Firefox
...
Revert changes as soon as the bug is fixed https://bugzilla.mozilla.org/show_bug.cgi?id=1811932
a7ed496a "[WASM] Use wasm bottom types for Nothing?"
#KT-56166 In-Progress
2023-01-27 17:57:49 +01:00
Zalim Bashorov
2573201a87
[Wasm] provide "location" for pseudo-instructions using to add comments
2023-01-17 19:37:06 +01:00
Zalim Bashorov
ab1cbc49dd
[Wasm] Minor: move buildUnreachable* helpers to more specific module
2023-01-17 19:37:05 +01:00
Zalim Bashorov
9e4b2b78e6
[Wasm] Remove unnecessary location from WasmDataMode constructor
2023-01-17 19:37:05 +01:00
Zalim Bashorov
2fa2725012
[Wasm] Add a comment about location into WasmExpressionBuilder
2023-01-17 19:37:05 +01:00
Zalim Bashorov
37879e18d9
[Wasm] Pass location instead of fileEntry to generateConstExpression
2023-01-17 19:37:05 +01:00
Zalim Bashorov
aa8a0fd7d7
[Wasm] Remove LocationHolder and helper functions
...
It turned out that dedicated scoping function for locations are not so useful.
Now, if you want to scope a location use functions from stdlib, like `let`.
2023-01-17 19:37:05 +01:00
Zalim Bashorov
e62add937b
[Wasm] Remove SourceLocation.TBDLocation and related things
2023-01-17 19:37:05 +01:00
Zalim Bashorov
0d203d190e
[Wasm] Remove buildInstr without location and fix usages
2023-01-17 19:37:05 +01:00
Zalim Bashorov
42f2edd282
[Wasm] Require location for buildThrow and fix all usages
2023-01-17 19:37:05 +01:00
Zalim Bashorov
1244cd1259
[Wasm] Require location for buildBr* and fix all usages
2023-01-17 19:37:05 +01:00
Zalim Bashorov
95c84d5d3f
[Wasm] Require location for buildDrop and fix all usages
2023-01-17 19:37:05 +01:00
Zalim Bashorov
6eba0392db
[Wasm] Require location for buildRefNull and fix all usages
2023-01-17 19:37:05 +01:00
Zalim Bashorov
12854af0a2
[Wasm] Require location for buildRefTestStatic and fix all usages
2023-01-17 19:37:05 +01:00
Zalim Bashorov
7bd92bc412
[Wasm] Require location for buildRefCastNullStatic and fix all usages
2023-01-17 19:37:05 +01:00
Zalim Bashorov
158a307334
[Wasm] Require location for buildStructSet and fix all usages
2023-01-17 19:37:05 +01:00
Zalim Bashorov
e7dc443c18
[Wasm] Require location for buildStructGet and fix all usages
2023-01-17 19:37:04 +01:00
Zalim Bashorov
530438dfcb
[Wasm] Require location for buildStructNew and fix all usages
2023-01-17 19:37:04 +01:00
Zalim Bashorov
3967bd2755
[Wasm] Require location for buildSetGlobal and fix all usages
2023-01-17 19:37:04 +01:00
Zalim Bashorov
65e1b53027
[Wasm] Require location for buildGetGlobal and fix all usages
2023-01-17 19:37:04 +01:00
Zalim Bashorov
00d0c38fc3
[Wasm] Require location for buildSetLocal and fix all usages
2023-01-17 19:37:04 +01:00
Zalim Bashorov
0b59ef58dc
[Wasm] Require location for buildGetLocal and fix all usages
2023-01-17 19:37:04 +01:00
Zalim Bashorov
9e86ac071d
[Wasm] Require location for buildCallIndirect
2023-01-17 19:37:04 +01:00
Zalim Bashorov
e5e786c265
[Wasm] Use more specific types in generateExpression and generateStatement
...
Also, rename: `generateStatement` -> `generateAsStatement`
2023-01-17 19:37:04 +01:00
Zalim Bashorov
ce265c049a
[Wasm] Require location for buildUnreachable and fix all usages
2023-01-17 19:37:04 +01:00
Zalim Bashorov
36d4e29253
[Wasm] Require location for buildConstI32Symbol and fix all usages
2023-01-17 19:37:04 +01:00
Zalim Bashorov
e69bbdd5b4
[Wasm] Require location for buildConstF32 & buildConstF64 and fix all usages
2023-01-17 19:37:04 +01:00
Zalim Bashorov
332aca10b0
[Wasm] Require location for buildConstI64 and fix all usages
2023-01-17 19:37:04 +01:00
Zalim Bashorov
f2f4c63720
[Wasm] Require location for buildConstI32 and fix all usages
2023-01-17 19:37:04 +01:00
Zalim Bashorov
cdc1d66b1f
[Wasm] Require a description on each usage of SourceLocation.NoLocation
2023-01-17 19:37:04 +01:00
Zalim Bashorov
61440c74d5
[Wasm] Require location for buildCall and fix all usages
2023-01-17 19:37:03 +01:00
Zalim Bashorov
49c3ba33f1
[Wasm] Add a basic end-to-end sourcemap generation in wasm backend
...
More constructions/instructions will be supported separately.
2022-12-08 12:44:26 +00:00
Zalim Bashorov
54c00cc588
[Sourcemap] Add an ability to provide outputColumn to SourceMap3Builder#addMapping instead of using getCurrentOutputColumn
...
The ability will be used later by wasm backend while generating sourcemap.
2022-12-07 12:03:54 +00:00
Zalim Bashorov
fb4dcc6a6a
[Sourcemap] Introduce getCurrentColumn and stop using TextOutput directly
...
The general goal is remove dependency on TextOutput and
make it simpler to use for wasm backend.
2022-12-07 12:03:54 +00:00
Zalim Bashorov
e34d3d09bc
[Sourcemap] Extract addLink from SourceMap3Builder as a addSourceMappingURL
...
The general goal is remove dependency on TextOutput and
make it simpler to use for wasm backend.
2022-12-07 12:03:54 +00:00
Zalim Bashorov
70a3d43adf
[Wasm] Update Binaryen version in gradle plugin: 110 -> 111
2022-11-25 15:32:32 +01:00
Zalim Bashorov
fe1157c873
[Wasm] Add to TODO the hash of the commit to revert
2022-11-25 15:32:32 +01:00
Zalim Bashorov
7f8f7aa050
[Wasm] Revert ref cast and test instructions to be compatible with Binaryen
2022-11-25 15:31:48 +01:00
Zalim Bashorov
5f140dac21
[Wasm] Remove wasm_ref_cast and use wasm_ref_cast_null inside the compiler
2022-11-25 15:31:47 +01:00
Zalim Bashorov
e7d0e451e7
[Wasm] Fix immediate type for recently (in M6) introduced instructions
...
STRUCT_TYPE_IDX -> HEAP_TYPE
WasmImmediate.TypeIdx -> WasmImmediate.HeapType
2022-11-25 15:31:47 +01:00
Zalim Bashorov
3ac90cf0e4
[CODEOWNERS] Add missed leading slash in the paths
2022-11-25 14:54:08 +01:00
Zalim Bashorov
d2b63c8c31
[Wasm] Use common logic for eqeq and eqeqeq
...
So, now it generates better code when null literals are passed to `eqeqeq`,
same as for `eqeq`.
2022-11-18 17:30:11 +01:00
Zalim Bashorov
96b02c9b66
[Wasm] Minor: move part of code of eqeqSymbol processing in BuiltInsLowering
2022-11-18 17:30:11 +01:00
Zalim Bashorov
0529ba9a87
[Wasm] Extract common some logic of eqeqSymbol processing in BuiltInsLowering
2022-11-18 17:30:10 +01:00
Zalim Bashorov
919029f34f
[Wasm] Add fast path for null in externRefToAny
...
- Introduce new intrinsics `wasm_ref_cast_null` & `wasm_ref_test_null`.
- Support getting type for immediate from generic argument.
- Remove redundant null check in `tryGetOrSetExternrefBox`.
2022-11-18 17:30:10 +01:00
Zalim Bashorov
ab590e1279
[Wasm, stdlib] Change visibility for wasm_* helper functions to internal
2022-11-15 12:55:10 +01:00
Zalim Bashorov
2fc6cea681
[Wasm] Migrate to the new GC M6 instructions
2022-11-15 12:55:10 +01:00
Zalim Bashorov
0c16415d26
[Wasm, stdlib] Change owner of runtime part of wasm-stdlib to "Kotlin Wasm"
2022-11-15 12:33:31 +01:00
Zalim Bashorov
89ba1b515e
[Wasm, test] Use "dynamic import" to catch exception thrown during JS & Wasm modules initialization
2022-11-11 16:22:10 +01:00
Zalim Bashorov
31f3fbcd78
[JS, Wasm] Improve readability of the message printed for failed tests for kotlin.test
2022-11-11 16:22:10 +01:00
Zalim Bashorov
5dd188f2cd
[CODEOWNERS] Mark files in /js/js.tests/* owned by Kotlin Wasm
2022-11-11 16:22:08 +01:00
Zalim Bashorov
5fb72dd99d
[JS, Wasm] Add to gradle.properties some properties useful while working with JS & Wasm
2022-11-11 16:21:54 +01:00
Zalim Bashorov
5511377c2c
[Wasm, tests] Cleanup and improvements in wasm test infra
...
- Remove no longer necessary separate generation to run inside browsers
- Generate index.html in DEBUG mode instead of SUPER_DEBUG
- Print link to index.html using IDEA builtin server (0.0.0.0:63342)
- Small improvements in generated index.html
2022-11-11 16:21:54 +01:00
Zalim Bashorov
10bf3b848e
[JS & Wasm tests] Load properties from root local.properties file too
2022-11-11 16:21:54 +01:00
Zalim Bashorov
e0cadb78e1
[CODEOWNERS] Remove depth limit since it doesn't change test running time much
2022-11-11 16:20:44 +01:00
Zalim Bashorov
5e9d2dfbe6
[CODEOWNERS] Add owner for kotlin-gradle-plugin-tcs-android
2022-11-11 16:20:43 +01:00
Zalim Bashorov
43e05ed8a2
[CODEOWNERS] Update owners for JS and Wasm part of gradle plugin
2022-11-11 16:20:43 +01:00
Zalim Bashorov
9c6254c8f5
[Wasm, JS] Add script to check that a specific v8 version is available for all platforms
2022-11-11 16:20:43 +01:00
Zalim Bashorov
cbf7497f76
[Wasm, JS] Update v8 to 10.9.194
...
It turned out that 10.9.130 is not available for intel based macs (mac64)
2022-11-11 16:20:43 +01:00
Zalim Bashorov
4bafa2c9db
[Wasm, Gradle] Quick fix for broken NewMultiplatformIT.testWasmD8Test
2022-11-10 13:54:10 +00:00
Zalim Bashorov
d4e0d07b5b
[Wasm] Update Binaryen version in gradle plugin: 109 -> 110
2022-11-09 13:44:39 +01:00
Zalim Bashorov
d29010807a
[Wasm] Apply recent changes in TFR proposal and update v8
...
Type index immediate was added to call_ref and return_call_ref instructions.
More details here https://github.com/WebAssembly/function-references/pull/76
2022-11-09 13:44:38 +01:00
Zalim Bashorov
9ed94b25fa
[Wasm] Cleanup instructions list
...
* Split by proposal, at least for work-in-progress ones
* Add a link to the repo for WIP proposals
* Move some instructions to right group
2022-11-09 13:44:38 +01:00
Zalim Bashorov
ff2d3d0bdb
[Wasm] Remove unnecessary --experimental-wasm-eh option while running d8 and nodejs
...
The support for Exception Handling proposal is turned on by default everywhere.
2022-11-09 13:44:38 +01:00
Zalim Bashorov
21c4580e20
[JS, Wasm] Update Nodejs to the current LTS (18.12.1) and add useful links
2022-11-08 14:31:43 +00:00
Zalim Bashorov
2c889f56fa
[K/JS] Add missed JsExport in the test, and uncomment part of it which passes with v8
...
#KT-41294 Fixed
2022-10-07 19:37:56 +02:00
Zalim Bashorov
75510e6019
[K/Wasm] Fix incompatibilities with webpack.
...
* Webpack doesn't support "node:" prefix out of the box, so we can just ignore it.
* Use a proper way to get a path to the script's dir.
#KT-53790 Fixed
2022-10-07 19:37:56 +02:00
Zalim Bashorov
f22eed6dd8
[Wasm] Fix running wasm in the browser
2022-05-23 17:50:24 +02:00
Zalim Bashorov
f8ef028da3
[Wasm] Remove no longer existed dirs from exclude list
2022-05-05 21:03:40 +00:00
Zalim Bashorov
11d9751844
[Wasm] Unmute inlineVararg
2022-05-05 21:03:39 +00:00
Zalim Bashorov
76806eba8a
[Wasm] Mute failing tests in boxInline
2022-05-05 21:03:38 +00:00
Zalim Bashorov
e594cad02a
[Wasm] Add tests from "boxInline"
2022-05-05 21:03:38 +00:00
Zalim Bashorov
2c20a71d08
[Codegen tests] Specify JVM as target backend for inferenceFlexibleTToNullable.kt
2022-05-05 21:03:37 +00:00
Zalim Bashorov
a6e8912af0
[Wasm] Mute failing tests in box/delegatedProperty
2022-05-05 21:03:36 +00:00
Zalim Bashorov
db4888b3d4
[Wasm] Stop excluding a bunch of tests
2022-05-05 21:03:34 +00:00
Zalim Bashorov
92d4c1c275
[Build, JS] Remove redundant setting nodeVersion to 16.13.0
...
Node.js support already use 16.13.0.
Probably it's useful to use default version for dogfooding propose,
Likely it's cover small cases, but at least could help to catch some
platform dependent issues.
If we need some specific (likely newer) version of node somewhere
in the project it's better to specify it for specific parts and
consider updating version of node inside gradle support and revert
a change.
2022-05-05 15:47:54 +00:00
Zalim Bashorov
6ebeeabe0f
[Codegen tests] Fix the test (kt39588)
...
For negative case, throwing CCE, we already have the issue KT-8135
and dedicated tests:
* genericDelegateUncheckedCast1.kt
* genericDelegateUncheckedCast2.kt
Related issues: KT-8135 KT-39588 KT-48749 KT-49837
2022-05-05 15:47:54 +00:00
Zalim Bashorov
56d0255a8a
[JS] Update nodejs to latest LTS version (16.14.2)
...
Also, remove verification metadata for older versions.
2022-04-23 17:58:42 +02:00
Zalim Bashorov
90c867ae1d
[JS] Define Node.js version in one place and use a single version everywhere
...
Consequently, it fixes the inability to run some JS related tests on Apple devices with ARM.
2022-04-23 17:58:42 +02:00
Zalim Bashorov
64bcd8c91e
[JS, atomicfu] Stop applying unused node plugin
2022-04-23 14:06:24 +02:00
Zalim Bashorov
2ed3349f7b
[JS] Support downloading v8 for mac-arm64
2022-04-23 14:06:24 +02:00
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