@@ -13,7 +13,7 @@ void HashTable::init(Handle<Object> exports) {
1313 map_constructor->SetClassName (String::NewSymbol (" NodeMap" ));
1414 map_constructor->InstanceTemplate ()->SetInternalFieldCount (1 );
1515
16- auto ht_prototype = ht_constructor->PrototypeTemplate ();
16+ Local<ObjectTemplate> ht_prototype = ht_constructor->PrototypeTemplate ();
1717 ht_prototype->Set (" put" , FunctionTemplate::New (Put)->GetFunction ());
1818 ht_prototype->Set (" get" , FunctionTemplate::New (Get)->GetFunction ());
1919 ht_prototype->Set (" has" , FunctionTemplate::New (Has)->GetFunction ());
@@ -26,7 +26,7 @@ void HashTable::init(Handle<Object> exports) {
2626 ht_prototype->Set (" max_load_factor" , FunctionTemplate::New (MaxLoadFactor)->GetFunction ());
2727 ht_prototype->Set (" forEach" , FunctionTemplate::New (ForEach)->GetFunction ());
2828
29- auto map_prototype = map_constructor->PrototypeTemplate ();
29+ Local<ObjectTemplate> map_prototype = map_constructor->PrototypeTemplate ();
3030 map_prototype->Set (" set" , FunctionTemplate::New (Put)->GetFunction ());
3131 map_prototype->Set (" get" , FunctionTemplate::New (Get)->GetFunction ());
3232 map_prototype->Set (" has" , FunctionTemplate::New (Has)->GetFunction ());
@@ -42,14 +42,16 @@ void HashTable::init(Handle<Object> exports) {
4242
4343 exports->Set (String::NewSymbol (" HashTable" ), Persistent<Function>::New (ht_constructor->GetFunction ()));
4444 exports->Set (String::NewSymbol (" NodeMap" ), Persistent<Function>::New (map_constructor->GetFunction ()));
45+
46+ PairNodeIterator::init ();
4547}
4648
4749HashTable::HashTable () {}
4850
4951HashTable::HashTable (size_t buckets) : map(buckets) {}
5052
5153HashTable::~HashTable () {
52- for (auto itr = this ->map .begin (); itr != this ->map .end (); ) {
54+ for (MapType::const_iterator itr = this ->map .begin (); itr != this ->map .end (); ) {
5355 Persistent<Value> value = itr->second ;
5456 value.Dispose ();
5557
@@ -167,7 +169,7 @@ Handle<Value> HashTable::Keys(const Arguments& args) {
167169 Local<Array> array = Array::New ();
168170
169171 int i = 0 ;
170- for (auto itr = obj->map .begin (); itr != obj->map .end (); ++itr, ++i) {
172+ for (MapType::const_iterator itr = obj->map .begin (); itr != obj->map .end (); ++itr, ++i) {
171173 array->Set (Integer::New (i), itr->first );
172174 }
173175
@@ -179,7 +181,7 @@ Handle<Value> HashTable::MapEntries(const Arguments& args) {
179181
180182 HashTable *obj = ObjectWrap::Unwrap<HashTable>(args.This ());
181183
182- Local<Object> iter = PairNodeIterator::init (PairNodeIterator::KEY_TYPE | PairNodeIterator::VALUE_TYPE, obj->map .begin (), obj->map .end ());
184+ Local<Object> iter = PairNodeIterator::New (PairNodeIterator::KEY_TYPE | PairNodeIterator::VALUE_TYPE, obj->map .begin (), obj->map .end ());
183185
184186 return scope.Close (iter);
185187}
@@ -189,7 +191,7 @@ Handle<Value> HashTable::MapKeys(const Arguments& args) {
189191
190192 HashTable *obj = ObjectWrap::Unwrap<HashTable>(args.This ());
191193
192- Local<Object> iter = PairNodeIterator::init (PairNodeIterator::KEY_TYPE, obj->map .begin (), obj->map .end ());
194+ Local<Object> iter = PairNodeIterator::New (PairNodeIterator::KEY_TYPE, obj->map .begin (), obj->map .end ());
193195
194196 return scope.Close (iter);
195197}
@@ -199,7 +201,7 @@ Handle<Value> HashTable::MapValues(const Arguments& args) {
199201
200202 HashTable *obj = ObjectWrap::Unwrap<HashTable>(args.This ());
201203
202- Local<Object> iter = PairNodeIterator::init (PairNodeIterator::VALUE_TYPE, obj->map .begin (), obj->map .end ());
204+ Local<Object> iter = PairNodeIterator::New (PairNodeIterator::VALUE_TYPE, obj->map .begin (), obj->map .end ());
203205
204206 return scope.Close (iter);
205207}
@@ -217,7 +219,7 @@ Handle<Value> HashTable::Remove(const Arguments& args) {
217219
218220 Persistent<Value> key = Persistent<Value>(args[0 ]);
219221
220- auto itr = obj->map .find (key);
222+ MapType::const_iterator itr = obj->map .find (key);
221223
222224 if (itr == obj->map .end ()) {
223225 return scope.Close (Boolean::New (false )); // do nothing and return false
@@ -236,7 +238,7 @@ Handle<Value> HashTable::Clear(const Arguments& args) {
236238
237239 HashTable *obj = ObjectWrap::Unwrap<HashTable>(args.This ());
238240
239- for (auto itr = obj->map .begin (); itr != obj->map .end (); ) {
241+ for (MapType::const_iterator itr = obj->map .begin (); itr != obj->map .end (); ) {
240242 Persistent<Value> value = itr->second ;
241243 value.Dispose ();
242244
0 commit comments