]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - tests/stress/logical-not-masquerades.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / logical-not-masquerades.js
diff --git a/tests/stress/logical-not-masquerades.js b/tests/stress/logical-not-masquerades.js
new file mode 100644 (file)
index 0000000..0fd59ba
--- /dev/null
@@ -0,0 +1,33 @@
+function foo(value) {
+    return !!value;
+}
+
+noInline(foo);
+
+var tests = [
+    [0, false],
+    [1, true],
+    [0/0, false],
+    [0/-1, false],
+    [0.0, false],
+    ["", false],
+    ["f", true],
+    ["hello", true],
+    [{}, true],
+    [[], true],
+    [null, false],
+    [void 0, false],
+    [false, false],
+    [true, true],
+    [makeMasquerader(), false]
+];
+
+for (var i = 0; i < 10000; ++i) {
+    for (var j = 0; j < tests.length; ++j) {
+        var input = tests[j][0];
+        var expected = tests[j][1];
+        var result = foo(input);
+        if (result !== expected)
+            throw "Error: bad result for " + input + ": " + result;
+    }
+}