| // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 
 | // for details. All rights reserved. Use of this source code is governed by a | 
 | // BSD-style license that can be found in the LICENSE file. | 
 |  | 
 | part of $LIBRARYNAME; | 
 |  | 
 | $(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$MIXINS$IMPLEMENTS { | 
 | $!MEMBERS | 
 |  | 
 |   Map$NULLABLE _getItem($KEYTYPE key) => | 
 |       convertNativeToDart_Dictionary(JS('', '#.get(#)', this, key)); | 
 |  | 
 |   void addAll(Map<$KEYTYPE, $VALUETYPE> other) { | 
 |     throw new UnsupportedError("Not supported"); | 
 |   } | 
 |  | 
 |   bool containsValue($VALUETYPE value) => values.any((e) => e == value); | 
 |  | 
 |   bool containsKey($VALUETYPE key) => _getItem(key) != null; | 
 |  | 
 |   Map$NULLABLE operator []($VALUETYPE key) => _getItem(key); | 
 |  | 
 |   void forEach(void f($KEYTYPE key, $VALUETYPE value)) { | 
 |     var entries = JS('', '#.entries()', this); | 
 |     while (true) { | 
 |       var entry = JS('', '#.next()', entries); | 
 |       if (JS('bool', '#.done', entry)) return; | 
 |       f(JS('$KEYTYPE', '#.value[0]', entry), | 
 |           convertNativeToDart_Dictionary(JS('', '#.value[1]', entry))); | 
 |     } | 
 |   } | 
 |  | 
 |   Iterable<$KEYTYPE> get keys { | 
 |     final keys = <$KEYTYPE>[]; | 
 |     forEach((k, v) => keys.add(k)); | 
 |     return keys; | 
 |   } | 
 |  | 
 |   Iterable<Map> get values { | 
 |     final values = <Map>[]; | 
 |     forEach((k, v) => values.add(v)); | 
 |     return values; | 
 |   } | 
 |  | 
 |   int get length => JS('int', '#.size', this); | 
 |  | 
 |   bool get isEmpty => length == 0; | 
 |  | 
 |   bool get isNotEmpty => !isEmpty; | 
 |  | 
 |   void operator []=($KEYTYPE key, $VALUETYPE value) { | 
 |     throw new UnsupportedError("Not supported"); | 
 |   } | 
 |  | 
 |   dynamic putIfAbsent($KEYTYPE key, $VALUETYPE ifAbsent()) { | 
 |     throw new UnsupportedError("Not supported"); | 
 |   } | 
 |  | 
 |   $KEYTYPE remove($VALUETYPE key) { | 
 |     throw new UnsupportedError("Not supported"); | 
 |   } | 
 |  | 
 |   void clear() { | 
 |     throw new UnsupportedError("Not supported"); | 
 |   } | 
 | } |