Generate JS source maps for object instance function
This commit is contained in:
@@ -78,6 +78,12 @@ public class JsLineNumberTestGenerated extends AbstractJsLineNumberTest {
|
|||||||
doTest(fileName);
|
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")
|
@TestMetadata("optionalArgs.kt")
|
||||||
public void testOptionalArgs() throws Exception {
|
public void testOptionalArgs() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/lineNumbers/optionalArgs.kt");
|
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)
|
instanceFun.name = context().getNameForObjectInstance(descriptor)
|
||||||
|
|
||||||
if (enumInitializerName != null) {
|
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) {
|
if (descriptor.kind != ClassKind.ENUM_ENTRY) {
|
||||||
val instanceCreatedCondition = JsAstUtils.equality(cachedInstanceName.makeRef(), JsNullLiteral())
|
val instanceCreatedCondition = JsAstUtils.equality(cachedInstanceName.makeRef(), JsNullLiteral())
|
||||||
|
.source(classDeclaration)
|
||||||
val instanceCreationBlock = JsBlock()
|
val instanceCreationBlock = JsBlock()
|
||||||
val instanceCreatedGuard = JsIf(instanceCreatedCondition, instanceCreationBlock)
|
val instanceCreatedGuard = JsIf(instanceCreatedCondition, instanceCreationBlock)
|
||||||
instanceFun.body.statements += instanceCreatedGuard
|
instanceFun.body.statements += instanceCreatedGuard
|
||||||
|
|
||||||
val objectRef = context().getInnerReference(descriptor)
|
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())
|
context().addDeclarationStatement(instanceFun.makeStmt())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,4 +12,4 @@ object O {
|
|||||||
val y = 23
|
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