js/src/jit-test/tests/auto-regress/bug499169.js

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:d9959d152f16
1 // Binary: cache/js-dbg-32-30b481fd82f5-linux
2 // Flags: -j
3 //
4 var Native = function(k) {
5 var f = k.initialize;
6 var d = f;
7 var j = function(n, l, o, m) {
8 n.prototype[l] = o;
9 };
10 d.alias = function(n, l, o) {
11 n = this.prototype[n]
12 return j(this, l, n, o);
13 };
14 d.implement = function(m, l, o) {
15 for (var n in m) {
16 j(this, n, m[n], l);
17 }
18 }
19 return d;
20 };
21 (function() {
22 var a = {
23 Array: Array,
24 Function: Function,
25 };
26 for (var h in a) {
27 new Native({
28 initialize: a[h],
29 });
30 }
31 } ());
32 Array.alias("forEach", "each");
33 function $merge() {
34 var a = Array.slice(arguments);
35 a.unshift({});
36 return $mixin.apply(null, a);
37 }
38 function $mixin(e) {
39 for (var d = 1, a = arguments.length; d < a; d++) {
40 var b = arguments[d];
41 for (var c in b) {
42 var g = b[c],
43 f = e[c];
44 e[c] = f && $type(g) == "object" && $type(f) == "object" ? $mixin(f, g) : $unlink(g);
45 }
46 }
47 }
48 function $type(a) {
49 if (a == undefined) {
50 return false;
51 }
52 if (a.$family) {
53 }
54 return typeof a;
55 }
56 function $unlink(c) {
57 if ($type(c) == "object") {
58 b = {};
59 }
60 return b;
61 }
62 var Window = new Native({
63 initialize: function(a) {},
64 });
65 Array.implement({
66 extend: function(c) {
67 return this;
68 }
69 });
70 Function.implement({
71 extend: function(a) {
72 for (var b in a) {
73 this[b] = a[b];
74 }
75 return this;
76 },
77 run: function(a, b) {
78 return this.apply(b, a);
79 }
80 });
81 function Class(b) {
82 var a = function() {
83 Object.reset(this);
84 var c = this.initialize ? this.initialize.apply(this, arguments) : this;
85 }.extend(this);
86 a.implement(b);
87 return a;
88 }
89 Object.reset = function(a, c) {
90 if (c == null) {
91 for (var e in a) {
92 Object.reset(a, e);
93 }
94 }
95 switch ($type(a[c])) {
96 case "object":
97 var d = function() {};
98 d.prototype = a[c];
99 var b = new d;
100 a[c] = Object.reset(b);
101 }
102 return a;
103 };
104 (new Native({initialize: Class})).extend({});
105 function wrap(a, b, c) {
106 return function() {
107 var d = c.apply(this, arguments);
108 }.extend({});
109 }
110 Class.implement({
111 implement: function(a, d) {
112 if ($type(a) == "object") {
113 for (var e in a) {
114 this.implement(e, a[e]);
115 }
116 }
117 var f = Class.Mutators[a];
118 if (f) {
119 d = f.call(this, d);
120 }
121 var c = this.prototype;
122 switch ($type(d)) {
123 case "function":
124 c[a] = wrap(this, a, d);
125 break;
126 case "object":
127 var b = c[a];
128 if ($type(b) == "object") {
129 $mixin(b, d);
130 } else {
131 c[a] = $unlink(d);
132 }
133 }
134 }
135 });
136 Class.Mutators = {
137 Extends: function(a) {
138 this.prototype = new a;
139 },
140 Implements: function(a) {
141 a.each(function(b) {
142 b = new b;
143 this.implement(b);
144 },
145 this);
146 }
147 };
148 var Events = new Class({});
149 var Options = new Class({
150 setOptions: function() {
151 this.options = $merge.run([this.options].extend(arguments));
152 }
153 });
154 var Autocompleter = {};
155 Autocompleter.Base = new Class({
156 Implements: [Options, Events],
157 options: {},
158 });
159 Autocompleter.Ajax = {};
160 Autocompleter.Ajax.Base = new Class({
161 Extends: Autocompleter.Base,
162 options: {
163 postVar: "value",
164 onRequest: function(){},
165 }
166 });
167 Autocompleter.Ajax.Json = new Class({
168 Extends: Autocompleter.Ajax.Base,
169 });
170 Autocompleter.JsonP = new Class({
171 Extends: Autocompleter.Ajax.Json,
172 options: {
173 minLength: 1
174 },
175 initialize: function(el, url, options) {
176 this.setOptions({});
177 }
178 });
179 new Autocompleter.JsonP();

mercurial