Skip to content

Commit 7fbc79f

Browse files
authored
fix: properly parse empty messages in options (#1429)
* Properly parse empty messages in options * Add missing semicolon in test
1 parent ad3cffd commit 7fbc79f

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

src/parse.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ function parse(source, root, options) {
555555

556556
function parseOptionValue(parent, name) {
557557
if (skip("{", true)) { // { a: "foo" b { c: "bar" } }
558-
do {
558+
while (!skip("}", true)) {
559559
/* istanbul ignore if */
560560
if (!nameRe.test(token = next()))
561561
throw illegal(token, "name");
@@ -570,7 +570,7 @@ function parse(source, root, options) {
570570
setOption(parent, name + "." + token, readValue(true));
571571
}
572572
skip(",", true);
573-
} while (!skip("}", true));
573+
}
574574
} else
575575
setOption(parent, name, readValue(true));
576576
// Does not enforce a delimiter to be universal

tests/data/uncommon.proto

+2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ message Test2 {
3131

3232
map<uint64,Test> longmap = 10;
3333

34+
int32 optionTest = 11 [(my_options) = { a: "foo" b {} }];
35+
3436
/** pre */
3537
oneof kind;
3638
oneof kind2; /// post

0 commit comments

Comments
 (0)