Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: src/inspector/debugger-script.js

Issue 2427633002: Revert of [debug] Consistently use script from FrameMirror (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/debug/mirrors.js ('k') | src/inspector/debugger_script_externs.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 * @param {!FrameMirror} frameMirror 409 * @param {!FrameMirror} frameMirror
410 * @return {!JavaScriptCallFrame} 410 * @return {!JavaScriptCallFrame}
411 */ 411 */
412 DebuggerScript._frameMirrorToJSCallFrame = function(frameMirror) 412 DebuggerScript._frameMirrorToJSCallFrame = function(frameMirror)
413 { 413 {
414 // Stuff that can not be initialized lazily (i.e. valid while paused with a valid break_id). 414 // Stuff that can not be initialized lazily (i.e. valid while paused with a valid break_id).
415 // The frameMirror and scopeMirror can be accessed only while paused on the debugger. 415 // The frameMirror and scopeMirror can be accessed only while paused on the debugger.
416 var frameDetails = frameMirror.details(); 416 var frameDetails = frameMirror.details();
417 417
418 var funcObject = frameDetails.func(); 418 var funcObject = frameDetails.func();
419 var scriptObject = frameDetails.script();
420 var sourcePosition = frameDetails.sourcePosition(); 419 var sourcePosition = frameDetails.sourcePosition();
421 var thisObject = frameDetails.receiver(); 420 var thisObject = frameDetails.receiver();
422 421
423 var isAtReturn = !!frameDetails.isAtReturn(); 422 var isAtReturn = !!frameDetails.isAtReturn();
424 var returnValue = isAtReturn ? frameDetails.returnValue() : undefined; 423 var returnValue = isAtReturn ? frameDetails.returnValue() : undefined;
425 424
426 var scopeMirrors = frameMirror.allScopes(false); 425 var scopeMirrors = frameMirror.allScopes(false);
427 /** @type {!Array<number>} */ 426 /** @type {!Array<number>} */
428 var scopeTypes = new Array(scopeMirrors.length); 427 var scopeTypes = new Array(scopeMirrors.length);
429 /** @type {?Array<!Object>} */ 428 /** @type {?Array<!Object>} */
(...skipping 12 matching lines...) Expand all
442 scopeObjects[i] = scopeDetails.object(); 441 scopeObjects[i] = scopeDetails.object();
443 scopeNames[i] = scopeDetails.name(); 442 scopeNames[i] = scopeDetails.name();
444 scopeStartPositions[i] = scopeDetails.startPosition ? scopeDetails.start Position() : 0; 443 scopeStartPositions[i] = scopeDetails.startPosition ? scopeDetails.start Position() : 0;
445 scopeEndPositions[i] = scopeDetails.endPosition ? scopeDetails.endPositi on() : 0; 444 scopeEndPositions[i] = scopeDetails.endPosition ? scopeDetails.endPositi on() : 0;
446 scopeFunctions[i] = scopeDetails.func ? scopeDetails.func() : null; 445 scopeFunctions[i] = scopeDetails.func ? scopeDetails.func() : null;
447 } 446 }
448 447
449 // Calculated lazily. 448 // Calculated lazily.
450 var scopeChain; 449 var scopeChain;
451 var funcMirror; 450 var funcMirror;
452 var scriptMirror;
453 var location; 451 var location;
454 /** @type {!Array<?RawLocation>} */ 452 /** @type {!Array<?RawLocation>} */
455 var scopeStartLocations; 453 var scopeStartLocations;
456 /** @type {!Array<?RawLocation>} */ 454 /** @type {!Array<?RawLocation>} */
457 var scopeEndLocations; 455 var scopeEndLocations;
458 var details; 456 var details;
459 457
460 /** 458 /**
461 * @param {!ScriptMirror|undefined} script 459 * @param {!ScriptMirror|undefined} script
462 * @param {number} pos 460 * @param {number} pos
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 return scopeChain; 509 return scopeChain;
512 } 510 }
513 511
514 /** 512 /**
515 * @return {!JavaScriptCallFrameDetails} 513 * @return {!JavaScriptCallFrameDetails}
516 */ 514 */
517 function lazyDetails() 515 function lazyDetails()
518 { 516 {
519 if (!details) { 517 if (!details) {
520 var scopeObjects = ensureScopeChain(); 518 var scopeObjects = ensureScopeChain();
521 var script = ensureScriptMirror(); 519 var script = ensureFuncMirror().script();
522 /** @type {!Array<Scope>} */ 520 /** @type {!Array<Scope>} */
523 var scopes = []; 521 var scopes = [];
524 for (var i = 0; i < scopeObjects.length; ++i) { 522 for (var i = 0; i < scopeObjects.length; ++i) {
525 var scope = { 523 var scope = {
526 "type": /** @type {string} */(DebuggerScript._scopeTypeNames .get(scopeTypes[i])), 524 "type": /** @type {string} */(DebuggerScript._scopeTypeNames .get(scopeTypes[i])),
527 "object": scopeObjects[i], 525 "object": scopeObjects[i],
528 }; 526 };
529 if (scopeNames[i]) 527 if (scopeNames[i])
530 scope.name = scopeNames[i]; 528 scope.name = scopeNames[i];
531 if (scopeStartLocations[i]) 529 if (scopeStartLocations[i])
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 { 563 {
566 if (!funcMirror) { 564 if (!funcMirror) {
567 funcMirror = MakeMirror(funcObject); 565 funcMirror = MakeMirror(funcObject);
568 if (!funcMirror.isFunction()) 566 if (!funcMirror.isFunction())
569 funcMirror = new UnresolvedFunctionMirror(funcObject); 567 funcMirror = new UnresolvedFunctionMirror(funcObject);
570 } 568 }
571 return /** @type {!FunctionMirror} */(funcMirror); 569 return /** @type {!FunctionMirror} */(funcMirror);
572 } 570 }
573 571
574 /** 572 /**
575 * @return {!ScriptMirror}
576 */
577 function ensureScriptMirror()
578 {
579 if (!scriptMirror) {
580 scriptMirror = MakeMirror(scriptObject);
581 }
582 return /** @type {!ScriptMirror} */(scriptMirror);
583 }
584
585 /**
586 * @return {!{line: number, column: number}} 573 * @return {!{line: number, column: number}}
587 */ 574 */
588 function ensureLocation() 575 function ensureLocation()
589 { 576 {
590 if (!location) { 577 if (!location) {
591 var script = ensureScriptMirror(); 578 var script = ensureFuncMirror().script();
592 location = script.locationFromPosition(sourcePosition, true); 579 if (script)
580 location = script.locationFromPosition(sourcePosition, true);
593 if (!location) 581 if (!location)
594 location = { line: 0, column: 0 }; 582 location = { line: 0, column: 0 };
595 } 583 }
596 return location; 584 return location;
597 } 585 }
598 586
599 /** 587 /**
600 * @return {number} 588 * @return {number}
601 */ 589 */
602 function line() 590 function line()
(...skipping 18 matching lines...) Expand all
621 // Old V8 do not have context() function on these objects 609 // Old V8 do not have context() function on these objects
622 if (!mirror.context) 610 if (!mirror.context)
623 return DebuggerScript._executionContextId(mirror.script().value().co ntext_data); 611 return DebuggerScript._executionContextId(mirror.script().value().co ntext_data);
624 var context = mirror.context(); 612 var context = mirror.context();
625 if (context) 613 if (context)
626 return DebuggerScript._executionContextId(context.data()); 614 return DebuggerScript._executionContextId(context.data());
627 return 0; 615 return 0;
628 } 616 }
629 617
630 /** 618 /**
631 * @return {number} 619 * @return {number|undefined}
632 */ 620 */
633 function sourceID() 621 function sourceID()
634 { 622 {
635 var script = ensureScriptMirror(); 623 var script = ensureFuncMirror().script();
636 return script.id(); 624 return script && script.id();
637 } 625 }
638 626
639 /** 627 /**
640 * @param {string} expression 628 * @param {string} expression
641 * @return {*} 629 * @return {*}
642 */ 630 */
643 function evaluate(expression) 631 function evaluate(expression)
644 { 632 {
645 return frameMirror.evaluate(expression, false).value(); 633 return frameMirror.evaluate(expression, false).value();
646 } 634 }
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 break; 703 break;
716 } 704 }
717 return result; 705 return result;
718 } 706 }
719 707
720 // 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.
721 ToggleMirrorCache(false); 709 ToggleMirrorCache(false);
722 710
723 return DebuggerScript; 711 return DebuggerScript;
724 })(); 712 })();
OLDNEW
« no previous file with comments | « src/debug/mirrors.js ('k') | src/inspector/debugger_script_externs.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698