porffor 0.16.0-6572d1c74 โ†’ 0.16.0-688a50c13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CONTRIBUTING.md CHANGED
@@ -26,7 +26,7 @@ You can also swap out `node` in the alias to use another runtime like Deno (`den
26
26
 
27
27
  ### Precompile
28
28
 
29
- **If you update any file inside `compiler/builtins` you will need to do this for it to update inside Porffor otherwise your changes will have no effect.** Run `node compiler/precompile.js` to precompile. It may error during this, if so, you might have an error in your code or there could be a compiler error with Porffor (feel free to ask for help as soon as you encounter any errors with it).
29
+ **If you update any file inside `compiler/builtins` you will need to do this for it to update inside Porffor otherwise your changes will have no effect.** Run `./porf precompile` to precompile. It may error during this, if so, you might have an error in your code or there could be a compiler error with Porffor (feel free to ask for help as soon as you encounter any errors with it).
30
30
 
31
31
  <br>
32
32
 
package/a.txt ADDED
@@ -0,0 +1,457 @@
1
+ reading tests...
2
+
3
+ funcs
4
+
5
 
6
+
7
+
8
+
9
+ test/built-ins/String/fromCharCode/S9.7_A1.js: 0/1 passed - 0.00% (0 to go until 0.1%, 0 to go until 1%)
10
+  1 
11
+ ๐Ÿงช 1 | ๐Ÿค  0 | โŒ 0 | ๐Ÿ’€ 1 | ๐Ÿ“ 0 | โฐ 0 | ๐Ÿ—๏ธ 0 | ๐Ÿ’ฅ 0
12
+
13
+ took 0.3s to run (0.3s total)
14
+ (f64, i32, f64, i32) -> (f64, i32) ;; $__assert__isSameValue (3)
15
+ local f64 f64 i32 i32 i32 i32 i32 i32 i32
16
+ block i32 ;; string_only ;; label @2
17
+ local.get 0 ;; $a
18
+ local.tee 4 ;; string_only ;; $__tmpop_left
19
+ local.get 2 ;; $b
20
+ local.tee 5 ;; string_only ;; $__tmpop_right
21
+ local.get 1 ;; string_only|start ;; $a#type (i32)
22
+ i32.const 2
23
+ i32.eq
24
+ local.get 3 ;; $b#type (i32)
25
+ i32.const 2
26
+ i32.eq
27
+ i32.and
28
+ if ;; label @3
29
+ local.get 4 ;; $__tmpop_left
30
+ i32.trunc_sat_f64_u
31
+ local.tee 6 ;; $compare_left_pointer (i32)
32
+ local.get 5 ;; $__tmpop_right
33
+ i32.trunc_sat_f64_u
34
+ local.tee 8 ;; $compare_right_pointer (i32)
35
+ i32.ne
36
+ if i32 ;; label @4
37
+ local.get 6 ;; $compare_left_pointer (i32)
38
+ i32.load 0 0
39
+ local.tee 7 ;; $compare_left_length (i32)
40
+ local.get 8 ;; $compare_right_pointer (i32)
41
+ i32.load 0 0
42
+ i32.ne
43
+ if ;; label @5
44
+ i32.const 0
45
+ br 1 ;; goto @4
46
+ end
47
+ i32.const 0
48
+ local.set 9 ;; $compare_index (i32)
49
+ local.get 7 ;; $compare_left_length (i32)
50
+ i32.const 2
51
+ i32.mul
52
+ local.set 10 ;; $compare_index_end (i32)
53
+ loop ;; label @5
54
+ local.get 9 ;; $compare_index (i32)
55
+ local.get 6 ;; $compare_left_pointer (i32)
56
+ i32.add
57
+ i32.load16_u 0 4
58
+ local.get 9 ;; $compare_index (i32)
59
+ local.get 8 ;; $compare_right_pointer (i32)
60
+ i32.add
61
+ i32.load16_u 0 4
62
+ i32.ne
63
+ if ;; label @6
64
+ i32.const 0
65
+ br 2 ;; goto @4
66
+ end
67
+ local.get 9 ;; $compare_index (i32)
68
+ i32.const 2
69
+ i32.add
70
+ local.tee 9 ;; $compare_index (i32)
71
+ local.get 10 ;; $compare_index_end (i32)
72
+ i32.lt_s
73
+ br_if 0 ;; goto @5
74
+ end
75
+ i32.const 1
76
+ else ;; label @4
77
+ i32.const 1
78
+ end
79
+ br 1 ;; goto @2
80
+ end
81
+ local.get 1 ;; $a#type (i32)
82
+ i32.const 18
83
+ i32.eq
84
+ local.get 3 ;; $b#type (i32)
85
+ i32.const 18
86
+ i32.eq
87
+ i32.and
88
+ if ;; label @3
89
+ local.get 4 ;; $__tmpop_left
90
+ i32.trunc_sat_f64_u
91
+ local.tee 6 ;; $compare_left_pointer (i32)
92
+ local.get 5 ;; $__tmpop_right
93
+ i32.trunc_sat_f64_u
94
+ local.tee 8 ;; $compare_right_pointer (i32)
95
+ i32.ne
96
+ if i32 ;; label @4
97
+ local.get 6 ;; $compare_left_pointer (i32)
98
+ i32.load 0 0
99
+ local.tee 7 ;; $compare_left_length (i32)
100
+ local.get 8 ;; $compare_right_pointer (i32)
101
+ i32.load 0 0
102
+ i32.ne
103
+ if ;; label @5
104
+ i32.const 0
105
+ br 1 ;; goto @4
106
+ end
107
+ i32.const 0
108
+ local.set 9 ;; $compare_index (i32)
109
+ local.get 7 ;; $compare_left_length (i32)
110
+ local.set 10 ;; $compare_index_end (i32)
111
+ loop ;; label @5
112
+ local.get 9 ;; $compare_index (i32)
113
+ local.get 6 ;; $compare_left_pointer (i32)
114
+ i32.add
115
+ i32.load8_u 0 4
116
+ local.get 9 ;; $compare_index (i32)
117
+ local.get 8 ;; $compare_right_pointer (i32)
118
+ i32.add
119
+ i32.load8_u 0 4
120
+ i32.ne
121
+ if ;; label @6
122
+ i32.const 0
123
+ br 2 ;; goto @4
124
+ end
125
+ local.get 9 ;; $compare_index (i32)
126
+ i32.const 1
127
+ i32.add
128
+ local.tee 9 ;; $compare_index (i32)
129
+ local.get 10 ;; $compare_index_end (i32)
130
+ i32.lt_s
131
+ br_if 0 ;; goto @5
132
+ end
133
+ i32.const 1
134
+ else ;; label @4
135
+ i32.const 1
136
+ end
137
+ br 1 ;; goto @2
138
+ end ;; string_only|end
139
+ f64.eq
140
+ end ;; string_only
141
+ local.get 1 ;; $a#type (i32)
142
+ local.get 3 ;; $b#type (i32)
143
+ i32.eq
144
+ i32.and
145
+ i32.eqz
146
+ i32.eqz
147
+ if ;; label @2
148
+ local.get 0 ;; $a
149
+ f64.const 0
150
+ f64.ne
151
+ local.get 1 ;; $a#type (i32)
152
+ i32.const 0
153
+ i32.ne
154
+ i32.or
155
+ local.tee 11 ;; $logictmpi (i32)
156
+ i32.eqz
157
+ if i32 ;; label @3
158
+ f64.const 1
159
+ local.get 0 ;; $a
160
+ f64.div
161
+ f64.const 1
162
+ local.get 2 ;; $b
163
+ f64.div
164
+ f64.eq
165
+ i32.const 0
166
+ i32.const 0
167
+ i32.eq
168
+ i32.and
169
+ i32.const 1
170
+ local.set 12 ;; $#last_type (i32)
171
+ else ;; label @3
172
+ local.get 11 ;; $logictmpi (i32)
173
+ i32.const 1
174
+ local.set 12 ;; $#last_type (i32)
175
+ end
176
+ f64.convert_i32_s
177
+ local.get 12 ;; $#last_type (i32)
178
+ return
179
+ end
180
+ block i32 ;; string_only ;; label @2
181
+ local.get 0 ;; $a
182
+ local.tee 4 ;; string_only ;; $__tmpop_left
183
+ local.get 0 ;; $a
184
+ local.tee 5 ;; string_only ;; $__tmpop_right
185
+ local.get 1 ;; string_only|start ;; $a#type (i32)
186
+ i32.const 2
187
+ i32.eq
188
+ local.get 1 ;; $a#type (i32)
189
+ i32.const 2
190
+ i32.eq
191
+ i32.and
192
+ if ;; label @3
193
+ local.get 4 ;; $__tmpop_left
194
+ i32.trunc_sat_f64_u
195
+ local.tee 6 ;; $compare_left_pointer (i32)
196
+ local.get 5 ;; $__tmpop_right
197
+ i32.trunc_sat_f64_u
198
+ local.tee 8 ;; $compare_right_pointer (i32)
199
+ i32.ne
200
+ if i32 ;; label @4
201
+ local.get 6 ;; $compare_left_pointer (i32)
202
+ i32.load 0 0
203
+ local.tee 7 ;; $compare_left_length (i32)
204
+ local.get 8 ;; $compare_right_pointer (i32)
205
+ i32.load 0 0
206
+ i32.ne
207
+ if ;; label @5
208
+ i32.const 0
209
+ br 1 ;; goto @4
210
+ end
211
+ i32.const 0
212
+ local.set 9 ;; $compare_index (i32)
213
+ local.get 7 ;; $compare_left_length (i32)
214
+ i32.const 2
215
+ i32.mul
216
+ local.set 10 ;; $compare_index_end (i32)
217
+ loop ;; label @5
218
+ local.get 9 ;; $compare_index (i32)
219
+ local.get 6 ;; $compare_left_pointer (i32)
220
+ i32.add
221
+ i32.load16_u 0 4
222
+ local.get 9 ;; $compare_index (i32)
223
+ local.get 8 ;; $compare_right_pointer (i32)
224
+ i32.add
225
+ i32.load16_u 0 4
226
+ i32.ne
227
+ if ;; label @6
228
+ i32.const 0
229
+ br 2 ;; goto @4
230
+ end
231
+ local.get 9 ;; $compare_index (i32)
232
+ i32.const 2
233
+ i32.add
234
+ local.tee 9 ;; $compare_index (i32)
235
+ local.get 10 ;; $compare_index_end (i32)
236
+ i32.lt_s
237
+ br_if 0 ;; goto @5
238
+ end
239
+ i32.const 1
240
+ else ;; label @4
241
+ i32.const 1
242
+ end
243
+ i32.eqz
244
+ br 1 ;; goto @2
245
+ end
246
+ local.get 1 ;; $a#type (i32)
247
+ i32.const 18
248
+ i32.eq
249
+ local.get 1 ;; $a#type (i32)
250
+ i32.const 18
251
+ i32.eq
252
+ i32.and
253
+ if ;; label @3
254
+ local.get 4 ;; $__tmpop_left
255
+ i32.trunc_sat_f64_u
256
+ local.tee 6 ;; $compare_left_pointer (i32)
257
+ local.get 5 ;; $__tmpop_right
258
+ i32.trunc_sat_f64_u
259
+ local.tee 8 ;; $compare_right_pointer (i32)
260
+ i32.ne
261
+ if i32 ;; label @4
262
+ local.get 6 ;; $compare_left_pointer (i32)
263
+ i32.load 0 0
264
+ local.tee 7 ;; $compare_left_length (i32)
265
+ local.get 8 ;; $compare_right_pointer (i32)
266
+ i32.load 0 0
267
+ i32.ne
268
+ if ;; label @5
269
+ i32.const 0
270
+ br 1 ;; goto @4
271
+ end
272
+ i32.const 0
273
+ local.set 9 ;; $compare_index (i32)
274
+ local.get 7 ;; $compare_left_length (i32)
275
+ local.set 10 ;; $compare_index_end (i32)
276
+ loop ;; label @5
277
+ local.get 9 ;; $compare_index (i32)
278
+ local.get 6 ;; $compare_left_pointer (i32)
279
+ i32.add
280
+ i32.load8_u 0 4
281
+ local.get 9 ;; $compare_index (i32)
282
+ local.get 8 ;; $compare_right_pointer (i32)
283
+ i32.add
284
+ i32.load8_u 0 4
285
+ i32.ne
286
+ if ;; label @6
287
+ i32.const 0
288
+ br 2 ;; goto @4
289
+ end
290
+ local.get 9 ;; $compare_index (i32)
291
+ i32.const 1
292
+ i32.add
293
+ local.tee 9 ;; $compare_index (i32)
294
+ local.get 10 ;; $compare_index_end (i32)
295
+ i32.lt_s
296
+ br_if 0 ;; goto @5
297
+ end
298
+ i32.const 1
299
+ else ;; label @4
300
+ i32.const 1
301
+ end
302
+ i32.eqz
303
+ br 1 ;; goto @2
304
+ end ;; string_only|end
305
+ f64.ne
306
+ end ;; string_only
307
+ local.get 1 ;; $a#type (i32)
308
+ local.get 1 ;; $a#type (i32)
309
+ i32.ne
310
+ i32.or
311
+ local.tee 11 ;; $logictmpi (i32)
312
+ i32.eqz
313
+ i32.eqz
314
+ if i32 ;; label @2
315
+ block i32 ;; string_only ;; label @3
316
+ local.get 2 ;; $b
317
+ local.tee 4 ;; string_only ;; $__tmpop_left
318
+ local.get 2 ;; $b
319
+ local.tee 5 ;; string_only ;; $__tmpop_right
320
+ local.get 3 ;; string_only|start ;; $b#type (i32)
321
+ i32.const 2
322
+ i32.eq
323
+ local.get 3 ;; $b#type (i32)
324
+ i32.const 2
325
+ i32.eq
326
+ i32.and
327
+ if ;; label @4
328
+ local.get 4 ;; $__tmpop_left
329
+ i32.trunc_sat_f64_u
330
+ local.tee 6 ;; $compare_left_pointer (i32)
331
+ local.get 5 ;; $__tmpop_right
332
+ i32.trunc_sat_f64_u
333
+ local.tee 8 ;; $compare_right_pointer (i32)
334
+ i32.ne
335
+ if i32 ;; label @5
336
+ local.get 6 ;; $compare_left_pointer (i32)
337
+ i32.load 0 0
338
+ local.tee 7 ;; $compare_left_length (i32)
339
+ local.get 8 ;; $compare_right_pointer (i32)
340
+ i32.load 0 0
341
+ i32.ne
342
+ if ;; label @6
343
+ i32.const 0
344
+ br 1 ;; goto @5
345
+ end
346
+ i32.const 0
347
+ local.set 9 ;; $compare_index (i32)
348
+ local.get 7 ;; $compare_left_length (i32)
349
+ i32.const 2
350
+ i32.mul
351
+ local.set 10 ;; $compare_index_end (i32)
352
+ loop ;; label @6
353
+ local.get 9 ;; $compare_index (i32)
354
+ local.get 6 ;; $compare_left_pointer (i32)
355
+ i32.add
356
+ i32.load16_u 0 4
357
+ local.get 9 ;; $compare_index (i32)
358
+ local.get 8 ;; $compare_right_pointer (i32)
359
+ i32.add
360
+ i32.load16_u 0 4
361
+ i32.ne
362
+ if ;; label @7
363
+ i32.const 0
364
+ br 2 ;; goto @5
365
+ end
366
+ local.get 9 ;; $compare_index (i32)
367
+ i32.const 2
368
+ i32.add
369
+ local.tee 9 ;; $compare_index (i32)
370
+ local.get 10 ;; $compare_index_end (i32)
371
+ i32.lt_s
372
+ br_if 0 ;; goto @6
373
+ end
374
+ i32.const 1
375
+ else ;; label @5
376
+ i32.const 1
377
+ end
378
+ i32.eqz
379
+ br 1 ;; goto @3
380
+ end
381
+ local.get 3 ;; $b#type (i32)
382
+ i32.const 18
383
+ i32.eq
384
+ local.get 3 ;; $b#type (i32)
385
+ i32.const 18
386
+ i32.eq
387
+ i32.and
388
+ if ;; label @4
389
+ local.get 4 ;; $__tmpop_left
390
+ i32.trunc_sat_f64_u
391
+ local.tee 6 ;; $compare_left_pointer (i32)
392
+ local.get 5 ;; $__tmpop_right
393
+ i32.trunc_sat_f64_u
394
+ local.tee 8 ;; $compare_right_pointer (i32)
395
+ i32.ne
396
+ if i32 ;; label @5
397
+ local.get 6 ;; $compare_left_pointer (i32)
398
+ i32.load 0 0
399
+ local.tee 7 ;; $compare_left_length (i32)
400
+ local.get 8 ;; $compare_right_pointer (i32)
401
+ i32.load 0 0
402
+ i32.ne
403
+ if ;; label @6
404
+ i32.const 0
405
+ br 1 ;; goto @5
406
+ end
407
+ i32.const 0
408
+ local.set 9 ;; $compare_index (i32)
409
+ local.get 7 ;; $compare_left_length (i32)
410
+ local.set 10 ;; $compare_index_end (i32)
411
+ loop ;; label @6
412
+ local.get 9 ;; $compare_index (i32)
413
+ local.get 6 ;; $compare_left_pointer (i32)
414
+ i32.add
415
+ i32.load8_u 0 4
416
+ local.get 9 ;; $compare_index (i32)
417
+ local.get 8 ;; $compare_right_pointer (i32)
418
+ i32.add
419
+ i32.load8_u 0 4
420
+ i32.ne
421
+ if ;; label @7
422
+ i32.const 0
423
+ br 2 ;; goto @5
424
+ end
425
+ local.get 9 ;; $compare_index (i32)
426
+ i32.const 1
427
+ i32.add
428
+ local.tee 9 ;; $compare_index (i32)
429
+ local.get 10 ;; $compare_index_end (i32)
430
+ i32.lt_s
431
+ br_if 0 ;; goto @6
432
+ end
433
+ i32.const 1
434
+ else ;; label @5
435
+ i32.const 1
436
+ end
437
+ i32.eqz
438
+ br 1 ;; goto @3
439
+ end ;; string_only|end
440
+ f64.ne
441
+ end ;; string_only
442
+ local.get 3 ;; $b#type (i32)
443
+ local.get 3 ;; $b#type (i32)
444
+ i32.ne
445
+ i32.or
446
+ i32.const 1
447
+ local.set 12 ;; $#last_type (i32)
448
+ else ;; label @2
449
+ local.get 11 ;; $logictmpi (i32)
450
+ i32.const 1
451
+ local.set 12 ;; $#last_type (i32)
452
+ end
453
+ f64.convert_i32_s
454
+ local.get 12 ;; $#last_type (i32)
455
+ return
456
+ end
457
+
458
+