Skip to content

Commit 08cda24

Browse files
committed
Fixed: An enum's default value present as a string looks up using typeDefault, not defaultValue which is an array if repeated
1 parent b5daa27 commit 08cda24

17 files changed

+41
-53
lines changed

dist/noparse/protobuf.js

+6-10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/noparse/protobuf.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/noparse/protobuf.min.js

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/noparse/protobuf.min.js.gz

3 Bytes
Binary file not shown.

dist/noparse/protobuf.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.js

+6-10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.min.js

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.min.js.gz

-4 Bytes
Binary file not shown.

dist/protobuf.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/runtime/protobuf.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/runtime/protobuf.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/runtime/protobuf.min.js.gz

-2 Bytes
Binary file not shown.

src/converter.js

+4-8
Original file line numberDiff line numberDiff line change
@@ -192,30 +192,26 @@ converter.toObject = function toObject(mtype) {
192192
("if(!o)")
193193
("o={}")
194194
("var d={}");
195-
var repeatedFields = fields.filter(function(field) { return field.repeated; });
195+
var repeatedFields = fields.filter(function(field) { return field.resolve().repeated; });
196196
if (repeatedFields.length) { gen
197197
("if(o.arrays||o.defaults){");
198-
fields.forEach(function(field) {
199-
if (field.resolve().repeated) gen
198+
repeatedFields.forEach(function(field) { gen
200199
("d%s=[]", field._prop);
201200
}); gen
202201
("}");
203202
}
204203
var mapFields = fields.filter(function(field) { return field.map; });
205204
if (mapFields.length) { gen
206205
("if(o.objects||o.defaults){");
207-
fields.forEach(function(field) {
208-
if (field.map) gen
206+
mapFields.forEach(function(field) { gen
209207
("d%s={}", field._prop);
210208
}); gen
211209
("}");
212210
}
213211
var otherFields = fields.filter(function(field) { return !(field.repeated || field.map); });
214212
if (otherFields.length) { gen
215213
("if(o.defaults){");
216-
fields.forEach(function(field) {
217-
if (field.repeated || field.map)
218-
return;
214+
otherFields.forEach(function(field) {
219215
if (field.resolvedType instanceof Enum) gen
220216
("d%s=o.enums===String?%j:%j", field._prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault);
221217
else if (field.long) gen

src/field.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ FieldPrototype.resolve = function resolve() {
255255
if (this.options && this.options["default"] !== undefined) {
256256
this.typeDefault = this.options["default"];
257257
if (this.resolvedType instanceof Enum && typeof this.typeDefault === "string")
258-
this.typeDefault = this.resolvedType.values[this.defaultValue];
258+
this.typeDefault = this.resolvedType.values[this.typeDefault];
259259
}
260260

261261
// convert to internal data type if necesssary

tests/data/mapbox/vector_tile.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ $root.vector_tile = (function() {
567567
* Feature type.
568568
* @type {number}
569569
*/
570-
Feature.prototype.type = undefined;
570+
Feature.prototype.type = 0;
571571

572572
/**
573573
* Feature geometry.
@@ -796,7 +796,7 @@ $root.vector_tile = (function() {
796796
object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
797797
} else
798798
object.id = options.longs === String ? "0" : 0;
799-
object.type = options.enums === String ? undefined : undefined;
799+
object.type = options.enums === String ? "UNKNOWN" : 0;
800800
}
801801
if (message.hasOwnProperty("id") && message.id !== undefined && message.id !== null)
802802
if (typeof message.id === "number")

tests/data/test.js

+10-10
Original file line numberDiff line numberDiff line change
@@ -2818,7 +2818,7 @@ $root.jspb = (function() {
28182818
* DefaultValues enumField.
28192819
* @type {number}
28202820
*/
2821-
DefaultValues.prototype.enumField = undefined;
2821+
DefaultValues.prototype.enumField = 13;
28222822

28232823
/**
28242824
* DefaultValues emptyField.
@@ -3028,7 +3028,7 @@ $root.jspb = (function() {
30283028
object.intField = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
30293029
} else
30303030
object.intField = options.longs === String ? "11" : 11;
3031-
object.enumField = options.enums === String ? undefined : undefined;
3031+
object.enumField = options.enums === String ? "E1" : 13;
30323032
object.emptyField = "";
30333033
object.bytesField = options.bytes === String ? "moo" : [
30343034
109,
@@ -10137,7 +10137,7 @@ $root.google = (function() {
1013710137
* FileOptions optimizeFor.
1013810138
* @type {number}
1013910139
*/
10140-
FileOptions.prototype.optimizeFor = undefined;
10140+
FileOptions.prototype.optimizeFor = 1;
1014110141

1014210142
/**
1014310143
* FileOptions goPackage.
@@ -10487,7 +10487,7 @@ $root.google = (function() {
1048710487
object.javaMultipleFiles = false;
1048810488
object.javaGenerateEqualsAndHash = false;
1048910489
object.javaStringCheckUtf8 = false;
10490-
object.optimizeFor = options.enums === String ? undefined : undefined;
10490+
object.optimizeFor = options.enums === String ? "SPEED" : 1;
1049110491
object.goPackage = "";
1049210492
object.ccGenericServices = false;
1049310493
object.javaGenericServices = false;
@@ -10848,7 +10848,7 @@ $root.google = (function() {
1084810848
* FieldOptions ctype.
1084910849
* @type {number}
1085010850
*/
10851-
FieldOptions.prototype.ctype = undefined;
10851+
FieldOptions.prototype.ctype = 0;
1085210852

1085310853
/**
1085410854
* FieldOptions packed.
@@ -10860,7 +10860,7 @@ $root.google = (function() {
1086010860
* FieldOptions jstype.
1086110861
* @type {number}
1086210862
*/
10863-
FieldOptions.prototype.jstype = undefined;
10863+
FieldOptions.prototype.jstype = 0;
1086410864

1086510865
/**
1086610866
* FieldOptions lazy.
@@ -11114,9 +11114,9 @@ $root.google = (function() {
1111411114
if (options.arrays || options.defaults)
1111511115
object.uninterpretedOption = [];
1111611116
if (options.defaults) {
11117-
object.ctype = options.enums === String ? undefined : undefined;
11117+
object.ctype = options.enums === String ? "STRING" : 0;
1111811118
object.packed = false;
11119-
object.jstype = options.enums === String ? undefined : undefined;
11119+
object.jstype = options.enums === String ? "JS_NORMAL" : 0;
1112011120
object.lazy = false;
1112111121
object.deprecated = false;
1112211122
object.weak = false;
@@ -12039,7 +12039,7 @@ $root.google = (function() {
1203912039
* MethodOptions idempotencyLevel.
1204012040
* @type {number}
1204112041
*/
12042-
MethodOptions.prototype.idempotencyLevel = undefined;
12042+
MethodOptions.prototype.idempotencyLevel = 0;
1204312043

1204412044
/**
1204512045
* MethodOptions uninterpretedOption.
@@ -12217,7 +12217,7 @@ $root.google = (function() {
1221712217
object.uninterpretedOption = [];
1221812218
if (options.defaults) {
1221912219
object.deprecated = false;
12220-
object.idempotencyLevel = options.enums === String ? undefined : undefined;
12220+
object.idempotencyLevel = options.enums === String ? "IDEMPOTENCY_UNKNOWN" : 0;
1222112221
}
1222212222
if (message.hasOwnProperty("deprecated") && message.deprecated !== undefined && message.deprecated !== null)
1222312223
object.deprecated = message.deprecated;

0 commit comments

Comments
 (0)