Bug 1395613 - import bundles from devtools-source-map 0.12.0; r?bgrins draft
authorTom Tromey <tom@tromey.com>
Thu, 31 Aug 2017 11:44:56 -0600
changeset 656805 d755ea47c732b5a9b758c2dcec04d94dcdfa49a0
parent 655162 0e5471fdbb8c3afa464590c36a47284eae4a278b
child 656809 8f185e2ea6d4d1e1347f79544ad959fd2c6446dd
push id77322
push userbmo:ttromey@mozilla.com
push dateThu, 31 Aug 2017 17:54:07 +0000
reviewersbgrins
bugs1395613
milestone57.0a1
Bug 1395613 - import bundles from devtools-source-map 0.12.0; r?bgrins MozReview-Commit-ID: n5XTA3YN3G
devtools/client/shared/source-map/index.js
devtools/client/shared/source-map/worker.js
--- a/devtools/client/shared/source-map/index.js
+++ b/devtools/client/shared/source-map/index.js
@@ -570,22 +570,27 @@ return /******/ (function(modules) { // 
 	};
 
 	function workerHandler(publicInterface) {
 	  return function (msg) {
 	    const { id, method, args } = msg.data;
 	    try {
 	      const response = publicInterface[method].apply(undefined, args);
 	      if (response instanceof Promise) {
-	        response.then(val => self.postMessage({ id, response: val }), err => self.postMessage({ id, error: err }));
+	        response.then(val => self.postMessage({ id, response: val }),
+	        // Error can't be sent via postMessage, so be sure to
+	        // convert to string.
+	        err => self.postMessage({ id, error: err.toString() }));
 	      } else {
 	        self.postMessage({ id, response });
 	      }
 	    } catch (error) {
-	      self.postMessage({ id, error });
+	      // Error can't be sent via postMessage, so be sure to convert to
+	      // string.
+	      self.postMessage({ id, error: error.toString() });
 	    }
 	  };
 	}
 
 	function streamingWorkerHandler(publicInterface, { timeout = 100 } = {}, worker = self) {
 	  let streamingWorker = (() => {
 	    var _ref = _asyncToGenerator(function* (id, tasks) {
 	      let isWorking = true;
--- a/devtools/client/shared/source-map/worker.js
+++ b/devtools/client/shared/source-map/worker.js
@@ -559,22 +559,27 @@ return /******/ (function(modules) { // 
 	};
 
 	function workerHandler(publicInterface) {
 	  return function (msg) {
 	    const { id, method, args } = msg.data;
 	    try {
 	      const response = publicInterface[method].apply(undefined, args);
 	      if (response instanceof Promise) {
-	        response.then(val => self.postMessage({ id, response: val }), err => self.postMessage({ id, error: err }));
+	        response.then(val => self.postMessage({ id, response: val }),
+	        // Error can't be sent via postMessage, so be sure to
+	        // convert to string.
+	        err => self.postMessage({ id, error: err.toString() }));
 	      } else {
 	        self.postMessage({ id, response });
 	      }
 	    } catch (error) {
-	      self.postMessage({ id, error });
+	      // Error can't be sent via postMessage, so be sure to convert to
+	      // string.
+	      self.postMessage({ id, error: error.toString() });
 	    }
 	  };
 	}
 
 	function streamingWorkerHandler(publicInterface, { timeout = 100 } = {}, worker = self) {
 	  let streamingWorker = (() => {
 	    var _ref = _asyncToGenerator(function* (id, tasks) {
 	      let isWorking = true;