blob: 415b15d3f82fc3f2ee5afb31258c121a6eba9daa [file] [log] [blame]
function assert(b) {
if (!b)
throw new Error("Bad assertion");
}
noInline(assert);
var o = {
valueOf: function() { return {}; },
toString: function() { return {}; }
};
function read() {
return "read";
}
noInline(read);
function bar(a, b) {
return a == b;
}
function foo(a, b) {
var result = null;
var value = read();
try {
result = bar(a, b);
} catch(e) {
assert("" + value === "read");
}
return value;
}
noInline(foo);
for (var i = 0; i < 1000; i++) {
foo(10, 20);
foo({}, {});
foo(10, 10.0);
foo("hello", "hello");
foo(null, undefined);
foo(false, 0);
}
foo(o, "hello");