Index: test/webkit/fast/js/kde/iteration.js |
diff --git a/test/webkit/dfg-side-effect-assignment-osr-exit.js b/test/webkit/fast/js/kde/iteration.js |
similarity index 61% |
copy from test/webkit/dfg-side-effect-assignment-osr-exit.js |
copy to test/webkit/fast/js/kde/iteration.js |
index 696393fbf775d6a0b70e380f828e3444f0819f6b..7004be054b2668e6f596b9d845afae1e5952842e 100644 |
--- a/test/webkit/dfg-side-effect-assignment-osr-exit.js |
+++ b/test/webkit/fast/js/kde/iteration.js |
@@ -21,27 +21,59 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-description( |
-"Tests what happens if we OSR exit on an assignment that was part of a side-effecting bytecode instruction." |
-); |
- |
-function foo(f) { |
- var x = f(); |
- if (x) |
- return x; |
+description("KDE JS Test"); |
+// 12.6.1 |
+var count = 0; |
+do { |
+ count++; |
+} while (count < 10); |
+shouldBe("count", "10"); |
+ |
+count = 0; |
+for (var i = 0; i < 10; i++) { |
+ if (i == 5) |
+ break; |
+ count++; |
} |
+shouldBe("count", "5"); |
-var count = 0; |
-function bar() { |
- count++; |
- return eval(baz); |
+// 12.6.3 |
+count = 0; |
+for (i = 0; i < 10; i++) { |
+ count++; |
} |
+shouldBe("count", "10"); |
+ |
+// 12.6.4 |
+obj = new Object(); |
+obj.a = 11; |
+obj.b = 22; |
-var baz = "42"; |
+properties = ""; |
+for ( prop in obj ) |
+ properties += (prop + "=" + obj[prop] + ";"); |
+ |
+shouldBe("properties", "'a=11;b=22;'"); |
+ |
+// now a test verifying the order. not standardized but common. |
+obj.y = 33; |
+obj.x = 44; |
+properties = ""; |
+for ( prop in obj ) |
+ properties += prop; |
+// shouldBe("properties", "'abyx'"); |
+ |
+arr = new Array; |
+arr[0] = 100; |
+arr[1] = 101; |
+list = ""; |
+for ( var j in arr ) { |
+ list += "[" + j + "]=" + arr[j] + ";"; |
+} |
+shouldBe("list","'[0]=100;[1]=101;'"); |
-for (var i = 0; i < 500; ++i) { |
- if (i == 450) |
- baz = "\"stuff\""; |
- shouldBe("foo(bar)", baz); |
- shouldBe("count", "" + (i + 1)); |
+list = ""; |
+for (var a = [1,2,3], length = a.length, i = 0; i < length; i++) { |
+ list += a[i]; |
} |
+shouldBe("list", "'123'"); |