Chromium Code Reviews| Index: test/mjsunit/harmony/do-expressions-control.js |
| diff --git a/test/mjsunit/harmony/do-expressions-control.js b/test/mjsunit/harmony/do-expressions-control.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..fbc9c2dac4855ac74f5d433112fab78ab283af7d |
| --- /dev/null |
| +++ b/test/mjsunit/harmony/do-expressions-control.js |
| @@ -0,0 +1,53 @@ |
| +// Copyright 2016 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: --allow-natives-syntax --harmony-do-expressions |
| + |
| +(function TestDoForInDoBreak() { |
|
rossberg
2016/02/23 14:38:33
Might be worth also having tests with labeled brea
Michael Starzinger
2016/02/23 15:52:40
Done.
rossberg
2016/02/23 16:04:32
Awesome, thanks!
|
| + function f(o, i) { |
| + var a = "result@" + do { |
| + var r = "("; |
| + for (var x in o) { |
| + var b = "end@" + do { |
| + if (x == i) { break } else { r += o[x]; x } |
| + } |
| + } |
| + r + ")"; |
| + } |
| + return a + "," + b; |
| + } |
| + assertEquals("result@(3),end@0", f([3], 2)); |
| + assertEquals("result@(35),end@1", f([3,5], 2)); |
| + assertEquals("result@(35),end@1", f([3,5,7], 2)); |
| + assertEquals("result@(35),end@1", f([3,5,7,9], 2)); |
| + %OptimizeFunctionOnNextCall(f); |
| + assertEquals("result@(3),end@0", f([3], 2)); |
| + assertEquals("result@(35),end@1", f([3,5], 2)); |
| + assertEquals("result@(35),end@1", f([3,5,7], 2)); |
| + assertEquals("result@(35),end@1", f([3,5,7,9], 2)); |
| +})(); |
| + |
| +(function TestDoForInDoContinue() { |
| + function f(o, i) { |
| + var a = "result@" + do { |
| + var r = "(" |
| + for (var x in o) { |
| + var b = "end@" + do { |
| + if (x == i) { continue } else { r += o[x]; x } |
| + } |
| + } |
| + r + ")" |
| + } |
| + return a + "," + b |
| + } |
| + assertEquals("result@(3),end@0", f([3], 2)); |
| + assertEquals("result@(35),end@1", f([3,5], 2)); |
| + assertEquals("result@(35),end@1", f([3,5,7], 2)); |
| + assertEquals("result@(359),end@3", f([3,5,7,9], 2)); |
| + %OptimizeFunctionOnNextCall(f); |
| + assertEquals("result@(3),end@0", f([3], 2)); |
| + assertEquals("result@(35),end@1", f([3,5], 2)); |
| + assertEquals("result@(35),end@1", f([3,5,7], 2)); |
| + assertEquals("result@(359),end@3", f([3,5,7,9], 2)); |
| +})(); |