Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.03 KB | None | 0 0
  1. -- BYTECODE -- test.lua:62-62
  2. 0001 RET0 0 1
  3.  
  4. -- BYTECODE -- test.lua:10-70
  5. 0001 TNEW 0 0
  6. 0002 UGET 1 0 ; tonumber
  7. 0003 GGET 3 1 ; "_VERSION"
  8. 0004 MOV 5 3
  9. 0005 TGETS 3 3 2 ; "match"
  10. 0006 KSTR 6 3 ; "%d+%.%d+"
  11. 0007 CALL 3 0 3
  12. 0008 CALLM 1 2 0
  13. 0009 TSETS 1 0 0 ; "lua"
  14. 0010 GGET 1 4 ; "table"
  15. 0011 TGETS 1 1 5 ; "pack"
  16. 0012 ISF 1
  17. 0013 JMP 2 => 0016
  18. 0014 KPRI 1 2
  19. 0015 TSETS 1 0 6 ; "compat5.2"
  20. 0016 => UGET 1 1 ; loadstring
  21. 0017 KSTR 3 7 ; "return 0xep+9"
  22. 0018 CALL 1 2 2
  23. 0019 ISF 1
  24. 0020 JMP 2 => 0023
  25. 0021 KPRI 1 2
  26. 0022 TSETS 1 0 8 ; "hexfloat"
  27. 0023 => UGET 1 1 ; loadstring
  28. 0024 KSTR 3 9 ; "goto x ::x::"
  29. 0025 CALL 1 2 2
  30. 0026 ISF 1
  31. 0027 JMP 2 => 0030
  32. 0028 KPRI 1 2
  33. 0029 TSETS 1 0 10 ; "goto"
  34. 0030 => GGET 1 11 ; "ipairs"
  35. 0031 TDUP 3 12
  36. 0032 CALL 1 4 2
  37. 0033 JMP 4 => 0042
  38. 0034 => GGET 6 13 ; "pcall"
  39. 0035 GGET 8 14 ; "require"
  40. 0036 MOV 9 5
  41. 0037 CALL 6 2 3
  42. 0038 ISF 6
  43. 0039 JMP 7 => 0042
  44. 0040 KPRI 6 2
  45. 0041 TSETV 6 0 5
  46. 0042 => ITERC 4 3 3
  47. 0043 ITERL 4 => 0034
  48. 0044 GGET 1 15 ; "jit"
  49. 0045 ISF 1
  50. 0046 JMP 2 => 0099
  51. 0047 UGET 1 0 ; tonumber
  52. 0048 GGET 3 15 ; "jit"
  53. 0049 TGETS 3 3 17 ; "version"
  54. 0050 MOV 5 3
  55. 0051 TGETS 3 3 2 ; "match"
  56. 0052 KSTR 6 3 ; "%d+%.%d+"
  57. 0053 CALL 3 0 3
  58. 0054 CALLM 1 2 0
  59. 0055 TSETS 1 0 16 ; "luajit"
  60. 0056 GGET 1 15 ; "jit"
  61. 0057 TGETS 1 1 18 ; "arch"
  62. 0058 MOV 3 1
  63. 0059 TGETS 1 1 19 ; "lower"
  64. 0060 CALL 1 2 2
  65. 0061 KPRI 2 2
  66. 0062 TSETV 2 0 1
  67. 0063 GGET 1 15 ; "jit"
  68. 0064 TGETS 1 1 20 ; "os"
  69. 0065 ISEQS 1 21 ; "Other"
  70. 0066 JMP 1 => 0074
  71. 0067 GGET 1 15 ; "jit"
  72. 0068 TGETS 1 1 20 ; "os"
  73. 0069 MOV 3 1
  74. 0070 TGETS 1 1 19 ; "lower"
  75. 0071 CALL 1 2 2
  76. 0072 KPRI 2 2
  77. 0073 TSETV 2 0 1
  78. 0074 => GGET 1 15 ; "jit"
  79. 0075 TGETS 1 1 22 ; "status"
  80. 0076 CALL 1 2 1
  81. 0077 ISF 1
  82. 0078 JMP 2 => 0081
  83. 0079 KPRI 1 2
  84. 0080 TSETS 1 0 15 ; "jit"
  85. 0081 => GGET 1 11 ; "ipairs"
  86. 0082 TNEW 3 3
  87. 0083 GGET 4 23 ; "select"
  88. 0084 KSHORT 6 2
  89. 0085 GGET 7 15 ; "jit"
  90. 0086 TGETS 7 7 22 ; "status"
  91. 0087 CALL 7 0 1
  92. 0088 CALLM 4 0 1
  93. 0089 TSETM 4 0 ; 1
  94. 0090 CALL 1 4 2
  95. 0091 JMP 4 => 0097
  96. 0092 => MOV 8 5
  97. 0093 TGETS 6 5 19 ; "lower"
  98. 0094 CALL 6 2 2
  99. 0095 KPRI 7 2
  100. 0096 TSETV 7 0 6
  101. 0097 => ITERC 4 3 3
  102. 0098 ITERL 4 => 0092
  103. 0099 => UGET 1 2 ; dirsep
  104. 0100 ISNES 1 24 ; "\"
  105. 0101 JMP 1 => 0104
  106. 0102 KPRI 1 2
  107. 0103 TSETS 1 0 25 ; "windows"
  108. 0104 => TGETS 1 0 26 ; "ffi"
  109. 0105 ISF 1
  110. 0106 JMP 2 => 0146
  111. 0107 GGET 1 14 ; "require"
  112. 0108 KSTR 3 26 ; "ffi"
  113. 0109 CALL 1 2 2
  114. 0110 TGETS 1 1 27 ; "abi"
  115. 0111 GGET 2 11 ; "ipairs"
  116. 0112 TDUP 4 28
  117. 0113 CALL 2 4 2
  118. 0114 JMP 5 => 0122
  119. 0115 => MOV 7 1
  120. 0116 MOV 9 6
  121. 0117 CALL 7 2 2
  122. 0118 ISF 7
  123. 0119 JMP 8 => 0122
  124. 0120 KPRI 7 2
  125. 0121 TSETV 7 0 6
  126. 0122 => ITERC 5 3 3
  127. 0123 ITERL 5 => 0115
  128. 0124 MOV 2 1
  129. 0125 KSTR 4 29 ; "win"
  130. 0126 CALL 2 2 2
  131. 0127 ISF 2
  132. 0128 JMP 3 => 0131
  133. 0129 KPRI 2 2
  134. 0130 TSETS 2 0 30 ; "winabi"
  135. 0131 => MOV 2 1
  136. 0132 KSTR 4 31 ; "32bit"
  137. 0133 CALL 2 2 2
  138. 0134 ISF 2
  139. 0135 JMP 3 => 0138
  140. 0136 KPRI 2 2
  141. 0137 TSETS 2 0 32 ; "abi32"
  142. 0138 => MOV 2 1
  143. 0139 KSTR 4 33 ; "64bit"
  144. 0140 CALL 2 2 2
  145. 0141 ISF 2
  146. 0142 JMP 3 => 0178
  147. 0143 KPRI 2 2
  148. 0144 TSETS 2 0 34 ; "abi64"
  149. 0145 JMP 1 => 0178
  150. 0146 => GGET 1 35 ; "string"
  151. 0147 TGETS 1 1 36 ; "dump"
  152. 0148 FNEW 3 37 ; test.lua:62
  153. 0149 CALL 1 2 2
  154. 0150 MOV 4 1
  155. 0151 TGETS 2 1 38 ; "find"
  156. 0152 KSTR 5 39 ; "^\027Lua[P-Y]"
  157. 0153 CALL 2 2 3
  158. 0154 ISF 2
  159. 0155 JMP 3 => 0178
  160. 0156 MOV 4 1
  161. 0157 TGETS 2 1 40 ; "byte"
  162. 0158 KSHORT 5 7
  163. 0159 KSHORT 6 7
  164. 0160 CALL 2 2 4
  165. 0161 ISNEN 2 1 ; 0
  166. 0162 JMP 2 => 0165
  167. 0163 KSTR 2 41 ; "be"
  168. 0164 JMP 3 => 0166
  169. 0165 => KSTR 2 42 ; "le"
  170. 0166 => KPRI 3 2
  171. 0167 TSETV 3 0 2
  172. 0168 KSTR 2 27 ; "abi"
  173. 0169 MOV 5 1
  174. 0170 TGETS 3 1 40 ; "byte"
  175. 0171 KSHORT 6 9
  176. 0172 KSHORT 7 9
  177. 0173 CALL 3 2 4
  178. 0174 MULVN 3 3 2 ; 8
  179. 0175 CAT 2 2 3
  180. 0176 KPRI 3 2
  181. 0177 TSETV 3 0 2
  182. 0178 => UCLO 0 => 0179
  183. 0179 => RET1 0 2
  184.  
  185. -- BYTECODE -- test.lua:74-94
  186. 0001 KPRI 2 2
  187. 0002 MOV 5 1
  188. 0003 TGETS 3 1 0 ; "gmatch"
  189. 0004 KSTR 6 1 ; "([+-])([^ <>=]+)([<>=0-9.]*)"
  190. 0005 CALL 3 4 3
  191. 0006 JMP 6 => 0034
  192. 0007 => UGET 9 0 ; opts
  193. 0008 TGETS 9 9 2 ; "tags"
  194. 0009 TGETV 9 9 7
  195. 0010 KPRI 10 0
  196. 0011 ISEQS 8 3 ; ""
  197. 0012 JMP 11 => 0015
  198. 0013 IST 9
  199. 0014 JMP 11 => 0017
  200. 0015 => MOV 10 9
  201. 0016 JMP 11 => 0027
  202. 0017 => UGET 11 1 ; assert
  203. 0018 UGET 13 2 ; loadstring
  204. 0019 KSTR 15 4 ; "return (...) "
  205. 0020 MOV 16 8
  206. 0021 CAT 15 15 16
  207. 0022 CALL 13 0 2
  208. 0023 CALLM 11 2 0
  209. 0024 MOV 13 9
  210. 0025 CALL 11 2 2
  211. 0026 MOV 10 11
  212. 0027 => ISNES 6 5 ; "-"
  213. 0028 JMP 11 => 0030
  214. 0029 NOT 10 10
  215. 0030 => IST 10
  216. 0031 JMP 11 => 0034
  217. 0032 KPRI 2 1
  218. 0033 JMP 3 => 0036
  219. 0034 => ITERC 6 4 3
  220. 0035 ITERL 6 => 0007
  221. 0036 => TSETV 2 0 1
  222. 0037 RET1 2 2
  223.  
  224. -- BYTECODE -- test.lua:72-97
  225. 0001 TGETS 2 0 0 ; "want_meta_cache"
  226. 0002 IST 2
  227. 0003 JMP 2 => 0011
  228. 0004 GGET 2 1 ; "setmetatable"
  229. 0005 TNEW 4 0
  230. 0006 TDUP 5 3
  231. 0007 FNEW 6 2 ; test.lua:74
  232. 0008 TSETS 6 5 4 ; "__index"
  233. 0009 CALL 2 2 3
  234. 0010 TSETS 2 0 0 ; "want_meta_cache"
  235. 0011 => TGETS 2 0 0 ; "want_meta_cache"
  236. 0012 TGETV 2 2 1
  237. 0013 UCLO 0 => 0014
  238. 0014 => RET1 2 2
  239.  
  240. -- BYTECODE -- test.lua:108-119
  241. 0001 KPRI 0 0
  242. 0002 UGET 1 0 ; joinedval
  243. 0003 ISEQS 1 0 ; ""
  244. 0004 JMP 1 => 0013
  245. 0005 UGET 1 0 ; joinedval
  246. 0006 MOV 3 1
  247. 0007 TGETS 1 1 1 ; "sub"
  248. 0008 KSHORT 4 2
  249. 0009 CALL 1 2 3
  250. 0010 MOV 0 1
  251. 0011 USETS 0 0 ; joinedval ; ""
  252. 0012 JMP 1 => 0029
  253. 0013 => UGET 1 1 ; t
  254. 0014 UGET 2 2 ; i
  255. 0015 TGETV 0 1 2
  256. 0016 IST 0
  257. 0017 JMP 1 => 0026
  258. 0018 GGET 1 2 ; "error"
  259. 0019 KSTR 3 3 ; "Expected value after "
  260. 0020 UGET 4 1 ; t
  261. 0021 UGET 5 2 ; i
  262. 0022 SUBVN 5 5 0 ; 1
  263. 0023 TGETV 4 4 5
  264. 0024 CAT 3 3 4
  265. 0025 CALL 1 1 2
  266. 0026 => UGET 1 2 ; i
  267. 0027 ADDVN 1 1 0 ; 1
  268. 0028 USETV 2 1 ; i
  269. 0029 => RET1 0 2
  270.  
  271. -- BYTECODE -- test.lua:99-177
  272. 0001 TDUP 1 0
  273. 0002 UGET 2 0 ; default_tags
  274. 0003 CALL 2 2 1
  275. 0004 TSETS 2 1 1 ; "tags"
  276. 0005 UGET 2 1 ; want_meta
  277. 0006 TSETS 2 1 2 ; "want_meta"
  278. 0007 MOV 2 1
  279. 0008 KSHORT 3 1
  280. 0009 LEN 4 0
  281. 0010 KSTR 5 3 ; ""
  282. 0011 FNEW 6 4 ; test.lua:108
  283. 0012 => ISGT 3 4
  284. 0013 JMP 7 => 0212
  285. 0014 LOOP 7 => 0212
  286. 0015 TGETV 7 0 3
  287. 0016 ADDVN 3 3 0 ; 1
  288. 0017 MOV 10 7
  289. 0018 TGETS 8 7 5 ; "sub"
  290. 0019 KSHORT 11 1
  291. 0020 KSHORT 12 2
  292. 0021 CALL 8 2 4
  293. 0022 ISNES 8 6 ; "--"
  294. 0023 JMP 8 => 0160
  295. 0024 MOV 10 7
  296. 0025 TGETS 8 7 7 ; "match"
  297. 0026 KSTR 11 8 ; "^([^=]+)(=?.*)$"
  298. 0027 CALL 8 3 3
  299. 0028 MOV 5 9
  300. 0029 MOV 7 8
  301. 0030 ISNES 7 9 ; "--quiet"
  302. 0031 JMP 8 => 0035
  303. 0032 KPRI 8 2
  304. 0033 TSETS 8 1 10 ; "quiet"
  305. 0034 JMP 8 => 0152
  306. 0035 => ISNES 7 11 ; "--shuffle"
  307. 0036 JMP 8 => 0048
  308. 0037 UGET 8 2 ; tonumber
  309. 0038 MOV 10 6
  310. 0039 CALL 10 0 1
  311. 0040 CALLM 8 2 0
  312. 0041 IST 8
  313. 0042 JMP 9 => 0046
  314. 0043 GGET 9 12 ; "error"
  315. 0044 KSTR 11 13 ; "Expected numeric seed after --shuffle"
  316. 0045 CALL 9 1 2
  317. 0046 => TSETS 8 1 14 ; "shuffle"
  318. 0047 JMP 8 => 0152
  319. 0048 => ISNES 7 15 ; "--shard"
  320. 0049 JMP 8 => 0072
  321. 0050 MOV 8 6
  322. 0051 CALL 8 2 1
  323. 0052 MOV 10 8
  324. 0053 TGETS 8 8 7 ; "match"
  325. 0054 KSTR 11 16 ; "^(%d+)/(%d+)$"
  326. 0055 CALL 8 3 3
  327. 0056 IST 9
  328. 0057 JMP 10 => 0061
  329. 0058 GGET 10 12 ; "error"
  330. 0059 KSTR 12 17 ; "Expected integer/integer after --shard"
  331. 0060 CALL 10 1 2
  332. 0061 => TDUP 10 19
  333. 0062 UGET 11 2 ; tonumber
  334. 0063 MOV 13 8
  335. 0064 CALL 11 2 2
  336. 0065 TSETS 11 10 20 ; "initial"
  337. 0066 UGET 11 2 ; tonumber
  338. 0067 MOV 13 9
  339. 0068 CALL 11 2 2
  340. 0069 TSETS 11 10 21 ; "step"
  341. 0070 TSETS 10 1 18 ; "shard"
  342. 0071 JMP 8 => 0152
  343. 0072 => ISNES 7 22 ; "--version"
  344. 0073 JMP 8 => 0079
  345. 0074 UGET 8 3 ; io_write
  346. 0075 KSTR 10 23 ; "LuaJIT test-suite runner v0.1\n"
  347. 0076 CALL 8 1 2
  348. 0077 KPRI 2 0
  349. 0078 JMP 8 => 0152
  350. 0079 => ISNES 7 24 ; "--help"
  351. 0080 JMP 8 => 0147
  352. 0081 UGET 8 3 ; io_write
  353. 0082 KSTR 10 25 ; "Usage: "
  354. 0083 GGET 11 26 ; "_G"
  355. 0084 ISF 11
  356. 0085 JMP 12 => 0096
  357. 0086 GGET 11 26 ; "_G"
  358. 0087 TGETS 11 11 27 ; "arg"
  359. 0088 ISF 11
  360. 0089 JMP 12 => 0096
  361. 0090 GGET 11 26 ; "_G"
  362. 0091 TGETS 11 11 27 ; "arg"
  363. 0092 KSHORT 12 -1
  364. 0093 TGETV 11 11 12
  365. 0094 IST 11
  366. 0095 JMP 12 => 0097
  367. 0096 => KSTR 11 28 ; "luajit"
  368. 0097 => KSTR 12 29 ; " "
  369. 0098 CALL 8 1 4
  370. 0099 UGET 8 3 ; io_write
  371. 0100 UGET 10 4 ; own_file
  372. 0101 KSTR 11 30 ; " [flags] [tags] [root] [numbers]\n"
  373. 0102 CALL 8 1 3
  374. 0103 UGET 8 3 ; io_write
  375. 0104 KSTR 10 31 ; "\n"
  376. 0105 CALL 8 1 2
  377. 0106 UGET 8 3 ; io_write
  378. 0107 KSTR 10 32 ; "Root specifies either a directory of tes"~
  379. 0108 CALL 8 1 2
  380. 0109 UGET 8 3 ; io_write
  381. 0110 KSTR 10 33 ; "a particular .lua test file, defaulting "~
  382. 0111 CALL 8 1 2
  383. 0112 UGET 8 3 ; io_write
  384. 0113 KSTR 10 34 ; "Tags are specified in the form +tag_name"~
  385. 0114 CALL 8 1 2
  386. 0115 UGET 8 3 ; io_write
  387. 0116 KSTR 10 35 ; "are used to turn on or off groups of tes"~
  388. 0117 CALL 8 1 2
  389. 0118 UGET 8 3 ; io_write
  390. 0119 KSTR 10 36 ; "pass -ffi to skip tests relating to the "~
  391. 0120 CALL 8 1 2
  392. 0121 UGET 8 3 ; io_write
  393. 0122 KSTR 10 37 ; "pass +slow to enable running of slow tes"~
  394. 0123 CALL 8 1 2
  395. 0124 UGET 8 3 ; io_write
  396. 0125 KSTR 10 38 ; "Numbers can be passed to only run partic"~
  397. 0126 CALL 8 1 2
  398. 0127 UGET 8 3 ; io_write
  399. 0128 KSTR 10 39 ; "The available flags are:\n"
  400. 0129 CALL 8 1 2
  401. 0130 UGET 8 3 ; io_write
  402. 0131 KSTR 10 40 ; " --quiet\n"
  403. 0132 CALL 8 1 2
  404. 0133 UGET 8 3 ; io_write
  405. 0134 KSTR 10 41 ; " --shuffle=SEED\n"
  406. 0135 CALL 8 1 2
  407. 0136 UGET 8 3 ; io_write
  408. 0137 KSTR 10 42 ; " --shard=INDEX/NUM_SHARDS\n"
  409. 0138 CALL 8 1 2
  410. 0139 UGET 8 3 ; io_write
  411. 0140 KSTR 10 43 ; " --version\n"
  412. 0141 CALL 8 1 2
  413. 0142 UGET 8 3 ; io_write
  414. 0143 KSTR 10 44 ; " --help\n"
  415. 0144 CALL 8 1 2
  416. 0145 KPRI 2 0
  417. 0146 JMP 8 => 0152
  418. 0147 => GGET 8 12 ; "error"
  419. 0148 KSTR 10 45 ; "Unsupported flag: "
  420. 0149 MOV 11 7
  421. 0150 CAT 10 10 11
  422. 0151 CALL 8 1 2
  423. 0152 => ISEQS 5 3 ; ""
  424. 0153 JMP 8 => 0012
  425. 0154 GGET 8 12 ; "error"
  426. 0155 MOV 10 7
  427. 0156 KSTR 11 46 ; " does not expect an argument"
  428. 0157 CAT 10 10 11
  429. 0158 CALL 8 1 2
  430. 0159 JMP 8 => 0012
  431. 0160 => MOV 10 7
  432. 0161 TGETS 8 7 47 ; "find"
  433. 0162 KSTR 11 48 ; "^[-+]"
  434. 0163 CALL 8 2 3
  435. 0164 ISF 8
  436. 0165 JMP 9 => 0183
  437. 0166 TGETS 8 1 1 ; "tags"
  438. 0167 MOV 11 7
  439. 0168 TGETS 9 7 5 ; "sub"
  440. 0169 KSHORT 12 2
  441. 0170 CALL 9 2 3
  442. 0171 MOV 12 7
  443. 0172 TGETS 10 7 5 ; "sub"
  444. 0173 KSHORT 13 1
  445. 0174 KSHORT 14 1
  446. 0175 CALL 10 2 4
  447. 0176 ISEQS 10 49 ; "+"
  448. 0177 JMP 10 => 0180
  449. 0178 KPRI 10 1
  450. 0179 JMP 11 => 0181
  451. 0180 => KPRI 10 2
  452. 0181 => TSETV 10 8 9
  453. 0182 JMP 8 => 0012
  454. 0183 => MOV 10 7
  455. 0184 TGETS 8 7 47 ; "find"
  456. 0185 KSTR 11 50 ; "^%d+$"
  457. 0186 CALL 8 2 3
  458. 0187 ISF 8
  459. 0188 JMP 9 => 0201
  460. 0189 TGETS 8 1 51 ; "numbers_to_run"
  461. 0190 IST 8
  462. 0191 JMP 8 => 0194
  463. 0192 TNEW 8 0
  464. 0193 TSETS 8 1 51 ; "numbers_to_run"
  465. 0194 => TGETS 8 1 51 ; "numbers_to_run"
  466. 0195 UGET 9 2 ; tonumber
  467. 0196 MOV 11 7
  468. 0197 CALL 9 2 2
  469. 0198 KPRI 10 2
  470. 0199 TSETV 10 8 9
  471. 0200 JMP 8 => 0012
  472. 0201 => TGETS 8 1 52 ; "root"
  473. 0202 IST 8
  474. 0203 JMP 8 => 0206
  475. 0204 TSETS 7 1 52 ; "root"
  476. 0205 JMP 8 => 0012
  477. 0206 => GGET 8 12 ; "error"
  478. 0207 KSTR 10 53 ; "Unexpected argument "
  479. 0208 MOV 11 7
  480. 0209 CAT 10 10 11
  481. 0210 CALL 8 1 2
  482. 0211 JMP 7 => 0012
  483. 0212 => UCLO 0 => 0213
  484. 0213 => RET1 2 2
  485.  
  486. -- BYTECODE -- test.lua:186-200
  487. 0001 ISEQN 0 0 ; 1
  488. 0002 JMP 3 => 0016
  489. 0003 SUBVN 0 0 0 ; 1
  490. 0004 UGET 3 0 ; contents
  491. 0005 MOV 5 3
  492. 0006 TGETS 3 3 0 ; "sub"
  493. 0007 MOV 6 0
  494. 0008 MOV 7 0
  495. 0009 CALL 3 2 4
  496. 0010 ISEQS 3 1 ; "\n"
  497. 0011 JMP 3 => 0016
  498. 0012 MOV 3 1
  499. 0013 MOV 4 2
  500. 0014 CAT 3 3 4
  501. 0015 RET1 3 2
  502. 0016 => KSTR 3 2 ; "%s%q,function()"
  503. 0017 MOV 5 3
  504. 0018 TGETS 3 3 3 ; "format"
  505. 0019 UGET 6 1 ; prefix
  506. 0020 MOV 7 2
  507. 0021 CALL 3 2 4
  508. 0022 USETS 1 4 ; prefix ; ","
  509. 0023 MOV 6 2
  510. 0024 TGETS 4 2 5 ; "find"
  511. 0025 KSTR 7 6 ; " !lex"
  512. 0026 CALL 4 2 3
  513. 0027 ISF 4
  514. 0028 JMP 5 => 0049
  515. 0029 UGET 4 2 ; opts
  516. 0030 MOV 6 4
  517. 0031 TGETS 4 4 7 ; "want_meta"
  518. 0032 MOV 9 2
  519. 0033 TGETS 7 2 0 ; "sub"
  520. 0034 MOV 12 2
  521. 0035 TGETS 10 2 5 ; "find"
  522. 0036 KSTR 13 8 ; " +[-+@!]"
  523. 0037 CALL 10 2 3
  524. 0038 CALL 7 0 3
  525. 0039 CALLM 4 2 1
  526. 0040 IST 4
  527. 0041 JMP 4 => 0049
  528. 0042 MOV 4 3
  529. 0043 KSTR 5 9 ; "end--[========["
  530. 0044 CAT 3 4 5
  531. 0045 KSTR 4 10 ; "]========]"
  532. 0046 UGET 5 1 ; prefix
  533. 0047 CAT 4 4 5
  534. 0048 USETV 1 4 ; prefix
  535. 0049 => RET1 3 2
  536.  
  537. -- BYTECODE -- test.lua:205-209
  538. 0001 UGET 0 0 ; code
  539. 0002 UGET 1 0 ; code
  540. 0003 UGET 2 1 ; prefix
  541. 0004 ISEQV 1 2
  542. 0005 JMP 1 => 0009
  543. 0006 UGET 1 1 ; prefix
  544. 0007 IST 1
  545. 0008 JMP 2 => 0010
  546. 0009 => KPRI 1 0
  547. 0010 => USETV 0 1 ; code
  548. 0011 RET1 0 2
  549.  
  550. -- BYTECODE -- test.lua:179-234
  551. 0001 MOV 4 0
  552. 0002 TGETS 2 0 0 ; "sub"
  553. 0003 KSHORT 5 -4
  554. 0004 KSHORT 6 -4
  555. 0005 CALL 2 2 4
  556. 0006 ISNES 2 1 ; "."
  557. 0007 JMP 2 => 0052
  558. 0008 UGET 2 0 ; assert
  559. 0009 UGET 4 1 ; io_open
  560. 0010 MOV 6 0
  561. 0011 KSTR 7 2 ; "rb"
  562. 0012 CALL 4 0 3
  563. 0013 CALLM 2 2 0
  564. 0014 MOV 5 2
  565. 0015 TGETS 3 2 3 ; "read"
  566. 0016 KSTR 6 4 ; "*a"
  567. 0017 CALL 3 2 3
  568. 0018 MOV 6 2
  569. 0019 TGETS 4 2 5 ; "close"
  570. 0020 CALL 4 1 2
  571. 0021 KSTR 4 6 ; "return {"
  572. 0022 MOV 7 3
  573. 0023 TGETS 5 3 7 ; "gsub"
  574. 0024 KSTR 8 8 ; "()(do +%-%-%- +)([^\r\n]+)"
  575. 0025 FNEW 9 9 ; test.lua:186
  576. 0026 CALL 5 2 4
  577. 0027 MOV 8 4
  578. 0028 TGETS 6 4 0 ; "sub"
  579. 0029 KSHORT 9 -1
  580. 0030 CALL 6 2 3
  581. 0031 ISEQS 6 10 ; ","
  582. 0032 JMP 6 => 0038
  583. 0033 GGET 6 11 ; "error"
  584. 0034 KSTR 8 12 ; "No tests found in "
  585. 0035 MOV 9 0
  586. 0036 CAT 8 8 9
  587. 0037 CALL 6 1 2
  588. 0038 => MOV 6 4
  589. 0039 KSTR 7 13 ; "}"
  590. 0040 CAT 4 6 7
  591. 0041 UGET 6 0 ; assert
  592. 0042 UGET 8 2 ; load
  593. 0043 FNEW 10 14 ; test.lua:205
  594. 0044 KSTR 11 15 ; "@"
  595. 0045 MOV 12 0
  596. 0046 CAT 11 11 12
  597. 0047 CALL 8 0 3
  598. 0048 CALLM 6 2 0
  599. 0049 UCLO 0 => 0050
  600. 0050 => CALLT 6 1
  601. 0051 UCLO 2 => 0118
  602. 0052 => ISEQS 0 16 ; ""
  603. 0053 JMP 2 => 0070
  604. 0054 MOV 4 0
  605. 0055 TGETS 2 0 0 ; "sub"
  606. 0056 KSHORT 5 -1
  607. 0057 CALL 2 2 3
  608. 0058 ISEQS 2 17 ; "/"
  609. 0059 JMP 2 => 0070
  610. 0060 MOV 4 0
  611. 0061 TGETS 2 0 0 ; "sub"
  612. 0062 KSHORT 5 -1
  613. 0063 CALL 2 2 3
  614. 0064 UGET 3 3 ; dirsep
  615. 0065 ISEQV 2 3
  616. 0066 JMP 2 => 0070
  617. 0067 MOV 2 0
  618. 0068 UGET 3 3 ; dirsep
  619. 0069 CAT 0 2 3
  620. 0070 => TNEW 2 0
  621. 0071 KSHORT 3 1
  622. 0072 UGET 4 4 ; io_lines
  623. 0073 MOV 6 0
  624. 0074 KSTR 7 18 ; "index"
  625. 0075 CAT 6 6 7
  626. 0076 CALL 4 4 2
  627. 0077 JMP 7 => 0114
  628. 0078 => ISEQS 7 16 ; ""
  629. 0079 JMP 8 => 0114
  630. 0080 MOV 10 7
  631. 0081 TGETS 8 7 19 ; "find"
  632. 0082 KSTR 11 20 ; " +[-+@]"
  633. 0083 CALL 8 2 3
  634. 0084 MOV 9 7
  635. 0085 KPRI 10 2
  636. 0086 ISF 8
  637. 0087 JMP 11 => 0102
  638. 0088 MOV 13 7
  639. 0089 TGETS 11 7 0 ; "sub"
  640. 0090 KSHORT 14 1
  641. 0091 SUBVN 15 8 0 ; 1
  642. 0092 CALL 11 2 4
  643. 0093 MOV 9 11
  644. 0094 MOV 13 1
  645. 0095 TGETS 11 1 21 ; "want_meta"
  646. 0096 MOV 16 7
  647. 0097 TGETS 14 7 0 ; "sub"
  648. 0098 MOV 17 8
  649. 0099 CALL 14 0 3
  650. 0100 CALLM 11 2 1
  651. 0101 MOV 10 11
  652. 0102 => ISF 10
  653. 0103 JMP 11 => 0114
  654. 0104 TSETV 7 2 3
  655. 0105 ADDVN 11 3 0 ; 1
  656. 0106 UGET 12 5 ; scan_tests
  657. 0107 MOV 14 0
  658. 0108 MOV 15 9
  659. 0109 CAT 14 14 15
  660. 0110 MOV 15 1
  661. 0111 CALL 12 2 3
  662. 0112 TSETV 12 2 11
  663. 0113 ADDVN 3 3 1 ; 2
  664. 0114 => ITERC 7 2 3
  665. 0115 ITERL 7 => 0078
  666. 0116 UCLO 0 => 0117
  667. 0117 => RET1 2 2
  668. 0118 => UCLO 0 => 0119
  669. 0119 => RET0 0 1
  670.  
  671. -- BYTECODE -- test.lua:236-240
  672. 0001 ADDVN 1 1 0 ; 1
  673. 0002 GGET 2 0 ; "debug"
  674. 0003 TGETS 2 2 1 ; "getupvalue"
  675. 0004 MOV 4 0
  676. 0005 MOV 5 1
  677. 0006 CALL 2 3 3
  678. 0007 ISFC 4 2
  679. 0008 JMP 4 => 0010
  680. 0009 MOV 4 1
  681. 0010 => MOV 5 2
  682. 0011 MOV 6 3
  683. 0012 RET 4 4
  684.  
  685. -- BYTECODE -- test.lua:242-244
  686. 0001 UGET 1 0 ; upvalue_iterator
  687. 0002 MOV 2 0
  688. 0003 KSHORT 3 0
  689. 0004 RET 1 4
  690.  
  691. -- BYTECODE -- test.lua:274-274
  692. 0001 UGET 0 0 ; G
  693. 0002 RET1 0 2
  694.  
  695. -- BYTECODE -- test.lua:246-297
  696. 0001 KPRI 4 0
  697. 0002 KSHORT 5 1
  698. 0003 LEN 6 0
  699. 0004 KSHORT 7 2
  700. 0005 FORI 5 => 0132
  701. 0006 => TGETV 9 0 8
  702. 0007 MOV 10 9
  703. 0008 KPRI 11 2
  704. 0009 MOV 14 9
  705. 0010 TGETS 12 9 0 ; "find"
  706. 0011 KSTR 15 1 ; " +[-+@!]"
  707. 0012 CALL 12 2 3
  708. 0013 ISF 12
  709. 0014 JMP 13 => 0029
  710. 0015 MOV 15 9
  711. 0016 TGETS 13 9 2 ; "sub"
  712. 0017 KSHORT 16 1
  713. 0018 SUBVN 17 12 0 ; 1
  714. 0019 CALL 13 2 4
  715. 0020 MOV 10 13
  716. 0021 MOV 15 1
  717. 0022 TGETS 13 1 3 ; "want_meta"
  718. 0023 MOV 18 9
  719. 0024 TGETS 16 9 2 ; "sub"
  720. 0025 MOV 19 12
  721. 0026 CALL 16 0 3
  722. 0027 CALLM 13 2 1
  723. 0028 MOV 11 13
  724. 0029 => LEN 13 2
  725. 0030 ISF 11
  726. 0031 JMP 14 => 0064
  727. 0032 ADDVN 14 8 0 ; 1
  728. 0033 TGETV 14 0 14
  729. 0034 UGET 15 0 ; type
  730. 0035 MOV 17 14
  731. 0036 CALL 15 2 2
  732. 0037 ISNES 15 4 ; "table"
  733. 0038 JMP 15 => 0049
  734. 0039 UGET 15 1 ; append_tree_to_plan
  735. 0040 MOV 17 14
  736. 0041 MOV 18 1
  737. 0042 MOV 19 2
  738. 0043 MOV 20 3
  739. 0044 MOV 21 10
  740. 0045 UGET 22 2 ; dirsep
  741. 0046 CAT 20 20 22
  742. 0047 CALL 15 1 5
  743. 0048 JMP 15 => 0064
  744. 0049 => IST 4
  745. 0050 JMP 15 => 0057
  746. 0051 MOV 17 3
  747. 0052 TGETS 15 3 2 ; "sub"
  748. 0053 KSHORT 18 1
  749. 0054 KSHORT 19 -2
  750. 0055 CALL 15 2 4
  751. 0056 MOV 4 15
  752. 0057 => LEN 15 2
  753. 0058 ADDVN 15 15 0 ; 1
  754. 0059 TNEW 16 4
  755. 0060 TSETB 4 16 1
  756. 0061 TSETB 10 16 2
  757. 0062 TSETB 14 16 3
  758. 0063 TSETV 16 2 15
  759. 0064 => ISF 12
  760. 0065 JMP 14 => 0131
  761. 0066 MOV 16 9
  762. 0067 TGETS 14 9 0 ; "find"
  763. 0068 KSTR 17 5 ; "!"
  764. 0069 CALL 14 2 3
  765. 0070 ISF 14
  766. 0071 JMP 15 => 0131
  767. 0072 MOV 16 9
  768. 0073 TGETS 14 9 6 ; "gmatch"
  769. 0074 KSTR 17 7 ; "!([^ ]+)"
  770. 0075 CALL 14 4 3
  771. 0076 JMP 17 => 0129
  772. 0077 => ISNES 17 8 ; "private_G"
  773. 0078 JMP 18 => 0119
  774. 0079 GGET 18 9 ; "setmetatable"
  775. 0080 TNEW 20 0
  776. 0081 TDUP 21 10
  777. 0082 GGET 22 11 ; "_G"
  778. 0083 TSETS 22 21 12 ; "__index"
  779. 0084 CALL 18 2 3
  780. 0085 TSETS 18 18 11 ; "_G"
  781. 0086 FNEW 19 13 ; test.lua:274
  782. 0087 ADDVN 20 13 0 ; 1
  783. 0088 LEN 21 2
  784. 0089 KSHORT 22 1
  785. 0090 FORI 20 => 0118
  786. 0091 => TGETV 24 2 23
  787. 0092 TGETB 24 24 3
  788. 0093 GGET 25 14 ; "setfenv"
  789. 0094 ISF 25
  790. 0095 JMP 26 => 0101
  791. 0096 GGET 25 14 ; "setfenv"
  792. 0097 MOV 27 24
  793. 0098 MOV 28 18
  794. 0099 CALL 25 1 3
  795. 0100 JMP 25 => 0117
  796. 0101 => UGET 25 3 ; upvalues_of
  797. 0102 MOV 27 24
  798. 0103 CALL 25 4 2
  799. 0104 JMP 28 => 0115
  800. 0105 => ISNES 29 15 ; "_ENV"
  801. 0106 JMP 30 => 0115
  802. 0107 GGET 30 16 ; "debug"
  803. 0108 TGETS 30 30 17 ; "upvaluejoin"
  804. 0109 MOV 32 24
  805. 0110 MOV 33 28
  806. 0111 MOV 34 19
  807. 0112 KSHORT 35 1
  808. 0113 CALL 30 1 5
  809. 0114 JMP 25 => 0117
  810. 0115 => ITERC 28 3 3
  811. 0116 ITERL 28 => 0105
  812. 0117 => FORL 20 => 0091
  813. 0118 => UCLO 18 => 0129
  814. 0119 => ISNES 17 18 ; "lex"
  815. 0120 JMP 18 => 0122
  816. 0121 JMP 18 => 0129
  817. 0122 => GGET 18 19 ; "error"
  818. 0123 KSTR 20 20 ; "Unsupported modifier ""
  819. 0124 MOV 21 17
  820. 0125 KSTR 22 21 ; "" in "
  821. 0126 MOV 23 3
  822. 0127 CAT 20 20 23
  823. 0128 CALL 18 1 2
  824. 0129 => ITERC 17 2 3
  825. 0130 ITERL 17 => 0077
  826. 0131 => FORL 5 => 0006
  827. 0132 => UCLO 0 => 0133
  828. 0133 => RET1 2 2
  829.  
  830. -- BYTECODE -- test.lua:300-302
  831. 0001 GGET 0 0 ; "error"
  832. 0002 KSTR 2 1 ; "Tests should not mutate global state"
  833. 0003 KSHORT 3 3
  834. 0004 CALL 0 1 3
  835. 0005 RET0 0 1
  836.  
  837. -- BYTECODE -- test.lua:303-309
  838. 0001 GGET 1 0 ; "getmetatable"
  839. 0002 MOV 3 0
  840. 0003 CALL 1 2 2
  841. 0004 ISF 1
  842. 0005 JMP 2 => 0007
  843. 0006 RET0 0 1
  844. 0007 => GGET 1 1 ; "setmetatable"
  845. 0008 MOV 3 0
  846. 0009 UGET 4 0 ; sealed_mt
  847. 0010 CALL 1 1 3
  848. 0011 GGET 1 2 ; "pairs"
  849. 0012 MOV 3 0
  850. 0013 CALL 1 4 2
  851. 0014 ISNEXT 4 => 0023
  852. 0015 => UGET 6 1 ; type
  853. 0016 MOV 8 5
  854. 0017 CALL 6 2 2
  855. 0018 ISNES 6 3 ; "table"
  856. 0019 JMP 6 => 0023
  857. 0020 UGET 6 2 ; seal
  858. 0021 MOV 8 5
  859. 0022 CALL 6 1 2
  860. 0023 => ITERN 4 3 3
  861. 0024 ITERL 4 => 0015
  862. 0025 RET0 0 1
  863.  
  864. -- BYTECODE -- test.lua:299-315
  865. 0001 TDUP 0 1
  866. 0002 FNEW 1 0 ; test.lua:300
  867. 0003 TSETS 1 0 2 ; "__newindex"
  868. 0004 FNEW 1 3 ; test.lua:303
  869. 0005 MOV 2 1
  870. 0006 GGET 4 4 ; "_G"
  871. 0007 CALL 2 1 2
  872. 0008 GGET 2 5 ; "getmetatable"
  873. 0009 GGET 4 6 ; "package"
  874. 0010 TGETS 4 4 7 ; "loaded"
  875. 0011 CALL 2 2 2
  876. 0012 ISNEV 2 0
  877. 0013 JMP 2 => 0019
  878. 0014 GGET 2 8 ; "setmetatable"
  879. 0015 GGET 4 6 ; "package"
  880. 0016 TGETS 4 4 7 ; "loaded"
  881. 0017 KPRI 5 0
  882. 0018 CALL 2 1 3
  883. 0019 => UCLO 0 => 0020
  884. 0020 => RET0 0 1
  885.  
  886. -- BYTECODE -- test.lua:317-330
  887. 0001 GGET 0 0 ; "pcall"
  888. 0002 GGET 2 1 ; "require"
  889. 0003 KSTR 3 2 ; "common.test_runner_canary"
  890. 0004 CALL 0 3 3
  891. 0005 IST 0
  892. 0006 JMP 2 => 0036
  893. 0007 UGET 2 0 ; own_dir
  894. 0008 ISF 2
  895. 0009 JMP 3 => 0031
  896. 0010 GGET 2 3 ; "package"
  897. 0011 TGETS 2 2 4 ; "config"
  898. 0012 MOV 4 2
  899. 0013 TGETS 2 2 5 ; "match"
  900. 0014 KSTR 5 6 ; "^(.-)\n(.-)\n(.-)\n"
  901. 0015 CALL 2 4 3
  902. 0016 GGET 5 3 ; "package"
  903. 0017 GGET 6 3 ; "package"
  904. 0018 TGETS 6 6 7 ; "path"
  905. 0019 MOV 7 3
  906. 0020 UGET 8 0 ; own_dir
  907. 0021 MOV 9 4
  908. 0022 KSTR 10 8 ; ".lua"
  909. 0023 CAT 6 6 10
  910. 0024 TSETS 6 5 7 ; "path"
  911. 0025 GGET 5 0 ; "pcall"
  912. 0026 GGET 7 1 ; "require"
  913. 0027 KSTR 8 2 ; "common.test_runner_canary"
  914. 0028 CALL 5 3 3
  915. 0029 MOV 1 6
  916. 0030 MOV 0 5
  917. 0031 => IST 0
  918. 0032 JMP 2 => 0036
  919. 0033 GGET 2 9 ; "error"
  920. 0034 MOV 4 1
  921. 0035 CALL 2 1 2
  922. 0036 => UGET 2 1 ; assert
  923. 0037 ISEQS 1 10 ; "canary is alive"
  924. 0038 JMP 4 => 0041
  925. 0039 KPRI 4 1
  926. 0040 JMP 5 => 0042
  927. 0041 => KPRI 4 2
  928. 0042 => CALL 2 1 2
  929. 0043 RET0 0 1
  930.  
  931. -- BYTECODE -- test.lua:332-360
  932. 0001 TGETS 2 1 0 ; "shuffle"
  933. 0002 ISF 2
  934. 0003 JMP 3 => 0021
  935. 0004 GGET 2 1 ; "math"
  936. 0005 TGETS 2 2 2 ; "randomseed"
  937. 0006 TGETS 4 1 0 ; "shuffle"
  938. 0007 CALL 2 1 2
  939. 0008 LEN 2 0
  940. 0009 KSHORT 3 2
  941. 0010 KSHORT 4 -1
  942. 0011 FORI 2 => 0021
  943. 0012 => UGET 6 0 ; math_random
  944. 0013 KSHORT 8 1
  945. 0014 MOV 9 5
  946. 0015 CALL 6 2 3
  947. 0016 TGETV 7 0 6
  948. 0017 TGETV 8 0 5
  949. 0018 TSETV 8 0 6
  950. 0019 TSETV 7 0 5
  951. 0020 FORL 2 => 0012
  952. 0021 => TGETS 2 1 3 ; "shard"
  953. 0022 ISF 2
  954. 0023 JMP 3 => 0037
  955. 0024 TNEW 2 0
  956. 0025 TGETS 3 1 3 ; "shard"
  957. 0026 TGETS 3 3 4 ; "initial"
  958. 0027 LEN 4 0
  959. 0028 TGETS 5 1 3 ; "shard"
  960. 0029 TGETS 5 5 5 ; "step"
  961. 0030 FORI 3 => 0036
  962. 0031 => LEN 7 2
  963. 0032 ADDVN 7 7 0 ; 1
  964. 0033 TGETV 8 0 6
  965. 0034 TSETV 8 2 7
  966. 0035 FORL 3 => 0031
  967. 0036 => MOV 0 2
  968. 0037 => TGETS 2 1 6 ; "numbers_to_run"
  969. 0038 ISF 2
  970. 0039 JMP 3 => 0067
  971. 0040 KSHORT 2 1
  972. 0041 LEN 3 0
  973. 0042 KSHORT 4 1
  974. 0043 FORI 2 => 0052
  975. 0044 => TGETS 6 1 6 ; "numbers_to_run"
  976. 0045 TGETV 6 6 5
  977. 0046 IST 6
  978. 0047 JMP 6 => 0051
  979. 0048 TGETV 6 0 5
  980. 0049 KPRI 7 1
  981. 0050 TSETB 7 6 3
  982. 0051 => FORL 2 => 0044
  983. 0052 => GGET 2 7 ; "pairs"
  984. 0053 TGETS 4 1 6 ; "numbers_to_run"
  985. 0054 CALL 2 4 2
  986. 0055 ISNEXT 5 => 0065
  987. 0056 => TGETV 6 0 5
  988. 0057 IST 6
  989. 0058 JMP 6 => 0065
  990. 0059 GGET 6 8 ; "error"
  991. 0060 KSTR 8 9 ; "Test number "
  992. 0061 MOV 9 5
  993. 0062 KSTR 10 10 ; " is not part of the plan"
  994. 0063 CAT 8 8 10
  995. 0064 CALL 6 1 2
  996. 0065 => ITERN 5 2 3
  997. 0066 ITERL 5 => 0056
  998. 0067 => RET1 0 2
  999.  
  1000. -- BYTECODE -- test.lua:362-402
  1001. 0001 LEN 2 0
  1002. 0002 ISNEN 2 0 ; 0
  1003. 0003 JMP 2 => 0007
  1004. 0004 GGET 2 0 ; "error"
  1005. 0005 KSTR 4 1 ; "No tests selected"
  1006. 0006 CALL 2 1 2
  1007. 0007 => KSTR 2 2 ; "[%%%dd/%d] "
  1008. 0008 MOV 4 2
  1009. 0009 TGETS 2 2 3 ; "format"
  1010. 0010 GGET 5 4 ; "tostring"
  1011. 0011 LEN 7 0
  1012. 0012 CALL 5 2 2
  1013. 0013 LEN 5 5
  1014. 0014 LEN 6 0
  1015. 0015 CALL 2 2 4
  1016. 0016 KSHORT 3 0
  1017. 0017 TNEW 4 0
  1018. 0018 KSHORT 5 1
  1019. 0019 LEN 6 0
  1020. 0020 KSHORT 7 1
  1021. 0021 FORI 5 => 0081
  1022. 0022 => TGETV 9 0 8
  1023. 0023 TGETB 10 9 3
  1024. 0024 ISF 10
  1025. 0025 JMP 11 => 0080
  1026. 0026 TGETB 11 9 1
  1027. 0027 TGETB 12 9 2
  1028. 0028 TGETS 13 1 5 ; "quiet"
  1029. 0029 IST 13
  1030. 0030 JMP 13 => 0047
  1031. 0031 UGET 13 0 ; io_write
  1032. 0032 MOV 17 2
  1033. 0033 TGETS 15 2 3 ; "format"
  1034. 0034 MOV 18 8
  1035. 0035 CALL 15 2 3
  1036. 0036 MOV 16 11
  1037. 0037 CALL 13 1 3
  1038. 0038 UGET 13 0 ; io_write
  1039. 0039 ISNES 11 6 ; ""
  1040. 0040 JMP 15 => 0043
  1041. 0041 KSTR 15 6 ; ""
  1042. 0042 JMP 16 => 0044
  1043. 0043 => KSTR 15 7 ; " --- "
  1044. 0044 => MOV 16 12
  1045. 0045 KSTR 17 8 ; "\n"
  1046. 0046 CALL 13 1 4
  1047. 0047 => UGET 13 1 ; xpcall
  1048. 0048 MOV 15 10
  1049. 0049 UGET 16 2 ; debug_traceback
  1050. 0050 CALL 13 3 3
  1051. 0051 IST 13
  1052. 0052 JMP 15 => 0079
  1053. 0053 TGETS 15 1 5 ; "quiet"
  1054. 0054 ISF 15
  1055. 0055 JMP 16 => 0072
  1056. 0056 UGET 15 0 ; io_write
  1057. 0057 MOV 19 2
  1058. 0058 TGETS 17 2 3 ; "format"
  1059. 0059 MOV 20 8
  1060. 0060 CALL 17 2 3
  1061. 0061 MOV 18 11
  1062. 0062 CALL 15 1 3
  1063. 0063 UGET 15 0 ; io_write
  1064. 0064 ISNES 11 6 ; ""
  1065. 0065 JMP 17 => 0068
  1066. 0066 KSTR 17 6 ; ""
  1067. 0067 JMP 18 => 0069
  1068. 0068 => KSTR 17 7 ; " --- "
  1069. 0069 => MOV 18 12
  1070. 0070 KSTR 19 8 ; "\n"
  1071. 0071 CALL 15 1 4
  1072. 0072 => LEN 15 4
  1073. 0073 ADDVN 15 15 1 ; 1
  1074. 0074 TSETV 8 4 15
  1075. 0075 UGET 15 0 ; io_write
  1076. 0076 MOV 17 14
  1077. 0077 KSTR 18 8 ; "\n"
  1078. 0078 CALL 15 1 3
  1079. 0079 => ADDVN 3 3 1 ; 1
  1080. 0080 => FORL 5 => 0022
  1081. 0081 => LEN 5 4
  1082. 0082 ISNEN 5 0 ; 0
  1083. 0083 JMP 5 => 0091
  1084. 0084 UGET 5 0 ; io_write
  1085. 0085 MOV 7 3
  1086. 0086 KSTR 8 9 ; " passed\n"
  1087. 0087 CALL 5 1 3
  1088. 0088 KPRI 5 2
  1089. 0089 RET1 5 2
  1090. 0090 JMP 5 => 0119
  1091. 0091 => UGET 5 0 ; io_write
  1092. 0092 LEN 7 4
  1093. 0093 SUBVV 7 3 7
  1094. 0094 KSTR 8 10 ; " passed, "
  1095. 0095 CALL 5 1 3
  1096. 0096 UGET 5 0 ; io_write
  1097. 0097 LEN 7 4
  1098. 0098 KSTR 8 11 ; " failed\n"
  1099. 0099 CALL 5 1 3
  1100. 0100 TGETS 5 1 5 ; "quiet"
  1101. 0101 IST 5
  1102. 0102 JMP 5 => 0117
  1103. 0103 LEN 5 4
  1104. 0104 ISEQV 3 5
  1105. 0105 JMP 5 => 0117
  1106. 0106 UGET 5 0 ; io_write
  1107. 0107 KSTR 7 12 ; "to run just failing tests, pass command "~
  1108. 0108 CALL 5 1 2
  1109. 0109 UGET 5 0 ; io_write
  1110. 0110 GGET 7 13 ; "table"
  1111. 0111 TGETS 7 7 14 ; "concat"
  1112. 0112 MOV 9 4
  1113. 0113 KSTR 10 15 ; " "
  1114. 0114 CALL 7 2 3
  1115. 0115 KSTR 8 8 ; "\n"
  1116. 0116 CALL 5 1 3
  1117. 0117 => KPRI 5 1
  1118. 0118 RET1 5 2
  1119. 0119 => RET0 0 1
  1120.  
  1121. -- BYTECODE -- test.lua:0-417
  1122. 0001 GGET 0 0 ; "assert"
  1123. 0002 GGET 1 1 ; "io"
  1124. 0003 TGETS 1 1 2 ; "open"
  1125. 0004 GGET 2 1 ; "io"
  1126. 0005 TGETS 2 2 3 ; "lines"
  1127. 0006 GGET 3 1 ; "io"
  1128. 0007 TGETS 3 3 4 ; "write"
  1129. 0008 GGET 4 5 ; "load"
  1130. 0009 GGET 5 6 ; "type"
  1131. 0010 GGET 6 7 ; "xpcall"
  1132. 0011 GGET 7 8 ; "debug"
  1133. 0012 TGETS 7 7 9 ; "traceback"
  1134. 0013 GGET 8 10 ; "math"
  1135. 0014 TGETS 8 8 11 ; "random"
  1136. 0015 GGET 9 12 ; "tonumber"
  1137. 0016 GGET 10 13 ; "loadstring"
  1138. 0017 IST 10
  1139. 0018 JMP 11 => 0020
  1140. 0019 MOV 10 4
  1141. 0020 => GGET 11 14 ; "package"
  1142. 0021 TGETS 11 11 15 ; "config"
  1143. 0022 MOV 13 11
  1144. 0023 TGETS 11 11 16 ; "match"
  1145. 0024 KSTR 14 17 ; "^(.-)\n"
  1146. 0025 CALL 11 2 3
  1147. 0026 GGET 12 8 ; "debug"
  1148. 0027 TGETS 12 12 18 ; "getinfo"
  1149. 0028 KSHORT 14 1
  1150. 0029 KSTR 15 19 ; "S"
  1151. 0030 CALL 12 2 3
  1152. 0031 TGETS 12 12 20 ; "source"
  1153. 0032 MOV 14 12
  1154. 0033 TGETS 12 12 16 ; "match"
  1155. 0034 KSTR 15 21 ; "^@(.*)"
  1156. 0035 CALL 12 2 3
  1157. 0036 IST 12
  1158. 0037 JMP 13 => 0040
  1159. 0038 GGET 12 22 ; "arg"
  1160. 0039 TGETB 12 12 0
  1161. 0040 => MOV 15 12
  1162. 0041 TGETS 13 12 16 ; "match"
  1163. 0042 KSTR 16 23 ; "^.*[/"
  1164. 0043 MOV 17 11
  1165. 0044 KSTR 18 24 ; "]"
  1166. 0045 CAT 16 16 18
  1167. 0046 CALL 13 2 3
  1168. 0047 FNEW 14 25 ; test.lua:10
  1169. 0048 FNEW 15 26 ; test.lua:72
  1170. 0049 FNEW 16 27 ; test.lua:99
  1171. 0050 FNEW 17 28 ; test.lua:179
  1172. 0051 FNEW 18 29 ; test.lua:236
  1173. 0052 FNEW 19 30 ; test.lua:242
  1174. 0053 FNEW 20 31 ; test.lua:246
  1175. 0054 FNEW 21 32 ; test.lua:299
  1176. 0055 FNEW 22 33 ; test.lua:317
  1177. 0056 FNEW 23 34 ; test.lua:332
  1178. 0057 FNEW 24 35 ; test.lua:362
  1179. 0058 MOV 25 16
  1180. 0059 TNEW 27 3
  1181. 0060 VARG 28 0 0
  1182. 0061 TSETM 28 0 ; 1
  1183. 0062 CALL 25 2 2
  1184. 0063 IST 25
  1185. 0064 JMP 26 => 0067
  1186. 0065 UCLO 0 => 0066
  1187. 0066 => RET0 0 1
  1188. 0067 => MOV 26 21
  1189. 0068 CALL 26 1 1
  1190. 0069 MOV 26 22
  1191. 0070 CALL 26 1 1
  1192. 0071 MOV 26 17
  1193. 0072 TGETS 28 25 36 ; "root"
  1194. 0073 IST 28
  1195. 0074 JMP 29 => 0078
  1196. 0075 ISTC 28 13
  1197. 0076 JMP 28 => 0078
  1198. 0077 KSTR 28 37 ; ""
  1199. 0078 => MOV 29 25
  1200. 0079 CALL 26 2 3
  1201. 0080 MOV 27 20
  1202. 0081 MOV 29 26
  1203. 0082 MOV 30 25
  1204. 0083 TNEW 31 0
  1205. 0084 KSTR 32 37 ; ""
  1206. 0085 CALL 27 2 5
  1207. 0086 MOV 28 23
  1208. 0087 MOV 30 27
  1209. 0088 MOV 31 25
  1210. 0089 CALL 28 2 3
  1211. 0090 MOV 27 28
  1212. 0091 MOV 28 24
  1213. 0092 MOV 30 27
  1214. 0093 MOV 31 25
  1215. 0094 CALL 28 2 3
  1216. 0095 IST 28
  1217. 0096 JMP 29 => 0101
  1218. 0097 GGET 29 38 ; "os"
  1219. 0098 TGETS 29 29 39 ; "exit"
  1220. 0099 KSHORT 31 1
  1221. 0100 CALL 29 1 2
  1222. 0101 => UCLO 0 => 0102
  1223. 0102 => RET0 0 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement