Code coverage report for lib\ArrayMap.js

Statements: 60% (18 / 30)      Branches: 66.67% (4 / 6)      Functions: 60% (3 / 5)      Lines: 60% (18 / 30)      Ignored: none     

All files » lib\ » ArrayMap.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51        1 992 992   1   1 17402 265225 17402           1 25621 224429 4998 4998     20623 20623 20623     1                     1                
/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/
function ArrayMap() {
	this.keys = [];
	this.values = [];
}
module.exports = ArrayMap;
 
ArrayMap.prototype.get = function(key) {
	for(var i = 0; i < this.keys.length; i++) {
		if(this.keys[i] === key) {
			return this.values[i];
		}
	}
	return;
};
 
ArrayMap.prototype.set = function(key, value) {
	for(var i = 0; i < this.keys.length; i++) {
		if(this.keys[i] === key) {
			this.values[i] = value;
			return this;
		}
	}
	this.keys.push(key);
	this.values.push(value);
	return this;
};
 
ArrayMap.prototype.remove = function(key, value) {
	for(var i = 0; i < this.keys.length; i++) {
		if(this.keys[i] === key) {
			this.keys.splice(i, 1);
			this.values.splice(i, 1);
			return true;
		}
	}
	return false;
};
 
ArrayMap.prototype.clone = function() {
	var newMap = new ArrayMap();
	for(var i = 0; i < this.keys.length; i++) {
		newMap.keys.push(this.keys[i]);
		newMap.values.push(this.values[i]);
	}
	return newMap;
};