Skip to content

Commit

Permalink
Merge pull request mozilla#3239 from brendandahl/scope-fix
Browse files Browse the repository at this point in the history
Bind chunk promises to avoid scope problems.
  • Loading branch information
yurydelendik committed May 10, 2013
2 parents f07564b + 328cfd0 commit 67eb3bb
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions src/evaluator.js
Original file line number Diff line number Diff line change
Expand Up @@ -884,7 +884,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
case 'TJ':
var chunkPromise = new Promise();
chunkPromises.push(chunkPromise);
fontPromise.then(function(items, font) {
fontPromise.then(function(items, chunkPromise, font) {
var chunk = '';
for (var j = 0, jj = items.length; j < jj; j++) {
if (typeof items[j] === 'string') {
Expand All @@ -901,41 +901,40 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
}
}
}

chunkPromise.resolve(
getBidiText(chunk, -1, font.vertical));
}.bind(null, args[0]));
}.bind(null, args[0], chunkPromise));
break;
case 'Tj':
var chunkPromise = new Promise();
chunkPromises.push(chunkPromise);
fontPromise.then(function(charCodes, font) {
fontPromise.then(function(charCodes, chunkPromise, font) {
var chunk = fontCharsToUnicode(charCodes, font);
chunkPromise.resolve(
getBidiText(chunk, -1, font.vertical));
}.bind(null, args[0]));
}.bind(null, args[0], chunkPromise));
break;
case '\'':
// For search, adding a extra white space for line breaks
// would be better here, but that causes too much spaces in
// the text-selection divs.
var chunkPromise = new Promise();
chunkPromises.push(chunkPromise);
fontPromise.then(function(charCodes, font) {
fontPromise.then(function(charCodes, chunkPromise, font) {
var chunk = fontCharsToUnicode(charCodes, font);
chunkPromise.resolve(
getBidiText(chunk, -1, font.vertical));
}.bind(null, args[0]));
}.bind(null, args[0], chunkPromise));
break;
case '"':
// Note comment in "'"
var chunkPromise = new Promise();
chunkPromises.push(chunkPromise);
fontPromise.then(function(charCodes, font) {
fontPromise.then(function(charCodes, chunkPromise, font) {
var chunk = fontCharsToUnicode(charCodes, font);
chunkPromise.resolve(
getBidiText(chunk, -1, font.vertical));
}.bind(null, args[2]));
}.bind(null, args[2], chunkPromise));
break;
case 'Do':
if (args[0].code) {
Expand Down

0 comments on commit 67eb3bb

Please sign in to comment.