[K/JS] Process JS-specific returnable blocks before the state machine building
^KT-60785 Fixed ^KT-63207 Fixed
This commit is contained in:
@@ -429,7 +429,8 @@ private val innerClassConstructorCallsLoweringPhase = makeIrModulePhase<JsIrBack
|
||||
private val suspendFunctionsLoweringPhase = makeIrModulePhase(
|
||||
::JsSuspendFunctionsLowering,
|
||||
name = "SuspendFunctionsLowering",
|
||||
description = "Transform suspend functions into CoroutineImpl instance and build state machine"
|
||||
description = "Transform suspend functions into CoroutineImpl instance and build state machine",
|
||||
prerequisite = setOf(returnableBlockLoweringPhase)
|
||||
)
|
||||
|
||||
private val addContinuationToNonLocalSuspendFunctionsLoweringPhase = makeIrModulePhase(
|
||||
@@ -826,6 +827,7 @@ val loweringList = listOf<SimpleNamedCompilerPhase<JsIrBackendContext, IrModuleF
|
||||
enumUsageLoweringPhase,
|
||||
externalEnumUsageLoweringPhase,
|
||||
enumEntryRemovalLoweringPhase,
|
||||
returnableBlockLoweringPhase,
|
||||
suspendFunctionsLoweringPhase,
|
||||
propertyReferenceLoweringPhase,
|
||||
interopCallableReferenceLoweringPhase,
|
||||
@@ -833,7 +835,6 @@ val loweringList = listOf<SimpleNamedCompilerPhase<JsIrBackendContext, IrModuleF
|
||||
addContinuationToNonLocalSuspendFunctionsLoweringPhase,
|
||||
addContinuationToLocalSuspendFunctionsLoweringPhase,
|
||||
addContinuationToFunctionCallsLoweringPhase,
|
||||
returnableBlockLoweringPhase,
|
||||
rangeContainsLoweringPhase,
|
||||
forLoopsLoweringPhase,
|
||||
primitiveCompanionLoweringPhase,
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// WITH_COROUTINES
|
||||
// IGNORE_BACKEND: JS_IR, JS_IR_ES6
|
||||
import helpers.*
|
||||
import kotlin.coroutines.*
|
||||
import kotlin.coroutines.intrinsics.*
|
||||
|
||||
-1
@@ -1,5 +1,4 @@
|
||||
// WITH_STDLIB
|
||||
// IGNORE_BACKEND: JS_IR, JS_IR_ES6
|
||||
import kotlin.coroutines.*
|
||||
import kotlin.coroutines.intrinsics.*
|
||||
|
||||
|
||||
-2
@@ -36,7 +36,5 @@ suspend fun box() {
|
||||
// test.kt:12 doResume:
|
||||
// test.kt:8 h: $completion=$boxCOROUTINE$0
|
||||
// test.kt:4 doResume:
|
||||
// test.kt:5 doResume: x=41:number
|
||||
// test.kt:4 doResume: x=41:number
|
||||
// test.kt:5 doResume: x=41:number, x=41:number
|
||||
// test.kt:19 doResume: x=41:number, x=41:number
|
||||
|
||||
@@ -68,5 +68,6 @@ suspend fun box() {
|
||||
// test.kt:12 <get-a>:
|
||||
// test.kt:38 doResume:
|
||||
// test.kt:38 doResume:
|
||||
// test.kt:38 doResume:
|
||||
// test.kt:27 doResume:
|
||||
// test.kt:28 doResume: a=Unit
|
||||
|
||||
+1
@@ -71,5 +71,6 @@ suspend fun box() {
|
||||
// test.kt:7 id: obj=2:number
|
||||
// test.kt:38 doResume: c=1:number, b=2:number
|
||||
// test.kt:38 doResume: c=1:number, b=2:number
|
||||
// test.kt:39 doResume: c=1:number, b=2:number
|
||||
// test.kt:30 doResume: c=1:number, b=2:number
|
||||
// test.kt:31 doResume: c=1:number, b=2:number, a=Unit
|
||||
|
||||
@@ -42,5 +42,6 @@ suspend fun box() {
|
||||
// EXPECTATIONS JS_IR
|
||||
// test.kt:31 doResume:
|
||||
// test.kt:31 doResume:
|
||||
// test.kt:31 doResume:
|
||||
// test.kt:22 doResume:
|
||||
// test.kt:23 doResume: a=Unit
|
||||
|
||||
Vendored
+1
@@ -103,5 +103,6 @@ suspend fun box() {
|
||||
// test.kt:7 id: obj=5:number
|
||||
// test.kt:44 doResume: b=2:number, e=5:number
|
||||
// test.kt:44 doResume: b=2:number, e=5:number
|
||||
// test.kt:45 doResume: b=2:number, e=5:number
|
||||
// test.kt:33 doResume: b=2:number, e=5:number
|
||||
// test.kt:37 doResume: b=2:number, e=5:number, result=Unit
|
||||
|
||||
Reference in New Issue
Block a user