Skip to content

Commit

Permalink
Fix Hash.[] with single Array parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
meh committed Oct 5, 2013
1 parent eb543eb commit 4639b80
Showing 1 changed file with 20 additions and 6 deletions.
26 changes: 20 additions & 6 deletions corelib/hash.rb
Expand Up @@ -8,21 +8,35 @@ class Hash
}
var hash = new Hash._alloc,
args = $slice.call(arguments),
keys = [],
assocs = {};
hash.map = assocs;
hash.keys = keys;
for (var i = 0, length = args.length, key; i < length; i++) {
var key = args[i], obj = args[++i];
if (arguments.length == 1 && arguments[0]._isArray) {
var args = arguments[0];
if (assocs[key] == null) {
keys.push(key);
for (var i = 0, length = args.length; i < length; i++) {
var key = args[i][0], obj = args[i][1];
if (assocs[key] == null) {
keys.push(key);
}
assocs[key] = obj;
}
}
else {
for (var i = 0, length = arguments.length, key; i < length; i++) {
var key = arguments[i], obj = arguments[++i];
assocs[key] = obj;
if (assocs[key] == null) {
keys.push(key);
}
assocs[key] = obj;
}
}
return hash;
Expand Down

0 comments on commit 4639b80

Please sign in to comment.