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,39 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BRACE_LEFT,
|
|
3
|
-
BRACE_RIGHT,
|
|
4
|
-
BRACKET_LEFT,
|
|
5
|
-
BRACKET_RIGHT,
|
|
6
|
-
} from "../../../custom/chars";
|
|
1
|
+
import { BRACE_LEFT, BRACE_RIGHT, BRACKET_LEFT, BRACKET_RIGHT } from "../../../custom/chars";
|
|
7
2
|
import { JSON } from "../../..";
|
|
8
3
|
import { isSpace } from "util/string";
|
|
9
4
|
|
|
10
|
-
export function deserializeMapArray<T extends Map<any, any>[]>(
|
|
11
|
-
|
|
12
|
-
srcEnd: usize,
|
|
13
|
-
dst: usize,
|
|
14
|
-
): T {
|
|
15
|
-
const out = changetype<nonnull<T>>(
|
|
16
|
-
dst || changetype<usize>(instantiate<T>()),
|
|
17
|
-
);
|
|
5
|
+
export function deserializeMapArray<T extends Map<any, any>[]>(srcStart: usize, srcEnd: usize, dst: usize): T {
|
|
6
|
+
const out = changetype<nonnull<T>>(dst || changetype<usize>(instantiate<T>()));
|
|
18
7
|
let lastIndex: usize = 0;
|
|
19
8
|
let depth: u32 = 0;
|
|
20
9
|
|
|
21
10
|
while (srcStart < srcEnd && isSpace(load<u16>(srcStart))) srcStart += 2;
|
|
22
11
|
while (srcEnd > srcStart && isSpace(load<u16>(srcEnd - 2))) srcEnd -= 2;
|
|
23
12
|
|
|
24
|
-
if (srcStart - srcEnd == 0)
|
|
25
|
-
throw new Error("Input string had zero length or was all whitespace");
|
|
13
|
+
if (srcStart - srcEnd == 0) throw new Error("Input string had zero length or was all whitespace");
|
|
26
14
|
|
|
27
|
-
if (load<u16>(srcStart) != BRACKET_LEFT)
|
|
28
|
-
|
|
29
|
-
"Expected '[' at start of object at position " +
|
|
30
|
-
(srcEnd - srcStart).toString(),
|
|
31
|
-
);
|
|
32
|
-
if (load<u16>(srcEnd - 2) != BRACKET_RIGHT)
|
|
33
|
-
throw new Error(
|
|
34
|
-
"Expected ']' at end of object at position " +
|
|
35
|
-
(srcEnd - srcStart).toString(),
|
|
36
|
-
);
|
|
15
|
+
if (load<u16>(srcStart) != BRACKET_LEFT) throw new Error("Expected '[' at start of object at position " + (srcEnd - srcStart).toString());
|
|
16
|
+
if (load<u16>(srcEnd - 2) != BRACKET_RIGHT) throw new Error("Expected ']' at end of object at position " + (srcEnd - srcStart).toString());
|
|
37
17
|
|
|
38
18
|
while (srcStart < srcEnd) {
|
|
39
19
|
const code = load<u16>(srcStart);
|
|
@@ -1,39 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BRACE_LEFT,
|
|
3
|
-
BRACE_RIGHT,
|
|
4
|
-
BRACKET_LEFT,
|
|
5
|
-
BRACKET_RIGHT,
|
|
6
|
-
} from "../../../custom/chars";
|
|
1
|
+
import { BRACE_LEFT, BRACE_RIGHT, BRACKET_LEFT, BRACKET_RIGHT } from "../../../custom/chars";
|
|
7
2
|
import { JSON } from "../../..";
|
|
8
3
|
import { isSpace } from "util/string";
|
|
9
4
|
|
|
10
|
-
export function deserializeObjectArray<T extends unknown[]>(
|
|
11
|
-
|
|
12
|
-
srcEnd: usize,
|
|
13
|
-
dst: usize,
|
|
14
|
-
): T {
|
|
15
|
-
const out = changetype<nonnull<T>>(
|
|
16
|
-
dst || changetype<usize>(instantiate<T>()),
|
|
17
|
-
);
|
|
5
|
+
export function deserializeObjectArray<T extends unknown[]>(srcStart: usize, srcEnd: usize, dst: usize): T {
|
|
6
|
+
const out = changetype<nonnull<T>>(dst || changetype<usize>(instantiate<T>()));
|
|
18
7
|
let lastIndex: usize = 0;
|
|
19
8
|
let depth: u32 = 0;
|
|
20
9
|
|
|
21
10
|
while (srcStart < srcEnd && isSpace(load<u16>(srcStart))) srcStart += 2;
|
|
22
11
|
while (srcEnd > srcStart && isSpace(load<u16>(srcEnd - 2))) srcEnd -= 2;
|
|
23
12
|
|
|
24
|
-
if (srcStart - srcEnd == 0)
|
|
25
|
-
throw new Error("Input string had zero length or was all whitespace");
|
|
13
|
+
if (srcStart - srcEnd == 0) throw new Error("Input string had zero length or was all whitespace");
|
|
26
14
|
|
|
27
|
-
if (load<u16>(srcStart) != BRACKET_LEFT)
|
|
28
|
-
|
|
29
|
-
"Expected '[' at start of object at position " +
|
|
30
|
-
(srcEnd - srcStart).toString(),
|
|
31
|
-
);
|
|
32
|
-
if (load<u16>(srcEnd - 2) != BRACKET_RIGHT)
|
|
33
|
-
throw new Error(
|
|
34
|
-
"Expected ']' at end of object at position " +
|
|
35
|
-
(srcEnd - srcStart).toString(),
|
|
36
|
-
);
|
|
15
|
+
if (load<u16>(srcStart) != BRACKET_LEFT) throw new Error("Expected '[' at start of object at position " + (srcEnd - srcStart).toString());
|
|
16
|
+
if (load<u16>(srcEnd - 2) != BRACKET_RIGHT) throw new Error("Expected ']' at end of object at position " + (srcEnd - srcStart).toString());
|
|
37
17
|
|
|
38
18
|
while (srcStart < srcEnd) {
|
|
39
19
|
const code = load<u16>(srcStart);
|
|
@@ -1,49 +1,27 @@
|
|
|
1
|
-
import { isSpace } from "../../../util";
|
|
2
|
-
import {
|
|
3
|
-
COMMA,
|
|
4
|
-
BRACKET_RIGHT,
|
|
5
|
-
QUOTE,
|
|
6
|
-
BRACE_LEFT,
|
|
7
|
-
BRACE_RIGHT,
|
|
8
|
-
BRACKET_LEFT,
|
|
9
|
-
BACK_SLASH,
|
|
10
|
-
CHAR_T,
|
|
11
|
-
CHAR_F,
|
|
12
|
-
CHAR_N,
|
|
13
|
-
} from "../../../custom/chars";
|
|
1
|
+
import { isSpace, isUnescapedQuote, scanStringEnd } from "../../../util";
|
|
2
|
+
import { COMMA, BRACKET_RIGHT, QUOTE, BRACE_LEFT, BRACE_RIGHT, BRACKET_LEFT, BACK_SLASH, CHAR_T, CHAR_F, CHAR_N } from "../../../custom/chars";
|
|
14
3
|
import { JSON } from "../../..";
|
|
15
4
|
import { ptrToStr } from "../../../util/ptrToStr";
|
|
16
5
|
|
|
17
|
-
export function deserializeRawArray(
|
|
18
|
-
srcStart: usize,
|
|
19
|
-
srcEnd: usize,
|
|
20
|
-
dst: usize,
|
|
21
|
-
): JSON.Raw[] {
|
|
6
|
+
export function deserializeRawArray(srcStart: usize, srcEnd: usize, dst: usize): JSON.Raw[] {
|
|
22
7
|
// console.log("data: " + ptrToStr(srcStart, srcEnd));
|
|
23
|
-
const out = changetype<JSON.Raw[]>(
|
|
24
|
-
dst || changetype<usize>(instantiate<JSON.Raw[]>()),
|
|
25
|
-
);
|
|
8
|
+
const out = changetype<JSON.Raw[]>(dst || changetype<usize>(instantiate<JSON.Raw[]>()));
|
|
26
9
|
let lastIndex: usize = 0;
|
|
27
10
|
let depth = 0;
|
|
28
11
|
srcStart += 2;
|
|
29
12
|
while (srcStart < srcEnd) {
|
|
30
13
|
let code = load<u16>(srcStart);
|
|
31
|
-
if (code ==
|
|
14
|
+
if (code == BRACKET_RIGHT) {
|
|
15
|
+
break;
|
|
16
|
+
} else if (code == COMMA || isSpace(code)) {
|
|
17
|
+
srcStart += 2;
|
|
18
|
+
continue;
|
|
19
|
+
} else if (code == QUOTE) {
|
|
32
20
|
lastIndex = srcStart;
|
|
21
|
+
srcStart = scanStringEnd(srcStart, srcEnd);
|
|
22
|
+
if (srcStart >= srcEnd) throw new Error("Unterminated string in JSON array");
|
|
23
|
+
out.push(JSON.Raw.from(ptrToStr(lastIndex, srcStart + 2)));
|
|
33
24
|
srcStart += 2;
|
|
34
|
-
while (srcStart < srcEnd) {
|
|
35
|
-
code = load<u16>(srcStart);
|
|
36
|
-
if (code == QUOTE || isSpace(code)) {
|
|
37
|
-
// console.log("Value (string): " + ptrToStr(lastIndex, srcStart));
|
|
38
|
-
out.push(JSON.Raw.from(ptrToStr(lastIndex, srcStart + 2)));
|
|
39
|
-
// while (isSpace(load<u16>((srcStart += 2)))) {
|
|
40
|
-
// /* empty */
|
|
41
|
-
// }
|
|
42
|
-
srcStart += 4;
|
|
43
|
-
break;
|
|
44
|
-
}
|
|
45
|
-
srcStart += 2;
|
|
46
|
-
}
|
|
47
25
|
} else if (code - 48 <= 9 || code == 45) {
|
|
48
26
|
lastIndex = srcStart;
|
|
49
27
|
srcStart += 2;
|
|
@@ -64,14 +42,8 @@ export function deserializeRawArray(
|
|
|
64
42
|
while (srcStart < srcEnd) {
|
|
65
43
|
const code = load<u16>(srcStart);
|
|
66
44
|
if (code == QUOTE) {
|
|
67
|
-
srcStart
|
|
68
|
-
|
|
69
|
-
!(
|
|
70
|
-
load<u16>(srcStart) == QUOTE &&
|
|
71
|
-
load<u16>(srcStart - 2) != BACK_SLASH
|
|
72
|
-
)
|
|
73
|
-
)
|
|
74
|
-
srcStart += 2;
|
|
45
|
+
srcStart = scanStringEnd(srcStart, srcEnd);
|
|
46
|
+
if (srcStart >= srcEnd) throw new Error("Unterminated string in JSON array");
|
|
75
47
|
} else if (code == BRACE_RIGHT) {
|
|
76
48
|
if (--depth == 0) {
|
|
77
49
|
// console.log("Value (object): " + ptrToStr(lastIndex, srcStart + 2));
|
|
@@ -89,14 +61,8 @@ export function deserializeRawArray(
|
|
|
89
61
|
while (srcStart < srcEnd) {
|
|
90
62
|
const code = load<u16>(srcStart);
|
|
91
63
|
if (code == QUOTE) {
|
|
92
|
-
srcStart
|
|
93
|
-
|
|
94
|
-
!(
|
|
95
|
-
load<u16>(srcStart) == QUOTE &&
|
|
96
|
-
load<u16>(srcStart - 2) != BACK_SLASH
|
|
97
|
-
)
|
|
98
|
-
)
|
|
99
|
-
srcStart += 2;
|
|
64
|
+
srcStart = scanStringEnd(srcStart, srcEnd);
|
|
65
|
+
if (srcStart >= srcEnd) throw new Error("Unterminated string in JSON array");
|
|
100
66
|
} else if (code == BRACKET_RIGHT) {
|
|
101
67
|
if (--depth == 0) {
|
|
102
68
|
// console.log("Value (array): " + ptrToStr(lastIndex, srcStart + 2));
|
|
@@ -125,17 +91,8 @@ export function deserializeRawArray(
|
|
|
125
91
|
out.push(JSON.Raw.from("null"));
|
|
126
92
|
srcStart += 10;
|
|
127
93
|
}
|
|
128
|
-
} else if (isSpace(code)) {
|
|
129
|
-
srcStart += 2;
|
|
130
94
|
} else {
|
|
131
|
-
throw new Error(
|
|
132
|
-
"Unexpected character in JSON object '" +
|
|
133
|
-
String.fromCharCode(code) +
|
|
134
|
-
"' at position " +
|
|
135
|
-
(srcEnd - srcStart).toString() +
|
|
136
|
-
" " +
|
|
137
|
-
ptrToStr(lastIndex, srcStart + 10),
|
|
138
|
-
);
|
|
95
|
+
throw new Error("Unexpected character in JSON object '" + String.fromCharCode(code) + "' at position " + (srcEnd - srcStart).toString() + " " + ptrToStr(lastIndex, srcStart + 10));
|
|
139
96
|
}
|
|
140
97
|
}
|
|
141
98
|
return out;
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { JSON } from "../../..";
|
|
2
|
-
import {
|
|
2
|
+
import { QUOTE } from "../../../custom/chars";
|
|
3
|
+
import { isUnescapedQuote } from "../../../util";
|
|
3
4
|
|
|
4
|
-
export function deserializeStringArray(
|
|
5
|
-
|
|
6
|
-
srcEnd: usize,
|
|
7
|
-
dst: usize,
|
|
8
|
-
): string[] {
|
|
9
|
-
const out = changetype<string[]>(
|
|
10
|
-
dst || changetype<usize>(instantiate<string[]>()),
|
|
11
|
-
);
|
|
5
|
+
export function deserializeStringArray(srcStart: usize, srcEnd: usize, dst: usize): string[] {
|
|
6
|
+
const out = changetype<string[]>(dst || changetype<usize>(instantiate<string[]>()));
|
|
12
7
|
let lastPos: usize = 2;
|
|
13
8
|
let inString = false;
|
|
14
9
|
while (srcStart < srcEnd) {
|
|
@@ -17,7 +12,7 @@ export function deserializeStringArray(
|
|
|
17
12
|
if (!inString) {
|
|
18
13
|
inString = true;
|
|
19
14
|
lastPos = srcStart;
|
|
20
|
-
} else if (
|
|
15
|
+
} else if (isUnescapedQuote(srcStart)) {
|
|
21
16
|
out.push(JSON.__deserialize<string>(lastPos, srcStart + 2));
|
|
22
17
|
inString = false;
|
|
23
18
|
}
|
|
@@ -1,39 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BRACE_LEFT,
|
|
3
|
-
BRACE_RIGHT,
|
|
4
|
-
BRACKET_LEFT,
|
|
5
|
-
BRACKET_RIGHT,
|
|
6
|
-
} from "../../../custom/chars";
|
|
1
|
+
import { BRACE_LEFT, BRACE_RIGHT, BRACKET_LEFT, BRACKET_RIGHT } from "../../../custom/chars";
|
|
7
2
|
import { JSON } from "../../..";
|
|
8
3
|
import { isSpace } from "util/string";
|
|
9
4
|
|
|
10
|
-
export function deserializeStructArray<T extends unknown[]>(
|
|
11
|
-
|
|
12
|
-
srcEnd: usize,
|
|
13
|
-
dst: usize,
|
|
14
|
-
): T {
|
|
15
|
-
const out = changetype<nonnull<T>>(
|
|
16
|
-
dst || changetype<usize>(instantiate<T>()),
|
|
17
|
-
);
|
|
5
|
+
export function deserializeStructArray<T extends unknown[]>(srcStart: usize, srcEnd: usize, dst: usize): T {
|
|
6
|
+
const out = changetype<nonnull<T>>(dst || changetype<usize>(instantiate<T>()));
|
|
18
7
|
let lastIndex: usize = 0;
|
|
19
8
|
let depth: u32 = 0;
|
|
20
9
|
|
|
21
10
|
while (srcStart < srcEnd && isSpace(load<u16>(srcStart))) srcStart += 2;
|
|
22
11
|
while (srcEnd > srcStart && isSpace(load<u16>(srcEnd - 2))) srcEnd -= 2;
|
|
23
12
|
|
|
24
|
-
if (srcStart - srcEnd == 0)
|
|
25
|
-
throw new Error("Input string had zero length or was all whitespace");
|
|
13
|
+
if (srcStart - srcEnd == 0) throw new Error("Input string had zero length or was all whitespace");
|
|
26
14
|
|
|
27
|
-
if (load<u16>(srcStart) != BRACKET_LEFT)
|
|
28
|
-
|
|
29
|
-
"Expected '[' at start of object at position " +
|
|
30
|
-
(srcEnd - srcStart).toString(),
|
|
31
|
-
);
|
|
32
|
-
if (load<u16>(srcEnd - 2) != BRACKET_RIGHT)
|
|
33
|
-
throw new Error(
|
|
34
|
-
"Expected ']' at end of object at position " +
|
|
35
|
-
(srcEnd - srcStart).toString(),
|
|
36
|
-
);
|
|
15
|
+
if (load<u16>(srcStart) != BRACKET_LEFT) throw new Error("Expected '[' at start of object at position " + (srcEnd - srcStart).toString());
|
|
16
|
+
if (load<u16>(srcEnd - 2) != BRACKET_RIGHT) throw new Error("Expected ']' at end of object at position " + (srcEnd - srcStart).toString());
|
|
37
17
|
|
|
38
18
|
while (srcStart < srcEnd) {
|
|
39
19
|
const code = load<u16>(srcStart);
|
|
@@ -10,13 +10,10 @@ import { deserializeStringArray } from "./array/string";
|
|
|
10
10
|
import { deserializeObjectArray } from "./array/object";
|
|
11
11
|
import { deserializeBoxArray } from "./array/box";
|
|
12
12
|
import { deserializeRawArray } from "./array/raw";
|
|
13
|
+
export { deserializeArrayField, deserializeArrayField as deserializeArrayField_SWAR } from "../swar/array";
|
|
13
14
|
|
|
14
15
|
// @ts-ignore: Decorator valid here
|
|
15
|
-
export function deserializeArray<T extends unknown[]>(
|
|
16
|
-
srcStart: usize,
|
|
17
|
-
srcEnd: usize,
|
|
18
|
-
dst: usize,
|
|
19
|
-
): T {
|
|
16
|
+
export function deserializeArray<T extends unknown[]>(srcStart: usize, srcEnd: usize, dst: usize): T {
|
|
20
17
|
if (isString<valueof<T>>()) {
|
|
21
18
|
return <T>deserializeStringArray(srcStart, srcEnd, dst);
|
|
22
19
|
} else if (isBoolean<valueof<T>>()) {
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
// @ts-ignore: inline
|
|
2
|
-
@inline export function deserializeBoolean(
|
|
3
|
-
srcStart: usize,
|
|
4
|
-
srcEnd: usize,
|
|
5
|
-
): boolean {
|
|
2
|
+
@inline export function deserializeBoolean(srcStart: usize, srcEnd: usize): boolean {
|
|
6
3
|
const block = load<u64>(srcStart);
|
|
7
4
|
if (block == 28429475166421108) return true;
|
|
8
|
-
else if (block == 32370086184550502 && load<u16>(srcStart, 8) == 101)
|
|
9
|
-
return false;
|
|
5
|
+
else if (block == 32370086184550502 && load<u16>(srcStart, 8) == 101) return false;
|
|
10
6
|
return false; //throw new Error(`Expected to find boolean, but found "${data.slice(0, 100)}" instead!`);
|
|
11
7
|
}
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
import { JSON } from "../..";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
COMMA,
|
|
5
|
-
CHAR_F,
|
|
6
|
-
BRACE_LEFT,
|
|
7
|
-
BRACKET_LEFT,
|
|
8
|
-
CHAR_N,
|
|
9
|
-
QUOTE,
|
|
10
|
-
BRACE_RIGHT,
|
|
11
|
-
BRACKET_RIGHT,
|
|
12
|
-
CHAR_T,
|
|
13
|
-
COLON,
|
|
14
|
-
} from "../../custom/chars";
|
|
15
|
-
import { isSpace } from "../../util";
|
|
2
|
+
import { BACK_SLASH, COMMA, CHAR_F, BRACE_LEFT, BRACKET_LEFT, CHAR_N, QUOTE, BRACE_RIGHT, BRACKET_RIGHT, CHAR_T, COLON } from "../../custom/chars";
|
|
3
|
+
import { isSpace, isUnescapedQuote, scanStringEnd } from "../../util";
|
|
16
4
|
|
|
17
5
|
// @ts-ignore: Decorator is valid here
|
|
18
6
|
@inline function normalizeQuotes<T>(start: usize, end: usize): T {
|
|
@@ -20,21 +8,10 @@ import { isSpace } from "../../util";
|
|
|
20
8
|
return JSON.__deserialize<T>(start, end);
|
|
21
9
|
}
|
|
22
10
|
|
|
23
|
-
export function deserializeMap<T extends Map<any, any>>(
|
|
24
|
-
|
|
25
|
-
srcEnd: usize,
|
|
26
|
-
dst: usize,
|
|
27
|
-
): T {
|
|
28
|
-
const out = changetype<nonnull<T>>(
|
|
29
|
-
dst || changetype<usize>(instantiate<T>()),
|
|
30
|
-
);
|
|
11
|
+
export function deserializeMap<T extends Map<any, any>>(srcStart: usize, srcEnd: usize, dst: usize): T {
|
|
12
|
+
const out = changetype<nonnull<T>>(dst || changetype<usize>(instantiate<T>()));
|
|
31
13
|
// @ts-ignore: type
|
|
32
|
-
if (
|
|
33
|
-
!isString<indexof<T>>() &&
|
|
34
|
-
!isInteger<indexof<T>>() &&
|
|
35
|
-
!isFloat<indexof<T>>()
|
|
36
|
-
)
|
|
37
|
-
throw new Error("Map key must also be a valid JSON key!");
|
|
14
|
+
if (!isString<indexof<T>>() && !isInteger<indexof<T>>() && !isFloat<indexof<T>>()) throw new Error("Map key must also be a valid JSON key!");
|
|
38
15
|
|
|
39
16
|
let keyStart: usize = 0;
|
|
40
17
|
let keyEnd: usize = 0;
|
|
@@ -45,35 +22,22 @@ export function deserializeMap<T extends Map<any, any>>(
|
|
|
45
22
|
while (srcStart < srcEnd && isSpace(load<u16>(srcStart))) srcStart += 2;
|
|
46
23
|
while (srcEnd > srcStart && isSpace(load<u16>(srcEnd - 2))) srcEnd -= 2; // would like to optimize this later
|
|
47
24
|
|
|
48
|
-
if (srcStart - srcEnd == 0)
|
|
49
|
-
|
|
50
|
-
if (load<u16>(
|
|
51
|
-
throw new Error(
|
|
52
|
-
"Expected '{' at start of object at position " +
|
|
53
|
-
(srcEnd - srcStart).toString(),
|
|
54
|
-
);
|
|
55
|
-
if (load<u16>(srcEnd - 2) != BRACE_RIGHT)
|
|
56
|
-
throw new Error(
|
|
57
|
-
"Expected '}' at end of object at position " +
|
|
58
|
-
(srcEnd - srcStart).toString(),
|
|
59
|
-
);
|
|
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());
|
|
60
28
|
|
|
61
29
|
srcStart += 2;
|
|
62
30
|
while (srcStart < srcEnd) {
|
|
63
31
|
let code = load<u16>(srcStart); // while (isSpace(code)) code = load<u16>(srcStart += 2);
|
|
64
32
|
if (keyStart == 0) {
|
|
65
|
-
if (code == QUOTE &&
|
|
33
|
+
if (code == QUOTE && isUnescapedQuote(srcStart)) {
|
|
66
34
|
if (isKey) {
|
|
67
35
|
keyStart = lastIndex;
|
|
68
36
|
keyEnd = srcStart;
|
|
69
37
|
// console.log("Key: " + ptrToStr(lastIndex, srcStart));
|
|
70
38
|
// console.log("Next: " + String.fromCharCode(load<u16>(srcStart + 2)));
|
|
71
39
|
while (isSpace((code = load<u16>((srcStart += 2))))) {}
|
|
72
|
-
if (code !== COLON)
|
|
73
|
-
throw new Error(
|
|
74
|
-
"Expected ':' after key at position " +
|
|
75
|
-
(srcEnd - srcStart).toString(),
|
|
76
|
-
);
|
|
40
|
+
if (code !== COLON) throw new Error("Expected ':' after key at position " + (srcEnd - srcStart).toString());
|
|
77
41
|
isKey = false;
|
|
78
42
|
} else {
|
|
79
43
|
// console.log("Got key start");
|
|
@@ -86,24 +50,13 @@ export function deserializeMap<T extends Map<any, any>>(
|
|
|
86
50
|
} else {
|
|
87
51
|
if (code == QUOTE) {
|
|
88
52
|
lastIndex = srcStart;
|
|
53
|
+
srcStart = scanStringEnd(srcStart, srcEnd);
|
|
54
|
+
if (srcStart >= srcEnd) throw new Error("Unterminated string in JSON object");
|
|
55
|
+
// @ts-ignore: type
|
|
56
|
+
out.set(normalizeQuotes<indexof<T>>(keyStart, keyEnd), JSON.__deserialize<valueof<T>>(lastIndex, srcStart + 2));
|
|
89
57
|
srcStart += 2;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if (code == QUOTE && load<u16>(srcStart - 2) !== BACK_SLASH) {
|
|
93
|
-
// console.log("Value (string): " + ptrToStr(lastIndex, srcStart + 2));
|
|
94
|
-
// @ts-ignore: type
|
|
95
|
-
out.set(
|
|
96
|
-
normalizeQuotes<indexof<T>>(keyStart, keyEnd),
|
|
97
|
-
JSON.__deserialize<valueof<T>>(lastIndex, srcStart + 2),
|
|
98
|
-
);
|
|
99
|
-
// while (isSpace(load<u16>(srcStart))) srcStart += 2;
|
|
100
|
-
srcStart += 4;
|
|
101
|
-
// console.log("Next: " + String.fromCharCode(load<u16>(srcStart)));
|
|
102
|
-
keyStart = 0;
|
|
103
|
-
break;
|
|
104
|
-
}
|
|
105
|
-
srcStart += 2;
|
|
106
|
-
}
|
|
58
|
+
keyStart = 0;
|
|
59
|
+
continue;
|
|
107
60
|
} else if (code - 48 <= 9 || code == 45) {
|
|
108
61
|
lastIndex = srcStart;
|
|
109
62
|
srcStart += 2;
|
|
@@ -112,10 +65,7 @@ export function deserializeMap<T extends Map<any, any>>(
|
|
|
112
65
|
if (code == COMMA || code == BRACE_RIGHT || isSpace(code)) {
|
|
113
66
|
// console.log("Value (number): " + ptrToStr(lastIndex, srcStart));
|
|
114
67
|
// @ts-ignore: type
|
|
115
|
-
out.set(
|
|
116
|
-
normalizeQuotes<indexof<T>>(keyStart, keyEnd),
|
|
117
|
-
JSON.__deserialize<valueof<T>>(lastIndex, srcStart),
|
|
118
|
-
);
|
|
68
|
+
out.set(normalizeQuotes<indexof<T>>(keyStart, keyEnd), JSON.__deserialize<valueof<T>>(lastIndex, srcStart));
|
|
119
69
|
// while (isSpace(load<u16>((srcStart += 2)))) {
|
|
120
70
|
// /* empty */
|
|
121
71
|
// }
|
|
@@ -133,22 +83,13 @@ export function deserializeMap<T extends Map<any, any>>(
|
|
|
133
83
|
while (srcStart < srcEnd) {
|
|
134
84
|
const code = load<u16>(srcStart);
|
|
135
85
|
if (code == QUOTE) {
|
|
136
|
-
srcStart
|
|
137
|
-
|
|
138
|
-
!(
|
|
139
|
-
load<u16>(srcStart) == QUOTE &&
|
|
140
|
-
load<u16>(srcStart - 2) != BACK_SLASH
|
|
141
|
-
)
|
|
142
|
-
)
|
|
143
|
-
srcStart += 2;
|
|
86
|
+
srcStart = scanStringEnd(srcStart, srcEnd);
|
|
87
|
+
if (srcStart >= srcEnd) throw new Error("Unterminated string in JSON object");
|
|
144
88
|
} else if (code == BRACE_RIGHT) {
|
|
145
89
|
if (--depth == 0) {
|
|
146
90
|
// console.log("Value (object): " + ptrToStr(lastIndex, srcStart + 2));
|
|
147
91
|
// @ts-ignore: type
|
|
148
|
-
out.set(
|
|
149
|
-
normalizeQuotes<indexof<T>>(keyStart, keyEnd),
|
|
150
|
-
JSON.__deserialize<valueof<T>>(lastIndex, (srcStart += 2)),
|
|
151
|
-
);
|
|
92
|
+
out.set(normalizeQuotes<indexof<T>>(keyStart, keyEnd), JSON.__deserialize<valueof<T>>(lastIndex, (srcStart += 2)));
|
|
152
93
|
// console.log("Next: " + String.fromCharCode(load<u16>(srcStart)));
|
|
153
94
|
keyStart = 0;
|
|
154
95
|
// while (isSpace(load<u16>(srcStart))) {
|
|
@@ -165,14 +106,14 @@ export function deserializeMap<T extends Map<any, any>>(
|
|
|
165
106
|
srcStart += 2;
|
|
166
107
|
while (srcStart < srcEnd) {
|
|
167
108
|
const code = load<u16>(srcStart);
|
|
168
|
-
if (code ==
|
|
109
|
+
if (code == QUOTE) {
|
|
110
|
+
srcStart = scanStringEnd(srcStart, srcEnd);
|
|
111
|
+
if (srcStart >= srcEnd) throw new Error("Unterminated string in JSON object");
|
|
112
|
+
} else if (code == BRACKET_RIGHT) {
|
|
169
113
|
if (--depth == 0) {
|
|
170
114
|
// console.log("Value (array): " + ptrToStr(lastIndex, srcStart + 2));
|
|
171
115
|
// @ts-ignore: type
|
|
172
|
-
out.set(
|
|
173
|
-
normalizeQuotes<indexof<T>>(keyStart, keyEnd),
|
|
174
|
-
JSON.__deserialize<valueof<T>>(lastIndex, (srcStart += 2)),
|
|
175
|
-
);
|
|
116
|
+
out.set(normalizeQuotes<indexof<T>>(keyStart, keyEnd), JSON.__deserialize<valueof<T>>(lastIndex, (srcStart += 2)));
|
|
176
117
|
// console.log("Next: " + String.fromCharCode(load<u16>(srcStart)));
|
|
177
118
|
keyStart = 0;
|
|
178
119
|
// while (isSpace(load<u16>((srcStart += 2)))) {
|
|
@@ -187,10 +128,7 @@ export function deserializeMap<T extends Map<any, any>>(
|
|
|
187
128
|
if (load<u64>(srcStart) == 28429475166421108) {
|
|
188
129
|
// console.log("Value (bool): " + ptrToStr(srcStart, srcStart + 8));
|
|
189
130
|
// @ts-ignore: type
|
|
190
|
-
out.set(
|
|
191
|
-
normalizeQuotes<indexof<T>>(keyStart, keyEnd),
|
|
192
|
-
JSON.__deserialize<valueof<T>>(srcStart, (srcStart += 8)),
|
|
193
|
-
);
|
|
131
|
+
out.set(normalizeQuotes<indexof<T>>(keyStart, keyEnd), JSON.__deserialize<valueof<T>>(srcStart, (srcStart += 8)));
|
|
194
132
|
// while (isSpace(load<u16>((srcStart += 2)))) {
|
|
195
133
|
// /* empty */
|
|
196
134
|
// }
|
|
@@ -202,10 +140,7 @@ export function deserializeMap<T extends Map<any, any>>(
|
|
|
202
140
|
if (load<u64>(srcStart, 2) == 28429466576093281) {
|
|
203
141
|
// console.log("Value (bool): " + ptrToStr(srcStart, srcStart + 10));
|
|
204
142
|
// @ts-ignore: type
|
|
205
|
-
out.set(
|
|
206
|
-
normalizeQuotes<indexof<T>>(keyStart, keyEnd),
|
|
207
|
-
JSON.__deserialize<valueof<T>>(srcStart, (srcStart += 10)),
|
|
208
|
-
);
|
|
143
|
+
out.set(normalizeQuotes<indexof<T>>(keyStart, keyEnd), JSON.__deserialize<valueof<T>>(srcStart, (srcStart += 10)));
|
|
209
144
|
// while (isSpace(load<u16>((srcStart += 2)))) {
|
|
210
145
|
// /* empty */
|
|
211
146
|
// }
|
|
@@ -217,10 +152,7 @@ export function deserializeMap<T extends Map<any, any>>(
|
|
|
217
152
|
if (load<u64>(srcStart) == 30399761348886638) {
|
|
218
153
|
// console.log("Value (null): " + ptrToStr(srcStart, srcStart + 8));
|
|
219
154
|
// @ts-ignore: type
|
|
220
|
-
out.set(
|
|
221
|
-
normalizeQuotes<indexof<T>>(keyStart, keyEnd),
|
|
222
|
-
JSON.__deserialize<valueof<T>>(srcStart, (srcStart += 8)),
|
|
223
|
-
);
|
|
155
|
+
out.set(normalizeQuotes<indexof<T>>(keyStart, keyEnd), JSON.__deserialize<valueof<T>>(srcStart, (srcStart += 8)));
|
|
224
156
|
// while (isSpace(load<u16>((srcStart += 2)))) {
|
|
225
157
|
/* empty */
|
|
226
158
|
// }
|
|
@@ -231,12 +163,7 @@ export function deserializeMap<T extends Map<any, any>>(
|
|
|
231
163
|
} else if (isSpace(code)) {
|
|
232
164
|
srcStart += 2;
|
|
233
165
|
} else {
|
|
234
|
-
throw new Error(
|
|
235
|
-
"Unexpected character in JSON object '" +
|
|
236
|
-
String.fromCharCode(code) +
|
|
237
|
-
"' at position " +
|
|
238
|
-
(srcEnd - srcStart).toString(),
|
|
239
|
-
);
|
|
166
|
+
throw new Error("Unexpected character in JSON object '" + String.fromCharCode(code) + "' at position " + (srcEnd - srcStart).toString());
|
|
240
167
|
}
|
|
241
168
|
}
|
|
242
169
|
}
|