~ubuntu-branches/ubuntu/vivid/emscripten/vivid

« back to all changes in this revision

Viewing changes to tools/test-js-optimizer.js

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-02 13:11:51 UTC
  • Revision ID: package-import@ubuntu.com-20130502131151-q8dvteqr1ef2x7xz
Tags: upstream-1.4.1~20130504~adb56cb
ImportĀ upstreamĀ versionĀ 1.4.1~20130504~adb56cb

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
function expr() {
 
2
  if (!($0 < $1)) print("hi");
 
3
}
 
4
function loopy() {
 
5
  $while_body$2: while(1) { 
 
6
    $ok=1;
 
7
    $for_cond$4: while(1) { 
 
8
      if ($ok) break $for_cond$4;
 
9
      var $inc=$ok+1;
 
10
      if ($inc == 9999) break $while_body$2; // this forces a label to remain on the outer loop
 
11
    }
 
12
    continue $while_body$2;
 
13
  }
 
14
  next();
 
15
  b$while_body$2: while(1) { 
 
16
    $ok=1;
 
17
    b$for_cond$4: while(1) {
 
18
      if ($ok) break b$for_cond$4;
 
19
      var $inc=$ok+1;
 
20
    }
 
21
    continue b$while_body$2;
 
22
  }
 
23
  next();
 
24
  $once: do {
 
25
    if (!$ok) break $once; // forces the entire one-time do to remain (but unlabelled)
 
26
    something();
 
27
  } while(0);
 
28
  next();
 
29
  b$once: do {
 
30
    while (more()) {
 
31
      if (!$ok) break b$once; // forces the entire one-time do to remain, with label
 
32
    }
 
33
    something();
 
34
  } while(0);
 
35
  next();
 
36
  c$once: do {
 
37
    something();
 
38
  } while(0);
 
39
}
 
40
function bits() {
 
41
  print((($s & 65535) + ((($f & 65535) << 16 >> 16) * (($f & 65535) << 16 >> 16) | 0 | 0) % 256 | 0) & 65535);
 
42
  z(HEAP32[($id + 40 | 0) >> 2]);
 
43
  z(($f | 0) << 2);
 
44
  z(($f | 0) | 255);
 
45
  z(($f | 0) & 255);
 
46
  z(($f | 0) ^ 1);
 
47
  z(($f | 0) << 2);
 
48
  z((($f | 0) * 100) << 2);
 
49
  z((($f | 0) % 2) | 255);
 
50
  z((($f | 0) / 55) & 255);
 
51
  z((($f | 0) - 22) ^ 1);
 
52
  z((($f | 0) + 15) << 2);
 
53
}
 
54
function maths() {
 
55
  check(5+12);
 
56
  check(90+3+2);
 
57
  __ZN6b2Vec2C1Ev(((((((($this1 + 20 | 0 | 0) + 8 | 0) + 8 | 0) + 8 | 0) + 8 | 0) + 8 | 0) + 8 | 0) + 8 | 0);
 
58
}
 
