Chromium Code Reviews| Index: test/mjsunit/regress/regress-crbug-729573.js |
| diff --git a/test/mjsunit/regress/regress-crbug-729573.js b/test/mjsunit/regress/regress-crbug-729573.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1b596abe2f70d4bdc4be32085f4b6c36f7553276 |
| --- /dev/null |
| +++ b/test/mjsunit/regress/regress-crbug-729573.js |
| @@ -0,0 +1,67 @@ |
| +// 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() { |
| + function foo() { |
| + var a = foo.bind(this); |
| + %DeoptimizeNow(); |
| + if (!a) return a; |
|
Jarin
2017/06/07 05:42:46
Please, write a test that calls the materialized f
Benedikt Meurer
2017/06/07 05:55:50
Done.
|
| + return 0; |
| + } |
| + |
| + assertEquals(0, foo()); |
| + assertEquals(0, foo()); |
| + %OptimizeFunctionOnNextCall(foo); |
| + assertEquals(0, foo()); |
| +})(); |
| + |
| +(function() { |
| + "use strict"; |
| + |
| + function foo() { |
| + var a = foo.bind(this); |
| + %DeoptimizeNow(); |
| + if (!a) return a; |
| + return 0; |
| + } |
| + |
| + assertEquals(0, foo()); |
| + assertEquals(0, foo()); |
| + %OptimizeFunctionOnNextCall(foo); |
| + assertEquals(0, foo()); |
| +})(); |
| + |
| +(function() { |
| + function foo() { |
| + var a = foo.bind(this); |
| + %DeoptimizeNow(); |
| + if (!a) return a; |
| + return 0; |
| + } |
| + foo.prototype = {custom: "prototype"}; |
| + |
| + assertEquals(0, foo()); |
| + assertEquals(0, foo()); |
| + %OptimizeFunctionOnNextCall(foo); |
| + assertEquals(0, foo()); |
| +})(); |
| + |
| +(function() { |
| + "use strict"; |
| + |
| + function foo() { |
| + var a = foo.bind(this); |
| + %DeoptimizeNow(); |
| + if (!a) return a; |
| + return 0; |
| + } |
| + foo.prototype = {custom: "prototype"}; |
| + |
| + assertEquals(0, foo()); |
| + assertEquals(0, foo()); |
| + %OptimizeFunctionOnNextCall(foo); |
| + assertEquals(0, foo()); |
| +})(); |