functionalscript 0.41.0 → 0.43.0

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.
Files changed (60) hide show
  1. package/fjs/bnf/data/module.f.d.ts +2 -2
  2. package/fjs/bnf/ll1/module.f.d.ts +1 -1
  3. package/fjs/bnf/module.f.d.ts +1 -1
  4. package/fjs/cas/evo/module.f.d.ts +1 -1
  5. package/fjs/ci/config/module.f.d.ts +3 -3
  6. package/fjs/ci/config/module.f.js +3 -3
  7. package/fjs/ci/deno/module.f.d.ts +8 -0
  8. package/fjs/ci/deno/module.f.js +9 -1
  9. package/fjs/ci/deno/proof.f.d.ts +5 -0
  10. package/fjs/ci/deno/proof.f.js +26 -0
  11. package/fjs/ci/proof.f.js +3 -2
  12. package/fjs/dev/module.f.d.ts +16 -5
  13. package/fjs/dev/module.f.js +38 -7
  14. package/fjs/dev/package_json/module.f.js +7 -4
  15. package/fjs/dev/proof.f.js +10 -1
  16. package/fjs/djs/parser/module.f.js +13 -3
  17. package/fjs/djs/parser/proof.f.d.ts +1 -0
  18. package/fjs/djs/parser/proof.f.js +26 -0
  19. package/fjs/djs/tokenizer/proof.f.js +11 -4
  20. package/fjs/effects/node/module.f.d.ts +2 -2
  21. package/fjs/emergent_testing/proof.f.js +20 -3
  22. package/fjs/fsm/module.f.d.ts +1 -1
  23. package/fjs/js/tokenizer/proof.f.js +7 -0
  24. package/fjs/mcp/cas/module.f.js +4 -1
  25. package/fjs/mcp/evo/proof.f.js +6 -1
  26. package/fjs/mcp/proof.f.js +37 -18
  27. package/fjs/media/html/module.f.d.ts +1 -1
  28. package/fjs/media/json/module.f.d.ts +15 -1
  29. package/fjs/media/json/module.f.js +17 -1
  30. package/fjs/media/json/parser/module.f.js +13 -3
  31. package/fjs/media/json/parser/proof.f.d.ts +1 -0
  32. package/fjs/media/json/parser/proof.f.js +37 -1
  33. package/fjs/media/json/proof.f.d.ts +4 -0
  34. package/fjs/media/json/proof.f.js +14 -2
  35. package/fjs/media/json/serializer/module.f.d.ts +4 -0
  36. package/fjs/media/json/serializer/module.f.js +39 -2
  37. package/fjs/media/json/serializer/proof.f.js +32 -8
  38. package/fjs/media/module.f.d.ts +92 -10
  39. package/fjs/media/module.f.js +73 -8
  40. package/fjs/media/proof.f.d.ts +10 -0
  41. package/fjs/media/proof.f.js +79 -10
  42. package/fjs/media/revision/module.f.d.ts +9 -1
  43. package/fjs/media/revision/module.f.js +14 -5
  44. package/fjs/protocol/mcp/stdio/module.f.js +2 -5
  45. package/fjs/text/utf16/module.f.d.ts +24 -0
  46. package/fjs/text/utf16/module.f.js +24 -0
  47. package/fjs/text/utf16/proof.f.d.ts +1 -0
  48. package/fjs/text/utf16/proof.f.js +10 -1
  49. package/fjs/types/object/module.f.d.ts +31 -13
  50. package/fjs/types/object/module.f.js +4 -3
  51. package/fjs/types/object/proof.f.d.ts +0 -14
  52. package/fjs/types/object/proof.f.js +0 -4
  53. package/fjs/types/rtti/common/module.f.d.ts +2 -2
  54. package/fjs/types/rtti/module.f.d.ts +1 -1
  55. package/fjs/types/rtti/ts/module.f.d.ts +1 -1
  56. package/fjs/types/rtti/validate/proof.f.d.ts +2 -0
  57. package/fjs/types/rtti/validate/proof.f.js +58 -0
  58. package/nanvm-lib/tests/proof.f.d.ts +9 -0
  59. package/nanvm-lib/tests/proof.f.js +58 -7
  60. package/package.json +2 -2
@@ -88,6 +88,15 @@ export declare const proof: {
88
88
  };
89
89
  function: () => void;
90
90
  };
