Map() is not defined in Google Chrome

Nick picture Nick · Jun 22, 2013 · Viewed 13.7k times · Source

I've been searching for an answer but I'm only getting results regarding the Google maps API. I'm trying to use a map in JavaScript to map an integer to a string. Everything is working fine in Firefox but in chrome I get an error message in the console:

Uncaught ReferenceError: Map is not defined

Below is a piece of reference code:

var NameMap;
var DistanceMap;

function FillMaps(){
    NameMap = new Map();
    DistanceMap = new Map();

    NameMap.set(01, "Araba/Álava");
}

function CheckName(_field){
    var value = document.getElementsByName(_field.name).item(0).value;
    var location = value.charAt(0) + value.charAt(1);
    var result = NameMap.get(parseInt(location));
    if(result == undefined){
        result = "Unknown";
    }
    document.getElementById('loc').innerHTML = result;
}

Answer

Rob W picture Rob W · Jun 22, 2013

Some ES harmony features, including Map(), did already exist in Chrome at the end of 2011. It's just disabled by default.

To enable the feature, visit chrome://flags/, and enable "Enable experimental JavaScript". Then restart the browser and enjoy the new features.

An alternative method is to pass the --js-flags=--harmony flag on the command line. For instance:

chromium --js-flags=--harmony
chrome.exe --jsflags=--harmony