]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - tests/stress/array-push-double-then-nan.js
JavaScriptCore-7600.1.4.9.tar.gz
[apple/javascriptcore.git] / tests / stress / array-push-double-then-nan.js
diff --git a/tests/stress/array-push-double-then-nan.js b/tests/stress/array-push-double-then-nan.js
new file mode 100644 (file)
index 0000000..fdc6eab
--- /dev/null
@@ -0,0 +1,23 @@
+function foo(x) {
+    var array = [];
+    var result = [];
+    for (var i = 0; i < 42; ++i)
+        result.push(array.push(x));
+    return [array, result];
+}
+
+noInline(foo);
+
+for (var i = 0; i < 100000; ++i) {
+    var result = foo(5.5);
+    if (result[0].toString() != "5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5,5.5")
+        throw "Error: bad array: " + result[0];
+    if (result[1].toString() != "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42")
+        throw "Error: bad array: " + result[1];
+}
+
+var result = foo(0/0);
+if (result[0].toString() != "NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN")
+    throw "Error: bad array: " + result[0];
+if (result[1].toString() != "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42")
+    throw "Error: bad array: " + result[1];