var esPhinx; (function($) { "use strict"; $.extend({ Collection: {} }); $.Extender.extend($.Collection, true, { new: function(collection) { var asArray, self = $.Collection, ConstructorReference = self.new, callback = function(object1, object2) { // debugger // if (Reflect.constructorForName(Object.className(object1)) if (object1.constructor .implementsMethod("compareTo")) { return object1.compareTo(object2); } }; if (!(this instanceof ConstructorReference)) { return new ConstructorReference(collection); } if(!(collection instanceof Array)) { asArray = Array.from(Object.asCountableLiteral(collection)); } else { asArray = collection; } this.sort = function(compareFunction) { if (typeof compareFunction == "function") { return asArray.sort(compareFunction); } else { // callback in node1 and node2, based a some (Strategy), objects to compare and sort. return asArray.sort(callback); } }; } }); }(esPhinx));