put-by-id-throw-through-optimized-code.js [plain text]
function foo(o) {
"use strict";
o.f = 42;
}
noInline(foo);
for (var i = 0; i < 100000; ++i) {
var o = {};
foo(o);
if (o.f != 42)
throw "Error: bad result: " + o.f;
o = {f:23};
foo(o);
if (o.f != 42)
throw "Error: bad result: " + o.f;
o = {g:12};
foo(o);
if (o.f != 42)
throw "Error: bad result: " + o.f;
}
var didThrow;
try {
var o = {};
Object.freeze(o);
foo(o);
} catch (e) {
didThrow = e;
}
if (!didThrow || didThrow.toString().indexOf("TypeError:") != 0)
throw "Error: didn't throw or threw wrong exception: " + didThrow;