No edit summary |
m (ChaoticShadow moved page MediaWiki:Gadget-polyfill-set.js to MediaWiki:Gadget-polyfill.js without leaving a redirect) |
||
(No difference)
|
Revision as of 07:11, 21 December 2021
function PrimitiveSet() {
this.data = {};
this.counter = 0;
}
PrimitiveSet.prototype.add = function(val) {
if (!this.data.hasOwnProperty(val)) {
this.data[val] = this.counter;
this.counter++;
}
};
PrimitiveSet.prototype.clear = function() {
this.data = {};
this.counter = 0;
};
PrimitiveSet.prototype.delete = function( val ) {
delete this.data[val];
};
PrimitiveSet.prototype.has = function( val ) {
return val in this.data;
};
PrimitiveSet.prototype.values = function() {
var key_vals = [];
for (var key in this.data) {
key_vals.push( { key: key, value: this.data[key] } );
}
key_vals.sort( function( left, right ) {
return left.value - right.value;
} );
return key_vals.map( function( key_val ) {
return key_val.key;
} );
};
Object.preventExtensions(PrimitiveSet.prototype);
window.pswiki.polyfill.PrimitiveSet = PrimitiveSet;