[js_runtime] Avoid more casts

TBR=sigmund@google.com

Change-Id: I6400b13627c112a7a113350fdb9243353fcee6d3
Reviewed-on: https://dart-review.googlesource.com/55620
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
diff --git a/sdk/lib/_internal/js_runtime/lib/linked_hash_map.dart b/sdk/lib/_internal/js_runtime/lib/linked_hash_map.dart
index 3fc7833..46f945b 100644
--- a/sdk/lib/_internal/js_runtime/lib/linked_hash_map.dart
+++ b/sdk/lib/_internal/js_runtime/lib/linked_hash_map.dart
@@ -197,7 +197,9 @@
     LinkedHashMapCell cell = _first;
     int modifications = _modifications;
     while (cell != null) {
-      action(cell.hashMapCellKey, cell.hashMapCellValue);
+      K key = JS('', '#', cell.hashMapCellKey);
+      V value = JS('', '#', cell.hashMapCellValue);
+      action(key, value);
       if (modifications != _modifications) {
         throw new ConcurrentModificationError(this);
       }
@@ -398,7 +400,7 @@
     LinkedHashMapCell cell = _map._first;
     int modifications = _map._modifications;
     while (cell != null) {
-      f(cell.hashMapCellKey);
+      f(JS('', '#', cell.hashMapCellKey));
       if (modifications != _map._modifications) {
         throw new ConcurrentModificationError(_map);
       }
@@ -426,7 +428,7 @@
       _current = null;
       return false;
     } else {
-      _current = _cell.hashMapCellKey;
+      _current = JS('', '#', _cell.hashMapCellKey);
       _cell = _cell._next;
       return true;
     }