| Index: chrome/test/data/third_party/spaceport/js/util/quickPromise.js
|
| diff --git a/chrome/test/data/third_party/spaceport/js/util/quickPromise.js b/chrome/test/data/third_party/spaceport/js/util/quickPromise.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0872247dba183e6fab6e00e1bb746994e1466e24
|
| --- /dev/null
|
| +++ b/chrome/test/data/third_party/spaceport/js/util/quickPromise.js
|
| @@ -0,0 +1,34 @@
|
| +define([ 'util/ensureCallback' ], function (ensureCallback) {
|
| + function quickPromise() {
|
| + var thens = [ ];
|
| + var resolved = false;
|
| +
|
| + function resolve() {
|
| + if (resolved) {
|
| + throw new Error("Already resolved");
|
| + }
|
| + resolved = true;
|
| +
|
| + while (thens.length) {
|
| + var fn = thens.pop();
|
| + fn();
|
| + }
|
| + }
|
| +
|
| + function then(fn) {
|
| + fn = ensureCallback(fn);
|
| + if (resolved) {
|
| + fn();
|
| + } else {
|
| + thens.push(fn);
|
| + }
|
| + }
|
| +
|
| + return {
|
| + resolve: resolve,
|
| + then: then
|
| + };
|
| + }
|
| +
|
| + return quickPromise;
|
| +});
|
|
|