michael@0: // Binary: cache/js-dbg-64-6f1a38b94754-linux michael@0: // Flags: -j michael@0: // michael@0: /* vim: set ts=8 sts=4 et sw=4 tw=99: */ michael@0: michael@0: var x = 0; michael@0: var y = 0; michael@0: michael@0: function h() { michael@0: if (x == 1) michael@0: y++; michael@0: else michael@0: y--; michael@0: } michael@0: michael@0: function F() { michael@0: var m = null; michael@0: michael@0: function g(i) { michael@0: /* Force outgoing typemaps to have a string. */ michael@0: m = "badness"; michael@0: michael@0: /* Loop a bit. */ michael@0: for (var i = 0; i < 10; i++) { michael@0: h(); michael@0: } michael@0: } michael@0: michael@0: /* Spin for a while so trees build. */ michael@0: for (var i = 0; i < 100; i++) { michael@0: /* Capture m == TT_NULL in outgoing fi for rp[0] */ michael@0: g(); michael@0: michael@0: /* Flip the switch to bail out with deep nested frames. */ michael@0: if (i > 50) michael@0: x = 1; michael@0: michael@0: /* Set m = null on the loop tail to get better traces. */ michael@0: m = null; michael@0: } michael@0: } michael@0: michael@0: F(); michael@0: