json-as 0.9.8-b → 0.9.9-a

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "json-as",
3
- "version": "0.9.8b",
3
+ "version": "0.9.9a",
4
4
  "description": "JSON encoder/decoder for AssemblyScript",
5
5
  "types": "assembly/index.ts",
6
6
  "author": "Jairus Tanaka",
@@ -17,7 +17,7 @@
17
17
  "scripts": {
18
18
  "test": "wasmtime build/test.spec.wasm",
19
19
  "pretest": "asc assembly/__tests__/test.spec.ts --target test",
20
- "build:test": "asc assembly/test.ts --target debug",
20
+ "build:test": "JSON_DEBUG=true asc assembly/test.ts --target debug",
21
21
  "build:bench": "asc bench/benchmark.ts -o bench/benchmark.wasm --transform ./transform --optimizeLevel 3 --shrinkLevel 0 --converge --noAssert --uncheckedBehavior always --runtime stub",
22
22
  "bench:wasmtime": "wasmtime ./bench/benchmark.wasm",
23
23
  "bench:wasmer": "wasmer --llvm ./bench/benchmark.wasm",
@@ -26,20 +26,21 @@
26
26
  "test:wavm": "wavm run ./build/test.wasm",
27
27
  "test:lunatic": "lunatic ./build/test.wasm",
28
28
  "test:wasm3": "wasm3 ./build/test.wasm",
29
- "prettier": "as-prettier -w ."
29
+ "prettier": "as-prettier -w .",
30
+ "preinstall": "bun link json-as"
30
31
  },
31
32
  "devDependencies": {
32
33
  "@assemblyscript/wasi-shim": "^0.1.0",
33
34
  "as-bench": "^0.0.0-alpha",
34
- "as-console": "^1.0.2",
35
+ "as-console": "^7.0.0",
35
36
  "assemblyscript": "^0.27.28",
36
37
  "assemblyscript-prettier": "^3.0.1",
37
38
  "benchmark": "^2.1.4",
38
- "json-as": "./",
39
+ "json-as": "link:json-as",
39
40
  "microtime": "^3.1.1",
40
41
  "prettier": "^3.3.2",
41
42
  "tinybench": "^2.8.0",
42
- "typescript": "^5.5.2",
43
+ "typescript": "^5.5.3",
43
44
  "visitor-as": "^0.11.4"
44
45
  },
45
46
  "dependencies": {
@@ -150,6 +150,32 @@ class JSONTransform extends BaseVisitor {
150
150
  else if (mem.value) {
151
151
  mem.initialize = "this." + name.text + " = " + mem.value;
152
152
  }
153
+ else if (t === "Map") {
154
+ mem.initialize = "this." + name.text + " = new " + mem.type + "()";
155
+ }
156
+ else if (t === "string") {
157
+ mem.initialize = "this." + name.text + " = \"\"";
158
+ }
159
+ else if (t === "Array") {
160
+ mem.initialize = "this." + name.text + " = instantiate<" + mem.type + ">()";
161
+ }
162
+ else if (t === "bool" || t === "boolean") {
163
+ mem.initialize = "this." + name.text + " = false";
164
+ }
165
+ else if (t === "u8" ||
166
+ t === "u16" ||
167
+ t === "u32" ||
168
+ t === "u64" ||
169
+ t === "i8" ||
170
+ t === "i16" ||
171
+ t === "i32" ||
172
+ t === "i64") {
173
+ mem.initialize = "this." + name.text + " = 0";
174
+ }
175
+ else if (t === "f32" ||
176
+ t === "f64") {
177
+ mem.initialize = "this." + name.text + " = 0.0";
178
+ }
153
179
  schema.members.push(mem);
154
180
  }
155
181
  let SERIALIZE_RAW = "__SERIALIZE(): string {\n let out = `{";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@json-as/transform",
3
- "version": "0.9.8b",
3
+ "version": "0.9.9a",
4
4
  "description": "JSON encoder/decoder for AssemblyScript",
5
5
  "main": "./lib/index.js",
6
6
  "author": "Jairus Tanaka",
@@ -164,6 +164,30 @@ class JSONTransform extends BaseVisitor {
164
164
  mem.initialize = "this." + name.text + " = changetype<nonnull<" + mem.type + ">>(__new(offsetof<nonnull<" + mem.type + ">>(), idof<nonnull<" + mem.type + ">>()));\n changetype<nonnull<" + mem.type + ">>(this." + name.text + ").__INITIALIZE()";
165
165
  } else if (mem.value) {
166
166
  mem.initialize = "this." + name.text + " = " + mem.value;
167
+ } else if (t === "Map") {
168
+ mem.initialize = "this." + name.text + " = new " + mem.type + "()"
169
+ } else if (t === "string") {
170
+ mem.initialize = "this." + name.text + " = \"\"";
171
+ } else if (t === "Array") {
172
+ mem.initialize = "this." + name.text + " = instantiate<" + mem.type + ">()";
173
+ } else if (t === "bool" || t === "boolean") {
174
+ mem.initialize = "this." + name.text + " = false";
175
+ } else if (
176
+ t === "u8" ||
177
+ t === "u16" ||
178
+ t === "u32" ||
179
+ t === "u64" ||
180
+ t === "i8" ||
181
+ t === "i16" ||
182
+ t === "i32" ||
183
+ t === "i64"
184
+ ) {
185
+ mem.initialize = "this." + name.text + " = 0";
186
+ } else if (
187
+ t === "f32" ||
188
+ t === "f64"
189
+ ) {
190
+ mem.initialize = "this." + name.text + " = 0.0";
167
191
  }
168
192
 
169
193
  schema.members.push(mem);