[JS] Fix stack trace capturing from secondary constructors KT-37563
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
// EXPECTED_REACHABLE_NODES: 1281
|
// EXPECTED_REACHABLE_NODES: 1462
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// IGNORE_BACKEND: JS
|
|
||||||
|
|
||||||
// Reproduction of KT-37563
|
// Reproduction of KT-37563
|
||||||
// Test stack trace capturing in various kinds of constructors
|
// Test stack trace capturing in various kinds of constructors
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// EXPECTED_REACHABLE_NODES: 1618
|
// EXPECTED_REACHABLE_NODES: 1600
|
||||||
|
|
||||||
// Simplified example from https://youtrack.jetbrains.com/issue/KT-26787
|
// Simplified example from https://youtrack.jetbrains.com/issue/KT-26787
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
// EXPECTED_REACHABLE_NODES: 1750
|
// EXPECTED_REACHABLE_NODES: 1700
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
|
|
||||||
fun abstractCollectionToArray() {
|
fun abstractCollectionToArray() {
|
||||||
|
|||||||
@@ -98,7 +98,9 @@ internal fun subSequence(c: CharSequence, startIndex: Int, endIndex: Int): CharS
|
|||||||
@JsName("captureStack")
|
@JsName("captureStack")
|
||||||
internal fun captureStack(baseClass: JsClass<in Throwable>, instance: Throwable) {
|
internal fun captureStack(baseClass: JsClass<in Throwable>, instance: Throwable) {
|
||||||
if (js("Error").captureStackTrace) {
|
if (js("Error").captureStackTrace) {
|
||||||
js("Error").captureStackTrace(instance, instance::class.js);
|
// Using uncropped stack traces due to KT-37563.
|
||||||
|
// Precise stack traces are implemented in JS IR compiler and stdlib
|
||||||
|
js("Error").captureStackTrace(instance);
|
||||||
} else {
|
} else {
|
||||||
instance.asDynamic().stack = js("new Error()").stack;
|
instance.asDynamic().stack = js("new Error()").stack;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user