Advertisement
Guest User

optiwat

a guest
Jul 23rd, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 53.97 KB | None | 0 0
  1. (module
  2. (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
  3. (type $FUNCSIG$v (func))
  4. (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
  5. (type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
  6. (type $FUNCSIG$vii (func (param i32 i32)))
  7. (type $FUNCSIG$ii (func (param i32) (result i32)))
  8. (type $FUNCSIG$viii (func (param i32 i32 i32)))
  9. (type $FUNCSIG$vi (func (param i32)))
  10. (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
  11. (memory $0 1)
  12. (data (i32.const 8) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s")
  13. (data (i32.const 56) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e")
  14. (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s")
  15. (data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
  16. (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
  17. (data (i32.const 256) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s")
  18. (data (i32.const 312) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h")
  19. (data (i32.const 360) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s")
  20. (data (i32.const 416) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\91\04\00\00\02")
  21. (table $0 2 funcref)
  22. (elem (i32.const 0) $null $assembly/index/defaultSort~anonymous|0)
  23. (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
  24. (global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
  25. (global $~lib/rt/pure/END (mut i32) (i32.const 0))
  26. (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
  27. (global $assembly/index/INT32ARRAY i32 (i32.const 3))
  28. (global $~lib/argc (mut i32) (i32.const 0))
  29. (global $~lib/rt/__rtti_base i32 (i32.const 416))
  30. (export "memory" (memory $0))
  31. (export "__alloc" (func $~lib/rt/tlsf/__alloc))
  32. (export "__retain" (func $~lib/rt/pure/__retain))
  33. (export "__release" (func $~lib/rt/pure/__release))
  34. (export "__collect" (func $~lib/rt/pure/__collect))
  35. (export "__rtti_base" (global $~lib/rt/__rtti_base))
  36. (export "INT32ARRAY" (global $assembly/index/INT32ARRAY))
  37. (export "defaultSort" (func $assembly/index/defaultSort))
  38. (export "quickSort" (func $assembly/index/quickSort))
  39. (export "insertionSort" (func $assembly/index/insertionSort))
  40. (export "countingSort" (func $assembly/index/countingSort))
  41. (func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
  42. (local $2 i32)
  43. (local $3 i32)
  44. (local $4 i32)
  45. (local $5 i32)
  46. local.get $1
  47. i32.load
  48. local.tee $3
  49. i32.const 1
  50. i32.and
  51. i32.eqz
  52. if
  53. i32.const 0
  54. i32.const 24
  55. i32.const 277
  56. i32.const 13
  57. call $~lib/builtins/abort
  58. unreachable
  59. end
  60. local.get $3
  61. i32.const -4
  62. i32.and
  63. local.tee $2
  64. i32.const 16
  65. i32.ge_u
  66. if (result i32)
  67. local.get $2
  68. i32.const 1073741808
  69. i32.lt_u
  70. else
  71. i32.const 0
  72. end
  73. i32.eqz
  74. if
  75. i32.const 0
  76. i32.const 24
  77. i32.const 279
  78. i32.const 13
  79. call $~lib/builtins/abort
  80. unreachable
  81. end
  82. local.get $2
  83. i32.const 256
  84. i32.lt_u
  85. if (result i32)
  86. local.get $2
  87. i32.const 4
  88. i32.shr_u
  89. local.set $2
  90. i32.const 0
  91. else
  92. local.get $2
  93. i32.const 31
  94. local.get $2
  95. i32.clz
  96. i32.sub
  97. local.tee $3
  98. i32.const 4
  99. i32.sub
  100. i32.shr_u
  101. i32.const 16
  102. i32.xor
  103. local.set $2
  104. local.get $3
  105. i32.const 7
  106. i32.sub
  107. end
  108. local.tee $3
  109. i32.const 23
  110. i32.lt_u
  111. if (result i32)
  112. local.get $2
  113. i32.const 16
  114. i32.lt_u
  115. else
  116. i32.const 0
  117. end
  118. i32.eqz
  119. if
  120. i32.const 0
  121. i32.const 24
  122. i32.const 292
  123. i32.const 13
  124. call $~lib/builtins/abort
  125. unreachable
  126. end
  127. local.get $1
  128. i32.load offset=20
  129. local.set $4
  130. local.get $1
  131. i32.load offset=16
  132. local.tee $5
  133. if
  134. local.get $5
  135. local.get $4
  136. i32.store offset=20
  137. end
  138. local.get $4
  139. if
  140. local.get $4
  141. local.get $5
  142. i32.store offset=16
  143. end
  144. local.get $3
  145. i32.const 4
  146. i32.shl
  147. local.get $2
  148. i32.add
  149. i32.const 2
  150. i32.shl
  151. local.get $0
  152. i32.add
  153. i32.load offset=96
  154. local.get $1
  155. i32.eq
  156. if
  157. local.get $3
  158. i32.const 4
  159. i32.shl
  160. local.get $2
  161. i32.add
  162. i32.const 2
  163. i32.shl
  164. local.get $0
  165. i32.add
  166. local.get $4
  167. i32.store offset=96
  168. local.get $4
  169. i32.eqz
  170. if
  171. local.get $3
  172. i32.const 2
  173. i32.shl
  174. local.get $0
  175. i32.add
  176. local.get $3
  177. i32.const 2
  178. i32.shl
  179. local.get $0
  180. i32.add
  181. i32.load offset=4
  182. i32.const 1
  183. local.get $2
  184. i32.shl
  185. i32.const -1
  186. i32.xor
  187. i32.and
  188. local.tee $1
  189. i32.store offset=4
  190. local.get $1
  191. i32.eqz
  192. if
  193. local.get $0
  194. local.get $0
  195. i32.load
  196. i32.const 1
  197. local.get $3
  198. i32.shl
  199. i32.const -1
  200. i32.xor
  201. i32.and
  202. i32.store
  203. end
  204. end
  205. end
  206. )
  207. (func $~lib/rt/tlsf/insertBlock (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
  208. (local $2 i32)
  209. (local $3 i32)
  210. (local $4 i32)
  211. (local $5 i32)
  212. (local $6 i32)
  213. (local $7 i32)
  214. local.get $1
  215. i32.eqz
  216. if
  217. i32.const 0
  218. i32.const 24
  219. i32.const 205
  220. i32.const 13
  221. call $~lib/builtins/abort
  222. unreachable
  223. end
  224. local.get $1
  225. i32.load
  226. local.tee $3
  227. i32.const 1
  228. i32.and
  229. i32.eqz
  230. if
  231. i32.const 0
  232. i32.const 24
  233. i32.const 207
  234. i32.const 13
  235. call $~lib/builtins/abort
  236. unreachable
  237. end
  238. local.get $1
  239. i32.const 16
  240. i32.add
  241. local.get $1
  242. i32.load
  243. i32.const -4
  244. i32.and
  245. i32.add
  246. local.tee $4
  247. i32.load
  248. local.tee $5
  249. i32.const 1
  250. i32.and
  251. if
  252. local.get $3
  253. i32.const -4
  254. i32.and
  255. i32.const 16
  256. i32.add
  257. local.get $5
  258. i32.const -4
  259. i32.and
  260. i32.add
  261. local.tee $2
  262. i32.const 1073741808
  263. i32.lt_u
  264. if
  265. local.get $0
  266. local.get $4
  267. call $~lib/rt/tlsf/removeBlock
  268. local.get $1
  269. local.get $3
  270. i32.const 3
  271. i32.and
  272. local.get $2
  273. i32.or
  274. local.tee $3
  275. i32.store
  276. local.get $1
  277. i32.const 16
  278. i32.add
  279. local.get $1
  280. i32.load
  281. i32.const -4
  282. i32.and
  283. i32.add
  284. local.tee $4
  285. i32.load
  286. local.set $5
  287. end
  288. end
  289. local.get $3
  290. i32.const 2
  291. i32.and
  292. if
  293. local.get $1
  294. i32.const 4
  295. i32.sub
  296. i32.load
  297. local.tee $2
  298. i32.load
  299. local.tee $6
  300. i32.const 1
  301. i32.and
  302. i32.eqz
  303. if
  304. i32.const 0
  305. i32.const 24
  306. i32.const 228
  307. i32.const 15
  308. call $~lib/builtins/abort
  309. unreachable
  310. end
  311. local.get $6
  312. i32.const -4
  313. i32.and
  314. i32.const 16
  315. i32.add
  316. local.get $3
  317. i32.const -4
  318. i32.and
  319. i32.add
  320. local.tee $7
  321. i32.const 1073741808
  322. i32.lt_u
  323. if (result i32)
  324. local.get $0
  325. local.get $2
  326. call $~lib/rt/tlsf/removeBlock
  327. local.get $2
  328. local.get $6
  329. i32.const 3
  330. i32.and
  331. local.get $7
  332. i32.or
  333. local.tee $3
  334. i32.store
  335. local.get $2
  336. else
  337. local.get $1
  338. end
  339. local.set $1
  340. end
  341. local.get $4
  342. local.get $5
  343. i32.const 2
  344. i32.or
  345. i32.store
  346. local.get $3
  347. i32.const -4
  348. i32.and
  349. local.tee $2
  350. i32.const 16
  351. i32.ge_u
  352. if (result i32)
  353. local.get $2
  354. i32.const 1073741808
  355. i32.lt_u
  356. else
  357. i32.const 0
  358. end
  359. i32.eqz
  360. if
  361. i32.const 0
  362. i32.const 24
  363. i32.const 243
  364. i32.const 13
  365. call $~lib/builtins/abort
  366. unreachable
  367. end
  368. local.get $4
  369. local.get $1
  370. i32.const 16
  371. i32.add
  372. local.get $2
  373. i32.add
  374. i32.ne
  375. if
  376. i32.const 0
  377. i32.const 24
  378. i32.const 244
  379. i32.const 13
  380. call $~lib/builtins/abort
  381. unreachable
  382. end
  383. local.get $4
  384. i32.const 4
  385. i32.sub
  386. local.get $1
  387. i32.store
  388. local.get $2
  389. i32.const 256
  390. i32.lt_u
  391. if (result i32)
  392. local.get $2
  393. i32.const 4
  394. i32.shr_u
  395. local.set $4
  396. i32.const 0
  397. else
  398. local.get $2
  399. i32.const 31
  400. local.get $2
  401. i32.clz
  402. i32.sub
  403. local.tee $2
  404. i32.const 4
  405. i32.sub
  406. i32.shr_u
  407. i32.const 16
  408. i32.xor
  409. local.set $4
  410. local.get $2
  411. i32.const 7
  412. i32.sub
  413. end
  414. local.tee $3
  415. i32.const 23
  416. i32.lt_u
  417. if (result i32)
  418. local.get $4
  419. i32.const 16
  420. i32.lt_u
  421. else
  422. i32.const 0
  423. end
  424. i32.eqz
  425. if
  426. i32.const 0
  427. i32.const 24
  428. i32.const 260
  429. i32.const 13
  430. call $~lib/builtins/abort
  431. unreachable
  432. end
  433. local.get $3
  434. i32.const 4
  435. i32.shl
  436. local.get $4
  437. i32.add
  438. i32.const 2
  439. i32.shl
  440. local.get $0
  441. i32.add
  442. i32.load offset=96
  443. local.set $2
  444. local.get $1
  445. i32.const 0
  446. i32.store offset=16
  447. local.get $1
  448. local.get $2
  449. i32.store offset=20
  450. local.get $2
  451. if
  452. local.get $2
  453. local.get $1
  454. i32.store offset=16
  455. end
  456. local.get $3
  457. i32.const 4
  458. i32.shl
  459. local.get $4
  460. i32.add
  461. i32.const 2
  462. i32.shl
  463. local.get $0
  464. i32.add
  465. local.get $1
  466. i32.store offset=96
  467. local.get $0
  468. local.get $0
  469. i32.load
  470. i32.const 1
  471. local.get $3
  472. i32.shl
  473. i32.or
  474. i32.store
  475. local.get $3
  476. i32.const 2
  477. i32.shl
  478. local.get $0
  479. i32.add
  480. local.get $3
  481. i32.const 2
  482. i32.shl
  483. local.get $0
  484. i32.add
  485. i32.load offset=4
  486. i32.const 1
  487. local.get $4
  488. i32.shl
  489. i32.or
  490. i32.store offset=4
  491. )
  492. (func $~lib/rt/tlsf/addMemory (; 3 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
  493. (local $3 i32)
  494. (local $4 i32)
  495. local.get $2
  496. i32.const 15
  497. i32.and
  498. i32.eqz
  499. i32.const 0
  500. local.get $1
  501. i32.const 15
  502. i32.and
  503. i32.eqz
  504. i32.const 0
  505. local.get $1
  506. local.get $2
  507. i32.le_u
  508. select
  509. select
  510. i32.eqz
  511. if
  512. i32.const 0
  513. i32.const 24
  514. i32.const 386
  515. i32.const 4
  516. call $~lib/builtins/abort
  517. unreachable
  518. end
  519. local.get $0
  520. i32.load offset=1568
  521. local.tee $3
  522. if
  523. local.get $1
  524. local.get $3
  525. i32.const 16
  526. i32.add
  527. i32.lt_u
  528. if
  529. i32.const 0
  530. i32.const 24
  531. i32.const 396
  532. i32.const 15
  533. call $~lib/builtins/abort
  534. unreachable
  535. end
  536. local.get $1
  537. i32.const 16
  538. i32.sub
  539. local.get $3
  540. i32.eq
  541. if
  542. local.get $3
  543. i32.load
  544. local.set $4
  545. local.get $1
  546. i32.const 16
  547. i32.sub
  548. local.set $1
  549. end
  550. else
  551. local.get $1
  552. local.get $0
  553. i32.const 1572
  554. i32.add
  555. i32.lt_u
  556. if
  557. i32.const 0
  558. i32.const 24
  559. i32.const 408
  560. i32.const 4
  561. call $~lib/builtins/abort
  562. unreachable
  563. end
  564. end
  565. local.get $2
  566. local.get $1
  567. i32.sub
  568. local.tee $2
  569. i32.const 48
  570. i32.lt_u
  571. if
  572. return
  573. end
  574. local.get $1
  575. local.get $4
  576. i32.const 2
  577. i32.and
  578. local.get $2
  579. i32.const 32
  580. i32.sub
  581. i32.const 1
  582. i32.or
  583. i32.or
  584. i32.store
  585. local.get $1
  586. i32.const 0
  587. i32.store offset=16
  588. local.get $1
  589. i32.const 0
  590. i32.store offset=20
  591. local.get $1
  592. local.get $2
  593. i32.add
  594. i32.const 16
  595. i32.sub
  596. local.tee $2
  597. i32.const 2
  598. i32.store
  599. local.get $0
  600. local.get $2
  601. i32.store offset=1568
  602. local.get $0
  603. local.get $1
  604. call $~lib/rt/tlsf/insertBlock
  605. )
  606. (func $~lib/rt/tlsf/initializeRoot (; 4 ;) (type $FUNCSIG$v)
  607. (local $0 i32)
  608. (local $1 i32)
  609. i32.const 1
  610. memory.size
  611. local.tee $0
  612. i32.gt_s
  613. if (result i32)
  614. i32.const 1
  615. local.get $0
  616. i32.sub
  617. memory.grow
  618. i32.const 0
  619. i32.lt_s
  620. else
  621. i32.const 0
  622. end
  623. if
  624. unreachable
  625. end
  626. i32.const 464
  627. i32.const 0
  628. i32.store
  629. i32.const 2032
  630. i32.const 0
  631. i32.store
  632. i32.const 0
  633. local.set $0
  634. loop $loop|0
  635. block $break|0
  636. local.get $0
  637. i32.const 23
  638. i32.ge_u
  639. br_if $break|0
  640. local.get $0
  641. i32.const 2
  642. i32.shl
  643. i32.const 464
  644. i32.add
  645. i32.const 0
  646. i32.store offset=4
  647. i32.const 0
  648. local.set $1
  649. loop $loop|1
  650. block $break|1
  651. local.get $1
  652. i32.const 16
  653. i32.ge_u
  654. br_if $break|1
  655. local.get $0
  656. i32.const 4
  657. i32.shl
  658. local.get $1
  659. i32.add
  660. i32.const 2
  661. i32.shl
  662. i32.const 464
  663. i32.add
  664. i32.const 0
  665. i32.store offset=96
  666. local.get $1
  667. i32.const 1
  668. i32.add
  669. local.set $1
  670. br $loop|1
  671. end
  672. end
  673. local.get $0
  674. i32.const 1
  675. i32.add
  676. local.set $0
  677. br $loop|0
  678. end
  679. end
  680. i32.const 464
  681. i32.const 2048
  682. memory.size
  683. i32.const 16
  684. i32.shl
  685. call $~lib/rt/tlsf/addMemory
  686. i32.const 464
  687. global.set $~lib/rt/tlsf/ROOT
  688. )
  689. (func $~lib/rt/tlsf/prepareSize (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
  690. local.get $0
  691. i32.const 1073741808
  692. i32.ge_u
  693. if
  694. i32.const 72
  695. i32.const 24
  696. i32.const 457
  697. i32.const 29
  698. call $~lib/builtins/abort
  699. unreachable
  700. end
  701. local.get $0
  702. i32.const 15
  703. i32.add
  704. i32.const -16
  705. i32.and
  706. local.tee $0
  707. i32.const 16
  708. local.get $0
  709. i32.const 16
  710. i32.gt_u
  711. select
  712. )
  713. (func $~lib/rt/tlsf/searchBlock (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
  714. (local $2 i32)
  715. local.get $1
  716. i32.const 256
  717. i32.lt_u
  718. if (result i32)
  719. local.get $1
  720. i32.const 4
  721. i32.shr_u
  722. local.set $1
  723. i32.const 0
  724. else
  725. local.get $1
  726. i32.const 536870904
  727. i32.lt_u
  728. if
  729. i32.const 1
  730. i32.const 27
  731. local.get $1
  732. i32.clz
  733. i32.sub
  734. i32.shl
  735. local.get $1
  736. i32.add
  737. i32.const 1
  738. i32.sub
  739. local.set $1
  740. end
  741. local.get $1
  742. i32.const 31
  743. local.get $1
  744. i32.clz
  745. i32.sub
  746. local.tee $2
  747. i32.const 4
  748. i32.sub
  749. i32.shr_u
  750. i32.const 16
  751. i32.xor
  752. local.set $1
  753. local.get $2
  754. i32.const 7
  755. i32.sub
  756. end
  757. local.tee $2
  758. i32.const 23
  759. i32.lt_u
  760. if (result i32)
  761. local.get $1
  762. i32.const 16
  763. i32.lt_u
  764. else
  765. i32.const 0
  766. end
  767. i32.eqz
  768. if
  769. i32.const 0
  770. i32.const 24
  771. i32.const 338
  772. i32.const 13
  773. call $~lib/builtins/abort
  774. unreachable
  775. end
  776. local.get $2
  777. i32.const 2
  778. i32.shl
  779. local.get $0
  780. i32.add
  781. i32.load offset=4
  782. i32.const -1
  783. local.get $1
  784. i32.shl
  785. i32.and
  786. local.tee $1
  787. if (result i32)
  788. local.get $1
  789. i32.ctz
  790. local.get $2
  791. i32.const 4
  792. i32.shl
  793. i32.add
  794. i32.const 2
  795. i32.shl
  796. local.get $0
  797. i32.add
  798. i32.load offset=96
  799. else
  800. local.get $0
  801. i32.load
  802. i32.const -1
  803. local.get $2
  804. i32.const 1
  805. i32.add
  806. i32.shl
  807. i32.and
  808. local.tee $1
  809. if (result i32)
  810. local.get $1
  811. i32.ctz
  812. local.tee $1
  813. i32.const 2
  814. i32.shl
  815. local.get $0
  816. i32.add
  817. i32.load offset=4
  818. local.tee $2
  819. i32.eqz
  820. if
  821. i32.const 0
  822. i32.const 24
  823. i32.const 351
  824. i32.const 17
  825. call $~lib/builtins/abort
  826. unreachable
  827. end
  828. local.get $2
  829. i32.ctz
  830. local.get $1
  831. i32.const 4
  832. i32.shl
  833. i32.add
  834. i32.const 2
  835. i32.shl
  836. local.get $0
  837. i32.add
  838. i32.load offset=96
  839. else
  840. i32.const 0
  841. end
  842. end
  843. )
  844. (func $~lib/rt/tlsf/growMemory (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
  845. (local $2 i32)
  846. memory.size
  847. local.tee $2
  848. i32.const 16
  849. local.get $0
  850. i32.load offset=1568
  851. local.get $2
  852. i32.const 16
  853. i32.shl
  854. i32.const 16
  855. i32.sub
  856. i32.ne
  857. i32.shl
  858. i32.const 1
  859. i32.const 27
  860. local.get $1
  861. i32.clz
  862. i32.sub
  863. i32.shl
  864. i32.const 1
  865. i32.sub
  866. local.get $1
  867. i32.add
  868. local.get $1
  869. local.get $1
  870. i32.const 536870904
  871. i32.lt_u
  872. select
  873. i32.add
  874. i32.const 65535
  875. i32.add
  876. i32.const -65536
  877. i32.and
  878. i32.const 16
  879. i32.shr_u
  880. local.tee $1
  881. local.get $2
  882. local.get $1
  883. i32.gt_s
  884. select
  885. memory.grow
  886. i32.const 0
  887. i32.lt_s
  888. if
  889. local.get $1
  890. memory.grow
  891. i32.const 0
  892. i32.lt_s
  893. if
  894. unreachable
  895. end
  896. end
  897. local.get $0
  898. local.get $2
  899. i32.const 16
  900. i32.shl
  901. memory.size
  902. i32.const 16
  903. i32.shl
  904. call $~lib/rt/tlsf/addMemory
  905. )
  906. (func $~lib/rt/tlsf/prepareBlock (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
  907. (local $3 i32)
  908. (local $4 i32)
  909. local.get $1
  910. i32.load
  911. local.set $3
  912. local.get $2
  913. i32.const 15
  914. i32.and
  915. if
  916. i32.const 0
  917. i32.const 24
  918. i32.const 365
  919. i32.const 13
  920. call $~lib/builtins/abort
  921. unreachable
  922. end
  923. local.get $3
  924. i32.const -4
  925. i32.and
  926. local.get $2
  927. i32.sub
  928. local.tee $4
  929. i32.const 32
  930. i32.ge_u
  931. if
  932. local.get $1
  933. local.get $3
  934. i32.const 2
  935. i32.and
  936. local.get $2
  937. i32.or
  938. i32.store
  939. local.get $1
  940. i32.const 16
  941. i32.add
  942. local.get $2
  943. i32.add
  944. local.tee $1
  945. local.get $4
  946. i32.const 16
  947. i32.sub
  948. i32.const 1
  949. i32.or
  950. i32.store
  951. local.get $0
  952. local.get $1
  953. call $~lib/rt/tlsf/insertBlock
  954. else
  955. local.get $1
  956. local.get $3
  957. i32.const -2
  958. i32.and
  959. i32.store
  960. local.get $1
  961. i32.const 16
  962. i32.add
  963. local.get $1
  964. i32.load
  965. i32.const -4
  966. i32.and
  967. i32.add
  968. local.get $1
  969. i32.const 16
  970. i32.add
  971. local.get $1
  972. i32.load
  973. i32.const -4
  974. i32.and
  975. i32.add
  976. i32.load
  977. i32.const -3
  978. i32.and
  979. i32.store
  980. end
  981. )
  982. (func $~lib/rt/tlsf/allocateBlock (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
  983. (local $2 i32)
  984. (local $3 i32)
  985. local.get $0
  986. local.get $1
  987. call $~lib/rt/tlsf/prepareSize
  988. local.tee $3
  989. call $~lib/rt/tlsf/searchBlock
  990. local.tee $2
  991. i32.eqz
  992. if
  993. local.get $0
  994. local.get $3
  995. call $~lib/rt/tlsf/growMemory
  996. local.get $0
  997. local.get $3
  998. call $~lib/rt/tlsf/searchBlock
  999. local.tee $2
  1000. i32.eqz
  1001. if
  1002. i32.const 0
  1003. i32.const 24
  1004. i32.const 487
  1005. i32.const 15
  1006. call $~lib/builtins/abort
  1007. unreachable
  1008. end
  1009. end
  1010. local.get $2
  1011. i32.load
  1012. i32.const -4
  1013. i32.and
  1014. local.get $3
  1015. i32.lt_u
  1016. if
  1017. i32.const 0
  1018. i32.const 24
  1019. i32.const 489
  1020. i32.const 13
  1021. call $~lib/builtins/abort
  1022. unreachable
  1023. end
  1024. local.get $2
  1025. i32.const 0
  1026. i32.store offset=4
  1027. local.get $2
  1028. local.get $1
  1029. i32.store offset=12
  1030. local.get $0
  1031. local.get $2
  1032. call $~lib/rt/tlsf/removeBlock
  1033. local.get $0
  1034. local.get $2
  1035. local.get $3
  1036. call $~lib/rt/tlsf/prepareBlock
  1037. local.get $2
  1038. )
  1039. (func $~lib/rt/tlsf/__alloc (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
  1040. (local $2 i32)
  1041. global.get $~lib/rt/tlsf/ROOT
  1042. local.tee $2
  1043. if (result i32)
  1044. local.get $2
  1045. else
  1046. call $~lib/rt/tlsf/initializeRoot
  1047. global.get $~lib/rt/tlsf/ROOT
  1048. end
  1049. local.get $0
  1050. call $~lib/rt/tlsf/allocateBlock
  1051. local.tee $0
  1052. local.get $1
  1053. i32.store offset=8
  1054. local.get $0
  1055. i32.const 16
  1056. i32.add
  1057. )
  1058. (func $~lib/rt/pure/increment (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
  1059. (local $1 i32)
  1060. local.get $0
  1061. i32.load offset=4
  1062. local.tee $1
  1063. i32.const -268435456
  1064. i32.and
  1065. local.get $1
  1066. i32.const 1
  1067. i32.add
  1068. i32.const -268435456
  1069. i32.and
  1070. i32.ne
  1071. if
  1072. i32.const 0
  1073. i32.const 128
  1074. i32.const 104
  1075. i32.const 2
  1076. call $~lib/builtins/abort
  1077. unreachable
  1078. end
  1079. local.get $0
  1080. local.get $1
  1081. i32.const 1
  1082. i32.add
  1083. i32.store offset=4
  1084. local.get $0
  1085. i32.load
  1086. i32.const 1
  1087. i32.and
  1088. if
  1089. i32.const 0
  1090. i32.const 128
  1091. i32.const 107
  1092. i32.const 13
  1093. call $~lib/builtins/abort
  1094. unreachable
  1095. end
  1096. )
  1097. (func $~lib/rt/pure/__retain (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
  1098. local.get $0
  1099. i32.const 452
  1100. i32.gt_u
  1101. if
  1102. local.get $0
  1103. i32.const 16
  1104. i32.sub
  1105. call $~lib/rt/pure/increment
  1106. end
  1107. local.get $0
  1108. )
  1109. (func $~lib/rt/tlsf/freeBlock (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
  1110. (local $2 i32)
  1111. local.get $1
  1112. i32.load
  1113. local.tee $2
  1114. i32.const 1
  1115. i32.and
  1116. if
  1117. i32.const 0
  1118. i32.const 24
  1119. i32.const 546
  1120. i32.const 2
  1121. call $~lib/builtins/abort
  1122. unreachable
  1123. end
  1124. local.get $1
  1125. local.get $2
  1126. i32.const 1
  1127. i32.or
  1128. i32.store
  1129. local.get $0
  1130. local.get $1
  1131. call $~lib/rt/tlsf/insertBlock
  1132. )
  1133. (func $~lib/rt/__typeinfo (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
  1134. local.get $0
  1135. i32.const 416
  1136. i32.load
  1137. i32.gt_u
  1138. if
  1139. i32.const 176
  1140. i32.const 232
  1141. i32.const 22
  1142. i32.const 27
  1143. call $~lib/builtins/abort
  1144. unreachable
  1145. end
  1146. local.get $0
  1147. i32.const 3
  1148. i32.shl
  1149. i32.const 420
  1150. i32.add
  1151. i32.load
  1152. )
  1153. (func $~lib/memory/memory.copy (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
  1154. (local $3 i32)
  1155. (local $4 i32)
  1156. block $~lib/util/memory/memmove|inlined.0
  1157. local.get $2
  1158. local.set $3
  1159. local.get $0
  1160. local.get $1
  1161. i32.eq
  1162. br_if $~lib/util/memory/memmove|inlined.0
  1163. local.get $0
  1164. local.get $1
  1165. i32.lt_u
  1166. if
  1167. local.get $1
  1168. i32.const 7
  1169. i32.and
  1170. local.get $0
  1171. i32.const 7
  1172. i32.and
  1173. i32.eq
  1174. if
  1175. loop $continue|0
  1176. local.get $0
  1177. i32.const 7
  1178. i32.and
  1179. if
  1180. local.get $3
  1181. i32.eqz
  1182. br_if $~lib/util/memory/memmove|inlined.0
  1183. local.get $3
  1184. i32.const 1
  1185. i32.sub
  1186. local.set $3
  1187. local.get $0
  1188. local.tee $2
  1189. i32.const 1
  1190. i32.add
  1191. local.set $0
  1192. local.get $1
  1193. local.tee $4
  1194. i32.const 1
  1195. i32.add
  1196. local.set $1
  1197. local.get $2
  1198. local.get $4
  1199. i32.load8_u
  1200. i32.store8
  1201. br $continue|0
  1202. end
  1203. end
  1204. loop $continue|1
  1205. local.get $3
  1206. i32.const 8
  1207. i32.lt_u
  1208. i32.eqz
  1209. if
  1210. local.get $0
  1211. local.get $1
  1212. i64.load
  1213. i64.store
  1214. local.get $3
  1215. i32.const 8
  1216. i32.sub
  1217. local.set $3
  1218. local.get $0
  1219. i32.const 8
  1220. i32.add
  1221. local.set $0
  1222. local.get $1
  1223. i32.const 8
  1224. i32.add
  1225. local.set $1
  1226. br $continue|1
  1227. end
  1228. end
  1229. end
  1230. loop $continue|2
  1231. local.get $3
  1232. if
  1233. local.get $0
  1234. local.tee $2
  1235. i32.const 1
  1236. i32.add
  1237. local.set $0
  1238. local.get $1
  1239. local.tee $4
  1240. i32.const 1
  1241. i32.add
  1242. local.set $1
  1243. local.get $2
  1244. local.get $4
  1245. i32.load8_u
  1246. i32.store8
  1247. local.get $3
  1248. i32.const 1
  1249. i32.sub
  1250. local.set $3
  1251. br $continue|2
  1252. end
  1253. end
  1254. else
  1255. local.get $1
  1256. i32.const 7
  1257. i32.and
  1258. local.get $0
  1259. i32.const 7
  1260. i32.and
  1261. i32.eq
  1262. if
  1263. loop $continue|3
  1264. local.get $0
  1265. local.get $3
  1266. i32.add
  1267. i32.const 7
  1268. i32.and
  1269. if
  1270. local.get $3
  1271. i32.eqz
  1272. br_if $~lib/util/memory/memmove|inlined.0
  1273. local.get $0
  1274. local.get $3
  1275. i32.const 1
  1276. i32.sub
  1277. local.tee $3
  1278. i32.add
  1279. local.get $1
  1280. local.get $3
  1281. i32.add
  1282. i32.load8_u
  1283. i32.store8
  1284. br $continue|3
  1285. end
  1286. end
  1287. loop $continue|4
  1288. local.get $3
  1289. i32.const 8
  1290. i32.lt_u
  1291. i32.eqz
  1292. if
  1293. local.get $0
  1294. local.get $3
  1295. i32.const 8
  1296. i32.sub
  1297. local.tee $3
  1298. i32.add
  1299. local.get $1
  1300. local.get $3
  1301. i32.add
  1302. i64.load
  1303. i64.store
  1304. br $continue|4
  1305. end
  1306. end
  1307. end
  1308. loop $continue|5
  1309. local.get $3
  1310. if
  1311. local.get $0
  1312. local.get $3
  1313. i32.const 1
  1314. i32.sub
  1315. local.tee $3
  1316. i32.add
  1317. local.get $1
  1318. local.get $3
  1319. i32.add
  1320. i32.load8_u
  1321. i32.store8
  1322. br $continue|5
  1323. end
  1324. end
  1325. end
  1326. end
  1327. )
  1328. (func $~lib/rt/tlsf/__free (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
  1329. global.get $~lib/rt/tlsf/ROOT
  1330. i32.eqz
  1331. if
  1332. i32.const 0
  1333. i32.const 24
  1334. i32.const 576
  1335. i32.const 13
  1336. call $~lib/builtins/abort
  1337. unreachable
  1338. end
  1339. local.get $0
  1340. i32.const 15
  1341. i32.and
  1342. i32.eqz
  1343. i32.const 0
  1344. local.get $0
  1345. select
  1346. i32.eqz
  1347. if
  1348. i32.const 0
  1349. i32.const 24
  1350. i32.const 577
  1351. i32.const 2
  1352. call $~lib/builtins/abort
  1353. unreachable
  1354. end
  1355. global.get $~lib/rt/tlsf/ROOT
  1356. local.get $0
  1357. i32.const 16
  1358. i32.sub
  1359. call $~lib/rt/tlsf/freeBlock
  1360. )
  1361. (func $~lib/rt/pure/growRoots (; 17 ;) (type $FUNCSIG$v)
  1362. (local $0 i32)
  1363. (local $1 i32)
  1364. (local $2 i32)
  1365. (local $3 i32)
  1366. global.get $~lib/rt/pure/CUR
  1367. global.get $~lib/rt/pure/ROOTS
  1368. local.tee $1
  1369. i32.sub
  1370. local.tee $2
  1371. i32.const 1
  1372. i32.shl
  1373. local.tee $0
  1374. i32.const 256
  1375. local.get $0
  1376. i32.const 256
  1377. i32.gt_u
  1378. select
  1379. local.tee $3
  1380. i32.const 0
  1381. call $~lib/rt/tlsf/__alloc
  1382. local.tee $0
  1383. local.get $1
  1384. local.get $2
  1385. call $~lib/memory/memory.copy
  1386. local.get $1
  1387. if
  1388. local.get $1
  1389. call $~lib/rt/tlsf/__free
  1390. end
  1391. local.get $0
  1392. global.set $~lib/rt/pure/ROOTS
  1393. local.get $0
  1394. local.get $2
  1395. i32.add
  1396. global.set $~lib/rt/pure/CUR
  1397. local.get $0
  1398. local.get $3
  1399. i32.add
  1400. global.set $~lib/rt/pure/END
  1401. )
  1402. (func $~lib/rt/pure/appendRoot (; 18 ;) (type $FUNCSIG$vi) (param $0 i32)
  1403. (local $1 i32)
  1404. global.get $~lib/rt/pure/CUR
  1405. local.tee $1
  1406. global.get $~lib/rt/pure/END
  1407. i32.ge_u
  1408. if
  1409. call $~lib/rt/pure/growRoots
  1410. global.get $~lib/rt/pure/CUR
  1411. local.set $1
  1412. end
  1413. local.get $1
  1414. local.get $0
  1415. i32.store
  1416. local.get $1
  1417. i32.const 4
  1418. i32.add
  1419. global.set $~lib/rt/pure/CUR
  1420. )
  1421. (func $~lib/rt/pure/decrement (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
  1422. (local $1 i32)
  1423. (local $2 i32)
  1424. local.get $0
  1425. i32.load offset=4
  1426. local.tee $2
  1427. i32.const 268435455
  1428. i32.and
  1429. local.set $1
  1430. local.get $0
  1431. i32.load
  1432. i32.const 1
  1433. i32.and
  1434. if
  1435. i32.const 0
  1436. i32.const 128
  1437. i32.const 115
  1438. i32.const 13
  1439. call $~lib/builtins/abort
  1440. unreachable
  1441. end
  1442. local.get $1
  1443. i32.const 1
  1444. i32.eq
  1445. if
  1446. local.get $0
  1447. i32.const 16
  1448. i32.add
  1449. i32.const 1
  1450. call $~lib/rt/__visit_members
  1451. local.get $2
  1452. i32.const -2147483648
  1453. i32.and
  1454. if
  1455. local.get $0
  1456. i32.const -2147483648
  1457. i32.store offset=4
  1458. else
  1459. global.get $~lib/rt/tlsf/ROOT
  1460. local.get $0
  1461. call $~lib/rt/tlsf/freeBlock
  1462. end
  1463. else
  1464. local.get $1
  1465. i32.const 0
  1466. i32.le_u
  1467. if
  1468. i32.const 0
  1469. i32.const 128
  1470. i32.const 124
  1471. i32.const 15
  1472. call $~lib/builtins/abort
  1473. unreachable
  1474. end
  1475. local.get $0
  1476. i32.load offset=8
  1477. call $~lib/rt/__typeinfo
  1478. i32.const 16
  1479. i32.and
  1480. if
  1481. local.get $0
  1482. local.get $1
  1483. i32.const 1
  1484. i32.sub
  1485. local.get $2
  1486. i32.const -268435456
  1487. i32.and
  1488. i32.or
  1489. i32.store offset=4
  1490. else
  1491. local.get $0
  1492. local.get $1
  1493. i32.const 1
  1494. i32.sub
  1495. i32.const -1342177280
  1496. i32.or
  1497. i32.store offset=4
  1498. local.get $2
  1499. i32.const -2147483648
  1500. i32.and
  1501. i32.eqz
  1502. if
  1503. local.get $0
  1504. call $~lib/rt/pure/appendRoot
  1505. end
  1506. end
  1507. end
  1508. )
  1509. (func $~lib/rt/pure/__release (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
  1510. local.get $0
  1511. i32.const 452
  1512. i32.gt_u
  1513. if
  1514. local.get $0
  1515. i32.const 16
  1516. i32.sub
  1517. call $~lib/rt/pure/decrement
  1518. end
  1519. )
  1520. (func $~lib/rt/pure/markGray (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
  1521. (local $1 i32)
  1522. local.get $0
  1523. i32.load offset=4
  1524. local.tee $1
  1525. i32.const 1879048192
  1526. i32.and
  1527. i32.const 268435456
  1528. i32.ne
  1529. if
  1530. local.get $0
  1531. local.get $1
  1532. i32.const -1879048193
  1533. i32.and
  1534. i32.const 268435456
  1535. i32.or
  1536. i32.store offset=4
  1537. local.get $0
  1538. i32.const 16
  1539. i32.add
  1540. i32.const 2
  1541. call $~lib/rt/__visit_members
  1542. end
  1543. )
  1544. (func $~lib/rt/pure/scanBlack (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
  1545. local.get $0
  1546. local.get $0
  1547. i32.load offset=4
  1548. i32.const -1879048193
  1549. i32.and
  1550. i32.store offset=4
  1551. local.get $0
  1552. i32.const 16
  1553. i32.add
  1554. i32.const 4
  1555. call $~lib/rt/__visit_members
  1556. )
  1557. (func $~lib/rt/pure/scan (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
  1558. (local $1 i32)
  1559. local.get $0
  1560. i32.load offset=4
  1561. local.tee $1
  1562. i32.const 1879048192
  1563. i32.and
  1564. i32.const 268435456
  1565. i32.eq
  1566. if
  1567. local.get $1
  1568. i32.const 268435455
  1569. i32.and
  1570. i32.const 0
  1571. i32.gt_u
  1572. if
  1573. local.get $0
  1574. call $~lib/rt/pure/scanBlack
  1575. else
  1576. local.get $0
  1577. local.get $1
  1578. i32.const -1879048193
  1579. i32.and
  1580. i32.const 536870912
  1581. i32.or
  1582. i32.store offset=4
  1583. local.get $0
  1584. i32.const 16
  1585. i32.add
  1586. i32.const 3
  1587. call $~lib/rt/__visit_members
  1588. end
  1589. end
  1590. )
  1591. (func $~lib/rt/pure/collectWhite (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
  1592. (local $1 i32)
  1593. local.get $0
  1594. i32.load offset=4
  1595. local.tee $1
  1596. i32.const 1879048192
  1597. i32.and
  1598. i32.const 536870912
  1599. i32.eq
  1600. if (result i32)
  1601. local.get $1
  1602. i32.const -2147483648
  1603. i32.and
  1604. i32.eqz
  1605. else
  1606. i32.const 0
  1607. end
  1608. if
  1609. local.get $0
  1610. local.get $1
  1611. i32.const -1879048193
  1612. i32.and
  1613. i32.store offset=4
  1614. local.get $0
  1615. i32.const 16
  1616. i32.add
  1617. i32.const 5
  1618. call $~lib/rt/__visit_members
  1619. global.get $~lib/rt/tlsf/ROOT
  1620. local.get $0
  1621. call $~lib/rt/tlsf/freeBlock
  1622. end
  1623. )
  1624. (func $~lib/rt/pure/__collect (; 25 ;) (type $FUNCSIG$v)
  1625. (local $0 i32)
  1626. (local $1 i32)
  1627. (local $2 i32)
  1628. (local $3 i32)
  1629. (local $4 i32)
  1630. (local $5 i32)
  1631. global.get $~lib/rt/pure/ROOTS
  1632. local.tee $5
  1633. local.tee $2
  1634. local.set $3
  1635. global.get $~lib/rt/pure/CUR
  1636. local.set $0
  1637. loop $loop|0
  1638. block $break|0
  1639. local.get $3
  1640. local.get $0
  1641. i32.ge_u
  1642. br_if $break|0
  1643. local.get $3
  1644. i32.load
  1645. local.tee $4
  1646. i32.load offset=4
  1647. local.tee $1
  1648. i32.const 1879048192
  1649. i32.and
  1650. i32.const 805306368
  1651. i32.eq
  1652. if (result i32)
  1653. local.get $1
  1654. i32.const 268435455
  1655. i32.and
  1656. i32.const 0
  1657. i32.gt_u
  1658. else
  1659. i32.const 0
  1660. end
  1661. if
  1662. local.get $4
  1663. call $~lib/rt/pure/markGray
  1664. local.get $2
  1665. local.get $4
  1666. i32.store
  1667. local.get $2
  1668. i32.const 4
  1669. i32.add
  1670. local.set $2
  1671. else
  1672. i32.const 0
  1673. local.get $1
  1674. i32.const 268435455
  1675. i32.and
  1676. i32.eqz
  1677. local.get $1
  1678. i32.const 1879048192
  1679. i32.and
  1680. select
  1681. if
  1682. global.get $~lib/rt/tlsf/ROOT
  1683. local.get $4
  1684. call $~lib/rt/tlsf/freeBlock
  1685. else
  1686. local.get $4
  1687. local.get $1
  1688. i32.const 2147483647
  1689. i32.and
  1690. i32.store offset=4
  1691. end
  1692. end
  1693. local.get $3
  1694. i32.const 4
  1695. i32.add
  1696. local.set $3
  1697. br $loop|0
  1698. end
  1699. end
  1700. local.get $2
  1701. global.set $~lib/rt/pure/CUR
  1702. local.get $5
  1703. local.set $0
  1704. loop $loop|1
  1705. block $break|1
  1706. local.get $0
  1707. local.get $2
  1708. i32.ge_u
  1709. br_if $break|1
  1710. local.get $0
  1711. i32.load
  1712. call $~lib/rt/pure/scan
  1713. local.get $0
  1714. i32.const 4
  1715. i32.add
  1716. local.set $0
  1717. br $loop|1
  1718. end
  1719. end
  1720. local.get $5
  1721. local.set $0
  1722. loop $loop|2
  1723. block $break|2
  1724. local.get $0
  1725. local.get $2
  1726. i32.ge_u
  1727. br_if $break|2
  1728. local.get $0
  1729. i32.load
  1730. local.tee $1
  1731. local.get $1
  1732. i32.load offset=4
  1733. i32.const 2147483647
  1734. i32.and
  1735. i32.store offset=4
  1736. local.get $1
  1737. call $~lib/rt/pure/collectWhite
  1738. local.get $0
  1739. i32.const 4
  1740. i32.add
  1741. local.set $0
  1742. br $loop|2
  1743. end
  1744. end
  1745. local.get $5
  1746. global.set $~lib/rt/pure/CUR
  1747. )
  1748. (func $assembly/index/defaultSort~anonymous|0 (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
  1749. local.get $0
  1750. local.get $1
  1751. i32.sub
  1752. )
  1753. (func $~lib/typedarray/Int32Array#get:length (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
  1754. local.get $0
  1755. i32.load offset=8
  1756. i32.const 2
  1757. i32.shr_u
  1758. )
  1759. (func $~lib/util/sort/insertionSort<i32> (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
  1760. (local $2 i32)
  1761. (local $3 i32)
  1762. (local $4 i32)
  1763. (local $5 i32)
  1764. (local $6 i32)
  1765. loop $loop|0
  1766. local.get $3
  1767. local.get $1
  1768. i32.ge_s
  1769. i32.eqz
  1770. if
  1771. local.get $3
  1772. i32.const 2
  1773. i32.shl
  1774. local.get $0
  1775. i32.add
  1776. i32.load
  1777. local.set $4
  1778. local.get $3
  1779. i32.const 1
  1780. i32.sub
  1781. local.set $2
  1782. loop $continue|1
  1783. block $break|1
  1784. local.get $2
  1785. i32.const 0
  1786. i32.lt_s
  1787. br_if $break|1
  1788. local.get $2
  1789. i32.const 2
  1790. i32.shl
  1791. local.get $0
  1792. i32.add
  1793. i32.load
  1794. local.set $5
  1795. i32.const 2
  1796. global.set $~lib/argc
  1797. local.get $4
  1798. local.get $5
  1799. call $assembly/index/defaultSort~anonymous|0
  1800. i32.const 0
  1801. i32.ge_s
  1802. br_if $break|1
  1803. local.get $2
  1804. local.tee $6
  1805. i32.const 1
  1806. i32.sub
  1807. local.set $2
  1808. local.get $6
  1809. i32.const 1
  1810. i32.add
  1811. i32.const 2
  1812. i32.shl
  1813. local.get $0
  1814. i32.add
  1815. local.get $5
  1816. i32.store
  1817. br $continue|1
  1818. end
  1819. end
  1820. local.get $2
  1821. i32.const 1
  1822. i32.add
  1823. i32.const 2
  1824. i32.shl
  1825. local.get $0
  1826. i32.add
  1827. local.get $4
  1828. i32.store
  1829. local.get $3
  1830. i32.const 1
  1831. i32.add
  1832. local.set $3
  1833. br $loop|0
  1834. end
  1835. end
  1836. )
  1837. (func $~lib/memory/memory.fill (; 29 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
  1838. (local $2 i32)
  1839. block $~lib/util/memory/memset|inlined.0
  1840. local.get $1
  1841. i32.eqz
  1842. br_if $~lib/util/memory/memset|inlined.0
  1843. local.get $0
  1844. i32.const 0
  1845. i32.store8
  1846. local.get $0
  1847. local.get $1
  1848. i32.add
  1849. i32.const 1
  1850. i32.sub
  1851. i32.const 0
  1852. i32.store8
  1853. local.get $1
  1854. i32.const 2
  1855. i32.le_u
  1856. br_if $~lib/util/memory/memset|inlined.0
  1857. local.get $0
  1858. i32.const 1
  1859. i32.add
  1860. i32.const 0
  1861. i32.store8
  1862. local.get $0
  1863. i32.const 2
  1864. i32.add
  1865. i32.const 0
  1866. i32.store8
  1867. local.get $0
  1868. local.get $1
  1869. i32.add
  1870. local.tee $2
  1871. i32.const 2
  1872. i32.sub
  1873. i32.const 0
  1874. i32.store8
  1875. local.get $2
  1876. i32.const 3
  1877. i32.sub
  1878. i32.const 0
  1879. i32.store8
  1880. local.get $1
  1881. i32.const 6
  1882. i32.le_u
  1883. br_if $~lib/util/memory/memset|inlined.0
  1884. local.get $0
  1885. i32.const 3
  1886. i32.add
  1887. i32.const 0
  1888. i32.store8
  1889. local.get $0
  1890. local.get $1
  1891. i32.add
  1892. i32.const 4
  1893. i32.sub
  1894. i32.const 0
  1895. i32.store8
  1896. local.get $1
  1897. i32.const 8
  1898. i32.le_u
  1899. br_if $~lib/util/memory/memset|inlined.0
  1900. local.get $1
  1901. i32.const 0
  1902. local.get $0
  1903. i32.sub
  1904. i32.const 3
  1905. i32.and
  1906. local.tee $1
  1907. i32.sub
  1908. local.get $0
  1909. local.get $1
  1910. i32.add
  1911. local.tee $0
  1912. i32.const 0
  1913. i32.store
  1914. i32.const -4
  1915. i32.and
  1916. local.tee $1
  1917. local.get $0
  1918. i32.add
  1919. i32.const 4
  1920. i32.sub
  1921. i32.const 0
  1922. i32.store
  1923. local.get $1
  1924. i32.const 8
  1925. i32.le_u
  1926. br_if $~lib/util/memory/memset|inlined.0
  1927. local.get $0
  1928. i32.const 4
  1929. i32.add
  1930. i32.const 0
  1931. i32.store
  1932. local.get $0
  1933. i32.const 8
  1934. i32.add
  1935. i32.const 0
  1936. i32.store
  1937. local.get $0
  1938. local.get $1
  1939. i32.add
  1940. local.tee $2
  1941. i32.const 12
  1942. i32.sub
  1943. i32.const 0
  1944. i32.store
  1945. local.get $2
  1946. i32.const 8
  1947. i32.sub
  1948. i32.const 0
  1949. i32.store
  1950. local.get $1
  1951. i32.const 24
  1952. i32.le_u
  1953. br_if $~lib/util/memory/memset|inlined.0
  1954. local.get $0
  1955. i32.const 12
  1956. i32.add
  1957. i32.const 0
  1958. i32.store
  1959. local.get $0
  1960. i32.const 16
  1961. i32.add
  1962. i32.const 0
  1963. i32.store
  1964. local.get $0
  1965. i32.const 20
  1966. i32.add
  1967. i32.const 0
  1968. i32.store
  1969. local.get $0
  1970. i32.const 24
  1971. i32.add
  1972. i32.const 0
  1973. i32.store
  1974. local.get $0
  1975. local.get $1
  1976. i32.add
  1977. local.tee $2
  1978. i32.const 28
  1979. i32.sub
  1980. i32.const 0
  1981. i32.store
  1982. local.get $2
  1983. i32.const 24
  1984. i32.sub
  1985. i32.const 0
  1986. i32.store
  1987. local.get $2
  1988. i32.const 20
  1989. i32.sub
  1990. i32.const 0
  1991. i32.store
  1992. local.get $2
  1993. i32.const 16
  1994. i32.sub
  1995. i32.const 0
  1996. i32.store
  1997. local.get $0
  1998. i32.const 4
  1999. i32.and
  2000. i32.const 24
  2001. i32.add
  2002. local.tee $2
  2003. local.get $0
  2004. i32.add
  2005. local.set $0
  2006. local.get $1
  2007. local.get $2
  2008. i32.sub
  2009. local.set $1
  2010. loop $continue|0
  2011. local.get $1
  2012. i32.const 32
  2013. i32.ge_u
  2014. if
  2015. local.get $0
  2016. i64.const 0
  2017. i64.store
  2018. local.get $0
  2019. i32.const 8
  2020. i32.add
  2021. i64.const 0
  2022. i64.store
  2023. local.get $0
  2024. i32.const 16
  2025. i32.add
  2026. i64.const 0
  2027. i64.store
  2028. local.get $0
  2029. i32.const 24
  2030. i32.add
  2031. i64.const 0
  2032. i64.store
  2033. local.get $1
  2034. i32.const 32
  2035. i32.sub
  2036. local.set $1
  2037. local.get $0
  2038. i32.const 32
  2039. i32.add
  2040. local.set $0
  2041. br $continue|0
  2042. end
  2043. end
  2044. end
  2045. )
  2046. (func $~lib/util/sort/weakHeapSort<i32> (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
  2047. (local $2 i32)
  2048. (local $3 i32)
  2049. (local $4 i32)
  2050. (local $5 i32)
  2051. (local $6 i32)
  2052. (local $7 i32)
  2053. local.get $1
  2054. i32.const 31
  2055. i32.add
  2056. i32.const 5
  2057. i32.shr_s
  2058. i32.const 2
  2059. i32.shl
  2060. local.tee $2
  2061. i32.const 0
  2062. call $~lib/rt/tlsf/__alloc
  2063. local.tee $4
  2064. local.get $2
  2065. call $~lib/memory/memory.fill
  2066. local.get $1
  2067. i32.const 1
  2068. i32.sub
  2069. local.set $2
  2070. loop $loop|0
  2071. local.get $2
  2072. i32.const 0
  2073. i32.gt_s
  2074. if
  2075. local.get $2
  2076. local.set $3
  2077. loop $continue|1
  2078. local.get $3
  2079. i32.const 1
  2080. i32.and
  2081. local.get $3
  2082. i32.const 6
  2083. i32.shr_s
  2084. i32.const 2
  2085. i32.shl
  2086. local.get $4
  2087. i32.add
  2088. i32.load
  2089. local.get $3
  2090. i32.const 1
  2091. i32.shr_s
  2092. i32.const 31
  2093. i32.and
  2094. i32.shr_u
  2095. i32.const 1
  2096. i32.and
  2097. i32.eq
  2098. if
  2099. local.get $3
  2100. i32.const 1
  2101. i32.shr_s
  2102. local.set $3
  2103. br $continue|1
  2104. end
  2105. end
  2106. local.get $3
  2107. i32.const 1
  2108. i32.shr_s
  2109. local.tee $6
  2110. i32.const 2
  2111. i32.shl
  2112. local.get $0
  2113. i32.add
  2114. i32.load
  2115. local.set $3
  2116. local.get $2
  2117. i32.const 2
  2118. i32.shl
  2119. local.get $0
  2120. i32.add
  2121. i32.load
  2122. local.set $5
  2123. i32.const 2
  2124. global.set $~lib/argc
  2125. local.get $3
  2126. local.get $5
  2127. call $assembly/index/defaultSort~anonymous|0
  2128. i32.const 0
  2129. i32.lt_s
  2130. if
  2131. local.get $2
  2132. i32.const 5
  2133. i32.shr_s
  2134. i32.const 2
  2135. i32.shl
  2136. local.get $4
  2137. i32.add
  2138. local.tee $7
  2139. local.get $7
  2140. i32.load
  2141. i32.const 1
  2142. local.get $2
  2143. i32.const 31
  2144. i32.and
  2145. i32.shl
  2146. i32.xor
  2147. i32.store
  2148. local.get $2
  2149. i32.const 2
  2150. i32.shl
  2151. local.get $0
  2152. i32.add
  2153. local.get $3
  2154. i32.store
  2155. local.get $6
  2156. i32.const 2
  2157. i32.shl
  2158. local.get $0
  2159. i32.add
  2160. local.get $5
  2161. i32.store
  2162. end
  2163. local.get $2
  2164. i32.const 1
  2165. i32.sub
  2166. local.set $2
  2167. br $loop|0
  2168. end
  2169. end
  2170. local.get $1
  2171. i32.const 1
  2172. i32.sub
  2173. local.set $3
  2174. loop $loop|2
  2175. local.get $3
  2176. i32.const 2
  2177. i32.ge_s
  2178. if
  2179. local.get $0
  2180. i32.load
  2181. local.set $1
  2182. local.get $0
  2183. local.get $3
  2184. i32.const 2
  2185. i32.shl
  2186. local.get $0
  2187. i32.add
  2188. local.tee $2
  2189. i32.load
  2190. i32.store
  2191. local.get $2
  2192. local.get $1
  2193. i32.store
  2194. i32.const 1
  2195. local.set $1
  2196. loop $continue|3
  2197. local.get $1
  2198. i32.const 5
  2199. i32.shr_s
  2200. i32.const 2
  2201. i32.shl
  2202. local.get $4
  2203. i32.add
  2204. i32.load
  2205. local.get $1
  2206. i32.const 31
  2207. i32.and
  2208. i32.shr_u
  2209. i32.const 1
  2210. i32.and
  2211. local.get $1
  2212. i32.const 1
  2213. i32.shl
  2214. i32.add
  2215. local.tee $2
  2216. local.get $3
  2217. i32.lt_s
  2218. if
  2219. local.get $2
  2220. local.set $1
  2221. br $continue|3
  2222. end
  2223. end
  2224. loop $continue|4
  2225. local.get $1
  2226. i32.const 0
  2227. i32.gt_s
  2228. if
  2229. local.get $0
  2230. i32.load
  2231. local.set $2
  2232. local.get $1
  2233. i32.const 2
  2234. i32.shl
  2235. local.get $0
  2236. i32.add
  2237. i32.load
  2238. local.set $5
  2239. i32.const 2
  2240. global.set $~lib/argc
  2241. local.get $2
  2242. local.get $5
  2243. call $assembly/index/defaultSort~anonymous|0
  2244. i32.const 0
  2245. i32.lt_s
  2246. if
  2247. local.get $1
  2248. i32.const 5
  2249. i32.shr_s
  2250. i32.const 2
  2251. i32.shl
  2252. local.get $4
  2253. i32.add
  2254. local.tee $6
  2255. local.get $6
  2256. i32.load
  2257. i32.const 1
  2258. local.get $1
  2259. i32.const 31
  2260. i32.and
  2261. i32.shl
  2262. i32.xor
  2263. i32.store
  2264. local.get $1
  2265. i32.const 2
  2266. i32.shl
  2267. local.get $0
  2268. i32.add
  2269. local.get $2
  2270. i32.store
  2271. local.get $0
  2272. local.get $5
  2273. i32.store
  2274. end
  2275. local.get $1
  2276. i32.const 1
  2277. i32.shr_s
  2278. local.set $1
  2279. br $continue|4
  2280. end
  2281. end
  2282. local.get $3
  2283. i32.const 1
  2284. i32.sub
  2285. local.set $3
  2286. br $loop|2
  2287. end
  2288. end
  2289. local.get $4
  2290. call $~lib/rt/tlsf/__free
  2291. local.get $0
  2292. i32.load offset=4
  2293. local.set $1
  2294. local.get $0
  2295. local.get $0
  2296. i32.load
  2297. i32.store offset=4
  2298. local.get $0
  2299. local.get $1
  2300. i32.store
  2301. )
  2302. (func $~lib/typedarray/Int32Array#sort (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
  2303. (local $1 i32)
  2304. (local $2 i32)
  2305. (local $3 i32)
  2306. block $~lib/typedarray/SORT<~lib/typedarray/Int32Array,i32>|inlined.0
  2307. local.get $0
  2308. call $~lib/rt/pure/__retain
  2309. local.tee $2
  2310. call $~lib/typedarray/Int32Array#get:length
  2311. local.tee $1
  2312. i32.const 1
  2313. i32.le_s
  2314. if
  2315. local.get $2
  2316. call $~lib/rt/pure/__release
  2317. br $~lib/typedarray/SORT<~lib/typedarray/Int32Array,i32>|inlined.0
  2318. end
  2319. local.get $2
  2320. i32.load offset=4
  2321. local.set $0
  2322. local.get $1
  2323. i32.const 2
  2324. i32.eq
  2325. if
  2326. local.get $0
  2327. i32.load offset=4
  2328. local.set $1
  2329. local.get $0
  2330. i32.load
  2331. local.set $3
  2332. i32.const 2
  2333. global.set $~lib/argc
  2334. local.get $1
  2335. local.get $3
  2336. call $assembly/index/defaultSort~anonymous|0
  2337. i32.const 0
  2338. i32.lt_s
  2339. if
  2340. local.get $0
  2341. local.get $3
  2342. i32.store offset=4
  2343. local.get $0
  2344. local.get $1
  2345. i32.store
  2346. end
  2347. local.get $2
  2348. call $~lib/rt/pure/__release
  2349. br $~lib/typedarray/SORT<~lib/typedarray/Int32Array,i32>|inlined.0
  2350. end
  2351. local.get $1
  2352. i32.const 256
  2353. i32.lt_s
  2354. if
  2355. local.get $0
  2356. local.get $1
  2357. call $~lib/util/sort/insertionSort<i32>
  2358. else
  2359. local.get $0
  2360. local.get $1
  2361. call $~lib/util/sort/weakHeapSort<i32>
  2362. end
  2363. end
  2364. local.get $2
  2365. )
  2366. (func $assembly/index/defaultSort (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
  2367. local.get $0
  2368. call $~lib/rt/pure/__retain
  2369. drop
  2370. local.get $0
  2371. call $~lib/typedarray/Int32Array#sort
  2372. call $~lib/rt/pure/__release
  2373. local.get $0
  2374. call $~lib/rt/pure/__release
  2375. )
  2376. (func $~lib/typedarray/Int32Array#__get (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
  2377. local.get $1
  2378. local.get $0
  2379. i32.load offset=8
  2380. i32.const 2
  2381. i32.shr_u
  2382. i32.ge_u
  2383. if
  2384. i32.const 176
  2385. i32.const 272
  2386. i32.const 517
  2387. i32.const 63
  2388. call $~lib/builtins/abort
  2389. unreachable
  2390. end
  2391. local.get $0
  2392. i32.load offset=4
  2393. local.get $1
  2394. i32.const 2
  2395. i32.shl
  2396. i32.add
  2397. i32.load
  2398. )
  2399. (func $~lib/typedarray/Int32Array#__set (; 34 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
  2400. local.get $1
  2401. local.get $0
  2402. i32.load offset=8
  2403. i32.const 2
  2404. i32.shr_u
  2405. i32.ge_u
  2406. if
  2407. i32.const 176
  2408. i32.const 272
  2409. i32.const 523
  2410. i32.const 63
  2411. call $~lib/builtins/abort
  2412. unreachable
  2413. end
  2414. local.get $0
  2415. i32.load offset=4
  2416. local.get $1
  2417. i32.const 2
  2418. i32.shl
  2419. i32.add
  2420. local.get $2
  2421. i32.store
  2422. )
  2423. (func $assembly/index/swap (; 35 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
  2424. (local $3 i32)
  2425. local.get $0
  2426. call $~lib/rt/pure/__retain
  2427. drop
  2428. local.get $0
  2429. local.get $1
  2430. call $~lib/typedarray/Int32Array#__get
  2431. local.set $3
  2432. local.get $0
  2433. local.get $1
  2434. local.get $0
  2435. local.get $2
  2436. call $~lib/typedarray/Int32Array#__get
  2437. call $~lib/typedarray/Int32Array#__set
  2438. local.get $0
  2439. local.get $2
  2440. local.get $3
  2441. call $~lib/typedarray/Int32Array#__set
  2442. local.get $0
  2443. call $~lib/rt/pure/__release
  2444. )
  2445. (func $assembly/index/partition (; 36 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
  2446. (local $3 i32)
  2447. (local $4 i32)
  2448. (local $5 i32)
  2449. local.get $0
  2450. call $~lib/rt/pure/__retain
  2451. drop
  2452. local.get $0
  2453. local.get $1
  2454. call $~lib/typedarray/Int32Array#__get
  2455. local.set $5
  2456. local.get $1
  2457. local.tee $3
  2458. i32.const 1
  2459. i32.add
  2460. local.set $4
  2461. loop $loop|0
  2462. block $break|0
  2463. local.get $4
  2464. local.get $2
  2465. i32.gt_s
  2466. br_if $break|0
  2467. local.get $0
  2468. local.get $4
  2469. call $~lib/typedarray/Int32Array#__get
  2470. local.get $5
  2471. i32.lt_s
  2472. if
  2473. local.get $0
  2474. local.get $4
  2475. local.get $3
  2476. call $assembly/index/swap
  2477. local.get $4
  2478. local.get $1
  2479. local.get $1
  2480. local.get $3
  2481. i32.eq
  2482. select
  2483. local.set $1
  2484. local.get $3
  2485. i32.const 1
  2486. i32.add
  2487. local.set $3
  2488. end
  2489. local.get $4
  2490. i32.const 1
  2491. i32.add
  2492. local.set $4
  2493. br $loop|0
  2494. end
  2495. end
  2496. local.get $0
  2497. local.get $1
  2498. local.get $3
  2499. call $assembly/index/swap
  2500. local.get $0
  2501. call $~lib/rt/pure/__release
  2502. local.get $3
  2503. )
  2504. (func $assembly/index/quickSort (; 37 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
  2505. local.get $0
  2506. call $~lib/rt/pure/__retain
  2507. drop
  2508. local.get $1
  2509. local.get $2
  2510. i32.lt_s
  2511. if
  2512. local.get $0
  2513. local.get $1
  2514. local.get $0
  2515. local.get $1
  2516. local.get $2
  2517. call $assembly/index/partition
  2518. local.tee $1
  2519. call $assembly/index/quickSort
  2520. local.get $0
  2521. local.get $1
  2522. i32.const 1
  2523. i32.add
  2524. local.get $2
  2525. call $assembly/index/quickSort
  2526. end
  2527. local.get $0
  2528. call $~lib/rt/pure/__release
  2529. )
  2530. (func $assembly/index/insertionSort (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
  2531. (local $1 i32)
  2532. (local $2 i32)
  2533. (local $3 i32)
  2534. local.get $0
  2535. call $~lib/rt/pure/__retain
  2536. drop
  2537. loop $loop|0
  2538. block $break|0
  2539. local.get $2
  2540. local.get $0
  2541. call $~lib/typedarray/Int32Array#get:length
  2542. i32.ge_s
  2543. br_if $break|0
  2544. local.get $0
  2545. local.get $2
  2546. call $~lib/typedarray/Int32Array#__get
  2547. local.set $3
  2548. local.get $2
  2549. i32.const 1
  2550. i32.sub
  2551. local.set $1
  2552. loop $loop|1
  2553. block $break|1
  2554. local.get $1
  2555. i32.const -1
  2556. i32.gt_s
  2557. if (result i32)
  2558. local.get $0
  2559. local.get $1
  2560. call $~lib/typedarray/Int32Array#__get
  2561. local.get $3
  2562. i32.gt_s
  2563. else
  2564. i32.const 0
  2565. end
  2566. i32.eqz
  2567. br_if $break|1
  2568. local.get $0
  2569. local.get $1
  2570. i32.const 1
  2571. i32.add
  2572. local.get $0
  2573. local.get $1
  2574. call $~lib/typedarray/Int32Array#__get
  2575. call $~lib/typedarray/Int32Array#__set
  2576. local.get $1
  2577. i32.const 1
  2578. i32.sub
  2579. local.set $1
  2580. br $loop|1
  2581. end
  2582. end
  2583. local.get $0
  2584. local.get $1
  2585. i32.const 1
  2586. i32.add
  2587. local.get $3
  2588. call $~lib/typedarray/Int32Array#__set
  2589. local.get $2
  2590. i32.const 1
  2591. i32.add
  2592. local.set $2
  2593. br $loop|0
  2594. end
  2595. end
  2596. local.get $0
  2597. )
  2598. (func $~lib/arraybuffer/ArrayBufferView#constructor (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
  2599. (local $2 i32)
  2600. (local $3 i32)
  2601. local.get $1
  2602. i32.const 268435452
  2603. i32.gt_u
  2604. if
  2605. i32.const 328
  2606. i32.const 376
  2607. i32.const 14
  2608. i32.const 56
  2609. call $~lib/builtins/abort
  2610. unreachable
  2611. end
  2612. local.get $1
  2613. i32.const 2
  2614. i32.shl
  2615. local.tee $2
  2616. i32.const 0
  2617. call $~lib/rt/tlsf/__alloc
  2618. local.tee $1
  2619. local.get $2
  2620. call $~lib/memory/memory.fill
  2621. local.get $0
  2622. i32.eqz
  2623. if
  2624. i32.const 12
  2625. i32.const 2
  2626. call $~lib/rt/tlsf/__alloc
  2627. call $~lib/rt/pure/__retain
  2628. local.set $0
  2629. end
  2630. local.get $0
  2631. i32.const 0
  2632. i32.store
  2633. local.get $0
  2634. i32.const 0
  2635. i32.store offset=4
  2636. local.get $0
  2637. i32.const 0
  2638. i32.store offset=8
  2639. local.get $1
  2640. local.get $0
  2641. i32.load
  2642. local.tee $3
  2643. i32.ne
  2644. if
  2645. local.get $1
  2646. call $~lib/rt/pure/__retain
  2647. drop
  2648. local.get $3
  2649. call $~lib/rt/pure/__release
  2650. end
  2651. local.get $0
  2652. local.get $1
  2653. i32.store
  2654. local.get $0
  2655. local.get $1
  2656. i32.store offset=4
  2657. local.get $0
  2658. local.get $2
  2659. i32.store offset=8
  2660. local.get $0
  2661. )
  2662. (func $~lib/typedarray/Int32Array#constructor (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
  2663. i32.const 12
  2664. i32.const 3
  2665. call $~lib/rt/tlsf/__alloc
  2666. call $~lib/rt/pure/__retain
  2667. local.get $0
  2668. call $~lib/arraybuffer/ArrayBufferView#constructor
  2669. )
  2670. (func $assembly/index/findMax (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
  2671. (local $1 i32)
  2672. (local $2 i32)
  2673. local.get $0
  2674. call $~lib/rt/pure/__retain
  2675. drop
  2676. loop $loop|0
  2677. block $break|0
  2678. local.get $1
  2679. local.get $0
  2680. call $~lib/typedarray/Int32Array#get:length
  2681. i32.ge_s
  2682. br_if $break|0
  2683. local.get $0
  2684. local.get $1
  2685. call $~lib/typedarray/Int32Array#__get
  2686. local.get $2
  2687. i32.gt_s
  2688. if
  2689. local.get $0
  2690. local.get $1
  2691. call $~lib/typedarray/Int32Array#__get
  2692. local.set $2
  2693. end
  2694. local.get $1
  2695. i32.const 1
  2696. i32.add
  2697. local.set $1
  2698. br $loop|0
  2699. end
  2700. end
  2701. local.get $0
  2702. call $~lib/rt/pure/__release
  2703. local.get $2
  2704. )
  2705. (func $assembly/index/countingSort (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
  2706. (local $1 i32)
  2707. (local $2 i32)
  2708. (local $3 i32)
  2709. (local $4 i32)
  2710. local.get $0
  2711. call $~lib/rt/pure/__retain
  2712. drop
  2713. local.get $0
  2714. call $assembly/index/findMax
  2715. i32.const 1
  2716. i32.add
  2717. call $~lib/typedarray/Int32Array#constructor
  2718. local.set $2
  2719. loop $loop|0
  2720. block $break|0
  2721. local.get $1
  2722. local.get $0
  2723. call $~lib/typedarray/Int32Array#get:length
  2724. i32.ge_s
  2725. br_if $break|0
  2726. local.get $2
  2727. local.get $0
  2728. local.get $1
  2729. call $~lib/typedarray/Int32Array#__get
  2730. local.get $2
  2731. local.get $0
  2732. local.get $1
  2733. call $~lib/typedarray/Int32Array#__get
  2734. call $~lib/typedarray/Int32Array#__get
  2735. i32.const 1
  2736. i32.add
  2737. call $~lib/typedarray/Int32Array#__set
  2738. local.get $1
  2739. i32.const 1
  2740. i32.add
  2741. local.set $1
  2742. br $loop|0
  2743. end
  2744. end
  2745. i32.const 1
  2746. local.set $1
  2747. loop $loop|1
  2748. block $break|1
  2749. local.get $1
  2750. local.get $2
  2751. call $~lib/typedarray/Int32Array#get:length
  2752. i32.ge_s
  2753. br_if $break|1
  2754. local.get $2
  2755. local.get $1
  2756. local.get $2
  2757. local.get $1
  2758. call $~lib/typedarray/Int32Array#__get
  2759. local.get $2
  2760. local.get $1
  2761. i32.const 1
  2762. i32.sub
  2763. call $~lib/typedarray/Int32Array#__get
  2764. i32.add
  2765. call $~lib/typedarray/Int32Array#__set
  2766. local.get $1
  2767. i32.const 1
  2768. i32.add
  2769. local.set $1
  2770. br $loop|1
  2771. end
  2772. end
  2773. local.get $0
  2774. call $~lib/typedarray/Int32Array#get:length
  2775. call $~lib/typedarray/Int32Array#constructor
  2776. local.set $4
  2777. i32.const 0
  2778. local.set $1
  2779. loop $loop|2
  2780. block $break|2
  2781. local.get $1
  2782. local.get $0
  2783. call $~lib/typedarray/Int32Array#get:length
  2784. i32.ge_s
  2785. br_if $break|2
  2786. local.get $4
  2787. local.get $2
  2788. local.get $0
  2789. local.get $1
  2790. call $~lib/typedarray/Int32Array#__get
  2791. local.tee $3
  2792. call $~lib/typedarray/Int32Array#__get
  2793. i32.const 1
  2794. i32.sub
  2795. local.get $3
  2796. call $~lib/typedarray/Int32Array#__set
  2797. local.get $2
  2798. local.get $3
  2799. local.get $2
  2800. local.get $3
  2801. call $~lib/typedarray/Int32Array#__get
  2802. i32.const 1
  2803. i32.sub
  2804. call $~lib/typedarray/Int32Array#__set
  2805. local.get $1
  2806. i32.const 1
  2807. i32.add
  2808. local.set $1
  2809. br $loop|2
  2810. end
  2811. end
  2812. local.get $2
  2813. call $~lib/rt/pure/__release
  2814. local.get $0
  2815. call $~lib/rt/pure/__release
  2816. local.get $4
  2817. )
  2818. (func $~lib/rt/pure/__visit (; 43 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
  2819. local.get $0
  2820. i32.const 452
  2821. i32.lt_u
  2822. if
  2823. return
  2824. end
  2825. local.get $0
  2826. i32.const 16
  2827. i32.sub
  2828. local.set $0
  2829. block $break|0
  2830. block $case5|0
  2831. block $case4|0
  2832. block $case3|0
  2833. block $case2|0
  2834. block $case1|0
  2835. local.get $1
  2836. i32.const 1
  2837. i32.ne
  2838. if
  2839. local.get $1
  2840. i32.const 2
  2841. i32.eq
  2842. br_if $case1|0
  2843. block $tablify|0
  2844. local.get $1
  2845. i32.const 3
  2846. i32.sub
  2847. br_table $case2|0 $case3|0 $case4|0 $tablify|0
  2848. end
  2849. br $case5|0
  2850. end
  2851. local.get $0
  2852. call $~lib/rt/pure/decrement
  2853. br $break|0
  2854. end
  2855. local.get $0
  2856. i32.load offset=4
  2857. i32.const 268435455
  2858. i32.and
  2859. i32.const 0
  2860. i32.le_u
  2861. if
  2862. i32.const 0
  2863. i32.const 128
  2864. i32.const 75
  2865. i32.const 17
  2866. call $~lib/builtins/abort
  2867. unreachable
  2868. end
  2869. local.get $0
  2870. local.get $0
  2871. i32.load offset=4
  2872. i32.const 1
  2873. i32.sub
  2874. i32.store offset=4
  2875. local.get $0
  2876. call $~lib/rt/pure/markGray
  2877. br $break|0
  2878. end
  2879. local.get $0
  2880. call $~lib/rt/pure/scan
  2881. br $break|0
  2882. end
  2883. local.get $0
  2884. i32.load offset=4
  2885. local.tee $1
  2886. i32.const -268435456
  2887. i32.and
  2888. local.get $1
  2889. i32.const 1
  2890. i32.add
  2891. i32.const -268435456
  2892. i32.and
  2893. i32.ne
  2894. if
  2895. i32.const 0
  2896. i32.const 128
  2897. i32.const 86
  2898. i32.const 6
  2899. call $~lib/builtins/abort
  2900. unreachable
  2901. end
  2902. local.get $0
  2903. local.get $1
  2904. i32.const 1
  2905. i32.add
  2906. i32.store offset=4
  2907. local.get $1
  2908. i32.const 1879048192
  2909. i32.and
  2910. if
  2911. local.get $0
  2912. call $~lib/rt/pure/scanBlack
  2913. end
  2914. br $break|0
  2915. end
  2916. local.get $0
  2917. call $~lib/rt/pure/collectWhite
  2918. br $break|0
  2919. end
  2920. i32.const 0
  2921. i32.const 128
  2922. i32.const 97
  2923. i32.const 24
  2924. call $~lib/builtins/abort
  2925. unreachable
  2926. end
  2927. )
  2928. (func $~lib/rt/__visit_members (; 44 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
  2929. block $switch$1$default
  2930. block $switch$1$case$4
  2931. block $switch$1$case$2
  2932. local.get $0
  2933. i32.const 8
  2934. i32.sub
  2935. i32.load
  2936. br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$4 $switch$1$default
  2937. end
  2938. return
  2939. end
  2940. local.get $0
  2941. i32.load
  2942. local.tee $0
  2943. if
  2944. local.get $0
  2945. local.get $1
  2946. call $~lib/rt/pure/__visit
  2947. end
  2948. return
  2949. end
  2950. unreachable
  2951. )
  2952. (func $null (; 45 ;) (type $FUNCSIG$v)
  2953. nop
  2954. )
  2955. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement