function g() {} function h() { for (var i = 0; i < 9; i++) x.f = i; } function j() { x.f(); } var x = {f: 0.7, g: g}; x.g(); // interpreter brands x h(); print(shapeOf(x)); x.f = function (){}; // does not change x's shape j(); print(shapeOf(x)); h(); // should change x's shape var thrown = 'none'; try { j(); // should throw since x.f === 8 } catch (exc) { thrown = exc.name; } assertEq(thrown, 'TypeError');