Skip to content

Commit 0b50a23

Browse files
authored
Fixed a reviver bug with non-primitive arguments of function types. (#6)
1 parent 3e49890 commit 0b50a23

5 files changed

Lines changed: 9 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
### 4.2.4
2+
3+
* Fixed a reviver bug with quoted property names.
4+
15
### 4.2.3
26

37
* Fixed a reviver bug with non-primitive arguments of function types.

lib/parse.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1292,7 +1292,7 @@ module.exports = function parse(text, reviver, newOptions) {
12921292
const savedLastPos = lastPos;
12931293
const token = newToken(type, value);
12941294

1295-
if (typeof reviver === 'function') {
1295+
if (typeof reviver === 'function' && parseState !== 'beforePropertyName') {
12961296
token.offset = savedLastPos;
12971297
token.source = source.slice(savedLastPos, pos);
12981298
token.value = new ValueSourceWrapper(value, token.source);

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "json-z",
3-
"version": "4.2.3",
3+
"version": "4.2.4",
44
"description": "JSON for everyone.",
55
"main": "lib/index.min.js",
66
"types": "lib/index.d.ts",

test/parse.spec.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@ it('parse(text, reviver)', () => {
581581
);
582582

583583
expect(
584-
JSONZ.parse('{a:1,b:2,c:_BigInt(3),d:_Map([[4,5]])}', (k, v) => (k === 'a') ? JSONZ.UNDEFINED : v)).to.deep.equal(
584+
JSONZ.parse('{"a":1,`b`:2,c:_BigInt(3),d:_Map([[4,5]])}', (k, v) => (k === 'a') ? JSONZ.UNDEFINED : v)).to.deep.equal(
585585
{ a: undefined, b: 2, c: 3n, d: new Map([[4, 5]]) },
586586
'replaces property values with `undefined`'
587587
);

0 commit comments

Comments
 (0)