Files
jasmine/spec/helpers/checkForMap.js
Volonterio Riccardo 085a1f8a16 Added complete support for Map also for IE11.
Fixes 1472
2018-01-11 18:13:24 +01:00

49 lines
1.1 KiB
JavaScript

(function(env) {
function hasFunctioningMaps() {
if (typeof Map === 'undefined') { return false; }
try {
var s = new Map();
s.set('a',1);
s.set('b',2);
// Check for `size`
if (s.size !== 2) { return false; }
// Check for `has`
if (s.has('a') !== true) { return false; }
// Check for `delete`
if (s.delete('b') !== true) { return false; }
// Check for `forEach`
var iterations = 0;
var ifForEachWorking = true;
s.forEach( function( value, key, map ) {
ifForEachWorking = ifForEachWorking && map === s;
if( key==='a') {
ifForEachWorking = ifForEachWorking && value===1;
}
iterations++;
} );
if (iterations !== 1) { return false; }
if (ifForEachWorking !== true) { return false; }
// Check for `clear`
s.clear()
if (s.size !== 0) { return false; }
return true;
} catch(e) {
return false;
}
}
env.requireFunctioningMaps = function() {
if (!hasFunctioningMaps()) {
env.pending("Browser has incomplete or missing support for Maps");
}
};
})(jasmine.getEnv());