json-as 1.2.6 → 1.3.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/.as-test/coverage/naive/coverage.arbitrary.spec.ts.log.json +5628 -0
- package/.as-test/coverage/naive/coverage.array.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.bool.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.box.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.custom.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.date.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.enum.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.float.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.generics.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.hierarchy.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.integer.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.map.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.namespace.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.null.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.raw.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.resolving.spec.ts.log.json +5628 -0
- package/.as-test/coverage/naive/coverage.set.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.staticarray.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.string.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.struct.spec.ts.log.json +5187 -0
- package/.as-test/coverage/naive/coverage.types.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.arbitrary.spec.ts.log.json +5628 -0
- package/.as-test/coverage/simd/coverage.array.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.bool.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.box.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.custom.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.date.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.enum.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.float.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.generics.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.hierarchy.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.integer.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.map.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.namespace.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.null.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.raw.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.resolving.spec.ts.log.json +5628 -0
- package/.as-test/coverage/simd/coverage.set.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.staticarray.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.string.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.struct.spec.ts.log.json +5187 -0
- package/.as-test/coverage/simd/coverage.types.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.arbitrary.spec.ts.log.json +5628 -0
- package/.as-test/coverage/swar/coverage.array.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.bool.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.box.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.custom.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.date.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.enum.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.float.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.generics.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.hierarchy.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.integer.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.map.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.namespace.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.null.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.raw.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.resolving.spec.ts.log.json +5628 -0
- package/.as-test/coverage/swar/coverage.set.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.staticarray.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.string.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.struct.spec.ts.log.json +5187 -0
- package/.as-test/coverage/swar/coverage.types.spec.ts.log.json +5187 -0
- package/.as-test/logs/naive/run.arbitrary.spec.ts.log.json +943 -0
- package/.as-test/logs/naive/run.array.spec.ts.log.json +1053 -0
- package/.as-test/logs/naive/run.bool.spec.ts.log.json +257 -0
- package/.as-test/logs/naive/run.box.spec.ts.log.json +353 -0
- package/.as-test/logs/naive/run.custom.spec.ts.log.json +309 -0
- package/.as-test/logs/naive/run.date.spec.ts.log.json +397 -0
- package/.as-test/logs/naive/run.enum.spec.ts.log.json +343 -0
- package/.as-test/logs/naive/run.float.spec.ts.log.json +453 -0
- package/.as-test/logs/naive/run.generics.spec.ts.log.json +393 -0
- package/.as-test/logs/naive/run.hierarchy.spec.ts.log.json +325 -0
- package/.as-test/logs/naive/run.integer.spec.ts.log.json +373 -0
- package/.as-test/logs/naive/run.map.spec.ts.log.json +247 -0
- package/.as-test/logs/naive/run.namespace.spec.ts.log.json +361 -0
- package/.as-test/logs/naive/run.null.spec.ts.log.json +273 -0
- package/.as-test/logs/naive/run.raw.spec.ts.log.json +309 -0
- package/.as-test/logs/naive/run.resolving.spec.ts.log.json +273 -0
- package/.as-test/logs/naive/run.set.spec.ts.log.json +733 -0
- package/.as-test/logs/naive/run.staticarray.spec.ts.log.json +931 -0
- package/.as-test/logs/naive/run.string.spec.ts.log.json +2289 -0
- package/.as-test/logs/naive/run.struct.spec.ts.log.json +523 -0
- package/.as-test/logs/naive/run.types.spec.ts.log.json +273 -0
- package/.as-test/logs/naive/test.arbitrary.spec.ts.log.json +943 -0
- package/.as-test/logs/naive/test.array.spec.ts.log.json +1053 -0
- package/.as-test/logs/naive/test.bool.spec.ts.log.json +257 -0
- package/.as-test/logs/naive/test.box.spec.ts.log.json +353 -0
- package/.as-test/logs/naive/test.custom.spec.ts.log.json +309 -0
- package/.as-test/logs/naive/test.date.spec.ts.log.json +397 -0
- package/.as-test/logs/naive/test.enum.spec.ts.log.json +343 -0
- package/.as-test/logs/naive/test.float.spec.ts.log.json +453 -0
- package/.as-test/logs/naive/test.generics.spec.ts.log.json +393 -0
- package/.as-test/logs/naive/test.hierarchy.spec.ts.log.json +325 -0
- package/.as-test/logs/naive/test.integer.spec.ts.log.json +373 -0
- package/.as-test/logs/naive/test.log.json +2289 -0
- package/.as-test/logs/naive/test.map.spec.ts.log.json +247 -0
- package/.as-test/logs/naive/test.namespace.spec.ts.log.json +361 -0
- package/.as-test/logs/naive/test.null.spec.ts.log.json +273 -0
- package/.as-test/logs/naive/test.raw.spec.ts.log.json +309 -0
- package/.as-test/logs/naive/test.resolving.spec.ts.log.json +273 -0
- package/.as-test/logs/naive/test.set.spec.ts.log.json +733 -0
- package/.as-test/logs/naive/test.staticarray.spec.ts.log.json +931 -0
- package/.as-test/logs/naive/test.string.spec.ts.log.json +2345 -0
- package/.as-test/logs/naive/test.struct.spec.ts.log.json +523 -0
- package/.as-test/logs/naive/test.types.spec.ts.log.json +273 -0
- package/.as-test/logs/simd/run.arbitrary.spec.ts.log.json +943 -0
- package/.as-test/logs/simd/run.array.spec.ts.log.json +1053 -0
- package/.as-test/logs/simd/run.bool.spec.ts.log.json +257 -0
- package/.as-test/logs/simd/run.box.spec.ts.log.json +353 -0
- package/.as-test/logs/simd/run.custom.spec.ts.log.json +309 -0
- package/.as-test/logs/simd/run.date.spec.ts.log.json +397 -0
- package/.as-test/logs/simd/run.enum.spec.ts.log.json +343 -0
- package/.as-test/logs/simd/run.float.spec.ts.log.json +453 -0
- package/.as-test/logs/simd/run.generics.spec.ts.log.json +393 -0
- package/.as-test/logs/simd/run.hierarchy.spec.ts.log.json +325 -0
- package/.as-test/logs/simd/run.integer.spec.ts.log.json +373 -0
- package/.as-test/logs/simd/run.map.spec.ts.log.json +247 -0
- package/.as-test/logs/simd/run.namespace.spec.ts.log.json +361 -0
- package/.as-test/logs/simd/run.null.spec.ts.log.json +273 -0
- package/.as-test/logs/simd/run.raw.spec.ts.log.json +309 -0
- package/.as-test/logs/simd/run.resolving.spec.ts.log.json +273 -0
- package/.as-test/logs/simd/run.set.spec.ts.log.json +733 -0
- package/.as-test/logs/simd/run.staticarray.spec.ts.log.json +931 -0
- package/.as-test/logs/simd/run.string.spec.ts.log.json +2289 -0
- package/.as-test/logs/simd/run.struct.spec.ts.log.json +523 -0
- package/.as-test/logs/simd/run.types.spec.ts.log.json +273 -0
- package/.as-test/logs/simd/test.arbitrary.spec.ts.log.json +943 -0
- package/.as-test/logs/simd/test.array.spec.ts.log.json +1053 -0
- package/.as-test/logs/simd/test.bool.spec.ts.log.json +257 -0
- package/.as-test/logs/simd/test.box.spec.ts.log.json +353 -0
- package/.as-test/logs/simd/test.custom.spec.ts.log.json +309 -0
- package/.as-test/logs/simd/test.date.spec.ts.log.json +397 -0
- package/.as-test/logs/simd/test.enum.spec.ts.log.json +343 -0
- package/.as-test/logs/simd/test.float.spec.ts.log.json +453 -0
- package/.as-test/logs/simd/test.generics.spec.ts.log.json +393 -0
- package/.as-test/logs/simd/test.hierarchy.spec.ts.log.json +325 -0
- package/.as-test/logs/simd/test.integer.spec.ts.log.json +373 -0
- package/.as-test/logs/simd/test.log.json +11371 -0
- package/.as-test/logs/simd/test.map.spec.ts.log.json +247 -0
- package/.as-test/logs/simd/test.namespace.spec.ts.log.json +361 -0
- package/.as-test/logs/simd/test.null.spec.ts.log.json +273 -0
- package/.as-test/logs/simd/test.raw.spec.ts.log.json +309 -0
- package/.as-test/logs/simd/test.resolving.spec.ts.log.json +273 -0
- package/.as-test/logs/simd/test.set.spec.ts.log.json +733 -0
- package/.as-test/logs/simd/test.staticarray.spec.ts.log.json +931 -0
- package/.as-test/logs/simd/test.string.spec.ts.log.json +2345 -0
- package/.as-test/logs/simd/test.struct.spec.ts.log.json +523 -0
- package/.as-test/logs/simd/test.types.spec.ts.log.json +273 -0
- package/.as-test/logs/swar/run.arbitrary.spec.ts.log.json +943 -0
- package/.as-test/logs/swar/run.array.spec.ts.log.json +1053 -0
- package/.as-test/logs/swar/run.bool.spec.ts.log.json +257 -0
- package/.as-test/logs/swar/run.box.spec.ts.log.json +353 -0
- package/.as-test/logs/swar/run.custom.spec.ts.log.json +309 -0
- package/.as-test/logs/swar/run.date.spec.ts.log.json +397 -0
- package/.as-test/logs/swar/run.enum.spec.ts.log.json +343 -0
- package/.as-test/logs/swar/run.float.spec.ts.log.json +453 -0
- package/.as-test/logs/swar/run.generics.spec.ts.log.json +393 -0
- package/.as-test/logs/swar/run.hierarchy.spec.ts.log.json +325 -0
- package/.as-test/logs/swar/run.integer.spec.ts.log.json +373 -0
- package/.as-test/logs/swar/run.map.spec.ts.log.json +247 -0
- package/.as-test/logs/swar/run.namespace.spec.ts.log.json +361 -0
- package/.as-test/logs/swar/run.null.spec.ts.log.json +273 -0
- package/.as-test/logs/swar/run.raw.spec.ts.log.json +309 -0
- package/.as-test/logs/swar/run.resolving.spec.ts.log.json +273 -0
- package/.as-test/logs/swar/run.set.spec.ts.log.json +733 -0
- package/.as-test/logs/swar/run.staticarray.spec.ts.log.json +931 -0
- package/.as-test/logs/swar/run.string.spec.ts.log.json +2289 -0
- package/.as-test/logs/swar/run.struct.spec.ts.log.json +523 -0
- package/.as-test/logs/swar/run.types.spec.ts.log.json +273 -0
- package/.as-test/logs/swar/test.arbitrary.spec.ts.log.json +943 -0
- package/.as-test/logs/swar/test.array.spec.ts.log.json +1053 -0
- package/.as-test/logs/swar/test.bool.spec.ts.log.json +257 -0
- package/.as-test/logs/swar/test.box.spec.ts.log.json +353 -0
- package/.as-test/logs/swar/test.custom.spec.ts.log.json +309 -0
- package/.as-test/logs/swar/test.date.spec.ts.log.json +397 -0
- package/.as-test/logs/swar/test.enum.spec.ts.log.json +343 -0
- package/.as-test/logs/swar/test.float.spec.ts.log.json +453 -0
- package/.as-test/logs/swar/test.generics.spec.ts.log.json +393 -0
- package/.as-test/logs/swar/test.hierarchy.spec.ts.log.json +325 -0
- package/.as-test/logs/swar/test.integer.spec.ts.log.json +373 -0
- package/.as-test/logs/swar/test.log.json +11371 -0
- package/.as-test/logs/swar/test.map.spec.ts.log.json +247 -0
- package/.as-test/logs/swar/test.namespace.spec.ts.log.json +361 -0
- package/.as-test/logs/swar/test.null.spec.ts.log.json +273 -0
- package/.as-test/logs/swar/test.raw.spec.ts.log.json +309 -0
- package/.as-test/logs/swar/test.resolving.spec.ts.log.json +273 -0
- package/.as-test/logs/swar/test.set.spec.ts.log.json +733 -0
- package/.as-test/logs/swar/test.staticarray.spec.ts.log.json +931 -0
- package/.as-test/logs/swar/test.string.spec.ts.log.json +2345 -0
- package/.as-test/logs/swar/test.struct.spec.ts.log.json +523 -0
- package/.as-test/logs/swar/test.types.spec.ts.log.json +273 -0
- package/.as-test/logs/test.arbitrary.spec.ts.log.json +943 -0
- package/.as-test/logs/test.array.spec.ts.log.json +1053 -0
- package/.as-test/logs/test.bool.spec.ts.log.json +257 -0
- package/.as-test/logs/test.box.spec.ts.log.json +353 -0
- package/.as-test/logs/test.custom.spec.ts.log.json +309 -0
- package/.as-test/logs/test.date.spec.ts.log.json +397 -0
- package/.as-test/logs/test.enum.spec.ts.log.json +343 -0
- package/.as-test/logs/test.float.spec.ts.log.json +453 -0
- package/.as-test/logs/test.generics.spec.ts.log.json +393 -0
- package/.as-test/logs/test.hierarchy.spec.ts.log.json +325 -0
- package/.as-test/logs/test.integer.spec.ts.log.json +373 -0
- package/.as-test/logs/test.log.json +11371 -0
- package/.as-test/logs/test.map.spec.ts.log.json +247 -0
- package/.as-test/logs/test.namespace.spec.ts.log.json +361 -0
- package/.as-test/logs/test.null.spec.ts.log.json +273 -0
- package/.as-test/logs/test.raw.spec.ts.log.json +309 -0
- package/.as-test/logs/test.resolving.spec.ts.log.json +273 -0
- package/.as-test/logs/test.set.spec.ts.log.json +733 -0
- package/.as-test/logs/test.staticarray.spec.ts.log.json +931 -0
- package/.as-test/logs/test.string.spec.ts.log.json +2289 -0
- package/.as-test/logs/test.struct.spec.ts.log.json +523 -0
- package/.as-test/logs/test.types.spec.ts.log.json +273 -0
- package/.as-test/runners/default.bindings.js +68 -0
- package/.as-test/runners/default.wasi.js +38 -0
- package/ARCHITECTURE.md +6 -3
- package/CONTRIBUTING.md +9 -3
- package/README.md +39 -22
- package/as-test.config.json +40 -0
- package/assembly/custom/util.ts +24 -70
- package/assembly/deserialize/float.ts +181 -0
- package/assembly/deserialize/helpers/uint.ts +12 -0
- package/assembly/deserialize/index/arbitrary.ts +25 -0
- package/assembly/deserialize/index/array.ts +61 -0
- package/assembly/deserialize/index/bool.ts +1 -0
- package/assembly/deserialize/index/date.ts +1 -0
- package/assembly/deserialize/index/float.ts +1 -0
- package/assembly/deserialize/index/integer.ts +1 -0
- package/assembly/deserialize/index/map.ts +1 -0
- package/assembly/deserialize/index/object.ts +1 -0
- package/assembly/deserialize/index/raw.ts +1 -0
- package/assembly/deserialize/index/set.ts +1 -0
- package/assembly/deserialize/index/staticarray.ts +1 -0
- package/assembly/deserialize/index/string.ts +15 -0
- package/assembly/deserialize/index/struct.ts +1 -0
- package/assembly/deserialize/index/typedarray.ts +1 -0
- package/assembly/deserialize/index/unsigned.ts +1 -0
- package/assembly/deserialize/index.ts +14 -0
- package/assembly/deserialize/integer.ts +42 -0
- package/assembly/deserialize/simd/array/integer.ts +307 -0
- package/assembly/deserialize/simd/string.ts +129 -10
- package/assembly/deserialize/simple/arbitrary.ts +5 -12
- package/assembly/deserialize/simple/array/arbitrary.ts +12 -36
- package/assembly/deserialize/simple/array/array.ts +2 -8
- package/assembly/deserialize/simple/array/bool.ts +2 -8
- package/assembly/deserialize/simple/array/box.ts +2 -8
- package/assembly/deserialize/simple/array/float.ts +2 -8
- package/assembly/deserialize/simple/array/integer.ts +2 -8
- package/assembly/deserialize/simple/array/map.ts +6 -26
- package/assembly/deserialize/simple/array/object.ts +6 -26
- package/assembly/deserialize/simple/array/raw.ts +18 -61
- package/assembly/deserialize/simple/array/string.ts +5 -10
- package/assembly/deserialize/simple/array/struct.ts +6 -26
- package/assembly/deserialize/simple/array.ts +2 -5
- package/assembly/deserialize/simple/bool.ts +2 -6
- package/assembly/deserialize/simple/map.ts +29 -102
- package/assembly/deserialize/simple/object.ts +24 -81
- package/assembly/deserialize/simple/raw.ts +1 -4
- package/assembly/deserialize/simple/set.ts +11 -37
- package/assembly/deserialize/simple/staticarray/array.ts +1 -1
- package/assembly/deserialize/simple/staticarray/bool.ts +1 -1
- package/assembly/deserialize/simple/staticarray/float.ts +1 -1
- package/assembly/deserialize/simple/staticarray/integer.ts +1 -1
- package/assembly/deserialize/simple/staticarray/string.ts +7 -14
- package/assembly/deserialize/simple/staticarray/struct.ts +1 -1
- package/assembly/deserialize/simple/staticarray.ts +57 -21
- package/assembly/deserialize/simple/string.ts +2 -8
- package/assembly/deserialize/simple/struct.ts +25 -121
- package/assembly/deserialize/simple/typedarray.ts +94 -0
- package/assembly/deserialize/swar/array/arbitrary.ts +8 -0
- package/assembly/deserialize/swar/array/array.ts +39 -0
- package/assembly/deserialize/swar/array/bool.ts +47 -0
- package/assembly/deserialize/swar/array/box.ts +8 -0
- package/assembly/deserialize/swar/array/float.ts +39 -0
- package/assembly/deserialize/swar/array/integer.ts +461 -0
- package/assembly/deserialize/swar/array/map.ts +7 -0
- package/assembly/deserialize/swar/array/object.ts +44 -0
- package/assembly/deserialize/swar/array/raw.ts +8 -0
- package/assembly/deserialize/swar/array/shared.ts +96 -0
- package/assembly/deserialize/swar/array/string.ts +39 -0
- package/assembly/deserialize/swar/array/struct.ts +44 -0
- package/assembly/deserialize/swar/array.ts +49 -0
- package/assembly/deserialize/swar/string.ts +650 -14
- package/assembly/deserialize/unsigned.ts +75 -0
- package/assembly/index.d.ts +1 -3
- package/assembly/index.ts +251 -265
- package/assembly/serialize/index/arbitrary.ts +70 -0
- package/assembly/serialize/index/array.ts +1 -0
- package/assembly/serialize/index/bool.ts +1 -0
- package/assembly/serialize/index/date.ts +1 -0
- package/assembly/serialize/index/float.ts +1 -0
- package/assembly/serialize/index/integer.ts +1 -0
- package/assembly/serialize/index/map.ts +1 -0
- package/assembly/serialize/index/object.ts +46 -0
- package/assembly/serialize/index/raw.ts +1 -0
- package/assembly/serialize/index/set.ts +1 -0
- package/assembly/serialize/index/staticarray.ts +1 -0
- package/assembly/serialize/index/string.ts +15 -0
- package/assembly/serialize/index/struct.ts +1 -0
- package/assembly/serialize/index/typedarray.ts +1 -0
- package/assembly/serialize/index.ts +13 -0
- package/assembly/serialize/simd/string.ts +1 -2
- package/assembly/serialize/simple/raw.ts +1 -5
- package/assembly/serialize/simple/typedarray.ts +63 -0
- package/assembly/serialize/swar/string.ts +3 -10
- package/assembly/test.ts +21 -27
- package/assembly/util/concat.ts +1 -5
- package/assembly/util/index.ts +1 -0
- package/assembly/util/masks.ts +12 -18
- package/assembly/util/memory.ts +0 -0
- package/assembly/util/snp.ts +1 -4
- package/assembly/util/stringScan.ts +24 -0
- package/assembly/util/swar.ts +1 -6
- package/eslint.config.js +21 -13
- package/lib/as-bs.ts +69 -78
- package/package.json +8 -5
- package/test.ts +99 -0
- package/tools/assemblyscript-eslint-local.js +1 -24
- package/tools/assemblyscript-eslint.js +38 -14
- package/tools/assemblyscript-prettier-plugin.js +33 -0
- package/tools/replacer.js +63 -0
- package/transform/lib/builder.d.ts.map +1 -1
- package/transform/lib/builder.js +5 -13
- package/transform/lib/builder.js.map +1 -1
- package/transform/lib/index.d.ts.map +1 -1
- package/transform/lib/index.js +529 -735
- package/transform/lib/index.js.map +1 -1
- package/transform/lib/linkers/alias.d.ts.map +1 -1
- package/transform/lib/linkers/alias.js.map +1 -1
- package/transform/lib/linkers/custom.d.ts.map +1 -1
- package/transform/lib/linkers/custom.js +4 -9
- package/transform/lib/linkers/custom.js.map +1 -1
- package/transform/lib/linkers/imports.d.ts.map +1 -1
- package/transform/lib/linkers/imports.js.map +1 -1
- package/transform/lib/types.d.ts +4 -0
- package/transform/lib/types.d.ts.map +1 -1
- package/transform/lib/types.js +70 -21
- package/transform/lib/types.js.map +1 -1
- package/transform/lib/util.d.ts.map +1 -1
- package/transform/lib/util.js +1 -1
- package/transform/lib/util.js.map +1 -1
- package/transform/lib/visitor.d.ts.map +1 -1
- package/transform/lib/visitor.js +1 -2
- package/transform/lib/visitor.js.map +1 -1
- package/.prettierrc +0 -3
- package/assembly/deserialize/simple/float.ts +0 -11
- package/assembly/deserialize/simple/integer.ts +0 -9
|
@@ -1,32 +1,16 @@
|
|
|
1
1
|
import { JSON } from "../..";
|
|
2
2
|
import { bs } from "../../../lib/as-bs";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
COMMA,
|
|
6
|
-
CHAR_F,
|
|
7
|
-
BRACE_LEFT,
|
|
8
|
-
BRACKET_LEFT,
|
|
9
|
-
CHAR_N,
|
|
10
|
-
QUOTE,
|
|
11
|
-
BRACE_RIGHT,
|
|
12
|
-
BRACKET_RIGHT,
|
|
13
|
-
CHAR_T,
|
|
14
|
-
COLON,
|
|
15
|
-
} from "../../custom/chars";
|
|
16
|
-
import { isSpace } from "../../util";
|
|
3
|
+
import { BACK_SLASH, COMMA, CHAR_F, BRACE_LEFT, BRACKET_LEFT, CHAR_N, QUOTE, BRACE_RIGHT, BRACKET_RIGHT, CHAR_T, COLON } from "../../custom/chars";
|
|
4
|
+
import { isSpace, isUnescapedQuote, scanStringEnd } from "../../util";
|
|
17
5
|
import { ptrToStr } from "../../util/ptrToStr";
|
|
18
6
|
import { deserializeString_SWAR } from "../swar/string";
|
|
19
7
|
import { deserializeArbitrary } from "./arbitrary";
|
|
20
8
|
import { deserializeArray } from "./array";
|
|
21
9
|
import { deserializeBoolean } from "./bool";
|
|
22
|
-
import { deserializeFloat } from "
|
|
10
|
+
import { deserializeFloat } from "../float";
|
|
23
11
|
import { deserializeString } from "./string";
|
|
24
12
|
|
|
25
|
-
export function deserializeObject(
|
|
26
|
-
srcStart: usize,
|
|
27
|
-
srcEnd: usize,
|
|
28
|
-
dst: usize,
|
|
29
|
-
): JSON.Obj {
|
|
13
|
+
export function deserializeObject(srcStart: usize, srcEnd: usize, dst: usize): JSON.Obj {
|
|
30
14
|
const out = changetype<JSON.Obj>(dst || changetype<usize>(new JSON.Obj()));
|
|
31
15
|
|
|
32
16
|
let keyStart: usize = 0;
|
|
@@ -38,35 +22,22 @@ export function deserializeObject(
|
|
|
38
22
|
while (srcStart < srcEnd && isSpace(load<u16>(srcStart))) srcStart += 2;
|
|
39
23
|
while (srcEnd > srcStart && isSpace(load<u16>(srcEnd - 2))) srcEnd -= 2; // would like to optimize this later
|
|
40
24
|
|
|
41
|
-
if (srcStart - srcEnd == 0)
|
|
42
|
-
|
|
43
|
-
if (load<u16>(
|
|
44
|
-
throw new Error(
|
|
45
|
-
"Expected '{' at start of object at position " +
|
|
46
|
-
(srcEnd - srcStart).toString(),
|
|
47
|
-
);
|
|
48
|
-
if (load<u16>(srcEnd - 2) != BRACE_RIGHT)
|
|
49
|
-
throw new Error(
|
|
50
|
-
"Expected '}' at end of object at position " +
|
|
51
|
-
(srcEnd - srcStart).toString(),
|
|
52
|
-
);
|
|
25
|
+
if (srcStart - srcEnd == 0) throw new Error("Input string had zero length or was all whitespace");
|
|
26
|
+
if (load<u16>(srcStart) != BRACE_LEFT) throw new Error("Expected '{' at start of object at position " + (srcEnd - srcStart).toString());
|
|
27
|
+
if (load<u16>(srcEnd - 2) != BRACE_RIGHT) throw new Error("Expected '}' at end of object at position " + (srcEnd - srcStart).toString());
|
|
53
28
|
|
|
54
29
|
srcStart += 2;
|
|
55
30
|
while (srcStart < srcEnd) {
|
|
56
31
|
let code = load<u16>(srcStart); // while (isSpace(code)) code = load<u16>(srcStart += 2);
|
|
57
32
|
if (keyStart == 0) {
|
|
58
|
-
if (code == QUOTE &&
|
|
33
|
+
if (code == QUOTE && isUnescapedQuote(srcStart)) {
|
|
59
34
|
if (isKey) {
|
|
60
35
|
keyStart = lastIndex;
|
|
61
36
|
keyEnd = srcStart;
|
|
62
37
|
// console.log("Key: " + ptrToStr(lastIndex, srcStart));
|
|
63
38
|
// console.log("Next: " + String.fromCharCode(load<u16>(srcStart + 2)));
|
|
64
39
|
while (isSpace((code = load<u16>((srcStart += 2))))) {}
|
|
65
|
-
if (code !== COLON)
|
|
66
|
-
throw new Error(
|
|
67
|
-
"Expected ':' after key at position " +
|
|
68
|
-
(srcEnd - srcStart).toString(),
|
|
69
|
-
);
|
|
40
|
+
if (code !== COLON) throw new Error("Expected ':' after key at position " + (srcEnd - srcStart).toString());
|
|
70
41
|
isKey = false;
|
|
71
42
|
} else {
|
|
72
43
|
// console.log("Got key start");
|
|
@@ -79,23 +50,12 @@ export function deserializeObject(
|
|
|
79
50
|
} else {
|
|
80
51
|
if (code == QUOTE) {
|
|
81
52
|
lastIndex = srcStart;
|
|
53
|
+
srcStart = scanStringEnd(srcStart, srcEnd);
|
|
54
|
+
if (srcStart >= srcEnd) throw new Error("Unterminated string in JSON object");
|
|
55
|
+
out.set(ptrToStr(keyStart, keyEnd), deserializeString(lastIndex, srcStart + 2));
|
|
82
56
|
srcStart += 2;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (code == QUOTE && load<u16>(srcStart - 2) !== BACK_SLASH) {
|
|
86
|
-
// console.log("Value (string):-" + deserializeString_SWAR(lastIndex, srcStart + 2, 0) + "-");
|
|
87
|
-
out.set(
|
|
88
|
-
ptrToStr(keyStart, keyEnd),
|
|
89
|
-
deserializeString(lastIndex, srcStart + 2),
|
|
90
|
-
);
|
|
91
|
-
// while (isSpace(load<u16>(srcStart))) srcStart += 2;
|
|
92
|
-
srcStart += 4;
|
|
93
|
-
// console.log("Next: " + String.fromCharCode(load<u16>(srcStart)));
|
|
94
|
-
keyStart = 0;
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
srcStart += 2;
|
|
98
|
-
}
|
|
57
|
+
keyStart = 0;
|
|
58
|
+
continue;
|
|
99
59
|
} else if (code - 48 <= 9 || code == 45) {
|
|
100
60
|
lastIndex = srcStart;
|
|
101
61
|
srcStart += 2;
|
|
@@ -103,10 +63,7 @@ export function deserializeObject(
|
|
|
103
63
|
const code = load<u16>(srcStart);
|
|
104
64
|
if (code == COMMA || code == BRACE_RIGHT || isSpace(code)) {
|
|
105
65
|
// console.log("Value (number): " + ptrToStr(lastIndex, srcStart));
|
|
106
|
-
out.set(
|
|
107
|
-
ptrToStr(keyStart, keyEnd),
|
|
108
|
-
deserializeFloat<f64>(lastIndex, srcStart),
|
|
109
|
-
);
|
|
66
|
+
out.set(ptrToStr(keyStart, keyEnd), deserializeFloat<f64>(lastIndex, srcStart));
|
|
110
67
|
// while (isSpace(load<u16>((srcStart += 2)))) {
|
|
111
68
|
// /* empty */
|
|
112
69
|
// }
|
|
@@ -124,21 +81,12 @@ export function deserializeObject(
|
|
|
124
81
|
while (srcStart < srcEnd) {
|
|
125
82
|
const code = load<u16>(srcStart);
|
|
126
83
|
if (code == QUOTE) {
|
|
127
|
-
srcStart
|
|
128
|
-
|
|
129
|
-
!(
|
|
130
|
-
load<u16>(srcStart) == QUOTE &&
|
|
131
|
-
load<u16>(srcStart - 2) != BACK_SLASH
|
|
132
|
-
)
|
|
133
|
-
)
|
|
134
|
-
srcStart += 2;
|
|
84
|
+
srcStart = scanStringEnd(srcStart, srcEnd);
|
|
85
|
+
if (srcStart >= srcEnd) throw new Error("Unterminated string in JSON object");
|
|
135
86
|
} else if (code == BRACE_RIGHT) {
|
|
136
87
|
if (--depth == 0) {
|
|
137
88
|
// console.log("Value (object): " + ptrToStr(lastIndex, srcStart + 2));
|
|
138
|
-
out.set(
|
|
139
|
-
ptrToStr(keyStart, keyEnd),
|
|
140
|
-
deserializeObject(lastIndex, (srcStart += 2), 0),
|
|
141
|
-
);
|
|
89
|
+
out.set(ptrToStr(keyStart, keyEnd), deserializeObject(lastIndex, (srcStart += 2), 0));
|
|
142
90
|
// console.log("Next: " + String.fromCharCode(load<u16>(srcStart)));
|
|
143
91
|
keyStart = 0;
|
|
144
92
|
// while (isSpace(load<u16>(srcStart))) {
|
|
@@ -155,13 +103,13 @@ export function deserializeObject(
|
|
|
155
103
|
srcStart += 2;
|
|
156
104
|
while (srcStart < srcEnd) {
|
|
157
105
|
const code = load<u16>(srcStart);
|
|
158
|
-
if (code ==
|
|
106
|
+
if (code == QUOTE) {
|
|
107
|
+
srcStart = scanStringEnd(srcStart, srcEnd);
|
|
108
|
+
if (srcStart >= srcEnd) throw new Error("Unterminated string in JSON object");
|
|
109
|
+
} else if (code == BRACKET_RIGHT) {
|
|
159
110
|
if (--depth == 0) {
|
|
160
111
|
// console.log("Value (array): " + ptrToStr(lastIndex, srcStart + 2));
|
|
161
|
-
out.set(
|
|
162
|
-
ptrToStr(keyStart, keyEnd),
|
|
163
|
-
deserializeArray<JSON.Value[]>(lastIndex, (srcStart += 2), 0),
|
|
164
|
-
);
|
|
112
|
+
out.set(ptrToStr(keyStart, keyEnd), deserializeArray<JSON.Value[]>(lastIndex, (srcStart += 2), 0));
|
|
165
113
|
// console.log("Next: " + String.fromCharCode(load<u16>(srcStart)));
|
|
166
114
|
keyStart = 0;
|
|
167
115
|
// while (isSpace(load<u16>((srcStart += 2)))) {
|
|
@@ -211,12 +159,7 @@ export function deserializeObject(
|
|
|
211
159
|
} else if (isSpace(code)) {
|
|
212
160
|
srcStart += 2;
|
|
213
161
|
} else {
|
|
214
|
-
throw new Error(
|
|
215
|
-
"Unexpected character in JSON object '" +
|
|
216
|
-
String.fromCharCode(code) +
|
|
217
|
-
"' at position " +
|
|
218
|
-
(srcEnd - srcStart).toString(),
|
|
219
|
-
);
|
|
162
|
+
throw new Error("Unexpected character in JSON object '" + String.fromCharCode(code) + "' at position " + (srcEnd - srcStart).toString());
|
|
220
163
|
}
|
|
221
164
|
}
|
|
222
165
|
}
|
|
@@ -2,9 +2,6 @@ import { JSON } from "../..";
|
|
|
2
2
|
import { ptrToStr } from "../../util/ptrToStr";
|
|
3
3
|
|
|
4
4
|
// @ts-ignore: inline
|
|
5
|
-
@inline export function deserializeRaw(
|
|
6
|
-
srcStart: usize,
|
|
7
|
-
srcEnd: usize,
|
|
8
|
-
): JSON.Raw {
|
|
5
|
+
@inline export function deserializeRaw(srcStart: usize, srcEnd: usize): JSON.Raw {
|
|
9
6
|
return JSON.Raw.from(ptrToStr(srcStart, srcEnd));
|
|
10
7
|
}
|
|
@@ -1,36 +1,16 @@
|
|
|
1
1
|
import { JSON } from "../..";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
BRACKET_LEFT,
|
|
5
|
-
BRACKET_RIGHT,
|
|
6
|
-
BRACE_LEFT,
|
|
7
|
-
BRACE_RIGHT,
|
|
8
|
-
CHAR_F,
|
|
9
|
-
CHAR_N,
|
|
10
|
-
CHAR_T,
|
|
11
|
-
COMMA,
|
|
12
|
-
QUOTE,
|
|
13
|
-
} from "../../custom/chars";
|
|
14
|
-
import { isSpace, atoi } from "../../util";
|
|
2
|
+
import { BACK_SLASH, BRACKET_LEFT, BRACKET_RIGHT, BRACE_LEFT, BRACE_RIGHT, CHAR_F, CHAR_N, CHAR_T, COMMA, QUOTE } from "../../custom/chars";
|
|
3
|
+
import { isSpace, atoi, isUnescapedQuote, scanStringEnd } from "../../util";
|
|
15
4
|
|
|
16
|
-
export function deserializeSet<T extends Set<any>>(
|
|
17
|
-
|
|
18
|
-
srcEnd: usize,
|
|
19
|
-
dst: usize,
|
|
20
|
-
): T {
|
|
21
|
-
const out = changetype<nonnull<T>>(
|
|
22
|
-
dst || changetype<usize>(instantiate<T>()),
|
|
23
|
-
);
|
|
5
|
+
export function deserializeSet<T extends Set<any>>(srcStart: usize, srcEnd: usize, dst: usize): T {
|
|
6
|
+
const out = changetype<nonnull<T>>(dst || changetype<usize>(instantiate<T>()));
|
|
24
7
|
|
|
25
8
|
while (srcStart < srcEnd && isSpace(load<u16>(srcStart))) srcStart += 2;
|
|
26
9
|
while (srcEnd > srcStart && isSpace(load<u16>(srcEnd - 2))) srcEnd -= 2;
|
|
27
10
|
|
|
28
|
-
if (srcStart >= srcEnd)
|
|
29
|
-
|
|
30
|
-
if (load<u16>(
|
|
31
|
-
throw new Error("Expected '[' at start of set");
|
|
32
|
-
if (load<u16>(srcEnd - 2) != BRACKET_RIGHT)
|
|
33
|
-
throw new Error("Expected ']' at end of set");
|
|
11
|
+
if (srcStart >= srcEnd) throw new Error("Input string had zero length or was all whitespace");
|
|
12
|
+
if (load<u16>(srcStart) != BRACKET_LEFT) throw new Error("Expected '[' at start of set");
|
|
13
|
+
if (load<u16>(srcEnd - 2) != BRACKET_RIGHT) throw new Error("Expected ']' at end of set");
|
|
34
14
|
|
|
35
15
|
srcStart += 2;
|
|
36
16
|
|
|
@@ -45,7 +25,7 @@ export function deserializeSet<T extends Set<any>>(
|
|
|
45
25
|
srcStart += 2;
|
|
46
26
|
while (srcStart < srcEnd) {
|
|
47
27
|
const c = load<u16>(srcStart);
|
|
48
|
-
if (c == QUOTE &&
|
|
28
|
+
if (c == QUOTE && isUnescapedQuote(srcStart)) {
|
|
49
29
|
// @ts-ignore: type
|
|
50
30
|
out.add(JSON.__deserialize<indexof<T>>(lastIndex, srcStart + 2));
|
|
51
31
|
srcStart += 2;
|
|
@@ -107,14 +87,8 @@ export function deserializeSet<T extends Set<any>>(
|
|
|
107
87
|
while (srcStart < srcEnd) {
|
|
108
88
|
const c = load<u16>(srcStart);
|
|
109
89
|
if (c == QUOTE) {
|
|
110
|
-
srcStart
|
|
111
|
-
|
|
112
|
-
!(
|
|
113
|
-
load<u16>(srcStart) == QUOTE &&
|
|
114
|
-
load<u16>(srcStart - 2) != BACK_SLASH
|
|
115
|
-
)
|
|
116
|
-
)
|
|
117
|
-
srcStart += 2;
|
|
90
|
+
srcStart = scanStringEnd(srcStart, srcEnd);
|
|
91
|
+
if (srcStart >= srcEnd) throw new Error("Unterminated string in JSON set");
|
|
118
92
|
} else if (c == BRACE_RIGHT) {
|
|
119
93
|
if (--depth == 0) {
|
|
120
94
|
srcStart += 2;
|
|
@@ -153,7 +127,7 @@ export function deserializeSet<T extends Set<any>>(
|
|
|
153
127
|
srcStart += 2;
|
|
154
128
|
while (srcStart < srcEnd) {
|
|
155
129
|
const c = load<u16>(srcStart);
|
|
156
|
-
if (c == QUOTE &&
|
|
130
|
+
if (c == QUOTE && isUnescapedQuote(srcStart)) {
|
|
157
131
|
// @ts-ignore: type
|
|
158
132
|
out.add(JSON.__deserialize<indexof<T>>(lastIndex, srcStart + 2));
|
|
159
133
|
srcStart += 2;
|
|
@@ -19,7 +19,7 @@ export function deserializeStaticArrayArray<T extends StaticArray<any>>(
|
|
|
19
19
|
ptr += 2;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
const outSize =
|
|
22
|
+
const outSize = count << (alignof<valueof<T>>());
|
|
23
23
|
const out = changetype<nonnull<T>>(dst || __new(outSize, idof<T>()));
|
|
24
24
|
|
|
25
25
|
// Second pass: populate values
|
|
@@ -20,7 +20,7 @@ export function deserializeStaticArrayBoolean<T extends StaticArray<any>>(
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
// Allocate StaticArray with correct size
|
|
23
|
-
const outSize =
|
|
23
|
+
const outSize = count << (alignof<valueof<T>>());
|
|
24
24
|
const out = changetype<nonnull<T>>(dst || __new(outSize, idof<T>()));
|
|
25
25
|
|
|
26
26
|
// Second pass: populate values
|
|
@@ -23,7 +23,7 @@ export function deserializeStaticArrayFloat<T extends StaticArray<any>>(
|
|
|
23
23
|
ptr += 2;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
const outSize =
|
|
26
|
+
const outSize = count << (alignof<valueof<T>>());
|
|
27
27
|
const out = changetype<nonnull<T>>(dst || __new(outSize, idof<T>()));
|
|
28
28
|
|
|
29
29
|
let index = 0;
|
|
@@ -22,7 +22,7 @@ export function deserializeStaticArrayInteger<T extends StaticArray<any>>(
|
|
|
22
22
|
ptr += 2;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
const outSize =
|
|
25
|
+
const outSize = count << (alignof<valueof<T>>());
|
|
26
26
|
const out = changetype<nonnull<T>>(dst || __new(outSize, idof<T>()));
|
|
27
27
|
|
|
28
28
|
// Second pass: populate values
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { JSON } from "../../..";
|
|
2
|
-
import {
|
|
2
|
+
import { QUOTE } from "../../../custom/chars";
|
|
3
|
+
import { isUnescapedQuote } from "../../../util";
|
|
3
4
|
|
|
4
|
-
export function deserializeStaticArrayString(
|
|
5
|
-
srcStart: usize,
|
|
6
|
-
srcEnd: usize,
|
|
7
|
-
dst: usize,
|
|
8
|
-
): StaticArray<string> {
|
|
5
|
+
export function deserializeStaticArrayString(srcStart: usize, srcEnd: usize, dst: usize): StaticArray<string> {
|
|
9
6
|
// First pass: count elements using same logic as Array deserializer
|
|
10
7
|
let count: i32 = 0;
|
|
11
8
|
let ptr = srcStart;
|
|
@@ -15,7 +12,7 @@ export function deserializeStaticArrayString(
|
|
|
15
12
|
if (code == QUOTE) {
|
|
16
13
|
if (!inString) {
|
|
17
14
|
inString = true;
|
|
18
|
-
} else if (
|
|
15
|
+
} else if (isUnescapedQuote(ptr)) {
|
|
19
16
|
count++;
|
|
20
17
|
inString = false;
|
|
21
18
|
}
|
|
@@ -25,9 +22,7 @@ export function deserializeStaticArrayString(
|
|
|
25
22
|
|
|
26
23
|
// Allocate StaticArray with correct size
|
|
27
24
|
const outSize = (<usize>count) << alignof<string>();
|
|
28
|
-
const out = changetype<StaticArray<string>>(
|
|
29
|
-
dst || __new(outSize, idof<StaticArray<string>>()),
|
|
30
|
-
);
|
|
25
|
+
const out = changetype<StaticArray<string>>(dst || __new(outSize, idof<StaticArray<string>>()));
|
|
31
26
|
|
|
32
27
|
// Second pass: populate values
|
|
33
28
|
let index = 0;
|
|
@@ -39,10 +34,8 @@ export function deserializeStaticArrayString(
|
|
|
39
34
|
if (!inString) {
|
|
40
35
|
inString = true;
|
|
41
36
|
lastPos = srcStart;
|
|
42
|
-
} else if (
|
|
43
|
-
unchecked(
|
|
44
|
-
(out[index++] = JSON.__deserialize<string>(lastPos, srcStart + 2)),
|
|
45
|
-
);
|
|
37
|
+
} else if (isUnescapedQuote(srcStart)) {
|
|
38
|
+
unchecked((out[index++] = JSON.__deserialize<string>(lastPos, srcStart + 2)));
|
|
46
39
|
inString = false;
|
|
47
40
|
}
|
|
48
41
|
}
|
|
@@ -44,7 +44,7 @@ export function deserializeStaticArrayStruct<T extends StaticArray<any>>(
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
// Allocate StaticArray with correct size
|
|
47
|
-
const outSize =
|
|
47
|
+
const outSize = count << (alignof<valueof<T>>());
|
|
48
48
|
const out = changetype<nonnull<T>>(dst || __new(outSize, idof<T>()));
|
|
49
49
|
|
|
50
50
|
// Second pass: populate values
|
|
@@ -1,36 +1,72 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { OBJECT, TOTAL_OVERHEAD } from "rt/common";
|
|
2
|
+
import { JSON } from "../..";
|
|
3
|
+
import { deserializeArbitraryArray } from "./array/arbitrary";
|
|
4
|
+
import { deserializeArrayArray } from "./array/array";
|
|
5
|
+
import { deserializeBooleanArray } from "./array/bool";
|
|
6
|
+
import { deserializeBoxArray } from "./array/box";
|
|
7
|
+
import { deserializeFloatArray } from "./array/float";
|
|
8
|
+
import { deserializeIntegerArray } from "./array/integer";
|
|
9
|
+
import { deserializeMapArray } from "./array/map";
|
|
10
|
+
import { deserializeObjectArray } from "./array/object";
|
|
11
|
+
import { deserializeRawArray } from "./array/raw";
|
|
12
|
+
import { deserializeStructArray } from "./array/struct";
|
|
13
|
+
import { deserializeStringArray } from "./array/string";
|
|
3
14
|
import { deserializeStaticArrayBoolean } from "./staticarray/bool";
|
|
15
|
+
import { deserializeStaticArrayFloat } from "./staticarray/float";
|
|
16
|
+
import { deserializeStaticArrayInteger } from "./staticarray/integer";
|
|
4
17
|
import { deserializeStaticArrayString } from "./staticarray/string";
|
|
5
|
-
import { deserializeStaticArrayArray } from "./staticarray/array";
|
|
6
|
-
import { deserializeStaticArrayStruct } from "./staticarray/struct";
|
|
7
18
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
dst
|
|
12
|
-
|
|
19
|
+
|
|
20
|
+
@inline function materializeStaticArray<T extends StaticArray<any>>(src: valueof<T>[], dst: usize): T {
|
|
21
|
+
const byteLength = <usize>src.length * sizeof<valueof<T>>();
|
|
22
|
+
let out = dst;
|
|
23
|
+
|
|
24
|
+
if (!out) {
|
|
25
|
+
out = __new(byteLength, idof<T>());
|
|
26
|
+
} else if (changetype<OBJECT>(out - TOTAL_OVERHEAD).rtSize != byteLength) {
|
|
27
|
+
out = __renew(out, byteLength);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const typed = changetype<T>(out);
|
|
31
|
+
for (let i = 0; i < src.length; i++) {
|
|
32
|
+
unchecked((typed[i] = unchecked(src[i])));
|
|
33
|
+
}
|
|
34
|
+
return typed;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function deserializeStaticArray<T extends StaticArray<any>>(srcStart: usize, srcEnd: usize, dst: usize): T {
|
|
13
38
|
if (isString<valueof<T>>()) {
|
|
14
|
-
return <T>deserializeStaticArrayString(srcStart, srcEnd, dst);
|
|
39
|
+
return changetype<T>(deserializeStaticArrayString(srcStart, srcEnd, dst));
|
|
15
40
|
} else if (isBoolean<valueof<T>>()) {
|
|
16
41
|
return deserializeStaticArrayBoolean<T>(srcStart, srcEnd, dst);
|
|
17
42
|
} else if (isInteger<valueof<T>>()) {
|
|
18
43
|
return deserializeStaticArrayInteger<T>(srcStart, srcEnd, dst);
|
|
19
44
|
} else if (isFloat<valueof<T>>()) {
|
|
20
45
|
return deserializeStaticArrayFloat<T>(srcStart, srcEnd, dst);
|
|
21
|
-
} else if (
|
|
22
|
-
return
|
|
46
|
+
} else if (isArray<valueof<T>>()) {
|
|
47
|
+
return materializeStaticArray<T>(deserializeArrayArray<valueof<T>[]>(srcStart, srcEnd, 0), dst);
|
|
23
48
|
} else if (isManaged<valueof<T>>() || isReference<valueof<T>>()) {
|
|
24
49
|
const type = changetype<nonnull<valueof<T>>>(0);
|
|
25
|
-
if (
|
|
26
|
-
return
|
|
50
|
+
if (type instanceof StaticArray) {
|
|
51
|
+
return materializeStaticArray<T>(deserializeArrayArray<valueof<T>[]>(srcStart, srcEnd, 0), dst);
|
|
52
|
+
} else if (type instanceof JSON.Value) {
|
|
53
|
+
return materializeStaticArray<T>(changetype<valueof<T>[]>(deserializeArbitraryArray(srcStart, srcEnd, 0)), dst);
|
|
54
|
+
} else if (type instanceof JSON.Box) {
|
|
55
|
+
return materializeStaticArray<T>(changetype<valueof<T>[]>(deserializeBoxArray<valueof<T>[]>(srcStart, srcEnd, 0)), dst);
|
|
56
|
+
} else if (type instanceof JSON.Obj) {
|
|
57
|
+
return materializeStaticArray<T>(deserializeObjectArray<valueof<T>[]>(srcStart, srcEnd, 0), dst);
|
|
58
|
+
} else if (type instanceof JSON.Raw) {
|
|
59
|
+
return materializeStaticArray<T>(changetype<valueof<T>[]>(deserializeRawArray(srcStart, srcEnd, 0)), dst);
|
|
60
|
+
} else if (type instanceof Map) {
|
|
61
|
+
return materializeStaticArray<T>(deserializeMapArray<valueof<T>[]>(srcStart, srcEnd, 0), dst);
|
|
62
|
+
// @ts-ignore: supplied by transform
|
|
63
|
+
} else if (isDefined(type.__DESERIALIZE_CUSTOM)) {
|
|
64
|
+
return materializeStaticArray<T>(deserializeStructArray<valueof<T>[]>(srcStart, srcEnd, 0), dst);
|
|
65
|
+
// @ts-ignore: supplied by transform
|
|
66
|
+
} else if (isDefined(type.__DESERIALIZE)) {
|
|
67
|
+
return materializeStaticArray<T>(deserializeStructArray<valueof<T>[]>(srcStart, srcEnd, 0), dst);
|
|
27
68
|
}
|
|
28
|
-
throw new Error(
|
|
29
|
-
"Could not parse static array of type " + nameof<T>() + "!",
|
|
30
|
-
);
|
|
31
|
-
} else {
|
|
32
|
-
throw new Error(
|
|
33
|
-
"Could not parse static array of type " + nameof<T>() + "!",
|
|
34
|
-
);
|
|
35
69
|
}
|
|
70
|
+
|
|
71
|
+
throw new Error("Could not parse static array of type " + nameof<T>() + "!");
|
|
36
72
|
}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import { bs } from "../../../lib/as-bs";
|
|
2
|
-
import {
|
|
3
|
-
DESERIALIZE_ESCAPE_TABLE,
|
|
4
|
-
ESCAPE_HEX_TABLE,
|
|
5
|
-
} from "../../globals/tables";
|
|
2
|
+
import { DESERIALIZE_ESCAPE_TABLE, ESCAPE_HEX_TABLE } from "../../globals/tables";
|
|
6
3
|
import { hex4_to_u16_swar } from "../../util/swar";
|
|
7
4
|
|
|
8
5
|
// @ts-ignore: inline
|
|
9
|
-
@inline export function deserializeString(
|
|
10
|
-
srcStart: usize,
|
|
11
|
-
srcEnd: usize,
|
|
12
|
-
): string {
|
|
6
|
+
@inline export function deserializeString(srcStart: usize, srcEnd: usize): string {
|
|
13
7
|
// Strip quotes
|
|
14
8
|
srcStart += 2;
|
|
15
9
|
srcEnd -= 2;
|