|
1 // Second testPropagatedFunArgs test -- this is a crash-test. |
|
2 (function () { |
|
3 var escapee; |
|
4 |
|
5 function testPropagatedFunArgs() |
|
6 { |
|
7 const magic = 42; |
|
8 |
|
9 var win = this; |
|
10 var res = [], q = []; |
|
11 function addEventListener(name, func, flag) { |
|
12 q.push(func); |
|
13 } |
|
14 |
|
15 var pageInfo = "pageInfo", obs; |
|
16 addEventListener("load", handleLoad, true); |
|
17 |
|
18 var observer = { |
|
19 observe: function(win, topic, data) { |
|
20 // obs.removeObserver(observer, "page-info-dialog-loaded"); |
|
21 handlePageInfo(); |
|
22 } |
|
23 }; |
|
24 |
|
25 function handleLoad() { |
|
26 //pageInfo = { toString: function() { return "pageInfo"; } }; |
|
27 obs = { addObserver: function (obs, topic, data) { obs.observe(win, topic, data); } }; |
|
28 obs.addObserver(observer, "page-info-dialog-loaded", false); |
|
29 } |
|
30 |
|
31 function handlePageInfo() { |
|
32 res.push(pageInfo); |
|
33 function $(aId) { |
|
34 function notSafe() { |
|
35 return magic; |
|
36 } |
|
37 notSafe(); |
|
38 res.push(pageInfo); |
|
39 }; |
|
40 var feedTab = $("feedTab"); |
|
41 } |
|
42 |
|
43 escapee = q[0]; |
|
44 return res.join(','); |
|
45 } |
|
46 |
|
47 testPropagatedFunArgs(); |
|
48 |
|
49 escapee(); |
|
50 })(); |
|
51 |
|
52 function testStringLengthNoTinyId() |
|
53 { |
|
54 var x = "unset"; |
|
55 var t = new String(""); |
|
56 for (var i = 0; i < 5; i++) |
|
57 x = t["-1"]; |
|
58 |
|
59 var r = "t['-1'] is " + x; |
|
60 t["-1"] = "foo"; |
|
61 r += " when unset, '" + t["-1"] + "' when set"; |
|
62 return r; |
|
63 } |
|
64 assertEq(testStringLengthNoTinyId(), "t['-1'] is undefined when unset, 'foo' when set"); |