Javascript  |  22行  |  535 B

// Copyright 2014 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.

var array = [];
var v = 0;

Object.defineProperty(Array.prototype, "0", {
  get: function() { return "get " + v; },
  set: function(value) { v += value; }
});

array[0] = 10;
assertEquals(0, array.length);
assertEquals(10, v);
assertEquals("get 10", array[0]);

array.push(100);
assertEquals(1, array.length);
assertEquals(110, v);
assertEquals("get 110", array[0]);