v8/test/mjsunit/regress/regress-crbug-513602.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

27 lines
708 B
JavaScript
Raw Normal View History

// 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();