| Index: build_tools/naclprocess.js
 | 
| diff --git a/build_tools/naclprocess.js b/build_tools/naclprocess.js
 | 
| index 0ed36dbc405656530e2ea958342a839ac5c41449..fe03393f7d0717444e63b5fd8910a97874bce990 100644
 | 
| --- a/build_tools/naclprocess.js
 | 
| +++ b/build_tools/naclprocess.js
 | 
| @@ -4,6 +4,9 @@
 | 
|   * found in the LICENSE file.
 | 
|   */
 | 
|  
 | 
| +/* jshint evil: true */
 | 
| +/* globals PipeServer */
 | 
| +
 | 
|  'use strict';
 | 
|  
 | 
|  // TODO(gdeepti): extend to multiple mounts.
 | 
| @@ -288,7 +291,7 @@ function getNaClArch(callback) {
 | 
|    setTimeout(function() {
 | 
|      callback(getNaClArch.naclArch_);
 | 
|    }, 0);
 | 
| -};
 | 
| +}
 | 
|  
 | 
|  /**
 | 
|   * Handles a stdout event.
 | 
| @@ -403,17 +406,18 @@ NaClProcessManager.prototype.syncMountStatus_ = function() {
 | 
|   */
 | 
|  NaClProcessManager.prototype.adjustNmfEntry_ = function(entry) {
 | 
|    for (var arch in entry) {
 | 
| +    var path;
 | 
|      if (arch === 'portable') {
 | 
|        if (entry[arch]['pnacl-translate'] === undefined ||
 | 
|            entry[arch]['pnacl-translate']['url'] === undefined) {
 | 
|          return;
 | 
|        }
 | 
| -      var path = entry[arch]['pnacl-translate']['url'];
 | 
| +      path = entry[arch]['pnacl-translate']['url'];
 | 
|      } else {
 | 
|        if (entry[arch]['url'] === undefined) {
 | 
|          return;
 | 
|        }
 | 
| -      var path = entry[arch]['url'];
 | 
| +      path = entry[arch]['url'];
 | 
|      }
 | 
|  
 | 
|      // Convert 'path' from the NaCl VFS into an HTML5 filesystem: URL
 | 
| @@ -478,11 +482,11 @@ NaClProcessManager.prototype.handleMessage_ = function(e) {
 | 
|    // TODO(channingh): Once pinned applications support "result" instead of
 | 
|    // "pid", change calls to reply() to set "result."
 | 
|    function reply(contents) {
 | 
| -    var reply = {};
 | 
| -    reply[msg['id']] = contents;
 | 
| +    var message = {};
 | 
| +    message[msg['id']] = contents;
 | 
|      // Enable to debug message stream (disabled for speed).
 | 
|      // console.log(src.pid + '> reply: ' + JSON.stringify(reply));
 | 
| -    src.postMessage(reply);
 | 
| +    src.postMessage(message);
 | 
|    }
 | 
|  
 | 
|    if (msg['command'] && handlers[msg['command']]) {
 | 
| @@ -811,7 +815,7 @@ NaClProcessManager.prototype.createProcessGroup_ = function(pid, sid) {
 | 
|    this.processGroups[pid] = {
 | 
|      sid: sid,
 | 
|      processes: {}
 | 
| -  }
 | 
| +  };
 | 
|    this.processGroups[pid].processes[pid] = true;
 | 
|  };
 | 
|  
 | 
| @@ -860,12 +864,12 @@ NaClProcessManager.prototype.exit = function(code, element) {
 | 
|    // Reply to processes waiting on the exited process.
 | 
|    var waitersToCheck = [pid, -1, -pgid];
 | 
|    var reaped = false;
 | 
| -  for (var i = 0; i < waitersToCheck.length; i++) {
 | 
| -    var currPid = waitersToCheck[i];
 | 
| -    if (this.waiters[currPid] === undefined) {
 | 
| -      continue;
 | 
| +  var waiters = this.waiters;
 | 
| +  waitersToCheck.forEach(function(currPid) {
 | 
| +    if (waiters[currPid] === undefined) {
 | 
| +      return;
 | 
|      }
 | 
| -    var currPidWaiters = this.waiters[currPid];
 | 
| +    var currPidWaiters = waiters[currPid];
 | 
|      for (var j = 0; j < currPidWaiters.length; j++) {
 | 
|        var waiter = currPidWaiters[j];
 | 
|        if (waiter.srcPid === ppid) {
 | 
| @@ -873,13 +877,13 @@ NaClProcessManager.prototype.exit = function(code, element) {
 | 
|          reaped = true;
 | 
|        }
 | 
|      }
 | 
| -    this.waiters[currPid] = currPidWaiters.filter(function(waiter) {
 | 
| +    waiters[currPid] = currPidWaiters.filter(function(waiter) {
 | 
|        return waiter.srcPid !== ppid;
 | 
|      });
 | 
| -    if (this.waiters[currPid].length === 0) {
 | 
| -      delete this.waiters[currPid];
 | 
| +    if (waiters[currPid].length === 0) {
 | 
| +      delete waiters[currPid];
 | 
|      }
 | 
| -  }
 | 
| +  });
 | 
|    if (reaped) {
 | 
|      this.deleteProcessEntry_(pid);
 | 
|    } else {
 | 
| @@ -942,8 +946,9 @@ NaClProcessManager.prototype.checkUrlNaClManifestType = function(
 | 
|    var request = new XMLHttpRequest();
 | 
|    request.open('GET', url, true);
 | 
|    request.onload = function() {
 | 
| +    var manifest;
 | 
|      try {
 | 
| -      var manifest = JSON.parse(request.responseText);
 | 
| +      manifest = JSON.parse(request.responseText);
 | 
|      } catch(e) {
 | 
|        errorCallback('NaCl Manifest is not valid JSON at ' + url);
 | 
|        return;
 | 
| @@ -1136,8 +1141,8 @@ NaClProcessManager.prototype.spawn = function(
 | 
|        argv.forEach(function(arg) {
 | 
|          var argname = 'arg' + argn;
 | 
|          addParam(argname, arg);
 | 
| -        argn = argn + 1
 | 
| -      })
 | 
| +        argn = argn + 1;
 | 
| +      });
 | 
|      }
 | 
|  
 | 
|      self.pipeServer.addProcessPipes(fg.pid, params);
 | 
| @@ -1262,7 +1267,7 @@ NaClProcessManager.prototype.waitpid = function(pid, options, reply, srcPid) {
 | 
|      }
 | 
|    }
 | 
|  
 | 
| -  if ((options & NaClProcessManager.WNOHANG) != 0) {
 | 
| +  if ((options & NaClProcessManager.WNOHANG) !== 0) {
 | 
|      reply(0, 0);
 | 
|      return;
 | 
|    }
 | 
| @@ -1366,7 +1371,7 @@ GraphicalPopup.HTML_FILE = 'graphical.html';
 | 
|   */
 | 
|  GraphicalPopup.focusCurrentWindow = function() {
 | 
|    chrome.app.window.current().focus();
 | 
| -}
 | 
| +};
 | 
|  
 | 
|  /**
 | 
|   * This callback is called when the popup is closed.
 | 
| @@ -1382,7 +1387,7 @@ GraphicalPopup.prototype.setClosedListener = function(listener) {
 | 
|      throw new Error("Cannot set closed listener after creating window.");
 | 
|    }
 | 
|    this.onClosed = listener;
 | 
| -}
 | 
| +};
 | 
|  
 | 
|  /**
 | 
|   * Create the window.
 | 
| 
 |