/* * Any copyright is dedicated to the Public Domain. * http://creativecommons.org/licenses/publicdomain/ * Contributors: * Gary Kwong * Jeff Walden * Jason Orendorff */ //----------------------------------------------------------------------------- var BUGNUMBER = 713944; var summary = "Don't assert anything about a shape from the property cache until it's " + "known the cache entry matches"; print(BUGNUMBER + ": " + summary); /************** * BEGIN TEST * **************/ var accDesc = { set: function() {} }; var dataDesc = { value: 3 }; function f() { propertyIsEnumerable = {}; } function g() { propertyIsEnumerable = {}; } Object.defineProperty(Object.prototype, "propertyIsEnumerable", accDesc); f(); Object.defineProperty(Object.prototype, "propertyIsEnumerable", dataDesc); assertEq(propertyIsEnumerable, 3); f(); assertEq(propertyIsEnumerable, 3); g(); assertEq(propertyIsEnumerable, 3); var a = { p1: 1, p2: 2 }; var b = Object.create(a); Object.defineProperty(a, "p1", {set: function () {}}); for (var i = 0; i < 2; i++) { b.p1 = {}; Object.defineProperty(a, "p1", {value: 3}); } assertEq(b.p1, 3); assertEq(a.p1, 3); reportCompare(true, true);