--- /dev/null
+function foo(a, b) {
+ return a === b;
+}
+
+function bar(a, b) {
+ return b === a;
+}
+
+function test(a, b, expected) {
+ var fooActual = foo(a, b);
+ var barActual = bar(a, b);
+
+ if (fooActual != expected)
+ throw new Error("Bad result: " + fooActual);
+ if (barActual != expected)
+ throw new Error("Bad result: " + barActual);
+}
+
+for (var i = 0; i < 10000; ++i) {
+ test("foo", "foo", true);
+ test("foo", "bar", false);
+ test("fuz", 42, false);
+ test("buz", {}, false);
+ test("bla", null, false);
+}
+
+var fooString = "";
+fooString += "f";
+for (var i = 0; i < 2; ++i)
+ fooString += "o";
+
+test(fooString, "foo", true);