Fix inlining of tail call suspend function

When inlining tail-call suspend function to regular
suspend function in JS BE, don't forget to insert suspension point.
See KT-16951
This commit is contained in:
Alexey Andreev
2017-03-20 18:34:08 +03:00
parent 466540399c
commit 6ba3812582
9 changed files with 134 additions and 14 deletions
@@ -77,6 +77,8 @@ var HasMetadata.sideEffects: SideEffectKind by MetadataProperty(default = SideEf
*/
var JsExpression.isSuspend: Boolean by MetadataProperty(default = false)
var JsExpression.isTailCallSuspend: Boolean by MetadataProperty(default = false)
/**
* Denotes a reference to coroutine's `result` field that contains result of
* last suspended invocation.
@@ -100,7 +102,6 @@ var JsFunction.coroutineMetadata: CoroutineMetadata? by MetadataProperty(default
class CoroutineMetadata(
val doResumeName: JsName,
val resumeName: JsName,
val stateName: JsName,
val exceptionStateName: JsName,
val finallyPathName: JsName,