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; 8var expected = ["debugger;", 9 "var x = y;", 10 "new Promise(f).catch(call_f_with_deeper_stack);", 11 "var a = 1;", "", "var a = 1;", 12 "debugger;", 13 "var x = y;"]; 14 15function listener(event, exec_state, event_data, data) { 16 if (event != Debug.DebugEvent.Break) return; 17 try { 18 assertEquals(expected.shift(), exec_state.frame(0).sourceLineText().trimLeft()); 19 exec_state.prepareStep(Debug.StepAction.StepNext); 20 } catch (e) { 21 %AbortJS(e + "\n" + e.stack); 22 } 23} 24 25Debug.setListener(listener); 26 27function f() { 28 var a = 1; 29 debugger; 30 var x = y; 31 print(x); 32} 33 34function call_f_with_deeper_stack() { 35 (() => () => () => f())()()(); 36} 37 38new Promise(f).catch(call_f_with_deeper_stack); 39var a = 1; 40