26 lines
639 B
JavaScript
26 lines
639 B
JavaScript
|
// 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();
|