* fix: check mismatch error after recusive
* fix: initialize the elem when slice grow in decode
---------
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: Yi Duan <duanyi.aster@bytedance.com>
* feat:(decoder) clear memory when decoding failed
* fix test case
* fix: skip empty string for `,string` option
* test map text key
* support skip mismatched key-value of map
* feat:(decoder) support skip mismatche-typed value
* change test cases
* refactor: add type check down into `CompilePrimitive()` to avoid repeat `null` check
* opt call skip()
* bench: add option `--repeat_times`
* test: omit check primitive
* opt: inline primitive check into its OP
* implement on Go1.15
* fix: support skip json.Numer
* fix: OP_go_skip
* update README.md
* fix:move benchmarkTests and unitTests related to external json library
* remove extra spaces
* merge go.mod files
* refactor: add external_jsonlib_test into go.work and CI
Co-authored-by: Yi Duan <duanyi.aster@bytedance.com>
* fix: allow string value decoded as `json.Number`
* test: move -race flag from Go1.15 since it reports "race: limit on 8128 simultaneously alive goroutines is exceeded, dying"
* test: add benchmarks
* fix: check unescaped control chars in decode
* feat: add utf8 validate func
* feat: validate utf8 in json string
* feat: add validateone api
* fix: check unicode pointer for surrogate
* clang12 compile
* feat: Import `Valid()` and `Skip()`
* opt: use looktable
* fix utf-8 validate performance problem
* fix: utf-8 validate bug
* clang12 build
* feat: (encoder) accelerate validating json from `json.Marshaler`
chore!:
- `encoder.NoCompactMarshaler`changes to `encoder.CompactMarshaler`, which means compacting operation is not open by default
* fix: only one json value is `Valid()`
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>