59
function hoisting() {
 
60
  if ($i < $N) {
 
61
    label = 2;
 
62
  }
 
63
  if (label == 2) {
 
64
    callOther();
 
65
  }
 
66
  pause(1);
 
67
  if ($i < $N) {
 
68
    label = 2;
 
69
  } else {
 
70
    label = 3;
 
71
  }
 
72
  $for_body3$$for_end$5 : do {
 
73
    if (label == 2) {
 
74
      while(true) { break $for_body3$$for_end$5 }
 
75
      callOther();
 
76
    }
 
77
  } while (0);
 
78
  pause(2);
 
79
  if ($i < $N) {
 
80
    label = 2;
 
81
  } else {
 
82
    label = 3;
 
83
  }
 
84
  cheez: do {
 
85
    if (label == 2) {
 
86
      if (callOther()) break cheez;
 
87
    }
 
88
  } while (0);
 
89
  pause(3);
 
90
  if ($i < $N) {
 
91
    label = 2;
 
92
  } else {
 
93
    label = 3;
 
94
  }
 
95
  if (label == 2) {
 
96
    callOther();
 
97
  }
 
98
  pause(4);
 
99
  if ($i < $N) {
 
100
    label = 2;
 
101
  } else {
 
102
    label = 3;
 
103
  }
 
104
  if (label == 2) {
 
105
    callOther();
 
106
  } else if (label == 3) {
 
107
    somethingElse();
 
108
  }
 
109
  pause(5);
 
110
  if ($i < $N) {
 
111
    label = 2;
 
112
  } else {
 
113
    label = 3;
 
114
  }
 
115
  if (label == 55) {
 
116
    callOther();
 
117
  } else if (label == 3) {
 
118
    somethingElse();
 
119
  }
 
120
  pause(6);
 
121
  if ($i < $N) {
 
122
    label = 2;
 
123
  } else {
 
124
    label = 3;
 
125
  }
 
126
  if (label == 3) {
 
127
    somethingElse();
 
128
  }
 
129
  pause(7);
 
130
  free: while (1) {
 
131
    if ($i < $N) {
 
132
      label = 2;
 
133
    } else {
 
134
      label = 3; // this cannot be removed!
 
135
      break;
 
136
    }
 
137
    if (label == 2) {
 
138
      somethingElse();
 
139
    }
 
140
    if ($i < $N) {
 
141
      label = 2;
 
142
    } else {
 
143
      label = 3; // this can be removed!
 
144
    }
 
145
    if (label == 2) {
 
146
      somethingElse();
 
147
    }
 
148
    nothing();
 
149
  }
 
150
  pause(8);
 
151
  var $cmp95 = $69 == -1;
 
152
  if ($cmp95) {
 
153
    label = 35;
 
154
  } else {
 
155
    label = 38;
 
156
  }
 
157
  $if_then96$$if_end110thread_pre_split$48 : do {
 
158
    if (label == 35) {
 
159
      if (!$cmp103) {
 
160
        label = 38;
 
161
        break $if_then96$$if_end110thread_pre_split$48;
 
162
      }
 
163
      if (!$cmp106) {
 
164
        label = 38;
 
165
        break $if_then96$$if_end110thread_pre_split$48;
 
166
      }
 
167
      label = 39;
 
168
      break $if_then96$$if_end110thread_pre_split$48;
 
169
    }
 
170
  } while (0);
 
171
  $if_end110$$if_end110thread_pre_split$52 : do {
 
172
    if (label == 38) {
 
173
      var $79 = $_pr6;
 
174
    }
 
175
  } while (0);
 
176
  pause(9);
 
177
  var $cmp70 = ($call69 | 0) != 0;
 
178
  if ($cmp70) {
 
179
    label = 40;
 
180
  } else {
 
181
    label = 41;
 
182
  }
 
183
  $if_then72$$if_end73$126 : do {
 
184
    if (label == 40) {} else if (label == 41) {}
 
185
  } while (0);
 
186
  pause(10);
 
187
  while(check()) {
 
188
    if ($i < $N) {
 
189
      label = 2;
 
190
    } else {
 
191
      label = 3;
 
192
    }
 
193
    if (label == 2) {
 
194
      callOther();
 
195
      break;
 
196
    } else if (label == 3) {
 
197
      somethingElse();
 
198
    }
 
199
    if ($i1 < $N) {
 
200
      label = 2;
 
201
    } else {
 
202
      label = 3;
 
203
    }
 
204
    if (label == 2) {
 
205
      callOther();
 
206
      continue;
 
207
    } else if (label == 3) {
 
208
      somethingElse();
 
209
    }
 
210
    if ($i2 < $N) {
 
211
      label = 2;
 
212
    } else {
 
213
      label = 3;
 
214
    }
 
215
    if (label == 2) {
 
216
      callOther();
 
217
    } else if (label == 3) {
 
218
      somethingElse();
 
219
      break;
 
220
    }
 
221
    if ($i3 < $N) {
 
222
      label = 2;
 
223
    } else {
 
224
      label = 3;
 
225
    }
 
226
    if (label == 2) {
 
227
      callOther();
 
228
    } else if (label == 3) {
 
229
      somethingElse();
 
230
      continue;
 
231
    }
 
232
    if ($i4 < $N) {
 
233
      label = 2;
 
234
    } else {
 
235
      label = 3;
 
236
    }
 
237
    if (label == 2) {
 
238
      callOther();
 
239
      break;
 
240
    } else if (label == 3) {
 
241
      somethingElse();
 
242
      continue;
 
243
    }
 
244
  }
 
245
}
 
246
function innerShouldAlsoBeHoisted() {
 
247
  function hoisting() {
 
248
    if ($i < $N) {
 
249
      label = 2;
 
250
    }
 
251
    if (label == 2) {
 
252
      callOther();
 
253
    }
 
254
  }
 
255
}
 
256
var FS = {
 
257
  absolutePath: function(relative, base) { // Don't touch this!
 
258
    if (typeof relative !== 'string') return null;
 
259
    if (base === undefined) base = FS.currentPath;
 
260
    if (relative && relative[0] == '/') base = '';
 
261
    var full = base + '/' + relative;
 
262
    var parts = full.split('/').reverse();
 
263
    var absolute = [''];
 
264
    while (parts.length) {
 
265
      var part = parts.pop();
 
266
      if (part == '' || part == '.') {
 
267
        // Nothing.
 
268
      } else if (part == '..') {
 
269
        if (absolute.length > 1) absolute.pop();
 
270
      } else {
 
271
        absolute.push(part);
 
272
      }
 
273
    }
 
274
    return absolute.length == 1 ? '/' : absolute.join('/');
 
275
  }
 
276
}
 
277
function sleep() {
 
278
  while (Date.now() - start < msec) {
 
279
    // Do nothing. This empty block should remain untouched (c.f. _usleep)
 
280
  }
 
281
  return 0;
 
282
}
 