91
+ mul: () => {
92
+ nullish: () => void;
93
+ boolean: () => void;
94
+ number: () => void;
95
+ bigint: () => void;
96
+ string: () => void;
97
+ array: () => void;
98
+ object: () => void;
99
+ };
91
100
  stringCoercion: {
92
101
  number: () => void;
93
102
  bool: () => void;
@@ -1,18 +1,19 @@
1
+ import { assert } from '../../fjs/asserts/module.f.js';
1
2
  const { is } = Object;
2
3
  const ois = (a) => (b) => {
3
- if (is(a, b)) { }
4
- else {
5
- throw [a, 'is', b];
6
- }
4
+ assert(is(a, b), [a, 'is', b]);
7
5
  };
8
6
  const { isNaN } = Number;
9
7
  const nanRes = (op) => (n) => {
10
8
  const result = op(n);
11
- if (!isNaN(result)) {
12
- throw result;
13
- }
9
+ assert(isNaN(result), result);
14
10
  };
15
11
  const stringCoercion = String;
12
+ const multiply = (a) => (b) => a * b;
13
+ const multiplyEq = (a) => (b) => (expected) => {
14
+ ois(multiply(a)(b))(expected);
15
+ ois(multiply(b)(a))(expected);
16
+ };
16
17
  export const proof = {
17
18
  eq: () => {
18
19
  const e = (a) => (b) => {
@@ -174,6 +175,56 @@ export const proof = {
174
175
  function: () => nan(op(() => { }))
175
176
  };
176
177
  },
178
+ mul: () => {
179
+ return {
180
+ nullish: () => {
181
+ multiplyEq(null)(null)(0);
182
+ multiplyEq(null)(0)(0);
183
+ multiplyEq(undefined)(0)(NaN);
184
+ },
185
+ boolean: () => {
186
+ multiplyEq(true)(0)(0);
187
+ multiplyEq(true)(1)(1);
188
+ multiplyEq(true)(10)(10);
189
+ multiplyEq(false)(0)(0);
190
+ multiplyEq(false)(1)(0);
191
+ multiplyEq(false)(10)(0);
192
+ },
193
+ number: () => {
194
+ multiplyEq(0)(0)(0);
195
+ multiplyEq(0)(1)(0);
196
+ multiplyEq(1)(1)(1);
197
+ multiplyEq(1)(-1)(-1);
198
+ multiplyEq(1)(10)(10);
199
+ multiplyEq(-1)(10)(-10);
200
+ multiplyEq(10)(10)(100);
201
+ multiplyEq(-10)(10)(-100);
202
+ },
203
+ bigint: () => {
204
+ multiplyEq(0n)(0n)(0n);
205
+ multiplyEq(0n)(1n)(0n);
206
+ multiplyEq(1n)(1n)(1n);
207
+ multiplyEq(1n)(-1n)(-1n);
208
+ multiplyEq(1n)(10n)(10n);
209
+ multiplyEq(-1n)(10n)(-10n);
210
+ multiplyEq(10n)(10n)(100n);
211
+ multiplyEq(-10n)(10n)(-100n);
212
+ },
213
+ string: () => {
214
+ multiplyEq('')(1)(0);
215
+ multiplyEq('10')(1)(10);
216
+ multiplyEq('a')(1)(NaN);
217
+ multiplyEq('1n')(1)(NaN);
218
+ },
219
+ array: () => {
220
+ multiplyEq([])(1)(0);
221
+ multiplyEq([10])(1)(10);
222
+ multiplyEq(['10'])(1)(10);
223
+ multiplyEq([0, 0])(1)(NaN);
224
+ },
225
+ object: () => multiplyEq({})(1)(NaN)
226
+ };
227
+ },
177
228
  stringCoercion: {
178
229
  number: () => {
179
230
  if (stringCoercion(123) !== '123') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "functionalscript",
3
- "version": "0.41.0",
3
+ "version": "0.43.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "**/*.js",
@@ -10,7 +10,7 @@
10
10
  "scripts": {
11
11
  "prepack": "tsc --NoEmit false",
12
12
  "test": "tsc && node ./fjs/module.ts t",
13
- "cov": "node --test --experimental-test-coverage --test-coverage-include=**/module.f.ts",
13
+ "cov": "node --test --experimental-test-coverage --test-coverage-include=**/module.f.ts --test-coverage-include=**/module.f.mjs",
14
14
  "start": "node ./fjs/module.ts",
15
15
  "ci-update": "node ./fjs/module.ts ci",
16
16
  "dev-update": "node ./fjs/module.ts r ./fjs/dev/update/module.f.ts",