Skip to content

Commit c369385

Browse files
committedNov 21, 2014
Fix Hash#inspect by not caching map and smap
Apparently as #650 demonstrates `smap` gets corrupted and ends up being different from `self.smap`, actually seems to be equal to value (or `value.smap`). My gut tells me that we’re missing a `var smap` somewhere. The fix just always fetches map and smap from self. Closes #650.
1 parent f30599c commit c369385

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed
 

‎opal/corelib/hash.rb

+10-10
Original file line numberDiff line numberDiff line change
@@ -569,11 +569,12 @@ def inspect
569569
%x{
570570
var top = (inspect_ids === null);
571571
try {
572-
var inspect = [],
572+
573+
var key, value,
574+
inspect = [],
573575
keys = self.keys
574-
_map = self.map,
575-
smap = self.smap,
576-
id = #{object_id};
576+
id = self.$object_id(),
577+
counter = 0;
577578
578579
if (top) {
579580
inspect_ids = {}
@@ -586,12 +587,11 @@ def inspect
586587
inspect_ids[id] = true;
587588
588589
for (var i = 0, length = keys.length; i < length; i++) {
589-
var key = keys[i],
590-
value = key.$$is_string ? smap[key] : _map[key.$hash()];
591-
592-
value = value;
593-
key = key;
594-
inspect.push(key.$inspect() + '=>' + value.$inspect());
590+
key = keys[i];
591+
value = key.$$is_string ? self.smap[key] : self.map[key.$hash()];
592+
key = key.$inspect();
593+
value = value.$inspect();
594+
inspect.push(key + '=>' + value);
595595
}
596596
597597
return '{' + inspect.join(', ') + '}';

0 commit comments

Comments
 (0)
Please sign in to comment.