// Copyright 2015 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. function Parent() {} function Child() {} Child.prototype = new Parent(); var child = new Child(); function crash() { return child.__proto__; } crash(); crash(); // Trigger a fast->slow->fast dance of Parent.prototype's map... Parent.prototype.__defineSetter__("foo", function() { print("A"); }); Parent.prototype.__defineSetter__("foo", function() { print("B"); }); // ...and collect more type feedback. crash(); // Now modify the prototype chain. The right cell fails to get invalidated. delete Object.prototype.__proto__; crash();