Source code
Revision control
Copy as Markdown
Other Tools
function B() {}
B.prototype.x = 1;
var d = new B;
var names = ['z', 'z', 'z', 'z', 'z', 'z', 'z', 'x'];
for (var i = 0; i < names.length; i++) {
x = d.x; // guard on shapeOf(d)
d[names[i]] = 2; // unpredicted shape change
y = d.x; // guard here is elided
}
assertEq(y, 2); // Assertion failed: got 1, expected 2