|
@@ -116,7 +116,7 @@ import haxe.DynamicAccess;
|
|
|
}
|
|
|
|
|
|
public inline function keys():Iterator<String> {
|
|
|
- return new StringMapKeyIterator(h);
|
|
|
+ return new haxe.iterators.ArrayIterator(Object.keys(h));
|
|
|
}
|
|
|
|
|
|
public inline function iterator():Iterator<T> {
|
|
@@ -157,28 +157,6 @@ import haxe.DynamicAccess;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-private class StringMapKeyIterator {
|
|
|
- final h:Dynamic;
|
|
|
- final keys:Array<String>;
|
|
|
- final length:Int;
|
|
|
- var current:Int;
|
|
|
-
|
|
|
- public inline function new(h:Dynamic) {
|
|
|
- this.h = h;
|
|
|
- keys = Object.keys(h);
|
|
|
- length = keys.length;
|
|
|
- current = 0;
|
|
|
- }
|
|
|
-
|
|
|
- public inline function hasNext():Bool {
|
|
|
- return current < length;
|
|
|
- }
|
|
|
-
|
|
|
- public inline function next():String {
|
|
|
- return keys[current++];
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
private class StringMapValueIterator<T> {
|
|
|
final h:Dynamic;
|
|
|
final keys:Array<String>;
|