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

Unified Diff: test/mjsunit/harmony/debug-step-destructuring-assignment.js

Issue 1533313002: [debugger] step on every assignment in a destructuring assignment. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: extend test case Created 5 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/parsing/pattern-rewriter.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/harmony/debug-step-destructuring-assignment.js
diff --git a/test/mjsunit/harmony/debug-step-destructuring-assignment.js b/test/mjsunit/harmony/debug-step-destructuring-assignment.js
new file mode 100644
index 0000000000000000000000000000000000000000..bfc75bd23f8920e3377fc5044493dcbaed72677c
--- /dev/null
+++ b/test/mjsunit/harmony/debug-step-destructuring-assignment.js
@@ -0,0 +1,86 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-debug-as debug --harmony-destructuring-assignment
+// Flags: --harmony-destructuring-bind
+
+var exception = null;
+var Debug = debug.Debug;
+var break_count = 0;
+
+function listener(event, exec_state, event_data, data) {
+ if (event != Debug.DebugEvent.Break) return;
+ try {
+ var source = exec_state.frame(0).sourceLineText();
+ print(source);
+ assertTrue(source.indexOf(`// B${break_count++}`) > 0);
+ if (source.indexOf("assertEquals") > 0) {
+ exec_state.prepareStep(Debug.StepAction.StepNext);
+ } else {
+ exec_state.prepareStep(Debug.StepAction.StepIn);
+ }
+ } catch (e) {
+ exception = e;
+ print(e);
+ }
+};
+
+Debug.setListener(listener);
+
+function f() {
+ var a, b, c, d;
+ debugger; // B0
+ [ // B1
+ a, // B3
+ b, // B4
+ c = 3 // B5
+ ] = [1, 2]; // B2
+ assertEquals({a:1,b:2,c:3}, {a, b, c}); // B6
+
+ [ // B7
+ a, // B9
+ [
+ b, // B10
+ c // B11
+ ],
+ d // B12
+ ] = [5, [6, 7], 8]; // B8
+ assertEquals({a:5,b:6,c:7,d:8}, {a, b, c, d}); // B13
+
+ [ // B14
+ a, // B16
+ b, // B17
+ ...c // B18
+ ] = [1, 2, 3, 4]; // B15
+ assertEquals({a:1,b:2,c:[3,4]}, {a, b, c}); // B19
+
+ ({ // B20
+ a, // B22
+ b, // B23
+ c = 7 // B24
+ } = {a: 5, b: 6}); // B21
+ assertEquals({a:5,b:6,c:7}, {a, b, c}); // B25
+
+ ({ // B26
+ a, // B28
+ b = return1(), // B29
+ c = return1() // B30
+ } = {a: 5, b: 6}); // B27
+ assertEquals({a:5,b:6,c:1}, {a, b, c}); // B33
+
+ ({ // B34
+ x : a, // B36
+ y : b, // B37
+ z : c = 3 // B38
+ } = {x: 1, y: 2}); // B35
+ assertEquals({a:1,b:2,c:3}, {a, b, c}); // B39
+} // B40
+
+function return1() {
+ return 1; // B31
+} // B32
+
+f();
+Debug.setListener(null); // B41
+assertNull(exception);
« no previous file with comments | « src/parsing/pattern-rewriter.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698