// Copyright 2019 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 f_1() { var v = new Array(); v[0] = 10; return v; } function test() { var setter_called = false; // Turn array to NumberDictionary Array.prototype[123456789] = 42; assertEquals(f_1().length, 1); // Reset to empty_slow_dictionary Array.prototype.length = 0; // This should reset the prototype validity cell. Array.prototype.__defineSetter__("0", function() {setter_called = true}); f_1(); assertEquals(setter_called, true); } test();