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: --allow-natives-syntax 6 7// Test that setting break point works correctly when the debugger is 8// activated late, which leads to duplicate shared function infos. 9 10(function() { 11 var Debug = %GetDebugContext().Debug; 12 13 function listener(event, exec_state, event_data, data) { 14 if (event != Debug.DebugEvent.Break) return; 15 try { 16 assertTrue(/foo/.test(exec_state.frame(0).sourceLineText())); 17 break_count++; 18 } catch (e) { 19 exception = e; 20 } 21 } 22 23 for (var i = 0; i < 3; i++) { 24 var foo = function() { a = 1; } 25 var exception = null; 26 var break_count = 0; 27 Debug.setListener(listener); 28 if (i < 2) Debug.setBreakPoint(foo, 0, 0); 29 assertTrue(/\[B\d\]a = 1/.test(Debug.showBreakPoints(foo))); 30 foo(); 31 assertEquals(1, break_count); 32 assertNull(exception); 33 } 34 35 Debug.setListener(null); 36})(); 37