// Copyright 2016 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. // Flags: --expose-gc --min-semi-space-size=32 // We need to set --min-semi-space-size to enable allocation site pretenuring. function foo(i) { with({}) {}; x = {}; x.a = 0.23; x.b = 0.3; return x; } var all = []; function step() { for (var i = 0; i < 100; i++) { var z = foo(i); // Write unboxed double in object slack. z.c = 0.1 + z.b all.push(z); } gc(1); gc(1); } step(); // Now foo will allocate objects in old space. step();