aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.5/packages/api-utils/lib/unload.js
diff options
context:
space:
mode:
authorGravatar Trevor Elliott <trevor@galois.com>2013-06-07 16:42:11 -0700
committerGravatar Trevor Elliott <trevor@galois.com>2013-06-07 16:48:17 -0700
commit8b5d3c6b75744cf5938f253d20f367999e92b1a7 (patch)
treeb516a82c5b198fd080d265e56b3edf19d1180f10 /tools/addon-sdk-1.5/packages/api-utils/lib/unload.js
parentf37588f9a4c7c6b418c64f03d82d48ecd14da217 (diff)
Remove the addon-sdk from the repo, and download it on demand
Diffstat (limited to 'tools/addon-sdk-1.5/packages/api-utils/lib/unload.js')
-rw-r--r--tools/addon-sdk-1.5/packages/api-utils/lib/unload.js63
1 files changed, 0 insertions, 63 deletions
diff --git a/tools/addon-sdk-1.5/packages/api-utils/lib/unload.js b/tools/addon-sdk-1.5/packages/api-utils/lib/unload.js
deleted file mode 100644
index aba5923..0000000
--- a/tools/addon-sdk-1.5/packages/api-utils/lib/unload.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/* 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/. */
-
-// Parts of this module were taken from narwhal:
-//
-// http://narwhaljs.org
-
-var observers = [];
-var unloaders = [];
-
-var when = exports.when = function when(observer) {
- if (observers.indexOf(observer) != -1)
- return;
- observers.unshift(observer);
-};
-
-var send = exports.send = function send(reason, onError) {
- onError = onError || console.exception;
- observers.forEach(function (observer) {
- try {
- observer(reason);
- } catch (e) {
- onError(e);
- }
- });
-};
-
-var ensure = exports.ensure = function ensure(obj, destructorName) {
- if (!destructorName)
- destructorName = "unload";
- if (!(destructorName in obj))
- throw new Error("object has no '" + destructorName + "' property");
-
- let called = false;
- let originalDestructor = obj[destructorName];
-
- function unloadWrapper(reason) {
- if (!called) {
- called = true;
- let index = unloaders.indexOf(unloadWrapper);
- if (index == -1)
- throw new Error("internal error: unloader not found");
- unloaders.splice(index, 1);
- originalDestructor.call(obj, reason);
- originalDestructor = null;
- destructorName = null;
- obj = null;
- }
- };
-
- unloaders.push(unloadWrapper);
-
- obj[destructorName] = unloadWrapper;
-};
-
-when(
- function(reason) {
- unloaders.slice().forEach(
- function(unloadWrapper) {
- unloadWrapper(reason);
- });
- });