gecko-dev/addon-sdk/source/examples/debug-client/data/task.js
Erik Vold 4aaca6c799 Bug 1040336 - Uplift Add-on SDK to Firefox r=me
--HG--
rename : addon-sdk/source/test/fixtures/css-include-file.css => addon-sdk/source/test/fixtures/include-file.css
2014-07-17 13:54:21 -07:00

28 lines
726 B
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
(function(exports) {
"use strict";
const spawn = (task, ...args) => {
return new Promise((resolve, reject) => {
try {
const routine = task(...args);
const raise = error => routine.throw(error);
const step = data => {
const { done, value } = routine.next(data);
if (done)
resolve(value);
else
Promise.resolve(value).then(step, raise);
}
step();
} catch(error) {
reject(error);
}
});
}
exports.spawn = spawn;
})(Task = {});