Fix generation of JS source maps for call expressions
This commit is contained in:
@@ -36,6 +36,12 @@ public class JsLineNumberTestGenerated extends AbstractJsLineNumberTest {
|
||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/lineNumbers"), Pattern.compile("^([^_](.+))\\.kt$"), TargetBackend.JS, true);
|
||||
}
|
||||
|
||||
@TestMetadata("chainedCall.kt")
|
||||
public void testChainedCall() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/lineNumbers/chainedCall.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("closure.kt")
|
||||
public void testClosure() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/lineNumbers/closure.kt");
|
||||
|
||||
+3
-3
@@ -44,7 +44,7 @@ object CallTranslator {
|
||||
resolvedCall: ResolvedCall<out FunctionDescriptor>,
|
||||
extensionOrDispatchReceiver: JsExpression? = null
|
||||
): JsExpression {
|
||||
return translateCall(context, resolvedCall, ExplicitReceivers(extensionOrDispatchReceiver))
|
||||
return translateCall(context, resolvedCall, ExplicitReceivers(extensionOrDispatchReceiver)).source(resolvedCall.call.callElement)
|
||||
}
|
||||
|
||||
fun translateGet(context: TranslationContext,
|
||||
@@ -52,7 +52,7 @@ object CallTranslator {
|
||||
extensionOrDispatchReceiver: JsExpression? = null
|
||||
): JsExpression {
|
||||
val variableAccessInfo = VariableAccessInfo(context.getCallInfo(resolvedCall, extensionOrDispatchReceiver), null)
|
||||
return variableAccessInfo.translateVariableAccess()
|
||||
return variableAccessInfo.translateVariableAccess().source(resolvedCall.call.callElement)
|
||||
}
|
||||
|
||||
fun translateSet(context: TranslationContext,
|
||||
@@ -61,7 +61,7 @@ object CallTranslator {
|
||||
extensionOrDispatchReceiver: JsExpression? = null
|
||||
): JsExpression {
|
||||
val variableAccessInfo = VariableAccessInfo(context.getCallInfo(resolvedCall, extensionOrDispatchReceiver), value)
|
||||
return variableAccessInfo.translateVariableAccess()
|
||||
return variableAccessInfo.translateVariableAccess().source(resolvedCall.call.callElement)
|
||||
}
|
||||
|
||||
fun buildCall(context: TranslationContext,
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
fun box(a: C, x: dynamic) {
|
||||
println(a
|
||||
.foo()
|
||||
.bar())
|
||||
|
||||
println(a
|
||||
.baz
|
||||
.boo)
|
||||
}
|
||||
|
||||
class C {
|
||||
fun foo(): dynamic = null
|
||||
|
||||
val baz: dynamic get() = null
|
||||
}
|
||||
|
||||
// LINES: 2 4 3 2 6 8 7 6 12 * 14
|
||||
Reference in New Issue
Block a user