description( | |
"Tests what happens when you present a CSE opportunity across an out-of-bounds string access." | |
); | |
function foo(s, o) { | |
var x = o.f; | |
s[0]; | |
var y = o.f; | |
return x + y; | |
} | |
noInline(foo); | |
silentTestPass = true; | |
var theObject = {}; | |
String.prototype.__defineGetter__("0", function() { theObject.f = 42; }); | |
while (!dfgCompiled({f:foo})) | |
shouldBe("foo(\"\", {f:1})", "2"); | |
theObject = {f:1}; | |
shouldBe("foo(\"\", theObject)", "43"); |