Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Side by Side Diff: test/debugger/debug/compiler/osr-typing-debug-change.js

Issue 2497973002: [debug-wrapper] Further extend the debug wrapper (Closed)
Patch Set: Address comments Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 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
6 var Debug = debug.Debug;
7
8 var changed = false;
9
10 function listenerSetJToResult(
11 event, exec_state, event_data, data) {
12
13 if (event == Debug.DebugEvent.Break) {
14 var scope = exec_state.frame(1).scope(0);
15 var newval = "result";
16 try {
17 scope.setVariableValue("j", newval);
18 changed = true;
19 } catch(e) {
20 changed = false;
21 }
22 }
23 }
24
25 Debug.setListener(listenerSetJToResult);
26
27 function g() { debugger; }
28 %NeverOptimizeFunction(g);
29
30 function ChangeSmiConstantAndOsr() {
31 var j = 1;
32 for (var i = 0; i < 4; i++) {
33 if (i == 2) {
34 %OptimizeOsr();
35 g();
36 }
37 }
38 return j;
39 }
40 var r1 = ChangeSmiConstantAndOsr();
41 if (changed) {
42 assertEquals("result", r1);
43 } else {
44 assertEquals(1, r1);
45 }
46
47 function ChangeFloatConstantAndOsr() {
48 var j = 0.1;
49 for (var i = 0; i < 4; i++) {
50 if (i == 2) {
51 %OptimizeOsr();
52 g();
53 }
54 }
55 return j;
56 }
57 var r2 = ChangeFloatConstantAndOsr();
58 if (changed) {
59 assertEquals("result", r2);
60 } else {
61 assertEquals(0.1, r2);
62 }
63
64 function ChangeFloatVarAndOsr() {
65 var j = 0.1;
66 for (var i = 0; i < 4; i++) {
67 j = j + 0.1;
68 if (i == 2) {
69 %OptimizeOsr();
70 g();
71 }
72 }
73 return j;
74 }
75 var r3 = ChangeFloatVarAndOsr();
76 if (changed) {
77 assertEquals("result0.1", r3);
78 } else {
79 assertEquals(0.5, r3);
80 }
81
82 var counter = 0;
83 var o = { toString : function() { counter++; return 100; } };
84
85 function listenerSetJToObject(
86 event, exec_state, event_data, data) {
87 if (event == Debug.DebugEvent.Break) {
88 var scope = exec_state.frame(1).scope(0);
89 try {
90 scope.setVariableValue("j", o);
91 changed = true;
92 } catch(e) {
93 changed = false;
94 }
95 }
96 }
97
98 Debug.setListener(listenerSetJToObject);
99
100 function ChangeIntVarAndOsr() {
101 var j = 1;
102 for (var i = 0; i < 4; i++) {
103 j = j + 1|0;
104 if (i == 2) {
105 %OptimizeOsr();
106 g();
107 }
108 }
109 return j;
110 }
111
112 var r4 = ChangeIntVarAndOsr();
113 if (changed) {
114 assertEquals(101, r4);
115 assertEquals(1, counter);
116 } else {
117 assertEquals(5, r4);
118 }
OLDNEW
« no previous file with comments | « test/debugger/debug/compiler/debug-catch-prediction.js ('k') | test/debugger/debug/debug-break-native.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698