blob: 676f78282d79589ccf3955937c1196310aa1586e [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001// 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
Ben Murdochda12d292016-06-02 14:46:10 +01005// Flags: --expose-debug-as debug
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00006
7Debug = debug.Debug
8
9var exception = null;
10function listener(event, exec_state, event_data, data) {
11 if (event != Debug.DebugEvent.Break) return;
12 try {
Ben Murdochda12d292016-06-02 14:46:10 +010013 exec_state.frame(0).evaluate("a = 2");
14 exec_state.frame(0).evaluate("e = 3");
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000015 exec_state.frame(0).evaluate("bar()");
Ben Murdochda12d292016-06-02 14:46:10 +010016 exec_state.frame(0).evaluate("a++");
17 exec_state.frame(0).evaluate("e++");
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000018 } catch (e) {
19 exception = e;
20 print(e + e.stack);
21 }
22}
23
24Debug.setListener(listener);
25
26(function() {
27 "use strict";
28 try {
29 throw 1;
30 } catch (e) {
31 let a = 1;
32 function bar() {
Ben Murdochda12d292016-06-02 14:46:10 +010033 a *= 2;
34 e *= 2;
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000035 }
36 debugger;
Ben Murdochda12d292016-06-02 14:46:10 +010037 assertEquals(5, a);
38 assertEquals(7, e);
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000039 }
40})();
41
42Debug.setListener(null);
43assertNull(exception);