porffor 0.2.0-c1ed50d → 0.2.0-c56b8bf

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.
@@ -216,7 +216,7 @@ export const BuiltinFuncs = function() {
216
216
  };
217
217
 
218
218
 
219
- this.__console_log = {
219
+ this.__Porffor_print = {
220
220
  params: [ valtypeBinary, Valtype.i32 ],
221
221
  typedParams: true,
222
222
  locals: [ Valtype.i32, Valtype.i32 ],
@@ -368,10 +368,7 @@ export const BuiltinFuncs = function() {
368
368
  [ Opcodes.local_get, 0 ],
369
369
  [ Opcodes.call, importedFuncs.print ],
370
370
  ]
371
- }, Blocktype.void),
372
-
373
- ...char('\n'),
374
- [ Opcodes.call, importedFuncs.printChar ]
371
+ }, Blocktype.void)
375
372
  ]
376
373
  };
377
374
 
@@ -1697,6 +1697,7 @@ const generateCall = (scope, decl, _global, _name, unusedValue = false) => {
1697
1697
 
1698
1698
  protoBC[type] = generateCall(scope, {
1699
1699
  callee: {
1700
+ type: 'Identifier',
1700
1701
  name: x
1701
1702
  },
1702
1703
  arguments: [ target, ...decl.arguments ],
@@ -3581,6 +3582,39 @@ const internalConstrs = {
3581
3582
  type: TYPES.number,
3582
3583
  notConstr: true,
3583
3584
  length: 2
3585
+ },
3586
+
3587
+ __console_log: {
3588
+ generate: (scope, decl) => {
3589
+ const out = [];
3590
+
3591
+ for (let i = 0; i < decl.arguments.length; i++) {
3592
+ out.push(
3593
+ ...generateCall(scope, {
3594
+ callee: {
3595
+ type: 'Identifier',
3596
+ name: '__Porffor_print'
3597
+ },
3598
+ arguments: [ decl.arguments[i] ]
3599
+ }),
3600
+
3601
+ // print space
3602
+ ...number(32),
3603
+ [ Opcodes.call, importedFuncs.printChar ]
3604
+ );
3605
+ }
3606
+
3607
+ // print newline
3608
+ out.push(
3609
+ ...number(10),
3610
+ [ Opcodes.call, importedFuncs.printChar ]
3611
+ );
3612
+
3613
+ return out;
3614
+ },
3615
+ type: TYPES.undefined,
3616
+ notConstr: true,
3617
+ length: 0
3584
3618
  }
3585
3619
  };
3586
3620
 
@@ -596,6 +596,294 @@ export const BuiltinFuncs = function() {
596
596
  locals: [124],
597
597
  localNames: ["_this","_this#type","t"],
598
598
  };
599
+ this.___date_prototype_getDay = {
600
+ 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_WeekDay')],[65,0],[15]],
601
+ params: [124,127],
602
+ typedParams: true,
603
+ returns: [124,127],
604
+ typedReturns: true,
605
+ locals: [124],
606
+ localNames: ["_this","_this#type","t"],
607
+ };
608
+ this.___date_prototype_getFullYear = {
609
+ 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_YearFromTime')],[65,0],[15]],
610
+ params: [124,127],
611
+ typedParams: true,
612
+ returns: [124,127],
613
+ typedReturns: true,
614
+ locals: [124],
615
+ localNames: ["_this","_this#type","t"],
616
+ };
617
+ this.___date_prototype_getHours = {
618
+ 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_HourFromTime')],[65,0],[15]],
619
+ params: [124,127],
620
+ typedParams: true,
621
+ returns: [124,127],
622
+ typedReturns: true,
623
+ locals: [124],
624
+ localNames: ["_this","_this#type","t"],
625
+ };
626
+ this.___date_prototype_getMilliseconds = {
627
+ 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_msFromTime')],[65,0],[15]],
628
+ params: [124,127],
629
+ typedParams: true,
630
+ returns: [124,127],
631
+ typedReturns: true,
632
+ locals: [124],
633
+ localNames: ["_this","_this#type","t"],
634
+ };
635
+ this.___date_prototype_getMinutes = {
636
+ 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_MinFromTime')],[65,0],[15]],
637
+ params: [124,127],
638
+ typedParams: true,
639
+ returns: [124,127],
640
+ typedReturns: true,
641
+ locals: [124],
642
+ localNames: ["_this","_this#type","t"],
643
+ };
644
+ this.___date_prototype_getMonth = {
645
+ 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_MonthFromTime')],[65,0],[15]],
646
+ params: [124,127],
647
+ typedParams: true,
648
+ returns: [124,127],
649
+ typedReturns: true,
650
+ locals: [124],
651
+ localNames: ["_this","_this#type","t"],
652
+ };
653
+ this.___date_prototype_getSeconds = {
654
+ 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_SecFromTime')],[65,0],[15]],
655
+ params: [124,127],
656
+ typedParams: true,
657
+ returns: [124,127],
658
+ typedReturns: true,
659
+ locals: [124],
660
+ localNames: ["_this","_this#type","t"],
661
+ };
662
+ this.___date_prototype_getTime = {
663
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[65,0],[15]],
664
+ params: [124,127],
665
+ typedParams: true,
666
+ returns: [124,127],
667
+ typedReturns: true,
668
+ locals: [],
669
+ localNames: ["_this","_this#type"],
670
+ };
671
+ this.___date_prototype_getTimezoneOffset = {
672
+ 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],[32,2],[65,0],[16, builtin('__ecma262_LocalTime')],[161],[68,0,0,0,0,0,76,237,64],[163],[65,0],[15]],
673
+ params: [124,127],
674
+ typedParams: true,
675
+ returns: [124,127],
676
+ typedReturns: true,
677
+ locals: [124],
678
+ localNames: ["_this","_this#type","t"],
679
+ };
680
+ this.___date_prototype_getUTCDate = {
681
+ 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_DateFromTime')],[65,0],[15]],
682
+ params: [124,127],
683
+ typedParams: true,
684
+ returns: [124,127],
685
+ typedReturns: true,
686
+ locals: [124],
687
+ localNames: ["_this","_this#type","t"],
688
+ };
689
+ this.___date_prototype_getUTCDay = {
690
+ 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_WeekDay')],[65,0],[15]],
691
+ params: [124,127],
692
+ typedParams: true,
693
+ returns: [124,127],
694
+ typedReturns: true,
695
+ locals: [124],
696
+ localNames: ["_this","_this#type","t"],
697
+ };
698
+ this.___date_prototype_getUTCFullYear = {
699
+ 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_YearFromTime')],[65,0],[15]],
700
+ params: [124,127],
701
+ typedParams: true,
702
+ returns: [124,127],
703
+ typedReturns: true,
704
+ locals: [124],
705
+ localNames: ["_this","_this#type","t"],
706
+ };
707
+ this.___date_prototype_getUTCHours = {
708
+ 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_HourFromTime')],[65,0],[15]],
709
+ params: [124,127],
710
+ typedParams: true,
711
+ returns: [124,127],
712
+ typedReturns: true,
713
+ locals: [124],
714
+ localNames: ["_this","_this#type","t"],
715
+ };
716
+ this.___date_prototype_getUTCMilliseconds = {
717
+ 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_msFromTime')],[65,0],[15]],
718
+ params: [124,127],
719
+ typedParams: true,
720
+ returns: [124,127],
721
+ typedReturns: true,
722
+ locals: [124],
723
+ localNames: ["_this","_this#type","t"],
724
+ };
725
+ this.___date_prototype_getUTCMinutes = {
726
+ 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_MinFromTime')],[65,0],[15]],
727
+ params: [124,127],
728
+ typedParams: true,
729
+ returns: [124,127],
730
+ typedReturns: true,
731
+ locals: [124],
732
+ localNames: ["_this","_this#type","t"],
733
+ };
734
+ this.___date_prototype_getUTCMonth = {
735
+ 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_MonthFromTime')],[65,0],[15]],
736
+ params: [124,127],
737
+ typedParams: true,
738
+ returns: [124,127],
739
+ typedReturns: true,
740
+ locals: [124],
741
+ localNames: ["_this","_this#type","t"],
742
+ };
743
+ this.___date_prototype_getUTCSeconds = {
744
+ 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_SecFromTime')],[65,0],[15]],
745
+ params: [124,127],
746
+ typedParams: true,
747
+ returns: [124,127],
748
+ typedReturns: true,
749
+ locals: [124],
750
+ localNames: ["_this","_this#type","t"],
751
+ };
752
+ this.___date_prototype_setDate = {
753
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,4],[32,2],[16, builtin('Number')],[33,5],[32,4],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[32,4],[65,0],[16, builtin('__ecma262_LocalTime')],[34,4],[65,0],[16, builtin('__ecma262_YearFromTime')],[65,0],[32,4],[65,0],[16, builtin('__ecma262_MonthFromTime')],[65,0],[32,5],[65,0],[16, builtin('__ecma262_MakeDay')],[65,0],[32,4],[65,0],[16, builtin('__ecma262_TimeWithinDay')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,6],[65,0],[16, builtin('__ecma262_UTC')],[65,0],[16, builtin('__ecma262_TimeClip')],[33,7],[32,0],[65,19],[32,7],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,7],[65,0],[15]],
754
+ params: [124,127,124,127],
755
+ typedParams: true,
756
+ returns: [124,127],
757
+ typedReturns: true,
758
+ locals: [124,124,124,124,127],
759
+ localNames: ["_this","_this#type","date","date#type","t","dt","newDate","u","#last_type"],
760
+ };
761
+ this.___date_prototype_setFullYear = {
762
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,8],[32,2],[16, builtin('Number')],[33,9],[32,8],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,0,0],[33,8],[5],[32,8],[65,0],[16, builtin('__ecma262_LocalTime')],[33,8],[11],[32,4],[32,5],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[97],[4,64],[32,8],[65,0],[16, builtin('__ecma262_MonthFromTime')],[33,10],[5],[32,4],[16, builtin('Number')],[33,10],[11],[32,6],[32,7],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[97],[4,64],[32,8],[65,0],[16, builtin('__ecma262_DateFromTime')],[33,11],[5],[32,6],[16, builtin('Number')],[33,11],[11],[32,9],[65,0],[32,10],[65,0],[32,11],[65,0],[16, builtin('__ecma262_MakeDay')],[65,0],[32,8],[65,0],[16, builtin('__ecma262_TimeWithinDay')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,12],[65,0],[16, builtin('__ecma262_UTC')],[65,0],[16, builtin('__ecma262_TimeClip')],[33,13],[32,0],[65,19],[32,13],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,13],[65,0],[15]],
763
+ params: [124,127,124,127,124,127,124,127],
764
+ typedParams: true,
765
+ returns: [124,127],
766
+ typedReturns: true,
767
+ locals: [124,124,124,124,124,124,127],
768
+ localNames: ["_this","_this#type","year","year#type","month","month#type","date","date#type","t","y","m","dt","newDate","u","#last_type"],
769
+ };
770
+ this.___date_prototype_setHours = {
771
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,10],[32,2],[16, builtin('Number')],[33,11],[32,10],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[32,10],[65,0],[16, builtin('__ecma262_LocalTime')],[33,10],[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,12],[5],[32,10],[65,0],[16, builtin('__ecma262_MinFromTime')],[33,12],[11],[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,13],[5],[32,10],[65,0],[16, builtin('__ecma262_SecFromTime')],[33,13],[11],[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,14],[5],[32,10],[65,0],[16, builtin('__ecma262_msFromTime')],[33,14],[11],[32,10],[65,0],[16, builtin('__ecma262_Day')],[65,0],[32,11],[65,0],[32,12],[65,0],[32,13],[65,0],[32,14],[65,0],[16, builtin('__ecma262_MakeTime')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,15],[65,0],[16, builtin('__ecma262_UTC')],[65,0],[16, builtin('__ecma262_TimeClip')],[33,16],[32,0],[65,19],[32,16],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,16],[65,0],[15]],
772
+ params: [124,127,124,127,124,127,124,127,124,127],
773
+ typedParams: true,
774
+ returns: [124,127],
775
+ typedReturns: true,
776
+ locals: [124,124,124,124,124,124,124,127],
777
+ localNames: ["_this","_this#type","hour","hour#type","min","min#type","sec","sec#type","ms","ms#type","t","h","m","s","milli","date","u","#last_type"],
778
+ };
779
+ this.___date_prototype_setMilliseconds = {
780
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,4],[32,2],[16, builtin('Number')],[33,5],[32,4],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[32,4],[65,0],[16, builtin('__ecma262_LocalTime')],[34,4],[65,0],[16, builtin('__ecma262_HourFromTime')],[65,0],[32,4],[65,0],[16, builtin('__ecma262_MinFromTime')],[65,0],[32,4],[65,0],[16, builtin('__ecma262_SecFromTime')],[65,0],[32,5],[65,0],[16, builtin('__ecma262_MakeTime')],[33,6],[32,4],[65,0],[16, builtin('__ecma262_Day')],[65,0],[32,6],[65,0],[16, builtin('__ecma262_MakeDate')],[65,0],[16, builtin('__ecma262_UTC')],[65,0],[16, builtin('__ecma262_TimeClip')],[33,7],[32,0],[65,19],[32,7],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,7],[65,0],[15]],
781
+ params: [124,127,124,127],
782
+ typedParams: true,
783
+ returns: [124,127],
784
+ typedReturns: true,
785
+ locals: [124,124,124,124,127],
786
+ localNames: ["_this","_this#type","ms","ms#type","t","milli","time","u","#last_type"],
787
+ };
788
+ this.___date_prototype_setMinutes = {
789
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,8],[32,2],[16, builtin('Number')],[33,9],[32,8],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[32,8],[65,0],[16, builtin('__ecma262_LocalTime')],[33,8],[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,10],[5],[32,8],[65,0],[16, builtin('__ecma262_SecFromTime')],[33,10],[11],[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,11],[5],[32,8],[65,0],[16, builtin('__ecma262_msFromTime')],[33,11],[11],[32,8],[65,0],[16, builtin('__ecma262_Day')],[65,0],[32,8],[65,0],[16, builtin('__ecma262_HourFromTime')],[65,0],[32,9],[65,0],[32,10],[65,0],[32,11],[65,0],[16, builtin('__ecma262_MakeTime')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,12],[65,0],[16, builtin('__ecma262_UTC')],[65,0],[16, builtin('__ecma262_TimeClip')],[33,13],[32,0],[65,19],[32,13],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,13],[65,0],[15]],
790
+ params: [124,127,124,127,124,127,124,127],
791
+ typedParams: true,
792
+ returns: [124,127],
793
+ typedReturns: true,
794
+ locals: [124,124,124,124,124,124,127],
795
+ localNames: ["_this","_this#type","min","min#type","sec","sec#type","ms","ms#type","t","m","s","milli","date","u","#last_type"],
796
+ };
797
+ this.___date_prototype_setMonth = {
798
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,6],[32,2],[16, builtin('Number')],[33,7],[32,6],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[32,6],[65,0],[16, builtin('__ecma262_LocalTime')],[33,6],[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,8],[5],[32,6],[65,0],[16, builtin('__ecma262_DateFromTime')],[33,8],[11],[32,6],[65,0],[16, builtin('__ecma262_YearFromTime')],[65,0],[32,7],[65,0],[32,8],[65,0],[16, builtin('__ecma262_MakeDay')],[65,0],[32,6],[65,0],[16, builtin('__ecma262_TimeWithinDay')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,9],[65,0],[16, builtin('__ecma262_UTC')],[65,0],[16, builtin('__ecma262_TimeClip')],[33,10],[32,0],[65,19],[32,10],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,10],[65,0],[15]],
799
+ params: [124,127,124,127,124,127],
800
+ typedParams: true,
801
+ returns: [124,127],
802
+ typedReturns: true,
803
+ locals: [124,124,124,124,124,127],
804
+ localNames: ["_this","_this#type","month","month#type","date","date#type","t","m","dt","newDate","u","#last_type"],
805
+ };
806
+ this.___date_prototype_setSeconds = {
807
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,6],[32,2],[16, builtin('Number')],[33,7],[32,6],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[32,6],[65,0],[16, builtin('__ecma262_LocalTime')],[33,6],[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,8],[5],[32,6],[65,0],[16, builtin('__ecma262_msFromTime')],[33,8],[11],[32,6],[65,0],[16, builtin('__ecma262_Day')],[65,0],[32,6],[65,0],[16, builtin('__ecma262_HourFromTime')],[65,0],[32,6],[65,0],[16, builtin('__ecma262_MinFromTime')],[65,0],[32,7],[65,0],[32,8],[65,0],[16, builtin('__ecma262_MakeTime')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,9],[65,0],[16, builtin('__ecma262_UTC')],[65,0],[16, builtin('__ecma262_TimeClip')],[33,10],[32,0],[65,19],[32,10],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,10],[65,0],[15]],
808
+ params: [124,127,124,127,124,127],
809
+ typedParams: true,
810
+ returns: [124,127],
811
+ typedReturns: true,
812
+ locals: [124,124,124,124,124,127],
813
+ localNames: ["_this","_this#type","sec","sec#type","ms","ms#type","t","s","milli","date","u","#last_type"],
814
+ };
815
+ this.___date_prototype_setTime = {
816
+ wasm: (scope, { allocPage, builtin }) => [[32,2],[16, builtin('Number')],[34,4],[65,0],[16, builtin('__ecma262_TimeClip')],[33,5],[32,0],[65,19],[32,5],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,5],[65,0],[15]],
817
+ params: [124,127,124,127],
818
+ typedParams: true,
819
+ returns: [124,127],
820
+ typedReturns: true,
821
+ locals: [124,124,127],
822
+ localNames: ["_this","_this#type","time","time#type","t","v","#last_type"],
823
+ };
824
+ this.___date_prototype_setUTCDate = {
825
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,4],[32,2],[16, builtin('Number')],[33,5],[32,4],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[32,4],[65,0],[16, builtin('__ecma262_YearFromTime')],[65,0],[32,4],[65,0],[16, builtin('__ecma262_MonthFromTime')],[65,0],[32,5],[65,0],[16, builtin('__ecma262_MakeDay')],[65,0],[32,4],[65,0],[16, builtin('__ecma262_TimeWithinDay')],[65,0],[16, builtin('__ecma262_MakeDate')],[33,6],[65,0],[33,7],[32,6],[32,7],[16, builtin('__ecma262_TimeClip')],[33,8],[32,0],[65,19],[32,8],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,8],[65,0],[15]],
826
+ params: [124,127,124,127],
827
+ typedParams: true,
828
+ returns: [124,127],
829
+ typedReturns: true,
830
+ locals: [124,124,124,127,124,127],
831
+ localNames: ["_this","_this#type","date","date#type","t","dt","newDate","newDate#type","v","#last_type"],
832
+ };
833
+ this.___date_prototype_setUTCFullYear = {
834
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[34,8],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,0,0],[33,8],[11],[32,2],[16, builtin('Number')],[33,9],[32,4],[32,5],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[97],[4,64],[32,8],[65,0],[16, builtin('__ecma262_MonthFromTime')],[33,10],[5],[32,4],[16, builtin('Number')],[33,10],[11],[32,6],[32,7],[16, builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,8,64],[97],[4,64],[32,8],[65,0],[16, builtin('__ecma262_DateFromTime')],[33,11],[5],[32,6],[16, builtin('Number')],[33,11],[11],[32,9],[65,0],[32,10],[65,0],[32,11],[65,0],[16, builtin('__ecma262_MakeDay')],[65,0],[32,8],[65,0],[16, builtin('__ecma262_TimeWithinDay')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,12],[65,0],[16, builtin('__ecma262_TimeClip')],[33,13],[32,0],[65,19],[32,13],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,13],[65,0],[15]],
835
+ params: [124,127,124,127,124,127,124,127],
836
+ typedParams: true,
837
+ returns: [124,127],
838
+ typedReturns: true,
839
+ locals: [124,124,124,124,124,124,127],
840
+ localNames: ["_this","_this#type","year","year#type","month","month#type","date","date#type","t","y","m","dt","newDate","v","#last_type"],
841
+ };
842
+ this.___date_prototype_setUTCHours = {
843
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,10],[32,2],[16, builtin('Number')],[33,11],[32,10],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[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,12],[5],[32,10],[65,0],[16, builtin('__ecma262_MinFromTime')],[33,12],[11],[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,13],[5],[32,10],[65,0],[16, builtin('__ecma262_SecFromTime')],[33,13],[11],[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,14],[5],[32,10],[65,0],[16, builtin('__ecma262_msFromTime')],[33,14],[11],[32,10],[65,0],[16, builtin('__ecma262_Day')],[65,0],[32,11],[65,0],[32,12],[65,0],[32,13],[65,0],[32,14],[65,0],[16, builtin('__ecma262_MakeTime')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,15],[65,0],[16, builtin('__ecma262_TimeClip')],[33,16],[32,0],[65,19],[32,16],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,16],[65,0],[15]],
844
+ params: [124,127,124,127,124,127,124,127,124,127],
845
+ typedParams: true,
846
+ returns: [124,127],
847
+ typedReturns: true,
848
+ locals: [124,124,124,124,124,124,124,127],
849
+ localNames: ["_this","_this#type","hour","hour#type","min","min#type","sec","sec#type","ms","ms#type","t","h","m","s","milli","date","v","#last_type"],
850
+ };
851
+ this.___date_prototype_setUTCMilliseconds = {
852
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,4],[32,2],[16, builtin('Number')],[33,5],[32,4],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[32,4],[65,0],[16, builtin('__ecma262_HourFromTime')],[65,0],[32,4],[65,0],[16, builtin('__ecma262_MinFromTime')],[65,0],[32,4],[65,0],[16, builtin('__ecma262_SecFromTime')],[65,0],[32,5],[65,0],[16, builtin('__ecma262_MakeTime')],[33,6],[32,4],[65,0],[16, builtin('__ecma262_Day')],[65,0],[32,6],[65,0],[16, builtin('__ecma262_MakeDate')],[65,0],[16, builtin('__ecma262_TimeClip')],[33,7],[32,0],[65,19],[32,7],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,7],[65,0],[15]],
853
+ params: [124,127,124,127],
854
+ typedParams: true,
855
+ returns: [124,127],
856
+ typedReturns: true,
857
+ locals: [124,124,124,124,127],
858
+ localNames: ["_this","_this#type","ms","ms#type","t","milli","time","v","#last_type"],
859
+ };
860
+ this.___date_prototype_setUTCMinutes = {
861
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,8],[32,2],[16, builtin('Number')],[33,9],[32,8],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[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,10],[5],[32,8],[65,0],[16, builtin('__ecma262_SecFromTime')],[33,10],[11],[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,11],[5],[32,8],[65,0],[16, builtin('__ecma262_msFromTime')],[33,11],[11],[32,8],[65,0],[16, builtin('__ecma262_Day')],[65,0],[32,8],[65,0],[16, builtin('__ecma262_HourFromTime')],[65,0],[32,9],[65,0],[32,10],[65,0],[32,11],[65,0],[16, builtin('__ecma262_MakeTime')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,12],[65,0],[16, builtin('__ecma262_TimeClip')],[33,13],[32,0],[65,19],[32,13],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,13],[65,0],[15]],
862
+ params: [124,127,124,127,124,127,124,127],
863
+ typedParams: true,
864
+ returns: [124,127],
865
+ typedReturns: true,
866
+ locals: [124,124,124,124,124,124,127],
867
+ localNames: ["_this","_this#type","min","min#type","sec","sec#type","ms","ms#type","t","m","s","milli","date","v","#last_type"],
868
+ };
869
+ this.___date_prototype_setUTCMonth = {
870
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,6],[32,2],[16, builtin('Number')],[33,7],[32,6],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[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,8],[5],[32,6],[65,0],[16, builtin('__ecma262_DateFromTime')],[33,8],[11],[32,6],[65,0],[16, builtin('__ecma262_YearFromTime')],[65,0],[32,7],[65,0],[32,8],[65,0],[16, builtin('__ecma262_MakeDay')],[65,0],[32,6],[65,0],[16, builtin('__ecma262_TimeWithinDay')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,9],[65,0],[16, builtin('__ecma262_TimeClip')],[33,10],[32,0],[65,19],[32,10],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,10],[65,0],[15]],
871
+ params: [124,127,124,127,124,127],
872
+ typedParams: true,
873
+ returns: [124,127],
874
+ typedReturns: true,
875
+ locals: [124,124,124,124,124,127],
876
+ localNames: ["_this","_this#type","month","month#type","date","date#type","t","m","dt","newDate","v","#last_type"],
877
+ };
878
+ this.___date_prototype_setUTCSeconds = {
879
+ wasm: (scope, { allocPage, builtin }) => [[32,0],[65,19],[16, builtin('__Porffor_date_read')],[33,6],[32,2],[16, builtin('Number')],[33,7],[32,6],[16, builtin('__Number_isNaN')],[252,3],[4,64],[68,0,0,0,0,0,0,248,127],[65,0],[15],[11],[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,8],[5],[32,6],[65,0],[16, builtin('__ecma262_msFromTime')],[33,8],[11],[32,6],[65,0],[16, builtin('__ecma262_Day')],[65,0],[32,6],[65,0],[16, builtin('__ecma262_HourFromTime')],[65,0],[32,6],[65,0],[16, builtin('__ecma262_MinFromTime')],[65,0],[32,7],[65,0],[32,8],[65,0],[16, builtin('__ecma262_MakeTime')],[65,0],[16, builtin('__ecma262_MakeDate')],[34,9],[65,0],[16, builtin('__ecma262_TimeClip')],[33,10],[32,0],[65,19],[32,10],[65,0],[16, builtin('__Porffor_date_write')],[26],[26],[32,10],[65,0],[15]],
880
+ params: [124,127,124,127,124,127],
881
+ typedParams: true,
882
+ returns: [124,127],
883
+ typedReturns: true,
884
+ locals: [124,124,124,124,124,127],
885
+ localNames: ["_this","_this#type","sec","sec#type","ms","ms#type","t","s","milli","date","v","#last_type"],
886
+ };
599
887
  this.escape = {
600
888
  wasm: (scope, { allocPage, builtin }) => [...number(allocPage(scope, 'escape | bytestring: lut', 'i8') * pageSize, 127),[33,2],[32,0],[40,1,0],[34,3],[33,4],[32,0],[33,5],[32,1],[65,18],[70],[4,64],[32,5],[32,3],[106],[33,6],[3,64],[32,5],[32,6],[72],[4,64],[32,5],[32,5],[65,1],[106],[33,5],[45,0,4],[34,7],[65,128,1],[72],[4,64],[32,2],[32,7],[106],[45,0,4],[4,64],[12,3],[11],[11],[32,4],[65,2],[106],[33,4],[12,1],[11],[11],[32,4],[32,3],[70],[4,64],[32,0],[15],[11],...number(allocPage(scope, 'escape | bytestring: output', 'i8') * pageSize, 127),[34,8],[32,4],[34,9],[54,1,0],[32,0],[33,5],[32,8],[33,10],[3,64],[32,5],[32,6],[72],[4,64],[32,5],[32,5],[65,1],[106],[33,5],[45,0,4],[34,7],[65,128,1],[72],[4,64],[32,2],[32,7],[106],[45,0,4],[4,64],[32,10],[32,10],[65,1],[106],[33,10],[32,7],[58,0,4],[12,3],[11],[11],[32,10],[32,10],[65,1],[106],[33,10],[65,37],[58,0,4],[32,7],[65,15],[113],[65,48],[106],[34,11],[65,57],[74],[4,64],[32,11],[65,7],[106],[33,11],[11],[32,7],[65,4],[117],[65,48],[106],[34,12],[65,57],[74],[4,64],[32,12],[65,7],[106],[33,12],[11],[32,10],[32,10],[65,1],[106],[33,10],[32,12],[58,0,4],[32,10],[32,10],[65,1],[106],[33,10],[32,11],[58,0,4],[12,1],[11],[11],[32,8],[15],[11],[32,5],[32,3],[65,2],[108],[106],[33,6],[3,64],[32,5],[32,6],[72],[4,64],[32,5],[47,0,4],[33,7],[32,5],[65,2],[106],[33,5],[32,7],[65,128,1],[72],[4,64],[32,2],[32,7],[106],[45,0,4],[4,64],[12,3],[11],[11],[32,7],[65,128,2],[72],[4,64],[32,4],[65,2],[106],[33,4],[5],[32,4],[65,5],[106],[33,4],[11],[12,1],[11],[11],[32,4],[32,3],[70],[4,64],[32,0],[15],[11],[65,0],[65,0],[54,1,128,128,4],[65,128,128,4],[34,8],[32,4],[34,9],[54,1,0],[32,0],[33,5],[32,8],[33,10],[3,64],[32,5],[32,6],[72],[4,64],[32,5],[47,0,4],[33,7],[32,5],[65,2],[106],[33,5],[32,7],[65,128,1],[72],[4,64],[32,2],[32,7],[106],[45,0,4],[4,64],[32,10],[32,10],[65,1],[106],[33,10],[32,7],[58,0,4],[12,3],[11],[11],[32,7],[65,128,2],[72],[4,64],[32,10],[32,10],[65,1],[106],[33,10],[65,37],[58,0,4],[32,7],[65,15],[113],[65,48],[106],[34,11],[65,57],[74],[4,64],[32,11],[65,7],[106],[33,11],[11],[32,7],[65,4],[117],[65,48],[106],[34,12],[65,57],[74],[4,64],[32,12],[65,7],[106],[33,12],[11],[32,10],[32,10],[65,1],[106],[33,10],[32,12],[58,0,4],[32,10],[32,10],[65,1],[106],[33,10],[32,11],[58,0,4],[5],[32,10],[65,165,234,1],[59,0,4],[32,10],[65,2],[106],[33,10],[32,7],[65,12],[117],[65,15],[113],[65,48],[106],[34,13],[65,57],[74],[4,64],[32,13],[65,7],[106],[33,13],[11],[32,10],[32,10],[65,1],[106],[33,10],[32,13],[58,0,4],[32,7],[65,8],[117],[65,15],[113],[65,48],[106],[34,13],[65,57],[74],[4,64],[32,13],[65,7],[106],[33,13],[11],[32,10],[32,10],[65,1],[106],[33,10],[32,13],[58,0,4],[32,7],[65,4],[117],[65,15],[113],[65,48],[106],[34,13],[65,57],[74],[4,64],[32,13],[65,7],[106],[33,13],[11],[32,10],[32,10],[65,1],[106],[33,10],[32,13],[58,0,4],[32,7],[65,15],[113],[65,48],[106],[34,13],[65,57],[74],[4,64],[32,13],[65,7],[106],[33,13],[11],[32,10],[32,10],[65,1],[106],[33,10],[32,13],[58,0,4],[11],[12,1],[11],[11],[32,8],[15]],
601
889
  params: [127,127],
package/compiler/index.js CHANGED
@@ -14,8 +14,7 @@ const logFuncs = (funcs, globals, exceptions) => {
14
14
 
15
15
  const startIndex = funcs.sort((a, b) => a.index - b.index)[0].index;
16
16
  for (const f of funcs) {
17
- // console.log(`${underline(f.name)} (${f.index - startIndex})`);
18
- console.log(`${underline(f.name)} (${f.index})`);
17
+ console.log(`${underline(f.name)} (${f.index - startIndex})`);
19
18
 
20
19
  console.log(`params: ${f.params.map((_, i) => Object.keys(f.locals)[Object.values(f.locals).indexOf(Object.values(f.locals).find(x => x.idx === i))]).join(', ')}`);
21
20
  console.log(`returns: ${f.returns.length > 0 ? true : false}`);
package/compiler/prefs.js CHANGED
@@ -1,4 +1,4 @@
1
- const onByDefault = [ 'bytestring', 'aotPointerOpt' ];
1
+ const onByDefault = [ 'bytestring', 'aotPointerOpt', 'treeshakeWasmImports' ];
2
2
 
3
3
  let cache = {};
4
4
  const obj = new Proxy({}, {
package/fib.js ADDED
@@ -0,0 +1,7 @@
1
+ export const fib = n => {
2
+ if (n < 2) {
3
+ return n;
4
+ } else {
5
+ return fib(n - 1) + fib(n - 2);
6
+ }
7
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "porffor",
3
3
  "description": "a basic experimental wip aot optimizing js -> wasm engine/compiler/runtime in js",
4
- "version": "0.2.0-c1ed50d",
4
+ "version": "0.2.0-c56b8bf",
5
5
  "author": "CanadaHonk",
6
6
  "license": "MIT",
7
7
  "scripts": {
package/runner/index.js CHANGED
@@ -17,6 +17,16 @@ if (process.argv.includes('-compile-hints')) {
17
17
  // --experimental-wasm-return-call (on by default)
18
18
  }
19
19
 
20
+ if (process.argv.includes('--help')) {
21
+ // description + version
22
+ console.log(`\x1B[1m\x1B[35mPorffor\x1B[0m is a JavaScript engine/runtime/compiler. \x1B[90m(${(await import('./version.js')).default})\x1B[0m`);
23
+
24
+ // basic usage
25
+ // subcommands
26
+
27
+ process.exit(0);
28
+ }
29
+
20
30
  let file = process.argv.slice(2).find(x => x[0] !== '-');
21
31
  if (['run', 'wasm', 'native', 'c', 'profile', 'debug', 'debug-wasm'].includes(file)) {
22
32
  if (file === 'profile') {