aboutsummaryrefslogtreecommitdiff
path: root/ext/bg/js/translator.js
diff options
context:
space:
mode:
authorAlex Yatskov <FooSoft@users.noreply.github.com>2016-06-20 10:00:01 -0700
committerGitHub <noreply@github.com>2016-06-20 10:00:01 -0700
commit261914328fb8b72d8984a21eaf7670a01f1da2c6 (patch)
treef04b1ffd3e5d7fb9fa6047e9aeac8fde84aa4160 /ext/bg/js/translator.js
parentb7901945b34cda8994f12950ce50024a6b028cee (diff)
parenta9863de95e201c8e814ad7d6dacedae98b13748a (diff)
Merge pull request #7 from ispedals/firefox
Firefox
Diffstat (limited to 'ext/bg/js/translator.js')
-rw-r--r--ext/bg/js/translator.js10
1 files changed, 10 insertions, 0 deletions
diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js
index bf1538e2..d79ec6d1 100644
--- a/ext/bg/js/translator.js
+++ b/ext/bg/js/translator.js
@@ -46,8 +46,17 @@ class Translator {
const pendingLoads = [];
for (let key of files) {
+ /*
+ Spidermonkey does not implement lexical bindings for for-of loop
+ (see https://bugzilla.mozilla.org/show_bug.cgi?id=449811)
+ so we need to manually make a new declaration for key.
+ Otherwise key will always remain the same in the callback to loadData
+ and the dictionary data will not be set correctly
+ */
+ let key_ = key;
pendingLoads.push(key);
Translator.loadData(this.paths[key], (response) => {
+ let key = key_
switch (key) {
case 'rules':
this.deinflector.setRules(JSON.parse(response));
@@ -228,6 +237,7 @@ class Translator {
static loadData(url, callback) {
const xhr = new XMLHttpRequest();
+ xhr.overrideMimeType("application/json");
xhr.addEventListener('load', () => callback(xhr.responseText));
xhr.open('GET', chrome.extension.getURL(url), true);
xhr.send();