| Index: test/mjsunit/compiler/regress-715651.js
|
| diff --git a/test/mjsunit/compiler/regress-715651.js b/test/mjsunit/compiler/regress-715651.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a75adc8ae7b92401d41023d549fc947e7c0cdd71
|
| --- /dev/null
|
| +++ b/test/mjsunit/compiler/regress-715651.js
|
| @@ -0,0 +1,38 @@
|
| +// 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.
|
| +
|
| +// Flags: --allow-natives-syntax
|
| +
|
| +function f() {
|
| + this.x = 1;
|
| +}
|
| +
|
| +var a = [];
|
| +
|
| +// Create enough objects to trigger slack tracking.
|
| +for (let i = 0; i < 100; i++) {
|
| + new f();
|
| +}
|
| +
|
| +function h() {
|
| + // Create a new object and add an out-of-object property 'y'.
|
| + var o = new f();
|
| + o.y = 1.5;
|
| + return o;
|
| +}
|
| +
|
| +function g(o) {
|
| + // Add more properties so that we trigger extension of out-ot-object
|
| + // property store.
|
| + o.u = 1.1;
|
| + o.v = 1.2;
|
| + o.z = 1.3;
|
| + // Return a field from the out-of-object-property store.
|
| + return o.y;
|
| +}
|
| +
|
| +g(h());
|
| +g(h());
|
| +%OptimizeFunctionOnNextCall(g);
|
| +assertEquals(1.5, g(h()));
|
|
|