Integrated internal changes from Google
diff --git a/js/debug.js b/js/debug.js
index ba51bbe..9655b2e 100644
--- a/js/debug.js
+++ b/js/debug.js
@@ -37,6 +37,7 @@
 goog.require('goog.array');
 goog.require('goog.asserts');
 goog.require('goog.object');
+goog.require('jspb.Map');
 goog.require('jspb.Message');
 
 
@@ -90,6 +91,16 @@
     goog.asserts.assertArray(thing);
     return goog.array.map(thing, jspb.debug.dump_);
   }
+
+  if (message instanceof jspb.Map) {
+    var mapObject = {};
+    var entries = message.entries();
+    for (var entry = entries.next(); !entry.done; entry = entries.next()) {
+      mapObject[entry.value[0]] = jspb.debug.dump_(entry.value[1]);
+    }
+    return mapObject;
+  }
+
   goog.asserts.assert(message instanceof jspb.Message,
       'Only messages expected: ' + thing);
   var ctor = message.constructor;