summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Function/regress-545980.js
blob: 5e29def494468b6c450a50093edf1e772a030a36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
 * Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/licenses/publicdomain/
 */

var BUGNUMBER = 518103;
var summary = 'partial flat closures must not reach across funargs';
var actual = "no crash";
var expect = actual;

function Timer(){}
Timer.prototype = { initWithCallback: function (o) {Timer.q.push(o)} };
Timer.q = [];

var later;
var ac = {startSearch: function(q,s,n,o){later=o}};

var bm = {insertBookmark: function(){}, getIdForItemAt: function(){}};

function run_test() {
  var tagIds = [];

  (function doSearch(query) {
    ac.startSearch(query, "", null, {
      onSearchResult: function() {
        var num = tagIds.length;

        var timer = new Timer;
        var next = query.slice(1);
        timer.initWithCallback({ notify: function() { return doSearch(next); } });
      }
    });
  })("title");
}

run_test();
later.onSearchResult();
for (var i in Timer.q)
  Timer.q[i].notify();

reportCompare(expect, actual, summary);