functionalscript 0.37.0 → 0.38.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/README.md +1 -1
- package/{fs → fjs}/asn.1/proof.f.js +32 -94
- package/fjs/asserts/module.f.d.ts +36 -0
- package/fjs/asserts/module.f.js +39 -0
- package/fjs/asserts/proof.f.d.ts +11 -0
- package/fjs/asserts/proof.f.js +18 -0
- package/{fs → fjs}/base_n/proof.f.js +12 -36
- package/{fs → fjs}/basen/base64/proof.f.d.ts +1 -0
- package/{fs → fjs}/basen/base64/proof.f.js +15 -1
- package/{fs → fjs}/basen/cbase32/proof.f.js +15 -42
- package/fjs/bnf/data/module.f.d.ts +52 -0
- package/{fs → fjs}/bnf/data/module.f.js +53 -3
- package/{fs → fjs}/bnf/data/proof.f.d.ts +1 -0
- package/{fs → fjs}/bnf/data/proof.f.js +54 -19
- package/{fs → fjs}/bnf/descent/module.f.d.ts +4 -14
- package/fjs/bnf/descent/module.f.js +124 -0
- package/{fs → fjs}/bnf/descent/proof.f.d.ts +1 -0
- package/{fs → fjs}/bnf/descent/proof.f.js +55 -24
- package/{fs → fjs}/bnf/ll1/module.f.d.ts +4 -4
- package/{fs → fjs}/bnf/ll1/module.f.js +7 -5
- package/{fs → fjs}/bnf/ll1/proof.f.d.ts +1 -0
- package/{fs → fjs}/bnf/ll1/proof.f.js +27 -10
- package/{fs → fjs}/bnf/module.f.d.ts +19 -5
- package/{fs → fjs}/bnf/module.f.js +10 -11
- package/fjs/bnf/proof.f.js +69 -0
- package/{fs → fjs}/bnf/testlib.f.js +2 -2
- package/{fs → fjs}/cas/cli/proof.f.d.ts +4 -1
- package/{fs → fjs}/cas/cli/proof.f.js +29 -66
- package/fjs/cas/evo/mcp/module.f.d.ts +19 -0
- package/fjs/cas/evo/mcp/module.f.js +56 -0
- package/fjs/cas/evo/mcp/proof.f.d.ts +9 -0
- package/fjs/cas/evo/mcp/proof.f.js +95 -0
- package/fjs/cas/evo/module.f.d.ts +138 -0
- package/fjs/cas/evo/module.f.js +309 -0
- package/fjs/cas/evo/proof.f.d.ts +32 -0
- package/fjs/cas/evo/proof.f.js +453 -0
- package/fjs/cas/mcp/module.f.d.ts +49 -0
- package/{fs → fjs}/cas/mcp/module.f.js +54 -76
- package/{fs → fjs}/cas/mcp/proof.f.d.ts +4 -1
- package/{fs → fjs}/cas/mcp/proof.f.js +41 -13
- package/{fs → fjs}/cas/module.f.d.ts +10 -0
- package/{fs → fjs}/cas/module.f.js +27 -1
- package/{fs → fjs}/cas/proof.f.d.ts +4 -0
- package/{fs → fjs}/cas/proof.f.js +77 -86
- package/{fs → fjs}/ci/config/module.f.d.ts +5 -5
- package/{fs → fjs}/ci/config/module.f.js +5 -5
- package/{fs → fjs}/ci/proof.f.js +14 -9
- package/{fs → fjs}/ci/rust/module.f.js +9 -1
- package/{fs → fjs}/cli/proof.f.js +22 -63
- package/{fs → fjs}/common/monoid/proof.f.js +4 -9
- package/{fs → fjs}/crypto/hmac/proof.f.js +4 -12
- package/fjs/crypto/pow/proof.f.js +111 -0
- package/{fs → fjs}/crypto/secp/proof.f.js +12 -33
- package/{fs → fjs}/crypto/sha2/proof.f.js +18 -49
- package/{fs → fjs}/crypto/sign/module.f.d.ts +0 -5
- package/{fs → fjs}/crypto/sign/module.f.js +7 -4
- package/{fs → fjs}/crypto/sign/proof.f.js +36 -105
- package/{fs → fjs}/crypto/vdf/proof.f.js +22 -63
- package/{fs → fjs}/dev/package_json/proof.f.js +7 -7
- package/{fs → fjs}/dev/proof.f.js +2 -4
- package/{fs → fjs}/djs/ast/proof.f.js +4 -12
- package/{fs → fjs}/djs/parser/module.f.d.ts +5 -0
- package/{fs → fjs}/djs/parser/module.f.js +20 -0
- package/{fs → fjs}/djs/parser/proof.f.js +138 -400
- package/{fs → fjs}/djs/proof.f.js +13 -36
- package/{fs → fjs}/djs/serializer/proof.f.js +14 -39
- package/fjs/djs/tokenizer/module.f.d.ts +24 -0
- package/fjs/djs/tokenizer/module.f.js +472 -0
- package/{fs/djs/tokenizer-new → fjs/djs/tokenizer}/proof.f.d.ts +4 -3
- package/{fs/djs/tokenizer-new → fjs/djs/tokenizer}/proof.f.js +446 -445
- package/{fs → fjs}/djs/transpiler/proof.f.d.ts +3 -0
- package/{fs → fjs}/djs/transpiler/proof.f.js +29 -30
- package/{fs → fjs}/effects/memory/proof.f.js +8 -21
- package/{fs → fjs}/effects/node/memory/proof.js +5 -12
- package/{fs → fjs}/effects/node/module.d.ts +1 -1
- package/{fs → fjs}/effects/node/module.f.d.ts +1 -1
- package/{fs → fjs}/effects/node/module.js +3 -3
- package/{fs → fjs}/effects/node/proof.f.d.ts +1 -0
- package/{fs → fjs}/effects/node/proof.f.js +106 -292
- package/{fs → fjs}/effects/node/virtual/proof.f.d.ts +1 -0
- package/{fs → fjs}/effects/node/virtual/proof.f.js +36 -29
- package/{fs → fjs}/effects/proof.f.js +16 -45
- package/{fs → fjs}/emergent_testing/proof.f.js +7 -7
- package/{fs → fjs}/fsc/proof.f.js +12 -34
- package/{fs → fjs}/fsm/proof.f.js +5 -12
- package/{fs → fjs}/mcp/module.f.d.ts +7 -0
- package/{fs → fjs}/mcp/module.f.js +9 -2
- package/{fs → fjs}/mcp/proof.f.js +12 -12
- package/{fs → fjs}/mcp/stdio/module.f.d.ts +2 -2
- package/{fs → fjs}/mcp/stdio/module.f.js +2 -2
- package/{fs → fjs}/media/html/proof.f.js +12 -33
- package/{fs → fjs}/media/json/parser/module.f.d.ts +5 -0
- package/{fs → fjs}/media/json/parser/module.f.js +14 -0
- package/{fs → fjs}/media/json/parser/proof.f.js +39 -114
- package/{fs → fjs}/media/json/rpc/module.f.js +1 -1
- package/{fs → fjs}/media/json/schema/module.f.d.ts +2 -2
- package/{fs → fjs}/media/json/schema/module.f.js +23 -39
- package/{fs → fjs}/media/json/schema/proof.f.js +3 -6
- package/{fs → fjs}/media/json/serializer/proof.f.js +10 -27
- package/{fs → fjs}/media/module.f.d.ts +6 -6
- package/{fs → fjs}/media/module.f.js +3 -4
- package/{fs → fjs}/media/proof.f.js +5 -4
- package/{fs → fjs}/media/revision/module.f.d.ts +31 -4
- package/{fs → fjs}/media/revision/module.f.js +35 -23
- package/{fs → fjs}/media/revision/proof.f.d.ts +10 -8
- package/fjs/media/revision/proof.f.js +140 -0
- package/{fs → fjs}/media/type/proof.f.js +2 -6
- package/{fs → fjs}/module.f.js +1 -1
- package/{fs → fjs}/path/proof.f.js +27 -78
- package/{fs → fjs}/proof.f.js +2 -0
- package/{fs → fjs}/sul/id/proof.f.js +7 -21
- package/{fs → fjs}/sul/level/hash/proof.f.js +5 -5
- package/{fs → fjs}/sul/level/literal/proof.f.js +12 -26
- package/fjs/text/ascii/proof.f.d.ts +6 -0
- package/{fs → fjs}/text/ascii/proof.f.js +4 -14
- package/{fs → fjs}/text/code_point/module.f.js +10 -10
- package/{fs → fjs}/text/proof.f.js +4 -9
- package/{fs → fjs}/text/sgr/proof.f.js +6 -15
- package/{fs → fjs}/text/utf16/module.f.js +1 -1
- package/{fs → fjs}/text/utf16/proof.f.js +23 -66
- package/{fs → fjs}/text/utf8/proof.f.js +56 -125
- package/{fs → fjs}/types/array/proof.f.js +18 -52
- package/fjs/types/bigfloat/proof.f.js +217 -0
- package/{fs → fjs}/types/bigint/proof.f.js +49 -145
- package/{fs → fjs}/types/bit_vec/proof.f.js +72 -214
- package/{fs → fjs}/types/btree/find/proof.f.js +23 -66
- package/{fs → fjs}/types/btree/proof.f.js +5 -12
- package/{fs → fjs}/types/btree/remove/proof.f.d.ts +2 -0
- package/{fs → fjs}/types/btree/remove/proof.f.js +83 -230
- package/{fs → fjs}/types/btree/set/module.f.js +5 -2
- package/{fs → fjs}/types/btree/set/proof.f.js +35 -24
- package/{fs → fjs}/types/byte_set/proof.f.js +22 -63
- package/{fs → fjs}/types/function/compare/proof.f.js +13 -36
- package/{fs → fjs}/types/function/operator/proof.f.js +17 -48
- package/{fs → fjs}/types/function/proof.f.js +2 -3
- package/{fs → fjs}/types/list/proof.f.js +55 -163
- package/{fs → fjs}/types/map/proof.f.js +4 -12
- package/{fs → fjs}/types/nibble_set/proof.f.js +16 -45
- package/{fs → fjs}/types/nominal/proof.f.js +5 -10
- package/fjs/types/nullable/proof.f.js +29 -0
- package/{fs → fjs}/types/number/proof.f.js +9 -24
- package/{fs → fjs}/types/object/proof.f.js +3 -6
- package/{fs → fjs}/types/patricia_trie/proof.f.js +21 -21
- package/{fs → fjs}/types/prime_field/module.f.js +2 -7
- package/{fs → fjs}/types/range/module.f.d.ts +1 -1
- package/fjs/types/range/module.f.js +2 -0
- package/fjs/types/range/proof.f.js +9 -0
- package/{fs → fjs}/types/range_map/proof.f.js +28 -81
- package/{fs → fjs}/types/result/proof.f.d.ts +3 -2
- package/fjs/types/result/proof.f.js +31 -0
- package/{fs → fjs}/types/rtti/common/module.f.d.ts +36 -1
- package/{fs → fjs}/types/rtti/common/module.f.js +44 -0
- package/fjs/types/rtti/common/proof.f.d.ts +8 -0
- package/fjs/types/rtti/common/proof.f.js +51 -0
- package/{fs → fjs}/types/rtti/parse/module.f.js +13 -22
- package/{fs → fjs}/types/rtti/parse/proof.f.js +7 -18
- package/{fs → fjs}/types/rtti/ts/module.f.d.ts +10 -4
- package/{fs → fjs}/types/rtti/validate/module.f.js +8 -29
- package/{fs → fjs}/types/rtti/validate/proof.f.js +4 -9
- package/{fs → fjs}/types/sorted_list/proof.f.js +8 -21
- package/{fs → fjs}/types/sorted_set/proof.f.js +14 -39
- package/fjs/types/string/proof.f.js +77 -0
- package/fjs/types/string_set/proof.f.js +43 -0
- package/{fs → fjs}/types/ts/proof.f.js +15 -42
- package/{fs → fjs}/types/uint8array/module.f.js +7 -7
- package/{fs → fjs}/types/uint8array/proof.f.d.ts +4 -1
- package/{fs → fjs}/types/uint8array/proof.f.js +7 -7
- package/{fs → fjs}/website/proof.f.js +3 -6
- package/package.json +6 -6
- package/fs/asserts/module.f.d.ts +0 -4
- package/fs/asserts/module.f.js +0 -9
- package/fs/asserts/proof.f.d.ts +0 -8
- package/fs/asserts/proof.f.js +0 -51
- package/fs/bnf/data/module.f.d.ts +0 -30
- package/fs/bnf/descent/module.f.js +0 -119
- package/fs/bnf/proof.f.js +0 -104
- package/fs/cas/mcp/module.f.d.ts +0 -36
- package/fs/crypto/pow/proof.f.js +0 -161
- package/fs/djs/tokenizer/module.f.d.ts +0 -12
- package/fs/djs/tokenizer/module.f.js +0 -62
- package/fs/djs/tokenizer/proof.f.d.ts +0 -7
- package/fs/djs/tokenizer/proof.f.js +0 -543
- package/fs/djs/tokenizer-new/module.f.d.ts +0 -3
- package/fs/djs/tokenizer-new/module.f.js +0 -155
- package/fs/media/revision/proof.f.js +0 -119
- package/fs/text/ascii/proof.f.d.ts +0 -4
- package/fs/types/bigfloat/proof.f.js +0 -348
- package/fs/types/nullable/proof.f.js +0 -50
- package/fs/types/range/module.f.js +0 -2
- package/fs/types/range/proof.f.js +0 -18
- package/fs/types/result/proof.f.js +0 -52
- package/fs/types/string/proof.f.js +0 -118
- package/fs/types/string_set/proof.f.js +0 -82
- /package/{fs → fjs}/asn.1/module.f.d.ts +0 -0
- /package/{fs → fjs}/asn.1/module.f.js +0 -0
- /package/{fs → fjs}/asn.1/proof.f.d.ts +0 -0
- /package/{fs → fjs}/base_n/module.f.d.ts +0 -0
- /package/{fs → fjs}/base_n/module.f.js +0 -0
- /package/{fs → fjs}/base_n/proof.f.d.ts +0 -0
- /package/{fs → fjs}/basen/base128/module.f.d.ts +0 -0
- /package/{fs → fjs}/basen/base128/module.f.js +0 -0
- /package/{fs → fjs}/basen/base128/proof.f.d.ts +0 -0
- /package/{fs → fjs}/basen/base128/proof.f.js +0 -0
- /package/{fs → fjs}/basen/base64/module.f.d.ts +0 -0
- /package/{fs → fjs}/basen/base64/module.f.js +0 -0
- /package/{fs → fjs}/basen/cbase32/module.f.d.ts +0 -0
- /package/{fs → fjs}/basen/cbase32/module.f.js +0 -0
- /package/{fs → fjs}/basen/cbase32/proof.f.d.ts +0 -0
- /package/{fs → fjs}/bnf/proof.f.d.ts +0 -0
- /package/{fs → fjs}/bnf/testlib.f.d.ts +0 -0
- /package/{fs → fjs}/cas/cli/module.f.d.ts +0 -0
- /package/{fs → fjs}/cas/cli/module.f.js +0 -0
- /package/{fs → fjs}/ci/bun/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/bun/module.f.js +0 -0
- /package/{fs → fjs}/ci/common/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/common/module.f.js +0 -0
- /package/{fs → fjs}/ci/deno/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/deno/module.f.js +0 -0
- /package/{fs → fjs}/ci/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/module.f.js +0 -0
- /package/{fs → fjs}/ci/node/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/node/module.f.js +0 -0
- /package/{fs → fjs}/ci/playwright/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/playwright/module.f.js +0 -0
- /package/{fs → fjs}/ci/proof.f.d.ts +0 -0
- /package/{fs → fjs}/ci/rust/module.f.d.ts +0 -0
- /package/{fs → fjs}/cli/module.f.d.ts +0 -0
- /package/{fs → fjs}/cli/module.f.js +0 -0
- /package/{fs → fjs}/cli/proof.f.d.ts +0 -0
- /package/{fs → fjs}/common/monoid/module.f.d.ts +0 -0
- /package/{fs → fjs}/common/monoid/module.f.js +0 -0
- /package/{fs → fjs}/common/monoid/proof.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/hmac/module.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/hmac/module.f.js +0 -0
- /package/{fs → fjs}/crypto/hmac/proof.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/pow/module.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/pow/module.f.js +0 -0
- /package/{fs → fjs}/crypto/pow/proof.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/secp/module.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/secp/module.f.js +0 -0
- /package/{fs → fjs}/crypto/secp/proof.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/sha2/module.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/sha2/module.f.js +0 -0
- /package/{fs → fjs}/crypto/sha2/proof.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/sign/proof.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/vdf/module.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/vdf/module.f.js +0 -0
- /package/{fs → fjs}/crypto/vdf/proof.f.d.ts +0 -0
- /package/{fs → fjs}/dev/module.f.d.ts +0 -0
- /package/{fs → fjs}/dev/module.f.js +0 -0
- /package/{fs → fjs}/dev/package_json/module.f.d.ts +0 -0
- /package/{fs → fjs}/dev/package_json/module.f.js +0 -0
- /package/{fs → fjs}/dev/package_json/proof.f.d.ts +0 -0
- /package/{fs → fjs}/dev/proof.f.d.ts +0 -0
- /package/{fs → fjs}/djs/ast/module.f.d.ts +0 -0
- /package/{fs → fjs}/djs/ast/module.f.js +0 -0
- /package/{fs → fjs}/djs/ast/proof.f.d.ts +0 -0
- /package/{fs → fjs}/djs/examples/input.f.d.ts +0 -0
- /package/{fs → fjs}/djs/examples/input.f.js +0 -0
- /package/{fs → fjs}/djs/examples/m.f.d.ts +0 -0
- /package/{fs → fjs}/djs/examples/m.f.js +0 -0
- /package/{fs → fjs}/djs/module.f.d.ts +0 -0
- /package/{fs → fjs}/djs/module.f.js +0 -0
- /package/{fs → fjs}/djs/parser/proof.f.d.ts +0 -0
- /package/{fs → fjs}/djs/proof.f.d.ts +0 -0
- /package/{fs → fjs}/djs/serializer/module.f.d.ts +0 -0
- /package/{fs → fjs}/djs/serializer/module.f.js +0 -0
- /package/{fs → fjs}/djs/serializer/proof.f.d.ts +0 -0
- /package/{fs → fjs}/djs/transpiler/module.f.d.ts +0 -0
- /package/{fs → fjs}/djs/transpiler/module.f.js +0 -0
- /package/{fs → fjs}/effects/list/module.f.d.ts +0 -0
- /package/{fs → fjs}/effects/list/module.f.js +0 -0
- /package/{fs → fjs}/effects/memory/module.f.d.ts +0 -0
- /package/{fs → fjs}/effects/memory/module.f.js +0 -0
- /package/{fs → fjs}/effects/memory/proof.f.d.ts +0 -0
- /package/{fs → fjs}/effects/mock/module.f.d.ts +0 -0
- /package/{fs → fjs}/effects/mock/module.f.js +0 -0
- /package/{fs → fjs}/effects/module.d.ts +0 -0
- /package/{fs → fjs}/effects/module.f.d.ts +0 -0
- /package/{fs → fjs}/effects/module.f.js +0 -0
- /package/{fs → fjs}/effects/module.js +0 -0
- /package/{fs → fjs}/effects/node/memory/module.d.ts +0 -0
- /package/{fs → fjs}/effects/node/memory/module.js +0 -0
- /package/{fs → fjs}/effects/node/memory/proof.d.ts +0 -0
- /package/{fs → fjs}/effects/node/module.f.js +0 -0
- /package/{fs → fjs}/effects/node/virtual/module.f.d.ts +0 -0
- /package/{fs → fjs}/effects/node/virtual/module.f.js +0 -0
- /package/{fs → fjs}/effects/proof.f.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/all.test.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/all.test.js +0 -0
- /package/{fs → fjs}/emergent_testing/example.f.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/example.f.js +0 -0
- /package/{fs → fjs}/emergent_testing/module.f.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/module.f.js +0 -0
- /package/{fs → fjs}/emergent_testing/proof.f.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/all.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/all.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.fail.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.fail.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.pass.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.pass.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async.fail.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async.fail.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async.pass.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async.pass.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/fail.fail.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/fail.fail.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/return-value.pass.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/return-value.pass.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/thenable.pass.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/thenable.pass.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/thenable2.pass.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/thenable2.pass.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/throw.pass.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/throw.pass.js +0 -0
- /package/{fs → fjs}/fsc/bnf.f.d.ts +0 -0
- /package/{fs → fjs}/fsc/bnf.f.js +0 -0
- /package/{fs → fjs}/fsc/json.f.d.ts +0 -0
- /package/{fs → fjs}/fsc/json.f.js +0 -0
- /package/{fs → fjs}/fsc/module.f.d.ts +0 -0
- /package/{fs → fjs}/fsc/module.f.js +0 -0
- /package/{fs → fjs}/fsc/proof.f.d.ts +0 -0
- /package/{fs → fjs}/fsm/module.f.d.ts +0 -0
- /package/{fs → fjs}/fsm/module.f.js +0 -0
- /package/{fs → fjs}/fsm/proof.f.d.ts +0 -0
- /package/{fs → fjs}/js/tokenizer/module.f.d.ts +0 -0
- /package/{fs → fjs}/js/tokenizer/module.f.js +0 -0
- /package/{fs → fjs}/js/tokenizer/proof.f.d.ts +0 -0
- /package/{fs → fjs}/js/tokenizer/proof.f.js +0 -0
- /package/{fs → fjs}/mcp/proof.f.d.ts +0 -0
- /package/{fs → fjs}/mcp/stdio/proof.f.d.ts +0 -0
- /package/{fs → fjs}/mcp/stdio/proof.f.js +0 -0
- /package/{fs → fjs}/media/html/module.f.d.ts +0 -0
- /package/{fs → fjs}/media/html/module.f.js +0 -0
- /package/{fs → fjs}/media/html/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/module.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/module.f.js +0 -0
- /package/{fs → fjs}/media/json/parser/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/proof.f.js +0 -0
- /package/{fs → fjs}/media/json/rpc/module.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/rpc/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/rpc/proof.f.js +0 -0
- /package/{fs → fjs}/media/json/schema/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/serializer/module.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/serializer/module.f.js +0 -0
- /package/{fs → fjs}/media/json/serializer/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/tokenizer/module.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/tokenizer/module.f.js +0 -0
- /package/{fs → fjs}/media/json/tokenizer/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/tokenizer/proof.f.js +0 -0
- /package/{fs → fjs}/media/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/type/module.f.d.ts +0 -0
- /package/{fs → fjs}/media/type/module.f.js +0 -0
- /package/{fs → fjs}/media/type/proof.f.d.ts +0 -0
- /package/{fs → fjs}/module.d.ts +0 -0
- /package/{fs → fjs}/module.f.d.ts +0 -0
- /package/{fs → fjs}/module.js +0 -0
- /package/{fs → fjs}/path/module.f.d.ts +0 -0
- /package/{fs → fjs}/path/module.f.js +0 -0
- /package/{fs → fjs}/path/proof.f.d.ts +0 -0
- /package/{fs → fjs}/proof.f.d.ts +0 -0
- /package/{fs → fjs}/sul/id/module.f.d.ts +0 -0
- /package/{fs → fjs}/sul/id/module.f.js +0 -0
- /package/{fs → fjs}/sul/id/proof.f.d.ts +0 -0
- /package/{fs → fjs}/sul/level/hash/module.f.d.ts +0 -0
- /package/{fs → fjs}/sul/level/hash/module.f.js +0 -0
- /package/{fs → fjs}/sul/level/hash/proof.f.d.ts +0 -0
- /package/{fs → fjs}/sul/level/literal/module.f.d.ts +0 -0
- /package/{fs → fjs}/sul/level/literal/module.f.js +0 -0
- /package/{fs → fjs}/sul/level/literal/proof.f.d.ts +0 -0
- /package/{fs → fjs}/sul/module.f.d.ts +0 -0
- /package/{fs → fjs}/sul/module.f.js +0 -0
- /package/{fs → fjs}/sul/proof.f.d.ts +0 -0
- /package/{fs → fjs}/sul/proof.f.js +0 -0
- /package/{fs → fjs}/text/ascii/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/ascii/module.f.js +0 -0
- /package/{fs → fjs}/text/code_point/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/code_point/proof.f.d.ts +0 -0
- /package/{fs → fjs}/text/code_point/proof.f.js +0 -0
- /package/{fs → fjs}/text/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/module.f.js +0 -0
- /package/{fs → fjs}/text/proof.f.d.ts +0 -0
- /package/{fs → fjs}/text/sgr/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/sgr/module.f.js +0 -0
- /package/{fs → fjs}/text/sgr/proof.f.d.ts +0 -0
- /package/{fs → fjs}/text/utf16/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/utf16/proof.f.d.ts +0 -0
- /package/{fs → fjs}/text/utf8/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/utf8/module.f.js +0 -0
- /package/{fs → fjs}/text/utf8/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/array/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/array/module.f.js +0 -0
- /package/{fs → fjs}/types/array/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/bigfloat/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/bigfloat/module.f.js +0 -0
- /package/{fs → fjs}/types/bigfloat/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/bigint/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/bigint/module.f.js +0 -0
- /package/{fs → fjs}/types/bigint/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/bit_vec/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/bit_vec/module.f.js +0 -0
- /package/{fs → fjs}/types/bit_vec/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/find/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/find/module.f.js +0 -0
- /package/{fs → fjs}/types/btree/find/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/module.f.js +0 -0
- /package/{fs → fjs}/types/btree/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/remove/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/remove/module.f.js +0 -0
- /package/{fs → fjs}/types/btree/set/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/set/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/types/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/types/module.f.js +0 -0
- /package/{fs → fjs}/types/byte_set/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/byte_set/module.f.js +0 -0
- /package/{fs → fjs}/types/byte_set/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/function/compare/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/function/compare/module.f.js +0 -0
- /package/{fs → fjs}/types/function/compare/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/function/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/function/module.f.js +0 -0
- /package/{fs → fjs}/types/function/operator/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/function/operator/module.f.js +0 -0
- /package/{fs → fjs}/types/function/operator/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/function/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/list/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/list/module.f.js +0 -0
- /package/{fs → fjs}/types/list/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/map/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/map/module.f.js +0 -0
- /package/{fs → fjs}/types/map/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/nibble_set/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/nibble_set/module.f.js +0 -0
- /package/{fs → fjs}/types/nibble_set/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/nominal/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/nominal/module.f.js +0 -0
- /package/{fs → fjs}/types/nominal/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/nullable/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/nullable/module.f.js +0 -0
- /package/{fs → fjs}/types/nullable/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/number/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/number/module.f.js +0 -0
- /package/{fs → fjs}/types/number/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/object/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/object/module.f.js +0 -0
- /package/{fs → fjs}/types/object/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/option/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/option/module.f.js +0 -0
- /package/{fs → fjs}/types/ordered_map/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/ordered_map/module.f.js +0 -0
- /package/{fs → fjs}/types/ordered_map/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/ordered_map/proof.f.js +0 -0
- /package/{fs → fjs}/types/patricia_trie/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/patricia_trie/module.f.js +0 -0
- /package/{fs → fjs}/types/patricia_trie/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/phantom/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/phantom/module.f.js +0 -0
- /package/{fs → fjs}/types/prime_field/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/prime_field/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/prime_field/proof.f.js +0 -0
- /package/{fs → fjs}/types/range/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/range_map/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/range_map/module.f.js +0 -0
- /package/{fs → fjs}/types/range_map/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/result/module.d.ts +0 -0
- /package/{fs → fjs}/types/result/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/result/module.f.js +0 -0
- /package/{fs → fjs}/types/result/module.js +0 -0
- /package/{fs → fjs}/types/rtti/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/module.f.js +0 -0
- /package/{fs → fjs}/types/rtti/parse/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/parse/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/proof.f.js +0 -0
- /package/{fs → fjs}/types/rtti/ts/module.f.js +0 -0
- /package/{fs → fjs}/types/rtti/ts/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/ts/proof.f.js +0 -0
- /package/{fs → fjs}/types/rtti/validate/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/validate/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/sorted_list/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/sorted_list/module.f.js +0 -0
- /package/{fs → fjs}/types/sorted_list/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/sorted_set/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/sorted_set/module.f.js +0 -0
- /package/{fs → fjs}/types/sorted_set/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/string/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/string/module.f.js +0 -0
- /package/{fs → fjs}/types/string/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/string_set/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/string_set/module.f.js +0 -0
- /package/{fs → fjs}/types/string_set/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/ts/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/ts/module.f.js +0 -0
- /package/{fs → fjs}/types/ts/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/uint8array/module.f.d.ts +0 -0
- /package/{fs → fjs}/website/module.f.d.ts +0 -0
- /package/{fs → fjs}/website/module.f.js +0 -0
- /package/{fs → fjs}/website/proof.f.d.ts +0 -0
|
@@ -5,6 +5,7 @@ import { sort } from '../../types/object/module.f.js';
|
|
|
5
5
|
import { stringToList } from '../../text/utf16/module.f.js';
|
|
6
6
|
import { stringifyAsTree } from '../serializer/module.f.js';
|
|
7
7
|
import { stringify } from '../../media/json/module.f.js';
|
|
8
|
+
import { assert, assertEq } from '../../asserts/module.f.js';
|
|
8
9
|
const tokenizeString = s => toArray(tokenize(stringToList(s))(''));
|
|
9
10
|
const stringifyDjsModule = stringifyAsTree(sort);
|
|
10
11
|
export const proof = {
|
|
@@ -12,130 +13,84 @@ export const proof = {
|
|
|
12
13
|
() => {
|
|
13
14
|
const tokenList = tokenizeString('export default null');
|
|
14
15
|
const obj = parseFromTokens(tokenList);
|
|
15
|
-
|
|
16
|
-
throw obj;
|
|
17
|
-
}
|
|
16
|
+
assert(obj[0] === 'ok', obj);
|
|
18
17
|
const result = stringifyDjsModule(obj[1]);
|
|
19
|
-
|
|
20
|
-
throw result;
|
|
21
|
-
}
|
|
18
|
+
assertEq(result, '[[],[null]]');
|
|
22
19
|
},
|
|
23
20
|
() => {
|
|
24
21
|
const tokenList = tokenizeString('export default true');
|
|
25
22
|
const obj = parseFromTokens(tokenList);
|
|
26
|
-
|
|
27
|
-
throw obj;
|
|
28
|
-
}
|
|
23
|
+
assert(obj[0] === 'ok', obj);
|
|
29
24
|
const result = stringifyDjsModule(obj[1]);
|
|
30
|
-
|
|
31
|
-
throw result;
|
|
32
|
-
}
|
|
25
|
+
assertEq(result, '[[],[true]]');
|
|
33
26
|
},
|
|
34
27
|
() => {
|
|
35
28
|
const tokenList = tokenizeString('export default false');
|
|
36
29
|
const obj = parseFromTokens(tokenList);
|
|
37
|
-
|
|
38
|
-
throw obj;
|
|
39
|
-
}
|
|
30
|
+
assert(obj[0] === 'ok', obj);
|
|
40
31
|
const result = stringifyDjsModule(obj[1]);
|
|
41
|
-
|
|
42
|
-
throw result;
|
|
43
|
-
}
|
|
32
|
+
assertEq(result, '[[],[false]]');
|
|
44
33
|
},
|
|
45
34
|
() => {
|
|
46
35
|
const tokenList = tokenizeString('export default undefined');
|
|
47
36
|
const obj = parseFromTokens(tokenList);
|
|
48
|
-
|
|
49
|
-
throw obj;
|
|
50
|
-
}
|
|
37
|
+
assert(obj[0] === 'ok', obj);
|
|
51
38
|
const result = stringifyDjsModule(obj[1]);
|
|
52
|
-
|
|
53
|
-
throw result;
|
|
54
|
-
}
|
|
39
|
+
assertEq(result, '[[],[undefined]]');
|
|
55
40
|
},
|
|
56
41
|
() => {
|
|
57
42
|
const tokenList = tokenizeString('export default 0.1');
|
|
58
43
|
const obj = parseFromTokens(tokenList);
|
|
59
|
-
|
|
60
|
-
throw obj;
|
|
61
|
-
}
|
|
44
|
+
assert(obj[0] === 'ok', obj);
|
|
62
45
|
const result = stringifyDjsModule(obj[1]);
|
|
63
|
-
|
|
64
|
-
throw result;
|
|
65
|
-
}
|
|
46
|
+
assertEq(result, '[[],[0.1]]');
|
|
66
47
|
},
|
|
67
48
|
() => {
|
|
68
49
|
const tokenList = tokenizeString('export default 1.1e+2');
|
|
69
50
|
const obj = parseFromTokens(tokenList);
|
|
70
|
-
|
|
71
|
-
throw obj;
|
|
72
|
-
}
|
|
51
|
+
assert(obj[0] === 'ok', obj);
|
|
73
52
|
const result = stringifyDjsModule(obj[1]);
|
|
74
|
-
|
|
75
|
-
throw result;
|
|
76
|
-
}
|
|
53
|
+
assertEq(result, '[[],[110]]');
|
|
77
54
|
},
|
|
78
55
|
() => {
|
|
79
56
|
const tokenList = tokenizeString('export default "abc"');
|
|
80
57
|
const obj = parseFromTokens(tokenList);
|
|
81
|
-
|
|
82
|
-
throw obj;
|
|
83
|
-
}
|
|
58
|
+
assert(obj[0] === 'ok', obj);
|
|
84
59
|
const result = stringifyDjsModule(obj[1]);
|
|
85
|
-
|
|
86
|
-
throw result;
|
|
87
|
-
}
|
|
60
|
+
assertEq(result, '[[],["abc"]]');
|
|
88
61
|
},
|
|
89
62
|
() => {
|
|
90
63
|
const tokenList = tokenizeString('export default []');
|
|
91
64
|
const obj = parseFromTokens(tokenList);
|
|
92
|
-
|
|
93
|
-
throw obj;
|
|
94
|
-
}
|
|
65
|
+
assert(obj[0] === 'ok', obj);
|
|
95
66
|
const result = stringifyDjsModule(obj[1]);
|
|
96
|
-
|
|
97
|
-
throw result;
|
|
98
|
-
}
|
|
67
|
+
assertEq(result, '[[],[["array",[]]]]');
|
|
99
68
|
},
|
|
100
69
|
() => {
|
|
101
70
|
const tokenList = tokenizeString('export default [1]');
|
|
102
71
|
const obj = parseFromTokens(tokenList);
|
|
103
|
-
|
|
104
|
-
throw obj;
|
|
105
|
-
}
|
|
72
|
+
assert(obj[0] === 'ok', obj);
|
|
106
73
|
const result = stringifyDjsModule(obj[1]);
|
|
107
|
-
|
|
108
|
-
throw result;
|
|
109
|
-
}
|
|
74
|
+
assertEq(result, '[[],[["array",[1]]]]');
|
|
110
75
|
},
|
|
111
76
|
() => {
|
|
112
77
|
const tokenList = tokenizeString('export default [[]]');
|
|
113
78
|
const obj = parseFromTokens(tokenList);
|
|
114
|
-
|
|
115
|
-
throw obj;
|
|
116
|
-
}
|
|
79
|
+
assert(obj[0] === 'ok', obj);
|
|
117
80
|
const result = stringifyDjsModule(obj[1]);
|
|
118
|
-
|
|
119
|
-
throw result;
|
|
120
|
-
}
|
|
81
|
+
assertEq(result, '[[],[["array",[["array",[]]]]]]');
|
|
121
82
|
},
|
|
122
83
|
() => {
|
|
123
84
|
const tokenList = tokenizeString('export default [0,[1,[2,[]]],3]');
|
|
124
85
|
const obj = parseFromTokens(tokenList);
|
|
125
|
-
|
|
126
|
-
throw obj;
|
|
127
|
-
}
|
|
86
|
+
assert(obj[0] === 'ok', obj);
|
|
128
87
|
const result = stringifyDjsModule(obj[1]);
|
|
129
|
-
|
|
130
|
-
throw result;
|
|
131
|
-
}
|
|
88
|
+
assertEq(result, '[[],[["array",[0,["array",[1,["array",[2,["array",[]]]]]],3]]]]');
|
|
132
89
|
},
|
|
133
90
|
() => {
|
|
134
91
|
const tokenList = tokenizeString('export default {}');
|
|
135
92
|
const obj = parseFromTokens(tokenList);
|
|
136
|
-
|
|
137
|
-
throw obj;
|
|
138
|
-
}
|
|
93
|
+
assert(obj[0] === 'ok', obj);
|
|
139
94
|
const result = stringifyDjsModule(obj[1]);
|
|
140
95
|
if (result !== '[[],[{}]]') {
|
|
141
96
|
throw result;
|
|
@@ -144,9 +99,7 @@ export const proof = {
|
|
|
144
99
|
() => {
|
|
145
100
|
const tokenList = tokenizeString('export default [{}]');
|
|
146
101
|
const obj = parseFromTokens(tokenList);
|
|
147
|
-
|
|
148
|
-
throw obj;
|
|
149
|
-
}
|
|
102
|
+
assert(obj[0] === 'ok', obj);
|
|
150
103
|
const result = stringifyDjsModule(obj[1]);
|
|
151
104
|
if (result !== '[[],[["array",[{}]]]]') {
|
|
152
105
|
throw result;
|
|
@@ -155,9 +108,7 @@ export const proof = {
|
|
|
155
108
|
() => {
|
|
156
109
|
const tokenList = tokenizeString('export default {"a":true,"b":false,"c":null,"d":undefined}');
|
|
157
110
|
const obj = parseFromTokens(tokenList);
|
|
158
|
-
|
|
159
|
-
throw obj;
|
|
160
|
-
}
|
|
111
|
+
assert(obj[0] === 'ok', obj);
|
|
161
112
|
const result = stringifyDjsModule(obj[1]);
|
|
162
113
|
if (result !== '[[],[{"a":true,"b":false,"c":null,"d":undefined}]]') {
|
|
163
114
|
throw result;
|
|
@@ -166,9 +117,7 @@ export const proof = {
|
|
|
166
117
|
() => {
|
|
167
118
|
const tokenList = tokenizeString('export default {"a":{"b":{"c":["d"]}}}');
|
|
168
119
|
const obj = parseFromTokens(tokenList);
|
|
169
|
-
|
|
170
|
-
throw obj;
|
|
171
|
-
}
|
|
120
|
+
assert(obj[0] === 'ok', obj);
|
|
172
121
|
const result = stringifyDjsModule(obj[1]);
|
|
173
122
|
if (result !== '[[],[{"a":{"b":{"c":["array",["d"]]}}}]]') {
|
|
174
123
|
throw result;
|
|
@@ -177,9 +126,7 @@ export const proof = {
|
|
|
177
126
|
() => {
|
|
178
127
|
const tokenList = tokenizeString('export default {a: 1}');
|
|
179
128
|
const obj = parseFromTokens(tokenList);
|
|
180
|
-
|
|
181
|
-
throw obj;
|
|
182
|
-
}
|
|
129
|
+
assert(obj[0] === 'ok', obj);
|
|
183
130
|
const result = stringifyDjsModule(obj[1]);
|
|
184
131
|
if (result !== '[[],[{"a":1}]]') {
|
|
185
132
|
throw result;
|
|
@@ -188,42 +135,28 @@ export const proof = {
|
|
|
188
135
|
() => {
|
|
189
136
|
const tokenList = tokenizeString('export default 1234567890n');
|
|
190
137
|
const obj = parseFromTokens(tokenList);
|
|
191
|
-
|
|
192
|
-
throw obj;
|
|
193
|
-
}
|
|
138
|
+
assert(obj[0] === 'ok', obj);
|
|
194
139
|
const result = stringifyDjsModule(obj[1]);
|
|
195
|
-
|
|
196
|
-
throw result;
|
|
197
|
-
}
|
|
140
|
+
assertEq(result, '[[],[1234567890n]]');
|
|
198
141
|
},
|
|
199
142
|
() => {
|
|
200
143
|
const tokenList = tokenizeString('export default [1234567890n]');
|
|
201
144
|
const obj = parseFromTokens(tokenList);
|
|
202
|
-
|
|
203
|
-
throw obj;
|
|
204
|
-
}
|
|
145
|
+
assert(obj[0] === 'ok', obj);
|
|
205
146
|
const result = stringifyDjsModule(obj[1]);
|
|
206
|
-
|
|
207
|
-
throw result;
|
|
208
|
-
}
|
|
147
|
+
assertEq(result, '[[],[["array",[1234567890n]]]]');
|
|
209
148
|
},
|
|
210
149
|
() => {
|
|
211
150
|
const tokenList = tokenizeString('export default [1,]');
|
|
212
151
|
const obj = parseFromTokens(tokenList);
|
|
213
|
-
|
|
214
|
-
throw obj;
|
|
215
|
-
}
|
|
152
|
+
assert(obj[0] === 'ok', obj);
|
|
216
153
|
const result = stringifyDjsModule(obj[1]);
|
|
217
|
-
|
|
218
|
-
throw result;
|
|
219
|
-
}
|
|
154
|
+
assertEq(result, '[[],[["array",[1]]]]');
|
|
220
155
|
},
|
|
221
156
|
() => {
|
|
222
157
|
const tokenList = tokenizeString('export default {"a":1,}');
|
|
223
158
|
const obj = parseFromTokens(tokenList);
|
|
224
|
-
|
|
225
|
-
throw obj;
|
|
226
|
-
}
|
|
159
|
+
assert(obj[0] === 'ok', obj);
|
|
227
160
|
const result = stringifyDjsModule(obj[1]);
|
|
228
161
|
if (result !== '[[],[{"a":1}]]') {
|
|
229
162
|
throw result;
|
|
@@ -234,245 +167,154 @@ export const proof = {
|
|
|
234
167
|
() => {
|
|
235
168
|
const tokenList = tokenizeString('export default');
|
|
236
169
|
const obj = parseFromTokens(tokenList);
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
}
|
|
240
|
-
if (obj[1].message !== 'unexpected end') {
|
|
241
|
-
throw obj[1].message;
|
|
242
|
-
}
|
|
170
|
+
assert(obj[0] === 'error', obj);
|
|
171
|
+
assertEq(obj[1].message, 'unexpected end');
|
|
243
172
|
},
|
|
244
173
|
() => {
|
|
245
174
|
const tokenList = tokenizeString('export default "123');
|
|
246
175
|
const obj = parseFromTokens(tokenList);
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
}
|
|
250
|
-
if (obj[1].message !== 'unexpected token') {
|
|
251
|
-
throw obj[1].message;
|
|
252
|
-
}
|
|
176
|
+
assert(obj[0] === 'error', obj);
|
|
177
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
253
178
|
},
|
|
254
179
|
// A literal control character inside a string is not valid JSON
|
|
255
180
|
// syntax (RFC 8259 §7), and DJS string literals are JSON strings.
|
|
256
181
|
() => {
|
|
257
182
|
const tokenList = tokenizeString('export default "\t"');
|
|
258
183
|
const obj = parseFromTokens(tokenList);
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
}
|
|
262
|
-
if (obj[1].message !== 'unexpected token') {
|
|
263
|
-
throw obj[1].message;
|
|
264
|
-
}
|
|
184
|
+
assert(obj[0] === 'error', obj);
|
|
185
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
265
186
|
},
|
|
266
187
|
() => {
|
|
267
188
|
const tokenList = tokenizeString('export default [,]');
|
|
268
189
|
const obj = parseFromTokens(tokenList);
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
}
|
|
272
|
-
if (obj[1].message !== 'unexpected token') {
|
|
273
|
-
throw obj[1].message;
|
|
274
|
-
}
|
|
190
|
+
assert(obj[0] === 'error', obj);
|
|
191
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
275
192
|
},
|
|
276
193
|
() => {
|
|
277
194
|
const tokenList = tokenizeString('export default [1 2]');
|
|
278
195
|
const obj = parseFromTokens(tokenList);
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
}
|
|
282
|
-
if (obj[1].message !== 'unexpected token') {
|
|
283
|
-
throw obj[1].message;
|
|
284
|
-
}
|
|
196
|
+
assert(obj[0] === 'error', obj);
|
|
197
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
285
198
|
},
|
|
286
199
|
() => {
|
|
287
200
|
const tokenList = tokenizeString('export default [1,,2]');
|
|
288
201
|
const obj = parseFromTokens(tokenList);
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
}
|
|
292
|
-
if (obj[1].message !== 'unexpected token') {
|
|
293
|
-
throw obj[1].message;
|
|
294
|
-
}
|
|
202
|
+
assert(obj[0] === 'error', obj);
|
|
203
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
295
204
|
},
|
|
296
205
|
() => {
|
|
297
206
|
const tokenList = tokenizeString('export default []]');
|
|
298
207
|
const obj = parseFromTokens(tokenList);
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
}
|
|
302
|
-
if (obj[1].message !== 'unexpected token') {
|
|
303
|
-
throw obj[1].message;
|
|
304
|
-
}
|
|
208
|
+
assert(obj[0] === 'error', obj);
|
|
209
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
305
210
|
},
|
|
306
211
|
() => {
|
|
307
212
|
const tokenList = tokenizeString('export default ["a"');
|
|
308
213
|
const obj = parseFromTokens(tokenList);
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
}
|
|
312
|
-
if (obj[1].message !== 'unexpected end') {
|
|
313
|
-
throw obj[1].message;
|
|
314
|
-
}
|
|
214
|
+
assert(obj[0] === 'error', obj);
|
|
215
|
+
assertEq(obj[1].message, 'unexpected end');
|
|
315
216
|
},
|
|
316
217
|
() => {
|
|
317
218
|
const tokenList = tokenizeString('export default [,1]');
|
|
318
219
|
const obj = parseFromTokens(tokenList);
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
}
|
|
322
|
-
if (obj[1].message !== 'unexpected token') {
|
|
323
|
-
throw obj[1].message;
|
|
324
|
-
}
|
|
220
|
+
assert(obj[0] === 'error', obj);
|
|
221
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
325
222
|
},
|
|
326
223
|
() => {
|
|
327
224
|
const tokenList = tokenizeString('export default [:]');
|
|
328
225
|
const obj = parseFromTokens(tokenList);
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
}
|
|
332
|
-
if (obj[1].message !== 'unexpected token') {
|
|
333
|
-
throw obj[1].message;
|
|
334
|
-
}
|
|
226
|
+
assert(obj[0] === 'error', obj);
|
|
227
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
335
228
|
},
|
|
336
229
|
() => {
|
|
337
230
|
const tokenList = tokenizeString('export default ]');
|
|
338
231
|
const obj = parseFromTokens(tokenList);
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}
|
|
342
|
-
if (obj[1].message !== 'unexpected token') {
|
|
343
|
-
throw obj[1].message;
|
|
344
|
-
}
|
|
232
|
+
assert(obj[0] === 'error', obj);
|
|
233
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
345
234
|
},
|
|
346
235
|
() => {
|
|
347
236
|
const tokenList = tokenizeString('export default {,}');
|
|
348
237
|
const obj = parseFromTokens(tokenList);
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
}
|
|
352
|
-
if (obj[1].message !== 'unexpected token') {
|
|
353
|
-
throw obj[1].message;
|
|
354
|
-
}
|
|
238
|
+
assert(obj[0] === 'error', obj);
|
|
239
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
355
240
|
},
|
|
356
241
|
() => {
|
|
357
242
|
const tokenList = tokenizeString('export default {1:2}');
|
|
358
243
|
const obj = parseFromTokens(tokenList);
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
}
|
|
362
|
-
if (obj[1].message !== 'unexpected token') {
|
|
363
|
-
throw obj[1].message;
|
|
364
|
-
}
|
|
244
|
+
assert(obj[0] === 'error', obj);
|
|
245
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
365
246
|
},
|
|
366
247
|
() => {
|
|
367
248
|
const tokenList = tokenizeString('export default {"1"2}');
|
|
368
249
|
const obj = parseFromTokens(tokenList);
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
}
|
|
372
|
-
if (obj[1].message !== 'unexpected token') {
|
|
373
|
-
throw obj[1].message;
|
|
374
|
-
}
|
|
250
|
+
assert(obj[0] === 'error', obj);
|
|
251
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
375
252
|
},
|
|
376
253
|
() => {
|
|
377
254
|
const tokenList = tokenizeString('export default {"1"::2}');
|
|
378
255
|
const obj = parseFromTokens(tokenList);
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
}
|
|
382
|
-
if (obj[1].message !== 'unexpected token') {
|
|
383
|
-
throw obj[1].message;
|
|
384
|
-
}
|
|
256
|
+
assert(obj[0] === 'error', obj);
|
|
257
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
385
258
|
},
|
|
386
259
|
() => {
|
|
387
260
|
const tokenList = tokenizeString('export default {"1":2,,"3":4');
|
|
388
261
|
const obj = parseFromTokens(tokenList);
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
}
|
|
392
|
-
if (obj[1].message !== 'unexpected token') {
|
|
393
|
-
throw obj[1].message;
|
|
394
|
-
}
|
|
262
|
+
assert(obj[0] === 'error', obj);
|
|
263
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
395
264
|
},
|
|
396
265
|
() => {
|
|
397
266
|
const tokenList = tokenizeString('export default {}}');
|
|
398
267
|
const obj = parseFromTokens(tokenList);
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
}
|
|
402
|
-
if (obj[1].message !== 'unexpected token') {
|
|
403
|
-
throw obj[1].message;
|
|
404
|
-
}
|
|
268
|
+
assert(obj[0] === 'error', obj);
|
|
269
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
405
270
|
},
|
|
406
271
|
() => {
|
|
407
272
|
const tokenList = tokenizeString('export default {"1":2');
|
|
408
273
|
const obj = parseFromTokens(tokenList);
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
}
|
|
412
|
-
if (obj[1].message !== 'unexpected end') {
|
|
413
|
-
throw obj[1].message;
|
|
414
|
-
}
|
|
274
|
+
assert(obj[0] === 'error', obj);
|
|
275
|
+
assertEq(obj[1].message, 'unexpected end');
|
|
415
276
|
},
|
|
416
277
|
() => {
|
|
417
278
|
const tokenList = tokenizeString('export default {,"1":2}');
|
|
418
279
|
const obj = parseFromTokens(tokenList);
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
}
|
|
422
|
-
if (obj[1].message !== 'unexpected token') {
|
|
423
|
-
throw obj[1].message;
|
|
424
|
-
}
|
|
280
|
+
assert(obj[0] === 'error', obj);
|
|
281
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
425
282
|
},
|
|
426
283
|
() => {
|
|
427
284
|
const tokenList = tokenizeString('export default }');
|
|
428
285
|
const obj = parseFromTokens(tokenList);
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
}
|
|
432
|
-
if (obj[1].message !== 'unexpected token') {
|
|
433
|
-
throw obj[1].message;
|
|
434
|
-
}
|
|
286
|
+
assert(obj[0] === 'error', obj);
|
|
287
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
435
288
|
},
|
|
436
289
|
() => {
|
|
437
290
|
const tokenList = tokenizeString('export default [{]}');
|
|
438
291
|
const obj = parseFromTokens(tokenList);
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
}
|
|
442
|
-
if (obj[1].message !== 'unexpected token') {
|
|
443
|
-
throw obj[1].message;
|
|
444
|
-
}
|
|
292
|
+
assert(obj[0] === 'error', obj);
|
|
293
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
445
294
|
},
|
|
446
295
|
() => {
|
|
447
296
|
const tokenList = tokenizeString('export default {[}]');
|
|
448
297
|
const obj = parseFromTokens(tokenList);
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
}
|
|
452
|
-
if (obj[1].message !== 'unexpected token') {
|
|
453
|
-
throw obj[1].message;
|
|
454
|
-
}
|
|
298
|
+
assert(obj[0] === 'error', obj);
|
|
299
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
455
300
|
},
|
|
456
301
|
() => {
|
|
457
302
|
const tokenList = tokenizeString('export default 10-5');
|
|
458
303
|
const obj = parseFromTokens(tokenList);
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
}
|
|
462
|
-
if (obj[1].message !== 'unexpected token') {
|
|
463
|
-
throw obj[1].message;
|
|
464
|
-
}
|
|
304
|
+
assert(obj[0] === 'error', obj);
|
|
305
|
+
assertEq(obj[1].message, 'unexpected token');
|
|
465
306
|
},
|
|
466
307
|
],
|
|
467
308
|
errorMetadata: [
|
|
468
309
|
() => {
|
|
310
|
+
// column 17 is the ',' itself — the tokenizer's metadata is start-anchored
|
|
311
|
+
// (each token's own position), unlike the previous tokenizer's metadata, which
|
|
312
|
+
// lagged by one token (an artifact of when its state machine flushed a token).
|
|
469
313
|
const tokenList = tokenizeString('export default [,]');
|
|
470
314
|
const obj = parseFromTokens(tokenList);
|
|
471
|
-
|
|
472
|
-
throw obj;
|
|
473
|
-
}
|
|
315
|
+
assert(obj[0] === 'error', obj);
|
|
474
316
|
const errorString = stringify(sort)(obj[1]);
|
|
475
|
-
if (errorString !== '{"message":"unexpected token","metadata":{"column":
|
|
317
|
+
if (errorString !== '{"message":"unexpected token","metadata":{"column":17,"line":1,"path":""}}') {
|
|
476
318
|
throw errorString;
|
|
477
319
|
}
|
|
478
320
|
},
|
|
@@ -481,20 +323,14 @@ export const proof = {
|
|
|
481
323
|
() => {
|
|
482
324
|
const tokenList = tokenizeString(' export default [ 0 , 1 , 2 ] ');
|
|
483
325
|
const obj = parseFromTokens(tokenList);
|
|
484
|
-
|
|
485
|
-
throw obj;
|
|
486
|
-
}
|
|
326
|
+
assert(obj[0] === 'ok', obj);
|
|
487
327
|
const result = stringifyDjsModule(obj[1]);
|
|
488
|
-
|
|
489
|
-
throw result;
|
|
490
|
-
}
|
|
328
|
+
assertEq(result, '[[],[["array",[0,1,2]]]]');
|
|
491
329
|
},
|
|
492
330
|
() => {
|
|
493
331
|
const tokenList = tokenizeString(' export default { "a" : 0 , "b" : 1 } ');
|
|
494
332
|
const obj = parseFromTokens(tokenList);
|
|
495
|
-
|
|
496
|
-
throw obj;
|
|
497
|
-
}
|
|
333
|
+
assert(obj[0] === 'ok', obj);
|
|
498
334
|
const result = stringifyDjsModule(obj[1]);
|
|
499
335
|
if (result !== '[[],[{"a":0,"b":1}]]') {
|
|
500
336
|
throw result;
|
|
@@ -503,20 +339,14 @@ export const proof = {
|
|
|
503
339
|
() => {
|
|
504
340
|
const tokenList = tokenizeString('\nexport\ndefault\n[\n0\n,\n1\n,\n2\n]\n');
|
|
505
341
|
const obj = parseFromTokens(tokenList);
|
|
506
|
-
|
|
507
|
-
throw obj;
|
|
508
|
-
}
|
|
342
|
+
assert(obj[0] === 'ok', obj);
|
|
509
343
|
const result = stringifyDjsModule(obj[1]);
|
|
510
|
-
|
|
511
|
-
throw result;
|
|
512
|
-
}
|
|
344
|
+
assertEq(result, '[[],[["array",[0,1,2]]]]');
|
|
513
345
|
},
|
|
514
346
|
() => {
|
|
515
347
|
const tokenList = tokenizeString('\rexport\rdefault\r{\r"a"\r:\r0\r,\r"b"\r:\r1\r}\r');
|
|
516
348
|
const obj = parseFromTokens(tokenList);
|
|
517
|
-
|
|
518
|
-
throw obj;
|
|
519
|
-
}
|
|
349
|
+
assert(obj[0] === 'ok', obj);
|
|
520
350
|
const result = stringifyDjsModule(obj[1]);
|
|
521
351
|
if (result !== '[[],[{"a":0,"b":1}]]') {
|
|
522
352
|
throw result;
|
|
@@ -527,42 +357,28 @@ export const proof = {
|
|
|
527
357
|
() => {
|
|
528
358
|
const tokenList = tokenizeString('null');
|
|
529
359
|
const obj = parseFromTokens(tokenList);
|
|
530
|
-
|
|
531
|
-
throw obj;
|
|
532
|
-
}
|
|
360
|
+
assert(obj[0] === 'ok', obj);
|
|
533
361
|
const result = stringifyDjsModule(obj[1]);
|
|
534
|
-
|
|
535
|
-
throw result;
|
|
536
|
-
}
|
|
362
|
+
assertEq(result, '[[],[null]]');
|
|
537
363
|
},
|
|
538
364
|
() => {
|
|
539
365
|
const tokenList = tokenizeString('1');
|
|
540
366
|
const obj = parseFromTokens(tokenList);
|
|
541
|
-
|
|
542
|
-
throw obj;
|
|
543
|
-
}
|
|
367
|
+
assert(obj[0] === 'ok', obj);
|
|
544
368
|
const result = stringifyDjsModule(obj[1]);
|
|
545
|
-
|
|
546
|
-
throw result;
|
|
547
|
-
}
|
|
369
|
+
assertEq(result, '[[],[1]]');
|
|
548
370
|
},
|
|
549
371
|
() => {
|
|
550
372
|
const tokenList = tokenizeString('[]');
|
|
551
373
|
const obj = parseFromTokens(tokenList);
|
|
552
|
-
|
|
553
|
-
throw obj;
|
|
554
|
-
}
|
|
374
|
+
assert(obj[0] === 'ok', obj);
|
|
555
375
|
const result = stringifyDjsModule(obj[1]);
|
|
556
|
-
|
|
557
|
-
throw result;
|
|
558
|
-
}
|
|
376
|
+
assertEq(result, '[[],[["array",[]]]]');
|
|
559
377
|
},
|
|
560
378
|
() => {
|
|
561
379
|
const tokenList = tokenizeString('{"valid":"json"}');
|
|
562
380
|
const obj = parseFromTokens(tokenList);
|
|
563
|
-
|
|
564
|
-
throw obj;
|
|
565
|
-
}
|
|
381
|
+
assert(obj[0] === 'ok', obj);
|
|
566
382
|
const result = stringifyDjsModule(obj[1]);
|
|
567
383
|
if (result !== '[[],[{"valid":"json"}]]') {
|
|
568
384
|
throw result;
|
|
@@ -573,74 +389,48 @@ export const proof = {
|
|
|
573
389
|
() => {
|
|
574
390
|
const tokenList = tokenizeString('module=null');
|
|
575
391
|
const obj = parseFromTokens(tokenList);
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
}
|
|
579
|
-
if (obj[1].message !== 'const not found') {
|
|
580
|
-
throw obj;
|
|
581
|
-
}
|
|
392
|
+
assert(obj[0] === 'error', obj);
|
|
393
|
+
assertEq(obj[1].message, 'const not found', obj);
|
|
582
394
|
},
|
|
583
395
|
() => {
|
|
584
396
|
const tokenList = tokenizeString('export null');
|
|
585
397
|
const obj = parseFromTokens(tokenList);
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
}
|
|
589
|
-
if (obj[1].message !== 'unexpected token') {
|
|
590
|
-
throw obj;
|
|
591
|
-
}
|
|
398
|
+
assert(obj[0] === 'error', obj);
|
|
399
|
+
assertEq(obj[1].message, 'unexpected token', obj);
|
|
592
400
|
},
|
|
593
401
|
() => {
|
|
594
402
|
const tokenList = tokenizeString('export default = null');
|
|
595
403
|
const obj = parseFromTokens(tokenList);
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
}
|
|
599
|
-
if (obj[1].message !== 'unexpected token') {
|
|
600
|
-
throw obj;
|
|
601
|
-
}
|
|
404
|
+
assert(obj[0] === 'error', obj);
|
|
405
|
+
assertEq(obj[1].message, 'unexpected token', obj);
|
|
602
406
|
},
|
|
603
407
|
],
|
|
604
408
|
validWithConst: [
|
|
605
409
|
() => {
|
|
606
410
|
const tokenList = tokenizeString('const a = 1 \n const b = 2 \n export default 3');
|
|
607
411
|
const obj = parseFromTokens(tokenList);
|
|
608
|
-
|
|
609
|
-
throw obj;
|
|
610
|
-
}
|
|
412
|
+
assert(obj[0] === 'ok', obj);
|
|
611
413
|
const result = stringifyDjsModule(obj[1]);
|
|
612
|
-
|
|
613
|
-
throw result;
|
|
614
|
-
}
|
|
414
|
+
assertEq(result, '[[],[1,2,3]]');
|
|
615
415
|
},
|
|
616
416
|
() => {
|
|
617
417
|
const tokenList = tokenizeString('const a = 1 \n const b = 2 \n export default b');
|
|
618
418
|
const obj = parseFromTokens(tokenList);
|
|
619
|
-
|
|
620
|
-
throw obj;
|
|
621
|
-
}
|
|
419
|
+
assert(obj[0] === 'ok', obj);
|
|
622
420
|
const result = stringifyDjsModule(obj[1]);
|
|
623
|
-
|
|
624
|
-
throw result;
|
|
625
|
-
}
|
|
421
|
+
assertEq(result, '[[],[1,2,["cref",1]]]');
|
|
626
422
|
},
|
|
627
423
|
() => {
|
|
628
424
|
const tokenList = tokenizeString('const a = 1 \n const b = 2 \n export default [b,a,b]');
|
|
629
425
|
const obj = parseFromTokens(tokenList);
|
|
630
|
-
|
|
631
|
-
throw obj;
|
|
632
|
-
}
|
|
426
|
+
assert(obj[0] === 'ok', obj);
|
|
633
427
|
const result = stringifyDjsModule(obj[1]);
|
|
634
|
-
|
|
635
|
-
throw result;
|
|
636
|
-
}
|
|
428
|
+
assertEq(result, '[[],[1,2,["array",[["cref",1],["cref",0],["cref",1]]]]]');
|
|
637
429
|
},
|
|
638
430
|
() => {
|
|
639
431
|
const tokenList = tokenizeString('const a = 1 \n const b = 2 \n export default {"1st":b,"2nd":a,"3rd":b}');
|
|
640
432
|
const obj = parseFromTokens(tokenList);
|
|
641
|
-
|
|
642
|
-
throw obj;
|
|
643
|
-
}
|
|
433
|
+
assert(obj[0] === 'ok', obj);
|
|
644
434
|
const result = stringifyDjsModule(obj[1]);
|
|
645
435
|
if (result !== '[[],[1,2,{"1st":["cref",1],"2nd":["cref",0],"3rd":["cref",1]}]]') {
|
|
646
436
|
throw result;
|
|
@@ -651,142 +441,90 @@ export const proof = {
|
|
|
651
441
|
() => {
|
|
652
442
|
const tokenList = tokenizeString('const a = 1 const b = 2 export default 3');
|
|
653
443
|
const obj = parseFromTokens(tokenList);
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
}
|
|
657
|
-
if (obj[1].message !== 'unexpected token') {
|
|
658
|
-
throw obj;
|
|
659
|
-
}
|
|
444
|
+
assert(obj[0] === 'error', obj);
|
|
445
|
+
assertEq(obj[1].message, 'unexpected token', obj);
|
|
660
446
|
},
|
|
661
447
|
() => {
|
|
662
448
|
const tokenList = tokenizeString('const = 1 \n const b = 2 \n export default 3');
|
|
663
449
|
const obj = parseFromTokens(tokenList);
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
}
|
|
667
|
-
if (obj[1].message !== 'unexpected token') {
|
|
668
|
-
throw obj;
|
|
669
|
-
}
|
|
450
|
+
assert(obj[0] === 'error', obj);
|
|
451
|
+
assertEq(obj[1].message, 'unexpected token', obj);
|
|
670
452
|
},
|
|
671
453
|
() => {
|
|
672
454
|
const tokenList = tokenizeString('const a = 1 \n const a = 2 \n export default 3');
|
|
673
455
|
const obj = parseFromTokens(tokenList);
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
}
|
|
677
|
-
if (obj[1].message !== 'duplicate id') {
|
|
678
|
-
throw obj;
|
|
679
|
-
}
|
|
456
|
+
assert(obj[0] === 'error', obj);
|
|
457
|
+
assertEq(obj[1].message, 'duplicate id', obj);
|
|
680
458
|
},
|
|
681
459
|
],
|
|
682
460
|
validWithArgs: [
|
|
683
461
|
() => {
|
|
684
462
|
const tokenList = tokenizeString('import a from "test/test.f.mjs" \n export default a');
|
|
685
463
|
const obj = parseFromTokens(tokenList);
|
|
686
|
-
|
|
687
|
-
throw obj;
|
|
688
|
-
}
|
|
464
|
+
assert(obj[0] === 'ok', obj);
|
|
689
465
|
const result = stringifyDjsModule(obj[1]);
|
|
690
|
-
|
|
691
|
-
throw result;
|
|
692
|
-
}
|
|
466
|
+
assertEq(result, '[["test/test.f.mjs"],[["aref",0]]]');
|
|
693
467
|
},
|
|
694
468
|
() => {
|
|
695
469
|
const tokenList = tokenizeString('import a from "first/test.f.mjs" \n import b from "second/test.f.mjs" \n export default [b, a, b]');
|
|
696
470
|
const obj = parseFromTokens(tokenList);
|
|
697
|
-
|
|
698
|
-
throw obj;
|
|
699
|
-
}
|
|
471
|
+
assert(obj[0] === 'ok', obj);
|
|
700
472
|
const result = stringifyDjsModule(obj[1]);
|
|
701
|
-
|
|
702
|
-
throw result;
|
|
703
|
-
}
|
|
473
|
+
assertEq(result, '[["first/test.f.mjs","second/test.f.mjs"],[["array",[["aref",1],["aref",0],["aref",1]]]]]');
|
|
704
474
|
},
|
|
705
475
|
() => {
|
|
706
476
|
const tokenList = tokenizeString('import a from "test/test.f.mjs" \n const b = null \n export default [b, a, b]');
|
|
707
477
|
const obj = parseFromTokens(tokenList);
|
|
708
|
-
|
|
709
|
-
throw obj;
|
|
710
|
-
}
|
|
478
|
+
assert(obj[0] === 'ok', obj);
|
|
711
479
|
const result = stringifyDjsModule(obj[1]);
|
|
712
|
-
|
|
713
|
-
throw result;
|
|
714
|
-
}
|
|
480
|
+
assertEq(result, '[["test/test.f.mjs"],[null,["array",[["cref",0],["aref",0],["cref",0]]]]]');
|
|
715
481
|
},
|
|
716
482
|
],
|
|
717
483
|
invalidWithArgs: [
|
|
718
484
|
() => {
|
|
719
485
|
const tokenList = tokenizeString('import a from "test/test.f.mjs" export default a');
|
|
720
486
|
const obj = parseFromTokens(tokenList);
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
}
|
|
724
|
-
if (obj[1].message !== 'unexpected token') {
|
|
725
|
-
throw obj;
|
|
726
|
-
}
|
|
487
|
+
assert(obj[0] === 'error', obj);
|
|
488
|
+
assertEq(obj[1].message, 'unexpected token', obj);
|
|
727
489
|
},
|
|
728
490
|
() => {
|
|
729
491
|
const tokenList = tokenizeString('import a from \n export default a');
|
|
730
492
|
const obj = parseFromTokens(tokenList);
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
}
|
|
734
|
-
if (obj[1].message !== 'unexpected token') {
|
|
735
|
-
throw obj;
|
|
736
|
-
}
|
|
493
|
+
assert(obj[0] === 'error', obj);
|
|
494
|
+
assertEq(obj[1].message, 'unexpected token', obj);
|
|
737
495
|
},
|
|
738
496
|
() => {
|
|
739
497
|
const tokenList = tokenizeString('import a "test/test.f.mjs" \n export default a');
|
|
740
498
|
const obj = parseFromTokens(tokenList);
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
}
|
|
744
|
-
if (obj[1].message !== 'unexpected token') {
|
|
745
|
-
throw obj;
|
|
746
|
-
}
|
|
499
|
+
assert(obj[0] === 'error', obj);
|
|
500
|
+
assertEq(obj[1].message, 'unexpected token', obj);
|
|
747
501
|
},
|
|
748
502
|
() => {
|
|
749
503
|
const tokenList = tokenizeString('import from "test/test.f.mjs" \n export default a');
|
|
750
504
|
const obj = parseFromTokens(tokenList);
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
}
|
|
754
|
-
if (obj[1].message !== 'unexpected token') {
|
|
755
|
-
throw obj;
|
|
756
|
-
}
|
|
505
|
+
assert(obj[0] === 'error', obj);
|
|
506
|
+
assertEq(obj[1].message, 'unexpected token', obj);
|
|
757
507
|
},
|
|
758
508
|
() => {
|
|
759
509
|
const tokenList = tokenizeString('import a from "first/test.f.mjs" \n import a from "second/test.f.mjs" \n export default [b, a, b]');
|
|
760
510
|
const obj = parseFromTokens(tokenList);
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
}
|
|
764
|
-
if (obj[1].message !== 'duplicate id') {
|
|
765
|
-
throw obj;
|
|
766
|
-
}
|
|
511
|
+
assert(obj[0] === 'error', obj);
|
|
512
|
+
assertEq(obj[1].message, 'duplicate id', obj);
|
|
767
513
|
},
|
|
768
514
|
() => {
|
|
769
515
|
const tokenList = tokenizeString('import a from "test/test.f.mjs" \n const a = null \n export default null');
|
|
770
516
|
const obj = parseFromTokens(tokenList);
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
}
|
|
774
|
-
if (obj[1].message !== 'duplicate id') {
|
|
775
|
-
throw obj;
|
|
776
|
-
}
|
|
517
|
+
assert(obj[0] === 'error', obj);
|
|
518
|
+
assertEq(obj[1].message, 'duplicate id', obj);
|
|
777
519
|
},
|
|
778
520
|
],
|
|
779
521
|
comments: [
|
|
780
522
|
() => {
|
|
781
523
|
const tokenList = tokenizeString('export //comment \n default /* comment */ null //comment');
|
|
782
524
|
const obj = parseFromTokens(tokenList);
|
|
783
|
-
|
|
784
|
-
throw obj;
|
|
785
|
-
}
|
|
525
|
+
assert(obj[0] === 'ok', obj);
|
|
786
526
|
const result = stringifyDjsModule(obj[1]);
|
|
787
|
-
|
|
788
|
-
throw result;
|
|
789
|
-
}
|
|
527
|
+
assertEq(result, '[[],[null]]');
|
|
790
528
|
},
|
|
791
529
|
]
|
|
792
530
|
};
|