|
1 // |jit-test| error: Assertion failed: bad label: 2 |
|
2 try { |
|
3 this['Module'] = Module; |
|
4 } catch (e) { |
|
5 this['Module'] = Module = {}; |
|
6 } |
|
7 var ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function'; |
|
8 var ENVIRONMENT_IS_WEB = typeof window === 'object'; |
|
9 var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; |
|
10 var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; |
|
11 if (ENVIRONMENT_IS_SHELL) { |
|
12 Module['print'] = print; |
|
13 Module['arguments'] = []; |
|
14 } |
|
15 var Runtime = { |
|
16 alignMemory: function alignMemory(size, quantum) {}, |
|
17 } |
|
18 function SAFE_HEAP_CLEAR(dest) { |
|
19 } |
|
20 function SAFE_HEAP_STORE(dest, value, type, ignore) { |
|
21 setValue(dest, value, type, 1); |
|
22 } |
|
23 function SAFE_HEAP_LOAD(dest, type, unsigned, ignore) { |
|
24 try { } catch(e) {}; |
|
25 var ret = getValue(dest, type, 1); |
|
26 return ret; |
|
27 }; |
|
28 function SAFE_HEAP_LOAD1(dest, type) { |
|
29 return getValue(dest, type, 1); |
|
30 }; |
|
31 function abort(text) { |
|
32 Module.print(text + ':\n' + (new Error).stack); |
|
33 throw "Assertion: " + text; |
|
34 } |
|
35 function assert(condition, text) { |
|
36 if (!condition) { |
|
37 abort('Assertion failed: ' + text); |
|
38 } |
|
39 } |
|
40 function setValue(ptr, value, type, noSafe) { |
|
41 if (type.charAt(type.length - 1) === '*') type = 'i32'; // pointers are 32-bit |
|
42 if (noSafe) { |
|
43 switch (type) { |
|
44 case 'i32': |
|
45 HEAP32[((ptr) >> 2)] = value; |
|
46 } |
|
47 } |
|
48 } |
|
49 function getValue(ptr, type, noSafe) { |
|
50 if (type.charAt(type.length - 1) === '*') type = 'i32'; // pointers are 32-bit |
|
51 if (noSafe) { |
|
52 switch (type) { |
|
53 case 'i32': |
|
54 return HEAP32[((ptr) >> 2)]; |
|
55 } |
|
56 } |
|
57 } |
|
58 var ALLOC_STATIC = 2; // Cannot be freed |
|
59 function allocate(slab, types, allocator, ptr) {} |
|
60 var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; |
|
61 var buffer = new ArrayBuffer(TOTAL_MEMORY); |
|
62 HEAP32 = new Int32Array(buffer); |
|
63 STACK_ROOT = STACKTOP = Runtime.alignMemory(1); |
|
64 function intArrayFromString(stringy, dontAddNull, length /* optional */ ) {} |
|
65 function __ZN11btRigidBody14getMotionStateEv($this_0_20_val) { |
|
66 } |
|
67 function __ZN16btCollisionWorld23getCollisionObjectArrayEv($this) {} |
|
68 function __ZN20btAlignedObjectArrayIP17btCollisionObjectEixEi($this_0_3_val, $n) {} |
|
69 function _main($argc, $argv) { |
|
70 label = 2; |
|
71 while (1) switch (label) { |
|
72 case 2: |
|
73 var $31 = __Znwj(268); |
|
74 var $32 = $31; |
|
75 var $67 = __ZN17btCollisionObjectnwEj(); |
|
76 var $68 = $67; |
|
77 __ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody($32, $68); |
|
78 var $99 = $31; |
|
79 var $104 = __ZN23btDiscreteDynamicsWorld14stepSimulationEfif($32, .01666666753590107, 10, .01666666753590107); |
|
80 var $106 = __ZNK16btCollisionWorld22getNumCollisionObjectsEv($99); |
|
81 var $108 = __ZN16btCollisionWorld23getCollisionObjectArrayEv($99); |
|
82 var $_idx6 = $108 + 12 | 0; |
|
83 var $j_049_in = $106; |
|
84 var $j_049 = $j_049_in - 1 | 0; |
|
85 var $_idx6_val = SAFE_HEAP_LOAD($_idx6, "%class.btCollisionObject**", 0, 0); |
|
86 var $109 = __ZN20btAlignedObjectArrayIP17btCollisionObjectEixEi($_idx6_val, $j_049); |
|
87 var $110 = SAFE_HEAP_LOAD($109, "%class.btCollisionObject*", 0, 0); |
|
88 var $111 = __ZN11btRigidBody6upcastEP17btCollisionObject($110); |
|
89 var $_idx9 = $111 + 472 | 0; |
|
90 var $_idx9_val = SAFE_HEAP_LOAD($_idx9, "%class.btMotionState*", 0, 0); |
|
91 var $114 = __ZN11btRigidBody14getMotionStateEv($_idx9_val); |
|
92 var $138 = $i_057 + 1 | 0; |
|
93 var $139 = ($138 | 0) < 135; |
|
94 if ($139) { |
|
95 var $i_057 = $138; |
|
96 break; |
|
97 } |
|
98 assert(0, "bad label: " + label); |
|
99 } |
|
100 } |
|
101 Module["_main"] = _main; |
|
102 function __ZN17btCollisionObjectnwEj() { |
|
103 return __Z22btAlignedAllocInternalji(608); |
|
104 } |
|
105 function __ZNK16btCollisionWorld22getNumCollisionObjectsEv($this) {} |
|
106 function __ZN11btRigidBody6upcastEP17btCollisionObject($colObj) { |
|
107 label = 2; |
|
108 while (1) switch (label) { |
|
109 case 2: |
|
110 var $_0; |
|
111 return $_0; |
|
112 } |
|
113 } |
|
114 function __ZNK9btVector33dotERKS_($this_0_0_0_val, $this_0_0_1_val, $this_0_0_2_val, $v_0_0_0_val, $v_0_0_1_val, $v_0_0_2_val) { |
|
115 } |
|
116 function __ZN20btAlignedObjectArrayIP11btRigidBodyEixEi($this_0_3_val, $n) {} |
|
117 function __ZNK17btCollisionObject14getHitFractionEv($this_0_21_val) {} |
|
118 function __ZN17btCollisionObject30getInterpolationWorldTransformEv($this) {} |
|
119 function __ZNK17btCollisionObject30getInterpolationLinearVelocityEv($this) {} |
|
120 function __ZNK17btCollisionObject31getInterpolationAngularVelocityEv($this) {} |
|
121 function __ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody($this, $body) { |
|
122 assertEq($body, 16); |
|
123 var __stackBase__ = STACKTOP; |
|
124 while (1) switch (label) { |
|
125 case 2: |
|
126 var $interpolatedTransform = __stackBase__; |
|
127 var $4 = $body | 0; |
|
128 var $7 = __ZN17btCollisionObject30getInterpolationWorldTransformEv($4); |
|
129 var $8 = __ZNK17btCollisionObject30getInterpolationLinearVelocityEv($4); |
|
130 var $9 = __ZNK17btCollisionObject31getInterpolationAngularVelocityEv($4); |
|
131 var $10 = $this + 236 | 0; |
|
132 var $11 = SAFE_HEAP_LOAD($10, "float", 0, 0); |
|
133 var $_idx2 = $body + 240 | 0; |
|
134 var $_idx2_val = SAFE_HEAP_LOAD($_idx2, "float", 0, 0); |
|
135 var $12 = __ZNK17btCollisionObject14getHitFractionEv($_idx2_val); |
|
136 var $13 = $11 * $12; |
|
137 var $_idx3 = $8 | 0; |
|
138 var $_idx3_val = SAFE_HEAP_LOAD($_idx3, "float", 0, 0); |
|
139 var $_idx4 = $8 + 4 | 0; |
|
140 var $_idx4_val = SAFE_HEAP_LOAD($_idx4, "float", 0, 0); |
|
141 var $_idx5 = $8 + 8 | 0; |
|
142 var $_idx5_val = SAFE_HEAP_LOAD($_idx5, "float", 0, 0); |
|
143 __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_($7, $_idx3_val, $_idx4_val, $_idx5_val, $9, $13, $interpolatedTransform); |
|
144 return; |
|
145 } |
|
146 } |
|
147 function __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_($curTrans, $linvel_0_0_0_val, $linvel_0_0_1_val, $linvel_0_0_2_val, $angvel, $timeStep, $predictedTransform) { |
|
148 var __stackBase__ = STACKTOP; |
|
149 STACKTOP = STACKTOP + 132 | 0; |
|
150 while (1) { |
|
151 switch (label) { |
|
152 case 2: |
|
153 var $axis = __stackBase__ + 32; |
|
154 var $3 = __stackBase__ + 48; |
|
155 var $angvel_idx10 = $angvel | 0; |
|
156 var $angvel_idx10_val = SAFE_HEAP_LOAD($angvel_idx10, "float", 0, 0); |
|
157 var $angvel_idx11 = $angvel + 4 | 0; |
|
158 var $angvel_idx11_val = SAFE_HEAP_LOAD($angvel_idx11, "float", 0, 0); |
|
159 var $angvel_idx12 = $angvel + 8 | 0; |
|
160 var $angvel_idx12_val = SAFE_HEAP_LOAD($angvel_idx12, "float", 0, 0); |
|
161 var $7 = __ZNK9btVector36lengthEv($angvel_idx10_val, $angvel_idx11_val, $angvel_idx12_val); |
|
162 var $8 = $7 * $timeStep; |
|
163 if ($8 > .7853981852531433) {} else { |
|
164 var $fAngle_0 = $7; |
|
165 label = 5; |
|
166 } |
|
167 break; |
|
168 case 5: |
|
169 var $22 = $axis; |
|
170 var $23 = $3; |
|
171 SAFE_HEAP_STORE($22 + 12, SAFE_HEAP_LOAD1($23 + 12, "i32"), "i32", 0); |
|
172 assertEq(SAFE_HEAP_LOAD1(0, "%class.btRigidBody*"), 16); |
|
173 label = 7; |
|
174 break; |
|
175 case 6: |
|
176 SAFE_HEAP_STORE($29 + 12, SAFE_HEAP_LOAD1($30 + 12, "i32"), "i32", 0); |
|
177 case 7: |
|
178 for (var i = __stackBase__; i < STACKTOP; i++) SAFE_HEAP_CLEAR(i); |
|
179 return; |
|
180 } |
|
181 } |
|
182 } |
|
183 function __ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody($this, $body) { |
|
184 SAFE_HEAP_STORE(STACKTOP, $body, "%class.btRigidBody*", 0); |
|
185 assertEq(SAFE_HEAP_LOAD(0, "%class.btRigidBody*", 0, 0), 16); |
|
186 } |
|
187 function __ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv($this) { |
|
188 var $20 = SAFE_HEAP_LOAD(0, "%class.btRigidBody*", 0, 0); |
|
189 assertEq($20, 16); |
|
190 __ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody($this, $20); |
|
191 } |
|
192 function __ZN23btDiscreteDynamicsWorld14stepSimulationEfif($this, $timeStep, $maxSubSteps, $fixedTimeStep) { |
|
193 label = 2; |
|
194 while (1) switch (label) { |
|
195 case 2: |
|
196 var $numSimulationSubSteps_0; |
|
197 __ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv($this); |
|
198 return $numSimulationSubSteps_0; |
|
199 } |
|
200 } |
|
201 function __ZNK9btVector37length2Ev($this_0_0_0_val, $this_0_0_1_val, $this_0_0_2_val) { |
|
202 return __ZNK9btVector33dotERKS_($this_0_0_0_val, $this_0_0_1_val, $this_0_0_2_val, $this_0_0_0_val, $this_0_0_1_val, $this_0_0_2_val); |
|
203 } |
|
204 function __Z6btSqrtf($y) { |
|
205 return Math.sqrt($y); |
|
206 } |
|
207 function __ZNK9btVector36lengthEv($this_0_0_0_val, $this_0_0_1_val, $this_0_0_2_val) { |
|
208 return __Z6btSqrtf(__ZNK9btVector37length2Ev($this_0_0_0_val, $this_0_0_1_val, $this_0_0_2_val)); |
|
209 } |
|
210 function __ZL21btAlignedAllocDefaultji($size, $alignment) { |
|
211 while (1) switch (label) { |
|
212 case 2: |
|
213 var $1 = $size + 4 | 0; |
|
214 var $2 = $alignment - 1 | 0; |
|
215 var $3 = $1 + $2 | 0; |
|
216 var $4 = __ZL14btAllocDefaultj($3); |
|
217 var $7 = $4 + 4 | 0; |
|
218 var $8 = $7; |
|
219 var $9 = $alignment - $8 | 0; |
|
220 var $10 = $9 & $2; |
|
221 var $_sum = $10 + 4 | 0; |
|
222 var $11 = $4 + $_sum | 0; |
|
223 var $ret_0 = $11; |
|
224 return $ret_0; |
|
225 } |
|
226 } |
|
227 function __ZL14btAllocDefaultj($size) { |
|
228 return _malloc($size); |
|
229 } |
|
230 function __Z22btAlignedAllocInternalji($size) { |
|
231 return __ZL21btAlignedAllocDefaultji($size, 16); |
|
232 } |
|
233 function _malloc($bytes) { |
|
234 while (1) switch (label) { |
|
235 case 2: |
|
236 var $189 = SAFE_HEAP_LOAD(5244020, "%struct.malloc_chunk*", 0, 0); |
|
237 var $198 = $189 + 8 | 0; |
|
238 var $199 = $198; |
|
239 var $mem_0 = $199; |
|
240 return $mem_0; |
|
241 } |
|
242 } |
|
243 function __Znwj($size) { |
|
244 while (1) switch (label) { |
|
245 case 2: |
|
246 var $1 = ($size | 0) == 0; |
|
247 var $_size = $1 ? 1 : $size; |
|
248 var $3 = _malloc($_size); |
|
249 return $3; |
|
250 } |
|
251 } |
|
252 Module.callMain = function callMain(args) { |
|
253 var argc = args.length + 1; |
|
254 var argv = [allocate(intArrayFromString("/bin/this.program"), 'i8', ALLOC_STATIC)]; |
|
255 return Module['_main'](argc, argv, 0); |
|
256 } |
|
257 function run(args) { |
|
258 args = args || Module['arguments']; |
|
259 function doRun() { |
|
260 if (Module['_main']) { |
|
261 ret = Module.callMain(args); |
|
262 } |
|
263 } |
|
264 if (Module['setStatus']) {} else { |
|
265 return doRun(); |
|
266 } |
|
267 } |
|
268 run(); |