node/deps/v8/test/mjsunit/regress/regress-crbug-513602.js
Michaël Zasso 422d56e36b deps: update V8 to 4.4.63.30
PR-URL: https://github.com/nodejs/node/pull/2482
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-08-28 08:17:46 +02:00

27 lines
708 B
JavaScript

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