From 651ba62ab5a9c35e157380e2fd89cf77febb47b9 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Mon, 6 Mar 2017 15:12:19 -0800 Subject: JS: ensure that extension values are serialized even if they're falsy There was a bug where for JavaScript we would only serialize an extension value if it evaluated as truthy, which meant that values like 0 would get silently dropped (even in proto2, where field presence is significant). This fixes issue #2605, and takes care of the output of toObject() in addition to the binary format. --- js/message_test.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'js/message_test.js') diff --git a/js/message_test.js b/js/message_test.js index a2c5763d..2298742d 100644 --- a/js/message_test.js +++ b/js/message_test.js @@ -693,10 +693,11 @@ describe('Message test suite', function() { }); it('testToObject_hasExtensionField', function() { - var data = new proto.jspb.test.HasExtensions(['str1', {100: ['ext1']}]); + var data = new proto.jspb.test.HasExtensions(['str1', {100: ['ext1'], 102: ''}]); var obj = data.toObject(); assertEquals('str1', obj.str1); assertEquals('ext1', obj.extField.ext1); + assertEquals('', obj.str); }); it('testGetExtension', function() { -- cgit v1.2.3