| // Copyright 2017 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(a, i, v) { a[i] = v; } |
| f("make it generic", 0, 0); |
| |
| var a = new Array(); |
| Object.defineProperty(a, "length", {value: 3, writable: false}); |
| print(JSON.stringify(Object.getOwnPropertyDescriptor(a, "length"))); |
| assertEquals(3, a.length); |
| f(a, 3, 3); |
| assertFalse(Object.getOwnPropertyDescriptor(a, "length").writable); |
| assertEquals(3, a.length); |
| |
| var b = new Array(); |
| b.length = 3; |
| Object.freeze(b); |
| assertEquals(3, b.length); |
| f(b, 3, 3); |
| assertEquals(3, b.length); |