Chromium Code Reviews| Index: test/mjsunit/debug-scopes.js |
| =================================================================== |
| --- test/mjsunit/debug-scopes.js (revision 7514) |
| +++ test/mjsunit/debug-scopes.js (working copy) |
| @@ -144,6 +144,10 @@ |
| if (!scope.scopeObject().property('.catch-var').isUndefined()) { |
| scope_size--; |
| } |
| + // Skip property with empty name. |
| + if (!scope.scopeObject().property('').isUndefined()) { |
|
antonm
2011/04/06 16:41:49
just curious, what are those properties with empty
|
| + scope_size--; |
| + } |
| if (count != scope_size) { |
| print('Names found in scope:'); |
| @@ -607,6 +611,23 @@ |
| EndTest(); |
| +// Closure that may be optimized out. |
| +BeginTest("Closure 8"); |
| +function closure_8() { |
| + (function inner(x) { |
| + debugger; |
| + })(2); |
| +} |
| + |
| +listener_delegate = function(exec_state) { |
| + CheckScopeChain([debug.ScopeType.Local, |
| + debug.ScopeType.Global], exec_state); |
| + CheckScopeContent({x: 2}, 0, exec_state); |
| +} |
| +closure_8(); |
| +EndTest(); |
| + |
| + |
| // Test a mixture of scopes. |
| BeginTest("The full monty"); |
| function the_full_monty(a, b) { |
| @@ -653,6 +674,56 @@ |
| the_full_monty(1, 2)() |
| EndTest(); |
| + |
| +BeginTest("Closure inside With 1"); |
| +function closure_in_with_1() { |
| + with({x:1}) { |
| + (function inner(x) { |
| + debugger; |
| + })(2); |
| + } |
| +} |
| + |
| +listener_delegate = function(exec_state) { |
| + CheckScopeChain([debug.ScopeType.Local, |
| + debug.ScopeType.With, |
| + debug.ScopeType.Closure, |
| + debug.ScopeType.Global], exec_state); |
| + CheckScopeContent({x: 2}, 0, exec_state); |
| +} |
| +closure_in_with_1(); |
| +EndTest(); |
| + |
| + |
| +BeginTest("Closure inside With 2"); |
| +function closure_in_with_2() { |
| + with({x:1}) { |
| + (function inner(x) { |
| + with({z:3}) { |
| + debugger; |
| + } |
| + })(2); |
| + } |
| +} |
| + |
| +listener_delegate = function(exec_state) { |
| +try { |
| + CheckScopeChain([debug.ScopeType.With, |
| + debug.ScopeType.Local, |
| + debug.ScopeType.With, |
| + debug.ScopeType.Closure, |
| + debug.ScopeType.Global], exec_state); |
| + CheckScopeContent({z: 3}, 0, exec_state); |
| + CheckScopeContent({x: 2}, 1, exec_state); |
| + CheckScopeContent({x: 1}, 2, exec_state); |
| +} catch (e) { |
| + print(e); |
| +} |
| +} |
| +closure_in_with_2(); |
| +EndTest(); |
| + |
| + |
| // Test global scope. |
| BeginTest("Global"); |
| listener_delegate = function(exec_state) { |