OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 | 344 |
345 var funcObject = frameDetails.func(); | 345 var funcObject = frameDetails.func(); |
346 var sourcePosition; | 346 var sourcePosition; |
347 // FIXMEDART: if added purely for Dart. | 347 // FIXMEDART: if added purely for Dart. |
348 if (frameDetails.sourcePosition) { | 348 if (frameDetails.sourcePosition) { |
349 sourcePosition = frameDetails.sourcePosition(); | 349 sourcePosition = frameDetails.sourcePosition(); |
350 } | 350 } |
351 var thisObject = frameDetails.receiver(); | 351 var thisObject = frameDetails.receiver(); |
352 | 352 |
353 var isAtReturn = !!frameDetails.isAtReturn(); | 353 var isAtReturn = !!frameDetails.isAtReturn(); |
| 354 var cachedFramePointerHigh = frameDetails.framePointerHigh(); |
| 355 var cachedFramePointerLow = frameDetails.framePointerLow(); |
354 var returnValue = isAtReturn ? frameDetails.returnValue() : undefined; | 356 var returnValue = isAtReturn ? frameDetails.returnValue() : undefined; |
355 | 357 |
356 var scopeMirrors = (scopeDetailsLevel === DebuggerScript.ScopeInfoDetails.No
Scopes ? [] : frameMirror.allScopes(scopeDetailsLevel === DebuggerScript.ScopeIn
foDetails.FastAsyncScopes)); | 358 var scopeMirrors = (scopeDetailsLevel === DebuggerScript.ScopeInfoDetails.No
Scopes ? [] : frameMirror.allScopes(scopeDetailsLevel === DebuggerScript.ScopeIn
foDetails.FastAsyncScopes)); |
357 var scopeTypes = new Array(scopeMirrors.length); | 359 var scopeTypes = new Array(scopeMirrors.length); |
358 var scopeObjects = new Array(scopeMirrors.length); | 360 var scopeObjects = new Array(scopeMirrors.length); |
359 for (var i = 0; i < scopeMirrors.length; ++i) { | 361 for (var i = 0; i < scopeMirrors.length; ++i) { |
360 var scopeDetails = scopeMirrors[i].details(); | 362 var scopeDetails = scopeMirrors[i].details(); |
361 scopeTypes[i] = scopeDetails.type(); | 363 scopeTypes[i] = scopeDetails.type(); |
362 scopeObjects[i] = scopeDetails.object(); | 364 scopeObjects[i] = scopeDetails.object(); |
363 } | 365 } |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 function sourceID() | 429 function sourceID() |
428 { | 430 { |
429 // FIXMEDART: remove caching when Dart devtools refactor CL lands. | 431 // FIXMEDART: remove caching when Dart devtools refactor CL lands. |
430 if (!scriptId) { | 432 if (!scriptId) { |
431 var script = ensureFuncMirror().script(); | 433 var script = ensureFuncMirror().script(); |
432 scriptId = script && script.id(); | 434 scriptId = script && script.id(); |
433 } | 435 } |
434 return scriptId; | 436 return scriptId; |
435 } | 437 } |
436 | 438 |
| 439 function framePointerHigh() { |
| 440 return cachedFramePointerHigh; |
| 441 } |
| 442 |
| 443 function framePointerLow() { |
| 444 return cachedFramePointerLow; |
| 445 } |
| 446 |
437 function functionName() | 447 function functionName() |
438 { | 448 { |
439 // FIXMEDART: remove caching when Dart devtools refactor CL lands. | 449 // FIXMEDART: remove caching when Dart devtools refactor CL lands. |
440 if (!functionNameCache) { | 450 if (!functionNameCache) { |
441 var func = ensureFuncMirror(); | 451 var func = ensureFuncMirror(); |
442 if (!func.resolved()) | 452 if (!func.resolved()) |
443 return undefined; | 453 return undefined; |
444 var displayName; | 454 var displayName; |
445 var valueMirror = func.property("displayName").value(); | 455 var valueMirror = func.property("displayName").value(); |
446 if (valueMirror && valueMirror.isString()) | 456 if (valueMirror && valueMirror.isString()) |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
494 "functionName": functionName, | 504 "functionName": functionName, |
495 "thisObject": thisObject, | 505 "thisObject": thisObject, |
496 "scopeChain": lazyScopeChain, | 506 "scopeChain": lazyScopeChain, |
497 "scopeType": scopeTypes, | 507 "scopeType": scopeTypes, |
498 "evaluate": evaluate, | 508 "evaluate": evaluate, |
499 "caller": callerFrame, | 509 "caller": callerFrame, |
500 "restart": restart, | 510 "restart": restart, |
501 "setVariableValue": setVariableValue, | 511 "setVariableValue": setVariableValue, |
502 "stepInPositions": stepInPositions, | 512 "stepInPositions": stepInPositions, |
503 "isAtReturn": isAtReturn, | 513 "isAtReturn": isAtReturn, |
| 514 "framePointerHigh": framePointerHigh, |
| 515 "framePointerLow": framePointerLow, |
504 "returnValue": returnValue | 516 "returnValue": returnValue |
505 }; | 517 }; |
506 } | 518 } |
507 | 519 |
508 DebuggerScript._buildScopeObject = function(scopeType, scopeObject) | 520 DebuggerScript._buildScopeObject = function(scopeType, scopeObject) |
509 { | 521 { |
510 var result; | 522 var result; |
511 switch (scopeType) { | 523 switch (scopeType) { |
512 case ScopeType.Local: | 524 case ScopeType.Local: |
513 case ScopeType.Closure: | 525 case ScopeType.Closure: |
(...skipping 20 matching lines...) Expand all Loading... |
534 break; | 546 break; |
535 } | 547 } |
536 return result; | 548 return result; |
537 } | 549 } |
538 | 550 |
539 // We never resolve Mirror by its handle so to avoid memory leaks caused by Mirr
ors in the cache we disable it. | 551 // We never resolve Mirror by its handle so to avoid memory leaks caused by Mirr
ors in the cache we disable it. |
540 ToggleMirrorCache(false); | 552 ToggleMirrorCache(false); |
541 | 553 |
542 return DebuggerScript; | 554 return DebuggerScript; |
543 })(); | 555 })(); |
OLD | NEW |