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.
- package/fjs/bnf/data/module.f.d.ts +2 -2
- package/fjs/bnf/ll1/module.f.d.ts +1 -1
- package/fjs/bnf/module.f.d.ts +1 -1
- package/fjs/cas/evo/module.f.d.ts +1 -1
- package/fjs/ci/config/module.f.d.ts +3 -3
- package/fjs/ci/config/module.f.js +3 -3
- package/fjs/ci/deno/module.f.d.ts +8 -0
- package/fjs/ci/deno/module.f.js +9 -1
- package/fjs/ci/deno/proof.f.d.ts +5 -0
- package/fjs/ci/deno/proof.f.js +26 -0
- package/fjs/ci/proof.f.js +3 -2
- package/fjs/dev/module.f.d.ts +16 -5
- package/fjs/dev/module.f.js +38 -7
- package/fjs/dev/package_json/module.f.js +7 -4
- package/fjs/dev/proof.f.js +10 -1
- package/fjs/djs/parser/module.f.js +13 -3
- package/fjs/djs/parser/proof.f.d.ts +1 -0
- package/fjs/djs/parser/proof.f.js +26 -0
- package/fjs/djs/tokenizer/proof.f.js +11 -4
- package/fjs/effects/node/module.f.d.ts +2 -2
- package/fjs/emergent_testing/proof.f.js +20 -3
- package/fjs/fsm/module.f.d.ts +1 -1
- package/fjs/js/tokenizer/proof.f.js +7 -0
- package/fjs/mcp/cas/module.f.js +4 -1
- package/fjs/mcp/evo/proof.f.js +6 -1
- package/fjs/mcp/proof.f.js +37 -18
- package/fjs/media/html/module.f.d.ts +1 -1
- package/fjs/media/json/module.f.d.ts +15 -1
- package/fjs/media/json/module.f.js +17 -1
- package/fjs/media/json/parser/module.f.js +13 -3
- package/fjs/media/json/parser/proof.f.d.ts +1 -0
- package/fjs/media/json/parser/proof.f.js +37 -1
- package/fjs/media/json/proof.f.d.ts +4 -0
- package/fjs/media/json/proof.f.js +14 -2
- package/fjs/media/json/serializer/module.f.d.ts +4 -0
- package/fjs/media/json/serializer/module.f.js +39 -2
- package/fjs/media/json/serializer/proof.f.js +32 -8
- package/fjs/media/module.f.d.ts +92 -10
- package/fjs/media/module.f.js +73 -8
- package/fjs/media/proof.f.d.ts +10 -0
- package/fjs/media/proof.f.js +79 -10
- package/fjs/media/revision/module.f.d.ts +9 -1
- package/fjs/media/revision/module.f.js +14 -5
- package/fjs/protocol/mcp/stdio/module.f.js +2 -5
- package/fjs/text/utf16/module.f.d.ts +24 -0
- package/fjs/text/utf16/module.f.js +24 -0
- package/fjs/text/utf16/proof.f.d.ts +1 -0
- package/fjs/text/utf16/proof.f.js +10 -1
- package/fjs/types/object/module.f.d.ts +31 -13
- package/fjs/types/object/module.f.js +4 -3
- package/fjs/types/object/proof.f.d.ts +0 -14
- package/fjs/types/object/proof.f.js +0 -4
- package/fjs/types/rtti/common/module.f.d.ts +2 -2
- package/fjs/types/rtti/module.f.d.ts +1 -1
- package/fjs/types/rtti/ts/module.f.d.ts +1 -1
- package/fjs/types/rtti/validate/proof.f.d.ts +2 -0
- package/fjs/types/rtti/validate/proof.f.js +58 -0
- package/nanvm-lib/tests/proof.f.d.ts +9 -0
- package/nanvm-lib/tests/proof.f.js +58 -7
- 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
|
-
|
|
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
|
-
|
|
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.
|
|
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",
|