1202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org// Copyright 2014 the V8 project authors. All rights reserved. 2202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org// Use of this source code is governed by a BSD-style license that can be 3202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org// found in the LICENSE file. 4202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org 5202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org// Flags: --allow-natives-syntax 6202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org 7202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.orgvar array = []; 8202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org 9202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.orgfunction push(array, value) { 10202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org array.push(value); 11202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org} 12202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org 13202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.orgpush(array, 0); 14202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.orgpush(array, 1); 15202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.orgpush(array, 2); 16202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org%OptimizeFunctionOnNextCall(push); 17202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.orgpush(array, 3); 18202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org 19202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.orgvar v = 0; 20202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.orgObject.defineProperty(Array.prototype, "4", { 21202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org get: function() { return 100; }, 22202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org set: function(value) { v = value; } 23202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org}); 24202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org 25202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.orgpush(array, 4); 26202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.org 27202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.orgassertEquals(5, array.length); 28202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.orgassertEquals(100, array[4]); 29202b1d8cd93e567672cc92f48fedc35989c47312machenbach@chromium.orgassertEquals(4, v); 30