Home | History | Annotate | Download | only in regress
      1 // Copyright 2015 the V8 project authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Flags: --expose-debug-as debug --allow-natives-syntax
      6 
      7 var Debug = debug.Debug;
      8 
      9 var exception = null;
     10 
     11 function listener(event, exec_state, event_data, data) {
     12   if (event != Debug.DebugEvent.Break) return;
     13   try {
     14     var scopes = exec_state.frame().allScopes();
     15     assertEquals(4, scopes.length);
     16     assertEquals(debug.ScopeType.With, scopes[0].scopeType());
     17     assertEquals(debug.ScopeType.Local, scopes[1].scopeType());
     18     assertEquals(debug.ScopeType.Script, scopes[2].scopeType());
     19     assertEquals(debug.ScopeType.Global, scopes[3].scopeType());
     20   } catch (e) {
     21     exception = e;
     22   }
     23 }
     24 
     25 function f() {
     26   with({}) {
     27     debugger;
     28   }
     29 }
     30 
     31 f();
     32 f();
     33 
     34 %OptimizeFunctionOnNextCall(f);
     35 Debug.setListener(listener);
     36 
     37 f();
     38 
     39 assertNull(exception);
     40