functionalscript 0.3.4 → 0.3.5
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/com/cpp/module.f.d.ts +10 -0
- package/com/cpp/module.f.js +107 -0
- package/com/cpp/test.f.d.ts +2 -0
- package/com/cpp/{test.f.ts → test.f.js} +9 -11
- package/com/cpp/testlib.f.d.ts +2 -0
- package/com/cpp/testlib.f.js +5 -0
- package/com/cs/module.f.d.ts +12 -0
- package/com/cs/module.f.js +80 -0
- package/com/cs/test.f.d.ts +2 -0
- package/com/cs/{test.f.ts → test.f.js} +9 -11
- package/com/cs/testlib.f.d.ts +2 -0
- package/com/cs/testlib.f.js +5 -0
- package/com/rust/module.f.d.ts +15 -0
- package/com/rust/module.f.js +169 -0
- package/com/rust/test.f.d.ts +2 -0
- package/com/rust/{test.f.ts → test.f.js} +7 -7
- package/com/rust/testlib.f.d.ts +2 -0
- package/com/rust/testlib.f.js +5 -0
- package/com/test/build.f.d.ts +20 -0
- package/com/test/build.f.js +58 -0
- package/com/types/module.f.d.ts +28 -0
- package/com/types/module.f.js +8 -0
- package/com/types/testlib.f.d.ts +44 -0
- package/com/types/{testlib.f.ts → testlib.f.js} +2 -3
- package/commonjs/build/module.f.d.ts +6 -0
- package/commonjs/build/module.f.js +69 -0
- package/commonjs/build/test.f.d.ts +2 -0
- package/commonjs/build/test.f.js +96 -0
- package/commonjs/module/function/{module.f.ts → module.f.d.ts} +5 -10
- package/commonjs/module/function/module.f.js +4 -0
- package/commonjs/module/module.f.d.ts +18 -0
- package/commonjs/module/module.f.js +12 -0
- package/commonjs/module.f.d.ts +6 -0
- package/commonjs/module.f.js +1 -0
- package/commonjs/package/dependencies/module.f.d.ts +7 -0
- package/commonjs/package/dependencies/module.f.js +13 -0
- package/commonjs/package/dependencies/test.f.d.ts +2 -0
- package/commonjs/package/dependencies/test.f.js +15 -0
- package/commonjs/package/module.f.d.ts +17 -0
- package/commonjs/package/module.f.js +18 -0
- package/commonjs/package/test.f.d.ts +2 -0
- package/commonjs/package/test.f.js +27 -0
- package/commonjs/path/module.f.d.ts +24 -0
- package/commonjs/path/module.f.js +114 -0
- package/commonjs/path/test.f.d.ts +25 -0
- package/commonjs/path/{test.f.ts → test.f.js} +123 -89
- package/crypto/prime_field/module.f.d.ts +43 -0
- package/crypto/prime_field/module.f.js +78 -0
- package/crypto/prime_field/test.f.d.ts +13 -0
- package/crypto/prime_field/test.f.js +149 -0
- package/crypto/secp/module.f.d.ts +68 -0
- package/crypto/secp/module.f.js +127 -0
- package/crypto/secp/test.f.d.ts +5 -0
- package/crypto/secp/test.f.js +72 -0
- package/crypto/sha2/module.f.d.ts +13 -0
- package/crypto/sha2/module.f.js +145 -0
- package/crypto/sha2/test.f.d.ts +9 -0
- package/crypto/sha2/test.f.js +82 -0
- package/dev/module.f.d.ts +1 -0
- package/dev/module.f.js +1 -0
- package/dev/test/module.f.d.ts +20 -0
- package/dev/test/module.f.js +75 -0
- package/dev/test.f.d.ts +9 -0
- package/dev/{test.f.ts → test.f.js} +22 -24
- package/djs/module.f.d.ts +17 -0
- package/djs/module.f.js +63 -0
- package/djs/parser/module.f.d.ts +12 -0
- package/djs/parser/module.f.js +333 -0
- package/djs/parser/test.f.d.ts +12 -0
- package/djs/parser/test.f.js +717 -0
- package/djs/serializer/module.f.d.ts +9 -0
- package/djs/serializer/module.f.js +81 -0
- package/djs/test/input.f.d.ts +2 -0
- package/djs/test/input.f.js +4 -0
- package/djs/test/m.f.d.ts +2 -0
- package/djs/test/m.f.js +1 -0
- package/djs/test.f.d.ts +12 -0
- package/djs/test.f.js +84 -0
- package/djs/tokenizer/module.f.d.ts +8 -0
- package/djs/tokenizer/module.f.js +60 -0
- package/djs/tokenizer/test.f.d.ts +7 -0
- package/djs/tokenizer/test.f.js +529 -0
- package/fsc/module.f.d.ts +5 -0
- package/fsc/module.f.js +75 -0
- package/fsc/test.f.d.ts +4 -0
- package/fsc/test.f.js +19 -0
- package/fsm/module.f.d.ts +13 -0
- package/fsm/module.f.js +59 -0
- package/fsm/test.f.d.ts +5 -0
- package/fsm/test.f.js +137 -0
- package/html/module.f.d.ts +13 -0
- package/html/module.f.js +58 -0
- package/html/test.f.d.ts +9 -0
- package/html/test.f.js +42 -0
- package/issues/test.f.d.ts +16 -0
- package/issues/test.f.js +70 -0
- package/js/tokenizer/module.f.d.ts +86 -0
- package/js/tokenizer/module.f.js +503 -0
- package/js/tokenizer/test.f.d.ts +9 -0
- package/js/tokenizer/test.f.js +905 -0
- package/json/module.f.d.ts +20 -0
- package/json/module.f.js +68 -0
- package/json/parser/module.f.d.ts +5 -0
- package/json/parser/module.f.js +155 -0
- package/json/parser/test.f.d.ts +5 -0
- package/json/parser/test.f.js +328 -0
- package/json/serializer/module.f.d.ts +7 -0
- package/json/serializer/module.f.js +21 -0
- package/json/serializer/test.f.d.ts +8 -0
- package/json/serializer/test.f.js +87 -0
- package/json/test.f.d.ts +8 -0
- package/json/test.f.js +61 -0
- package/json/tokenizer/module.f.d.ts +8 -0
- package/json/tokenizer/module.f.js +52 -0
- package/json/tokenizer/test.f.d.ts +6 -0
- package/json/tokenizer/test.f.js +419 -0
- package/nanvm-lib/tests/test.f.d.ts +27 -0
- package/nanvm-lib/tests/test.f.js +84 -0
- package/nodejs/version/module.f.d.ts +11 -0
- package/nodejs/version/module.f.js +16 -0
- package/nodejs/version/test.f.d.ts +2 -0
- package/nodejs/version/{test.f.ts → test.f.js} +13 -22
- package/package.json +9 -5
- package/text/ascii/module.f.d.ts +129 -0
- package/text/ascii/module.f.js +148 -0
- package/text/ascii/test.f.d.ts +4 -0
- package/text/ascii/test.f.js +14 -0
- package/text/module.f.d.ts +8 -0
- package/text/module.f.js +10 -0
- package/text/sgr/module.f.d.ts +8 -0
- package/text/sgr/module.f.js +8 -0
- package/text/test.f.d.ts +2 -0
- package/text/test.f.js +18 -0
- package/text/utf16/module.f.d.ts +9 -0
- package/text/utf16/module.f.js +66 -0
- package/text/utf16/test.f.d.ts +6 -0
- package/text/utf16/test.f.js +144 -0
- package/text/utf8/module.f.d.ts +6 -0
- package/text/utf8/module.f.js +112 -0
- package/text/utf8/test.f.d.ts +6 -0
- package/text/utf8/test.f.js +175 -0
- package/types/array/module.f.d.ts +21 -0
- package/types/array/module.f.js +23 -0
- package/types/array/test.f.d.ts +10 -0
- package/types/array/test.f.js +116 -0
- package/types/bigfloat/module.f.d.ts +3 -0
- package/types/bigfloat/module.f.js +66 -0
- package/types/bigfloat/test.f.d.ts +6 -0
- package/types/bigfloat/test.f.js +349 -0
- package/types/bigint/module.f.d.ts +54 -0
- package/types/bigint/{module.f.ts → module.f.js} +42 -65
- package/types/bigint/test.f.d.ts +16 -0
- package/types/bigint/test.f.js +199 -0
- package/types/bit_vec/module.f.d.ts +134 -0
- package/types/bit_vec/{module.f.ts → module.f.js} +47 -65
- package/types/bit_vec/test.f.d.ts +22 -0
- package/types/bit_vec/test.f.js +210 -0
- package/types/btree/find/module.f.d.ts +20 -0
- package/types/btree/find/module.f.js +84 -0
- package/types/btree/find/test.f.d.ts +2 -0
- package/types/btree/find/test.f.js +152 -0
- package/types/btree/module.f.d.ts +4 -0
- package/types/btree/module.f.js +31 -0
- package/types/btree/remove/module.f.d.ts +4 -0
- package/types/btree/remove/module.f.js +174 -0
- package/types/btree/remove/test.f.d.ts +5 -0
- package/types/btree/remove/test.f.js +634 -0
- package/types/btree/set/module.f.d.ts +3 -0
- package/types/btree/set/module.f.js +103 -0
- package/types/btree/set/test.f.d.ts +2 -0
- package/types/btree/set/test.f.js +360 -0
- package/types/btree/test.f.d.ts +8 -0
- package/types/btree/test.f.js +75 -0
- package/types/btree/types/module.f.d.ts +11 -0
- package/types/btree/types/module.f.js +1 -0
- package/types/byte_set/module.f.d.ts +16 -0
- package/types/byte_set/module.f.js +28 -0
- package/types/byte_set/test.f.d.ts +12 -0
- package/types/byte_set/test.f.js +122 -0
- package/types/function/compare/module.f.d.ts +10 -0
- package/types/function/compare/module.f.js +7 -0
- package/types/function/compare/test.f.d.ts +2 -0
- package/types/function/compare/test.f.js +8 -0
- package/types/function/module.f.d.ts +28 -0
- package/types/function/module.f.js +19 -0
- package/types/function/operator/module.f.d.ts +20 -0
- package/types/function/operator/module.f.js +18 -0
- package/types/function/test.f.d.ts +2 -0
- package/types/function/test.f.js +12 -0
- package/types/list/module.f.d.ts +50 -0
- package/types/list/module.f.js +171 -0
- package/types/list/test.f.d.ts +22 -0
- package/types/list/test.f.js +395 -0
- package/types/map/module.f.d.ts +14 -0
- package/types/map/module.f.js +31 -0
- package/types/map/test.f.d.ts +5 -0
- package/types/map/test.f.js +114 -0
- package/types/nibble_set/module.f.d.ts +10 -0
- package/types/nibble_set/module.f.js +9 -0
- package/types/nibble_set/test.f.d.ts +12 -0
- package/types/nibble_set/test.f.js +90 -0
- package/types/nullable/module.f.d.ts +3 -0
- package/types/nullable/module.f.js +2 -0
- package/types/nullable/test.f.d.ts +2 -0
- package/types/nullable/test.f.js +12 -0
- package/types/number/module.f.d.ts +6 -0
- package/types/number/module.f.js +8 -0
- package/types/number/test.f.d.ts +11 -0
- package/types/number/test.f.js +124 -0
- package/types/object/module.f.d.ts +10 -0
- package/types/object/module.f.js +12 -0
- package/types/object/test.f.d.ts +5 -0
- package/types/object/test.f.js +17 -0
- package/types/range/module.f.d.ts +3 -0
- package/types/range/module.f.js +2 -0
- package/types/range/test.f.d.ts +2 -0
- package/types/range/test.f.js +18 -0
- package/types/range_map/module.f.d.ts +14 -0
- package/types/range_map/module.f.js +51 -0
- package/types/range_map/test.f.d.ts +6 -0
- package/types/range_map/test.f.js +176 -0
- package/types/result/module.f.d.ts +7 -0
- package/types/result/module.f.js +8 -0
- package/types/sorted_list/module.f.d.ts +16 -0
- package/types/sorted_list/module.f.js +56 -0
- package/types/sorted_list/test.f.d.ts +5 -0
- package/types/sorted_list/test.f.js +64 -0
- package/types/sorted_set/module.f.d.ts +7 -0
- package/types/sorted_set/module.f.js +14 -0
- package/types/sorted_set/test.f.d.ts +6 -0
- package/types/sorted_set/test.f.js +78 -0
- package/types/string/module.f.d.ts +6 -0
- package/types/string/module.f.js +11 -0
- package/types/string/test.f.d.ts +15 -0
- package/types/string/test.f.js +58 -0
- package/types/string_set/module.f.d.ts +9 -0
- package/types/string_set/module.f.js +22 -0
- package/types/string_set/test.f.d.ts +5 -0
- package/types/string_set/test.f.js +65 -0
- package/.github/FUNDING.yml +0 -12
- package/.github/dependabot.yml +0 -11
- package/.github/workflows/ci.yml +0 -88
- package/.github/workflows/npm-publish.yml +0 -53
- package/CHANGELOG.md +0 -29
- package/Cargo.lock +0 -18
- package/Cargo.toml +0 -7
- package/com/README.md +0 -3
- package/com/cpp/README.md +0 -80
- package/com/cpp/module.f.ts +0 -180
- package/com/cpp/nanocom.hpp +0 -195
- package/com/cpp/testlib.f.ts +0 -8
- package/com/cs/module.f.ts +0 -145
- package/com/cs/testlib.f.ts +0 -8
- package/com/proposals.md +0 -28
- package/com/rust/module.f.ts +0 -287
- package/com/rust/nanocom/Cargo.lock +0 -7
- package/com/rust/nanocom/Cargo.toml +0 -15
- package/com/rust/nanocom/README.md +0 -56
- package/com/rust/nanocom/src/class.rs +0 -6
- package/com/rust/nanocom/src/cobject.rs +0 -90
- package/com/rust/nanocom/src/guid.rs +0 -15
- package/com/rust/nanocom/src/hresult.rs +0 -7
- package/com/rust/nanocom/src/interface.rs +0 -9
- package/com/rust/nanocom/src/iunknown.rs +0 -13
- package/com/rust/nanocom/src/lib.rs +0 -20
- package/com/rust/nanocom/src/object.rs +0 -34
- package/com/rust/nanocom/src/ref.rs +0 -57
- package/com/rust/nanocom/src/vmt.rs +0 -7
- package/com/rust/nanocom/tests/it.rs +0 -186
- package/com/rust/nanocom/tests/itmod.rs +0 -195
- package/com/rust/testlib.f.ts +0 -8
- package/com/test/build.f.ts +0 -111
- package/com/test/build.ts +0 -45
- package/com/test/cpp/main.cpp +0 -74
- package/com/test/cs/Program.cs +0 -31
- package/com/test/cs/cs.csproj +0 -16
- package/com/test/rust/Cargo.toml +0 -12
- package/com/test/rust/src/lib.rs +0 -56
- package/com/types/module.f.ts +0 -62
- package/commonjs/README.md +0 -94
- package/commonjs/build/module.f.ts +0 -100
- package/commonjs/build/test.f.ts +0 -107
- package/commonjs/module/module.f.ts +0 -41
- package/commonjs/module.f.ts +0 -7
- package/commonjs/module.ts +0 -31
- package/commonjs/package/dependencies/module.f.ts +0 -22
- package/commonjs/package/dependencies/test.f.ts +0 -8
- package/commonjs/package/module.f.ts +0 -31
- package/commonjs/package/test.f.ts +0 -12
- package/commonjs/path/README.md +0 -17
- package/commonjs/path/module.f.ts +0 -171
- package/commonjs/test.ts +0 -64
- package/crypto/README.md +0 -3
- package/crypto/prime_field/module.f.ts +0 -114
- package/crypto/prime_field/test.f.ts +0 -95
- package/crypto/secp/module.f.ts +0 -182
- package/crypto/secp/test.f.ts +0 -68
- package/crypto/sha2/module.f.ts +0 -215
- package/crypto/sha2/test.f.ts +0 -83
- package/deno.json +0 -71
- package/dev/README.md +0 -8
- package/dev/index.ts +0 -3
- package/dev/module.f.ts +0 -1
- package/dev/module.ts +0 -195
- package/dev/test/module.f.ts +0 -135
- package/dev/test.ts +0 -53
- package/djs/README.md +0 -54
- package/djs/module.f.ts +0 -76
- package/djs/parser/module.f.ts +0 -509
- package/djs/parser/test.f.ts +0 -461
- package/djs/serializer/module.f.ts +0 -90
- package/djs/test.f.ts +0 -67
- package/djs/tokenizer/module.f.ts +0 -99
- package/djs/tokenizer/test.f.ts +0 -364
- package/doc/LANGUAGE.md +0 -255
- package/doc/README.md +0 -61
- package/doc/byte-code.md +0 -59
- package/doc/fa.md +0 -174
- package/doc/predefined.md +0 -143
- package/doc/proposals.md +0 -21
- package/doc/vm/README.md +0 -24
- package/doc/vm-rearchitecture.md +0 -129
- package/doc/vm.md +0 -150
- package/fsc/README.md +0 -111
- package/fsc/module.f.ts +0 -122
- package/fsc/test.f.ts +0 -21
- package/fsm/README.md +0 -113
- package/fsm/module.f.ts +0 -107
- package/fsm/test.f.ts +0 -139
- package/funding.json +0 -61
- package/html/README.md +0 -32
- package/html/module.f.ts +0 -109
- package/html/test.f.ts +0 -37
- package/issues/01-test-debug.md +0 -3
- package/issues/02-esm.md +0 -8
- package/issues/03-djs.md +0 -57
- package/issues/05-publish.md +0 -40
- package/issues/11-fs-load.md +0 -13
- package/issues/17-djs-extension.md +0 -6
- package/issues/README.md +0 -42
- package/issues/lang/1000-json.md +0 -50
- package/issues/lang/2110-default-export.md +0 -11
- package/issues/lang/2120-const.md +0 -14
- package/issues/lang/2130-default-import.md +0 -10
- package/issues/lang/2210-block-comment.md +0 -12
- package/issues/lang/2220-namespace-import.md +0 -25
- package/issues/lang/2310-undefined.md +0 -7
- package/issues/lang/2320-bigint.md +0 -7
- package/issues/lang/2330-property-accessor.md +0 -225
- package/issues/lang/2340-operators.md +0 -41
- package/issues/lang/2350-grouping.md +0 -11
- package/issues/lang/2360-built-in.md +0 -81
- package/issues/lang/2410-identifier-property.md +0 -9
- package/issues/lang/2420-line-comment.md +0 -10
- package/issues/lang/2430-trailing-comma.md +0 -13
- package/issues/lang/2440-shorthand.md +0 -8
- package/issues/lang/2450-destructuring.md +0 -12
- package/issues/lang/3110-function.md +0 -35
- package/issues/lang/3120-parameters.md +0 -9
- package/issues/lang/3130-body-const.md +0 -12
- package/issues/lang/3220-let.md +0 -11
- package/issues/lang/3240-export.md +0 -44
- package/issues/lang/3370-type-inference.md +0 -69
- package/issues/lang/3380-promise.md +0 -22
- package/issues/lang/3390-class.md +0 -3
- package/issues/lang/3410-expression.md +0 -12
- package/issues/lang/3420-one-parameter.md +0 -10
- package/issues/lang/3430-assignments.md +0 -23
- package/issues/lang/README.md +0 -193
- package/issues/test.f.ts +0 -58
- package/js/tokenizer/module.f.ts +0 -882
- package/js/tokenizer/test.f.ts +0 -617
- package/json/html/README.md +0 -49
- package/json/module.f.ts +0 -94
- package/json/parser/module.f.ts +0 -221
- package/json/parser/test.f.ts +0 -255
- package/json/serializer/module.f.ts +0 -74
- package/json/serializer/test.f.ts +0 -64
- package/json/test.f.ts +0 -48
- package/json/tokenizer/module.f.ts +0 -85
- package/json/tokenizer/test.f.ts +0 -290
- package/nanvm-lib/Cargo.toml +0 -6
- package/nanvm-lib/src/extension.rs +0 -130
- package/nanvm-lib/src/interface.rs +0 -133
- package/nanvm-lib/src/lib.rs +0 -7
- package/nanvm-lib/src/naive.rs +0 -236
- package/nanvm-lib/src/nanenum.rs +0 -236
- package/nanvm-lib/src/nullish.rs +0 -7
- package/nanvm-lib/src/sign.rs +0 -5
- package/nanvm-lib/src/simple.rs +0 -32
- package/nanvm-lib/tests/test.f.ts +0 -80
- package/nanvm-lib/tests/test.rs +0 -108
- package/nodejs/version/main.ts +0 -4
- package/nodejs/version/module.f.ts +0 -42
- package/text/README.md +0 -110
- package/text/ascii/module.f.ts +0 -219
- package/text/ascii/test.f.ts +0 -14
- package/text/module.f.ts +0 -30
- package/text/sgr/README.md +0 -3
- package/text/sgr/module.f.ts +0 -11
- package/text/test.f.ts +0 -19
- package/text/utf16/module.f.ts +0 -120
- package/text/utf16/test.f.ts +0 -107
- package/text/utf8/module.f.ts +0 -116
- package/text/utf8/test.f.ts +0 -125
- package/tsconfig.json +0 -104
- package/types/array/module.f.ts +0 -89
- package/types/array/test.f.ts +0 -88
- package/types/bigfloat/module.f.ts +0 -93
- package/types/bigfloat/test.f.ts +0 -218
- package/types/bigint/README.md +0 -35
- package/types/bigint/test.f.ts +0 -144
- package/types/bit_vec/README.md +0 -18
- package/types/bit_vec/test.f.ts +0 -129
- package/types/btree/README.md +0 -160
- package/types/btree/find/module.f.ts +0 -92
- package/types/btree/find/test.f.ts +0 -122
- package/types/btree/module.f.ts +0 -35
- package/types/btree/remove/module.f.ts +0 -151
- package/types/btree/remove/test.f.ts +0 -498
- package/types/btree/set/module.f.ts +0 -89
- package/types/btree/set/test.f.ts +0 -415
- package/types/btree/test.f.ts +0 -92
- package/types/btree/types/module.f.ts +0 -27
- package/types/byte_set/module.f.ts +0 -73
- package/types/byte_set/test.f.ts +0 -84
- package/types/function/compare/module.f.ts +0 -26
- package/types/function/compare/test.f.ts +0 -7
- package/types/function/module.f.ts +0 -43
- package/types/function/operator/module.f.ts +0 -65
- package/types/function/test.f.ts +0 -20
- package/types/list/module.f.ts +0 -350
- package/types/list/test.f.ts +0 -327
- package/types/map/module.f.ts +0 -65
- package/types/map/test.f.ts +0 -76
- package/types/nibble_set/module.f.ts +0 -34
- package/types/nibble_set/test.f.ts +0 -57
- package/types/nullable/module.f.ts +0 -9
- package/types/nullable/test.f.ts +0 -9
- package/types/number/module.f.ts +0 -20
- package/types/number/test.f.ts +0 -194
- package/types/object/module.f.ts +0 -30
- package/types/object/test.f.ts +0 -14
- package/types/range/module.f.ts +0 -10
- package/types/range/test.f.ts +0 -9
- package/types/range_map/module.f.ts +0 -70
- package/types/range_map/test.f.ts +0 -189
- package/types/result/module.f.ts +0 -20
- package/types/result/module.ts +0 -18
- package/types/sorted_list/module.f.ts +0 -83
- package/types/sorted_list/test.f.ts +0 -57
- package/types/sorted_set/module.f.ts +0 -36
- package/types/sorted_set/test.f.ts +0 -67
- package/types/string/module.f.ts +0 -26
- package/types/string/test.f.ts +0 -43
- package/types/string_set/module.f.ts +0 -37
- package/types/string_set/test.f.ts +0 -34
|
@@ -0,0 +1,717 @@
|
|
|
1
|
+
import * as parser from "./module.f.js";
|
|
2
|
+
import * as tokenizer from "../tokenizer/module.f.js";
|
|
3
|
+
import { toArray } from "../../types/list/module.f.js";
|
|
4
|
+
import { sort } from "../../types/object/module.f.js";
|
|
5
|
+
import * as encoding from "../../text/utf16/module.f.js";
|
|
6
|
+
import { djsModuleStringify } from "../serializer/module.f.js";
|
|
7
|
+
const tokenizeString = s => toArray(tokenizer.tokenize(encoding.stringToList(s)));
|
|
8
|
+
const stringifyDjsModule = djsModuleStringify(sort);
|
|
9
|
+
export default {
|
|
10
|
+
valid: [
|
|
11
|
+
() => {
|
|
12
|
+
const tokenList = tokenizeString('export default null');
|
|
13
|
+
const obj = parser.parse(tokenList);
|
|
14
|
+
if (obj[0] !== 'ok') {
|
|
15
|
+
throw obj;
|
|
16
|
+
}
|
|
17
|
+
const result = stringifyDjsModule(obj[1]);
|
|
18
|
+
if (result !== 'export default null') {
|
|
19
|
+
throw result;
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
() => {
|
|
23
|
+
const tokenList = tokenizeString('export default true');
|
|
24
|
+
const obj = parser.parse(tokenList);
|
|
25
|
+
if (obj[0] !== 'ok') {
|
|
26
|
+
throw obj;
|
|
27
|
+
}
|
|
28
|
+
const result = stringifyDjsModule(obj[1]);
|
|
29
|
+
if (result !== 'export default true') {
|
|
30
|
+
throw result;
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
() => {
|
|
34
|
+
const tokenList = tokenizeString('export default false');
|
|
35
|
+
const obj = parser.parse(tokenList);
|
|
36
|
+
if (obj[0] !== 'ok') {
|
|
37
|
+
throw obj;
|
|
38
|
+
}
|
|
39
|
+
const result = stringifyDjsModule(obj[1]);
|
|
40
|
+
if (result !== 'export default false') {
|
|
41
|
+
throw result;
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
() => {
|
|
45
|
+
const tokenList = tokenizeString('export default undefined');
|
|
46
|
+
const obj = parser.parse(tokenList);
|
|
47
|
+
if (obj[0] !== 'ok') {
|
|
48
|
+
throw obj;
|
|
49
|
+
}
|
|
50
|
+
const result = stringifyDjsModule(obj[1]);
|
|
51
|
+
if (result !== 'export default undefined') {
|
|
52
|
+
throw result;
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
() => {
|
|
56
|
+
const tokenList = tokenizeString('export default 0.1');
|
|
57
|
+
const obj = parser.parse(tokenList);
|
|
58
|
+
if (obj[0] !== 'ok') {
|
|
59
|
+
throw obj;
|
|
60
|
+
}
|
|
61
|
+
const result = stringifyDjsModule(obj[1]);
|
|
62
|
+
if (result !== 'export default 0.1') {
|
|
63
|
+
throw result;
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
() => {
|
|
67
|
+
const tokenList = tokenizeString('export default 1.1e+2');
|
|
68
|
+
const obj = parser.parse(tokenList);
|
|
69
|
+
if (obj[0] !== 'ok') {
|
|
70
|
+
throw obj;
|
|
71
|
+
}
|
|
72
|
+
const result = stringifyDjsModule(obj[1]);
|
|
73
|
+
if (result !== 'export default 110') {
|
|
74
|
+
throw result;
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
() => {
|
|
78
|
+
const tokenList = tokenizeString('export default "abc"');
|
|
79
|
+
const obj = parser.parse(tokenList);
|
|
80
|
+
if (obj[0] !== 'ok') {
|
|
81
|
+
throw obj;
|
|
82
|
+
}
|
|
83
|
+
const result = stringifyDjsModule(obj[1]);
|
|
84
|
+
if (result !== 'export default "abc"') {
|
|
85
|
+
throw result;
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
() => {
|
|
89
|
+
const tokenList = tokenizeString('export default []');
|
|
90
|
+
const obj = parser.parse(tokenList);
|
|
91
|
+
if (obj[0] !== 'ok') {
|
|
92
|
+
throw obj;
|
|
93
|
+
}
|
|
94
|
+
const result = stringifyDjsModule(obj[1]);
|
|
95
|
+
if (result !== 'export default []') {
|
|
96
|
+
throw result;
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
() => {
|
|
100
|
+
const tokenList = tokenizeString('export default [1]');
|
|
101
|
+
const obj = parser.parse(tokenList);
|
|
102
|
+
if (obj[0] !== 'ok') {
|
|
103
|
+
throw obj;
|
|
104
|
+
}
|
|
105
|
+
const result = stringifyDjsModule(obj[1]);
|
|
106
|
+
if (result !== 'export default [1]') {
|
|
107
|
+
throw result;
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
() => {
|
|
111
|
+
const tokenList = tokenizeString('export default [[]]');
|
|
112
|
+
const obj = parser.parse(tokenList);
|
|
113
|
+
if (obj[0] !== 'ok') {
|
|
114
|
+
throw obj;
|
|
115
|
+
}
|
|
116
|
+
const result = stringifyDjsModule(obj[1]);
|
|
117
|
+
if (result !== 'export default [[]]') {
|
|
118
|
+
throw result;
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
() => {
|
|
122
|
+
const tokenList = tokenizeString('export default [0,[1,[2,[]]],3]');
|
|
123
|
+
const obj = parser.parse(tokenList);
|
|
124
|
+
if (obj[0] !== 'ok') {
|
|
125
|
+
throw obj;
|
|
126
|
+
}
|
|
127
|
+
const result = stringifyDjsModule(obj[1]);
|
|
128
|
+
if (result !== 'export default [0,[1,[2,[]]],3]') {
|
|
129
|
+
throw result;
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
() => {
|
|
133
|
+
const tokenList = tokenizeString('export default {}');
|
|
134
|
+
const obj = parser.parse(tokenList);
|
|
135
|
+
if (obj[0] !== 'ok') {
|
|
136
|
+
throw obj;
|
|
137
|
+
}
|
|
138
|
+
const result = stringifyDjsModule(obj[1]);
|
|
139
|
+
if (result !== 'export default {}') {
|
|
140
|
+
throw result;
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
() => {
|
|
144
|
+
const tokenList = tokenizeString('export default [{}]');
|
|
145
|
+
const obj = parser.parse(tokenList);
|
|
146
|
+
if (obj[0] !== 'ok') {
|
|
147
|
+
throw obj;
|
|
148
|
+
}
|
|
149
|
+
const result = stringifyDjsModule(obj[1]);
|
|
150
|
+
if (result !== 'export default [{}]') {
|
|
151
|
+
throw result;
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
() => {
|
|
155
|
+
const tokenList = tokenizeString('export default {"a":true,"b":false,"c":null,"d":undefined}');
|
|
156
|
+
const obj = parser.parse(tokenList);
|
|
157
|
+
if (obj[0] !== 'ok') {
|
|
158
|
+
throw obj;
|
|
159
|
+
}
|
|
160
|
+
const result = stringifyDjsModule(obj[1]);
|
|
161
|
+
if (result !== 'export default {"a":true,"b":false,"c":null,"d":undefined}') {
|
|
162
|
+
throw result;
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
() => {
|
|
166
|
+
const tokenList = tokenizeString('export default {"a":{"b":{"c":["d"]}}}');
|
|
167
|
+
const obj = parser.parse(tokenList);
|
|
168
|
+
if (obj[0] !== 'ok') {
|
|
169
|
+
throw obj;
|
|
170
|
+
}
|
|
171
|
+
const result = stringifyDjsModule(obj[1]);
|
|
172
|
+
if (result !== 'export default {"a":{"b":{"c":["d"]}}}') {
|
|
173
|
+
throw result;
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
() => {
|
|
177
|
+
const tokenList = tokenizeString('export default 1234567890n');
|
|
178
|
+
const obj = parser.parse(tokenList);
|
|
179
|
+
if (obj[0] !== 'ok') {
|
|
180
|
+
throw obj;
|
|
181
|
+
}
|
|
182
|
+
const result = stringifyDjsModule(obj[1]);
|
|
183
|
+
if (result !== 'export default 1234567890n') {
|
|
184
|
+
throw result;
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
() => {
|
|
188
|
+
const tokenList = tokenizeString('export default [1234567890n]');
|
|
189
|
+
const obj = parser.parse(tokenList);
|
|
190
|
+
if (obj[0] !== 'ok') {
|
|
191
|
+
throw obj;
|
|
192
|
+
}
|
|
193
|
+
const result = stringifyDjsModule(obj[1]);
|
|
194
|
+
if (result !== 'export default [1234567890n]') {
|
|
195
|
+
throw result;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
],
|
|
199
|
+
invalid: [
|
|
200
|
+
() => {
|
|
201
|
+
const tokenList = tokenizeString('export default');
|
|
202
|
+
const obj = parser.parse(tokenList);
|
|
203
|
+
if (obj[0] !== 'error') {
|
|
204
|
+
throw obj;
|
|
205
|
+
}
|
|
206
|
+
if (obj[1] !== 'unexpected end') {
|
|
207
|
+
throw obj;
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
() => {
|
|
211
|
+
const tokenList = tokenizeString('export default "123');
|
|
212
|
+
const obj = parser.parse(tokenList);
|
|
213
|
+
if (obj[0] !== 'error') {
|
|
214
|
+
throw obj;
|
|
215
|
+
}
|
|
216
|
+
if (obj[1] !== 'unexpected token') {
|
|
217
|
+
throw obj;
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
() => {
|
|
221
|
+
const tokenList = tokenizeString('export default [,]');
|
|
222
|
+
const obj = parser.parse(tokenList);
|
|
223
|
+
if (obj[0] !== 'error') {
|
|
224
|
+
throw obj;
|
|
225
|
+
}
|
|
226
|
+
if (obj[1] !== 'unexpected token') {
|
|
227
|
+
throw obj;
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
() => {
|
|
231
|
+
const tokenList = tokenizeString('export default [1 2]');
|
|
232
|
+
const obj = parser.parse(tokenList);
|
|
233
|
+
if (obj[0] !== 'error') {
|
|
234
|
+
throw obj;
|
|
235
|
+
}
|
|
236
|
+
if (obj[1] !== 'unexpected token') {
|
|
237
|
+
throw obj;
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
() => {
|
|
241
|
+
const tokenList = tokenizeString('export default [1,,2]');
|
|
242
|
+
const obj = parser.parse(tokenList);
|
|
243
|
+
if (obj[0] !== 'error') {
|
|
244
|
+
throw obj;
|
|
245
|
+
}
|
|
246
|
+
if (obj[1] !== 'unexpected token') {
|
|
247
|
+
throw obj;
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
() => {
|
|
251
|
+
const tokenList = tokenizeString('export default []]');
|
|
252
|
+
const obj = parser.parse(tokenList);
|
|
253
|
+
if (obj[0] !== 'error') {
|
|
254
|
+
throw obj;
|
|
255
|
+
}
|
|
256
|
+
if (obj[1] !== 'unexpected token') {
|
|
257
|
+
throw obj;
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
() => {
|
|
261
|
+
const tokenList = tokenizeString('export default ["a"');
|
|
262
|
+
const obj = parser.parse(tokenList);
|
|
263
|
+
if (obj[0] !== 'error') {
|
|
264
|
+
throw obj;
|
|
265
|
+
}
|
|
266
|
+
if (obj[1] !== 'unexpected end') {
|
|
267
|
+
throw obj;
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
() => {
|
|
271
|
+
const tokenList = tokenizeString('export default [1,]');
|
|
272
|
+
const obj = parser.parse(tokenList);
|
|
273
|
+
if (obj[0] !== 'error') {
|
|
274
|
+
throw obj;
|
|
275
|
+
}
|
|
276
|
+
if (obj[1] !== 'unexpected token') {
|
|
277
|
+
throw obj;
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
() => {
|
|
281
|
+
const tokenList = tokenizeString('export default [,1]');
|
|
282
|
+
const obj = parser.parse(tokenList);
|
|
283
|
+
if (obj[0] !== 'error') {
|
|
284
|
+
throw obj;
|
|
285
|
+
}
|
|
286
|
+
if (obj[1] !== 'unexpected token') {
|
|
287
|
+
throw obj;
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
() => {
|
|
291
|
+
const tokenList = tokenizeString('export default [:]');
|
|
292
|
+
const obj = parser.parse(tokenList);
|
|
293
|
+
if (obj[0] !== 'error') {
|
|
294
|
+
throw obj;
|
|
295
|
+
}
|
|
296
|
+
if (obj[1] !== 'unexpected token') {
|
|
297
|
+
throw obj;
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
() => {
|
|
301
|
+
const tokenList = tokenizeString('export default ]');
|
|
302
|
+
const obj = parser.parse(tokenList);
|
|
303
|
+
if (obj[0] !== 'error') {
|
|
304
|
+
throw obj;
|
|
305
|
+
}
|
|
306
|
+
if (obj[1] !== 'unexpected token') {
|
|
307
|
+
throw obj;
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
() => {
|
|
311
|
+
const tokenList = tokenizeString('export default {,}');
|
|
312
|
+
const obj = parser.parse(tokenList);
|
|
313
|
+
if (obj[0] !== 'error') {
|
|
314
|
+
throw obj;
|
|
315
|
+
}
|
|
316
|
+
if (obj[1] !== 'unexpected token') {
|
|
317
|
+
throw obj;
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
() => {
|
|
321
|
+
const tokenList = tokenizeString('export default {1:2}');
|
|
322
|
+
const obj = parser.parse(tokenList);
|
|
323
|
+
if (obj[0] !== 'error') {
|
|
324
|
+
throw obj;
|
|
325
|
+
}
|
|
326
|
+
if (obj[1] !== 'unexpected token') {
|
|
327
|
+
throw obj;
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
() => {
|
|
331
|
+
const tokenList = tokenizeString('export default {"1"2}');
|
|
332
|
+
const obj = parser.parse(tokenList);
|
|
333
|
+
if (obj[0] !== 'error') {
|
|
334
|
+
throw obj;
|
|
335
|
+
}
|
|
336
|
+
if (obj[1] !== 'unexpected token') {
|
|
337
|
+
throw obj;
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
() => {
|
|
341
|
+
const tokenList = tokenizeString('export default {"1"::2}');
|
|
342
|
+
const obj = parser.parse(tokenList);
|
|
343
|
+
if (obj[0] !== 'error') {
|
|
344
|
+
throw obj;
|
|
345
|
+
}
|
|
346
|
+
if (obj[1] !== 'unexpected token') {
|
|
347
|
+
throw obj;
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
() => {
|
|
351
|
+
const tokenList = tokenizeString('export default {"1":2,,"3":4');
|
|
352
|
+
const obj = parser.parse(tokenList);
|
|
353
|
+
if (obj[0] !== 'error') {
|
|
354
|
+
throw obj;
|
|
355
|
+
}
|
|
356
|
+
if (obj[1] !== 'unexpected token') {
|
|
357
|
+
throw obj;
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
() => {
|
|
361
|
+
const tokenList = tokenizeString('export default {}}');
|
|
362
|
+
const obj = parser.parse(tokenList);
|
|
363
|
+
if (obj[0] !== 'error') {
|
|
364
|
+
throw obj;
|
|
365
|
+
}
|
|
366
|
+
if (obj[1] !== 'unexpected token') {
|
|
367
|
+
throw obj;
|
|
368
|
+
}
|
|
369
|
+
},
|
|
370
|
+
() => {
|
|
371
|
+
const tokenList = tokenizeString('export default {"1":2');
|
|
372
|
+
const obj = parser.parse(tokenList);
|
|
373
|
+
if (obj[0] !== 'error') {
|
|
374
|
+
throw obj;
|
|
375
|
+
}
|
|
376
|
+
if (obj[1] !== 'unexpected end') {
|
|
377
|
+
throw obj;
|
|
378
|
+
}
|
|
379
|
+
},
|
|
380
|
+
() => {
|
|
381
|
+
const tokenList = tokenizeString('export default {"1":2,}');
|
|
382
|
+
const obj = parser.parse(tokenList);
|
|
383
|
+
if (obj[0] !== 'error') {
|
|
384
|
+
throw obj;
|
|
385
|
+
}
|
|
386
|
+
if (obj[1] !== 'unexpected token') {
|
|
387
|
+
throw obj;
|
|
388
|
+
}
|
|
389
|
+
},
|
|
390
|
+
() => {
|
|
391
|
+
const tokenList = tokenizeString('export default {,"1":2}');
|
|
392
|
+
const obj = parser.parse(tokenList);
|
|
393
|
+
if (obj[0] !== 'error') {
|
|
394
|
+
throw obj;
|
|
395
|
+
}
|
|
396
|
+
if (obj[1] !== 'unexpected token') {
|
|
397
|
+
throw obj;
|
|
398
|
+
}
|
|
399
|
+
},
|
|
400
|
+
() => {
|
|
401
|
+
const tokenList = tokenizeString('export default }');
|
|
402
|
+
const obj = parser.parse(tokenList);
|
|
403
|
+
if (obj[0] !== 'error') {
|
|
404
|
+
throw obj;
|
|
405
|
+
}
|
|
406
|
+
if (obj[1] !== 'unexpected token') {
|
|
407
|
+
throw obj;
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
() => {
|
|
411
|
+
const tokenList = tokenizeString('export default [{]}');
|
|
412
|
+
const obj = parser.parse(tokenList);
|
|
413
|
+
if (obj[0] !== 'error') {
|
|
414
|
+
throw obj;
|
|
415
|
+
}
|
|
416
|
+
if (obj[1] !== 'unexpected token') {
|
|
417
|
+
throw obj;
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
() => {
|
|
421
|
+
const tokenList = tokenizeString('export default {[}]');
|
|
422
|
+
const obj = parser.parse(tokenList);
|
|
423
|
+
if (obj[0] !== 'error') {
|
|
424
|
+
throw obj;
|
|
425
|
+
}
|
|
426
|
+
if (obj[1] !== 'unexpected token') {
|
|
427
|
+
throw obj;
|
|
428
|
+
}
|
|
429
|
+
},
|
|
430
|
+
() => {
|
|
431
|
+
const tokenList = tokenizeString('export default 10-5');
|
|
432
|
+
const obj = parser.parse(tokenList);
|
|
433
|
+
if (obj[0] !== 'error') {
|
|
434
|
+
throw obj;
|
|
435
|
+
}
|
|
436
|
+
if (obj[1] !== 'unexpected token') {
|
|
437
|
+
throw obj;
|
|
438
|
+
}
|
|
439
|
+
},
|
|
440
|
+
],
|
|
441
|
+
validWhiteSpaces: [
|
|
442
|
+
() => {
|
|
443
|
+
const tokenList = tokenizeString(' export default [ 0 , 1 , 2 ] ');
|
|
444
|
+
const obj = parser.parse(tokenList);
|
|
445
|
+
if (obj[0] !== 'ok') {
|
|
446
|
+
throw obj;
|
|
447
|
+
}
|
|
448
|
+
const result = stringifyDjsModule(obj[1]);
|
|
449
|
+
if (result !== 'export default [0,1,2]') {
|
|
450
|
+
throw result;
|
|
451
|
+
}
|
|
452
|
+
},
|
|
453
|
+
() => {
|
|
454
|
+
const tokenList = tokenizeString(' export default { "a" : 0 , "b" : 1 } ');
|
|
455
|
+
const obj = parser.parse(tokenList);
|
|
456
|
+
if (obj[0] !== 'ok') {
|
|
457
|
+
throw obj;
|
|
458
|
+
}
|
|
459
|
+
const result = stringifyDjsModule(obj[1]);
|
|
460
|
+
if (result !== 'export default {"a":0,"b":1}') {
|
|
461
|
+
throw result;
|
|
462
|
+
}
|
|
463
|
+
},
|
|
464
|
+
() => {
|
|
465
|
+
const tokenList = tokenizeString('\nexport\ndefault\n[\n0\n,\n1\n,\n2\n]\n');
|
|
466
|
+
const obj = parser.parse(tokenList);
|
|
467
|
+
if (obj[0] !== 'ok') {
|
|
468
|
+
throw obj;
|
|
469
|
+
}
|
|
470
|
+
const result = stringifyDjsModule(obj[1]);
|
|
471
|
+
if (result !== 'export default [0,1,2]') {
|
|
472
|
+
throw result;
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
() => {
|
|
476
|
+
const tokenList = tokenizeString('\rexport\rdefault\r{\r"a"\r:\r0\r,\r"b"\r:\r1\r}\r');
|
|
477
|
+
const obj = parser.parse(tokenList);
|
|
478
|
+
if (obj[0] !== 'ok') {
|
|
479
|
+
throw obj;
|
|
480
|
+
}
|
|
481
|
+
const result = stringifyDjsModule(obj[1]);
|
|
482
|
+
if (result !== 'export default {"a":0,"b":1}') {
|
|
483
|
+
throw result;
|
|
484
|
+
}
|
|
485
|
+
},
|
|
486
|
+
],
|
|
487
|
+
invalidModule: [
|
|
488
|
+
() => {
|
|
489
|
+
const tokenList = tokenizeString('null');
|
|
490
|
+
const obj = parser.parse(tokenList);
|
|
491
|
+
if (obj[0] !== 'error') {
|
|
492
|
+
throw obj;
|
|
493
|
+
}
|
|
494
|
+
if (obj[1] !== 'unexpected token') {
|
|
495
|
+
throw obj;
|
|
496
|
+
}
|
|
497
|
+
},
|
|
498
|
+
() => {
|
|
499
|
+
const tokenList = tokenizeString('module=null');
|
|
500
|
+
const obj = parser.parse(tokenList);
|
|
501
|
+
if (obj[0] !== 'error') {
|
|
502
|
+
throw obj;
|
|
503
|
+
}
|
|
504
|
+
if (obj[1] !== 'unexpected token') {
|
|
505
|
+
throw obj;
|
|
506
|
+
}
|
|
507
|
+
},
|
|
508
|
+
() => {
|
|
509
|
+
const tokenList = tokenizeString('export null');
|
|
510
|
+
const obj = parser.parse(tokenList);
|
|
511
|
+
if (obj[0] !== 'error') {
|
|
512
|
+
throw obj;
|
|
513
|
+
}
|
|
514
|
+
if (obj[1] !== 'unexpected token') {
|
|
515
|
+
throw obj;
|
|
516
|
+
}
|
|
517
|
+
},
|
|
518
|
+
() => {
|
|
519
|
+
const tokenList = tokenizeString('export default = null');
|
|
520
|
+
const obj = parser.parse(tokenList);
|
|
521
|
+
if (obj[0] !== 'error') {
|
|
522
|
+
throw obj;
|
|
523
|
+
}
|
|
524
|
+
if (obj[1] !== 'unexpected token') {
|
|
525
|
+
throw obj;
|
|
526
|
+
}
|
|
527
|
+
},
|
|
528
|
+
],
|
|
529
|
+
validWithConst: [
|
|
530
|
+
() => {
|
|
531
|
+
const tokenList = tokenizeString('const a = 1 \n const b = 2 \n export default 3');
|
|
532
|
+
const obj = parser.parse(tokenList);
|
|
533
|
+
if (obj[0] !== 'ok') {
|
|
534
|
+
throw obj;
|
|
535
|
+
}
|
|
536
|
+
const result = stringifyDjsModule(obj[1]);
|
|
537
|
+
if (result !== 'const c0 = 1\nconst c1 = 2\nexport default 3') {
|
|
538
|
+
throw result;
|
|
539
|
+
}
|
|
540
|
+
},
|
|
541
|
+
() => {
|
|
542
|
+
const tokenList = tokenizeString('const a = 1 \n const b = 2 \n export default b');
|
|
543
|
+
const obj = parser.parse(tokenList);
|
|
544
|
+
if (obj[0] !== 'ok') {
|
|
545
|
+
throw obj;
|
|
546
|
+
}
|
|
547
|
+
const result = stringifyDjsModule(obj[1]);
|
|
548
|
+
if (result !== 'const c0 = 1\nconst c1 = 2\nexport default c1') {
|
|
549
|
+
throw result;
|
|
550
|
+
}
|
|
551
|
+
},
|
|
552
|
+
() => {
|
|
553
|
+
const tokenList = tokenizeString('const a = 1 \n const b = 2 \n export default [b,a,b]');
|
|
554
|
+
const obj = parser.parse(tokenList);
|
|
555
|
+
if (obj[0] !== 'ok') {
|
|
556
|
+
throw obj;
|
|
557
|
+
}
|
|
558
|
+
const result = stringifyDjsModule(obj[1]);
|
|
559
|
+
if (result !== 'const c0 = 1\nconst c1 = 2\nexport default [c1,c0,c1]') {
|
|
560
|
+
throw result;
|
|
561
|
+
}
|
|
562
|
+
},
|
|
563
|
+
() => {
|
|
564
|
+
const tokenList = tokenizeString('const a = 1 \n const b = 2 \n export default {"1st":b,"2nd":a,"3rd":b}');
|
|
565
|
+
const obj = parser.parse(tokenList);
|
|
566
|
+
if (obj[0] !== 'ok') {
|
|
567
|
+
throw obj;
|
|
568
|
+
}
|
|
569
|
+
const result = stringifyDjsModule(obj[1]);
|
|
570
|
+
if (result !== 'const c0 = 1\nconst c1 = 2\nexport default {"1st":c1,"2nd":c0,"3rd":c1}') {
|
|
571
|
+
throw result;
|
|
572
|
+
}
|
|
573
|
+
},
|
|
574
|
+
],
|
|
575
|
+
invalidWithConst: [
|
|
576
|
+
() => {
|
|
577
|
+
const tokenList = tokenizeString('const a = 1 const b = 2 export default 3');
|
|
578
|
+
const obj = parser.parse(tokenList);
|
|
579
|
+
if (obj[0] !== 'error') {
|
|
580
|
+
throw obj;
|
|
581
|
+
}
|
|
582
|
+
if (obj[1] !== 'unexpected token') {
|
|
583
|
+
throw obj;
|
|
584
|
+
}
|
|
585
|
+
},
|
|
586
|
+
() => {
|
|
587
|
+
const tokenList = tokenizeString('const = 1 \n const b = 2 \n export default 3');
|
|
588
|
+
const obj = parser.parse(tokenList);
|
|
589
|
+
if (obj[0] !== 'error') {
|
|
590
|
+
throw obj;
|
|
591
|
+
}
|
|
592
|
+
if (obj[1] !== 'unexpected token') {
|
|
593
|
+
throw obj;
|
|
594
|
+
}
|
|
595
|
+
},
|
|
596
|
+
() => {
|
|
597
|
+
const tokenList = tokenizeString('const a = 1 \n const a = 2 \n export default 3');
|
|
598
|
+
const obj = parser.parse(tokenList);
|
|
599
|
+
if (obj[0] !== 'error') {
|
|
600
|
+
throw obj;
|
|
601
|
+
}
|
|
602
|
+
if (obj[1] !== 'duplicate id') {
|
|
603
|
+
throw obj;
|
|
604
|
+
}
|
|
605
|
+
},
|
|
606
|
+
],
|
|
607
|
+
validWithArgs: [
|
|
608
|
+
() => {
|
|
609
|
+
const tokenList = tokenizeString('import a from "test/test.f.mjs" \n export default a');
|
|
610
|
+
const obj = parser.parse(tokenList);
|
|
611
|
+
if (obj[0] !== 'ok') {
|
|
612
|
+
throw obj;
|
|
613
|
+
}
|
|
614
|
+
const result = stringifyDjsModule(obj[1]);
|
|
615
|
+
if (result !== 'import a0 from "test/test.f.mjs"\nexport default a0') {
|
|
616
|
+
throw result;
|
|
617
|
+
}
|
|
618
|
+
},
|
|
619
|
+
() => {
|
|
620
|
+
const tokenList = tokenizeString('import a from "first/test.f.mjs" \n import b from "second/test.f.mjs" \n export default [b, a, b]');
|
|
621
|
+
const obj = parser.parse(tokenList);
|
|
622
|
+
if (obj[0] !== 'ok') {
|
|
623
|
+
throw obj;
|
|
624
|
+
}
|
|
625
|
+
const result = stringifyDjsModule(obj[1]);
|
|
626
|
+
if (result !== 'import a0 from "first/test.f.mjs"\nimport a1 from "second/test.f.mjs"\nexport default [a1,a0,a1]') {
|
|
627
|
+
throw result;
|
|
628
|
+
}
|
|
629
|
+
},
|
|
630
|
+
() => {
|
|
631
|
+
const tokenList = tokenizeString('import a from "test/test.f.mjs" \n const b = null \n export default [b, a, b]');
|
|
632
|
+
const obj = parser.parse(tokenList);
|
|
633
|
+
if (obj[0] !== 'ok') {
|
|
634
|
+
throw obj;
|
|
635
|
+
}
|
|
636
|
+
const result = stringifyDjsModule(obj[1]);
|
|
637
|
+
if (result !== 'import a0 from "test/test.f.mjs"\nconst c0 = null\nexport default [c0,a0,c0]') {
|
|
638
|
+
throw result;
|
|
639
|
+
}
|
|
640
|
+
},
|
|
641
|
+
],
|
|
642
|
+
invalidWithArgs: [
|
|
643
|
+
() => {
|
|
644
|
+
const tokenList = tokenizeString('import a from "test/test.f.mjs" export default a');
|
|
645
|
+
const obj = parser.parse(tokenList);
|
|
646
|
+
if (obj[0] !== 'error') {
|
|
647
|
+
throw obj;
|
|
648
|
+
}
|
|
649
|
+
if (obj[1] !== 'unexpected token') {
|
|
650
|
+
throw obj;
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
() => {
|
|
654
|
+
const tokenList = tokenizeString('import a from \n export default a');
|
|
655
|
+
const obj = parser.parse(tokenList);
|
|
656
|
+
if (obj[0] !== 'error') {
|
|
657
|
+
throw obj;
|
|
658
|
+
}
|
|
659
|
+
if (obj[1] !== 'unexpected token') {
|
|
660
|
+
throw obj;
|
|
661
|
+
}
|
|
662
|
+
},
|
|
663
|
+
() => {
|
|
664
|
+
const tokenList = tokenizeString('import a "test/test.f.mjs" \n export default a');
|
|
665
|
+
const obj = parser.parse(tokenList);
|
|
666
|
+
if (obj[0] !== 'error') {
|
|
667
|
+
throw obj;
|
|
668
|
+
}
|
|
669
|
+
if (obj[1] !== 'unexpected token') {
|
|
670
|
+
throw obj;
|
|
671
|
+
}
|
|
672
|
+
},
|
|
673
|
+
() => {
|
|
674
|
+
const tokenList = tokenizeString('import from "test/test.f.mjs" \n export default a');
|
|
675
|
+
const obj = parser.parse(tokenList);
|
|
676
|
+
if (obj[0] !== 'error') {
|
|
677
|
+
throw obj;
|
|
678
|
+
}
|
|
679
|
+
if (obj[1] !== 'unexpected token') {
|
|
680
|
+
throw obj;
|
|
681
|
+
}
|
|
682
|
+
},
|
|
683
|
+
() => {
|
|
684
|
+
const tokenList = tokenizeString('import a from "first/test.f.mjs" \n import a from "second/test.f.mjs" \n export default [b, a, b]');
|
|
685
|
+
const obj = parser.parse(tokenList);
|
|
686
|
+
if (obj[0] !== 'error') {
|
|
687
|
+
throw obj;
|
|
688
|
+
}
|
|
689
|
+
if (obj[1] !== 'duplicate id') {
|
|
690
|
+
throw obj;
|
|
691
|
+
}
|
|
692
|
+
},
|
|
693
|
+
() => {
|
|
694
|
+
const tokenList = tokenizeString('import a from "test/test.f.mjs" \n const a = null \n export default null');
|
|
695
|
+
const obj = parser.parse(tokenList);
|
|
696
|
+
if (obj[0] !== 'error') {
|
|
697
|
+
throw obj;
|
|
698
|
+
}
|
|
699
|
+
if (obj[1] !== 'duplicate id') {
|
|
700
|
+
throw obj;
|
|
701
|
+
}
|
|
702
|
+
},
|
|
703
|
+
],
|
|
704
|
+
comments: [
|
|
705
|
+
() => {
|
|
706
|
+
const tokenList = tokenizeString('export //comment \n default /* comment */ null //comment');
|
|
707
|
+
const obj = parser.parse(tokenList);
|
|
708
|
+
if (obj[0] !== 'ok') {
|
|
709
|
+
throw obj;
|
|
710
|
+
}
|
|
711
|
+
const result = stringifyDjsModule(obj[1]);
|
|
712
|
+
if (result !== 'export default null') {
|
|
713
|
+
throw result;
|
|
714
|
+
}
|
|
715
|
+
},
|
|
716
|
+
]
|
|
717
|
+
};
|