--- /dev/null
+// Only bool, undefined and null
+function addNullBoolUndefined(a, b) {
+ return a + b;
+}
+noInline(addNullBoolUndefined);
+
+for (var i = 0; i < 1e4; ++i) {
+ var value = addNullBoolUndefined(0.5, null);
+ if (value !== 0.5)
+ throw "addNullBoolUndefined(0.5, null) failed with i = " + i + " returned value = " + value;
+
+ var value = addNullBoolUndefined(null, undefined);
+ if (value === value)
+ throw "addNullBoolUndefined(null, undefined) failed with i = " + i + " returned value = " + value;
+
+ var value = addNullBoolUndefined(true, null);
+ if (value !== 1)
+ throw "addNullBoolUndefined(true, null) failed with i = " + i + " returned value = " + value;
+
+ var value = addNullBoolUndefined(undefined, false);
+ if (value === value)
+ throw "addNullBoolUndefined(undefined, false) failed with i = " + i + " returned value = " + value;
+
+ var value = addNullBoolUndefined(false, true);
+ if (value !== 1)
+ throw "addNullBoolUndefined(false, true) failed with i = " + i + " returned value = " + value;
+
+ var value = addNullBoolUndefined(null, 42);
+ if (value !== 42)
+ throw "addNullBoolUndefined(null, 42) failed with i = " + i + " returned value = " + value;
+
+}