| Index: test/mjsunit/regress-587004.js
|
| diff --git a/test/mjsunit/regress-587004.js b/test/mjsunit/regress-587004.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9dc6052c43fc236804299f2401968bd5d992b925
|
| --- /dev/null
|
| +++ b/test/mjsunit/regress-587004.js
|
| @@ -0,0 +1,31 @@
|
| +// 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();
|
|
|