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 7var Debug = debug.Debug; 8 9var exception = null; 10 11function 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 25function f() { 26 with({}) { 27 debugger; 28 } 29} 30 31f(); 32f(); 33 34%OptimizeFunctionOnNextCall(f); 35Debug.setListener(listener); 36 37f(); 38 39assertNull(exception); 40