opal/corelib/runtime.js in opal-0.5.5 vs opal/corelib/runtime.js in opal-0.6.0

- old
+ new

@@ -612,10 +612,16 @@ while (search) { if (search === klass) { return true; } + for (var i = 0, length = search.__inc__.length; i < length; i++) { + if (search.__inc__[i] == klass) { + return true; + } + } + search = search._super; } return false; } @@ -749,20 +755,29 @@ assocs = {}; hash.map = assocs; hash.keys = keys; - if (arguments.length == 1 && arguments[0]._isArray) { - var args = arguments[0]; + if (arguments.length == 1) { + if (arguments[0]._isArray) { + var args = arguments[0]; - for (var i = 0, length = args.length; i < length; i++) { - var key = args[i][0], obj = args[i][1]; + for (var i = 0, length = args.length; i < length; i++) { + var key = args[i][0], obj = args[i][1]; - if (assocs[key] == null) { + if (assocs[key] == null) { + keys.push(key); + } + + assocs[key] = obj; + } + } + else { + var obj = arguments[0]; + for (var key in obj) { + assocs[key] = obj[key]; keys.push(key); } - - assocs[key] = obj; } } else { for (var i = 0, length = arguments.length; i < length; i++) { var key = arguments[i],