Chromium Code Reviews| 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 475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 486 var scopeObject = DebuggerScript._buildScopeObject(scopeTypes[i] , scopeObjects[i]); | 486 var scopeObject = DebuggerScript._buildScopeObject(scopeTypes[i] , scopeObjects[i]); |
| 487 if (scopeObject) { | 487 if (scopeObject) { |
| 488 scopeTypes[j] = scopeTypes[i]; | 488 scopeTypes[j] = scopeTypes[i]; |
| 489 scopeNames[j] = scopeNames[i]; | 489 scopeNames[j] = scopeNames[i]; |
| 490 scopeChain[j] = scopeObject; | 490 scopeChain[j] = scopeObject; |
| 491 | 491 |
| 492 var funcMirror = scopeFunctions ? MakeMirror(scopeFunctions[ i]) : null; | 492 var funcMirror = scopeFunctions ? MakeMirror(scopeFunctions[ i]) : null; |
| 493 if (!funcMirror || !funcMirror.isFunction()) | 493 if (!funcMirror || !funcMirror.isFunction()) |
| 494 funcMirror = new UnresolvedFunctionMirror(funcObject); | 494 funcMirror = new UnresolvedFunctionMirror(funcObject); |
| 495 | 495 |
| 496 var script = /** @type {!FunctionMirror} */(funcMirror).scri pt(); | 496 var script = /** @type {!FunctionMirror} */(funcMirror).scri pt(); |
|
kozy
2016/10/13 16:06:18
Does WASM frame contain scope chain? If yes, then
Clemens Hammacher
2016/10/14 10:22:50
No, there is no scope chain for WASM frames.
Also,
| |
| 497 scopeStartLocations[j] = createLocation(script, scopeStartPo sitions[i]); | 497 scopeStartLocations[j] = createLocation(script, scopeStartPo sitions[i]); |
| 498 scopeEndLocations[j] = createLocation(script, scopeEndPositi ons[i]); | 498 scopeEndLocations[j] = createLocation(script, scopeEndPositi ons[i]); |
| 499 ++j; | 499 ++j; |
| 500 } | 500 } |
| 501 } | 501 } |
| 502 scopeTypes.length = scopeChain.length; | 502 scopeTypes.length = scopeChain.length; |
| 503 scopeNames.length = scopeChain.length; | 503 scopeNames.length = scopeChain.length; |
| 504 scopeObjects = null; // Free for GC. | 504 scopeObjects = null; // Free for GC. |
| 505 scopeFunctions = null; | 505 scopeFunctions = null; |
| 506 scopeStartPositions = null; | 506 scopeStartPositions = null; |
| 507 scopeEndPositions = null; | 507 scopeEndPositions = null; |
| 508 } | 508 } |
| 509 return scopeChain; | 509 return scopeChain; |
| 510 } | 510 } |
| 511 | 511 |
| 512 /** | 512 /** |
| 513 * @return {!JavaScriptCallFrameDetails} | 513 * @return {!JavaScriptCallFrameDetails} |
| 514 */ | 514 */ |
| 515 function lazyDetails() | 515 function lazyDetails() |
| 516 { | 516 { |
| 517 if (!details) { | 517 if (!details) { |
| 518 var scopeObjects = ensureScopeChain(); | 518 var scopeObjects = ensureScopeChain(); |
| 519 var script = ensureFuncMirror().script(); | 519 var script = frameMirror.script(); |
|
kozy
2016/10/13 16:06:18
Please store scriptMirror at the beginning of this
Clemens Hammacher
2016/10/14 10:22:50
Done. I also removed two checks for the existence
| |
| 520 /** @type {!Array<Scope>} */ | 520 /** @type {!Array<Scope>} */ |
| 521 var scopes = []; | 521 var scopes = []; |
| 522 for (var i = 0; i < scopeObjects.length; ++i) { | 522 for (var i = 0; i < scopeObjects.length; ++i) { |
| 523 var scope = { | 523 var scope = { |
| 524 "type": /** @type {string} */(DebuggerScript._scopeTypeNames .get(scopeTypes[i])), | 524 "type": /** @type {string} */(DebuggerScript._scopeTypeNames .get(scopeTypes[i])), |
| 525 "object": scopeObjects[i], | 525 "object": scopeObjects[i], |
| 526 }; | 526 }; |
| 527 if (scopeNames[i]) | 527 if (scopeNames[i]) |
| 528 scope.name = scopeNames[i]; | 528 scope.name = scopeNames[i]; |
| 529 if (scopeStartLocations[i]) | 529 if (scopeStartLocations[i]) |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 568 } | 568 } |
| 569 return /** @type {!FunctionMirror} */(funcMirror); | 569 return /** @type {!FunctionMirror} */(funcMirror); |
| 570 } | 570 } |
| 571 | 571 |
| 572 /** | 572 /** |
| 573 * @return {!{line: number, column: number}} | 573 * @return {!{line: number, column: number}} |
| 574 */ | 574 */ |
| 575 function ensureLocation() | 575 function ensureLocation() |
| 576 { | 576 { |
| 577 if (!location) { | 577 if (!location) { |
| 578 var script = ensureFuncMirror().script(); | 578 var script = frameMirror.script(); |
| 579 if (script) | 579 if (script) |
| 580 location = script.locationFromPosition(sourcePosition, true); | 580 location = script.locationFromPosition(sourcePosition, true); |
| 581 if (!location) | 581 if (!location) |
| 582 location = { line: 0, column: 0 }; | 582 location = { line: 0, column: 0 }; |
| 583 } | 583 } |
| 584 return location; | 584 return location; |
| 585 } | 585 } |
| 586 | 586 |
| 587 /** | 587 /** |
| 588 * @return {number} | 588 * @return {number} |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 613 if (context) | 613 if (context) |
| 614 return DebuggerScript._executionContextId(context.data()); | 614 return DebuggerScript._executionContextId(context.data()); |
| 615 return 0; | 615 return 0; |
| 616 } | 616 } |
| 617 | 617 |
| 618 /** | 618 /** |
| 619 * @return {number|undefined} | 619 * @return {number|undefined} |
| 620 */ | 620 */ |
| 621 function sourceID() | 621 function sourceID() |
| 622 { | 622 { |
| 623 var script = ensureFuncMirror().script(); | 623 var script = frameMirror.script(); |
| 624 return script && script.id(); | 624 return script && script.id(); |
| 625 } | 625 } |
| 626 | 626 |
| 627 /** | 627 /** |
| 628 * @param {string} expression | 628 * @param {string} expression |
| 629 * @return {*} | 629 * @return {*} |
| 630 */ | 630 */ |
| 631 function evaluate(expression) | 631 function evaluate(expression) |
| 632 { | 632 { |
| 633 return frameMirror.evaluate(expression, false).value(); | 633 return frameMirror.evaluate(expression, false).value(); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 703 break; | 703 break; |
| 704 } | 704 } |
| 705 return result; | 705 return result; |
| 706 } | 706 } |
| 707 | 707 |
| 708 // We never resolve Mirror by its handle so to avoid memory leaks caused by Mirr ors in the cache we disable it. | 708 // We never resolve Mirror by its handle so to avoid memory leaks caused by Mirr ors in the cache we disable it. |
| 709 ToggleMirrorCache(false); | 709 ToggleMirrorCache(false); |
| 710 | 710 |
| 711 return DebuggerScript; | 711 return DebuggerScript; |
| 712 })(); | 712 })(); |
| OLD | NEW |