Index: test/mjsunit/asm/infinite-loops.js |
diff --git a/test/mjsunit/asm/infinite-loops.js b/test/mjsunit/asm/infinite-loops.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..03f4f6b8b236061de16b3d1d170ac6b82e7fd7ff |
--- /dev/null |
+++ b/test/mjsunit/asm/infinite-loops.js |
@@ -0,0 +1,53 @@ |
+// Copyright 2014 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. |
+ |
+function Module() { |
+ "use asm"; |
+ |
+ function w0(a) { |
+ a = a | 0; |
+ if (a) while (1); |
+ return 42; |
+ } |
+ |
+ function w1(a) { |
+ a = a | 0; |
+ while (1) return 42; |
+ return 106; |
+ } |
+ |
+ function d0(a) { |
+ a = a | 0; |
+ if (a) do ; while(1); |
+ return 42; |
+ } |
+ |
+ function d1(a) { |
+ a = a | 0; |
+ do return 42; while(1); |
+ return 107; |
+ } |
+ |
+ function f0(a) { |
+ a = a | 0; |
+ if (a) for (;;) ; |
+ return 42; |
+ } |
+ |
+ function f1(a) { |
+ a = a | 0; |
+ for(;;) return 42; |
+ return 108; |
+ } |
+ |
+ return { w0: w0, w1: w1, d0: d0, d1: d1, f0: f0, f1: f1 }; |
+} |
+ |
+var m = Module(); |
+assertEquals(42, m.w0(0)); |
+assertEquals(42, m.w1(0)); |
+assertEquals(42, m.d0(0)); |
+assertEquals(42, m.d1(0)); |
+assertEquals(42, m.f0(0)); |
+assertEquals(42, m.f1(0)); |