porffor 0.2.0-f435128 โ 0.2.0-f647e42
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 +60 -2
- package/compiler/builtins/date.ts +2 -0
- package/compiler/builtins/porffor.d.ts +21 -4
- package/compiler/builtins.js +0 -21
- package/compiler/codegen.js +0 -3
- package/compiler/generated_builtins.js +28 -19
- package/package.json +1 -1
package/CONTRIBUTING.md
CHANGED
@@ -2,7 +2,24 @@
|
|
2
2
|
|
3
3
|
Hello! Thanks for your potential interest in contributing to Porffor :)
|
4
4
|
|
5
|
-
This document hopes to help you understand Porffor-specific TS, specifically for writing built-ins (inside `compiler/builtins
|
5
|
+
This document hopes to help you understand Porffor-specific TS, specifically for writing built-ins (inside `compiler/builtins/*.ts` eg `btoa`, `String.prototype.trim`, ...). This guide isn't really meant for modifying the compiler itself yet (eg `compiler/codegen.js`), as built-ins are ~easier to implement and more useful at the moment.
|
6
|
+
|
7
|
+
I mostly presume decent JS knowledge, with some basic TS too but nothing complicated. Knowing low-level stuff generally (pointers, etc) and/or Wasm (bytecode) is also a plus but hopefully not required.
|
8
|
+
|
9
|
+
If you have any questions you can ask in [the Porffor Discord](https://discord.gg/6crs9Znx9R), please feel free to ask anything if you get stuck :)
|
10
|
+
|
11
|
+
Please read this entire document before beginning as there are important things throughout.
|
12
|
+
|
13
|
+
<br>
|
14
|
+
|
15
|
+
## Setup
|
16
|
+
|
17
|
+
1. Clone the repo and enter the repo (`git clone https://github.com/CanadaHonk/porffor.git`)
|
18
|
+
2. `npm install`
|
19
|
+
|
20
|
+
### Precompile
|
21
|
+
|
22
|
+
**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).
|
6
23
|
|
7
24
|
<br>
|
8
25
|
|
@@ -16,7 +33,7 @@ The most important and widely used internal type is ByteString (also called `byt
|
|
16
33
|
|
17
34
|
### i32
|
18
35
|
|
19
|
-
This is complicated internally but essentially, only use it for pointers.
|
36
|
+
This is complicated internally but essentially, only use it for pointers. (This is not signed or unsigned, instead it is the Wasm valtype `i32` so the signage is ~instruction dependant).
|
20
37
|
|
21
38
|
<br>
|
22
39
|
|
@@ -176,6 +193,47 @@ Store the character code into the `out` pointer variable, and increment it.
|
|
176
193
|
|
177
194
|
There is 0 setup for this (right now). You can try looking through the other built-ins files but do not worry about it a lot, I honestly do not mind going through and cleaning up after a PR as long as the code itself is good :^)
|
178
195
|
|
196
|
+
<br>
|
197
|
+
|
198
|
+
## Commit (message) style
|
199
|
+
|
200
|
+
You should ideally have one commit per notable change (using amend/force push). Commit messages should be like `${file}: ${description}`. Don't be afraid to use long titles if needed, but try and be short if possible. Bonus points for detail in commit description. ~~Gold star for jokes in description too.~~
|
201
|
+
|
202
|
+
Examples:
|
203
|
+
```
|
204
|
+
builtins/date: impl toJSON
|
205
|
+
builtins/date: fix ToIntegerOrInfinity returning -0
|
206
|
+
codegen: fix inline wasm for unreachable
|
207
|
+
builtins/array: wip toReversed
|
208
|
+
builtins/tostring_number: impl radix
|
209
|
+
```
|
210
|
+
|
211
|
+
<br>
|
212
|
+
|
213
|
+
## Test262
|
214
|
+
|
215
|
+
Make sure you have Test262 cloned already **inside of `test262/`** (`git clone https://github.com/tc39/test262.git test262/test262`).
|
216
|
+
|
217
|
+
Run `node test262` to run all the tests and get an output of total overall test results. The main thing you want to pay attention to is the emoji summary (lol):
|
218
|
+
```
|
219
|
+
๐งช 50005 | ๐ค 7007 (-89) | โ 1914 (-32) | ๐ 13904 (-61) | ๐ 23477 (-120) | โฐ 2 | ๐ 2073 (+302) | ๐ฅ 1628
|
220
|
+
```
|
221
|
+
|
222
|
+
To break this down:
|
223
|
+
๐งช total ๐ค pass โ fail ๐ runtime error ๐ todo (error) ๐๏ธ wasm compile error ๐ฅ compile error
|
224
|
+
|
225
|
+
The diff compared to the last commit (with test262 data) is shown in brackets. Basically, you can passes ๐ค up, and errors down.
|
226
|
+
|
227
|
+
It will also log new passes/fails. Be careful as sometimes the overall passes can increase, but other files have also regressed into failures which you might miss.
|
228
|
+
|
229
|
+
### Debugging tips
|
230
|
+
|
231
|
+
- Use `node test262 path/to/tests` to run specific test262 dirs/files (eg `node test262 built-ins/Date`).
|
232
|
+
- Use `--log-errors` to log the errors of individual tests.
|
233
|
+
- Use `--debug-asserts` to log expected/actual of assertion failures (experimental).
|
234
|
+
|
235
|
+
<br>
|
236
|
+
|
179
237
|
[^1]: The `0, 4` args are necessary for the Wasm instruction, but you don't need to worry about them (`0` alignment, `4` byte offset for length).
|
180
238
|
|
181
239
|
[^2]: The `0, 4` args are necessary for the Wasm instruction, but you don't need to worry about them (`0` alignment, `0` byte offset).
|
@@ -397,6 +397,8 @@ export const __Date_parse = (string: bytestring): number => {
|
|
397
397
|
// 'Sun May 12 2024 02:44:13 GMT+0000 (UTC)'
|
398
398
|
|
399
399
|
let ptr: i32 = Porffor.wasm`local.get ${string}`;
|
400
|
+
|
401
|
+
return 0;
|
400
402
|
};
|
401
403
|
|
402
404
|
// 21.4.3.4 Date.UTC (year [, month [, date [, hours [, minutes [, seconds [, ms ]]]]]])
|
@@ -7,23 +7,40 @@ type PorfforGlobal = {
|
|
7
7
|
wasm: {
|
8
8
|
(...args: any[]): any;
|
9
9
|
i32: {
|
10
|
-
or(a: i32, b: i32): i32;
|
11
|
-
|
12
10
|
load(pointer: i32, align: i32, offset: i32): i32;
|
13
11
|
store(pointer: i32, value: i32, align: i32, offset: i32): i32;
|
14
12
|
load8_u(pointer: i32, align: i32, offset: i32): i32;
|
15
13
|
store8(pointer: i32, value: i32, align: i32, offset: i32): i32;
|
16
14
|
load16_u(pointer: i32, align: i32, offset: i32): i32;
|
17
15
|
store16(pointer: i32, value: i32, align: i32, offset: i32): i32;
|
16
|
+
const(value: i32): i32;
|
17
|
+
}
|
18
|
+
|
19
|
+
f64: {
|
20
|
+
load(pointer: i32, align: i32, offset: i32): i32;
|
21
|
+
store(pointer: i32, value: f64, align: i32, offset: i32): f64;
|
18
22
|
}
|
19
23
|
}
|
20
24
|
|
21
|
-
// randomInt(): i32;
|
22
25
|
randomByte(): i32;
|
23
26
|
|
24
27
|
type(x: any): bytestring;
|
25
28
|
rawType(x: any): i32;
|
26
|
-
TYPES:
|
29
|
+
TYPES: {
|
30
|
+
number: i32;
|
31
|
+
boolean: i32;
|
32
|
+
string: i32;
|
33
|
+
undefined: i32;
|
34
|
+
object: i32;
|
35
|
+
function: i32;
|
36
|
+
symbol: i32;
|
37
|
+
bigint: i32;
|
38
|
+
|
39
|
+
_array: i32;
|
40
|
+
_regexp: i32;
|
41
|
+
_bytestring: i32;
|
42
|
+
_date: i32;
|
43
|
+
}
|
27
44
|
|
28
45
|
fastOr(...args: any): boolean;
|
29
46
|
fastAnd(...args: any): boolean;
|
package/compiler/builtins.js
CHANGED
@@ -915,27 +915,6 @@ export const BuiltinFuncs = function() {
|
|
915
915
|
]
|
916
916
|
};
|
917
917
|
|
918
|
-
// this.__Porffor_randomInt = {
|
919
|
-
// params: [],
|
920
|
-
// locals: prng.locals,
|
921
|
-
// localNames: [ 's1', 's0' ],
|
922
|
-
// globals: prng.globals,
|
923
|
-
// globalNames: [ 'state0', 'state1' ],
|
924
|
-
// globalInits: [ prngSeed0, prngSeed1 ],
|
925
|
-
// returns: [ Valtype.i32 ],
|
926
|
-
// wasm: [
|
927
|
-
// ...prng.wasm,
|
928
|
-
|
929
|
-
// ...(prng.returns === Valtype.i64 ? [
|
930
|
-
// // the lowest bits of the output generated by xorshift128+ have low quality
|
931
|
-
// ...number(56, Valtype.i64),
|
932
|
-
// [ Opcodes.i64_shr_u ],
|
933
|
-
|
934
|
-
// [ Opcodes.i32_wrap_i64 ],
|
935
|
-
// ] : []),
|
936
|
-
// ]
|
937
|
-
// };
|
938
|
-
|
939
918
|
this.__Porffor_randomByte = {
|
940
919
|
params: [],
|
941
920
|
locals: prng.locals,
|
package/compiler/codegen.js
CHANGED
@@ -1872,9 +1872,6 @@ const generateCall = (scope, decl, _global, _name, unusedValue = false) => {
|
|
1872
1872
|
|
1873
1873
|
// value
|
1874
1874
|
i32_const: { imms: 1, args: [], returns: 1 },
|
1875
|
-
|
1876
|
-
// a, b
|
1877
|
-
i32_or: { imms: 0, args: [ true, true ], returns: 1 },
|
1878
1875
|
};
|
1879
1876
|
|
1880
1877
|
const opName = name.slice('__Porffor_wasm_'.length);
|
@@ -524,6 +524,33 @@ export const BuiltinFuncs = function() {
|
|
524
524
|
locals: [],
|
525
525
|
localNames: ["time","time#type"],
|
526
526
|
};
|
527
|
+
this.__Date_now = {
|
528
|
+
wasm: (scope, { allocPage, builtin }) => [[16,3],[16, builtin('__performance_now')],[160],[16, builtin('__Math_trunc')],[15]],
|
529
|
+
params: [],
|
530
|
+
typedParams: true,
|
531
|
+
returns: [124],
|
532
|
+
returnType: 0,
|
533
|
+
locals: [],
|
534
|
+
localNames: [],
|
535
|
+
};
|
536
|
+
this.__Date_parse = {
|
537
|
+
wasm: (scope, { allocPage, builtin }) => [[32,0],[33,2],[68,0,0,0,0,0,0,0,0],[15]],
|
538
|
+
params: [124,127],
|
539
|
+
typedParams: true,
|
540
|
+
returns: [124],
|
541
|
+
returnType: 0,
|
542
|
+
locals: [124],
|
543
|
+
localNames: ["string","string#type","ptr"],
|
544
|
+
};
|
545
|
+
this.__Date_UTC = {
|
546
|
+
wasm: (scope, { allocPage, builtin }) => [[32,0],[16, builtin('Number')],[33,14],[68,0,0,0,0,0,0,0,0],[33,15],[32,2],[32,3],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[4,64],[32,2],[16, builtin('Number')],[33,15],[11],[68,0,0,0,0,0,0,240,63],[33,16],[32,4],[32,5],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[4,64],[32,4],[16, builtin('Number')],[33,16],[11],[68,0,0,0,0,0,0,0,0],[33,17],[32,6],[32,7],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[4,64],[32,6],[16, builtin('Number')],[33,17],[11],[68,0,0,0,0,0,0,0,0],[33,18],[32,8],[32,9],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[4,64],[32,8],[16, builtin('Number')],[33,18],[11],[68,0,0,0,0,0,0,0,0],[33,19],[32,10],[32,11],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[4,64],[32,10],[16, builtin('Number')],[33,19],[11],[68,0,0,0,0,0,0,0,0],[33,20],[32,12],[32,13],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[4,64],[32,12],[16, builtin('Number')],[33,17],[11],[32,14],[65,0],[16, builtin('__ecma262_MakeFullYear')],[34,21],[65,0],[32,15],[65,0],[32,16],[65,0],[16, builtin('__ecma262_MakeDay')],[65,0],[32,17],[65,0],[32,18],[65,0],[32,19],[65,0],[32,20],[65,0],[16, builtin('__ecma262_MakeTime')],[65,0],[16, builtin('__ecma262_MakeDate')],[65,0],[16, builtin('__ecma262_TimeClip')],[15]],
|
547
|
+
params: [124,127,124,127,124,127,124,127,124,127,124,127,124,127],
|
548
|
+
typedParams: true,
|
549
|
+
returns: [124],
|
550
|
+
returnType: 0,
|
551
|
+
locals: [124,124,124,124,124,124,124,124],
|
552
|
+
localNames: ["year","year#type","month","month#type","date","date#type","hours","hours#type","minutes","minutes#type","seconds","seconds#type","ms","ms#type","y","m","dt","h","min","s","milli","yr"],
|
553
|
+
};
|
527
554
|
this.__Porffor_date_allocate = {
|
528
555
|
wasm: (scope, { allocPage, builtin }) => [...number(allocPage(scope, 'bytestring: __Porffor_date_allocate/hack', 'i8') * pageSize, 124),[34,0],[252,3],[40,1,0],[184],[68,0,0,0,0,0,0,0,0],[97],[4,64],[32,0],[252,3],[65,1],[64,0],[26],[63,0],[65,1],[107],[65,128,128,4],[108],[184],[34,1],[252,3],[54,1,0],[11],[32,0],[252,3],[40,1,0],[184],[33,2],[32,0],[252,3],[32,2],[68,0,0,0,0,0,0,32,64],[160],[34,1],[252,3],[54,1,0],[32,2],[15]],
|
529
556
|
params: [],
|
@@ -552,7 +579,7 @@ export const BuiltinFuncs = function() {
|
|
552
579
|
localNames: ["ptr","ptr#type","val","val#type"],
|
553
580
|
};
|
554
581
|
this.Date$constructor = {
|
555
|
-
wasm: (scope, { allocPage, builtin }) => [[32,0],[32,1],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[32,2],[32,3],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[160],[32,4],[32,5],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[160],[32,6],[32,7],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[160],[32,8],[32,9],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[160],[32,10],[32,11],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[160],[32,12],[32,13],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[160],[33,14],[68,0,0,0,0,0,0,0,0],[33,15],[32,14],[68,0,0,0,0,0,0,0,0],[97],[4,64],[16, builtin('__Date_now')],[33,15],[5],[32,14],[68,0,0,0,0,0,0,240,63],[97],[4,64],[32,0],[33,16],[32,1],[33,17],[32,0],[32,1],[16, builtin('__Porffor_rawType')],[33,18],[68,0,0,0,0,0,0,0,0],[33,19],[32,18],[68,0,0,0,0,0,0,51,64],[97],[4,64],[32,16],[32,17],[16, builtin('__Porffor_date_read')],[33,19],[5],[32,18],[68,0,0,0,0,0,0,0,64],[97],[34,20],[69],[4,127],[32,18],[68,0,0,0,0,0,0,50,64],[97],[65,1],[33,21],[5],[32,20],[65,1],[33,21],[11],[4,64],[5],[32,16],[16, builtin('Number')],[33,19],[11],[11],[32,19],[65,0],[16, builtin('__ecma262_TimeClip')],[33,15],[5],[32,0],[16, builtin('Number')],[33,22],[32,2],[16, builtin('Number')],[33,23],[68,0,0,0,0,0,0,240,63],[33,24],[32,14],[68,0,0,0,0,0,0,0,64],[100],[4,64],[32,4],[16, builtin('Number')],[33,24],[11],[68,0,0,0,0,0,0,0,0],[33,25],[32,14],[68,0,0,0,0,0,0,8,64],[100],[4,64],[32,6],[16, builtin('Number')],[33,25],[11],[68,0,0,0,0,0,0,0,0],[33,26],[32,14],[68,0,0,0,0,0,0,16,64],[100],[4,64],[32,8],[16, builtin('Number')],[33,26],[11],[68,0,0,0,0,0,0,0,0],[33,27],[32,14],[68,0,0,0,0,0,0,20,64],[100],[4,64],[32,10],[16, builtin('Number')],[33,27],[11],[68,0,0,0,0,0,0,0,0],[33,28],[32,14],[68,0,0,0,0,0,0,24,64],[100],[4,64],[32,12],[16, builtin('Number')],[33,28],[11],[32,22],[65,0],[16, builtin('__ecma262_MakeFullYear')],[34,29],[65,0],[32,23],[65,0],[32,24],[65,0],[16, builtin('__ecma262_MakeDay')],[65,0],[32,25],[65,0],[32,26],[65,0],[32,27],[65,0],[32,28],[65,0],[16, builtin('__ecma262_MakeTime')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,30],[65,0],[16, builtin('__ecma262_UTC')],[65,0],[16, builtin('__ecma262_TimeClip')],[33,15],[11],[11],[16, builtin('__Porffor_date_allocate')],[34,31],[65,19],[32,15],[65,0],[16, builtin('__Porffor_date_write')],[33,21],[26],[32,31],[15]],
|
582
|
+
wasm: (scope, { allocPage, builtin }) => [[32,0],[32,1],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[32,2],[32,3],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[160],[32,4],[32,5],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[160],[32,6],[32,7],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[160],[32,8],[32,9],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[160],[32,10],[32,11],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[160],[32,12],[32,13],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[184],[160],[33,14],[68,0,0,0,0,0,0,0,0],[33,15],[32,14],[68,0,0,0,0,0,0,0,0],[97],[4,64],[16, builtin('__Date_now')],[33,15],[5],[32,14],[68,0,0,0,0,0,0,240,63],[97],[4,64],[32,0],[33,16],[32,1],[33,17],[32,0],[32,1],[16, builtin('__Porffor_rawType')],[33,18],[68,0,0,0,0,0,0,0,0],[33,19],[32,18],[68,0,0,0,0,0,0,51,64],[97],[4,64],[32,16],[32,17],[16, builtin('__Porffor_date_read')],[33,19],[5],[32,18],[68,0,0,0,0,0,0,0,64],[97],[34,20],[69],[4,127],[32,18],[68,0,0,0,0,0,0,50,64],[97],[65,1],[33,21],[5],[32,20],[65,1],[33,21],[11],[4,64],[32,16],[32,17],[16, builtin('__Date_parse')],[33,19],[5],[32,16],[16, builtin('Number')],[33,19],[11],[11],[32,19],[65,0],[16, builtin('__ecma262_TimeClip')],[33,15],[5],[32,0],[16, builtin('Number')],[33,22],[32,2],[16, builtin('Number')],[33,23],[68,0,0,0,0,0,0,240,63],[33,24],[32,14],[68,0,0,0,0,0,0,0,64],[100],[4,64],[32,4],[16, builtin('Number')],[33,24],[11],[68,0,0,0,0,0,0,0,0],[33,25],[32,14],[68,0,0,0,0,0,0,8,64],[100],[4,64],[32,6],[16, builtin('Number')],[33,25],[11],[68,0,0,0,0,0,0,0,0],[33,26],[32,14],[68,0,0,0,0,0,0,16,64],[100],[4,64],[32,8],[16, builtin('Number')],[33,26],[11],[68,0,0,0,0,0,0,0,0],[33,27],[32,14],[68,0,0,0,0,0,0,20,64],[100],[4,64],[32,10],[16, builtin('Number')],[33,27],[11],[68,0,0,0,0,0,0,0,0],[33,28],[32,14],[68,0,0,0,0,0,0,24,64],[100],[4,64],[32,12],[16, builtin('Number')],[33,28],[11],[32,22],[65,0],[16, builtin('__ecma262_MakeFullYear')],[34,29],[65,0],[32,23],[65,0],[32,24],[65,0],[16, builtin('__ecma262_MakeDay')],[65,0],[32,25],[65,0],[32,26],[65,0],[32,27],[65,0],[32,28],[65,0],[16, builtin('__ecma262_MakeTime')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,30],[65,0],[16, builtin('__ecma262_UTC')],[65,0],[16, builtin('__ecma262_TimeClip')],[33,15],[11],[11],[16, builtin('__Porffor_date_allocate')],[34,31],[65,19],[32,15],[65,0],[16, builtin('__Porffor_date_write')],[33,21],[26],[32,31],[15]],
|
556
583
|
params: [124,127,124,127,124,127,124,127,124,127,124,127,124,127],
|
557
584
|
typedParams: true,
|
558
585
|
returns: [124],
|
@@ -560,24 +587,6 @@ export const BuiltinFuncs = function() {
|
|
560
587
|
locals: [124,124,124,127,124,124,127,127,124,124,124,124,124,124,124,124,124,124],
|
561
588
|
localNames: ["v0","v0#type","v1","v1#type","v2","v2#type","v3","v3#type","v4","v4#type","v5","v5#type","v6","v6#type","numberOfArgs","dv","value","value#type","valueType","tv","logictmpi","#last_type","y","m","dt","h","min","s","milli","yr","finalDate","O"],
|
562
589
|
};
|
563
|
-
this.__Date_now = {
|
564
|
-
wasm: (scope, { allocPage, builtin }) => [[16,3],[16, builtin('__performance_now')],[160],[16, builtin('__Math_trunc')],[15]],
|
565
|
-
params: [],
|
566
|
-
typedParams: true,
|
567
|
-
returns: [124],
|
568
|
-
returnType: 0,
|
569
|
-
locals: [],
|
570
|
-
localNames: [],
|
571
|
-
};
|
572
|
-
this.__Date_UTC = {
|
573
|
-
wasm: (scope, { allocPage, builtin }) => [[32,0],[16, builtin('Number')],[33,14],[68,0,0,0,0,0,0,0,0],[33,15],[32,2],[32,3],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[4,64],[32,2],[16, builtin('Number')],[33,15],[11],[68,0,0,0,0,0,0,240,63],[33,16],[32,4],[32,5],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[4,64],[32,4],[16, builtin('Number')],[33,16],[11],[68,0,0,0,0,0,0,0,0],[33,17],[32,6],[32,7],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[4,64],[32,6],[16, builtin('Number')],[33,17],[11],[68,0,0,0,0,0,0,0,0],[33,18],[32,8],[32,9],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[4,64],[32,8],[16, builtin('Number')],[33,18],[11],[68,0,0,0,0,0,0,0,0],[33,19],[32,10],[32,11],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[4,64],[32,10],[16, builtin('Number')],[33,19],[11],[68,0,0,0,0,0,0,0,0],[33,20],[32,12],[32,13],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[98],[4,64],[32,12],[16, builtin('Number')],[33,17],[11],[32,14],[65,0],[16, builtin('__ecma262_MakeFullYear')],[34,21],[65,0],[32,15],[65,0],[32,16],[65,0],[16, builtin('__ecma262_MakeDay')],[65,0],[32,17],[65,0],[32,18],[65,0],[32,19],[65,0],[32,20],[65,0],[16, builtin('__ecma262_MakeTime')],[65,0],[16, builtin('__ecma262_MakeDate')],[65,0],[16, builtin('__ecma262_TimeClip')],[15]],
|
574
|
-
params: [124,127,124,127,124,127,124,127,124,127,124,127,124,127],
|
575
|
-
typedParams: true,
|
576
|
-
returns: [124],
|
577
|
-
returnType: 0,
|
578
|
-
locals: [124,124,124,124,124,124,124,124],
|
579
|
-
localNames: ["year","year#type","month","month#type","date","date#type","hours","hours#type","minutes","minutes#type","seconds","seconds#type","ms","ms#type","y","m","dt","h","min","s","milli","yr"],
|
580
|
-
};
|
581
590
|
this.___date_prototype_getDate = {
|
582
591
|
wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[34,2],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[32,2],[65,0],[16, builtin('__ecma262_LocalTime')],[65,0],[16, builtin('__ecma262_DateFromTime')],[65,0],[15]],
|
583
592
|
params: [124,127],
|
package/package.json
CHANGED