Generate JS source maps for object instance function
This commit is contained in:
@@ -78,6 +78,12 @@ public class JsLineNumberTestGenerated extends AbstractJsLineNumberTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("objectInstanceFunction.kt")
|
||||
public void testObjectInstanceFunction() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/lineNumbers/objectInstanceFunction.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("optionalArgs.kt")
|
||||
public void testOptionalArgs() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/lineNumbers/optionalArgs.kt");
|
||||
|
||||
+4
-3
@@ -456,19 +456,20 @@ class ClassTranslator private constructor(
|
||||
instanceFun.name = context().getNameForObjectInstance(descriptor)
|
||||
|
||||
if (enumInitializerName != null) {
|
||||
instanceFun.body.statements += JsInvocation(pureFqn(enumInitializerName, null)).makeStmt()
|
||||
instanceFun.body.statements += JsInvocation(pureFqn(enumInitializerName, null)).source(classDeclaration).makeStmt()
|
||||
}
|
||||
if (descriptor.kind != ClassKind.ENUM_ENTRY) {
|
||||
val instanceCreatedCondition = JsAstUtils.equality(cachedInstanceName.makeRef(), JsNullLiteral())
|
||||
.source(classDeclaration)
|
||||
val instanceCreationBlock = JsBlock()
|
||||
val instanceCreatedGuard = JsIf(instanceCreatedCondition, instanceCreationBlock)
|
||||
instanceFun.body.statements += instanceCreatedGuard
|
||||
|
||||
val objectRef = context().getInnerReference(descriptor)
|
||||
instanceCreationBlock.statements += JsNew(objectRef).makeStmt()
|
||||
instanceCreationBlock.statements += JsNew(objectRef).source(classDeclaration).makeStmt()
|
||||
}
|
||||
|
||||
instanceFun.body.statements += JsReturn(cachedInstanceName.makeRef())
|
||||
instanceFun.body.statements += JsReturn(cachedInstanceName.makeRef().source(classDeclaration))
|
||||
|
||||
context().addDeclarationStatement(instanceFun.makeStmt())
|
||||
}
|
||||
|
||||
@@ -12,4 +12,4 @@ object O {
|
||||
val y = 23
|
||||
}
|
||||
|
||||
// LINES: 2 3 4 6 7 8 11 12
|
||||
// LINES: 2 3 4 6 7 8 11 12 * 11 11 11
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
object O
|
||||
|
||||
fun foo() {
|
||||
println("foo")
|
||||
}
|
||||
|
||||
// LINES: 1 * 1 1 1 4
|
||||
@@ -25,4 +25,4 @@ class C : A {
|
||||
)
|
||||
}
|
||||
|
||||
// LINES: 1 3 * 10 11 * 15 16 17 14 19 15 22 23 24 22
|
||||
// LINES: 1 3 * 1 1 1 * 10 11 * 15 16 17 14 19 15 22 23 24 22
|
||||
@@ -8,4 +8,4 @@ enum class E {
|
||||
}
|
||||
}
|
||||
|
||||
// LINES: 1 1 1 1 2 3 4 * 2 2 * 3 3 4 4 6 * 1 * 1 1 1 1 1 1
|
||||
// LINES: 1 1 1 1 2 3 4 * 2 2 * 3 3 4 4 6 * 4 4 * 1 * 1 1 1 1 1 1
|
||||
Reference in New Issue
Block a user