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);
|
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")
|
@TestMetadata("closure.kt")
|
||||||
public void testClosure() throws Exception {
|
public void testClosure() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/lineNumbers/closure.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/lineNumbers/closure.kt");
|
||||||
|
|||||||
+3
-3
@@ -44,7 +44,7 @@ object CallTranslator {
|
|||||||
resolvedCall: ResolvedCall<out FunctionDescriptor>,
|
resolvedCall: ResolvedCall<out FunctionDescriptor>,
|
||||||
extensionOrDispatchReceiver: JsExpression? = null
|
extensionOrDispatchReceiver: JsExpression? = null
|
||||||
): JsExpression {
|
): JsExpression {
|
||||||
return translateCall(context, resolvedCall, ExplicitReceivers(extensionOrDispatchReceiver))
|
return translateCall(context, resolvedCall, ExplicitReceivers(extensionOrDispatchReceiver)).source(resolvedCall.call.callElement)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun translateGet(context: TranslationContext,
|
fun translateGet(context: TranslationContext,
|
||||||
@@ -52,7 +52,7 @@ object CallTranslator {
|
|||||||
extensionOrDispatchReceiver: JsExpression? = null
|
extensionOrDispatchReceiver: JsExpression? = null
|
||||||
): JsExpression {
|
): JsExpression {
|
||||||
val variableAccessInfo = VariableAccessInfo(context.getCallInfo(resolvedCall, extensionOrDispatchReceiver), null)
|
val variableAccessInfo = VariableAccessInfo(context.getCallInfo(resolvedCall, extensionOrDispatchReceiver), null)
|
||||||
return variableAccessInfo.translateVariableAccess()
|
return variableAccessInfo.translateVariableAccess().source(resolvedCall.call.callElement)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun translateSet(context: TranslationContext,
|
fun translateSet(context: TranslationContext,
|
||||||
@@ -61,7 +61,7 @@ object CallTranslator {
|
|||||||
extensionOrDispatchReceiver: JsExpression? = null
|
extensionOrDispatchReceiver: JsExpression? = null
|
||||||
): JsExpression {
|
): JsExpression {
|
||||||
val variableAccessInfo = VariableAccessInfo(context.getCallInfo(resolvedCall, extensionOrDispatchReceiver), value)
|
val variableAccessInfo = VariableAccessInfo(context.getCallInfo(resolvedCall, extensionOrDispatchReceiver), value)
|
||||||
return variableAccessInfo.translateVariableAccess()
|
return variableAccessInfo.translateVariableAccess().source(resolvedCall.call.callElement)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun buildCall(context: TranslationContext,
|
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