| Index: test/mjsunit/es6/debug-step-destructuring-assignment.js | 
| diff --git a/test/mjsunit/es6/debug-step-destructuring-assignment.js b/test/mjsunit/es6/debug-step-destructuring-assignment.js | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..4fde928b3835d9b83676caba618513f28af04b69 | 
| --- /dev/null | 
| +++ b/test/mjsunit/es6/debug-step-destructuring-assignment.js | 
| @@ -0,0 +1,85 @@ | 
| +// 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 | 
| + | 
| +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,                                            // B2 | 
| +    b,                                            // B3 | 
| +    c = 3                                         // B4 | 
| +  ] = [1, 2]; | 
| +  assertEquals({a:1,b:2,c:3}, {a, b, c});         // B5 | 
| + | 
| +  [                                               // B6 | 
| +    a,                                            // B7 | 
| +    [ | 
| +      b,                                          // B8 | 
| +      c                                           // B9 | 
| +    ], | 
| +    d                                             // B10 | 
| +  ] = [5, [6, 7], 8]; | 
| +  assertEquals({a:5,b:6,c:7,d:8}, {a, b, c, d});  // B11 | 
| + | 
| +  [                                               // B12 | 
| +    a,                                            // B13 | 
| +    b,                                            // B14 | 
| +    ...c                                          // B15 | 
| +  ] = [1, 2, 3, 4]; | 
| +  assertEquals({a:1,b:2,c:[3,4]}, {a, b, c});     // B16 | 
| + | 
| +  ({                                              // B17 | 
| +    a,                                            // B18 | 
| +    b,                                            // B19 | 
| +    c = 7                                         // B20 | 
| +  } = {a: 5, b: 6}); | 
| +  assertEquals({a:5,b:6,c:7}, {a, b, c});         // B21 | 
| + | 
| +  ({                                              // B22 | 
| +    a,                                            // B23 | 
| +    b = return1(),                                // B24 | 
| +    c = return1()                                 // B25 | 
| +  } = {a: 5, b: 6}); | 
| +  assertEquals({a:5,b:6,c:1}, {a, b, c});         // B28 | 
| + | 
| +  ({                                              // B29 | 
| +    x : a,                                        // B30 | 
| +    y : b,                                        // B31 | 
| +    z : c = 3                                     // B32 | 
| +  } = {x: 1, y: 2}); | 
| +  assertEquals({a:1,b:2,c:3}, {a, b, c});         // B33 | 
| +}                                                 // B34 | 
| + | 
| +function return1() { | 
| +  return 1;                                       // B26 | 
| +}                                                 // B27 | 
| + | 
| +f(); | 
| +Debug.setListener(null);                          // B35 | 
| +assertNull(exception); | 
|  |