]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - tests/stress/instanceof.js
JavaScriptCore-7600.1.4.9.tar.gz
[apple/javascriptcore.git] / tests / stress / instanceof.js
diff --git a/tests/stress/instanceof.js b/tests/stress/instanceof.js
new file mode 100644 (file)
index 0000000..f8d03e2
--- /dev/null
@@ -0,0 +1,39 @@
+function foo(o, prototype) {
+    return o instanceof prototype;
+}
+
+noInline(foo);
+
+function test(o, prototype, expected) {
+    var actual = foo(o, prototype);
+    if (actual != expected)
+        throw new Error("bad result: " + actual);
+}
+
+function Foo() { }
+
+function Bar() { }
+Bar.prototype = new Foo();
+
+for (var i = 0; i < 10000; ++i) {
+    test({}, Object, true);
+    test({}, Array, false);
+    test({}, String, false);
+    test({}, Foo, false);
+    test({}, Bar, false);
+    test([], Object, true);
+    test([], Array, true);
+    test([], String, false);
+    test([], Foo, false);
+    test([], Bar, false);
+    test(new Foo(), Object, true);
+    test(new Foo(), Array, false);
+    test(new Foo(), String, false);
+    test(new Foo(), Foo, true);
+    test(new Foo(), Bar, false);
+    test(new Bar(), Object, true);
+    test(new Bar(), Array, false);
+    test(new Bar(), String, false);
+    test(new Bar(), Foo, true);
+    test(new Bar(), Bar, true);
+}