var thing0 = Symbol(); | |
var thing1 = Symbol(); | |
var thing2 = Symbol(); | |
var thing3 = Symbol(); | |
var thing4 = Symbol(); | |
var thing5 = Symbol(); | |
var thing6 = Symbol(); | |
var thing7 = Symbol(); | |
var thing8 = Symbol(); | |
var thing9 = Symbol(); | |
var thing10 = Symbol(); | |
var thing11 = Symbol(); | |
var thing12 = Symbol(); | |
var thing13 = Symbol(); | |
var thing14 = Symbol(); | |
var thing15 = Symbol(); | |
var thing16 = Symbol(); | |
var thing17 = Symbol(); | |
var thing18 = Symbol(); | |
var thing19 = Symbol(); | |
var thing20 = Symbol(); | |
var thing21 = Symbol(); | |
var thing22 = Symbol(); | |
var thing23 = Symbol(); | |
var thing24 = Symbol(); | |
var thing25 = Symbol(); | |
var thing26 = Symbol(); | |
var thing27 = Symbol(); | |
var thing28 = Symbol(); | |
var thing29 = Symbol(); | |
var thing30 = Symbol(); | |
var thing31 = Symbol(); | |
var thing32 = Symbol(); | |
var thing33 = Symbol(); | |
var thing34 = Symbol(); | |
var thing35 = Symbol(); | |
var thing36 = Symbol(); | |
var thing37 = Symbol(); | |
var thing38 = Symbol(); | |
var thing39 = Symbol(); | |
var thing40 = Symbol(); | |
var thing41 = Symbol(); | |
var thing42 = Symbol(); | |
var thing43 = Symbol(); | |
var thing44 = Symbol(); | |
var thing45 = Symbol(); | |
var thing46 = Symbol(); | |
var thing47 = Symbol(); | |
var thing48 = Symbol(); | |
var thing49 = Symbol(); | |
var thing50 = Symbol(); | |
var thing51 = Symbol(); | |
var thing52 = Symbol(); | |
var thing53 = Symbol(); | |
var thing54 = Symbol(); | |
var thing55 = Symbol(); | |
var thing56 = Symbol(); | |
var thing57 = Symbol(); | |
var thing58 = Symbol(); | |
var thing59 = Symbol(); | |
var thing60 = Symbol(); | |
var thing61 = Symbol(); | |
var thing62 = Symbol(); | |
var things = []; | |
for (var i = 0; i < 63; ++i) | |
things.push(eval("thing" + i)); | |
function foo(o) { | |
var result = 0; | |
for (var i = 0; i < 1000; ++i) { | |
var value = things[i & 63]; | |
switch (value) { | |
case thing0: | |
result += o.a; | |
break; | |
case thing1: | |
result += o.b; | |
break; | |
case thing2: | |
result += o.c; | |
break; | |
case thing3: | |
result += o.d; | |
break; | |
case thing4: | |
result += o.e; | |
break; | |
case thing5: | |
result += o.f; | |
break; | |
case thing6: | |
result += o.g; | |
break; | |
case thing7: | |
result += o.h; | |
break; | |
case thing8: | |
result += o.i; | |
break; | |
case thing9: | |
result += o.j; | |
break; | |
case thing10: | |
result += o.k; | |
break; | |
case thing11: | |
result += o.a; | |
break; | |
case thing12: | |
result += o.b; | |
break; | |
case thing13: | |
result += o.c; | |
break; | |
case thing14: | |
result += o.d; | |
break; | |
case thing15: | |
result += o.e; | |
break; | |
case thing16: | |
result += o.f; | |
break; | |
case thing17: | |
result += o.g; | |
break; | |
case thing18: | |
result += o.h; | |
break; | |
case thing19: | |
result += o.i; | |
break; | |
case thing20: | |
result += o.j; | |
break; | |
case thing21: | |
result += o.k; | |
break; | |
case thing22: | |
result += o.k; | |
break; | |
case thing23: | |
result += o.a; | |
break; | |
case thing24: | |
result += o.b; | |
break; | |
case thing25: | |
result += o.c; | |
break; | |
case thing26: | |
result += o.d; | |
break; | |
case thing27: | |
result += o.e; | |
break; | |
case thing28: | |
result += o.f; | |
break; | |
case thing29: | |
result += o.g; | |
break; | |
case thing30: | |
result += o.h; | |
break; | |
case thing31: | |
result += o.i; | |
break; | |
case thing32: | |
result += o.j; | |
break; | |
case thing33: | |
result += o.k; | |
break; | |
case thing34: | |
result += o.k; | |
break; | |
case thing35: | |
result += o.k; | |
break; | |
case thing36: | |
result += o.a; | |
break; | |
case thing37: | |
result += o.b; | |
break; | |
case thing38: | |
result += o.c; | |
break; | |
case thing39: | |
result += o.d; | |
break; | |
case thing40: | |
result += o.e; | |
break; | |
case thing41: | |
result += o.f; | |
break; | |
case thing42: | |
result += o.g; | |
break; | |
case thing43: | |
result += o.h; | |
break; | |
case thing44: | |
result += o.i; | |
break; | |
case thing45: | |
result += o.j; | |
break; | |
case thing46: | |
result += o.k; | |
break; | |
case thing47: | |
result += o.i; | |
break; | |
case thing48: | |
result += o.j; | |
break; | |
case thing49: | |
result += o.k; | |
break; | |
case thing50: | |
result += o.k; | |
break; | |
case thing51: | |
result += o.k; | |
break; | |
case thing52: | |
result += o.a; | |
break; | |
case thing53: | |
result += o.b; | |
break; | |
case thing54: | |
result += o.c; | |
break; | |
case thing55: | |
result += o.d; | |
break; | |
case thing56: | |
result += o.e; | |
break; | |
case thing57: | |
result += o.f; | |
break; | |
case thing58: | |
result += o.g; | |
break; | |
case thing59: | |
result += o.h; | |
break; | |
case thing60: | |
result += o.i; | |
break; | |
case thing61: | |
result += o.j; | |
break; | |
case thing62: | |
result += o.k; | |
break; | |
default: | |
result += o.z; | |
break; | |
} | |
} | |
return result; | |
} | |
(function() { | |
var o = {a:1, b:2, c:3, d:4, e:5, f:6, g:7, h:8, i:9, j:10, k:11, z:100}; | |
var result = 0; | |
for (var i = 0; i < 1000; ++i) | |
result += foo(o); | |
if (result != 7966000) | |
throw "Error: bad result: " + result; | |
})(); | |