Integrate google internal changes.
diff --git a/js/binary/reader_test.js b/js/binary/reader_test.js
index a648261..6f7e5d4 100644
--- a/js/binary/reader_test.js
+++ b/js/binary/reader_test.js
@@ -366,28 +366,28 @@
     var writer = new jspb.BinaryWriter();
 
     var testSignedData = [
-        '2730538252207801776',
-        '-2688470994844604560',
-        '3398529779486536359',
-        '3568577411627971000',
-        '272477188847484900',
-        '-6649058714086158188',
-        '-7695254765712060806',
-        '-4525541438037104029',
-        '-4993706538836508568',
-        '4990160321893729138'
+      '2730538252207801776',
+      '-2688470994844604560',
+      '3398529779486536359',
+      '3568577411627971000',
+      '272477188847484900',
+      '-6649058714086158188',
+      '-7695254765712060806',
+      '-4525541438037104029',
+      '-4993706538836508568',
+      '4990160321893729138'
     ];
     var testUnsignedData = [
-        '7822732630241694882',
-        '6753602971916687352',
-        '2399935075244442116',
-        '8724292567325338867',
-        '16948784802625696584',
-        '4136275908516066934',
-        '3575388346793700364',
-        '5167142028379259461',
-        '1557573948689737699',
-        '17100725280812548567'
+      '7822732630241694882',
+      '6753602971916687352',
+      '2399935075244442116',
+      '8724292567325338867',
+      '16948784802625696584',
+      '4136275908516066934',
+      '3575388346793700364',
+      '5167142028379259461',
+      '1557573948689737699',
+      '17100725280812548567'
     ];
 
     for (var i = 0; i < testSignedData.length; i++) {
@@ -535,7 +535,7 @@
    */
   it('testNesting', function() {
     var writer = new jspb.BinaryWriter();
-  var dummyMessage = /** @type {!jspb.BinaryMessage} */({});
+    var dummyMessage = /** @type {!jspb.BinaryMessage} */({});
 
     writer.writeInt32(1, 100);
 
@@ -626,31 +626,15 @@
     writer.writeBytes(4, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
     writer.writeString(4, 'The quick brown fox jumps over the lazy dog');
 
-    // Write a group with a nested group inside. We use the internal
-    // .rawWriteVarint() to ensure the tested wire data is what we want,
-    // independently of any serialization logic.
+    // Write a group with a nested group inside.
     writer.writeInt32(5, sentinel);
-    // Start group, field 5.
-    writer.rawWriteVarint(
-        (5 << 3) + jspb.BinaryConstants.WireType.START_GROUP);
-    // Varint, field 42.
-    writer.rawWriteVarint(
-        (42 << 3) + jspb.BinaryConstants.WireType.VARINT);
-    // Varint data.
-    writer.rawWriteVarint(42);
-    // Start group, field 6.
-    writer.rawWriteVarint(
-        (6 << 3) + jspb.BinaryConstants.WireType.START_GROUP);
-    // Varint, field 84.
-    writer.rawWriteVarint(
-        (84 << 3) + jspb.BinaryConstants.WireType.VARINT);
-    writer.rawWriteVarint(42);
-    // End group, field 6.
-    writer.rawWriteVarint(
-        (6 << 3) + jspb.BinaryConstants.WireType.END_GROUP);
-    // End group, field 5.
-    writer.rawWriteVarint(
-        (5 << 3) + jspb.BinaryConstants.WireType.END_GROUP);
+    var dummyMessage = /** @type {!jspb.BinaryMessage} */({});
+    writer.writeGroup(5, dummyMessage, function() {
+      writer.writeInt64(42, 42);
+      writer.writeGroup(6, dummyMessage, function() {
+        writer.writeInt64(84, 42);
+      });
+    });
 
     // Write final sentinel.
     writer.writeInt32(6, sentinel);