1// Copyright 2014 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 6 7function get() { 8 return 3; // Break 9} // Break 10 11function set(x) { 12 this.x = x; // Break 13} // Break 14 15var o = {}; 16Object.defineProperty(o, "get", { get : get }); 17Object.defineProperty(o, "set", { set : set }); 18 19function f() { 20 for (var i = 0; i < 10; i++) { // Break 21 o.get; // Break 22 o.set = 1; // Break 23 } 24} // Break 25 26var break_count = 0; 27var exception = null; 28 29function listener(event, exec_state, event_data, data) { 30 if (event != Debug.DebugEvent.Break) return; 31 try { 32 var source_line = exec_state.frame(0).sourceLineText(); 33 assertTrue(source_line.indexOf("// Break") > 0); 34 exec_state.prepareStep(Debug.StepAction.StepIn); 35 break_count++; 36 } catch (e) { 37 exception = e; 38 } 39} 40 41var Debug = debug.Debug; 42Debug.setListener(listener); 43 44debugger; // Break 45f(); // Break 46 47Debug.setListener(null); // Break 48assertEquals(86, break_count); 49assertNull(exception); 50