@@ -30,7 +30,7 @@ function encode(message, writer) {
30
30
var keyType = field . resolvedKeyType /* only valid is enum */ ? "uint32" : field . keyType ;
31
31
if ( message [ field . name ] && message [ field . name ] !== util . emptyObject ) {
32
32
for ( var keys = Object . keys ( message [ field . name ] ) , i = 0 ; i < keys . length ; ++ i ) {
33
- writer . uint32 ( field . id << 3 | 2 ) . fork ( )
33
+ writer . uint32 ( ( field . id << 3 | 2 ) >>> 0 ) . fork ( )
34
34
. uint32 ( /*1*/ 8 | types . mapKey [ keyType ] ) [ keyType ] ( keys [ i ] ) ;
35
35
if ( wireType === undefined )
36
36
field . resolvedType . encode ( message [ field . name ] [ keys [ i ] ] , writer . uint32 ( /*2,2*/ 18 ) . fork ( ) ) . ldelim ( ) ;
@@ -47,21 +47,23 @@ function encode(message, writer) {
47
47
48
48
// Packed repeated
49
49
if ( field . packed && types . packed [ type ] !== undefined ) {
50
- writer . fork ( ) ;
51
- var i = 0 ;
52
- while ( i < values . length )
53
- writer [ type ] ( values [ i ++ ] ) ;
54
- writer . ldelim ( field . id ) ;
50
+ if ( values . length ) {
51
+ writer . uint32 ( ( field . id << 3 | 2 ) >>> 0 ) . fork ( ) ;
52
+ var i = 0 ;
53
+ while ( i < values . length )
54
+ writer [ type ] ( values [ i ++ ] ) ;
55
+ writer . ldelim ( ) ;
56
+ }
55
57
56
58
// Non-packed
57
59
} else {
58
60
var i = 0 ;
59
61
if ( wireType !== undefined )
60
62
while ( i < values . length )
61
- writer . uint32 ( field . id << 3 | wireType ) [ type ] ( values [ i ++ ] ) ;
63
+ writer . uint32 ( ( field . id << 3 | wireType ) >>> 0 ) [ type ] ( values [ i ++ ] ) ;
62
64
else
63
65
while ( i < values . length )
64
- field . resolvedType . encode ( values [ i ++ ] , writer . uint32 ( field . id << 3 | 2 ) . fork ( ) ) . ldelim ( ) ;
66
+ field . resolvedType . encode ( values [ i ++ ] , writer . uint32 ( ( field . id << 3 | 2 ) >>> 0 ) . fork ( ) ) . ldelim ( ) ;
65
67
}
66
68
67
69
}
@@ -75,7 +77,7 @@ function encode(message, writer) {
75
77
( field . required || value !== undefined ) && ( field . long ? util . longNe ( value , field . defaultValue . low , field . defaultValue . high ) : value !== field . defaultValue )
76
78
) {
77
79
if ( wireType !== undefined )
78
- writer . uint32 ( field . id << 3 | wireType ) [ type ] ( value ) ;
80
+ writer . uint32 ( ( field . id << 3 | wireType ) >>> 0 ) [ type ] ( value ) ;
79
81
else {
80
82
field . resolvedType . encode ( value , writer . fork ( ) ) ;
81
83
if ( writer . len || field . required )
@@ -118,7 +120,7 @@ encode.generate = function generate(mtype) {
118
120
gen
119
121
( "if(m%s&&m%s!==util.emptyObject){" , prop , prop )
120
122
( "for(var ks=Object.keys(m%s),i=0;i<ks.length;++i){" , prop )
121
- ( "w.uint32(%d).fork().uint32(%d).%s(ks[i])" , field . id << 3 | 2 , 8 | types . mapKey [ keyType ] , keyType ) ;
123
+ ( "w.uint32(%d).fork().uint32(%d).%s(ks[i])" , ( field . id << 3 | 2 ) >>> 0 , 8 | types . mapKey [ keyType ] , keyType ) ;
122
124
if ( wireType === undefined ) gen
123
125
( "types[%d].encode(m%s[ks[i]],w.uint32(18).fork()).ldelim()" , i , prop ) ;
124
126
else gen
@@ -135,10 +137,10 @@ encode.generate = function generate(mtype) {
135
137
if ( field . packed && types . packed [ type ] !== undefined ) { gen
136
138
137
139
( "if(m%s&&m%s.length){" , prop , prop )
138
- ( "w.fork()" )
140
+ ( "w.uint32(%d). fork()" , ( field . id << 3 | 2 ) >>> 0 )
139
141
( "for(var i=0;i<m%s.length;++i)" , prop )
140
142
( "w.%s(m%s[i])" , type , prop )
141
- ( "w.ldelim(%d )" , field . id )
143
+ ( "w.ldelim()" , field . id )
142
144
( "}" ) ;
143
145
144
146
// Non-packed
@@ -147,9 +149,9 @@ encode.generate = function generate(mtype) {
147
149
( "if(m%s)" , prop )
148
150
( "for(var i=0;i<m%s.length;++i)" , prop ) ;
149
151
if ( wireType !== undefined ) gen
150
- ( "w.uint32(%d).%s(m%s[i])" , field . id << 3 | wireType , type , prop ) ;
152
+ ( "w.uint32(%d).%s(m%s[i])" , ( field . id << 3 | wireType ) >>> 0 , type , prop ) ;
151
153
else gen
152
- ( "types[%d].encode(m%s[i],w.uint32(%d).fork()).ldelim()" , i , prop , field . id << 3 | 2 ) ;
154
+ ( "types[%d].encode(m%s[i],w.uint32(%d).fork()).ldelim()" , i , prop , ( field . id << 3 | 2 ) >>> 0 ) ;
153
155
154
156
}
155
157
@@ -167,11 +169,11 @@ encode.generate = function generate(mtype) {
167
169
168
170
if ( wireType !== undefined ) gen
169
171
170
- ( "w.uint32(%d).%s(m%s)" , field . id << 3 | wireType , type , prop ) ;
172
+ ( "w.uint32(%d).%s(m%s)" , ( field . id << 3 | wireType ) >>> 0 , type , prop ) ;
171
173
172
174
else if ( field . required ) gen
173
175
174
- ( "types[%d].encode(m%s,w.uint32(%d).fork()).ldelim()" , i , prop , field . id << 3 | 2 ) ;
176
+ ( "types[%d].encode(m%s,w.uint32(%d).fork()).ldelim()" , i , prop , ( field . id << 3 | 2 ) >>> 0 ) ;
175
177
176
178
else gen
177
179
@@ -195,11 +197,11 @@ encode.generate = function generate(mtype) {
195
197
196
198
if ( wireType !== undefined ) gen
197
199
198
- ( "w.uint32(%d).%s(m%s)" , field . id << 3 | wireType , type , prop ) ;
200
+ ( "w.uint32(%d).%s(m%s)" , ( field . id << 3 | wireType ) >>> 0 , type , prop ) ;
199
201
200
202
else if ( field . required ) gen
201
203
202
- ( "types[%d].encode(m%s,w.uint32(%d).fork()).ldelim()" , fields . indexOf ( field ) , prop , field . id << 3 | 2 ) ;
204
+ ( "types[%d].encode(m%s,w.uint32(%d).fork()).ldelim()" , fields . indexOf ( field ) , prop , ( field . id << 3 | 2 ) >>> 0 ) ;
203
205
204
206
else gen
205
207
0 commit comments