WEB-17316 JS debugger: invoke getter on object, not it's prototype

This commit is contained in:
Konstantin Ulitin
2016-11-02 11:10:22 +03:00
parent 3e56173f01
commit a62366d535
@@ -95,7 +95,12 @@ class VariableView(override val variableName: String, private val variable: Vari
}, false)
node.setFullValueEvaluator(object : XFullValueEvaluator(" (invoke getter)") {
override fun startEvaluation(callback: XFullValueEvaluator.XFullValueEvaluationCallback) {
val valueModifier = variable.valueModifier
var valueModifier = variable.valueModifier
var nonProtoContext = context
while (nonProtoContext is VariableView && nonProtoContext.variableName == PROTOTYPE_PROP) {
valueModifier = nonProtoContext.variable.valueModifier
nonProtoContext = nonProtoContext.parent
}
valueModifier!!.evaluateGet(variable, evaluateContext)
.done(node) {
callback.evaluated("")
@@ -478,3 +483,5 @@ private class ArrayPresentation(length: Int, className: String?) : XValuePresent
renderer.renderSpecialSymbol("]")
}
}
private val PROTOTYPE_PROP = "__proto__"