283
function demangle($cmp) {
 
284
  if ($cmp) {
 
285
    label = 3;
 
286
  } else {
 
287
    label = 1;
 
288
  }
 
289
  $if_then$$lor_lhs_false$2 : do {
 
290
    if (label == 1) {
 
291
      if (something()) {
 
292
        label = 3;
 
293
        break $if_then$$lor_lhs_false$2;
 
294
      }
 
295
      more();
 
296
      break $if_then$$lor_lhs_false$2;
 
297
    }
 
298
  } while (0);
 
299
  $if_then$$return$6 : do {
 
300
    if (label == 3) {
 
301
      final();
 
302
    }
 
303
  } while (0);
 
304
}
 
305
function lua() {
 
306
  $5$98 : while (1) {
 
307
    if ($14) {
 
308
      label = 3;
 
309
    } else {
 
310
      label = 4;
 
311
    }
 
312
    $15$$16$101 : do {
 
313
      if (label == 3) {} else if (label == 4) {
 
314
        var $17 = $i;
 
315
        var $18 = $3;
 
316
        var $19 = $18 + ($17 << 2) | 0;
 
317
        var $20 = HEAP32[$19 >> 2];
 
318
        var $21 = $20 + 1 | 0;
 
319
        var $22 = HEAP8[$21];
 
320
        var $23 = $22 << 24 >> 24;
 
321
        break $15$$16$101;
 
322
      }
 
323
    } while(0);
 
324
  }
 
325
  pause();
 
326
  if ($1435 == 0) {
 
327
    label = 176;
 
328
    cheez();
 
329
  } else if ($1435 == 1) {} else {
 
330
    label = 180;
 
331
    cheez();
 
332
  }
 
333
  pause();
 
334
  if ($1435 == 0) {
 
335
    label = 176;
 
336
    cheez();
 
337
  } else if ($1435 == 1) {}
 
338
}
 
339
function moreLabels() {
 
340
  $for_cond$2 : while (1) { // even this label should vanish
 
341
    if (!$cmp) {
 
342
      break $for_cond$2;
 
343
    }
 
344
    $if_then$$for_inc$5 : do {
 
345
      if ($cmp1) {
 
346
        break $for_cond$2;
 
347
      } else {
 
348
        inc();
 
349
      }
 
350
    } while (0);
 
351
    $if_then$$for_inc$5 : do {} while (0);
 
352
  }
 
353
  pause(999);
 
354
  $while_body$$while_end$31 : do {
 
355
    if ($cmp3) {
 
356
      var $6 = $5;
 
357
      {
 
358
        while (1) {
 
359
          var $6;
 
360
          $iter = $6 + 3;
 
361
          if (FHEAP[$iter + 1] < $pct_addr) {
 
362
            var $6 = $iter;
 
363
          } else {
 
364
            var $_lcssa = $iter;
 
365
            break $while_body$$while_end$31;
 
366
          }
 
367
        }
 
368
      }
 
369
    } else {
 
370
      var $_lcssa = $5;
 
371
      label = 2;
 
372
    }
 
373
  } while (0);
 
374
  var $_lcssa;
 
375
  cheez();
 
376
}
 
377
function notComps() {
 
378
  if (!(HEAP32[$incdec_ptr71_i + 8 >> 2] == 0)) {
 
379
    shoo();
 
380
  }
 
381
}
 
382
function tricky() {
 
383
  // The &-1 is a rounding correction, and must not be removed
 
384
  var $conv642 = ($conv6374 - (($132 << 16 >> 16 | 0) / 2 & -1) | 0) & 65535;
 
385
}
 
386
function asmy() {
 
387
  f(HEAP8[_buf + i6 & 16777215] & 255);
 
388
  f(HEAPU8[_buf + i6 & 16777215] & 255);
 
389
  f(HEAP8[_buf + i6 & 16777215] & 255 & 1);
 
390
  f(HEAPU8[_buf + i6 & 16777215] & 255 & 1);
 
391
  f(HEAP8[_buf + i6 & 16777215] & 1 & 255);
 
392
  f(HEAPU8[_buf + i6 & 16777215] & 1 & 255);
 
393
  f((HEAP8[_buf + i6 & 16777215] & 255 & 1) + i5 | 0);
 
394
  f((HEAPU8[_buf + i6 & 16777215] & 255 & 1) + i5 | 0);
 
395
  f((HEAP8[_buf + i6 & 16777215] & 1 & 255) + i5 | 0);
 
396
  f((HEAPU8[_buf + i6 & 16777215] & 1 & 255) + i5 | 0);
 
397
  if ((_sbrk($419 | 0) | 0 | 0) == -1) {
 
398
    print('fleefl');
 
399
  }
 
400
}
 
401
// EMSCRIPTEN_GENERATED_FUNCTIONS: ["abc", "xyz", "xyz2", "expr", "loopy", "bits", "maths", "hoisting", "demangle", "lua", "moreLabels", "notComps", "tricky", "asmy"]