Index: test/mjsunit/asm/regress-740325.js |
diff --git a/test/mjsunit/asm/regress-740325.js b/test/mjsunit/asm/regress-740325.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9377aaeea00c5ec5663575196fef1e6f2bd4a099 |
--- /dev/null |
+++ b/test/mjsunit/asm/regress-740325.js |
@@ -0,0 +1,71 @@ |
+// 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 |
+ |
+assertTrue = function assertTrue() { } |
+assertFalse = function assertFalse() { } |
+ |
+__v_3 = []; |
+__v_2 = []; |
+__v_0 = 0; |
+__v_2.__defineGetter__(0, function() { |
+ if (__v_0++ > 2) return; |
+ gc(); |
+ __v_3.concat(__v_2); |
+}); |
+__v_2[0]; |
+ |
+ |
+function __f_2() { |
+} |
+ |
+(function __f_1() { |
+ print("1..."); |
+ function __f_5(stdlib, imports) { |
+ "use asm"; |
+ var __f_2 = imports.__f_2; |
+ function __f_3(a) { |
+ a = a | 0; |
+ } |
+ return { __f_3:__f_3 }; |
+ } |
+ var __v_2 = __f_5(this, { __f_2:__f_2 }); |
+; |
+})(); |
+ |
+(function __f_10() { |
+ print("2..."); |
+ function __f_5() { |
+ "use asm"; |
+ function __f_3(a) { |
+ } |
+ } |
+ var __v_2 = __f_5(); |
+ assertFalse(); |
+})(); |
+ |
+(function __f_11() { |
+ print("3..."); |
+ let m = (function __f_6() { |
+ function __f_5() { |
+ "use asm"; |
+ function __f_3() { |
+ } |
+ return { __f_3:__f_3 }; |
+ } |
+ var __v_2 = __f_5( { __f_2:__f_2 }); |
+ }); |
+ for (var i = 0; i < 30; i++) { |
+ print(" i = " + i); |
+ var x = m(); |
+ for (var j = 0; j < 200; j++) { |
+ try { |
+ __f_5; |
+ } catch (e) { |
+ } |
+ } |
+ x; |
+ } |
+})(); |