Index: Source/core/inspector/InjectedScriptSource.js |
diff --git a/Source/core/inspector/InjectedScriptSource.js b/Source/core/inspector/InjectedScriptSource.js |
index 8c5cc460f4a6b4b56a89be75c385c0c793bfaffa..0570d6bbd0abffd697760dc8c937d39187075292 100644 |
--- a/Source/core/inspector/InjectedScriptSource.js |
+++ b/Source/core/inspector/InjectedScriptSource.js |
@@ -976,7 +976,13 @@ InjectedScript.prototype = { |
_callFrameForParsedId: function(topCallFrame, parsedCallFrameId, asyncCallStacks) |
{ |
var asyncOrdinal = parsedCallFrameId["asyncOrdinal"]; // 1-based index |
- if (asyncOrdinal) |
+ // FIXMEDART: change this next line back to |
+ // if (asyncOrdinal) |
+ // once we can remove the hack of giving JavaScript callframes from |
+ // mixed Dart-JavaScript call stacks ordinal -1 to trigger the |
+ // safer code path used to simulate evaluating code on the call frame |
+ // for async call frames. |
+ if (asyncOrdinal >= 1) |
topCallFrame = asyncCallStacks[asyncOrdinal - 1]; |
var ordinal = parsedCallFrameId["ordinal"]; |
var callFrame = topCallFrame; |
@@ -1396,6 +1402,8 @@ InjectedScript.CallFrameProxy = function(ordinal, callFrame, asyncOrdinal) |
this.callFrameId = "{\"ordinal\":" + ordinal + ",\"injectedScriptId\":" + injectedScriptId + (asyncOrdinal ? ",\"asyncOrdinal\":" + asyncOrdinal : "") + "}"; |
this.functionName = (callFrame.type === "function" ? callFrame.functionName : ""); |
this.location = { scriptId: toString(callFrame.sourceID), lineNumber: callFrame.line, columnNumber: callFrame.column, __proto__: null }; |
+ this.framePointerHigh = callFrame.framePointerHigh; |
+ this.framePointerLow = callFrame.framePointerLow; |
this.scopeChain = this._wrapScopeChain(callFrame); |
this.this = injectedScript._wrapObject(callFrame.thisObject, "backtrace"); |
if (callFrame.isAtReturn) |