[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
|
||||
// IGNORE_BACKEND: JS
|
||||
|
||||
// Reproduction of KT-37563
|
||||
// Test stack trace capturing in various kinds of constructors
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// KJS_WITH_FULL_RUNTIME
|
||||
// EXPECTED_REACHABLE_NODES: 1618
|
||||
// EXPECTED_REACHABLE_NODES: 1600
|
||||
|
||||
// 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
|
||||
|
||||
fun abstractCollectionToArray() {
|
||||
|
||||
@@ -98,7 +98,9 @@ internal fun subSequence(c: CharSequence, startIndex: Int, endIndex: Int): CharS
|
||||
@JsName("captureStack")
|
||||
internal fun captureStack(baseClass: JsClass<in Throwable>, instance: Throwable) {
|
||||
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 {
|
||||
instance.asDynamic().stack = js("new Error()").stack;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user