@@ -30,7 +30,7 @@ function encode(message, writer) {
3030 var keyType = field . resolvedKeyType /* only valid is enum */ ? "uint32" : field . keyType ;
3131 if ( message [ field . name ] && message [ field . name ] !== util . emptyObject ) {
3232 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 ( )
3434 . uint32 ( /*1*/ 8 | types . mapKey [ keyType ] ) [ keyType ] ( keys [ i ] ) ;
3535 if ( wireType === undefined )
3636 field . resolvedType . encode ( message [ field . name ] [ keys [ i ] ] , writer . uint32 ( /*2,2*/ 18 ) . fork ( ) ) . ldelim ( ) ;
@@ -47,21 +47,23 @@ function encode(message, writer) {
4747
4848 // Packed repeated
4949 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+ }
5557
5658 // Non-packed
5759 } else {
5860 var i = 0 ;
5961 if ( wireType !== undefined )
6062 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 ++ ] ) ;
6264 else
6365 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 ( ) ;
6567 }
6668
6769 }
@@ -75,7 +77,7 @@ function encode(message, writer) {
7577 ( field . required || value !== undefined ) && ( field . long ? util . longNe ( value , field . defaultValue . low , field . defaultValue . high ) : value !== field . defaultValue )
7678 ) {
7779 if ( wireType !== undefined )
78- writer . uint32 ( field . id << 3 | wireType ) [ type ] ( value ) ;
80+ writer . uint32 ( ( field . id << 3 | wireType ) >>> 0 ) [ type ] ( value ) ;
7981 else {
8082 field . resolvedType . encode ( value , writer . fork ( ) ) ;
8183 if ( writer . len || field . required )
@@ -118,7 +120,7 @@ encode.generate = function generate(mtype) {
118120 gen
119121 ( "if(m%s&&m%s!==util.emptyObject){" , prop , prop )
120122 ( "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 ) ;
122124 if ( wireType === undefined ) gen
123125 ( "types[%d].encode(m%s[ks[i]],w.uint32(18).fork()).ldelim()" , i , prop ) ;
124126 else gen
@@ -135,10 +137,10 @@ encode.generate = function generate(mtype) {
135137 if ( field . packed && types . packed [ type ] !== undefined ) { gen
136138
137139 ( "if(m%s&&m%s.length){" , prop , prop )
138- ( "w.fork()" )
140+ ( "w.uint32(%d). fork()" , ( field . id << 3 | 2 ) >>> 0 )
139141 ( "for(var i=0;i<m%s.length;++i)" , prop )
140142 ( "w.%s(m%s[i])" , type , prop )
141- ( "w.ldelim(%d )" , field . id )
143+ ( "w.ldelim()" , field . id )
142144 ( "}" ) ;
143145
144146 // Non-packed
@@ -147,9 +149,9 @@ encode.generate = function generate(mtype) {
147149 ( "if(m%s)" , prop )
148150 ( "for(var i=0;i<m%s.length;++i)" , prop ) ;
149151 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 ) ;
151153 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 ) ;
153155
154156 }
155157
@@ -167,11 +169,11 @@ encode.generate = function generate(mtype) {
167169
168170 if ( wireType !== undefined ) gen
169171
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 ) ;
171173
172174 else if ( field . required ) gen
173175
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 ) ;
175177
176178 else gen
177179
@@ -195,11 +197,11 @@ encode.generate = function generate(mtype) {
195197
196198 if ( wireType !== undefined ) gen
197199
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 ) ;
199201
200202 else if ( field . required ) gen
201203
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 ) ;
203205
204206 else gen
205207
0 commit comments