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

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

Issue 2568083002: [inspector] add scope type for modules. (Closed)
Patch Set: Created 4 years 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
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 25 matching lines...) Expand all
36 /** @type {!Map<!ScopeType, string>} */ 36 /** @type {!Map<!ScopeType, string>} */
37 DebuggerScript._scopeTypeNames = new Map(); 37 DebuggerScript._scopeTypeNames = new Map();
38 DebuggerScript._scopeTypeNames.set(ScopeType.Global, "global"); 38 DebuggerScript._scopeTypeNames.set(ScopeType.Global, "global");
39 DebuggerScript._scopeTypeNames.set(ScopeType.Local, "local"); 39 DebuggerScript._scopeTypeNames.set(ScopeType.Local, "local");
40 DebuggerScript._scopeTypeNames.set(ScopeType.With, "with"); 40 DebuggerScript._scopeTypeNames.set(ScopeType.With, "with");
41 DebuggerScript._scopeTypeNames.set(ScopeType.Closure, "closure"); 41 DebuggerScript._scopeTypeNames.set(ScopeType.Closure, "closure");
42 DebuggerScript._scopeTypeNames.set(ScopeType.Catch, "catch"); 42 DebuggerScript._scopeTypeNames.set(ScopeType.Catch, "catch");
43 DebuggerScript._scopeTypeNames.set(ScopeType.Block, "block"); 43 DebuggerScript._scopeTypeNames.set(ScopeType.Block, "block");
44 DebuggerScript._scopeTypeNames.set(ScopeType.Script, "script"); 44 DebuggerScript._scopeTypeNames.set(ScopeType.Script, "script");
45 DebuggerScript._scopeTypeNames.set(ScopeType.Eval, "eval"); 45 DebuggerScript._scopeTypeNames.set(ScopeType.Eval, "eval");
46 DebuggerScript._scopeTypeNames.set(ScopeType.Module, "module");
46 47
47 /** 48 /**
48 * @param {function()} fun 49 * @param {function()} fun
49 * @return {?Array<!Scope>} 50 * @return {?Array<!Scope>}
50 */ 51 */
51 DebuggerScript.getFunctionScopes = function(fun) 52 DebuggerScript.getFunctionScopes = function(fun)
52 { 53 {
53 var mirror = MakeMirror(fun); 54 var mirror = MakeMirror(fun);
54 if (!mirror.isFunction()) 55 if (!mirror.isFunction())
55 return null; 56 return null;
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 DebuggerScript._buildScopeObject = function(scopeType, scopeObject) 554 DebuggerScript._buildScopeObject = function(scopeType, scopeObject)
554 { 555 {
555 var result; 556 var result;
556 switch (scopeType) { 557 switch (scopeType) {
557 case ScopeType.Local: 558 case ScopeType.Local:
558 case ScopeType.Closure: 559 case ScopeType.Closure:
559 case ScopeType.Catch: 560 case ScopeType.Catch:
560 case ScopeType.Block: 561 case ScopeType.Block:
561 case ScopeType.Script: 562 case ScopeType.Script:
562 case ScopeType.Eval: 563 case ScopeType.Eval:
564 case ScopeType.Module:
563 // For transient objects we create a "persistent" copy that contains 565 // For transient objects we create a "persistent" copy that contains
564 // the same properties. 566 // the same properties.
565 // Reset scope object prototype to null so that the proto properties 567 // Reset scope object prototype to null so that the proto properties
566 // don't appear in the local scope section. 568 // don't appear in the local scope section.
567 var properties = /** @type {!ObjectMirror} */(MakeMirror(scopeObject, tr ue /* transient */)).properties(); 569 var properties = /** @type {!ObjectMirror} */(MakeMirror(scopeObject, tr ue /* transient */)).properties();
568 // Almost always Script scope will be empty, so just filter out that noi se. 570 // Almost always Script scope will be empty, so just filter out that noi se.
569 // Also drop empty Block, Eval and Script scopes, should we get any. 571 // Also drop empty Block, Eval and Script scopes, should we get any.
jgruber 2016/12/12 13:23:48 Nit: Update comment.
570 if (!properties.length && (scopeType === ScopeType.Script || 572 if (!properties.length && (scopeType === ScopeType.Script ||
571 scopeType === ScopeType.Block || 573 scopeType === ScopeType.Block ||
572 scopeType === ScopeType.Eval)) { 574 scopeType === ScopeType.Eval ||
575 scopeType === ScopeType.Module)) {
573 break; 576 break;
574 } 577 }
575 result = { __proto__: null }; 578 result = { __proto__: null };
576 for (var j = 0; j < properties.length; j++) { 579 for (var j = 0; j < properties.length; j++) {
577 var name = properties[j].name(); 580 var name = properties[j].name();
578 if (name.length === 0 || name.charAt(0) === ".") 581 if (name.length === 0 || name.charAt(0) === ".")
579 continue; // Skip internal variables like ".arguments" and varia bles with empty name 582 continue; // Skip internal variables like ".arguments" and varia bles with empty name
580 result[name] = properties[j].value_; 583 result[name] = properties[j].value_;
581 } 584 }
582 break; 585 break;
583 case ScopeType.Global: 586 case ScopeType.Global:
584 case ScopeType.With: 587 case ScopeType.With:
585 result = scopeObject; 588 result = scopeObject;
586 break; 589 break;
587 } 590 }
588 return result; 591 return result;
589 } 592 }
590 593
591 // We never resolve Mirror by its handle so to avoid memory leaks caused by Mirr ors in the cache we disable it. 594 // We never resolve Mirror by its handle so to avoid memory leaks caused by Mirr ors in the cache we disable it.
592 ToggleMirrorCache(false); 595 ToggleMirrorCache(false);
593 596
594 return DebuggerScript; 597 return DebuggerScript;
595 })(); 598 })();
OLDNEW
« no previous file with comments | « no previous file | src/inspector/debugger_script_externs.js » ('j') | src/inspector/debugger_script_externs.js » ('J')

Powered by Google App Engine
This is Rietveld 408576698