Chromium Code Reviews| Index: test/mjsunit/get-caller-js-function.js |
| diff --git a/test/mjsunit/get-caller-js-function.js b/test/mjsunit/get-caller-js-function.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a929f60d41c9ff0cd71bdca690064c8ad1038480 |
| --- /dev/null |
| +++ b/test/mjsunit/get-caller-js-function.js |
| @@ -0,0 +1,50 @@ |
| +// Copyright 2015 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: --turbo-deoptimization --allow-natives-syntax |
| + |
| +(function() { |
| + var a = function() { |
| + return %_GetCallerJSFunction(); |
| + } |
| + var b = function() { |
| + return a(); |
| + } |
| + assertEquals(b, b()); |
| + |
| + var b2 = function() { |
| + return a(); |
| + } |
| + assertEquals(b2, b2()); |
| + assertEquals(b2, b2()); |
| + %SetForceInlineFlag(a); |
| + %OptimizeFunctionOnNextCall(b2); |
| + assertEquals(b2, b2()); |
| + assertEquals(b2, b2()); |
| + |
| + var c = function() { |
| + return b(); |
| + } |
| + assertEquals(b, c()); |
| + assertEquals(b, c()); |
| + %SetForceInlineFlag(b); |
| + %OptimizeFunctionOnNextCall(c); |
| + assertEquals(b, c()); |
| + assertEquals(b, c()); |
| + |
| + %SetForceInlineFlag(c); |
| + var d = function() { |
| + return c(); |
| + } |
| + assertEquals(b, d()); |
| + assertEquals(b, d()); |
| + %OptimizeFunctionOnNextCall(d); |
| + assertEquals(b, d()); |
| + assertEquals(b, d()); |
| + |
| + var b_mismatch = function() { |
| + return a(1,2,3) |
|
Michael Starzinger
2015/05/22 12:41:12
As discussed offline: Can we have another test cas
|
| + } |
| + assertEquals(b_mismatch, b_mismatch()); |
| +}()); |