Index: test/mjsunit/immutable-context-slot-inlining.js |
diff --git a/test/mjsunit/immutable-context-slot-inlining.js b/test/mjsunit/immutable-context-slot-inlining.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3b278c3c255c0d002f347d8b1c811336c653b32e |
--- /dev/null |
+++ b/test/mjsunit/immutable-context-slot-inlining.js |
@@ -0,0 +1,30 @@ |
+// 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 h(g) { |
+ return g(); |
+} |
+ |
+function f() { |
+ var g; |
+ for (var i = 0; i < 10; i++) { |
+ var y = i; |
+ if (i === 5) { |
+ g = function() { |
+ return y; |
+ }; |
+ assertEquals(5, h(g)); |
+ assertEquals(5, h(g)); |
+ %OptimizeFunctionOnNextCall(h); |
+ assertEquals(5, h(g)); |
+ } |
+ } |
+ return g; |
+} |
+ |
+var myg = f(); |
+ |
+assertEquals(9, h(myg)); |